From 0e0fcdd2abdfc38f7b651072e1ec9b491939755d Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 13:05:23 -0400 Subject: [PATCH 1/9] feat: Add JSdoc for pfelement --- elements/pfe-sass/gulpfile.js | 6 +- elements/pfelement/demo/index.html | 99 -- elements/pfelement/gulpfile.js | 58 +- elements/pfelement/src/attrDefValidators.js | 10 +- elements/pfelement/src/pfelement.js | 50 +- .../pfelement/src/polyfills--pfelement.js | 6 +- elements/pfelement/src/reveal.js | 15 + .../templates/scripts/gulpfile.factory.js | 10 +- package-lock.json | 1213 +++++++++++++++-- package.json | 5 +- scripts/gulpfile.factory.js | 31 +- 11 files changed, 1247 insertions(+), 256 deletions(-) delete mode 100644 elements/pfelement/demo/index.html diff --git a/elements/pfe-sass/gulpfile.js b/elements/pfe-sass/gulpfile.js index ca336c4439..2a631ba988 100644 --- a/elements/pfe-sass/gulpfile.js +++ b/elements/pfe-sass/gulpfile.js @@ -17,18 +17,18 @@ const paths = { temp: "./_temp" }; -const clean = require("gulp-clean"); +const del = require("del"); const mergeStream = require("merge-stream"); const globSass = require("gulp-sass-globbing"); const sassdoc = require("sassdoc"); // Delete the temp directory task("clean", () => { - return src(["__*.scss", "demo/*.html", "demo/assets"], { + return del(["__*.scss", "demo/*.html", "demo/assets"], { cwd: paths.compiled, read: false, allowEmpty: true - }).pipe(clean()); + }); }); // Custom gulp for sass globbing diff --git a/elements/pfelement/demo/index.html b/elements/pfelement/demo/index.html deleted file mode 100644 index aff7fd2a07..0000000000 --- a/elements/pfelement/demo/index.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - PFElements: Base Class Demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/elements/pfelement/gulpfile.js b/elements/pfelement/gulpfile.js index 556c0204a2..db67c4fefc 100644 --- a/elements/pfelement/gulpfile.js +++ b/elements/pfelement/gulpfile.js @@ -1,4 +1,60 @@ const gulpFactory = require("../../scripts/gulpfile.factory.js"); const pfelementPackage = require("./package.json"); -gulpFactory(pfelementPackage); +const { task, src, series } = require("gulp"); +const jsdoc = require("gulp-jsdoc3"); +const del = require("del"); + +task("clean:jsdoc", () => + del(["demo"], { + read: false, + allowEmpty: true + }) +); + +task("build:jsdoc", cb => { + src(["README.md", "dist/pfelement.js"], { + read: false, + allowEmpty: true + }).pipe( + jsdoc( + { + opts: { + destination: "demo/", + template: "../../node_modules/foodoc/template" + }, + templates: { + systemName: "PatternFly Elements", + systemSummary: "A set of community-created web components based on PatternFly design.", + systemLogo: "../../brand/logo/svg/pfe-icon-white-shaded.svg", + favicon: "../../brand/logo/svg/pfe-icon-blue-shaded.svg", + systemColor: "rgb(0, 64, 128)", + // "footer" : "{string}", + copyright: "©2021 Red Hat, Inc.", + includeDate: true, + dateFormat: "YYYY MMM DD", + showAccessFilter: false, + collapseSymbols: false, + stylesheets: ["../pfe-styles/dist/pfe-base.min.css"] + // "inlineNav" : "{boolean}", + // "inverseNav" : "{boolean}", + // "navMembers" : "{array.}", + // "linenums" : "{boolean}", + // "showTableOfContents" : "{boolean}", + // "analytics" : "{object}", + // "collapseSymbols" : "{boolean}", + // "methodHeadingReturns" : "{boolean}", + // "outputSourceFiles" : "{boolean}", + // "outputSourcePath" : "{boolean}", + // "stylesheets" : "{array.}", + // "scripts" : "{array.}" + } + }, + cb + ) + ); +}); + +task("jsdoc", series("clean:jsdoc", "build:jsdoc")); + +gulpFactory(Object.assign(pfelementPackage, { postbundle: ["jsdoc"] })); diff --git a/elements/pfelement/src/attrDefValidators.js b/elements/pfelement/src/attrDefValidators.js index 5540d8cddb..0a84116133 100644 --- a/elements/pfelement/src/attrDefValidators.js +++ b/elements/pfelement/src/attrDefValidators.js @@ -1,9 +1,9 @@ /** * Verify that a property definition's `type` field contains one of the allowed - * types. - * - * Allowed types are String, Number, and Boolean. If `type` is falsy, it - * defaults to String. + * types. If the definition type resolves to falsy, assumes String type. + * @param {constructor} definition + * @default String + * @return {Boolean} True if the definition type is one of String, Number, or Boolean */ export function isAllowedType(definition) { return [String, Number, Boolean].includes(definition.type || String); @@ -15,6 +15,8 @@ export function isAllowedType(definition) { * A `default` value is valid if it's of the same type as the `type` * definition. Or, if there is no `type` definition, then it must be a String * (the default value for `type`). + * @param {type} definition + * @return {Boolean} True if the default value matches the type of the definition object. */ export function isValidDefaultType(definition) { return definition.hasOwnProperty("default") && definition.default.constructor === definition.type; diff --git a/elements/pfelement/src/pfelement.js b/elements/pfelement/src/pfelement.js index 7be3fcb8a2..9e854602c3 100644 --- a/elements/pfelement/src/pfelement.js +++ b/elements/pfelement/src/pfelement.js @@ -3,13 +3,24 @@ import { isAllowedType, isValidDefaultType } from "./attrDefValidators.js"; // Import polyfills: includes import "./polyfills--pfelement.js"; +// /** +// * Global prefix used for all components in the project. +// * @constant {String} +// * */ const prefix = "pfe"; +/** + * @class PFElement + * @extends HTMLElement + * @version {{version}} + * @classdesc Serves as the baseline for all PatternFly Element components. + */ class PFElement extends HTMLElement { /** * A boolean value that indicates if the logging should be printed to the console; used for debugging. - * - * @example In a JS file or script tag: `PFElement._debugLog = true;` + * For use in a JS file or script tag; can also be added in the constructor of a component during development. + * @example PFElement._debugLog = true; + * @tags debug */ static debugLog(preference = null) { if (preference !== null) { @@ -20,8 +31,8 @@ class PFElement extends HTMLElement { /** * A boolean value that indicates if the performance should be tracked. - * - * @example In a JS file or script tag: `PFElement._trackPerformance = true;` + * For use in a JS file or script tag; can also be added in the constructor of a component during development. + * @example PFElement._trackPerformance = true; */ static trackPerformance(preference = null) { if (preference !== null) { @@ -33,7 +44,7 @@ class PFElement extends HTMLElement { /** * A logging wrapper which checks the debugLog boolean and prints to the console if true. * - * @example `PFElement.log("Hello")` + * @example PFElement.log("Hello"); */ static log(...msgs) { if (PFElement.debugLog()) { @@ -44,7 +55,7 @@ class PFElement extends HTMLElement { /** * Local logging that outputs the tag name as a prefix automatically * - * @example In a component's function: `this.log("Hello")` + * @example this.log("Hello"); */ log(...msgs) { PFElement.log(`[${this.tag}${this.id ? `#${this.id}` : ""}]: ${msgs.join(", ")}`); @@ -53,7 +64,7 @@ class PFElement extends HTMLElement { /** * A console warning wrapper which formats your output with useful debugging information. * - * @example `PFElement.warn("Hello")` + * @example PFElement.warn("Hello"); */ static warn(...msgs) { console.warn(...msgs); @@ -61,8 +72,8 @@ class PFElement extends HTMLElement { /** * Local warning wrapper that outputs the tag name as a prefix automatically. - * - * @example In a component's function: `this.warn("Hello")` + * For use inside a component's function. + * @example this.warn("Hello"); */ warn(...msgs) { PFElement.warn(`[${this.tag}${this.id ? `#${this.id}` : ``}]: ${msgs.join(", ")}`); @@ -70,8 +81,8 @@ class PFElement extends HTMLElement { /** * A console error wrapper which formats your output with useful debugging information. - * - * @example `PFElement.error("Hello")` + * For use inside a component's function. + * @example PFElement.error("Hello"); */ static error(...msgs) { throw new Error([...msgs].join(" ")); @@ -79,8 +90,8 @@ class PFElement extends HTMLElement { /** * Local error wrapper that outputs the tag name as a prefix automatically. - * - * @example In a component's function: `this.error("Hello")` + * For use inside a component's function. + * @example this.error("Hello"); */ error(...msgs) { PFElement.error(`[${this.tag}${this.id ? `#${this.id}` : ``}]:`, ...msgs); @@ -107,8 +118,8 @@ class PFElement extends HTMLElement { /** * A local alias to the static version. - * - * @example: In the console: `PfeAccordion.version` + * For use in the console to validate version being loaded. + * @example PfeAccordion.version */ get version() { return this._pfeClass.version; @@ -175,7 +186,7 @@ class PFElement extends HTMLElement { * A quick way to fetch a random ID value. * _Note:_ All values are prefixes with `pfe` automatically to ensure an ID-safe value is returned. * - * @example: In a component's JS: `this.id = this.randomID;` + * @example this.id = this.randomID; */ get randomId() { return ( @@ -205,7 +216,7 @@ class PFElement extends HTMLElement { /** * Returns a boolean statement of whether or not this component contains any light DOM. * @returns {boolean} - * @examples `if(this.hasLightDOM()) this._init();` + * @example if(this.hasLightDOM()) this._init(); */ hasLightDOM() { return this.children.length || this.textContent.trim().length; @@ -214,7 +225,7 @@ class PFElement extends HTMLElement { /** * Returns a boolean statement of whether or not that slot exists in the light DOM. * - * @example: `this.hasSlot("header")` + * @example this.hasSlot("header"); */ hasSlot(name) { if (!name) { @@ -246,7 +257,7 @@ class PFElement extends HTMLElement { * Returns an array with all the slot with the provided name defined in the light DOM. * If no value is provided (i.e., `this.getSlot()`), it returns all unassigned slots. * - * @example: `this.hasSlot("header")` + * @example this.hasSlot("header"); */ getSlot(name = "unassigned") { if (name !== "unassigned") { @@ -1013,4 +1024,5 @@ class PFElement extends HTMLElement { autoReveal(PFElement.log); +/** @module PFElement */ export default PFElement; diff --git a/elements/pfelement/src/polyfills--pfelement.js b/elements/pfelement/src/polyfills--pfelement.js index 9645fd12d1..db97671a4b 100644 --- a/elements/pfelement/src/polyfills--pfelement.js +++ b/elements/pfelement/src/polyfills--pfelement.js @@ -1,5 +1,5 @@ // @POLYFILL Array.includes -// https://tc39.github.io/ecma262/#sec-array.prototype.includes +/** @see https://tc39.github.io/ecma262/#sec-array.prototype.includes */ if (!Array.prototype.includes) { Object.defineProperty(Array.prototype, "includes", { value: function(valueToFind, fromIndex) { @@ -51,7 +51,7 @@ if (!Array.prototype.includes) { } // @POLYFILL Object.entries -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries +/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries */ if (!Object.entries) { Object.entries = function(obj) { var ownProps = Object.keys(obj), @@ -64,7 +64,7 @@ if (!Object.entries) { } // @POLYFILL String.startsWith -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith#polyfill +/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith#polyfill */ if (!String.prototype.startsWith) { Object.defineProperty(String.prototype, "startsWith", { value: function(search, rawPos) { diff --git a/elements/pfelement/src/reveal.js b/elements/pfelement/src/reveal.js index e240176f4e..02a34732c9 100644 --- a/elements/pfelement/src/reveal.js +++ b/elements/pfelement/src/reveal.js @@ -1,10 +1,21 @@ let logger = () => null; +/** + * Reveal web components when loading is complete by removing the unresolved attribute + * from the body tag; log the event. + * @throws debugging log indicating the reveal event + */ export function reveal() { logger(`[reveal] elements ready, revealing the body`); window.document.body.removeAttribute("unresolved"); } +/** + * Auto-reveal functionality prevents a flash of unstyled content before components + * have finished loading. + * @param {function} logFunction + * @see https://github.com/github/webcomponentsjs#webcomponents-loaderjs + */ export function autoReveal(logFunction) { logger = logFunction; // If Web Components are already ready, run the handler right away. If they @@ -22,6 +33,10 @@ export function autoReveal(logFunction) { } } +/** + * Reveal web components when loading is complete and log event. + * @throws debugging log indicating the web components are ready + */ function handleWebComponentsReady() { logger("[reveal] web components ready"); reveal(); diff --git a/generators/element/templates/scripts/gulpfile.factory.js b/generators/element/templates/scripts/gulpfile.factory.js index dc8092d575..fc7642c380 100644 --- a/generators/element/templates/scripts/gulpfile.factory.js +++ b/generators/element/templates/scripts/gulpfile.factory.js @@ -28,7 +28,7 @@ module.exports = function factory({ const fs = require("fs"); const path = require("path"); const replace = require("gulp-replace"); - const clean = require("gulp-clean"); + const del = require("del"); const gulpif = require("gulp-if"); const gulpmatch = require("gulp-match"); @@ -54,14 +54,14 @@ module.exports = function factory({ // Delete the temp directory task("clean", () => { - return src([ + return del([ paths.temp, paths.compiled ], { cwd: paths.root, read: false, allowEmpty: true - }).pipe(clean()); + }); }); // Compile the sass into css, compress, autoprefix @@ -302,14 +302,14 @@ ${fs // Delete the temp directory task("clean:post", () => { - return src([ + return del([ "*.min.css", "*.umd.js" ], { cwd: paths.temp, read: false, allowEmpty: true - }).pipe(clean()); + }); }); task( diff --git a/package-lock.json b/package-lock.json index 17cefc65d2..57d1fee93f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5870,16 +5870,6 @@ "@octokit/openapi-types": "^6.0.0" } }, - "@patternfly/patternfly": { - "version": "4.90.5", - "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-4.90.5.tgz", - "integrity": "sha512-Fe0C8UkzSjtacQ+fHXlFB/LHzrv/c2K4z479C6dboOgkGQE1FyB0wt1NBfxij0D++rhOy04OOYdE+Tr0JSlZKw==" - }, - "@patternfly/pfelement": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@patternfly/pfelement/-/pfelement-1.0.0.tgz", - "integrity": "sha512-3NLagi8LeHtdJB6LcZk1IW7XSrnyIM6wdDVpKCVN8xNUW56enuU30qBSUrRZYfsOxvSYGgwEZO6I/+SGXUP1WA==" - }, "@polymer/esm-amd-loader": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@polymer/esm-amd-loader/-/esm-amd-loader-1.0.4.tgz", @@ -10645,15 +10635,6 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -10678,15 +10659,6 @@ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", "dev": true }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -14555,6 +14527,15 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "catharsis": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", + "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", @@ -14664,6 +14645,76 @@ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", "dev": true }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=", + "dev": true + } + } + }, "chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", @@ -18799,6 +18850,12 @@ "through": "~2.3.1" } }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -18913,6 +18970,12 @@ "clone-regexp": "^1.0.0" } }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, "exit-hook": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", @@ -19595,6 +19658,12 @@ } } }, + "file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, "file-system-cache": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", @@ -20018,6 +20087,28 @@ "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", "dev": true }, + "foodoc": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/foodoc/-/foodoc-0.0.9.tgz", + "integrity": "sha1-c4IqsBvzRG7+hs3ZfobuZJZtVj8=", + "dev": true, + "requires": { + "cheerio": "^0.22.0", + "extend": "^3.0.1", + "glob": "^7.1.2", + "grunt": "^1.0.2", + "grunt-contrib-clean": "^1.1.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-cssmin": "^2.2.1", + "grunt-contrib-uglify": "^3.3.0", + "handlebars": "^4.0.11", + "handlebars-layouts": "^3.1.4", + "jsdoc": "^3.5.5", + "lunr": "^1.0.0", + "moment": "^2.22.1", + "sanitize-html": "^1.18.2" + } + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -20633,6 +20724,12 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -21720,6 +21817,501 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "grunt": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz", + "integrity": "sha512-6ILlMXv11/4cxuhSMfSU+SfvbxrPuqZrAtLN64+tZpQ3DAKfSQPQHRbTjSbdtxfyQhGZPtN0bDZJ/LdCM5WXXA==", + "dev": true, + "requires": { + "dateformat": "~3.0.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~0.3.0", + "glob": "~7.1.6", + "grunt-cli": "~1.3.2", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.0", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "mkdirp": "~1.0.4", + "nopt": "~3.0.6", + "rimraf": "~3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "grunt-cli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz", + "integrity": "sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==", + "dev": true, + "requires": { + "grunt-known-options": "~1.1.0", + "interpret": "~1.1.0", + "liftoff": "~2.5.0", + "nopt": "~4.0.1", + "v8flags": "~3.1.1" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "v8flags": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + } + } + }, + "grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "grunt-contrib-cssmin": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz", + "integrity": "sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "clean-css": "~4.1.1", + "maxmin": "^2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clean-css": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "dev": true, + "requires": { + "source-map": "0.5.x" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "grunt-contrib-uglify": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz", + "integrity": "sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A==", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "maxmin": "^2.1.0", + "uglify-js": "~3.4.0", + "uri-path": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + } + } + } + }, + "grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true + }, + "grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "requires": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + } + }, + "grunt-legacy-util": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.0.tgz", + "integrity": "sha512-ZEmYFB44bblwPE2oz3q3ygfF6hseQja9tx8I3UZIwbUik32FMWewA+d1qSFicMFB+8dNXDkh35HcDCWlpRsGlA==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.20", + "underscore.string": "~3.3.5", + "which": "~1.3.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "gud": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", @@ -21941,19 +22533,6 @@ "underscore.template": "~0.1.2" } }, - "gulp-clean": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gulp-clean/-/gulp-clean-0.4.0.tgz", - "integrity": "sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ==", - "dev": true, - "requires": { - "fancy-log": "^1.3.2", - "plugin-error": "^0.1.2", - "rimraf": "^2.6.2", - "through2": "^2.0.3", - "vinyl": "^2.1.0" - } - }, "gulp-clean-css": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.3.0.tgz", @@ -22021,6 +22600,54 @@ } } }, + "gulp-jsdoc3": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jsdoc3/-/gulp-jsdoc3-3.0.0.tgz", + "integrity": "sha512-rE2jAwCPA8XFi9g4V3Z3LPhZNjxuMTIYQVMjdqZAQpRfJITLVaUK3xfmiiNTMc7j+fT7pL8Q5yj7ZPRdwCJWNg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "beeper": "^2.0.0", + "debug": "^4.1.1", + "fancy-log": "^1.3.3", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.3", + "map-stream": "0.0.7", + "tmp": "0.1.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "beeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-2.1.0.tgz", + "integrity": "sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA==", + "dev": true, + "requires": { + "yoctodelay": "^1.1.0" + } + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + } + } + }, "gulp-match": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.1.0.tgz", @@ -22578,6 +23205,12 @@ } } }, + "handlebars-layouts": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-3.1.4.tgz", + "integrity": "sha1-JrO+uTG0uHffv35v6vQFjuYiiwI=", + "dev": true + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -22922,6 +23555,12 @@ "parse-passwd": "^1.0.0" } }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -23794,6 +24433,16 @@ } } }, + "ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "dev": true, + "requires": { + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" + } + }, "inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", @@ -25139,6 +25788,15 @@ "esprima": "^4.0.0" } }, + "js2xmlparser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "dev": true, + "requires": { + "xmlcreate": "^2.0.3" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -25294,6 +25952,63 @@ } } }, + "jsdoc": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.6.tgz", + "integrity": "sha512-znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.8.11", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^0.8.2", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.10.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "marked": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", + "dev": true + } + } + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -26164,6 +26879,15 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, "lit-html": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-1.3.0.tgz", @@ -26498,6 +27222,12 @@ } } }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=", + "dev": true + }, "lodash.bind": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-2.4.1.tgz", @@ -26566,6 +27296,12 @@ "lodash._root": "^3.0.0" } }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=", + "dev": true + }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -26578,6 +27314,12 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", + "dev": true + }, "lodash.identity": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.4.1.tgz", @@ -26643,6 +27385,12 @@ "lodash.isarray": "^3.0.0" } }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, "lodash.mapvalues": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", @@ -26686,18 +27434,42 @@ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", "dev": true }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, "lodash.pickby": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=", "dev": true }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=", + "dev": true + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=", + "dev": true + }, "lodash.restparam": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", "dev": true }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -26887,6 +27659,12 @@ "es5-ext": "~0.10.2" } }, + "lunr": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-1.0.0.tgz", + "integrity": "sha1-XJJ2ySyRrDWpJBtQGNRnI9kuL18=", + "dev": true + }, "magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", @@ -26987,6 +27765,33 @@ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", "dev": true }, + "markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + } + } + }, + "markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "dev": true + }, "markdown-to-jsx": { "version": "6.11.4", "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", @@ -26997,11 +27802,6 @@ "unquote": "^1.1.0" } }, - "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==" - }, "marky": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.1.tgz", @@ -27158,6 +27958,73 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, + "maxmin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", + "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "dev": true, + "requires": { + "duplexer": "^0.1.1" + } + }, + "pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -28328,8 +29195,7 @@ "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "dev": true, - "optional": true + "dev": true }, "mout": { "version": "1.2.2", @@ -29921,11 +30787,6 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=" - }, "nunjucks": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", @@ -30783,6 +31644,12 @@ "integrity": "sha1-dLkdLLhnXRG5mXagBl9s4X+hvMg=", "dev": true }, + "parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=", + "dev": true + }, "parse-url": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz", @@ -31336,58 +32203,6 @@ } } }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } - } - }, "plylog": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/plylog/-/plylog-1.1.0.tgz", @@ -35132,6 +35947,15 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -35657,6 +36481,145 @@ "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc=", "dev": true }, + "sanitize-html": { + "version": "1.27.5", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz", + "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==", + "dev": true, + "requires": { + "htmlparser2": "^4.1.0", + "lodash": "^4.17.15", + "parse-srcset": "^1.0.2", + "postcss": "^7.0.27" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "dom-serializer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", + "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.1.0.tgz", + "integrity": "sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.5.1.tgz", + "integrity": "sha512-hO1XwHMGAthA/1KL7c83oip/6UWo3FlUNIuWiWKltoiQ5oCOiqths8KknvY2jpOohUoUgnwa/+Rm7UpwpSbY/Q==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.1.0" + }, + "dependencies": { + "domhandler": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.1.0.tgz", + "integrity": "sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "htmlparser2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "sass-convert": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/sass-convert/-/sass-convert-0.5.2.tgz", @@ -39034,6 +39997,12 @@ } } }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, "taketalk": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/taketalk/-/taketalk-1.0.0.tgz", @@ -39933,6 +40902,12 @@ "integrity": "sha512-VwIvGlFNmpKbjzRt51jpbbFTrKIEgGHxIwA8Y69K1Bqc6bTIV7TaGGABOkghSFQWsLmcRB4drGvpfv9z2szqoQ==", "dev": true }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, "uglify-js": { "version": "3.13.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz", @@ -39997,6 +40972,16 @@ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, "underscore.template": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/underscore.template/-/underscore.template-0.1.7.tgz", @@ -40571,6 +41556,12 @@ "punycode": "^2.1.0" } }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true + }, "urijs": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.6.tgz", @@ -43021,6 +44012,12 @@ "dev": true, "optional": true }, + "xmlcreate": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", + "dev": true + }, "xmldom": { "version": "0.1.31", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", @@ -44941,6 +45938,12 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true }, + "yoctodelay": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yoctodelay/-/yoctodelay-1.2.0.tgz", + "integrity": "sha512-12y/P9MSig9/5BEhBgylss+fkHiCRZCvYR81eH35NW9uw801cvJt31EAV+WOLcwZRZbLiIQl/hxcdXXXFmGvXg==", + "dev": true + }, "yosay": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/yosay/-/yosay-2.0.2.tgz", diff --git a/package.json b/package.json index 8420f4c395..32ac452a91 100644 --- a/package.json +++ b/package.json @@ -88,16 +88,18 @@ "compression": "^1.7.4", "css-scss": "^0.1.1", "decomment": "^0.9.1", + "del": "^6.0.0", "dialog-polyfill": "^0.5.6", "dotenv": "^8.2.0", + "foodoc": "0.0.9", "ghp": "^1.3.1", "git-branch": "^2.0.1", "glob": "^7.1.6", "gulp": "^4.0.2", "gulp-banner": "^0.1.3", - "gulp-clean": "^0.4.0", "gulp-clean-css": "^4.2.0", "gulp-if": "^3.0.0", + "gulp-jsdoc3": "^3.0.0", "gulp-match": "^1.1.0", "gulp-postcss": "^9.0.0", "gulp-rename": "^2.0.0", @@ -109,6 +111,7 @@ "http-server": "^0.12.3", "husky": "^5.0.9", "inquirer": "^8.0.0", + "jsdoc": "^3.6.6", "leasot": "^11.5.0", "lerna": "^4.0.0", "lit-html": "^1.1.2", diff --git a/scripts/gulpfile.factory.js b/scripts/gulpfile.factory.js index a561450ced..e9acb44865 100644 --- a/scripts/gulpfile.factory.js +++ b/scripts/gulpfile.factory.js @@ -1,7 +1,8 @@ module.exports = function factory({ version, pfelement: { elementName, className, assets = [] }, - prebundle = [] + prebundle = [], + postbundle = [] } = {}) { elementName = elementName.replace(/s$/, ""); const { task, src, dest, watch, parallel, series } = require("gulp"); @@ -32,7 +33,7 @@ module.exports = function factory({ const fs = require("fs"); const path = require("path"); const replace = require("gulp-replace"); - const clean = require("gulp-clean"); + const del = require("del"); const gulpif = require("gulp-if"); const gulpmatch = require("gulp-match"); @@ -58,11 +59,11 @@ module.exports = function factory({ // Delete the temp directory task("clean", () => { - return src([paths.temp, paths.compiled], { + return del([paths.temp, paths.compiled], { cwd: paths.root, read: false, allowEmpty: true - }).pipe(clean()); + }); }); // Compile the sass into css, compress, autoprefix @@ -145,12 +146,12 @@ module.exports = function factory({ .trim() ); } - return ""; + return null; }; const fetchStylesheet = url => { - let result = ""; - let filename = ""; + let result = null; + let filename = null; if (url && fs.existsSync(path.join(paths.source, url))) { // Get the compiled css styles from the temp directory if (path.extname(url) === ".scss") { @@ -257,12 +258,9 @@ module.exports = function factory({ cwd: paths.source }) .pipe(replace(/extends\s+P[Ff][Ee][A-z0-9_$]*\s+{/g, embedExternal)) - // .pipe( - // replace(/get\\s+templateUrl\\([^)]*\\)\\s*{[^}]*}/g, (match, offset, string) => { - // console.log({ match, offset, string }); - // return ""; - // }) - // ) + .pipe( + replace(/{{version}}/g, version) + ) .pipe( banner( `/*! @@ -308,11 +306,11 @@ ${fs // Delete the temp directory task("clean:post", () => { - return src(["*.min.css", "*.umd.js"], { + return del(["*.min.css", "*.umd.js"], { cwd: paths.temp, read: false, allowEmpty: true - }).pipe(clean()); + }); }); task( @@ -327,6 +325,7 @@ ${fs ...prebundle, "compile", "bundle", + ...postbundle, "clean:post" ) ); @@ -342,7 +341,7 @@ ${fs // Custom tasks for components with no JS to compile task( "build:nojs", - series("clean", "compile:styles", "minify:styles", "copy:src", "copy:compiled", ...prebundle, "clean:post") + series("clean", "compile:styles", "minify:styles", "copy:src", "copy:compiled", ...prebundle, ...postbundle, "clean:post") ); task("watch:nojs", () => { From c826d8d4bd88d639cc8fe2b65f0a65fe6a6ec278 Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 13:15:05 -0400 Subject: [PATCH 2/9] feat: Update changelog --- CHANGELOG-1.x.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG-1.x.md b/CHANGELOG-1.x.md index 22de5da372..1436dcd5db 100644 --- a/CHANGELOG-1.x.md +++ b/CHANGELOG-1.x.md @@ -1,3 +1,7 @@ +# 1.5.0 (2021) + +- [](https://github.com/patternfly/patternfly-elements/commit/) feat: JSDoc preview added for PFElement + # 1.4.0 (2021-03-30) - [76c2c36](https://github.com/patternfly/patternfly-elements/commit/76c2c3689a9a338b278d99f6e2d3cbeef4f3cc3d) feat: Add performance marks to PFElement for more accurate reporting on performance From e01d4e5b203d000666e27c8d981f87d5ae775e9e Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 14:04:14 -0400 Subject: [PATCH 3/9] feat: Preserve example page --- elements/pfelement/demo/PFElement.html | 2030 ++++ elements/pfelement/demo/css/bootstrap.min.css | 6 + elements/pfelement/demo/css/prism.css | 138 + elements/pfelement/demo/css/prism.min.css | 1 + elements/pfelement/demo/css/template.min.css | 1 + elements/pfelement/demo/example.html | 99 + elements/pfelement/demo/favicon.svg | 22 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes elements/pfelement/demo/global.html | 450 + .../demo/img/pfe-icon-white-shaded.svg | 1 + elements/pfelement/demo/index.html | 304 + elements/pfelement/demo/js/bootstrap.min.js | 1447 +++ elements/pfelement/demo/js/clipboard.min.js | 543 ++ elements/pfelement/demo/js/jquery.min.js | 4619 +++++++++ elements/pfelement/demo/js/lunr-data.js | 8484 +++++++++++++++++ elements/pfelement/demo/js/lunr-data.json | 8464 ++++++++++++++++ elements/pfelement/demo/js/lunr.min.js | 751 ++ elements/pfelement/demo/js/prism.js | 874 ++ elements/pfelement/demo/js/prism.min.js | 741 ++ elements/pfelement/demo/js/template.min.js | 492 + elements/pfelement/demo/list_class.html | 160 + elements/pfelement/demo/pfelement.js.html | 1336 +++ elements/pfelement/gulpfile.js | 2 +- 27 files changed, 31252 insertions(+), 1 deletion(-) create mode 100644 elements/pfelement/demo/PFElement.html create mode 100644 elements/pfelement/demo/css/bootstrap.min.css create mode 100644 elements/pfelement/demo/css/prism.css create mode 100644 elements/pfelement/demo/css/prism.min.css create mode 100644 elements/pfelement/demo/css/template.min.css create mode 100644 elements/pfelement/demo/example.html create mode 100644 elements/pfelement/demo/favicon.svg create mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot create mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.svg create mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf create mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff create mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 create mode 100644 elements/pfelement/demo/global.html create mode 100644 elements/pfelement/demo/img/pfe-icon-white-shaded.svg create mode 100644 elements/pfelement/demo/index.html create mode 100644 elements/pfelement/demo/js/bootstrap.min.js create mode 100644 elements/pfelement/demo/js/clipboard.min.js create mode 100644 elements/pfelement/demo/js/jquery.min.js create mode 100644 elements/pfelement/demo/js/lunr-data.js create mode 100644 elements/pfelement/demo/js/lunr-data.json create mode 100644 elements/pfelement/demo/js/lunr.min.js create mode 100644 elements/pfelement/demo/js/prism.js create mode 100644 elements/pfelement/demo/js/prism.min.js create mode 100644 elements/pfelement/demo/js/template.min.js create mode 100644 elements/pfelement/demo/list_class.html create mode 100644 elements/pfelement/demo/pfelement.js.html diff --git a/elements/pfelement/demo/PFElement.html b/elements/pfelement/demo/PFElement.html new file mode 100644 index 0000000000..6cdb122a43 --- /dev/null +++ b/elements/pfelement/demo/PFElement.html @@ -0,0 +1,2030 @@ + + + + + + PFElement + + + + + + + + + + + + + + +
+
+
+ +
+
+
+

new PFElement()

+
+
+
+
Description
Serves as the baseline for all PatternFly Element components.
+
Details
+ + + + +
+ +
+

HTMLElement

+
+
+ + +
+ +
+

1.4.0

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

Members

+
+
+
+

<static> PfeTypes

+
+
+
+
Description
A global definition of component types (a general way of defining the purpose of a + component and how it is put together).
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> version

+
+
+
+
Description
The current version of a component; set by the compiler using the package.json data.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

version

+
+
+
+
Description
A local alias to the static version. + For use in the console to validate version being loaded.
+
Examples
+
PfeAccordion.version
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> properties

+
+
+
+
Description
Global property definitions: properties managed by the base class that apply to all components.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

randomId

+
+
+
+
Description
A quick way to fetch a random ID value. + _Note:_ All values are prefixes with `pfe` automatically to ensure an ID-safe value is returned.
+
Examples
+
this.id = this.randomID;
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

contextVariable

+
+
+
+
Description
Set the --context variable with the provided value in this component.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

contextVariable

+
+
+
+
Description
Get the current value of the --context variable in this component.
+
Returns
+
+ +
+
[dark|light|saturated]
+
+
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> allProperties

+
+
+
+
Description
allProperties returns an object containing PFElement's global properties + and the descendents' (such as PfeCard, etc) component properties. The two + objects are merged together and in the case of a property name conflict, + PFElement's properties override the component's properties.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> cascadingProperties

+
+
+
+
Description
cascadingProperties returns an object containing PFElement's global properties + and the descendents' (such as PfeCard, etc) component properties. The two + objects are merged together and in the case of a property name conflict, + PFElement's properties override the component's properties.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+

Methods

+
+
+
+

<static> debugLog()

+
+
+
+
Description
A boolean value that indicates if the logging should be printed to the console; used for debugging. + For use in a JS file or script tag; can also be added in the constructor of a component during development.
+
Examples
+
PFElement._debugLog = true;
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> trackPerformance()

+
+
+
+
Description
A boolean value that indicates if the performance should be tracked. + For use in a JS file or script tag; can also be added in the constructor of a component during development.
+
Examples
+
PFElement._trackPerformance = true;
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> log()

+
+
+
+
Description
A logging wrapper which checks the debugLog boolean and prints to the console if true.
+
Examples
+
PFElement.log("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

log()

+
+
+
+
Description
Local logging that outputs the tag name as a prefix automatically
+
Examples
+
this.log("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> warn()

+
+
+
+
Description
A console warning wrapper which formats your output with useful debugging information.
+
Examples
+
PFElement.warn("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

warn()

+
+
+
+
Description
Local warning wrapper that outputs the tag name as a prefix automatically. + For use inside a component's function.
+
Examples
+
this.warn("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> error()

+
+
+
+
Description
A console error wrapper which formats your output with useful debugging information. + For use inside a component's function.
+
Examples
+
PFElement.error("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

error()

+
+
+
+
Description
Local error wrapper that outputs the tag name as a prefix automatically. + For use inside a component's function.
+
Examples
+
this.error("Hello");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

hasLightDOM() → {boolean}

+
+
+
+
Description
Returns a boolean statement of whether or not this component contains any light DOM.
+
Returns
+
+ +
+
+
+
+
+
Examples
+
if(this.hasLightDOM()) this._init();
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

hasSlot()

+
+
+
+
Description
Returns a boolean statement of whether or not that slot exists in the light DOM.
+
Examples
+
this.hasSlot("header");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

getSlot()

+
+
+
+
Description
Returns an array with all the slot with the provided name defined in the light DOM. + If no value is provided (i.e., `this.getSlot()`), it returns all unassigned slots.
+
Examples
+
this.hasSlot("header");
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

contextUpdate()

+
+
+
+
Description
This alerts nested components to a change in the context
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

connectedCallback()

+
+
+
+
Description
Standard connected callback; fires when the component is added to the DOM.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

disconnectedCallback()

+
+
+
+
Description
Standard disconnected callback; fires when a componet is removed from the DOM. + Add your removeEventListeners here.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

attributeChangedCallback()

+
+
+
+
Description
Attribute changed callback fires when attributes are updated. + This combines the global and the component-specific logic.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

render()

+
+
+
+
Description
Standard render function.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

emitEvent()

+
+
+
+
Description
A wrapper around an event dispatch to standardize formatting.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

cascadeProperties()

+
+
+
+
Description
Handles the cascading of properties to nested components when new elements are added + Attribute updates/additions are handled by the attribute callback
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_upgradeObserver()

+
+
+
+
Description
This responds to changes in the pfelement attribute; indicates if the component upgraded
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ +
+

maybe we should use just the attribute instead of the class? + https://github.com/angular/angular/issues/15399#issuecomment-318785677

+
+
+ +
+
+
+
+
+

_contextObserver()

+
+
+
+
Description
This responds to changes in the context attribute; manual override tool
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_onObserver()

+
+
+
+
Description
This responds to changes in the context; source of truth for components
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_inlineStyleObserver()

+
+
+
+
Description
This responds to inline style changes and greps for context or theme updates.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_parseObserver()

+
+
+
+
Description
This is connected with a mutation observer that watches for updates to the light DOM + and pushes down the cascading values
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _validateProperties()

+
+
+
+
Description
Validate that the property meets the requirements for type and naming.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_castPropertyValue()

+
+
+
+
Description
Convert provided property value to the correct type as defined in the properties method.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_assignValueToAttribute()

+
+
+
+
Description
Map provided value to the attribute name on the component.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_initializeSlots()

+
+
+
+
Description
Maps the defined slots into an object that is easier to query
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_initializeProperties()

+
+
+
+
Description
Sets up the property definitions based on the properties method.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_initializeAttributeDefaults()

+
+
+
+
Description
Intialize the default value for an attribute.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

_validateAttributeValue()

+
+
+
+
Description
Validate the value against provided values.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _prop2attr()

+
+
+
+
Description
Look up an attribute name linked to a given property name.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _attr2prop()

+
+
+
+
Description
Look up an property name linked to a given attribute name.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _convertPropNameToAttrName()

+
+
+
+
Description
Convert a property name to an attribute name.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _convertAttrNameToPropName()

+
+
+
+
Description
Convert an attribute name to a property name.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> create()

+
+
+
+
Description
Caching the attributes and properties data for efficiency
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _setCache()

+
+
+
+
Description
Cache an object in a given cache namespace. This overwrites anything + already in that namespace.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _getCache()

+
+
+
+
Description
Get a cached object by namespace, or get all cached objects.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

<static> _populateCache()

+
+
+
+
Description
Populate initial values for properties cache.
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/demo/css/bootstrap.min.css b/elements/pfelement/demo/css/bootstrap.min.css new file mode 100644 index 0000000000..ed3905e0e0 --- /dev/null +++ b/elements/pfelement/demo/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/elements/pfelement/demo/css/prism.css b/elements/pfelement/demo/css/prism.css new file mode 100644 index 0000000000..9010cb637e --- /dev/null +++ b/elements/pfelement/demo/css/prism.css @@ -0,0 +1,138 @@ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/elements/pfelement/demo/css/prism.min.css b/elements/pfelement/demo/css/prism.min.css new file mode 100644 index 0000000000..f51e15de5d --- /dev/null +++ b/elements/pfelement/demo/css/prism.min.css @@ -0,0 +1 @@ +code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre{border:1px solid #e1e1e8}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#f7f7f9}code[class*=language-],pre[class*=language-]{text-shadow:none;color:#333;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.namespace{opacity:1}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:0 0}.token.boolean,.token.constant,.token.deleted,.token.number,.token.symbol{color:#270dd1}.token.atrule,.token.attr-value{color:#270dd1}.token.keyword,.token.tag{color:#aa0d91}.token.builtin,.token.char,.token.inserted,.token.property,.token.string{color:#c41a16}.language-css .token.string,.token.url{color:#40a9b1}.token.attr-name{color:#994500}.token.cdata,.token.doctype,.token.prolog{color:#999}.token.comment{color:#007400}.language-html .token.punctuation,.language-markup .token.punctuation{color:#b2a1b0}.token.function,.token.operator,.token.punctuation,.token.selector{color:#333}pre.line-numbers{position:relative;padding-left:4.8em;counter-reset:linenumber}pre.line-numbers>code{position:relative}.line-numbers .line-numbers-rows{position:absolute;top:0;font-size:100%;left:-4.8em;width:4em;letter-spacing:-1px;border-right:1px solid #e1e1e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>a{display:block;counter-increment:linenumber;color:#bdbdbd}.line-numbers-rows>a:hover{color:#9b9b9b}.line-numbers-rows>a:before{content:counter(linenumber);display:block;padding-right:.8em;text-align:right}pre.code-toolbar{position:relative}pre.code-toolbar>.toolbar{position:absolute;top:0;right:0;z-index:10;display:block;padding:0;font-size:12px;color:#767676;cursor:pointer;background-color:#fff;border-left:1px solid #e1e1e8;border-bottom:1px solid #e1e1e8;border-radius:0 4px 0 4px}pre.code-toolbar>.toolbar:hover{color:#fff;background-color:#337ab7;border-left-color:#337ab7;border-bottom-color:#337ab7}pre.code-toolbar>.toolbar .toolbar-item{display:inline-block}pre.code-toolbar>.toolbar a{cursor:pointer}pre.code-toolbar>.toolbar button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}pre.code-toolbar>.toolbar a,pre.code-toolbar>.toolbar button,pre.code-toolbar>.toolbar span{color:inherit;padding:5px 8px;display:inline-block}pre.code-toolbar>.toolbar a:focus,pre.code-toolbar>.toolbar a:hover,pre.code-toolbar>.toolbar button:focus,pre.code-toolbar>.toolbar button:hover,pre.code-toolbar>.toolbar span:focus,pre.code-toolbar>.toolbar span:hover{color:inherit;text-decoration:none} \ No newline at end of file diff --git a/elements/pfelement/demo/css/template.min.css b/elements/pfelement/demo/css/template.min.css new file mode 100644 index 0000000000..abbb34cec0 --- /dev/null +++ b/elements/pfelement/demo/css/template.min.css @@ -0,0 +1 @@ +html{margin-top:50px;background-color:#f9f9f9}.navbar-brand.branding-logo{background-position:15px center;background-size:40px;background-repeat:no-repeat;text-indent:44px}.main-content{padding-bottom:200px}.main-content h1,.main-content h2{border-bottom:1px solid #eee;margin-top:20px;margin-bottom:20px;padding-bottom:9px}.main-content .primary p+h1,.main-content .primary p+h2,.main-content .readme-section p+h1,.main-content .readme-section p+h2,.main-content .related-tutorials h2,.main-content .tutorial-section p+h1,.main-content .tutorial-section p+h2{margin-top:40px}footer{width:100%;max-width:100%;overflow:hidden;padding:15px;text-align:center;background-color:#f9f9f9;border-top:solid 1px #ddd;font-size:small;color:#777}.callout{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px}.callout h5{margin-top:0;margin-bottom:5px;font-family:inherit;font-weight:500;line-height:1.1;font-size:18px}.callout p:last-child,.callout table:last-child{margin-bottom:0}.callout code{border-radius:3px}.callout .control-label{color:#999;font-weight:400}.callout+.callout{margin-top:-5px}.callout-default{border-left-color:#999}.callout-default h5{color:#999}.callout-primary{border-left-color:#337ab7}.callout-primary h5{color:#337ab7}.callout-success{border-left-color:#5cb85c}.callout-success h5{color:#5cb85c}.callout-danger{border-left-color:#d9534f}.callout-danger h5{color:#d9534f}.callout-warning{border-left-color:#f0ad4e}.callout-warning h5{color:#f0ad4e}.callout-info{border-left-color:#87b9f1}.callout-info h5{color:#87b9f1}.callout-rpc{border-left-color:#c7bfd3}.callout-rpc h5{color:#c7bfd3}.callout-example{border-left-color:#8461b9}.callout-example h5{color:#8461b9}.callout .form-group{margin-bottom:5px}.callout .form-group>div.control-static>p{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.callout .table>thead>tr>th{font-weight:400}.page-header{margin-top:0;margin-bottom:40px;padding:15px 0;background-color:#337ab7}.page-header .kind{font-size:50px;line-height:1.1;text-transform:uppercase;opacity:.1;position:absolute;right:15px;color:#fff}.page-header h1{font-size:36px;line-height:1.1;margin-top:0;color:#fff}.page-header .ancestors{display:block;font-size:16px}.page-header .ancestors a{color:#fff;opacity:.3}.page-header .ancestors a:hover{opacity:1;text-decoration:underline}.page-header .ancestors+.name{margin-left:15px}.page-header p{font-size:20px;margin-bottom:0;font-weight:300;line-height:1.4;color:#d0d0d0}.page-header .container{position:relative}#topNavigation .dropdown-menu{max-height:640px;max-height:calc(100vh - 62px);overflow-y:auto}@media (min-width:768px){.page-header{padding-top:60px;padding-bottom:60px;text-align:left}.page-header .kind{font-size:80px;line-height:1}.page-header h1{font-size:60px;line-height:1}.page-header .ancestors{font-size:20px}.page-header p{font-size:24px}}dl.symbol dl.symbol{margin-left:15px;margin-bottom:15px}.symbol-title h1,.symbol-title h2,.symbol-title h3,.symbol-title h4,.symbol-title h5{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding-left:50px;text-indent:-50px}.main-content .symbol-title h1,.main-content .symbol-title h2{border-bottom:none;margin-bottom:inherit}.symbol-title .name-signature,.symbol-title .signature-params{color:#222}.symbol-title .name-string,.symbol-title .signature-param,.symbol-title h4.event{color:#c7254e}.symbol-details{overflow:hidden}.symbol-title.collapsible-symbol{cursor:pointer}.symbol-title.collapsible-symbol .toggle-icon{color:#337ab7;text-indent:0}.symbol-title.collapsible-symbol:hover .toggle-icon{opacity:.8}.symbol-details.collapsible-symbol{max-height:0}.symbol-details.collapsible-symbol.transition{transition:max-height .4s ease-in}.summary{font-size:15px;font-weight:400;color:grey}.signature-attribs,.signature-new,.signature-type{color:#adadad;font-size:smaller}.anchored{position:relative}.anchor-link{position:absolute;left:-55px;padding-right:15px;text-indent:0;display:inline-block;min-width:60px;text-align:right;opacity:0;visibility:hidden;color:#999}.anchor-link:hover{color:#777}.expanded .anchor-link,h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link{opacity:1;visibility:visible}.breadcrumb li a{color:#337ab7}.dummy-console{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;resize:vertical;margin-bottom:15px}#lunr-search-footer .pagination{margin:0}.lunr-search-results-page{list-style:none;padding:0;display:none}.lunr-search-results-page.active{display:block}.lunr-search-results-page li{list-style:none;margin-bottom:20px}span.lunr-search-result-kind{text-transform:capitalize}a.lunr-search-result-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.lunr-search-result-title:hover{text-decoration:underline}p.lunr-search-result-url{color:#006621;font-size:13px;line-height:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}p.lunr-search-result-summary{color:#999;font-size:13px;line-height:16px;margin:0;overflow:hidden;max-height:48px;text-overflow:ellipsis}@media (min-width:992px){.navbar-form{width:228px}}@media (min-width:1200px){.navbar-form{width:278px}}.related-tutorials ul{margin-top:20px}.related-tutorials ul li a{font-size:16px;margin:5px 0;display:inline-block}.toc.affix{position:static}.toc-nav{margin-top:5px;padding-bottom:10px;max-height:95%;max-height:calc(100% - 2em);overflow-y:auto}.toc .nav>li>a{display:block;padding:4px 4px 4px 36px;text-indent:-20px;font-size:14px;font-weight:500;color:#767676}.toc .nav>li>a:focus,.toc .nav>li>a:hover{padding-left:35px;color:#337ab7;text-decoration:none;background-color:transparent;border-left:1px solid #337ab7}.toc .nav>li.active>a,.toc .nav>li.active>a:focus,.toc .nav>li.active>a:hover{padding-left:34px;color:#337ab7;background-color:transparent;border-left:2px solid #337ab7}.toc .nav .nav{display:none;padding-bottom:10px}.toc .nav .nav>li>a{font-size:13px;padding-left:39px;font-weight:400}.toc .nav .nav>li>a:focus,.toc .nav .nav>li>a:hover{padding-left:38px}.toc .nav .nav>li.active>a,.toc .nav .nav>li.active>a:focus,.toc .nav .nav>li.active>a:hover{padding-left:37px}.toc .nav .nav .nav>li>a{font-size:12px;padding-left:44px}.toc .nav .nav .nav>li>a:focus,.toc .nav .nav .nav>li>a:hover{padding-left:43px}.toc .nav .nav .nav>li.active>a,.toc .nav .nav .nav>li.active>a:focus,.toc .nav .nav .nav>li.active>a:hover{padding-left:42px}.toc .nav .nav .nav .nav>li>a{font-size:12px;padding-left:49px}.toc .nav .nav .nav .nav>li>a:focus,.toc .nav .nav .nav .nav>li>a:hover{padding-left:48px}.toc .nav .nav .nav .nav>li.active>a,.toc .nav .nav .nav .nav>li.active>a:focus,.toc .nav .nav .nav .nav>li.active>a:hover{padding-left:47px}.toc .nav>li>a .name-require{color:#767676}.toc .nav>li>a>.ancestors>span{color:#337ab7}.toc .nav>li>a .signature-attribs{font-weight:400}.toc .nav>li>a .name-signature,.toc .nav>li>a .signature-params{color:#000}.toc .nav>li.event>a .name,.toc .nav>li>a .name-string,.toc .nav>li>a .signature-param{color:#c7254e}.back-to-top{display:none;padding:4px 10px;margin-top:10px;margin-left:10px;font-size:12px;font-weight:500;color:#999;cursor:pointer}.back-to-top:hover{color:#337ab7;text-decoration:none}@media (min-width:768px){.back-to-top{display:block}}@media (min-width:992px){.toc .nav>.active>ul{display:block}.toc.affix,.toc.affix-bottom{width:213px}.toc.affix{position:fixed;top:67px;height:calc(100% - 67px - 50px)}.toc.affix-bottom{position:absolute}.toc.affix .toc-nav,.toc.affix-bottom .toc-nav{margin-top:0;margin-bottom:0}}@media (min-width:1200px){.toc.affix,.toc.affix-bottom{width:263px}}.access-filter{text-align:right;font-size:12px;padding:8px 15px;margin-top:0;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px;color:#767676}.breadcrumb+.access-filter{margin-top:-25px;margin-bottom:0}.access-filter .checkbox-inline input[type=checkbox]{margin:1px 0 0 -17px}.access-filter .checkbox-inline,.access-filter .checkbox-inline:before{color:#767676}.access-filter .checkbox-inline.checked,.access-filter .checkbox-inline:focus,.access-filter .checkbox-inline:hover{color:#337ab7}.access-filter .checkbox-inline:before{display:inline-block;position:relative;left:-25px}.access-filter .checkbox-inline:first-of-type:before{content:"Show -"}.access-filter .checkbox-inline+.checkbox-inline:before{content:"|"} \ No newline at end of file diff --git a/elements/pfelement/demo/example.html b/elements/pfelement/demo/example.html new file mode 100644 index 0000000000..aff7fd2a07 --- /dev/null +++ b/elements/pfelement/demo/example.html @@ -0,0 +1,99 @@ + + + + + PFElements: Base Class Demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/elements/pfelement/demo/favicon.svg b/elements/pfelement/demo/favicon.svg new file mode 100644 index 0000000000..c6bb6ba0aa --- /dev/null +++ b/elements/pfelement/demo/favicon.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/elements/pfelement/demo/global.html b/elements/pfelement/demo/global.html new file mode 100644 index 0000000000..0ff39b054a --- /dev/null +++ b/elements/pfelement/demo/global.html @@ -0,0 +1,450 @@ + + + + + + Globals + + + + + + + + + + + + + + +
+
+
+ +
+
+

Methods

+
+
+
+

reveal()

+
+
+
+
Description
Reveal web components when loading is complete by removing the unresolved attribute + from the body tag; log the event.
+
Throws
+
+ +
+
debugging log indicating the reveal event
+
+
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

autoReveal( logFunction )

+
+
+
+
Description
Auto-reveal functionality prevents a flash of unstyled content before components + have finished loading.
+
+
Parameters
+ + + + + + + + + + + + + + + +
NameTypeDescription
logFunctionfunction +
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + + + +
+
+
+
+
+

handleWebComponentsReady()

+
+
+
+
Description
Reveal web components when loading is complete and log event.
+
Throws
+
+ +
+
debugging log indicating the web components are ready
+
+
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+

isAllowedType( definition ) → {Boolean}

+
+
+
+
Description
Verify that a property definition's `type` field contains one of the allowed + types. If the definition type resolves to falsy, assumes String type.
+
+
Parameters
+ + + + + + + + + + + + + + + +
NameTypeDescription
definitionconstructor +
+
+
Returns
+
+ +
+
True if the definition type is one of String, Number, or Boolean
+
+
+
+
Details
+ + + +
+ +
+

String

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

isValidDefaultType( definition ) → {Boolean}

+
+
+
+
Description
Verify that a property definition's `default` value is of the correct type. + + A `default` value is valid if it's of the same type as the `type` + definition. Or, if there is no `type` definition, then it must be a String + (the default value for `type`).
+
+
Parameters
+ + + + + + + + + + + + + + + +
NameTypeDescription
definitiontype +
+
+
Returns
+
+ +
+
True if the default value matches the type of the definition object.
+
+
+
+
Details
+ + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+
+
+
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/demo/img/pfe-icon-white-shaded.svg b/elements/pfelement/demo/img/pfe-icon-white-shaded.svg new file mode 100644 index 0000000000..fc6e84c42d --- /dev/null +++ b/elements/pfelement/demo/img/pfe-icon-white-shaded.svg @@ -0,0 +1 @@ +PatternFly Elements Icon White (shaded) \ No newline at end of file diff --git a/elements/pfelement/demo/index.html b/elements/pfelement/demo/index.html new file mode 100644 index 0000000000..862f8619c4 --- /dev/null +++ b/elements/pfelement/demo/index.html @@ -0,0 +1,304 @@ + + + + + + + PatternFly Elements + + + + + + + + + + + + + + +
+
+
+
+

PFElement Element

+

This is the base element that all other PFElements should extend. It handles setting up a shadow root and applies Shady CSS if it is needed.

+

To create a new PFElement, use npm run new from the root of the PFElements repo. After answering a few questions, a new element will be generated for you by generator-pfelement.

+

Here is an example of a new element and how it extends the base PFElement.

+
import PFElement from "../pfelement/dist/pfelement.js";
+
+class MyElement extends PFElement {
+  // The HTML tag name for this element.  This will be passed into `customElements.define()`.
+  static get tag() {
+    return "my-element";
+  }
+
+  // The path to the element's SCSS file.  It is compiled to CSS at build time.
+  get styleUrl() {
+    return "my-element.scss";
+  }
+
+  // The path to the element's template.  This used at build time.
+  get templateUrl() {
+    return "my-element.html";
+  }
+
+  constructor() {
+    // The call to super is first and contains a reference to the class itself.
+    // This allows the base class to see any of MyElement's static properties.
+    super(MyElement);
+
+    // any other work to do during the constructor goes here
+  }
+
+  // connectedCallback runs when the element is placed into the DOM.  Note that
+  // in dynamic apps, this _can_ happen more than once, for instance if an
+  // element is moved from one part of the DOM tree to another.
+  connectedCallback() {
+    // super's connectedCallback goes first
+    super.connectedCallback();
+
+    // any other work to do during connectedCallback goes here
+  }
+}
+
+PFElement.create(MyElement);
+
+

Tooling / functions

+

The base class has a set of tools available for use inside all web components extending it.

+

Types

+

Define the type of your web component by extending the PfeTypes getter. A component can be classified as container, content, or combo. These are defined in more detail in the documentation.

+
  // Declare the type of this component
+  static get PfeType() {
+    return PFElement.PfeTypes.Container;
+  }
+
+

Context

+

All components automatically observe and react to the attribute on which can equal 1 of 3 possible options:

+
    +
  • light
  • +
  • dark
  • +
  • saturated
  • +
+

Context is automatically passed down from parent components to their children (often being defined by container elements and observed and acted upon by content components) without manual intervention by a developer. This is done through the on attribute. The on attribute should not be manually edited or added or manipulated by the JavaScript of a component.

+

Adding the context attribute to any component will break that inheritance and manually invoke your preferred context. This is a way to opt-out of the contexts provided by parent elements. Only add this attribute if you want to walk away from inherited context.

+

Random ID

+

Need to set a random ID on any part of your web component? Use the randomId getter:

+
  this.newId = this.randomId;
+
+

CSS Variables

+

You can query for or set the value of a CSS variable using the cssVariable function. It has 3 possible inputs:

+
    +
  1. name: The name of the CSS variable you are querying for (you can omit the -- at the beginning).
  2. +
  3. value: This input is optional. By passing in a value to the function, you are opting to set the variable name you provided equal to the value you have passed in.
  4. +
  5. element: This defaults to the this context of the web component calling the function but you can pass in any element. This is useful if you want to attach a specific CSS Variable to a shadow element in your template for example.
  6. +
+

Querying for a variable's value:

+
this.cssVariable("pfe-cta--Color");
+
+

Setting a value for a variable:

+
this.cssVariable("pfe-cta--Color", "#333");
+
+

Setting a value for a variable on a template element:

+
this.cssVariable("pfe-cta--Color", "#333", this.shadowRoot.querySelector(".pfe-cta--arrow"));
+
+

Querying for a slot(s)

+

There are 2 functions, hasSlot and getSlot which allow you to query for the existence of a slot in the light DOM. These are useful in the templates as a means of avoiding printing empty slots or wrappers.

+
    +
  • +

    hasSlot: Accepts the name of the slot you are querying for (does not work for default slots yet) and returns a NodeElement of that slot if it exists and null if it does not.

    +
  • +
  • +

    getSlot: Accepts the name of the slot you are querying for (does not work for default slots yet) and returns a NodeList of all elements assigned to that slot, if they exist, and null if they do not.

    +
  • +
+

Context set and update

+ +

There are 2 functions for updating the context of a component. The first, setContext, will update the context of the component calling the function using the following logic:

+
    +
  1. Check that element for the value of the --context variable, if it exists.
  2. +
  3. If it does not exist, the component then checks for a context attribute.
  4. +
  5. Finally, if neither has a value, the optional feedback input value is used.
  6. +
+

If a value is defined at any point of this flow, an on attribute will be attached and assigned that value.

+

The context_update function will use much the same logic except it updates the context for the component calling the function and triggers an update for all of it's pfelement children.

+

Log

+

Prints a message to the console log in a standardized format when debugging is turned on: [pfe-band]: This is my console message.. To invoke this inside an element, you can add this.log("This is my console message"); to your JS file.

+

Emit event

+

This allows you to dispatch an event in a standardized way. The function accepts the name of the event and an object containing details about that event. That object supports the following configuration:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Event settingDefault value
bubblestrue
cancelabletrue
composedfalse
detail{}
+

Elements should contain an events object which lists all the event names:

+
static get events() {
+  return {
+    change: `${this.tag}:change`
+  };
+}
+
+

And then reference that object in the following way to invoke those events:

+
this.emitEvent(
+  PfeAccordion.events.change, {
+    detail: {
+      expanded: !this.expanded
+    }
+  }
+);
+
+

Test

+
npm run test
+
+

Build

+
npm run build
+
+

Demo

+

From the PFElements root directory, run:

+
npm start
+
+

Code style

+

PFElement (and all PFElements) use Prettier to auto-format JS and JSON. The style rules get applied when you commit a change. If you choose to, you can integrate your editor with Prettier to have the style rules applied on every save.

+
+
+
+ +
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/demo/js/bootstrap.min.js b/elements/pfelement/demo/js/bootstrap.min.js new file mode 100644 index 0000000000..8eedebae35 --- /dev/null +++ b/elements/pfelement/demo/js/bootstrap.min.js @@ -0,0 +1,1447 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); ++(function(a) { + "use strict"; + var b = a.fn.jquery.split(" ")[0].split("."); + if ((b[0] < 2 && b[1] < 9) || (1 == b[0] && 9 == b[1] && b[2] < 1) || b[0] > 3) + throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"); +})(jQuery), + +(function(a) { + "use strict"; + function b() { + var a = document.createElement("bootstrap"), + b = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend" + }; + for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; + return !1; + } + (a.fn.emulateTransitionEnd = function(b) { + var c = !1, + d = this; + a(this).one("bsTransitionEnd", function() { + c = !0; + }); + var e = function() { + c || a(d).trigger(a.support.transition.end); + }; + return setTimeout(e, b), this; + }), + a(function() { + (a.support.transition = b()), + a.support.transition && + (a.event.special.bsTransitionEnd = { + bindType: a.support.transition.end, + delegateType: a.support.transition.end, + handle: function(b) { + if (a(b.target).is(this)) return b.handleObj.handler.apply(this, arguments); + } + }); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var c = a(this), + e = c.data("bs.alert"); + e || c.data("bs.alert", (e = new d(this))), "string" == typeof b && e[b].call(c); + }); + } + var c = '[data-dismiss="alert"]', + d = function(b) { + a(b).on("click", c, this.close); + }; + (d.VERSION = "3.3.7"), + (d.TRANSITION_DURATION = 150), + (d.prototype.close = function(b) { + function c() { + g.detach() + .trigger("closed.bs.alert") + .remove(); + } + var e = a(this), + f = e.attr("data-target"); + f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, ""))); + var g = a("#" === f ? [] : f); + b && b.preventDefault(), + g.length || (g = e.closest(".alert")), + g.trigger((b = a.Event("close.bs.alert"))), + b.isDefaultPrevented() || + (g.removeClass("in"), + a.support.transition && g.hasClass("fade") + ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) + : c()); + }); + var e = a.fn.alert; + (a.fn.alert = b), + (a.fn.alert.Constructor = d), + (a.fn.alert.noConflict = function() { + return (a.fn.alert = e), this; + }), + a(document).on("click.bs.alert.data-api", c, d.prototype.close); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.button"), + f = "object" == typeof b && b; + e || d.data("bs.button", (e = new c(this, f))), "toggle" == b ? e.toggle() : b && e.setState(b); + }); + } + var c = function(b, d) { + (this.$element = a(b)), (this.options = a.extend({}, c.DEFAULTS, d)), (this.isLoading = !1); + }; + (c.VERSION = "3.3.7"), + (c.DEFAULTS = { loadingText: "loading..." }), + (c.prototype.setState = function(b) { + var c = "disabled", + d = this.$element, + e = d.is("input") ? "val" : "html", + f = d.data(); + (b += "Text"), + null == f.resetText && d.data("resetText", d[e]()), + setTimeout( + a.proxy(function() { + d[e](null == f[b] ? this.options[b] : f[b]), + "loadingText" == b + ? ((this.isLoading = !0), + d + .addClass(c) + .attr(c, c) + .prop(c, !0)) + : this.isLoading && + ((this.isLoading = !1), + d + .removeClass(c) + .removeAttr(c) + .prop(c, !1)); + }, this), + 0 + ); + }), + (c.prototype.toggle = function() { + var a = !0, + b = this.$element.closest('[data-toggle="buttons"]'); + if (b.length) { + var c = this.$element.find("input"); + "radio" == c.prop("type") + ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) + : "checkbox" == c.prop("type") && + (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), + c.prop("checked", this.$element.hasClass("active")), + a && c.trigger("change"); + } else + this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active"); + }); + var d = a.fn.button; + (a.fn.button = b), + (a.fn.button.Constructor = c), + (a.fn.button.noConflict = function() { + return (a.fn.button = d), this; + }), + a(document) + .on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) { + var d = a(c.target).closest(".btn"); + b.call(d, "toggle"), + a(c.target).is('input[type="radio"], input[type="checkbox"]') || + (c.preventDefault(), + d.is("input,button") + ? d.trigger("focus") + : d + .find("input:visible,button:visible") + .first() + .trigger("focus")); + }) + .on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) { + a(b.target) + .closest(".btn") + .toggleClass("focus", /^focus(in)?$/.test(b.type)); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.carousel"), + f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), + g = "string" == typeof b ? b : f.slide; + e || d.data("bs.carousel", (e = new c(this, f))), + "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle(); + }); + } + var c = function(b, c) { + (this.$element = a(b)), + (this.$indicators = this.$element.find(".carousel-indicators")), + (this.options = c), + (this.paused = null), + (this.sliding = null), + (this.interval = null), + (this.$active = null), + (this.$items = null), + this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), + "hover" == this.options.pause && + !("ontouchstart" in document.documentElement) && + this.$element + .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) + .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)); + }; + (c.VERSION = "3.3.7"), + (c.TRANSITION_DURATION = 600), + (c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }), + (c.prototype.keydown = function(a) { + if (!/input|textarea/i.test(a.target.tagName)) { + switch (a.which) { + case 37: + this.prev(); + break; + case 39: + this.next(); + break; + default: + return; + } + a.preventDefault(); + } + }), + (c.prototype.cycle = function(b) { + return ( + b || (this.paused = !1), + this.interval && clearInterval(this.interval), + this.options.interval && + !this.paused && + (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), + this + ); + }), + (c.prototype.getItemIndex = function(a) { + return (this.$items = a.parent().children(".item")), this.$items.index(a || this.$active); + }), + (c.prototype.getItemForDirection = function(a, b) { + var c = this.getItemIndex(b), + d = ("prev" == a && 0 === c) || ("next" == a && c == this.$items.length - 1); + if (d && !this.options.wrap) return b; + var e = "prev" == a ? -1 : 1, + f = (c + e) % this.$items.length; + return this.$items.eq(f); + }), + (c.prototype.to = function(a) { + var b = this, + c = this.getItemIndex((this.$active = this.$element.find(".item.active"))); + if (!(a > this.$items.length - 1 || a < 0)) + return this.sliding + ? this.$element.one("slid.bs.carousel", function() { + b.to(a); + }) + : c == a + ? this.pause().cycle() + : this.slide(a > c ? "next" : "prev", this.$items.eq(a)); + }), + (c.prototype.pause = function(b) { + return ( + b || (this.paused = !0), + this.$element.find(".next, .prev").length && + a.support.transition && + (this.$element.trigger(a.support.transition.end), this.cycle(!0)), + (this.interval = clearInterval(this.interval)), + this + ); + }), + (c.prototype.next = function() { + if (!this.sliding) return this.slide("next"); + }), + (c.prototype.prev = function() { + if (!this.sliding) return this.slide("prev"); + }), + (c.prototype.slide = function(b, d) { + var e = this.$element.find(".item.active"), + f = d || this.getItemForDirection(b, e), + g = this.interval, + h = "next" == b ? "left" : "right", + i = this; + if (f.hasClass("active")) return (this.sliding = !1); + var j = f[0], + k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); + if ((this.$element.trigger(k), !k.isDefaultPrevented())) { + if (((this.sliding = !0), g && this.pause(), this.$indicators.length)) { + this.$indicators.find(".active").removeClass("active"); + var l = a(this.$indicators.children()[this.getItemIndex(f)]); + l && l.addClass("active"); + } + var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: h }); + return ( + a.support.transition && this.$element.hasClass("slide") + ? (f.addClass(b), + f[0].offsetWidth, + e.addClass(h), + f.addClass(h), + e + .one("bsTransitionEnd", function() { + f.removeClass([b, h].join(" ")).addClass("active"), + e.removeClass(["active", h].join(" ")), + (i.sliding = !1), + setTimeout(function() { + i.$element.trigger(m); + }, 0); + }) + .emulateTransitionEnd(c.TRANSITION_DURATION)) + : (e.removeClass("active"), f.addClass("active"), (this.sliding = !1), this.$element.trigger(m)), + g && this.cycle(), + this + ); + } + }); + var d = a.fn.carousel; + (a.fn.carousel = b), + (a.fn.carousel.Constructor = c), + (a.fn.carousel.noConflict = function() { + return (a.fn.carousel = d), this; + }); + var e = function(c) { + var d, + e = a(this), + f = a(e.attr("data-target") || ((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""))); + if (f.hasClass("carousel")) { + var g = a.extend({}, f.data(), e.data()), + h = e.attr("data-slide-to"); + h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault(); + } + }; + a(document) + .on("click.bs.carousel.data-api", "[data-slide]", e) + .on("click.bs.carousel.data-api", "[data-slide-to]", e), + a(window).on("load", function() { + a('[data-ride="carousel"]').each(function() { + var c = a(this); + b.call(c, c.data()); + }); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + var c, + d = b.attr("data-target") || ((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")); + return a(d); + } + function c(b) { + return this.each(function() { + var c = a(this), + e = c.data("bs.collapse"), + f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); + !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), + e || c.data("bs.collapse", (e = new d(this, f))), + "string" == typeof b && e[b](); + }); + } + var d = function(b, c) { + (this.$element = a(b)), + (this.options = a.extend({}, d.DEFAULTS, c)), + (this.$trigger = a( + '[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]' + )), + (this.transitioning = null), + this.options.parent + ? (this.$parent = this.getParent()) + : this.addAriaAndCollapsedClass(this.$element, this.$trigger), + this.options.toggle && this.toggle(); + }; + (d.VERSION = "3.3.7"), + (d.TRANSITION_DURATION = 350), + (d.DEFAULTS = { toggle: !0 }), + (d.prototype.dimension = function() { + var a = this.$element.hasClass("width"); + return a ? "width" : "height"; + }), + (d.prototype.show = function() { + if (!this.transitioning && !this.$element.hasClass("in")) { + var b, + e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); + if (!(e && e.length && ((b = e.data("bs.collapse")), b && b.transitioning))) { + var f = a.Event("show.bs.collapse"); + if ((this.$element.trigger(f), !f.isDefaultPrevented())) { + e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); + var g = this.dimension(); + this.$element + .removeClass("collapse") + .addClass("collapsing") + [g](0) + .attr("aria-expanded", !0), + this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), + (this.transitioning = 1); + var h = function() { + this.$element + .removeClass("collapsing") + .addClass("collapse in") + [g](""), + (this.transitioning = 0), + this.$element.trigger("shown.bs.collapse"); + }; + if (!a.support.transition) return h.call(this); + var i = a.camelCase(["scroll", g].join("-")); + this.$element + .one("bsTransitionEnd", a.proxy(h, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + [g](this.$element[0][i]); + } + } + } + }), + (d.prototype.hide = function() { + if (!this.transitioning && this.$element.hasClass("in")) { + var b = a.Event("hide.bs.collapse"); + if ((this.$element.trigger(b), !b.isDefaultPrevented())) { + var c = this.dimension(); + this.$element[c](this.$element[c]())[0].offsetHeight, + this.$element + .addClass("collapsing") + .removeClass("collapse in") + .attr("aria-expanded", !1), + this.$trigger.addClass("collapsed").attr("aria-expanded", !1), + (this.transitioning = 1); + var e = function() { + (this.transitioning = 0), + this.$element + .removeClass("collapsing") + .addClass("collapse") + .trigger("hidden.bs.collapse"); + }; + return a.support.transition + ? void this.$element[c](0) + .one("bsTransitionEnd", a.proxy(e, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + : e.call(this); + } + } + }), + (d.prototype.toggle = function() { + this[this.$element.hasClass("in") ? "hide" : "show"](); + }), + (d.prototype.getParent = function() { + return a(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each( + a.proxy(function(c, d) { + var e = a(d); + this.addAriaAndCollapsedClass(b(e), e); + }, this) + ) + .end(); + }), + (d.prototype.addAriaAndCollapsedClass = function(a, b) { + var c = a.hasClass("in"); + a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c); + }); + var e = a.fn.collapse; + (a.fn.collapse = c), + (a.fn.collapse.Constructor = d), + (a.fn.collapse.noConflict = function() { + return (a.fn.collapse = e), this; + }), + a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) { + var e = a(this); + e.attr("data-target") || d.preventDefault(); + var f = b(e), + g = f.data("bs.collapse"), + h = g ? "toggle" : e.data(); + c.call(f, h); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + var c = b.attr("data-target"); + c || ((c = b.attr("href")), (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""))); + var d = c && a(c); + return d && d.length ? d : b.parent(); + } + function c(c) { + (c && 3 === c.which) || + (a(e).remove(), + a(f).each(function() { + var d = a(this), + e = b(d), + f = { relatedTarget: this }; + e.hasClass("open") && + ((c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target)) || + (e.trigger((c = a.Event("hide.bs.dropdown", f))), + c.isDefaultPrevented() || + (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))); + })); + } + function d(b) { + return this.each(function() { + var c = a(this), + d = c.data("bs.dropdown"); + d || c.data("bs.dropdown", (d = new g(this))), "string" == typeof b && d[b].call(c); + }); + } + var e = ".dropdown-backdrop", + f = '[data-toggle="dropdown"]', + g = function(b) { + a(b).on("click.bs.dropdown", this.toggle); + }; + (g.VERSION = "3.3.7"), + (g.prototype.toggle = function(d) { + var e = a(this); + if (!e.is(".disabled, :disabled")) { + var f = b(e), + g = f.hasClass("open"); + if ((c(), !g)) { + "ontouchstart" in document.documentElement && + !f.closest(".navbar-nav").length && + a(document.createElement("div")) + .addClass("dropdown-backdrop") + .insertAfter(a(this)) + .on("click", c); + var h = { relatedTarget: this }; + if ((f.trigger((d = a.Event("show.bs.dropdown", h))), d.isDefaultPrevented())) return; + e.trigger("focus").attr("aria-expanded", "true"), + f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h)); + } + return !1; + } + }), + (g.prototype.keydown = function(c) { + if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { + var d = a(this); + if ((c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled"))) { + var e = b(d), + g = e.hasClass("open"); + if ((!g && 27 != c.which) || (g && 27 == c.which)) + return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); + var h = " li:not(.disabled):visible a", + i = e.find(".dropdown-menu" + h); + if (i.length) { + var j = i.index(c.target); + 38 == c.which && j > 0 && j--, + 40 == c.which && j < i.length - 1 && j++, + ~j || (j = 0), + i.eq(j).trigger("focus"); + } + } + } + }); + var h = a.fn.dropdown; + (a.fn.dropdown = d), + (a.fn.dropdown.Constructor = g), + (a.fn.dropdown.noConflict = function() { + return (a.fn.dropdown = h), this; + }), + a(document) + .on("click.bs.dropdown.data-api", c) + .on("click.bs.dropdown.data-api", ".dropdown form", function(a) { + a.stopPropagation(); + }) + .on("click.bs.dropdown.data-api", f, g.prototype.toggle) + .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) + .on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown); + })(jQuery), + +(function(a) { + "use strict"; + function b(b, d) { + return this.each(function() { + var e = a(this), + f = e.data("bs.modal"), + g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); + f || e.data("bs.modal", (f = new c(this, g))), "string" == typeof b ? f[b](d) : g.show && f.show(d); + }); + } + var c = function(b, c) { + (this.options = c), + (this.$body = a(document.body)), + (this.$element = a(b)), + (this.$dialog = this.$element.find(".modal-dialog")), + (this.$backdrop = null), + (this.isShown = null), + (this.originalBodyPad = null), + (this.scrollbarWidth = 0), + (this.ignoreBackdropClick = !1), + this.options.remote && + this.$element.find(".modal-content").load( + this.options.remote, + a.proxy(function() { + this.$element.trigger("loaded.bs.modal"); + }, this) + ); + }; + (c.VERSION = "3.3.7"), + (c.TRANSITION_DURATION = 300), + (c.BACKDROP_TRANSITION_DURATION = 150), + (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }), + (c.prototype.toggle = function(a) { + return this.isShown ? this.hide() : this.show(a); + }), + (c.prototype.show = function(b) { + var d = this, + e = a.Event("show.bs.modal", { relatedTarget: b }); + this.$element.trigger(e), + this.isShown || + e.isDefaultPrevented() || + ((this.isShown = !0), + this.checkScrollbar(), + this.setScrollbar(), + this.$body.addClass("modal-open"), + this.escape(), + this.resize(), + this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), + this.$dialog.on("mousedown.dismiss.bs.modal", function() { + d.$element.one("mouseup.dismiss.bs.modal", function(b) { + a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0); + }); + }), + this.backdrop(function() { + var e = a.support.transition && d.$element.hasClass("fade"); + d.$element.parent().length || d.$element.appendTo(d.$body), + d.$element.show().scrollTop(0), + d.adjustDialog(), + e && d.$element[0].offsetWidth, + d.$element.addClass("in"), + d.enforceFocus(); + var f = a.Event("shown.bs.modal", { relatedTarget: b }); + e + ? d.$dialog + .one("bsTransitionEnd", function() { + d.$element.trigger("focus").trigger(f); + }) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : d.$element.trigger("focus").trigger(f); + })); + }), + (c.prototype.hide = function(b) { + b && b.preventDefault(), + (b = a.Event("hide.bs.modal")), + this.$element.trigger(b), + this.isShown && + !b.isDefaultPrevented() && + ((this.isShown = !1), + this.escape(), + this.resize(), + a(document).off("focusin.bs.modal"), + this.$element + .removeClass("in") + .off("click.dismiss.bs.modal") + .off("mouseup.dismiss.bs.modal"), + this.$dialog.off("mousedown.dismiss.bs.modal"), + a.support.transition && this.$element.hasClass("fade") + ? this.$element + .one("bsTransitionEnd", a.proxy(this.hideModal, this)) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : this.hideModal()); + }), + (c.prototype.enforceFocus = function() { + a(document) + .off("focusin.bs.modal") + .on( + "focusin.bs.modal", + a.proxy(function(a) { + document === a.target || + this.$element[0] === a.target || + this.$element.has(a.target).length || + this.$element.trigger("focus"); + }, this) + ); + }), + (c.prototype.escape = function() { + this.isShown && this.options.keyboard + ? this.$element.on( + "keydown.dismiss.bs.modal", + a.proxy(function(a) { + 27 == a.which && this.hide(); + }, this) + ) + : this.isShown || this.$element.off("keydown.dismiss.bs.modal"); + }), + (c.prototype.resize = function() { + this.isShown + ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) + : a(window).off("resize.bs.modal"); + }), + (c.prototype.hideModal = function() { + var a = this; + this.$element.hide(), + this.backdrop(function() { + a.$body.removeClass("modal-open"), + a.resetAdjustments(), + a.resetScrollbar(), + a.$element.trigger("hidden.bs.modal"); + }); + }), + (c.prototype.removeBackdrop = function() { + this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null); + }), + (c.prototype.backdrop = function(b) { + var d = this, + e = this.$element.hasClass("fade") ? "fade" : ""; + if (this.isShown && this.options.backdrop) { + var f = a.support.transition && e; + if ( + ((this.$backdrop = a(document.createElement("div")) + .addClass("modal-backdrop " + e) + .appendTo(this.$body)), + this.$element.on( + "click.dismiss.bs.modal", + a.proxy(function(a) { + return this.ignoreBackdropClick + ? void (this.ignoreBackdropClick = !1) + : void ( + a.target === a.currentTarget && + ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()) + ); + }, this) + ), + f && this.$backdrop[0].offsetWidth, + this.$backdrop.addClass("in"), + !b) + ) + return; + f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b(); + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass("in"); + var g = function() { + d.removeBackdrop(), b && b(); + }; + a.support.transition && this.$element.hasClass("fade") + ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : g(); + } else b && b(); + }), + (c.prototype.handleUpdate = function() { + this.adjustDialog(); + }), + (c.prototype.adjustDialog = function() { + var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", + paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" + }); + }), + (c.prototype.resetAdjustments = function() { + this.$element.css({ paddingLeft: "", paddingRight: "" }); + }), + (c.prototype.checkScrollbar = function() { + var a = window.innerWidth; + if (!a) { + var b = document.documentElement.getBoundingClientRect(); + a = b.right - Math.abs(b.left); + } + (this.bodyIsOverflowing = document.body.clientWidth < a), (this.scrollbarWidth = this.measureScrollbar()); + }), + (c.prototype.setScrollbar = function() { + var a = parseInt(this.$body.css("padding-right") || 0, 10); + (this.originalBodyPad = document.body.style.paddingRight || ""), + this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth); + }), + (c.prototype.resetScrollbar = function() { + this.$body.css("padding-right", this.originalBodyPad); + }), + (c.prototype.measureScrollbar = function() { + var a = document.createElement("div"); + (a.className = "modal-scrollbar-measure"), this.$body.append(a); + var b = a.offsetWidth - a.clientWidth; + return this.$body[0].removeChild(a), b; + }); + var d = a.fn.modal; + (a.fn.modal = b), + (a.fn.modal.Constructor = c), + (a.fn.modal.noConflict = function() { + return (a.fn.modal = d), this; + }), + a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) { + var d = a(this), + e = d.attr("href"), + f = a(d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, ""))), + g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); + d.is("a") && c.preventDefault(), + f.one("show.bs.modal", function(a) { + a.isDefaultPrevented() || + f.one("hidden.bs.modal", function() { + d.is(":visible") && d.trigger("focus"); + }); + }), + b.call(f, g, this); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.tooltip"), + f = "object" == typeof b && b; + (!e && /destroy|hide/.test(b)) || + (e || d.data("bs.tooltip", (e = new c(this, f))), "string" == typeof b && e[b]()); + }); + } + var c = function(a, b) { + (this.type = null), + (this.options = null), + (this.enabled = null), + (this.timeout = null), + (this.hoverState = null), + (this.$element = null), + (this.inState = null), + this.init("tooltip", a, b); + }; + (c.VERSION = "3.3.7"), + (c.TRANSITION_DURATION = 150), + (c.DEFAULTS = { + animation: !0, + placement: "top", + selector: !1, + template: + '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + viewport: { selector: "body", padding: 0 } + }), + (c.prototype.init = function(b, c, d) { + if ( + ((this.enabled = !0), + (this.type = b), + (this.$element = a(c)), + (this.options = this.getOptions(d)), + (this.$viewport = + this.options.viewport && + a( + a.isFunction(this.options.viewport) + ? this.options.viewport.call(this, this.$element) + : this.options.viewport.selector || this.options.viewport + )), + (this.inState = { click: !1, hover: !1, focus: !1 }), + this.$element[0] instanceof document.constructor && !this.options.selector) + ) + throw new Error( + "`selector` option must be specified when initializing " + this.type + " on the window.document object!" + ); + for (var e = this.options.trigger.split(" "), f = e.length; f--; ) { + var g = e[f]; + if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); + else if ("manual" != g) { + var h = "hover" == g ? "mouseenter" : "focusin", + i = "hover" == g ? "mouseleave" : "focusout"; + this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), + this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)); + } + } + this.options.selector + ? (this._options = a.extend({}, this.options, { trigger: "manual", selector: "" })) + : this.fixTitle(); + }), + (c.prototype.getDefaults = function() { + return c.DEFAULTS; + }), + (c.prototype.getOptions = function(b) { + return ( + (b = a.extend({}, this.getDefaults(), this.$element.data(), b)), + b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), + b + ); + }), + (c.prototype.getDelegateOptions = function() { + var b = {}, + c = this.getDefaults(); + return ( + this._options && + a.each(this._options, function(a, d) { + c[a] != d && (b[a] = d); + }), + b + ); + }), + (c.prototype.enter = function(b) { + var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); + return ( + c || + ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), + a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), + c.tip().hasClass("in") || "in" == c.hoverState + ? void (c.hoverState = "in") + : (clearTimeout(c.timeout), + (c.hoverState = "in"), + c.options.delay && c.options.delay.show + ? void (c.timeout = setTimeout(function() { + "in" == c.hoverState && c.show(); + }, c.options.delay.show)) + : c.show()) + ); + }), + (c.prototype.isInStateTrue = function() { + for (var a in this.inState) if (this.inState[a]) return !0; + return !1; + }), + (c.prototype.leave = function(b) { + var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); + if ( + (c || + ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), + a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), + !c.isInStateTrue()) + ) + return ( + clearTimeout(c.timeout), + (c.hoverState = "out"), + c.options.delay && c.options.delay.hide + ? void (c.timeout = setTimeout(function() { + "out" == c.hoverState && c.hide(); + }, c.options.delay.hide)) + : c.hide() + ); + }), + (c.prototype.show = function() { + var b = a.Event("show.bs." + this.type); + if (this.hasContent() && this.enabled) { + this.$element.trigger(b); + var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (b.isDefaultPrevented() || !d) return; + var e = this, + f = this.tip(), + g = this.getUID(this.type); + this.setContent(), + f.attr("id", g), + this.$element.attr("aria-describedby", g), + this.options.animation && f.addClass("fade"); + var h = + "function" == typeof this.options.placement + ? this.options.placement.call(this, f[0], this.$element[0]) + : this.options.placement, + i = /\s?auto?\s?/i, + j = i.test(h); + j && (h = h.replace(i, "") || "top"), + f + .detach() + .css({ top: 0, left: 0, display: "block" }) + .addClass(h) + .data("bs." + this.type, this), + this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), + this.$element.trigger("inserted.bs." + this.type); + var k = this.getPosition(), + l = f[0].offsetWidth, + m = f[0].offsetHeight; + if (j) { + var n = h, + o = this.getPosition(this.$viewport); + (h = + "bottom" == h && k.bottom + m > o.bottom + ? "top" + : "top" == h && k.top - m < o.top + ? "bottom" + : "right" == h && k.right + l > o.width + ? "left" + : "left" == h && k.left - l < o.left + ? "right" + : h), + f.removeClass(n).addClass(h); + } + var p = this.getCalculatedOffset(h, k, l, m); + this.applyPlacement(p, h); + var q = function() { + var a = e.hoverState; + e.$element.trigger("shown.bs." + e.type), (e.hoverState = null), "out" == a && e.leave(e); + }; + a.support.transition && this.$tip.hasClass("fade") + ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) + : q(); + } + }), + (c.prototype.applyPlacement = function(b, c) { + var d = this.tip(), + e = d[0].offsetWidth, + f = d[0].offsetHeight, + g = parseInt(d.css("margin-top"), 10), + h = parseInt(d.css("margin-left"), 10); + isNaN(g) && (g = 0), + isNaN(h) && (h = 0), + (b.top += g), + (b.left += h), + a.offset.setOffset( + d[0], + a.extend( + { + using: function(a) { + d.css({ top: Math.round(a.top), left: Math.round(a.left) }); + } + }, + b + ), + 0 + ), + d.addClass("in"); + var i = d[0].offsetWidth, + j = d[0].offsetHeight; + "top" == c && j != f && (b.top = b.top + f - j); + var k = this.getViewportAdjustedDelta(c, b, i, j); + k.left ? (b.left += k.left) : (b.top += k.top); + var l = /top|bottom/.test(c), + m = l ? 2 * k.left - e + i : 2 * k.top - f + j, + n = l ? "offsetWidth" : "offsetHeight"; + d.offset(b), this.replaceArrow(m, d[0][n], l); + }), + (c.prototype.replaceArrow = function(a, b, c) { + this.arrow() + .css(c ? "left" : "top", 50 * (1 - a / b) + "%") + .css(c ? "top" : "left", ""); + }), + (c.prototype.setContent = function() { + var a = this.tip(), + b = this.getTitle(); + a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), + a.removeClass("fade in top bottom left right"); + }), + (c.prototype.hide = function(b) { + function d() { + "in" != e.hoverState && f.detach(), + e.$element && e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), + b && b(); + } + var e = this, + f = a(this.$tip), + g = a.Event("hide.bs." + this.type); + if ((this.$element.trigger(g), !g.isDefaultPrevented())) + return ( + f.removeClass("in"), + a.support.transition && f.hasClass("fade") + ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) + : d(), + (this.hoverState = null), + this + ); + }), + (c.prototype.fixTitle = function() { + var a = this.$element; + (a.attr("title") || "string" != typeof a.attr("data-original-title")) && + a.attr("data-original-title", a.attr("title") || "").attr("title", ""); + }), + (c.prototype.hasContent = function() { + return this.getTitle(); + }), + (c.prototype.getPosition = function(b) { + b = b || this.$element; + var c = b[0], + d = "BODY" == c.tagName, + e = c.getBoundingClientRect(); + null == e.width && (e = a.extend({}, e, { width: e.right - e.left, height: e.bottom - e.top })); + var f = window.SVGElement && c instanceof window.SVGElement, + g = d ? { top: 0, left: 0 } : f ? null : b.offset(), + h = { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() }, + i = d ? { width: a(window).width(), height: a(window).height() } : null; + return a.extend({}, e, h, i, g); + }), + (c.prototype.getCalculatedOffset = function(a, b, c, d) { + return "bottom" == a + ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } + : "top" == a + ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } + : "left" == a + ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } + : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width }; + }), + (c.prototype.getViewportAdjustedDelta = function(a, b, c, d) { + var e = { top: 0, left: 0 }; + if (!this.$viewport) return e; + var f = (this.options.viewport && this.options.viewport.padding) || 0, + g = this.getPosition(this.$viewport); + if (/right|left/.test(a)) { + var h = b.top - f - g.scroll, + i = b.top + f - g.scroll + d; + h < g.top ? (e.top = g.top - h) : i > g.top + g.height && (e.top = g.top + g.height - i); + } else { + var j = b.left - f, + k = b.left + f + c; + j < g.left ? (e.left = g.left - j) : k > g.right && (e.left = g.left + g.width - k); + } + return e; + }), + (c.prototype.getTitle = function() { + var a, + b = this.$element, + c = this.options; + return (a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)); + }), + (c.prototype.getUID = function(a) { + do a += ~~(1e6 * Math.random()); + while (document.getElementById(a)); + return a; + }), + (c.prototype.tip = function() { + if (!this.$tip && ((this.$tip = a(this.options.template)), 1 != this.$tip.length)) + throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); + return this.$tip; + }), + (c.prototype.arrow = function() { + return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); + }), + (c.prototype.enable = function() { + this.enabled = !0; + }), + (c.prototype.disable = function() { + this.enabled = !1; + }), + (c.prototype.toggleEnabled = function() { + this.enabled = !this.enabled; + }), + (c.prototype.toggle = function(b) { + var c = this; + b && + ((c = a(b.currentTarget).data("bs." + this.type)), + c || + ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), + a(b.currentTarget).data("bs." + this.type, c))), + b + ? ((c.inState.click = !c.inState.click), c.isInStateTrue() ? c.enter(c) : c.leave(c)) + : c.tip().hasClass("in") + ? c.leave(c) + : c.enter(c); + }), + (c.prototype.destroy = function() { + var a = this; + clearTimeout(this.timeout), + this.hide(function() { + a.$element.off("." + a.type).removeData("bs." + a.type), + a.$tip && a.$tip.detach(), + (a.$tip = null), + (a.$arrow = null), + (a.$viewport = null), + (a.$element = null); + }); + }); + var d = a.fn.tooltip; + (a.fn.tooltip = b), + (a.fn.tooltip.Constructor = c), + (a.fn.tooltip.noConflict = function() { + return (a.fn.tooltip = d), this; + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.popover"), + f = "object" == typeof b && b; + (!e && /destroy|hide/.test(b)) || + (e || d.data("bs.popover", (e = new c(this, f))), "string" == typeof b && e[b]()); + }); + } + var c = function(a, b) { + this.init("popover", a, b); + }; + if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); + (c.VERSION = "3.3.7"), + (c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { + placement: "right", + trigger: "click", + content: "", + template: + '' + })), + (c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)), + (c.prototype.constructor = c), + (c.prototype.getDefaults = function() { + return c.DEFAULTS; + }), + (c.prototype.setContent = function() { + var a = this.tip(), + b = this.getTitle(), + c = this.getContent(); + a.find(".popover-title")[this.options.html ? "html" : "text"](b), + a + .find(".popover-content") + .children() + .detach() + .end() + [this.options.html ? ("string" == typeof c ? "html" : "append") : "text"](c), + a.removeClass("fade top bottom left right in"), + a.find(".popover-title").html() || a.find(".popover-title").hide(); + }), + (c.prototype.hasContent = function() { + return this.getTitle() || this.getContent(); + }), + (c.prototype.getContent = function() { + var a = this.$element, + b = this.options; + return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content); + }), + (c.prototype.arrow = function() { + return (this.$arrow = this.$arrow || this.tip().find(".arrow")); + }); + var d = a.fn.popover; + (a.fn.popover = b), + (a.fn.popover.Constructor = c), + (a.fn.popover.noConflict = function() { + return (a.fn.popover = d), this; + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(c, d) { + (this.$body = a(document.body)), + (this.$scrollElement = a(a(c).is(document.body) ? window : c)), + (this.options = a.extend({}, b.DEFAULTS, d)), + (this.selector = (this.options.target || "") + " .nav li > a"), + (this.offsets = []), + (this.targets = []), + (this.activeTarget = null), + (this.scrollHeight = 0), + this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), + this.refresh(), + this.process(); + } + function c(c) { + return this.each(function() { + var d = a(this), + e = d.data("bs.scrollspy"), + f = "object" == typeof c && c; + e || d.data("bs.scrollspy", (e = new b(this, f))), "string" == typeof c && e[c](); + }); + } + (b.VERSION = "3.3.7"), + (b.DEFAULTS = { offset: 10 }), + (b.prototype.getScrollHeight = function() { + return ( + this.$scrollElement[0].scrollHeight || + Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) + ); + }), + (b.prototype.refresh = function() { + var b = this, + c = "offset", + d = 0; + (this.offsets = []), + (this.targets = []), + (this.scrollHeight = this.getScrollHeight()), + a.isWindow(this.$scrollElement[0]) || ((c = "position"), (d = this.$scrollElement.scrollTop())), + this.$body + .find(this.selector) + .map(function() { + var b = a(this), + e = b.data("target") || b.attr("href"), + f = /^#./.test(e) && a(e); + return (f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) || null; + }) + .sort(function(a, b) { + return a[0] - b[0]; + }) + .each(function() { + b.offsets.push(this[0]), b.targets.push(this[1]); + }); + }), + (b.prototype.process = function() { + var a, + b = this.$scrollElement.scrollTop() + this.options.offset, + c = this.getScrollHeight(), + d = this.options.offset + c - this.$scrollElement.height(), + e = this.offsets, + f = this.targets, + g = this.activeTarget; + if ((this.scrollHeight != c && this.refresh(), b >= d)) return g != (a = f[f.length - 1]) && this.activate(a); + if (g && b < e[0]) return (this.activeTarget = null), this.clear(); + for (a = e.length; a--; ) + g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]); + }), + (b.prototype.activate = function(b) { + (this.activeTarget = b), this.clear(); + var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', + d = a(c) + .parents("li") + .addClass("active"); + d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), + d.trigger("activate.bs.scrollspy"); + }), + (b.prototype.clear = function() { + a(this.selector) + .parentsUntil(this.options.target, ".active") + .removeClass("active"); + }); + var d = a.fn.scrollspy; + (a.fn.scrollspy = c), + (a.fn.scrollspy.Constructor = b), + (a.fn.scrollspy.noConflict = function() { + return (a.fn.scrollspy = d), this; + }), + a(window).on("load.bs.scrollspy.data-api", function() { + a('[data-spy="scroll"]').each(function() { + var b = a(this); + c.call(b, b.data()); + }); + }); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.tab"); + e || d.data("bs.tab", (e = new c(this))), "string" == typeof b && e[b](); + }); + } + var c = function(b) { + this.element = a(b); + }; + (c.VERSION = "3.3.7"), + (c.TRANSITION_DURATION = 150), + (c.prototype.show = function() { + var b = this.element, + c = b.closest("ul:not(.dropdown-menu)"), + d = b.data("target"); + if ( + (d || ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))), !b.parent("li").hasClass("active")) + ) { + var e = c.find(".active:last a"), + f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), + g = a.Event("show.bs.tab", { relatedTarget: e[0] }); + if ((e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented())) { + var h = a(d); + this.activate(b.closest("li"), c), + this.activate(h, h.parent(), function() { + e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), + b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }); + }); + } + } + }), + (c.prototype.activate = function(b, d, e) { + function f() { + g + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !1), + b + .addClass("active") + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), + b.parent(".dropdown-menu").length && + b + .closest("li.dropdown") + .addClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + e && e(); + } + var g = d.find("> .active"), + h = e && a.support.transition && ((g.length && g.hasClass("fade")) || !!d.find("> .fade").length); + g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), + g.removeClass("in"); + }); + var d = a.fn.tab; + (a.fn.tab = b), + (a.fn.tab.Constructor = c), + (a.fn.tab.noConflict = function() { + return (a.fn.tab = d), this; + }); + var e = function(c) { + c.preventDefault(), b.call(a(this), "show"); + }; + a(document) + .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) + .on("click.bs.tab.data-api", '[data-toggle="pill"]', e); + })(jQuery), + +(function(a) { + "use strict"; + function b(b) { + return this.each(function() { + var d = a(this), + e = d.data("bs.affix"), + f = "object" == typeof b && b; + e || d.data("bs.affix", (e = new c(this, f))), "string" == typeof b && e[b](); + }); + } + var c = function(b, d) { + (this.options = a.extend({}, c.DEFAULTS, d)), + (this.$target = a(this.options.target) + .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) + .on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this))), + (this.$element = a(b)), + (this.affixed = null), + (this.unpin = null), + (this.pinnedOffset = null), + this.checkPosition(); + }; + (c.VERSION = "3.3.7"), + (c.RESET = "affix affix-top affix-bottom"), + (c.DEFAULTS = { offset: 0, target: window }), + (c.prototype.getState = function(a, b, c, d) { + var e = this.$target.scrollTop(), + f = this.$element.offset(), + g = this.$target.height(); + if (null != c && "top" == this.affixed) return e < c && "top"; + if ("bottom" == this.affixed) + return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(e + g <= a - d) && "bottom"; + var h = null == this.affixed, + i = h ? e : f.top, + j = h ? g : b; + return null != c && e <= c ? "top" : null != d && i + j >= a - d && "bottom"; + }), + (c.prototype.getPinnedOffset = function() { + if (this.pinnedOffset) return this.pinnedOffset; + this.$element.removeClass(c.RESET).addClass("affix"); + var a = this.$target.scrollTop(), + b = this.$element.offset(); + return (this.pinnedOffset = b.top - a); + }), + (c.prototype.checkPositionWithEventLoop = function() { + setTimeout(a.proxy(this.checkPosition, this), 1); + }), + (c.prototype.checkPosition = function() { + if (this.$element.is(":visible")) { + var b = this.$element.height(), + d = this.options.offset, + e = d.top, + f = d.bottom, + g = Math.max(a(document).height(), a(document.body).height()); + "object" != typeof d && (f = e = d), + "function" == typeof e && (e = d.top(this.$element)), + "function" == typeof f && (f = d.bottom(this.$element)); + var h = this.getState(g, b, e, f); + if (this.affixed != h) { + null != this.unpin && this.$element.css("top", ""); + var i = "affix" + (h ? "-" + h : ""), + j = a.Event(i + ".bs.affix"); + if ((this.$element.trigger(j), j.isDefaultPrevented())) return; + (this.affixed = h), + (this.unpin = "bottom" == h ? this.getPinnedOffset() : null), + this.$element + .removeClass(c.RESET) + .addClass(i) + .trigger(i.replace("affix", "affixed") + ".bs.affix"); + } + "bottom" == h && this.$element.offset({ top: g - b - f }); + } + }); + var d = a.fn.affix; + (a.fn.affix = b), + (a.fn.affix.Constructor = c), + (a.fn.affix.noConflict = function() { + return (a.fn.affix = d), this; + }), + a(window).on("load", function() { + a('[data-spy="affix"]').each(function() { + var c = a(this), + d = c.data(); + (d.offset = d.offset || {}), + null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), + null != d.offsetTop && (d.offset.top = d.offsetTop), + b.call(c, d); + }); + }); + })(jQuery); diff --git a/elements/pfelement/demo/js/clipboard.min.js b/elements/pfelement/demo/js/clipboard.min.js new file mode 100644 index 0000000000..a71e8d506b --- /dev/null +++ b/elements/pfelement/demo/js/clipboard.min.js @@ -0,0 +1,543 @@ +/*! + * clipboard.js v2.0.1 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!(function(t, e) { + "object" == typeof exports && "object" == typeof module + ? (module.exports = e()) + : "function" == typeof define && define.amd + ? define([], e) + : "object" == typeof exports + ? (exports.ClipboardJS = e()) + : (t.ClipboardJS = e()); +})(this, function() { + return (function(t) { + function e(o) { + if (n[o]) return n[o].exports; + var r = (n[o] = { i: o, l: !1, exports: {} }); + return t[o].call(r.exports, r, r.exports, e), (r.l = !0), r.exports; + } + var n = {}; + return ( + (e.m = t), + (e.c = n), + (e.i = function(t) { + return t; + }), + (e.d = function(t, n, o) { + e.o(t, n) || Object.defineProperty(t, n, { configurable: !1, enumerable: !0, get: o }); + }), + (e.n = function(t) { + var n = + t && t.__esModule + ? function() { + return t.default; + } + : function() { + return t; + }; + return e.d(n, "a", n), n; + }), + (e.o = function(t, e) { + return Object.prototype.hasOwnProperty.call(t, e); + }), + (e.p = ""), + e((e.s = 3)) + ); + })([ + function(t, e, n) { + var o, r, i; + !(function(a, c) { + (r = [t, n(7)]), (o = c), void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i); + })(0, function(t, e) { + "use strict"; + function n(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); + } + var o = (function(t) { + return t && t.__esModule ? t : { default: t }; + })(e), + r = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function(t) { + return typeof t; + } + : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype + ? "symbol" + : typeof t; + }, + i = (function() { + function t(t, e) { + for (var n = 0; n < e.length; n++) { + var o = e[n]; + (o.enumerable = o.enumerable || !1), + (o.configurable = !0), + "value" in o && (o.writable = !0), + Object.defineProperty(t, o.key, o); + } + } + return function(e, n, o) { + return n && t(e.prototype, n), o && t(e, o), e; + }; + })(), + a = (function() { + function t(e) { + n(this, t), this.resolveOptions(e), this.initSelection(); + } + return ( + i(t, [ + { + key: "resolveOptions", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + (this.action = t.action), + (this.container = t.container), + (this.emitter = t.emitter), + (this.target = t.target), + (this.text = t.text), + (this.trigger = t.trigger), + (this.selectedText = ""); + } + }, + { + key: "initSelection", + value: function() { + this.text ? this.selectFake() : this.target && this.selectTarget(); + } + }, + { + key: "selectFake", + value: function() { + var t = this, + e = "rtl" == document.documentElement.getAttribute("dir"); + this.removeFake(), + (this.fakeHandlerCallback = function() { + return t.removeFake(); + }), + (this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0), + (this.fakeElem = document.createElement("textarea")), + (this.fakeElem.style.fontSize = "12pt"), + (this.fakeElem.style.border = "0"), + (this.fakeElem.style.padding = "0"), + (this.fakeElem.style.margin = "0"), + (this.fakeElem.style.position = "absolute"), + (this.fakeElem.style[e ? "right" : "left"] = "-9999px"); + var n = window.pageYOffset || document.documentElement.scrollTop; + (this.fakeElem.style.top = n + "px"), + this.fakeElem.setAttribute("readonly", ""), + (this.fakeElem.value = this.text), + this.container.appendChild(this.fakeElem), + (this.selectedText = (0, o.default)(this.fakeElem)), + this.copyText(); + } + }, + { + key: "removeFake", + value: function() { + this.fakeHandler && + (this.container.removeEventListener("click", this.fakeHandlerCallback), + (this.fakeHandler = null), + (this.fakeHandlerCallback = null)), + this.fakeElem && (this.container.removeChild(this.fakeElem), (this.fakeElem = null)); + } + }, + { + key: "selectTarget", + value: function() { + (this.selectedText = (0, o.default)(this.target)), this.copyText(); + } + }, + { + key: "copyText", + value: function() { + var t = void 0; + try { + t = document.execCommand(this.action); + } catch (e) { + t = !1; + } + this.handleResult(t); + } + }, + { + key: "handleResult", + value: function(t) { + this.emitter.emit(t ? "success" : "error", { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }); + } + }, + { + key: "clearSelection", + value: function() { + this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges(); + } + }, + { + key: "destroy", + value: function() { + this.removeFake(); + } + }, + { + key: "action", + set: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy"; + if (((this._action = t), "copy" !== this._action && "cut" !== this._action)) + throw new Error('Invalid "action" value, use either "copy" or "cut"'); + }, + get: function() { + return this._action; + } + }, + { + key: "target", + set: function(t) { + if (void 0 !== t) { + if (!t || "object" !== (void 0 === t ? "undefined" : r(t)) || 1 !== t.nodeType) + throw new Error('Invalid "target" value, use a valid Element'); + if ("copy" === this.action && t.hasAttribute("disabled")) + throw new Error( + 'Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute' + ); + if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) + throw new Error( + 'Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes' + ); + this._target = t; + } + }, + get: function() { + return this._target; + } + } + ]), + t + ); + })(); + t.exports = a; + }); + }, + function(t, e, n) { + function o(t, e, n) { + if (!t && !e && !n) throw new Error("Missing required arguments"); + if (!c.string(e)) throw new TypeError("Second argument must be a String"); + if (!c.fn(n)) throw new TypeError("Third argument must be a Function"); + if (c.node(t)) return r(t, e, n); + if (c.nodeList(t)) return i(t, e, n); + if (c.string(t)) return a(t, e, n); + throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); + } + function r(t, e, n) { + return ( + t.addEventListener(e, n), + { + destroy: function() { + t.removeEventListener(e, n); + } + } + ); + } + function i(t, e, n) { + return ( + Array.prototype.forEach.call(t, function(t) { + t.addEventListener(e, n); + }), + { + destroy: function() { + Array.prototype.forEach.call(t, function(t) { + t.removeEventListener(e, n); + }); + } + } + ); + } + function a(t, e, n) { + return u(document.body, t, e, n); + } + var c = n(6), + u = n(5); + t.exports = o; + }, + function(t, e) { + function n() {} + (n.prototype = { + on: function(t, e, n) { + var o = this.e || (this.e = {}); + return (o[t] || (o[t] = [])).push({ fn: e, ctx: n }), this; + }, + once: function(t, e, n) { + function o() { + r.off(t, o), e.apply(n, arguments); + } + var r = this; + return (o._ = e), this.on(t, o, n); + }, + emit: function(t) { + var e = [].slice.call(arguments, 1), + n = ((this.e || (this.e = {}))[t] || []).slice(), + o = 0, + r = n.length; + for (o; o < r; o++) n[o].fn.apply(n[o].ctx, e); + return this; + }, + off: function(t, e) { + var n = this.e || (this.e = {}), + o = n[t], + r = []; + if (o && e) for (var i = 0, a = o.length; i < a; i++) o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); + return r.length ? (n[t] = r) : delete n[t], this; + } + }), + (t.exports = n); + }, + function(t, e, n) { + var o, r, i; + !(function(a, c) { + (r = [t, n(0), n(2), n(1)]), + (o = c), + void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i); + })(0, function(t, e, n, o) { + "use strict"; + function r(t) { + return t && t.__esModule ? t : { default: t }; + } + function i(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); + } + function a(t, e) { + if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || ("object" != typeof e && "function" != typeof e) ? t : e; + } + function c(t, e) { + if ("function" != typeof e && null !== e) + throw new TypeError("Super expression must either be null or a function, not " + typeof e); + (t.prototype = Object.create(e && e.prototype, { + constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } + })), + e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)); + } + function u(t, e) { + var n = "data-clipboard-" + t; + if (e.hasAttribute(n)) return e.getAttribute(n); + } + var l = r(e), + s = r(n), + f = r(o), + d = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function(t) { + return typeof t; + } + : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype + ? "symbol" + : typeof t; + }, + h = (function() { + function t(t, e) { + for (var n = 0; n < e.length; n++) { + var o = e[n]; + (o.enumerable = o.enumerable || !1), + (o.configurable = !0), + "value" in o && (o.writable = !0), + Object.defineProperty(t, o.key, o); + } + } + return function(e, n, o) { + return n && t(e.prototype, n), o && t(e, o), e; + }; + })(), + p = (function(t) { + function e(t, n) { + i(this, e); + var o = a(this, (e.__proto__ || Object.getPrototypeOf(e)).call(this)); + return o.resolveOptions(n), o.listenClick(t), o; + } + return ( + c(e, t), + h( + e, + [ + { + key: "resolveOptions", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + (this.action = "function" == typeof t.action ? t.action : this.defaultAction), + (this.target = "function" == typeof t.target ? t.target : this.defaultTarget), + (this.text = "function" == typeof t.text ? t.text : this.defaultText), + (this.container = "object" === d(t.container) ? t.container : document.body); + } + }, + { + key: "listenClick", + value: function(t) { + var e = this; + this.listener = (0, f.default)(t, "click", function(t) { + return e.onClick(t); + }); + } + }, + { + key: "onClick", + value: function(t) { + var e = t.delegateTarget || t.currentTarget; + this.clipboardAction && (this.clipboardAction = null), + (this.clipboardAction = new l.default({ + action: this.action(e), + target: this.target(e), + text: this.text(e), + container: this.container, + trigger: e, + emitter: this + })); + } + }, + { + key: "defaultAction", + value: function(t) { + return u("action", t); + } + }, + { + key: "defaultTarget", + value: function(t) { + var e = u("target", t); + if (e) return document.querySelector(e); + } + }, + { + key: "defaultText", + value: function(t) { + return u("text", t); + } + }, + { + key: "destroy", + value: function() { + this.listener.destroy(), + this.clipboardAction && (this.clipboardAction.destroy(), (this.clipboardAction = null)); + } + } + ], + [ + { + key: "isSupported", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], + e = "string" == typeof t ? [t] : t, + n = !!document.queryCommandSupported; + return ( + e.forEach(function(t) { + n = n && !!document.queryCommandSupported(t); + }), + n + ); + } + } + ] + ), + e + ); + })(s.default); + t.exports = p; + }); + }, + function(t, e) { + function n(t, e) { + for (; t && t.nodeType !== o; ) { + if ("function" == typeof t.matches && t.matches(e)) return t; + t = t.parentNode; + } + } + var o = 9; + if ("undefined" != typeof Element && !Element.prototype.matches) { + var r = Element.prototype; + r.matches = + r.matchesSelector || + r.mozMatchesSelector || + r.msMatchesSelector || + r.oMatchesSelector || + r.webkitMatchesSelector; + } + t.exports = n; + }, + function(t, e, n) { + function o(t, e, n, o, r) { + var a = i.apply(this, arguments); + return ( + t.addEventListener(n, a, r), + { + destroy: function() { + t.removeEventListener(n, a, r); + } + } + ); + } + function r(t, e, n, r, i) { + return "function" == typeof t.addEventListener + ? o.apply(null, arguments) + : "function" == typeof n + ? o.bind(null, document).apply(null, arguments) + : ("string" == typeof t && (t = document.querySelectorAll(t)), + Array.prototype.map.call(t, function(t) { + return o(t, e, n, r, i); + })); + } + function i(t, e, n, o) { + return function(n) { + (n.delegateTarget = a(n.target, e)), n.delegateTarget && o.call(t, n); + }; + } + var a = n(4); + t.exports = r; + }, + function(t, e) { + (e.node = function(t) { + return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType; + }), + (e.nodeList = function(t) { + var n = Object.prototype.toString.call(t); + return ( + void 0 !== t && + ("[object NodeList]" === n || "[object HTMLCollection]" === n) && + "length" in t && + (0 === t.length || e.node(t[0])) + ); + }), + (e.string = function(t) { + return "string" == typeof t || t instanceof String; + }), + (e.fn = function(t) { + return "[object Function]" === Object.prototype.toString.call(t); + }); + }, + function(t, e) { + function n(t) { + var e; + if ("SELECT" === t.nodeName) t.focus(), (e = t.value); + else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) { + var n = t.hasAttribute("readonly"); + n || t.setAttribute("readonly", ""), + t.select(), + t.setSelectionRange(0, t.value.length), + n || t.removeAttribute("readonly"), + (e = t.value); + } else { + t.hasAttribute("contenteditable") && t.focus(); + var o = window.getSelection(), + r = document.createRange(); + r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), (e = o.toString()); + } + return e; + } + t.exports = n; + } + ]); +}); diff --git a/elements/pfelement/demo/js/jquery.min.js b/elements/pfelement/demo/js/jquery.min.js new file mode 100644 index 0000000000..ae417eb972 --- /dev/null +++ b/elements/pfelement/demo/js/jquery.min.js @@ -0,0 +1,4619 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!(function(e, t) { + "use strict"; + "object" == typeof module && "object" == typeof module.exports + ? (module.exports = e.document + ? t(e, !0) + : function(e) { + if (!e.document) throw new Error("jQuery requires a window with a document"); + return t(e); + }) + : t(e); +})("undefined" != typeof window ? window : this, function(e, t) { + "use strict"; + var n = [], + r = e.document, + i = Object.getPrototypeOf, + o = n.slice, + a = n.concat, + s = n.push, + u = n.indexOf, + l = {}, + c = l.toString, + f = l.hasOwnProperty, + p = f.toString, + d = p.call(Object), + h = {}, + g = function e(t) { + return "function" == typeof t && "number" != typeof t.nodeType; + }, + y = function e(t) { + return null != t && t === t.window; + }, + v = { type: !0, src: !0, noModule: !0 }; + function m(e, t, n) { + var i, + o = (t = t || r).createElement("script"); + if (((o.text = e), n)) for (i in v) n[i] && (o[i] = n[i]); + t.head.appendChild(o).parentNode.removeChild(o); + } + function x(e) { + return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e; + } + var b = "3.3.1", + w = function(e, t) { + return new w.fn.init(e, t); + }, + T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + (w.fn = w.prototype = { + jquery: "3.3.1", + constructor: w, + length: 0, + toArray: function() { + return o.call(this); + }, + get: function(e) { + return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]; + }, + pushStack: function(e) { + var t = w.merge(this.constructor(), e); + return (t.prevObject = this), t; + }, + each: function(e) { + return w.each(this, e); + }, + map: function(e) { + return this.pushStack( + w.map(this, function(t, n) { + return e.call(t, n, t); + }) + ); + }, + slice: function() { + return this.pushStack(o.apply(this, arguments)); + }, + first: function() { + return this.eq(0); + }, + last: function() { + return this.eq(-1); + }, + eq: function(e) { + var t = this.length, + n = +e + (e < 0 ? t : 0); + return this.pushStack(n >= 0 && n < t ? [this[n]] : []); + }, + end: function() { + return this.prevObject || this.constructor(); + }, + push: s, + sort: n.sort, + splice: n.splice + }), + (w.extend = w.fn.extend = function() { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + s = 1, + u = arguments.length, + l = !1; + for ( + "boolean" == typeof a && ((l = a), (a = arguments[s] || {}), s++), + "object" == typeof a || g(a) || (a = {}), + s === u && ((a = this), s--); + s < u; + s++ + ) + if (null != (e = arguments[s])) + for (t in e) + (n = a[t]), + a !== (r = e[t]) && + (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) + ? (i ? ((i = !1), (o = n && Array.isArray(n) ? n : [])) : (o = n && w.isPlainObject(n) ? n : {}), + (a[t] = w.extend(l, o, r))) + : void 0 !== r && (a[t] = r)); + return a; + }), + w.extend({ + expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function(e) { + throw new Error(e); + }, + noop: function() {}, + isPlainObject: function(e) { + var t, n; + return ( + !(!e || "[object Object]" !== c.call(e)) && + (!(t = i(e)) || ("function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d)) + ); + }, + isEmptyObject: function(e) { + var t; + for (t in e) return !1; + return !0; + }, + globalEval: function(e) { + m(e); + }, + each: function(e, t) { + var n, + r = 0; + if (C(e)) { + for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break; + } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; + return e; + }, + trim: function(e) { + return null == e ? "" : (e + "").replace(T, ""); + }, + makeArray: function(e, t) { + var n = t || []; + return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n; + }, + inArray: function(e, t, n) { + return null == t ? -1 : u.call(t, e, n); + }, + merge: function(e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; + return (e.length = i), e; + }, + grep: function(e, t, n) { + for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) (r = !t(e[o], o)) !== s && i.push(e[o]); + return i; + }, + map: function(e, t, n) { + var r, + i, + o = 0, + s = []; + if (C(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && s.push(i); + else for (o in e) null != (i = t(e[o], o, n)) && s.push(i); + return a.apply([], s); + }, + guid: 1, + support: h + }), + "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), + w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) { + l["[object " + t + "]"] = t.toLowerCase(); + }); + function C(e) { + var t = !!e && "length" in e && e.length, + n = x(e); + return !g(e) && !y(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e)); + } + var E = (function(e) { + var t, + n, + r, + i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y, + v, + m, + x, + b = "sizzle" + 1 * new Date(), + w = e.document, + T = 0, + C = 0, + E = ae(), + k = ae(), + S = ae(), + D = function(e, t) { + return e === t && (f = !0), 0; + }, + N = {}.hasOwnProperty, + A = [], + j = A.pop, + q = A.push, + L = A.push, + H = A.slice, + O = function(e, t) { + for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; + return -1; + }, + P = + "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + M = "[\\x20\\t\\r\\n\\f]", + R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + I = + "\\[" + + M + + "*(" + + R + + ")(?:" + + M + + "*([*^$|!~]?=)" + + M + + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + + R + + "))|)" + + M + + "*\\]", + W = + ":(" + + R + + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + + I + + ")*)|.*)\\)|)", + $ = new RegExp(M + "+", "g"), + B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), + F = new RegExp("^" + M + "*," + M + "*"), + _ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), + z = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), + X = new RegExp(W), + U = new RegExp("^" + R + "$"), + V = { + ID: new RegExp("^#(" + R + ")"), + CLASS: new RegExp("^\\.(" + R + ")"), + TAG: new RegExp("^(" + R + "|[*])"), + ATTR: new RegExp("^" + I), + PSEUDO: new RegExp("^" + W), + 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("^(?:" + P + ")$", "i"), + needsContext: new RegExp( + "^" + + M + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + M + + "*((?:-\\d)?\\d*)" + + M + + "*\\)|)(?=[^-]|$)", + "i" + ) + }, + G = /^(?:input|select|textarea|button)$/i, + Y = /^h\d$/i, + Q = /^[^{]+\{\s*\[native \w/, + J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + K = /[+~]/, + Z = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), + ee = function(e, t, n) { + var r = "0x" + t - 65536; + return r !== r || n + ? t + : r < 0 + ? String.fromCharCode(r + 65536) + : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320); + }, + te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ne = function(e, t) { + return t + ? "\0" === e + ? "\ufffd" + : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " + : "\\" + e; + }, + re = function() { + p(); + }, + ie = me( + function(e) { + return !0 === e.disabled && ("form" in e || "label" in e); + }, + { dir: "parentNode", next: "legend" } + ); + try { + L.apply((A = H.call(w.childNodes)), w.childNodes), A[w.childNodes.length].nodeType; + } catch (e) { + L = { + apply: A.length + ? function(e, t) { + q.apply(e, H.call(t)); + } + : function(e, t) { + var n = e.length, + r = 0; + while ((e[n++] = t[r++])); + e.length = n - 1; + } + }; + } + function oe(e, t, r, i) { + var o, + s, + l, + c, + f, + h, + v, + m = t && t.ownerDocument, + T = t ? t.nodeType : 9; + if (((r = r || []), "string" != typeof e || !e || (1 !== T && 9 !== T && 11 !== T))) return r; + if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), (t = t || d), g)) { + if (11 !== T && (f = J.exec(e))) + if ((o = f[1])) { + if (9 === T) { + if (!(l = t.getElementById(o))) return r; + if (l.id === o) return r.push(l), r; + } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r; + } else { + if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r; + if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) + return L.apply(r, t.getElementsByClassName(o)), r; + } + if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { + if (1 !== T) (m = t), (v = e); + else if ("object" !== t.nodeName.toLowerCase()) { + (c = t.getAttribute("id")) ? (c = c.replace(te, ne)) : t.setAttribute("id", (c = b)), + (s = (h = a(e)).length); + while (s--) h[s] = "#" + c + " " + ve(h[s]); + (v = h.join(",")), (m = (K.test(e) && ge(t.parentNode)) || t); + } + if (v) + try { + return L.apply(r, m.querySelectorAll(v)), r; + } catch (e) { + } finally { + c === b && t.removeAttribute("id"); + } + } + } + return u(e.replace(B, "$1"), t, r, i); + } + function ae() { + var e = []; + function t(n, i) { + return e.push(n + " ") > r.cacheLength && delete t[e.shift()], (t[n + " "] = i); + } + return t; + } + function se(e) { + return (e[b] = !0), e; + } + function ue(e) { + var t = d.createElement("fieldset"); + try { + return !!e(t); + } catch (e) { + return !1; + } finally { + t.parentNode && t.parentNode.removeChild(t), (t = null); + } + } + function le(e, t) { + var n = e.split("|"), + i = n.length; + while (i--) r.attrHandle[n[i]] = t; + } + function ce(e, t) { + var n = t && e, + r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; + if (r) return r; + if (n) while ((n = n.nextSibling)) if (n === t) return -1; + return e ? 1 : -1; + } + function fe(e) { + return function(t) { + return "input" === t.nodeName.toLowerCase() && t.type === e; + }; + } + function pe(e) { + return function(t) { + var n = t.nodeName.toLowerCase(); + return ("input" === n || "button" === n) && t.type === e; + }; + } + function de(e) { + return function(t) { + return "form" in t + ? t.parentNode && !1 === t.disabled + ? "label" in t + ? "label" in t.parentNode + ? t.parentNode.disabled === e + : t.disabled === e + : t.isDisabled === e || (t.isDisabled !== !e && ie(t) === e) + : t.disabled === e + : "label" in t && t.disabled === e; + }; + } + function he(e) { + return se(function(t) { + return ( + (t = +t), + se(function(n, r) { + var i, + o = e([], n.length, t), + a = o.length; + while (a--) n[(i = o[a])] && (n[i] = !(r[i] = n[i])); + }) + ); + }); + } + function ge(e) { + return e && "undefined" != typeof e.getElementsByTagName && e; + } + (n = oe.support = {}), + (o = oe.isXML = function(e) { + var t = e && (e.ownerDocument || e).documentElement; + return !!t && "HTML" !== t.nodeName; + }), + (p = oe.setDocument = function(e) { + var t, + i, + a = e ? e.ownerDocument || e : w; + return a !== d && 9 === a.nodeType && a.documentElement + ? ((d = a), + (h = d.documentElement), + (g = !o(d)), + w !== d && + (i = d.defaultView) && + i.top !== i && + (i.addEventListener + ? i.addEventListener("unload", re, !1) + : i.attachEvent && i.attachEvent("onunload", re)), + (n.attributes = ue(function(e) { + return (e.className = "i"), !e.getAttribute("className"); + })), + (n.getElementsByTagName = ue(function(e) { + return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length; + })), + (n.getElementsByClassName = Q.test(d.getElementsByClassName)), + (n.getById = ue(function(e) { + return (h.appendChild(e).id = b), !d.getElementsByName || !d.getElementsByName(b).length; + })), + n.getById + ? ((r.filter.ID = function(e) { + var t = e.replace(Z, ee); + return function(e) { + return e.getAttribute("id") === t; + }; + }), + (r.find.ID = function(e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n = t.getElementById(e); + return n ? [n] : []; + } + })) + : ((r.filter.ID = function(e) { + var t = e.replace(Z, ee); + return function(e) { + var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); + return n && n.value === t; + }; + }), + (r.find.ID = function(e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n, + r, + i, + o = t.getElementById(e); + if (o) { + if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + (i = t.getElementsByName(e)), (r = 0); + while ((o = i[r++])) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + } + return []; + } + })), + (r.find.TAG = n.getElementsByTagName + ? function(e, t) { + return "undefined" != typeof t.getElementsByTagName + ? t.getElementsByTagName(e) + : n.qsa + ? t.querySelectorAll(e) + : void 0; + } + : function(e, t) { + var n, + r = [], + i = 0, + o = t.getElementsByTagName(e); + if ("*" === e) { + while ((n = o[i++])) 1 === n.nodeType && r.push(n); + return r; + } + return o; + }), + (r.find.CLASS = + n.getElementsByClassName && + function(e, t) { + if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e); + }), + (v = []), + (y = []), + (n.qsa = Q.test(d.querySelectorAll)) && + (ue(function(e) { + (h.appendChild(e).innerHTML = + ""), + e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), + e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), + e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), + e.querySelectorAll(":checked").length || y.push(":checked"), + e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]"); + }), + ue(function(e) { + e.innerHTML = ""; + var t = d.createElement("input"); + t.setAttribute("type", "hidden"), + e.appendChild(t).setAttribute("name", "D"), + e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), + 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), + (h.appendChild(e).disabled = !0), + 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), + e.querySelectorAll("*,:x"), + y.push(",.*:"); + })), + (n.matchesSelector = Q.test( + (m = + h.matches || + h.webkitMatchesSelector || + h.mozMatchesSelector || + h.oMatchesSelector || + h.msMatchesSelector) + )) && + ue(function(e) { + (n.disconnectedMatch = m.call(e, "*")), m.call(e, "[s!='']:x"), v.push("!=", W); + }), + (y = y.length && new RegExp(y.join("|"))), + (v = v.length && new RegExp(v.join("|"))), + (t = Q.test(h.compareDocumentPosition)), + (x = + t || Q.test(h.contains) + ? function(e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, + r = t && t.parentNode; + return ( + e === r || + !( + !r || + 1 !== r.nodeType || + !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)) + ) + ); + } + : function(e, t) { + if (t) while ((t = t.parentNode)) if (t === e) return !0; + return !1; + }), + (D = t + ? function(e, t) { + if (e === t) return (f = !0), 0; + var r = !e.compareDocumentPosition - !t.compareDocumentPosition; + return ( + r || + (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || + (!n.sortDetached && t.compareDocumentPosition(e) === r) + ? e === d || (e.ownerDocument === w && x(w, e)) + ? -1 + : t === d || (t.ownerDocument === w && x(w, t)) + ? 1 + : c + ? O(c, e) - O(c, t) + : 0 + : 4 & r + ? -1 + : 1) + ); + } + : function(e, t) { + if (e === t) return (f = !0), 0; + var n, + r = 0, + i = e.parentNode, + o = t.parentNode, + a = [e], + s = [t]; + if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; + if (i === o) return ce(e, t); + n = e; + while ((n = n.parentNode)) a.unshift(n); + n = t; + while ((n = n.parentNode)) s.unshift(n); + while (a[r] === s[r]) r++; + return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0; + }), + d) + : d; + }), + (oe.matches = function(e, t) { + return oe(e, null, null, t); + }), + (oe.matchesSelector = function(e, t) { + if ( + ((e.ownerDocument || e) !== d && p(e), + (t = t.replace(z, "='$1']")), + n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) + ) + try { + var r = m.call(e, t); + if (r || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return r; + } catch (e) {} + return oe(t, d, null, [e]).length > 0; + }), + (oe.contains = function(e, t) { + return (e.ownerDocument || e) !== d && p(e), x(e, t); + }), + (oe.attr = function(e, t) { + (e.ownerDocument || e) !== d && p(e); + var i = r.attrHandle[t.toLowerCase()], + o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; + return void 0 !== o + ? o + : n.attributes || !g + ? e.getAttribute(t) + : (o = e.getAttributeNode(t)) && o.specified + ? o.value + : null; + }), + (oe.escape = function(e) { + return (e + "").replace(te, ne); + }), + (oe.error = function(e) { + throw new Error("Syntax error, unrecognized expression: " + e); + }), + (oe.uniqueSort = function(e) { + var t, + r = [], + i = 0, + o = 0; + if (((f = !n.detectDuplicates), (c = !n.sortStable && e.slice(0)), e.sort(D), f)) { + while ((t = e[o++])) t === e[o] && (i = r.push(o)); + while (i--) e.splice(r[i], 1); + } + return (c = null), e; + }), + (i = oe.getText = function(e) { + var t, + n = "", + r = 0, + o = e.nodeType; + if (o) { + if (1 === o || 9 === o || 11 === o) { + if ("string" == typeof e.textContent) return e.textContent; + for (e = e.firstChild; e; e = e.nextSibling) n += i(e); + } else if (3 === o || 4 === o) return e.nodeValue; + } else while ((t = e[r++])) n += i(t); + return n; + }), + ((r = oe.selectors = { + cacheLength: 50, + createPseudo: se, + match: V, + attrHandle: {}, + find: {}, + relative: { + ">": { dir: "parentNode", first: !0 }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: !0 }, + "~": { dir: "previousSibling" } + }, + preFilter: { + ATTR: function(e) { + return ( + (e[1] = e[1].replace(Z, ee)), + (e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee)), + "~=" === e[2] && (e[3] = " " + e[3] + " "), + e.slice(0, 4) + ); + }, + CHILD: function(e) { + return ( + (e[1] = e[1].toLowerCase()), + "nth" === e[1].slice(0, 3) + ? (e[3] || oe.error(e[0]), + (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3]))), + (e[5] = +(e[7] + e[8] || "odd" === e[3]))) + : e[3] && oe.error(e[0]), + e + ); + }, + PSEUDO: function(e) { + var t, + n = !e[6] && e[2]; + return V.CHILD.test(e[0]) + ? null + : (e[3] + ? (e[2] = e[4] || e[5] || "") + : n && + X.test(n) && + (t = a(n, !0)) && + (t = n.indexOf(")", n.length - t) - n.length) && + ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), + e.slice(0, 3)); + } + }, + filter: { + TAG: function(e) { + var t = e.replace(Z, ee).toLowerCase(); + return "*" === e + ? function() { + return !0; + } + : function(e) { + return e.nodeName && e.nodeName.toLowerCase() === t; + }; + }, + CLASS: function(e) { + var t = E[e + " "]; + return ( + t || + ((t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && + E(e, function(e) { + return t.test( + ("string" == typeof e.className && e.className) || + ("undefined" != typeof e.getAttribute && e.getAttribute("class")) || + "" + ); + })) + ); + }, + ATTR: function(e, t, n) { + return function(r) { + var i = oe.attr(r, e); + return null == i + ? "!=" === t + : !t || + ((i += ""), + "=" === t + ? i === n + : "!=" === t + ? i !== n + : "^=" === t + ? n && 0 === i.indexOf(n) + : "*=" === t + ? n && i.indexOf(n) > -1 + : "$=" === t + ? n && i.slice(-n.length) === n + : "~=" === t + ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 + : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); + }; + }, + CHILD: function(e, t, n, r, i) { + var o = "nth" !== e.slice(0, 3), + a = "last" !== e.slice(-4), + s = "of-type" === t; + return 1 === r && 0 === i + ? function(e) { + return !!e.parentNode; + } + : function(t, n, u) { + var l, + c, + f, + p, + d, + h, + g = o !== a ? "nextSibling" : "previousSibling", + y = t.parentNode, + v = s && t.nodeName.toLowerCase(), + m = !u && !s, + x = !1; + if (y) { + if (o) { + while (g) { + p = t; + while ((p = p[g])) if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; + h = g = "only" === e && !h && "nextSibling"; + } + return !0; + } + if (((h = [a ? y.firstChild : y.lastChild]), a && m)) { + (x = + (d = + (l = + (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === + T && l[1]) && l[2]), + (p = d && y.childNodes[d]); + while ((p = (++d && p && p[g]) || (x = d = 0) || h.pop())) + if (1 === p.nodeType && ++x && p === t) { + c[e] = [T, d, x]; + break; + } + } else if ( + (m && + (x = d = + (l = + (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === + T && l[1]), + !1 === x) + ) + while ((p = (++d && p && p[g]) || (x = d = 0) || h.pop())) + if ( + (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && + ++x && + (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), + p === t) + ) + break; + return (x -= i) === r || (x % r == 0 && x / r >= 0); + } + }; + }, + PSEUDO: function(e, t) { + var n, + i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); + return i[b] + ? i(t) + : i.length > 1 + ? ((n = [e, e, "", t]), + r.setFilters.hasOwnProperty(e.toLowerCase()) + ? se(function(e, n) { + var r, + o = i(e, t), + a = o.length; + while (a--) e[(r = O(e, o[a]))] = !(n[r] = o[a]); + }) + : function(e) { + return i(e, 0, n); + }) + : i; + } + }, + pseudos: { + not: se(function(e) { + var t = [], + n = [], + r = s(e.replace(B, "$1")); + return r[b] + ? se(function(e, t, n, i) { + var o, + a = r(e, null, i, []), + s = e.length; + while (s--) (o = a[s]) && (e[s] = !(t[s] = o)); + }) + : function(e, i, o) { + return (t[0] = e), r(t, null, o, n), (t[0] = null), !n.pop(); + }; + }), + has: se(function(e) { + return function(t) { + return oe(e, t).length > 0; + }; + }), + contains: se(function(e) { + return ( + (e = e.replace(Z, ee)), + function(t) { + return (t.textContent || t.innerText || i(t)).indexOf(e) > -1; + } + ); + }), + lang: se(function(e) { + return ( + U.test(e || "") || oe.error("unsupported lang: " + e), + (e = e.replace(Z, ee).toLowerCase()), + function(t) { + var n; + do { + if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) + return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); + } while ((t = t.parentNode) && 1 === t.nodeType); + return !1; + } + ); + }), + target: function(t) { + var n = e.location && e.location.hash; + return n && n.slice(1) === t.id; + }, + root: function(e) { + return e === h; + }, + focus: function(e) { + return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); + }, + enabled: de(!1), + disabled: de(!0), + checked: function(e) { + var t = e.nodeName.toLowerCase(); + return ("input" === t && !!e.checked) || ("option" === t && !!e.selected); + }, + selected: function(e) { + return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; + }, + empty: function(e) { + for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; + return !0; + }, + parent: function(e) { + return !r.pseudos.empty(e); + }, + header: function(e) { + return Y.test(e.nodeName); + }, + input: function(e) { + return G.test(e.nodeName); + }, + button: function(e) { + var t = e.nodeName.toLowerCase(); + return ("input" === t && "button" === e.type) || "button" === t; + }, + text: function(e) { + var t; + return ( + "input" === e.nodeName.toLowerCase() && + "text" === e.type && + (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) + ); + }, + first: he(function() { + return [0]; + }), + last: he(function(e, t) { + return [t - 1]; + }), + eq: he(function(e, t, n) { + return [n < 0 ? n + t : n]; + }), + even: he(function(e, t) { + for (var n = 0; n < t; n += 2) e.push(n); + return e; + }), + odd: he(function(e, t) { + for (var n = 1; n < t; n += 2) e.push(n); + return e; + }), + lt: he(function(e, t, n) { + for (var r = n < 0 ? n + t : n; --r >= 0; ) e.push(r); + return e; + }), + gt: he(function(e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); + return e; + }) + } + }).pseudos.nth = r.pseudos.eq); + for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = fe(t); + for (t in { submit: !0, reset: !0 }) r.pseudos[t] = pe(t); + function ye() {} + (ye.prototype = r.filters = r.pseudos), + (r.setFilters = new ye()), + (a = oe.tokenize = function(e, t) { + var n, + i, + o, + a, + s, + u, + l, + c = k[e + " "]; + if (c) return t ? 0 : c.slice(0); + (s = e), (u = []), (l = r.preFilter); + while (s) { + (n && !(i = F.exec(s))) || (i && (s = s.slice(i[0].length) || s), u.push((o = []))), + (n = !1), + (i = _.exec(s)) && + ((n = i.shift()), o.push({ value: n, type: i[0].replace(B, " ") }), (s = s.slice(n.length))); + for (a in r.filter) + !(i = V[a].exec(s)) || + (l[a] && !(i = l[a](i))) || + ((n = i.shift()), o.push({ value: n, type: a, matches: i }), (s = s.slice(n.length))); + if (!n) break; + } + return t ? s.length : s ? oe.error(e) : k(e, u).slice(0); + }); + function ve(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; + return r; + } + function me(e, t, n) { + var r = t.dir, + i = t.next, + o = i || r, + a = n && "parentNode" === o, + s = C++; + return t.first + ? function(t, n, i) { + while ((t = t[r])) if (1 === t.nodeType || a) return e(t, n, i); + return !1; + } + : function(t, n, u) { + var l, + c, + f, + p = [T, s]; + if (u) { + while ((t = t[r])) if ((1 === t.nodeType || a) && e(t, n, u)) return !0; + } else + while ((t = t[r])) + if (1 === t.nodeType || a) + if ( + ((f = t[b] || (t[b] = {})), + (c = f[t.uniqueID] || (f[t.uniqueID] = {})), + i && i === t.nodeName.toLowerCase()) + ) + t = t[r] || t; + else { + if ((l = c[o]) && l[0] === T && l[1] === s) return (p[2] = l[2]); + if (((c[o] = p), (p[2] = e(t, n, u)))) return !0; + } + return !1; + }; + } + function xe(e) { + return e.length > 1 + ? function(t, n, r) { + var i = e.length; + while (i--) if (!e[i](t, n, r)) return !1; + return !0; + } + : e[0]; + } + function be(e, t, n) { + for (var r = 0, i = t.length; r < i; r++) oe(e, t[r], n); + return n; + } + function we(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) + (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))); + return a; + } + function Te(e, t, n, r, i, o) { + return ( + r && !r[b] && (r = Te(r)), + i && !i[b] && (i = Te(i, o)), + se(function(o, a, s, u) { + var l, + c, + f, + p = [], + d = [], + h = a.length, + g = o || be(t || "*", s.nodeType ? [s] : s, []), + y = !e || (!o && t) ? g : we(g, p, e, s, u), + v = n ? (i || (o ? e : h || r) ? [] : a) : y; + if ((n && n(y, v, s, u), r)) { + (l = we(v, d)), r(l, [], s, u), (c = l.length); + while (c--) (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)); + } + if (o) { + if (i || e) { + if (i) { + (l = []), (c = v.length); + while (c--) (f = v[c]) && l.push((y[c] = f)); + i(null, (v = []), l, u); + } + c = v.length; + while (c--) (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)); + } + } else (v = we(v === a ? v.splice(h, v.length) : v)), i ? i(null, a, v, u) : L.apply(a, v); + }) + ); + } + function Ce(e) { + for ( + var t, + n, + i, + o = e.length, + a = r.relative[e[0].type], + s = a || r.relative[" "], + u = a ? 1 : 0, + c = me( + function(e) { + return e === t; + }, + s, + !0 + ), + f = me( + function(e) { + return O(t, e) > -1; + }, + s, + !0 + ), + p = [ + function(e, n, r) { + var i = (!a && (r || n !== l)) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); + return (t = null), i; + } + ]; + u < o; + u++ + ) + if ((n = r.relative[e[u].type])) p = [me(xe(p), n)]; + else { + if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { + for (i = ++u; i < o; i++) if (r.relative[e[i].type]) break; + return Te( + u > 1 && xe(p), + u > 1 && ve(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace(B, "$1"), + n, + u < i && Ce(e.slice(u, i)), + i < o && Ce((e = e.slice(i))), + i < o && ve(e) + ); + } + p.push(n); + } + return xe(p); + } + function Ee(e, t) { + var n = t.length > 0, + i = e.length > 0, + o = function(o, a, s, u, c) { + var f, + h, + y, + v = 0, + m = "0", + x = o && [], + b = [], + w = l, + C = o || (i && r.find.TAG("*", c)), + E = (T += null == w ? 1 : Math.random() || 0.1), + k = C.length; + for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { + if (i && f) { + (h = 0), a || f.ownerDocument === d || (p(f), (s = !g)); + while ((y = e[h++])) + if (y(f, a || d, s)) { + u.push(f); + break; + } + c && (T = E); + } + n && ((f = !y && f) && v--, o && x.push(f)); + } + if (((v += m), n && m !== v)) { + h = 0; + while ((y = t[h++])) y(x, b, a, s); + if (o) { + if (v > 0) while (m--) x[m] || b[m] || (b[m] = j.call(u)); + b = we(b); + } + L.apply(u, b), c && !o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u); + } + return c && ((T = E), (l = w)), x; + }; + return n ? se(o) : o; + } + return ( + (s = oe.compile = function(e, t) { + var n, + r = [], + i = [], + o = S[e + " "]; + if (!o) { + t || (t = a(e)), (n = t.length); + while (n--) (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); + (o = S(e, Ee(i, r))).selector = e; + } + return o; + }), + (u = oe.select = function(e, t, n, i) { + var o, + u, + l, + c, + f, + p = "function" == typeof e && e, + d = !i && a((e = p.selector || e)); + if (((n = n || []), 1 === d.length)) { + if ( + (u = d[0] = d[0].slice(0)).length > 2 && + "ID" === (l = u[0]).type && + 9 === t.nodeType && + g && + r.relative[u[1].type] + ) { + if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n; + p && (t = t.parentNode), (e = e.slice(u.shift().value.length)); + } + o = V.needsContext.test(e) ? 0 : u.length; + while (o--) { + if (((l = u[o]), r.relative[(c = l.type)])) break; + if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), (K.test(u[0].type) && ge(t.parentNode)) || t))) { + if ((u.splice(o, 1), !(e = i.length && ve(u)))) return L.apply(n, i), n; + break; + } + } + } + return (p || s(e, d))(i, t, !g, n, !t || (K.test(e) && ge(t.parentNode)) || t), n; + }), + (n.sortStable = + b + .split("") + .sort(D) + .join("") === b), + (n.detectDuplicates = !!f), + p(), + (n.sortDetached = ue(function(e) { + return 1 & e.compareDocumentPosition(d.createElement("fieldset")); + })), + ue(function(e) { + return (e.innerHTML = ""), "#" === e.firstChild.getAttribute("href"); + }) || + le("type|href|height|width", function(e, t, n) { + if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); + }), + (n.attributes && + ue(function(e) { + return ( + (e.innerHTML = ""), + e.firstChild.setAttribute("value", ""), + "" === e.firstChild.getAttribute("value") + ); + })) || + le("value", function(e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; + }), + ue(function(e) { + return null == e.getAttribute("disabled"); + }) || + le(P, function(e, t, n) { + var r; + if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; + }), + oe + ); + })(e); + (w.find = E), + (w.expr = E.selectors), + (w.expr[":"] = w.expr.pseudos), + (w.uniqueSort = w.unique = E.uniqueSort), + (w.text = E.getText), + (w.isXMLDoc = E.isXML), + (w.contains = E.contains), + (w.escapeSelector = E.escape); + var k = function(e, t, n) { + var r = [], + i = void 0 !== n; + while ((e = e[t]) && 9 !== e.nodeType) + if (1 === e.nodeType) { + if (i && w(e).is(n)) break; + r.push(e); + } + return r; + }, + S = function(e, t) { + for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); + return n; + }, + D = w.expr.match.needsContext; + function N(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); + } + var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + function j(e, t, n) { + return g(t) + ? w.grep(e, function(e, r) { + return !!t.call(e, r, e) !== n; + }) + : t.nodeType + ? w.grep(e, function(e) { + return (e === t) !== n; + }) + : "string" != typeof t + ? w.grep(e, function(e) { + return u.call(t, e) > -1 !== n; + }) + : w.filter(t, e, n); + } + (w.filter = function(e, t, n) { + var r = t[0]; + return ( + n && (e = ":not(" + e + ")"), + 1 === t.length && 1 === r.nodeType + ? w.find.matchesSelector(r, e) + ? [r] + : [] + : w.find.matches( + e, + w.grep(t, function(e) { + return 1 === e.nodeType; + }) + ) + ); + }), + w.fn.extend({ + find: function(e) { + var t, + n, + r = this.length, + i = this; + if ("string" != typeof e) + return this.pushStack( + w(e).filter(function() { + for (t = 0; t < r; t++) if (w.contains(i[t], this)) return !0; + }) + ); + for (n = this.pushStack([]), t = 0; t < r; t++) w.find(e, i[t], n); + return r > 1 ? w.uniqueSort(n) : n; + }, + filter: function(e) { + return this.pushStack(j(this, e || [], !1)); + }, + not: function(e) { + return this.pushStack(j(this, e || [], !0)); + }, + is: function(e) { + return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length; + } + }); + var q, + L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; + ((w.fn.init = function(e, t, n) { + var i, o; + if (!e) return this; + if (((n = n || q), "string" == typeof e)) { + if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || (!i[1] && t)) + return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); + if (i[1]) { + if ( + ((t = t instanceof w ? t[0] : t), + w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), + A.test(i[1]) && w.isPlainObject(t)) + ) + for (i in t) g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); + return this; + } + return (o = r.getElementById(i[2])) && ((this[0] = o), (this.length = 1)), this; + } + return e.nodeType + ? ((this[0] = e), (this.length = 1), this) + : g(e) + ? void 0 !== n.ready + ? n.ready(e) + : e(w) + : w.makeArray(e, this); + }).prototype = w.fn), + (q = w(r)); + var H = /^(?:parents|prev(?:Until|All))/, + O = { children: !0, contents: !0, next: !0, prev: !0 }; + w.fn.extend({ + has: function(e) { + var t = w(e, this), + n = t.length; + return this.filter(function() { + for (var e = 0; e < n; e++) if (w.contains(this, t[e])) return !0; + }); + }, + closest: function(e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = "string" != typeof e && w(e); + if (!D.test(e)) + for (; r < i; r++) + for (n = this[r]; n && n !== t; n = n.parentNode) + if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { + o.push(n); + break; + } + return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o); + }, + index: function(e) { + return e + ? "string" == typeof e + ? u.call(w(e), this[0]) + : u.call(this, e.jquery ? e[0] : e) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function(e, t) { + return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))); + }, + addBack: function(e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); + } + }); + function P(e, t) { + while ((e = e[t]) && 1 !== e.nodeType); + return e; + } + w.each( + { + parent: function(e) { + var t = e.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function(e) { + return k(e, "parentNode"); + }, + parentsUntil: function(e, t, n) { + return k(e, "parentNode", n); + }, + next: function(e) { + return P(e, "nextSibling"); + }, + prev: function(e) { + return P(e, "previousSibling"); + }, + nextAll: function(e) { + return k(e, "nextSibling"); + }, + prevAll: function(e) { + return k(e, "previousSibling"); + }, + nextUntil: function(e, t, n) { + return k(e, "nextSibling", n); + }, + prevUntil: function(e, t, n) { + return k(e, "previousSibling", n); + }, + siblings: function(e) { + return S((e.parentNode || {}).firstChild, e); + }, + children: function(e) { + return S(e.firstChild); + }, + contents: function(e) { + return N(e, "iframe") + ? e.contentDocument + : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)); + } + }, + function(e, t) { + w.fn[e] = function(n, r) { + var i = w.map(this, t, n); + return ( + "Until" !== e.slice(-5) && (r = n), + r && "string" == typeof r && (i = w.filter(r, i)), + this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), + this.pushStack(i) + ); + }; + } + ); + var M = /[^\x20\t\r\n\f]+/g; + function R(e) { + var t = {}; + return ( + w.each(e.match(M) || [], function(e, n) { + t[n] = !0; + }), + t + ); + } + w.Callbacks = function(e) { + e = "string" == typeof e ? R(e) : w.extend({}, e); + var t, + n, + r, + i, + o = [], + a = [], + s = -1, + u = function() { + for (i = i || e.once, r = t = !0; a.length; s = -1) { + n = a.shift(); + while (++s < o.length) !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && ((s = o.length), (n = !1)); + } + e.memory || (n = !1), (t = !1), i && (o = n ? [] : ""); + }, + l = { + add: function() { + return ( + o && + (n && !t && ((s = o.length - 1), a.push(n)), + (function t(n) { + w.each(n, function(n, r) { + g(r) ? (e.unique && l.has(r)) || o.push(r) : r && r.length && "string" !== x(r) && t(r); + }); + })(arguments), + n && !t && u()), + this + ); + }, + remove: function() { + return ( + w.each(arguments, function(e, t) { + var n; + while ((n = w.inArray(t, o, n)) > -1) o.splice(n, 1), n <= s && s--; + }), + this + ); + }, + has: function(e) { + return e ? w.inArray(e, o) > -1 : o.length > 0; + }, + empty: function() { + return o && (o = []), this; + }, + disable: function() { + return (i = a = []), (o = n = ""), this; + }, + disabled: function() { + return !o; + }, + lock: function() { + return (i = a = []), n || t || (o = n = ""), this; + }, + locked: function() { + return !!i; + }, + fireWith: function(e, n) { + return i || ((n = [e, (n = n || []).slice ? n.slice() : n]), a.push(n), t || u()), this; + }, + fire: function() { + return l.fireWith(this, arguments), this; + }, + fired: function() { + return !!r; + } + }; + return l; + }; + function I(e) { + return e; + } + function W(e) { + throw e; + } + function $(e, t, n, r) { + var i; + try { + e && g((i = e.promise)) + ? i + .call(e) + .done(t) + .fail(n) + : e && g((i = e.then)) + ? i.call(e, t, n) + : t.apply(void 0, [e].slice(r)); + } catch (e) { + n.apply(void 0, [e]); + } + } + w.extend({ + Deferred: function(t) { + var n = [ + ["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2], + ["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"], + ["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"] + ], + r = "pending", + i = { + state: function() { + return r; + }, + always: function() { + return o.done(arguments).fail(arguments), this; + }, + catch: function(e) { + return i.then(null, e); + }, + pipe: function() { + var e = arguments; + return w + .Deferred(function(t) { + w.each(n, function(n, r) { + var i = g(e[r[4]]) && e[r[4]]; + o[r[1]](function() { + var e = i && i.apply(this, arguments); + e && g(e.promise) + ? e + .promise() + .progress(t.notify) + .done(t.resolve) + .fail(t.reject) + : t[r[0] + "With"](this, i ? [e] : arguments); + }); + }), + (e = null); + }) + .promise(); + }, + then: function(t, r, i) { + var o = 0; + function a(t, n, r, i) { + return function() { + var s = this, + u = arguments, + l = function() { + var e, l; + if (!(t < o)) { + if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution"); + (l = e && ("object" == typeof e || "function" == typeof e) && e.then), + g(l) + ? i + ? l.call(e, a(o, n, I, i), a(o, n, W, i)) + : (o++, l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) + : (r !== I && ((s = void 0), (u = [e])), (i || n.resolveWith)(s, u)); + } + }, + c = i + ? l + : function() { + try { + l(); + } catch (e) { + w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), + t + 1 >= o && (r !== W && ((s = void 0), (u = [e])), n.rejectWith(s, u)); + } + }; + t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)); + }; + } + return w + .Deferred(function(e) { + n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), + n[1][3].add(a(0, e, g(t) ? t : I)), + n[2][3].add(a(0, e, g(r) ? r : W)); + }) + .promise(); + }, + promise: function(e) { + return null != e ? w.extend(e, i) : i; + } + }, + o = {}; + return ( + w.each(n, function(e, t) { + var a = t[2], + s = t[5]; + (i[t[1]] = a.add), + s && + a.add( + function() { + r = s; + }, + n[3 - e][2].disable, + n[3 - e][3].disable, + n[0][2].lock, + n[0][3].lock + ), + a.add(t[3].fire), + (o[t[0]] = function() { + return o[t[0] + "With"](this === o ? void 0 : this, arguments), this; + }), + (o[t[0] + "With"] = a.fireWith); + }), + i.promise(o), + t && t.call(o, o), + o + ); + }, + when: function(e) { + var t = arguments.length, + n = t, + r = Array(n), + i = o.call(arguments), + a = w.Deferred(), + s = function(e) { + return function(n) { + (r[e] = this), (i[e] = arguments.length > 1 ? o.call(arguments) : n), --t || a.resolveWith(r, i); + }; + }; + if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) + return a.then(); + while (n--) $(i[n], s(n), a.reject); + return a.promise(); + } + }); + var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + (w.Deferred.exceptionHook = function(t, n) { + e.console && + e.console.warn && + t && + B.test(t.name) && + e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n); + }), + (w.readyException = function(t) { + e.setTimeout(function() { + throw t; + }); + }); + var F = w.Deferred(); + (w.fn.ready = function(e) { + return ( + F.then(e)["catch"](function(e) { + w.readyException(e); + }), + this + ); + }), + w.extend({ + isReady: !1, + readyWait: 1, + ready: function(e) { + (!0 === e ? --w.readyWait : w.isReady) || + ((w.isReady = !0), (!0 !== e && --w.readyWait > 0) || F.resolveWith(r, [w])); + } + }), + (w.ready.then = F.then); + function _() { + r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready(); + } + "complete" === r.readyState || ("loading" !== r.readyState && !r.documentElement.doScroll) + ? e.setTimeout(w.ready) + : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); + var z = function(e, t, n, r, i, o, a) { + var s = 0, + u = e.length, + l = null == n; + if ("object" === x(n)) { + i = !0; + for (s in n) z(e, t, s, n[s], !0, o, a); + } else if ( + void 0 !== r && + ((i = !0), + g(r) || (a = !0), + l && + (a + ? (t.call(e, r), (t = null)) + : ((l = t), + (t = function(e, t, n) { + return l.call(w(e), n); + }))), + t) + ) + for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; + }, + X = /^-ms-/, + U = /-([a-z])/g; + function V(e, t) { + return t.toUpperCase(); + } + function G(e) { + return e.replace(X, "ms-").replace(U, V); + } + var Y = function(e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; + }; + function Q() { + this.expando = w.expando + Q.uid++; + } + (Q.uid = 1), + (Q.prototype = { + cache: function(e) { + var t = e[this.expando]; + return ( + t || + ((t = {}), + Y(e) && + (e.nodeType + ? (e[this.expando] = t) + : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), + t + ); + }, + set: function(e, t, n) { + var r, + i = this.cache(e); + if ("string" == typeof t) i[G(t)] = n; + else for (r in t) i[G(r)] = t[r]; + return i; + }, + get: function(e, t) { + return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]; + }, + access: function(e, t, n) { + return void 0 === t || (t && "string" == typeof t && void 0 === n) + ? this.get(e, t) + : (this.set(e, t, n), void 0 !== n ? n : t); + }, + remove: function(e, t) { + var n, + r = e[this.expando]; + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; + while (n--) delete r[t[n]]; + } + (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); + } + }, + hasData: function(e) { + var t = e[this.expando]; + return void 0 !== t && !w.isEmptyObject(t); + } + }); + var J = new Q(), + K = new Q(), + Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + ee = /[A-Z]/g; + function te(e) { + return ( + "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e)) + ); + } + function ne(e, t, n) { + var r; + if (void 0 === n && 1 === e.nodeType) + if (((r = "data-" + t.replace(ee, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(r)))) { + try { + n = te(n); + } catch (e) {} + K.set(e, t, n); + } else n = void 0; + return n; + } + w.extend({ + hasData: function(e) { + return K.hasData(e) || J.hasData(e); + }, + data: function(e, t, n) { + return K.access(e, t, n); + }, + removeData: function(e, t) { + K.remove(e, t); + }, + _data: function(e, t, n) { + return J.access(e, t, n); + }, + _removeData: function(e, t) { + J.remove(e, t); + } + }), + w.fn.extend({ + data: function(e, t) { + var n, + r, + i, + o = this[0], + a = o && o.attributes; + if (void 0 === e) { + if (this.length && ((i = K.get(o)), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { + n = a.length; + while (n--) a[n] && 0 === (r = a[n].name).indexOf("data-") && ((r = G(r.slice(5))), ne(o, r, i[r])); + J.set(o, "hasDataAttrs", !0); + } + return i; + } + return "object" == typeof e + ? this.each(function() { + K.set(this, e); + }) + : z( + this, + function(t) { + var n; + if (o && void 0 === t) { + if (void 0 !== (n = K.get(o, e))) return n; + if (void 0 !== (n = ne(o, e))) return n; + } else + this.each(function() { + K.set(this, e, t); + }); + }, + null, + t, + arguments.length > 1, + null, + !0 + ); + }, + removeData: function(e) { + return this.each(function() { + K.remove(this, e); + }); + } + }), + w.extend({ + queue: function(e, t, n) { + var r; + if (e) + return ( + (t = (t || "fx") + "queue"), + (r = J.get(e, t)), + n && (!r || Array.isArray(n) ? (r = J.access(e, t, w.makeArray(n))) : r.push(n)), + r || [] + ); + }, + dequeue: function(e, t) { + t = t || "fx"; + var n = w.queue(e, t), + r = n.length, + i = n.shift(), + o = w._queueHooks(e, t), + a = function() { + w.dequeue(e, t); + }; + "inprogress" === i && ((i = n.shift()), r--), + i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), + !r && o && o.empty.fire(); + }, + _queueHooks: function(e, t) { + var n = t + "queueHooks"; + return ( + J.get(e, n) || + J.access(e, n, { + empty: w.Callbacks("once memory").add(function() { + J.remove(e, [t + "queue", n]); + }) + }) + ); + } + }), + w.fn.extend({ + queue: function(e, t) { + var n = 2; + return ( + "string" != typeof e && ((t = e), (e = "fx"), n--), + arguments.length < n + ? w.queue(this[0], e) + : void 0 === t + ? this + : this.each(function() { + var n = w.queue(this, e, t); + w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e); + }) + ); + }, + dequeue: function(e) { + return this.each(function() { + w.dequeue(this, e); + }); + }, + clearQueue: function(e) { + return this.queue(e || "fx", []); + }, + promise: function(e, t) { + var n, + r = 1, + i = w.Deferred(), + o = this, + a = this.length, + s = function() { + --r || i.resolveWith(o, [o]); + }; + "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx"); + while (a--) (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); + return s(), i.promise(t); + } + }); + var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), + oe = ["Top", "Right", "Bottom", "Left"], + ae = function(e, t) { + return ( + "none" === (e = t || e).style.display || + ("" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display")) + ); + }, + se = function(e, t, n, r) { + var i, + o, + a = {}; + for (o in t) (a[o] = e.style[o]), (e.style[o] = t[o]); + i = n.apply(e, r || []); + for (o in t) e.style[o] = a[o]; + return i; + }; + function ue(e, t, n, r) { + var i, + o, + a = 20, + s = r + ? function() { + return r.cur(); + } + : function() { + return w.css(e, t, ""); + }, + u = s(), + l = (n && n[3]) || (w.cssNumber[t] ? "" : "px"), + c = (w.cssNumber[t] || ("px" !== l && +u)) && ie.exec(w.css(e, t)); + if (c && c[3] !== l) { + (u /= 2), (l = l || c[3]), (c = +u || 1); + while (a--) w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), (c /= o); + (c *= 2), w.style(e, t, c + l), (n = n || []); + } + return ( + n && + ((c = +c || +u || 0), + (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), + r && ((r.unit = l), (r.start = c), (r.end = i))), + i + ); + } + var le = {}; + function ce(e) { + var t, + n = e.ownerDocument, + r = e.nodeName, + i = le[r]; + return ( + i || + ((t = n.body.appendChild(n.createElement(r))), + (i = w.css(t, "display")), + t.parentNode.removeChild(t), + "none" === i && (i = "block"), + (le[r] = i), + i) + ); + } + function fe(e, t) { + for (var n, r, i = [], o = 0, a = e.length; o < a; o++) + (r = e[o]).style && + ((n = r.style.display), + t + ? ("none" === n && ((i[o] = J.get(r, "display") || null), i[o] || (r.style.display = "")), + "" === r.style.display && ae(r) && (i[o] = ce(r))) + : "none" !== n && ((i[o] = "none"), J.set(r, "display", n))); + for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]); + return e; + } + w.fn.extend({ + show: function() { + return fe(this, !0); + }, + hide: function() { + return fe(this); + }, + toggle: function(e) { + return "boolean" == typeof e + ? e + ? this.show() + : this.hide() + : this.each(function() { + ae(this) ? w(this).show() : w(this).hide(); + }); + } + }); + var pe = /^(?:checkbox|radio)$/i, + de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, + he = /^$|^module$|\/(?:java|ecma)script/i, + ge = { + option: [1, ""], + thead: [1, "", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + (ge.optgroup = ge.option), (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead), (ge.th = ge.td); + function ye(e, t) { + var n; + return ( + (n = + "undefined" != typeof e.getElementsByTagName + ? e.getElementsByTagName(t || "*") + : "undefined" != typeof e.querySelectorAll + ? e.querySelectorAll(t || "*") + : []), + void 0 === t || (t && N(e, t)) ? w.merge([e], n) : n + ); + } + function ve(e, t) { + for (var n = 0, r = e.length; n < r; n++) J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")); + } + var me = /<|&#?\w+;/; + function xe(e, t, n, r, i) { + for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) + if ((o = e[d]) || 0 === o) + if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o); + else if (me.test(o)) { + (a = a || f.appendChild(t.createElement("div"))), + (s = (de.exec(o) || ["", ""])[1].toLowerCase()), + (u = ge[s] || ge._default), + (a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2]), + (c = u[0]); + while (c--) a = a.lastChild; + w.merge(p, a.childNodes), ((a = f.firstChild).textContent = ""); + } else p.push(t.createTextNode(o)); + (f.textContent = ""), (d = 0); + while ((o = p[d++])) + if (r && w.inArray(o, r) > -1) i && i.push(o); + else if (((l = w.contains(o.ownerDocument, o)), (a = ye(f.appendChild(o), "script")), l && ve(a), n)) { + c = 0; + while ((o = a[c++])) he.test(o.type || "") && n.push(o); + } + return f; + } + !(function() { + var e = r.createDocumentFragment().appendChild(r.createElement("div")), + t = r.createElement("input"); + t.setAttribute("type", "radio"), + t.setAttribute("checked", "checked"), + t.setAttribute("name", "t"), + e.appendChild(t), + (h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked), + (e.innerHTML = ""), + (h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue); + })(); + var be = r.documentElement, + we = /^key/, + Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + Ce = /^([^.]*)(?:\.(.+)|)/; + function Ee() { + return !0; + } + function ke() { + return !1; + } + function Se() { + try { + return r.activeElement; + } catch (e) {} + } + function De(e, t, n, r, i, o) { + var a, s; + if ("object" == typeof t) { + "string" != typeof n && ((r = r || n), (n = void 0)); + for (s in t) De(e, s, n, r, t[s], o); + return e; + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && ("string" == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = ke; + else if (!i) return e; + return ( + 1 === o && + ((a = i), + ((i = function(e) { + return w().off(e), a.apply(this, arguments); + }).guid = a.guid || (a.guid = w.guid++))), + e.each(function() { + w.event.add(this, t, i, r, n); + }) + ); + } + (w.event = { + global: {}, + add: function(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.get(e); + if (y) { + n.handler && ((n = (o = n).handler), (i = o.selector)), + i && w.find.matchesSelector(be, i), + n.guid || (n.guid = w.guid++), + (u = y.events) || (u = y.events = {}), + (a = y.handle) || + (a = y.handle = function(t) { + return "undefined" != typeof w && w.event.triggered !== t.type + ? w.event.dispatch.apply(e, arguments) + : void 0; + }), + (l = (t = (t || "").match(M) || [""]).length); + while (l--) + (d = g = (s = Ce.exec(t[l]) || [])[1]), + (h = (s[2] || "").split(".").sort()), + d && + ((f = w.event.special[d] || {}), + (d = (i ? f.delegateType : f.bindType) || d), + (f = w.event.special[d] || {}), + (c = w.extend( + { + type: d, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && w.expr.match.needsContext.test(i), + namespace: h.join(".") + }, + o + )), + (p = u[d]) || + (((p = u[d] = []).delegateCount = 0), + (f.setup && !1 !== f.setup.call(e, r, h, a)) || (e.addEventListener && e.addEventListener(d, a))), + f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), + i ? p.splice(p.delegateCount++, 0, c) : p.push(c), + (w.event.global[d] = !0)); + } + }, + remove: function(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.hasData(e) && J.get(e); + if (y && (u = y.events)) { + l = (t = (t || "").match(M) || [""]).length; + while (l--) + if (((s = Ce.exec(t[l]) || []), (d = g = s[1]), (h = (s[2] || "").split(".").sort()), d)) { + (f = w.event.special[d] || {}), + (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), + (s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")), + (a = o = p.length); + while (o--) + (c = p[o]), + (!i && g !== c.origType) || + (n && n.guid !== c.guid) || + (s && !s.test(c.namespace)) || + (r && r !== c.selector && ("**" !== r || !c.selector)) || + (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); + a && + !p.length && + ((f.teardown && !1 !== f.teardown.call(e, h, y.handle)) || w.removeEvent(e, d, y.handle), delete u[d]); + } else for (d in u) w.event.remove(e, d + t[l], n, r, !0); + w.isEmptyObject(u) && J.remove(e, "handle events"); + } + }, + dispatch: function(e) { + var t = w.event.fix(e), + n, + r, + i, + o, + a, + s, + u = new Array(arguments.length), + l = (J.get(this, "events") || {})[t.type] || [], + c = w.event.special[t.type] || {}; + for (u[0] = t, n = 1; n < arguments.length; n++) u[n] = arguments[n]; + if (((t.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, t))) { + (s = w.event.handlers.call(this, t, l)), (n = 0); + while ((o = s[n++]) && !t.isPropagationStopped()) { + (t.currentTarget = o.elem), (r = 0); + while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) + (t.rnamespace && !t.rnamespace.test(a.namespace)) || + ((t.handleObj = a), + (t.data = a.data), + void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && + !1 === (t.result = i) && + (t.preventDefault(), t.stopPropagation())); + } + return c.postDispatch && c.postDispatch.call(this, t), t.result; + } + }, + handlers: function(e, t) { + var n, + r, + i, + o, + a, + s = [], + u = t.delegateCount, + l = e.target; + if (u && l.nodeType && !("click" === e.type && e.button >= 1)) + for (; l !== this; l = l.parentNode || this) + if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < u; n++) + void 0 === a[(i = (r = t[n]).selector + " ")] && + (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), + a[i] && o.push(r); + o.length && s.push({ elem: l, handlers: o }); + } + return (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s; + }, + addProp: function(e, t) { + Object.defineProperty(w.Event.prototype, e, { + enumerable: !0, + configurable: !0, + get: g(t) + ? function() { + if (this.originalEvent) return t(this.originalEvent); + } + : function() { + if (this.originalEvent) return this.originalEvent[e]; + }, + set: function(t) { + Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }); + } + }); + }, + fix: function(e) { + return e[w.expando] ? e : new w.Event(e); + }, + special: { + load: { noBubble: !0 }, + focus: { + trigger: function() { + if (this !== Se() && this.focus) return this.focus(), !1; + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if (this === Se() && this.blur) return this.blur(), !1; + }, + delegateType: "focusout" + }, + click: { + trigger: function() { + if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1; + }, + _default: function(e) { + return N(e.target, "a"); + } + }, + beforeunload: { + postDispatch: function(e) { + void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); + } + } + } + }), + (w.removeEvent = function(e, t, n) { + e.removeEventListener && e.removeEventListener(t, n); + }), + (w.Event = function(e, t) { + if (!(this instanceof w.Event)) return new w.Event(e, t); + e && e.type + ? ((this.originalEvent = e), + (this.type = e.type), + (this.isDefaultPrevented = + e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : ke), + (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), + (this.currentTarget = e.currentTarget), + (this.relatedTarget = e.relatedTarget)) + : (this.type = e), + t && w.extend(this, t), + (this.timeStamp = (e && e.timeStamp) || Date.now()), + (this[w.expando] = !0); + }), + (w.Event.prototype = { + constructor: w.Event, + isDefaultPrevented: ke, + isPropagationStopped: ke, + isImmediatePropagationStopped: ke, + isSimulated: !1, + preventDefault: function() { + var e = this.originalEvent; + (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault(); + }, + stopPropagation: function() { + var e = this.originalEvent; + (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation(); + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + (this.isImmediatePropagationStopped = Ee), + e && !this.isSimulated && e.stopImmediatePropagation(), + this.stopPropagation(); + } + }), + w.each( + { + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + char: !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function(e) { + var t = e.button; + return null == e.which && we.test(e.type) + ? null != e.charCode + ? e.charCode + : e.keyCode + : !e.which && void 0 !== t && Te.test(e.type) + ? 1 & t + ? 1 + : 2 & t + ? 3 + : 4 & t + ? 2 + : 0 + : e.which; + } + }, + w.event.addProp + ), + w.each( + { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, + function(e, t) { + w.event.special[e] = { + delegateType: t, + bindType: t, + handle: function(e) { + var n, + r = this, + i = e.relatedTarget, + o = e.handleObj; + return ( + (i && (i === r || w.contains(r, i))) || + ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), + n + ); + } + }; + } + ), + w.fn.extend({ + on: function(e, t, n, r) { + return De(this, e, t, n, r); + }, + one: function(e, t, n, r) { + return De(this, e, t, n, r, 1); + }, + off: function(e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) + return ( + (r = e.handleObj), + w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), + this + ); + if ("object" == typeof e) { + for (i in e) this.off(i, t, e[i]); + return this; + } + return ( + (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), + !1 === n && (n = ke), + this.each(function() { + w.event.remove(this, e, n, t); + }) + ); + } + }); + var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + Ae = /\s*$/g; + function Le(e, t) { + return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e; + } + function He(e) { + return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; + } + function Oe(e) { + return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e; + } + function Pe(e, t) { + var n, r, i, o, a, s, u, l; + if (1 === t.nodeType) { + if (J.hasData(e) && ((o = J.access(e)), (a = J.set(t, o)), (l = o.events))) { + delete a.handle, (a.events = {}); + for (i in l) for (n = 0, r = l[i].length; n < r; n++) w.event.add(t, i, l[i][n]); + } + K.hasData(e) && ((s = K.access(e)), (u = w.extend({}, s)), K.set(t, u)); + } + } + function Me(e, t) { + var n = t.nodeName.toLowerCase(); + "input" === n && pe.test(e.type) + ? (t.checked = e.checked) + : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue); + } + function Re(e, t, n, r) { + t = a.apply([], t); + var i, + o, + s, + u, + l, + c, + f = 0, + p = e.length, + d = p - 1, + y = t[0], + v = g(y); + if (v || (p > 1 && "string" == typeof y && !h.checkClone && je.test(y))) + return e.each(function(i) { + var o = e.eq(i); + v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r); + }); + if ( + p && + ((i = xe(t, e[0].ownerDocument, !1, e, r)), (o = i.firstChild), 1 === i.childNodes.length && (i = o), o || r) + ) { + for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) + (l = i), f !== d && ((l = w.clone(l, !0, !0)), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); + if (u) + for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) + (l = s[f]), + he.test(l.type || "") && + !J.access(l, "globalEval") && + w.contains(c, l) && + (l.src && "module" !== (l.type || "").toLowerCase() + ? w._evalUrl && w._evalUrl(l.src) + : m(l.textContent.replace(qe, ""), c, l)); + } + return e; + } + function Ie(e, t, n) { + for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || w.cleanData(ye(r)), + r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); + return e; + } + w.extend({ + htmlPrefilter: function(e) { + return e.replace(Ne, "<$1>"); + }, + clone: function(e, t, n) { + var r, + i, + o, + a, + s = e.cloneNode(!0), + u = w.contains(e.ownerDocument, e); + if (!(h.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || w.isXMLDoc(e))) + for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) Me(o[r], a[r]); + if (t) + if (n) for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) Pe(o[r], a[r]); + else Pe(e, s); + return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s; + }, + cleanData: function(e) { + for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) + if (Y(n)) { + if ((t = n[J.expando])) { + if (t.events) for (r in t.events) i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); + n[J.expando] = void 0; + } + n[K.expando] && (n[K.expando] = void 0); + } + } + }), + w.fn.extend({ + detach: function(e) { + return Ie(this, e, !0); + }, + remove: function(e) { + return Ie(this, e); + }, + text: function(e) { + return z( + this, + function(e) { + return void 0 === e + ? w.text(this) + : this.empty().each(function() { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e); + }); + }, + null, + e, + arguments.length + ); + }, + append: function() { + return Re(this, arguments, function(e) { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || Le(this, e).appendChild(e); + }); + }, + prepend: function() { + return Re(this, arguments, function(e) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var t = Le(this, e); + t.insertBefore(e, t.firstChild); + } + }); + }, + before: function() { + return Re(this, arguments, function(e) { + this.parentNode && this.parentNode.insertBefore(e, this); + }); + }, + after: function() { + return Re(this, arguments, function(e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); + }); + }, + empty: function() { + for (var e, t = 0; null != (e = this[t]); t++) + 1 === e.nodeType && (w.cleanData(ye(e, !1)), (e.textContent = "")); + return this; + }, + clone: function(e, t) { + return ( + (e = null != e && e), + (t = null == t ? e : t), + this.map(function() { + return w.clone(this, e, t); + }) + ); + }, + html: function(e) { + return z( + this, + function(e) { + var t = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === e && 1 === t.nodeType) return t.innerHTML; + if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { + e = w.htmlPrefilter(e); + try { + for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), (t.innerHTML = e)); + t = 0; + } catch (e) {} + } + t && this.empty().append(e); + }, + null, + e, + arguments.length + ); + }, + replaceWith: function() { + var e = []; + return Re( + this, + arguments, + function(t) { + var n = this.parentNode; + w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)); + }, + e + ); + } + }), + w.each( + { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, + function(e, t) { + w.fn[e] = function(e) { + for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) + (n = a === o ? this : this.clone(!0)), w(i[a])[t](n), s.apply(r, n.get()); + return this.pushStack(r); + }; + } + ); + var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), + $e = function(t) { + var n = t.ownerDocument.defaultView; + return (n && n.opener) || (n = e), n.getComputedStyle(t); + }, + Be = new RegExp(oe.join("|"), "i"); + !(function() { + function t() { + if (c) { + (l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), + (c.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), + be.appendChild(l).appendChild(c); + var t = e.getComputedStyle(c); + (i = "1%" !== t.top), + (u = 12 === n(t.marginLeft)), + (c.style.right = "60%"), + (s = 36 === n(t.right)), + (o = 36 === n(t.width)), + (c.style.position = "absolute"), + (a = 36 === c.offsetWidth || "absolute"), + be.removeChild(l), + (c = null); + } + } + function n(e) { + return Math.round(parseFloat(e)); + } + var i, + o, + a, + s, + u, + l = r.createElement("div"), + c = r.createElement("div"); + c.style && + ((c.style.backgroundClip = "content-box"), + (c.cloneNode(!0).style.backgroundClip = ""), + (h.clearCloneStyle = "content-box" === c.style.backgroundClip), + w.extend(h, { + boxSizingReliable: function() { + return t(), o; + }, + pixelBoxStyles: function() { + return t(), s; + }, + pixelPosition: function() { + return t(), i; + }, + reliableMarginLeft: function() { + return t(), u; + }, + scrollboxSize: function() { + return t(), a; + } + })); + })(); + function Fe(e, t, n) { + var r, + i, + o, + a, + s = e.style; + return ( + (n = n || $e(e)) && + ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), + !h.pixelBoxStyles() && + We.test(a) && + Be.test(t) && + ((r = s.width), + (i = s.minWidth), + (o = s.maxWidth), + (s.minWidth = s.maxWidth = s.width = a), + (a = n.width), + (s.width = r), + (s.minWidth = i), + (s.maxWidth = o))), + void 0 !== a ? a + "" : a + ); + } + function _e(e, t) { + return { + get: function() { + if (!e()) return (this.get = t).apply(this, arguments); + delete this.get; + } + }; + } + var ze = /^(none|table(?!-c[ea]).+)/, + Xe = /^--/, + Ue = { position: "absolute", visibility: "hidden", display: "block" }, + Ve = { letterSpacing: "0", fontWeight: "400" }, + Ge = ["Webkit", "Moz", "ms"], + Ye = r.createElement("div").style; + function Qe(e) { + if (e in Ye) return e; + var t = e[0].toUpperCase() + e.slice(1), + n = Ge.length; + while (n--) if ((e = Ge[n] + t) in Ye) return e; + } + function Je(e) { + var t = w.cssProps[e]; + return t || (t = w.cssProps[e] = Qe(e) || e), t; + } + function Ke(e, t, n) { + var r = ie.exec(t); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; + } + function Ze(e, t, n, r, i, o) { + var a = "width" === t ? 1 : 0, + s = 0, + u = 0; + if (n === (r ? "border" : "content")) return 0; + for (; a < 4; a += 2) + "margin" === n && (u += w.css(e, n + oe[a], !0, i)), + r + ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), + "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) + : ((u += w.css(e, "padding" + oe[a], !0, i)), + "padding" !== n + ? (u += w.css(e, "border" + oe[a] + "Width", !0, i)) + : (s += w.css(e, "border" + oe[a] + "Width", !0, i))); + return ( + !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5))), u + ); + } + function et(e, t, n) { + var r = $e(e), + i = Fe(e, t, r), + o = "border-box" === w.css(e, "boxSizing", !1, r), + a = o; + if (We.test(i)) { + if (!n) return i; + i = "auto"; + } + return ( + (a = a && (h.boxSizingReliable() || i === e.style[t])), + ("auto" === i || (!parseFloat(i) && "inline" === w.css(e, "display", !1, r))) && + ((i = e["offset" + t[0].toUpperCase() + t.slice(1)]), (a = !0)), + (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px" + ); + } + w.extend({ + cssHooks: { + opacity: { + get: function(e, t) { + if (t) { + var n = Fe(e, "opacity"); + return "" === n ? "1" : n; + } + } + } + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: {}, + style: function(e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + s = G(t), + u = Xe.test(t), + l = e.style; + if ((u || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]), void 0 === n)) + return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; + "string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && ((n = ue(e, t, i)), (o = "number")), + null != n && + n === n && + ("number" === o && (n += (i && i[3]) || (w.cssNumber[s] ? "" : "px")), + h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), + (a && "set" in a && void 0 === (n = a.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n))); + } + }, + css: function(e, t, n, r) { + var i, + o, + a, + s = G(t); + return ( + Xe.test(t) || (t = Je(s)), + (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), + void 0 === i && (i = Fe(e, t, r)), + "normal" === i && t in Ve && (i = Ve[t]), + "" === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i + ); + } + }), + w.each(["height", "width"], function(e, t) { + w.cssHooks[t] = { + get: function(e, n, r) { + if (n) + return !ze.test(w.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width) + ? et(e, t, r) + : se(e, Ue, function() { + return et(e, t, r); + }); + }, + set: function(e, n, r) { + var i, + o = $e(e), + a = "border-box" === w.css(e, "boxSizing", !1, o), + s = r && Ze(e, t, r, a, o); + return ( + a && + h.scrollboxSize() === o.position && + (s -= Math.ceil( + e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - 0.5 + )), + s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && ((e.style[t] = n), (n = w.css(e, t))), + Ke(e, n, s) + ); + } + }; + }), + (w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function(e, t) { + if (t) + return ( + (parseFloat(Fe(e, "marginLeft")) || + e.getBoundingClientRect().left - + se(e, { marginLeft: 0 }, function() { + return e.getBoundingClientRect().left; + })) + "px" + ); + })), + w.each({ margin: "", padding: "", border: "Width" }, function(e, t) { + (w.cssHooks[e + t] = { + expand: function(n) { + for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) + i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; + return i; + } + }), + "margin" !== e && (w.cssHooks[e + t].set = Ke); + }), + w.fn.extend({ + css: function(e, t) { + return z( + this, + function(e, t, n) { + var r, + i, + o = {}, + a = 0; + if (Array.isArray(t)) { + for (r = $e(e), i = t.length; a < i; a++) o[t[a]] = w.css(e, t[a], !1, r); + return o; + } + return void 0 !== n ? w.style(e, t, n) : w.css(e, t); + }, + e, + t, + arguments.length > 1 + ); + } + }); + function tt(e, t, n, r, i) { + return new tt.prototype.init(e, t, n, r, i); + } + (w.Tween = tt), + (tt.prototype = { + constructor: tt, + init: function(e, t, n, r, i, o) { + (this.elem = e), + (this.prop = n), + (this.easing = i || w.easing._default), + (this.options = t), + (this.start = this.now = this.cur()), + (this.end = r), + (this.unit = o || (w.cssNumber[n] ? "" : "px")); + }, + cur: function() { + var e = tt.propHooks[this.prop]; + return e && e.get ? e.get(this) : tt.propHooks._default.get(this); + }, + run: function(e) { + var t, + n = tt.propHooks[this.prop]; + return ( + this.options.duration + ? (this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) + : (this.pos = t = e), + (this.now = (this.end - this.start) * t + this.start), + this.options.step && this.options.step.call(this.elem, this.now, this), + n && n.set ? n.set(this) : tt.propHooks._default.set(this), + this + ); + } + }), + (tt.prototype.init.prototype = tt.prototype), + (tt.propHooks = { + _default: { + get: function(e) { + var t; + return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) + ? e.elem[e.prop] + : (t = w.css(e.elem, e.prop, "")) && "auto" !== t + ? t + : 0; + }, + set: function(e) { + w.fx.step[e.prop] + ? w.fx.step[e.prop](e) + : 1 !== e.elem.nodeType || (null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop]) + ? (e.elem[e.prop] = e.now) + : w.style(e.elem, e.prop, e.now + e.unit); + } + } + }), + (tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { + set: function(e) { + e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); + } + }), + (w.easing = { + linear: function(e) { + return e; + }, + swing: function(e) { + return 0.5 - Math.cos(e * Math.PI) / 2; + }, + _default: "swing" + }), + (w.fx = tt.prototype.init), + (w.fx.step = {}); + var nt, + rt, + it = /^(?:toggle|show|hide)$/, + ot = /queueHooks$/; + function at() { + rt && + (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), + w.fx.tick()); + } + function st() { + return ( + e.setTimeout(function() { + nt = void 0; + }), + (nt = Date.now()) + ); + } + function ut(e, t) { + var n, + r = 0, + i = { height: e }; + for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e; + return t && (i.opacity = i.width = e), i; + } + function lt(e, t, n) { + for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++) + if ((r = i[o].call(n, t, e))) return r; + } + function ct(e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c, + f = "width" in t || "height" in t, + p = this, + d = {}, + h = e.style, + g = e.nodeType && ae(e), + y = J.get(e, "fxshow"); + n.queue || + (null == (a = w._queueHooks(e, "fx")).unqueued && + ((a.unqueued = 0), + (s = a.empty.fire), + (a.empty.fire = function() { + a.unqueued || s(); + })), + a.unqueued++, + p.always(function() { + p.always(function() { + a.unqueued--, w.queue(e, "fx").length || a.empty.fire(); + }); + })); + for (r in t) + if (((i = t[r]), it.test(i))) { + if ((delete t[r], (o = o || "toggle" === i), i === (g ? "hide" : "show"))) { + if ("show" !== i || !y || void 0 === y[r]) continue; + g = !0; + } + d[r] = (y && y[r]) || w.style(e, r); + } + if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { + f && + 1 === e.nodeType && + ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), + null == (l = y && y.display) && (l = J.get(e, "display")), + "none" === (c = w.css(e, "display")) && + (l ? (c = l) : (fe([e], !0), (l = e.style.display || l), (c = w.css(e, "display")), fe([e]))), + ("inline" === c || ("inline-block" === c && null != l)) && + "none" === w.css(e, "float") && + (u || + (p.done(function() { + h.display = l; + }), + null == l && ((c = h.display), (l = "none" === c ? "" : c))), + (h.display = "inline-block"))), + n.overflow && + ((h.overflow = "hidden"), + p.always(function() { + (h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2]); + })), + (u = !1); + for (r in d) + u || + (y ? "hidden" in y && (g = y.hidden) : (y = J.access(e, "fxshow", { display: l })), + o && (y.hidden = !g), + g && fe([e], !0), + p.done(function() { + g || fe([e]), J.remove(e, "fxshow"); + for (r in d) w.style(e, r, d[r]); + })), + (u = lt(g ? y[r] : 0, r, p)), + r in y || ((y[r] = u.start), g && ((u.end = u.start), (u.start = 0))); + } + } + function ft(e, t) { + var n, r, i, o, a; + for (n in e) + if ( + ((r = G(n)), + (i = t[r]), + (o = e[n]), + Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), + n !== r && ((e[r] = o), delete e[n]), + (a = w.cssHooks[r]) && "expand" in a) + ) { + (o = a.expand(o)), delete e[r]; + for (n in o) n in e || ((e[n] = o[n]), (t[n] = i)); + } else t[r] = i; + } + function pt(e, t, n) { + var r, + i, + o = 0, + a = pt.prefilters.length, + s = w.Deferred().always(function() { + delete u.elem; + }), + u = function() { + if (i) return !1; + for ( + var t = nt || st(), + n = Math.max(0, l.startTime + l.duration - t), + r = 1 - (n / l.duration || 0), + o = 0, + a = l.tweens.length; + o < a; + o++ + ) + l.tweens[o].run(r); + return ( + s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1) + ); + }, + l = s.promise({ + elem: e, + props: w.extend({}, t), + opts: w.extend(!0, { specialEasing: {}, easing: w.easing._default }, n), + originalProperties: t, + originalOptions: n, + startTime: nt || st(), + duration: n.duration, + tweens: [], + createTween: function(t, n) { + var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); + return l.tweens.push(r), r; + }, + stop: function(t) { + var n = 0, + r = t ? l.tweens.length : 0; + if (i) return this; + for (i = !0; n < r; n++) l.tweens[n].run(1); + return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this; + } + }), + c = l.props; + for (ft(c, l.opts.specialEasing); o < a; o++) + if ((r = pt.prefilters[o].call(l, e, c, l.opts))) + return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; + return ( + w.map(c, lt, l), + g(l.opts.start) && l.opts.start.call(e, l), + l + .progress(l.opts.progress) + .done(l.opts.done, l.opts.complete) + .fail(l.opts.fail) + .always(l.opts.always), + w.fx.timer(w.extend(u, { elem: e, anim: l, queue: l.opts.queue })), + l + ); + } + (w.Animation = w.extend(pt, { + tweeners: { + "*": [ + function(e, t) { + var n = this.createTween(e, t); + return ue(n.elem, e, ie.exec(t), n), n; + } + ] + }, + tweener: function(e, t) { + g(e) ? ((t = e), (e = ["*"])) : (e = e.match(M)); + for (var n, r = 0, i = e.length; r < i; r++) + (n = e[r]), (pt.tweeners[n] = pt.tweeners[n] || []), pt.tweeners[n].unshift(t); + }, + prefilters: [ct], + prefilter: function(e, t) { + t ? pt.prefilters.unshift(e) : pt.prefilters.push(e); + } + })), + (w.speed = function(e, t, n) { + var r = + e && "object" == typeof e + ? w.extend({}, e) + : { complete: n || (!n && t) || (g(e) && e), duration: e, easing: (n && t) || (t && !g(t) && t) }; + return ( + w.fx.off + ? (r.duration = 0) + : "number" != typeof r.duration && + (r.duration in w.fx.speeds ? (r.duration = w.fx.speeds[r.duration]) : (r.duration = w.fx.speeds._default)), + (null != r.queue && !0 !== r.queue) || (r.queue = "fx"), + (r.old = r.complete), + (r.complete = function() { + g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue); + }), + r + ); + }), + w.fn.extend({ + fadeTo: function(e, t, n, r) { + return this.filter(ae) + .css("opacity", 0) + .show() + .end() + .animate({ opacity: t }, e, n, r); + }, + animate: function(e, t, n, r) { + var i = w.isEmptyObject(e), + o = w.speed(t, n, r), + a = function() { + var t = pt(this, w.extend({}, e), o); + (i || J.get(this, "finish")) && t.stop(!0); + }; + return (a.finish = a), i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); + }, + stop: function(e, t, n) { + var r = function(e) { + var t = e.stop; + delete e.stop, t(n); + }; + return ( + "string" != typeof e && ((n = t), (t = e), (e = void 0)), + t && !1 !== e && this.queue(e || "fx", []), + this.each(function() { + var t = !0, + i = null != e && e + "queueHooks", + o = w.timers, + a = J.get(this); + if (i) a[i] && a[i].stop && r(a[i]); + else for (i in a) a[i] && a[i].stop && ot.test(i) && r(a[i]); + for (i = o.length; i--; ) + o[i].elem !== this || (null != e && o[i].queue !== e) || (o[i].anim.stop(n), (t = !1), o.splice(i, 1)); + (!t && n) || w.dequeue(this, e); + }) + ); + }, + finish: function(e) { + return ( + !1 !== e && (e = e || "fx"), + this.each(function() { + var t, + n = J.get(this), + r = n[e + "queue"], + i = n[e + "queueHooks"], + o = w.timers, + a = r ? r.length : 0; + for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) + o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); + for (t = 0; t < a; t++) r[t] && r[t].finish && r[t].finish.call(this); + delete n.finish; + }) + ); + } + }), + w.each(["toggle", "show", "hide"], function(e, t) { + var n = w.fn[t]; + w.fn[t] = function(e, r, i) { + return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i); + }; + }), + w.each( + { + slideDown: ut("show"), + slideUp: ut("hide"), + slideToggle: ut("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } + }, + function(e, t) { + w.fn[e] = function(e, n, r) { + return this.animate(t, e, n, r); + }; + } + ), + (w.timers = []), + (w.fx.tick = function() { + var e, + t = 0, + n = w.timers; + for (nt = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); + n.length || w.fx.stop(), (nt = void 0); + }), + (w.fx.timer = function(e) { + w.timers.push(e), w.fx.start(); + }), + (w.fx.interval = 13), + (w.fx.start = function() { + rt || ((rt = !0), at()); + }), + (w.fx.stop = function() { + rt = null; + }), + (w.fx.speeds = { slow: 600, fast: 200, _default: 400 }), + (w.fn.delay = function(t, n) { + return ( + (t = w.fx ? w.fx.speeds[t] || t : t), + (n = n || "fx"), + this.queue(n, function(n, r) { + var i = e.setTimeout(n, t); + r.stop = function() { + e.clearTimeout(i); + }; + }) + ); + }), + (function() { + var e = r.createElement("input"), + t = r.createElement("select").appendChild(r.createElement("option")); + (e.type = "checkbox"), + (h.checkOn = "" !== e.value), + (h.optSelected = t.selected), + ((e = r.createElement("input")).value = "t"), + (e.type = "radio"), + (h.radioValue = "t" === e.value); + })(); + var dt, + ht = w.expr.attrHandle; + w.fn.extend({ + attr: function(e, t) { + return z(this, w.attr, e, t, arguments.length > 1); + }, + removeAttr: function(e) { + return this.each(function() { + w.removeAttr(this, e); + }); + } + }), + w.extend({ + attr: function(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return "undefined" == typeof e.getAttribute + ? w.prop(e, t, n) + : ((1 === o && w.isXMLDoc(e)) || + (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), + void 0 !== n + ? null === n + ? void w.removeAttr(e, t) + : i && "set" in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e.setAttribute(t, n + ""), n) + : i && "get" in i && null !== (r = i.get(e, t)) + ? r + : null == (r = w.find.attr(e, t)) + ? void 0 + : r); + }, + attrHooks: { + type: { + set: function(e, t) { + if (!h.radioValue && "radio" === t && N(e, "input")) { + var n = e.value; + return e.setAttribute("type", t), n && (e.value = n), t; + } + } + } + }, + removeAttr: function(e, t) { + var n, + r = 0, + i = t && t.match(M); + if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); + } + }), + (dt = { + set: function(e, t, n) { + return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n; + } + }), + w.each(w.expr.match.bool.source.match(/\w+/g), function(e, t) { + var n = ht[t] || w.find.attr; + ht[t] = function(e, t, r) { + var i, + o, + a = t.toLowerCase(); + return r || ((o = ht[a]), (ht[a] = i), (i = null != n(e, t, r) ? a : null), (ht[a] = o)), i; + }; + }); + var gt = /^(?:input|select|textarea|button)$/i, + yt = /^(?:a|area)$/i; + w.fn.extend({ + prop: function(e, t) { + return z(this, w.prop, e, t, arguments.length > 1); + }, + removeProp: function(e) { + return this.each(function() { + delete this[w.propFix[e] || e]; + }); + } + }), + w.extend({ + prop: function(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && w.isXMLDoc(e)) || ((t = w.propFix[t] || t), (i = w.propHooks[t])), + void 0 !== n + ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e[t] = n) + : i && "get" in i && null !== (r = i.get(e, t)) + ? r + : e[t] + ); + }, + propHooks: { + tabIndex: { + get: function(e) { + var t = w.find.attr(e, "tabindex"); + return t ? parseInt(t, 10) : gt.test(e.nodeName) || (yt.test(e.nodeName) && e.href) ? 0 : -1; + } + } + }, + propFix: { for: "htmlFor", class: "className" } + }), + h.optSelected || + (w.propHooks.selected = { + get: function(e) { + var t = e.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function(e) { + var t = e.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + } + }), + w.each( + [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" + ], + function() { + w.propFix[this.toLowerCase()] = this; + } + ); + function vt(e) { + return (e.match(M) || []).join(" "); + } + function mt(e) { + return (e.getAttribute && e.getAttribute("class")) || ""; + } + function xt(e) { + return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : []; + } + w.fn.extend({ + addClass: function(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) + return this.each(function(t) { + w(this).addClass(e.call(this, t, mt(this))); + }); + if ((t = xt(e)).length) + while ((n = this[u++])) + if (((i = mt(n)), (r = 1 === n.nodeType && " " + vt(i) + " "))) { + a = 0; + while ((o = t[a++])) r.indexOf(" " + o + " ") < 0 && (r += o + " "); + i !== (s = vt(r)) && n.setAttribute("class", s); + } + return this; + }, + removeClass: function(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) + return this.each(function(t) { + w(this).removeClass(e.call(this, t, mt(this))); + }); + if (!arguments.length) return this.attr("class", ""); + if ((t = xt(e)).length) + while ((n = this[u++])) + if (((i = mt(n)), (r = 1 === n.nodeType && " " + vt(i) + " "))) { + a = 0; + while ((o = t[a++])) while (r.indexOf(" " + o + " ") > -1) r = r.replace(" " + o + " ", " "); + i !== (s = vt(r)) && n.setAttribute("class", s); + } + return this; + }, + toggleClass: function(e, t) { + var n = typeof e, + r = "string" === n || Array.isArray(e); + return "boolean" == typeof t && r + ? t + ? this.addClass(e) + : this.removeClass(e) + : g(e) + ? this.each(function(n) { + w(this).toggleClass(e.call(this, n, mt(this), t), t); + }) + : this.each(function() { + var t, i, o, a; + if (r) { + (i = 0), (o = w(this)), (a = xt(e)); + while ((t = a[i++])) o.hasClass(t) ? o.removeClass(t) : o.addClass(t); + } else (void 0 !== e && "boolean" !== n) || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || "")); + }); + }, + hasClass: function(e) { + var t, + n, + r = 0; + t = " " + e + " "; + while ((n = this[r++])) if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0; + return !1; + } + }); + var bt = /\r/g; + w.fn.extend({ + val: function(e) { + var t, + n, + r, + i = this[0]; + { + if (arguments.length) + return ( + (r = g(e)), + this.each(function(n) { + var i; + 1 === this.nodeType && + (null == (i = r ? e.call(this, n, w(this).val()) : e) + ? (i = "") + : "number" == typeof i + ? (i += "") + : Array.isArray(i) && + (i = w.map(i, function(e) { + return null == e ? "" : e + ""; + })), + ((t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && + "set" in t && + void 0 !== t.set(this, i, "value")) || + (this.value = i)); + }) + ); + if (i) + return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && + "get" in t && + void 0 !== (n = t.get(i, "value")) + ? n + : "string" == typeof (n = i.value) + ? n.replace(bt, "") + : null == n + ? "" + : n; + } + } + }), + w.extend({ + valHooks: { + option: { + get: function(e) { + var t = w.find.attr(e, "value"); + return null != t ? t : vt(w.text(e)); + } + }, + select: { + get: function(e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = "select-one" === e.type, + s = a ? null : [], + u = a ? o + 1 : i.length; + for (r = o < 0 ? u : a ? o : 0; r < u; r++) + if ( + ((n = i[r]).selected || r === o) && + !n.disabled && + (!n.parentNode.disabled || !N(n.parentNode, "optgroup")) + ) { + if (((t = w(n).val()), a)) return t; + s.push(t); + } + return s; + }, + set: function(e, t) { + var n, + r, + i = e.options, + o = w.makeArray(t), + a = i.length; + while (a--) ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); + return n || (e.selectedIndex = -1), o; + } + } + } + }), + w.each(["radio", "checkbox"], function() { + (w.valHooks[this] = { + set: function(e, t) { + if (Array.isArray(t)) return (e.checked = w.inArray(w(e).val(), t) > -1); + } + }), + h.checkOn || + (w.valHooks[this].get = function(e) { + return null === e.getAttribute("value") ? "on" : e.value; + }); + }), + (h.focusin = "onfocusin" in e); + var wt = /^(?:focusinfocus|focusoutblur)$/, + Tt = function(e) { + e.stopPropagation(); + }; + w.extend(w.event, { + trigger: function(t, n, i, o) { + var a, + s, + u, + l, + c, + p, + d, + h, + v = [i || r], + m = f.call(t, "type") ? t.type : t, + x = f.call(t, "namespace") ? t.namespace.split(".") : []; + if ( + ((s = h = u = i = i || r), + 3 !== i.nodeType && + 8 !== i.nodeType && + !wt.test(m + w.event.triggered) && + (m.indexOf(".") > -1 && ((m = (x = m.split(".")).shift()), x.sort()), + (c = m.indexOf(":") < 0 && "on" + m), + (t = t[w.expando] ? t : new w.Event(m, "object" == typeof t && t)), + (t.isTrigger = o ? 2 : 3), + (t.namespace = x.join(".")), + (t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + x.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), + (t.result = void 0), + t.target || (t.target = i), + (n = null == n ? [t] : w.makeArray(n, [t])), + (d = w.event.special[m] || {}), + o || !d.trigger || !1 !== d.trigger.apply(i, n))) + ) { + if (!o && !d.noBubble && !y(i)) { + for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) v.push(s), (u = s); + u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e); + } + a = 0; + while ((s = v[a++]) && !t.isPropagationStopped()) + (h = s), + (t.type = a > 1 ? l : d.bindType || m), + (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), + (p = c && s[c]) && p.apply && Y(s) && ((t.result = p.apply(s, n)), !1 === t.result && t.preventDefault()); + return ( + (t.type = m), + o || + t.isDefaultPrevented() || + (d._default && !1 !== d._default.apply(v.pop(), n)) || + !Y(i) || + (c && + g(i[m]) && + !y(i) && + ((u = i[c]) && (i[c] = null), + (w.event.triggered = m), + t.isPropagationStopped() && h.addEventListener(m, Tt), + i[m](), + t.isPropagationStopped() && h.removeEventListener(m, Tt), + (w.event.triggered = void 0), + u && (i[c] = u))), + t.result + ); + } + }, + simulate: function(e, t, n) { + var r = w.extend(new w.Event(), n, { type: e, isSimulated: !0 }); + w.event.trigger(r, null, t); + } + }), + w.fn.extend({ + trigger: function(e, t) { + return this.each(function() { + w.event.trigger(e, t, this); + }); + }, + triggerHandler: function(e, t) { + var n = this[0]; + if (n) return w.event.trigger(e, t, n, !0); + } + }), + h.focusin || + w.each({ focus: "focusin", blur: "focusout" }, function(e, t) { + var n = function(e) { + w.event.simulate(t, e.target, w.event.fix(e)); + }; + w.event.special[t] = { + setup: function() { + var r = this.ownerDocument || this, + i = J.access(r, t); + i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1); + }, + teardown: function() { + var r = this.ownerDocument || this, + i = J.access(r, t) - 1; + i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)); + } + }; + }); + var Ct = e.location, + Et = Date.now(), + kt = /\?/; + w.parseXML = function(t) { + var n; + if (!t || "string" != typeof t) return null; + try { + n = new e.DOMParser().parseFromString(t, "text/xml"); + } catch (e) { + n = void 0; + } + return (n && !n.getElementsByTagName("parsererror").length) || w.error("Invalid XML: " + t), n; + }; + var St = /\[\]$/, + Dt = /\r?\n/g, + Nt = /^(?:submit|button|image|reset|file)$/i, + At = /^(?:input|select|textarea|keygen)/i; + function jt(e, t, n, r) { + var i; + if (Array.isArray(t)) + w.each(t, function(t, i) { + n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r); + }); + else if (n || "object" !== x(t)) r(e, t); + else for (i in t) jt(e + "[" + i + "]", t[i], n, r); + } + (w.param = function(e, t) { + var n, + r = [], + i = function(e, t) { + var n = g(t) ? t() : t; + r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); + }; + if (Array.isArray(e) || (e.jquery && !w.isPlainObject(e))) + w.each(e, function() { + i(this.name, this.value); + }); + else for (n in e) jt(n, e[n], t, i); + return r.join("&"); + }), + w.fn.extend({ + serialize: function() { + return w.param(this.serializeArray()); + }, + serializeArray: function() { + return this.map(function() { + var e = w.prop(this, "elements"); + return e ? w.makeArray(e) : this; + }) + .filter(function() { + var e = this.type; + return ( + this.name && + !w(this).is(":disabled") && + At.test(this.nodeName) && + !Nt.test(e) && + (this.checked || !pe.test(e)) + ); + }) + .map(function(e, t) { + var n = w(this).val(); + return null == n + ? null + : Array.isArray(n) + ? w.map(n, function(e) { + return { name: t.name, value: e.replace(Dt, "\r\n") }; + }) + : { name: t.name, value: n.replace(Dt, "\r\n") }; + }) + .get(); + } + }); + var qt = /%20/g, + Lt = /#.*$/, + Ht = /([?&])_=[^&]*/, + Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + Mt = /^(?:GET|HEAD)$/, + Rt = /^\/\//, + It = {}, + Wt = {}, + $t = "*/".concat("*"), + Bt = r.createElement("a"); + Bt.href = Ct.href; + function Ft(e) { + return function(t, n) { + "string" != typeof t && ((n = t), (t = "*")); + var r, + i = 0, + o = t.toLowerCase().match(M) || []; + if (g(n)) + while ((r = o[i++])) + "+" === r[0] ? ((r = r.slice(1) || "*"), (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n); + }; + } + function _t(e, t, n, r) { + var i = {}, + o = e === Wt; + function a(s) { + var u; + return ( + (i[s] = !0), + w.each(e[s] || [], function(e, s) { + var l = s(t, n, r); + return "string" != typeof l || o || i[l] ? (o ? !(u = l) : void 0) : (t.dataTypes.unshift(l), a(l), !1); + }), + u + ); + } + return a(t.dataTypes[0]) || (!i["*"] && a("*")); + } + function zt(e, t) { + var n, + r, + i = w.ajaxSettings.flatOptions || {}; + for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); + return r && w.extend(!0, e, r), e; + } + function Xt(e, t, n) { + var r, + i, + o, + a, + s = e.contents, + u = e.dataTypes; + while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); + if (r) + for (i in s) + if (s[i] && s[i].test(r)) { + u.unshift(i); + break; + } + if (u[0] in n) o = u[0]; + else { + for (i in n) { + if (!u[0] || e.converters[i + " " + u[0]]) { + o = i; + break; + } + a || (a = i); + } + o = o || a; + } + if (o) return o !== u[0] && u.unshift(o), n[o]; + } + function Ut(e, t, n, r) { + var i, + o, + a, + s, + u, + l = {}, + c = e.dataTypes.slice(); + if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; + o = c.shift(); + while (o) + if ( + (e.responseFields[o] && (n[e.responseFields[o]] = t), + !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), + (u = o), + (o = c.shift())) + ) + if ("*" === o) o = u; + else if ("*" !== u && u !== o) { + if (!(a = l[u + " " + o] || l["* " + o])) + for (i in l) + if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { + !0 === a ? (a = l[i]) : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])); + break; + } + if (!0 !== a) + if (a && e["throws"]) t = a(t); + else + try { + t = a(t); + } catch (e) { + return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o }; + } + } + return { state: "success", data: t }; + } + w.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Ct.href, + type: "GET", + isLocal: Pt.test(Ct.protocol), + global: !0, + processData: !0, + async: !0, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + accepts: { + "*": $t, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, + responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, + converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": w.parseXML }, + flatOptions: { url: !0, context: !0 } + }, + ajaxSetup: function(e, t) { + return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e); + }, + ajaxPrefilter: Ft(It), + ajaxTransport: Ft(Wt), + ajax: function(t, n) { + "object" == typeof t && ((n = t), (t = void 0)), (n = n || {}); + var i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h = w.ajaxSetup({}, n), + g = h.context || h, + y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event, + v = w.Deferred(), + m = w.Callbacks("once memory"), + x = h.statusCode || {}, + b = {}, + T = {}, + C = "canceled", + E = { + readyState: 0, + getResponseHeader: function(e) { + var t; + if (c) { + if (!s) { + s = {}; + while ((t = Ot.exec(a))) s[t[1].toLowerCase()] = t[2]; + } + t = s[e.toLowerCase()]; + } + return null == t ? null : t; + }, + getAllResponseHeaders: function() { + return c ? a : null; + }, + setRequestHeader: function(e, t) { + return null == c && ((e = T[e.toLowerCase()] = T[e.toLowerCase()] || e), (b[e] = t)), this; + }, + overrideMimeType: function(e) { + return null == c && (h.mimeType = e), this; + }, + statusCode: function(e) { + var t; + if (e) + if (c) E.always(e[E.status]); + else for (t in e) x[t] = [x[t], e[t]]; + return this; + }, + abort: function(e) { + var t = e || C; + return i && i.abort(t), k(0, t), this; + } + }; + if ( + (v.promise(E), + (h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//")), + (h.type = n.method || n.type || h.method || h.type), + (h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""]), + null == h.crossDomain) + ) { + l = r.createElement("a"); + try { + (l.href = h.url), + (l.href = l.href), + (h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host); + } catch (e) { + h.crossDomain = !0; + } + } + if ( + (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), + _t(It, h, n, E), + c) + ) + return E; + (f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), + (h.type = h.type.toUpperCase()), + (h.hasContent = !Mt.test(h.type)), + (o = h.url.replace(Lt, "")), + h.hasContent + ? h.data && + h.processData && + 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && + (h.data = h.data.replace(qt, "+")) + : ((d = h.url.slice(o.length)), + h.data && + (h.processData || "string" == typeof h.data) && + ((o += (kt.test(o) ? "&" : "?") + h.data), delete h.data), + !1 === h.cache && ((o = o.replace(Ht, "$1")), (d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d)), + (h.url = o + d)), + h.ifModified && + (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), + w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), + ((h.data && h.hasContent && !1 !== h.contentType) || n.contentType) && + E.setRequestHeader("Content-Type", h.contentType), + E.setRequestHeader( + "Accept", + h.dataTypes[0] && h.accepts[h.dataTypes[0]] + ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") + : h.accepts["*"] + ); + for (p in h.headers) E.setRequestHeader(p, h.headers[p]); + if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort(); + if (((C = "abort"), m.add(h.complete), E.done(h.success), E.fail(h.error), (i = _t(Wt, h, n, E)))) { + if (((E.readyState = 1), f && y.trigger("ajaxSend", [E, h]), c)) return E; + h.async && + h.timeout > 0 && + (u = e.setTimeout(function() { + E.abort("timeout"); + }, h.timeout)); + try { + (c = !1), i.send(b, k); + } catch (e) { + if (c) throw e; + k(-1, e); + } + } else k(-1, "No Transport"); + function k(t, n, r, s) { + var l, + p, + d, + b, + T, + C = n; + c || + ((c = !0), + u && e.clearTimeout(u), + (i = void 0), + (a = s || ""), + (E.readyState = t > 0 ? 4 : 0), + (l = (t >= 200 && t < 300) || 304 === t), + r && (b = Xt(h, E, r)), + (b = Ut(h, b, E, l)), + l + ? (h.ifModified && + ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), + (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), + 204 === t || "HEAD" === h.type + ? (C = "nocontent") + : 304 === t + ? (C = "notmodified") + : ((C = b.state), (p = b.data), (l = !(d = b.error)))) + : ((d = C), (!t && C) || ((C = "error"), t < 0 && (t = 0))), + (E.status = t), + (E.statusText = (n || C) + ""), + l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), + E.statusCode(x), + (x = void 0), + f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), + m.fireWith(g, [E, C]), + f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop"))); + } + return E; + }, + getJSON: function(e, t, n) { + return w.get(e, t, n, "json"); + }, + getScript: function(e, t) { + return w.get(e, void 0, t, "script"); + } + }), + w.each(["get", "post"], function(e, t) { + w[t] = function(e, n, r, i) { + return ( + g(n) && ((i = i || r), (r = n), (n = void 0)), + w.ajax(w.extend({ url: e, type: t, dataType: i, data: n, success: r }, w.isPlainObject(e) && e)) + ); + }; + }), + (w._evalUrl = function(e) { + return w.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, throws: !0 }); + }), + w.fn.extend({ + wrapAll: function(e) { + var t; + return ( + this[0] && + (g(e) && (e = e.call(this[0])), + (t = w(e, this[0].ownerDocument) + .eq(0) + .clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function() { + var e = this; + while (e.firstElementChild) e = e.firstElementChild; + return e; + }) + .append(this)), + this + ); + }, + wrapInner: function(e) { + return g(e) + ? this.each(function(t) { + w(this).wrapInner(e.call(this, t)); + }) + : this.each(function() { + var t = w(this), + n = t.contents(); + n.length ? n.wrapAll(e) : t.append(e); + }); + }, + wrap: function(e) { + var t = g(e); + return this.each(function(n) { + w(this).wrapAll(t ? e.call(this, n) : e); + }); + }, + unwrap: function(e) { + return ( + this.parent(e) + .not("body") + .each(function() { + w(this).replaceWith(this.childNodes); + }), + this + ); + } + }), + (w.expr.pseudos.hidden = function(e) { + return !w.expr.pseudos.visible(e); + }), + (w.expr.pseudos.visible = function(e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); + }), + (w.ajaxSettings.xhr = function() { + try { + return new e.XMLHttpRequest(); + } catch (e) {} + }); + var Vt = { 0: 200, 1223: 204 }, + Gt = w.ajaxSettings.xhr(); + (h.cors = !!Gt && "withCredentials" in Gt), + (h.ajax = Gt = !!Gt), + w.ajaxTransport(function(t) { + var n, r; + if (h.cors || (Gt && !t.crossDomain)) + return { + send: function(i, o) { + var a, + s = t.xhr(); + if ((s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)) + for (a in t.xhrFields) s[a] = t.xhrFields[a]; + t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), + t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); + for (a in i) s.setRequestHeader(a, i[a]); + (n = function(e) { + return function() { + n && + ((n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null), + "abort" === e + ? s.abort() + : "error" === e + ? "number" != typeof s.status + ? o(0, "error") + : o(s.status, s.statusText) + : o( + Vt[s.status] || s.status, + s.statusText, + "text" !== (s.responseType || "text") || "string" != typeof s.responseText + ? { binary: s.response } + : { text: s.responseText }, + s.getAllResponseHeaders() + )); + }; + }), + (s.onload = n()), + (r = s.onerror = s.ontimeout = n("error")), + void 0 !== s.onabort + ? (s.onabort = r) + : (s.onreadystatechange = function() { + 4 === s.readyState && + e.setTimeout(function() { + n && r(); + }); + }), + (n = n("abort")); + try { + s.send((t.hasContent && t.data) || null); + } catch (e) { + if (n) throw e; + } + }, + abort: function() { + n && n(); + } + }; + }), + w.ajaxPrefilter(function(e) { + e.crossDomain && (e.contents.script = !1); + }), + w.ajaxSetup({ + accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, + contents: { script: /\b(?:java|ecma)script\b/ }, + converters: { + "text script": function(e) { + return w.globalEval(e), e; + } + } + }), + w.ajaxPrefilter("script", function(e) { + void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); + }), + w.ajaxTransport("script", function(e) { + if (e.crossDomain) { + var t, n; + return { + send: function(i, o) { + (t = w(" + + + + + +
+
+
+ +
+

Classes

+ +
+
+
+ +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/demo/pfelement.js.html b/elements/pfelement/demo/pfelement.js.html new file mode 100644 index 0000000000..79d01a4878 --- /dev/null +++ b/elements/pfelement/demo/pfelement.js.html @@ -0,0 +1,1336 @@ + + + + + + + pfelement.js + + + + + + + + + + + + + + +
+
+
+
+
+
let logger = () => null;
+
+/**
+ * Reveal web components when loading is complete by removing the unresolved attribute
+ * from the body tag; log the event.
+ * @throws debugging log indicating the reveal event
+ */
+function reveal() {
+  logger(`[reveal] elements ready, revealing the body`);
+  window.document.body.removeAttribute("unresolved");
+}
+
+/**
+ * Auto-reveal functionality prevents a flash of unstyled content before components
+ * have finished loading.
+ * @param {function} logFunction
+ * @see https://github.com/github/webcomponentsjs#webcomponents-loaderjs
+ */
+function autoReveal(logFunction) {
+  logger = logFunction;
+  // If Web Components are already ready, run the handler right away.  If they
+  // are not yet ready, wait.
+  //
+  // see https://github.com/github/webcomponentsjs#webcomponents-loaderjs for
+  // info about web component readiness events
+  const polyfillPresent = window.WebComponents;
+  const polyfillReady = polyfillPresent && window.WebComponents.ready;
+
+  if (!polyfillPresent || polyfillReady) {
+    handleWebComponentsReady();
+  } else {
+    window.addEventListener("WebComponentsReady", handleWebComponentsReady);
+  }
+}
+
+/**
+ * Reveal web components when loading is complete and log event.
+ * @throws debugging log indicating the web components are ready
+ */
+function handleWebComponentsReady() {
+  logger("[reveal] web components ready");
+  reveal();
+}
+
+/**
+ * Verify that a property definition's `type` field contains one of the allowed
+ * types.  If the definition type resolves to falsy, assumes String type.
+ * @param {constructor} definition
+ * @default String
+ * @return {Boolean} True if the definition type is one of String, Number, or Boolean
+ */
+function isAllowedType(definition) {
+  return [String, Number, Boolean].includes(definition.type || String);
+}
+
+/**
+ * Verify that a property definition's `default` value is of the correct type.
+ *
+ * A `default` value is valid if it's of the same type as the `type`
+ * definition.  Or, if there is no `type` definition, then it must be a String
+ * (the default value for `type`).
+ * @param {type} definition
+ * @return {Boolean} True if the default value matches the type of the definition object.
+ */
+function isValidDefaultType(definition) {
+  return definition.hasOwnProperty("default") && definition.default.constructor === definition.type;
+}
+
+// @POLYFILL  Array.includes
+/** @see https://tc39.github.io/ecma262/#sec-array.prototype.includes */
+if (!Array.prototype.includes) {
+  Object.defineProperty(Array.prototype, "includes", {
+    value: function(valueToFind, fromIndex) {
+      if (this == null) {
+        throw new TypeError('"this" is null or not defined');
+      }
+
+      // 1. Let O be ? ToObject(this value).
+      var o = Object(this);
+
+      // 2. Let len be ? ToLength(? Get(O, "length")).
+      var len = o.length >>> 0;
+
+      // 3. If len is 0, return false.
+      if (len === 0) {
+        return false;
+      }
+
+      // 4. Let n be ? ToInteger(fromIndex).
+      //    (If fromIndex is undefined, this step produces the value 0.)
+      var n = fromIndex | 0;
+
+      // 5. If n ≥ 0, then
+      //  a. Let k be n.
+      // 6. Else n < 0,
+      //  a. Let k be len + n.
+      //  b. If k < 0, let k be 0.
+      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+
+      function sameValueZero(x, y) {
+        return x === y || (typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y));
+      }
+
+      // 7. Repeat, while k < len
+      while (k < len) {
+        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
+        // b. If SameValueZero(valueToFind, elementK) is true, return true.
+        if (sameValueZero(o[k], valueToFind)) {
+          return true;
+        }
+        // c. Increase k by 1.
+        k++;
+      }
+
+      // 8. Return false
+      return false;
+    }
+  });
+}
+
+// @POLYFILL Object.entries
+/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries */
+if (!Object.entries) {
+  Object.entries = function(obj) {
+    var ownProps = Object.keys(obj),
+      i = ownProps.length,
+      resArray = new Array(i); // preallocate the Array
+    while (i--) resArray[i] = [ownProps[i], obj[ownProps[i]]];
+
+    return resArray;
+  };
+}
+
+// @POLYFILL String.startsWith
+/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith#polyfill */
+if (!String.prototype.startsWith) {
+  Object.defineProperty(String.prototype, "startsWith", {
+    value: function(search, rawPos) {
+      var pos = rawPos > 0 ? rawPos | 0 : 0;
+      return this.substring(pos, pos + search.length) === search;
+    }
+  });
+}
+
+/*!
+ * PatternFly Elements: PFElement 1.4.0
+ * @license
+ * Copyright 2021 Red Hat, Inc.
+ * 
+ * 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.
+ * 
+*/
+
+// /**
+//  * Global prefix used for all components in the project.
+//  * @constant {String}
+//  * */
+const prefix = "pfe";
+
+/**
+ * @class PFElement
+ * @extends HTMLElement
+ * @version 1.4.0
+ * @classdesc Serves as the baseline for all PatternFly Element components.
+ */
+class PFElement extends HTMLElement {
+  /**
+   * A boolean value that indicates if the logging should be printed to the console; used for debugging.
+   * For use in a JS file or script tag; can also be added in the constructor of a component during development.
+   * @example PFElement._debugLog = true;
+   * @tags debug
+   */
+  static debugLog(preference = null) {
+    if (preference !== null) {
+      PFElement._debugLog = !!preference;
+    }
+    return PFElement._debugLog;
+  }
+
+  /**
+   * A boolean value that indicates if the performance should be tracked.
+   * For use in a JS file or script tag; can also be added in the constructor of a component during development.
+   * @example PFElement._trackPerformance = true;
+   */
+  static trackPerformance(preference = null) {
+    if (preference !== null) {
+      PFElement._trackPerformance = !!preference;
+    }
+    return PFElement._trackPerformance;
+  }
+
+  /**
+   * A logging wrapper which checks the debugLog boolean and prints to the console if true.
+   *
+   * @example PFElement.log("Hello");
+   */
+  static log(...msgs) {
+    if (PFElement.debugLog()) {
+      console.log(...msgs);
+    }
+  }
+
+  /**
+   * Local logging that outputs the tag name as a prefix automatically
+   *
+   * @example this.log("Hello");
+   */
+  log(...msgs) {
+    PFElement.log(`[${this.tag}${this.id ? `#${this.id}` : ""}]: ${msgs.join(", ")}`);
+  }
+
+  /**
+   * A console warning wrapper which formats your output with useful debugging information.
+   *
+   * @example PFElement.warn("Hello");
+   */
+  static warn(...msgs) {
+    console.warn(...msgs);
+  }
+
+  /**
+   * Local warning wrapper that outputs the tag name as a prefix automatically.
+   * For use inside a component's function.
+   * @example this.warn("Hello");
+   */
+  warn(...msgs) {
+    PFElement.warn(`[${this.tag}${this.id ? `#${this.id}` : ``}]: ${msgs.join(", ")}`);
+  }
+
+  /**
+   * A console error wrapper which formats your output with useful debugging information.
+   * For use inside a component's function.
+   * @example PFElement.error("Hello");
+   */
+  static error(...msgs) {
+    throw new Error([...msgs].join(" "));
+  }
+
+  /**
+   * Local error wrapper that outputs the tag name as a prefix automatically.
+   * For use inside a component's function.
+   * @example this.error("Hello");
+   */
+  error(...msgs) {
+    PFElement.error(`[${this.tag}${this.id ? `#${this.id}` : ``}]:`, ...msgs);
+  }
+
+  /**
+   * A global definition of component types (a general way of defining the purpose of a
+   * component and how it is put together).
+   */
+  static get PfeTypes() {
+    return {
+      Container: "container",
+      Content: "content",
+      Combo: "combo"
+    };
+  }
+
+  /**
+   * The current version of a component; set by the compiler using the package.json data.
+   */
+  static get version() {
+    return "1.4.0";
+  }
+
+  /**
+   * A local alias to the static version.
+   * For use in the console to validate version being loaded.
+   * @example PfeAccordion.version
+   */
+  get version() {
+    return this._pfeClass.version;
+  }
+
+  /**
+   * Global property definitions: properties managed by the base class that apply to all components.
+   */
+  static get properties() {
+    return {
+      pfelement: {
+        title: "Upgraded flag",
+        type: Boolean,
+        default: true,
+        observer: "_upgradeObserver"
+      },
+      on: {
+        title: "Context",
+        description: "Describes the visual context (backgrounds).",
+        type: String,
+        values: ["light", "dark", "saturated"],
+        default: el => el.contextVariable,
+        observer: "_onObserver"
+      },
+      context: {
+        title: "Context hook",
+        description: "Lets you override the system-set context.",
+        type: String,
+        values: ["light", "dark", "saturated"],
+        observer: "_contextObserver"
+      },
+      // @TODO: Deprecated with 1.0
+      oldTheme: {
+        type: String,
+        values: ["light", "dark", "saturated"],
+        alias: "context",
+        attr: "pfe-theme"
+      },
+      _style: {
+        title: "Custom styles",
+        type: String,
+        attr: "style",
+        observer: "_inlineStyleObserver"
+      },
+      type: {
+        title: "Component type",
+        type: String,
+        values: ["container", "content", "combo"]
+      }
+    };
+  }
+
+  static get observedAttributes() {
+    const properties = this.allProperties;
+    if (properties) {
+      const oa = Object.keys(properties)
+        .filter(prop => properties[prop].observer || properties[prop].cascade || properties[prop].alias)
+        .map(p => this._convertPropNameToAttrName(p));
+      return [...oa];
+    }
+  }
+
+  /**
+   * A quick way to fetch a random ID value.
+   * _Note:_ All values are prefixes with `pfe` automatically to ensure an ID-safe value is returned.
+   *
+   * @example this.id = this.randomID;
+   */
+  get randomId() {
+    return (
+      `${prefix}-` +
+      Math.random()
+        .toString(36)
+        .substr(2, 9)
+    );
+  }
+
+  /**
+   * Set the --context variable with the provided value in this component.
+   */
+  set contextVariable(value) {
+    this.cssVariable("context", value);
+  }
+
+  /**
+   * Get the current value of the --context variable in this component.
+   * @return {string} [dark|light|saturated]
+   */
+  get contextVariable() {
+    /* @DEPRECATED --theme in 1.0, to be removed in 2.0 */
+    return this.cssVariable("context") || this.cssVariable("theme");
+  }
+
+  /**
+   * Returns a boolean statement of whether or not this component contains any light DOM.
+   * @returns {boolean}
+   * @example if(this.hasLightDOM()) this._init();
+   */
+  hasLightDOM() {
+    return this.children.length || this.textContent.trim().length;
+  }
+
+  /**
+   * Returns a boolean statement of whether or not that slot exists in the light DOM.
+   *
+   * @example this.hasSlot("header");
+   */
+  hasSlot(name) {
+    if (!name) {
+      this.warn(`Please provide at least one slot name for which to search.`);
+      return;
+    }
+
+    switch (typeof name) {
+      case "string":
+        return (
+          [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === name).length >
+          0
+        );
+      case "array":
+        return name.reduce(
+          n =>
+            [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === n).length >
+            0
+        );
+      default:
+        this.warn(
+          `Did not recognize the type of the name provided to hasSlot; this funciton can accept a string or an array.`
+        );
+        return;
+    }
+  }
+
+  /**
+   * Returns an array with all the slot with the provided name defined in the light DOM.
+   * If no value is provided (i.e., `this.getSlot()`), it returns all unassigned slots.
+   *
+   * @example this.hasSlot("header");
+   */
+  getSlot(name = "unassigned") {
+    if (name !== "unassigned") {
+      return [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === name);
+    } else {
+      return [...this.children].filter(child => !child.hasAttribute("slot"));
+    }
+  }
+
+  cssVariable(name, value, element = this) {
+    name = name.substr(0, 2) !== "--" ? "--" + name : name;
+    if (value) {
+      element.style.setProperty(name, value);
+      return value;
+    }
+    return (
+      window
+        .getComputedStyle(element)
+        .getPropertyValue(name)
+        .trim() || null
+    );
+  }
+
+  /**
+   * This alerts nested components to a change in the context
+   */
+  contextUpdate() {
+    // If a value has been set, alert any nested children of the change
+    [...this.querySelectorAll("*"), ...this.shadowRoot.querySelectorAll("*")]
+      .filter(item => item.tagName.toLowerCase().slice(0, 4) === `${prefix}-`)
+      .map(child => {
+        this.log(`Update context of ${child.tag}`);
+        Promise.all([customElements.whenDefined(child.tagName.toLowerCase())]).then(() => {
+          // Ask the component to recheck it's context in case it changed
+          child.resetContext(this.on);
+        });
+      });
+  }
+
+  resetContext(fallback) {
+    this.log(`Resetting context on ${this.tag}`);
+    // Priority order for context values to be pulled from:
+    //--> 1. context (OLD: pfe-theme)
+    //--> 2. --context (OLD: --theme)
+    let value = this.context || this.contextVariable || fallback;
+    this.on = value;
+  }
+
+  constructor(pfeClass, { type = null, delayRender = false } = {}) {
+    super();
+
+    this._pfeClass = pfeClass;
+    this.tag = pfeClass.tag;
+    this._parseObserver = this._parseObserver.bind(this);
+
+    // Set up the mark ID based on existing ID on component if it exists
+    if (!this.id) {
+      this._markId = this.randomId.replace("pfe", this.tag);
+    } else if (this.id.startsWith("pfe-") && !this.id.startsWith(this.tag)) {
+      this._markId = this.id.replace("pfe", this.tag);
+    } else {
+      this._markId = `${this.tag}-${this.id}`;
+    }
+
+    this._markCount = 0;
+
+    // TODO: Deprecated for 1.0 release
+    this.schemaProps = pfeClass.schemaProperties;
+
+    // TODO: Migrate this out of schema for 1.0
+    this.slots = pfeClass.slots;
+
+    this.template = document.createElement("template");
+
+    // Set the default value to the passed in type
+    if (type && this._pfeClass.allProperties.type) this._pfeClass.allProperties.type.default = type;
+
+    // Initalize the properties and attributes from the property getter
+    this._initializeProperties();
+
+    this.attachShadow({ mode: "open" });
+
+    // Tracks if the component has been initially rendered. Useful if for debouncing
+    // template updates.
+    this._rendered = false;
+
+    if (!delayRender) this.render();
+  }
+
+  /**
+   * Standard connected callback; fires when the component is added to the DOM.
+   */
+  connectedCallback() {
+    this._initializeAttributeDefaults();
+
+    if (window.ShadyCSS) window.ShadyCSS.styleElement(this);
+
+    // If the slot definition exists, set up an observer
+    if (typeof this.slots === "object") {
+      this._slotsObserver = new MutationObserver(() => this._initializeSlots(this.tag, this.slots));
+      this._initializeSlots(this.tag, this.slots);
+    }
+  }
+
+  /**
+   * Standard disconnected callback; fires when a componet is removed from the DOM.
+   * Add your removeEventListeners here.
+   */
+  disconnectedCallback() {
+    if (this._cascadeObserver) this._cascadeObserver.disconnect();
+    if (this._slotsObserver) this._slotsObserver.disconnect();
+  }
+
+  /**
+   * Attribute changed callback fires when attributes are updated.
+   * This combines the global and the component-specific logic.
+   */
+  attributeChangedCallback(attr, oldVal, newVal) {
+    if (!this._pfeClass.allProperties) return;
+
+    let propName = this._pfeClass._attr2prop(attr);
+
+    const propDef = this._pfeClass.allProperties[propName];
+
+    // If the attribute that changed derives from a property definition
+    if (propDef) {
+      // If the property/attribute pair has an alias, copy the new value to the alias target
+      if (propDef.alias) {
+        const aliasedPropDef = this._pfeClass.allProperties[propDef.alias];
+        const aliasedAttr = this._pfeClass._prop2attr(propDef.alias);
+        const aliasedAttrVal = this.getAttribute(aliasedAttr);
+        if (aliasedAttrVal !== newVal) {
+          this[propDef.alias] = this._castPropertyValue(aliasedPropDef, newVal);
+        }
+      }
+
+      // If the property/attribute pair has an observer, fire it
+      // Observers receive the oldValue and the newValue from the attribute changed callback
+      if (propDef.observer) {
+        this[propDef.observer](this._castPropertyValue(propDef, oldVal), this._castPropertyValue(propDef, newVal));
+      }
+
+      // If the property/attribute pair has a cascade target, copy the attribute to the matching elements
+      // Note: this handles the cascading of new/updated attributes
+      if (propDef.cascade) {
+        this._copyAttribute(attr, this._pfeClass._convertSelectorsToArray(propDef.cascade));
+      }
+    }
+  }
+
+  /**
+   * Standard render function.
+   */
+  render() {
+    this.shadowRoot.innerHTML = "";
+    this.template.innerHTML = this.html;
+
+    if (window.ShadyCSS) {
+      window.ShadyCSS.prepareTemplate(this.template, this.tag);
+    }
+
+    this.shadowRoot.appendChild(this.template.content.cloneNode(true));
+
+    this.log(`render`);
+
+    // Cascade properties to the rendered template
+    this.cascadeProperties();
+
+    // Reset the display context
+    this.resetContext();
+
+    if (PFElement.trackPerformance()) {
+      try {
+        performance.mark(`${this._markId}-rendered`);
+
+        if (this._markCount < 1) {
+          this._markCount = this._markCount + 1;
+
+          // Navigation start, i.e., the browser first sees that the user has navigated to the page
+          performance.measure(`${this._markId}-from-navigation-to-first-render`, undefined, `${this._markId}-rendered`);
+
+          // Render is run before connection unless delayRender is used
+          performance.measure(
+            `${this._markId}-from-defined-to-first-render`,
+            `${this._markId}-defined`,
+            `${this._markId}-rendered`
+          );
+        }
+      } catch (err) {
+        this.log(`Performance marks are not supported by this browser.`);
+      }
+    }
+
+    // If the slot definition exists, set up an observer
+    if (typeof this.slots === "object" && this._slotsObserver) {
+      this._slotsObserver.observe(this, { childList: true });
+    }
+
+    // If an observer was defined, set it to begin observing here
+    if (this._cascadeObserver) {
+      this._cascadeObserver.observe(this, {
+        attributes: true,
+        childList: true,
+        subtree: true
+      });
+    }
+
+    this._rendered = true;
+  }
+
+  /**
+   * A wrapper around an event dispatch to standardize formatting.
+   */
+  emitEvent(name, { bubbles = true, cancelable = false, composed = false, detail = {} } = {}) {
+    this.log(`Custom event: ${name}`);
+    this.dispatchEvent(
+      new CustomEvent(name, {
+        bubbles,
+        cancelable,
+        composed,
+        detail
+      })
+    );
+  }
+
+  /**
+   * Handles the cascading of properties to nested components when new elements are added
+   * Attribute updates/additions are handled by the attribute callback
+   */
+  cascadeProperties(nodeList) {
+    const cascade = this._pfeClass._getCache("cascadingProperties");
+
+    if (cascade) {
+      if (window.ShadyCSS && this._cascadeObserver) this._cascadeObserver.disconnect();
+
+      let selectors = Object.keys(cascade);
+      // Find out if anything in the nodeList matches any of the observed selectors for cacading properties
+      if (nodeList) {
+        selectors = [];
+        [...nodeList].forEach(nodeItem => {
+          Object.keys(cascade).map(selector => {
+            // if this node has a match function (i.e., it's an HTMLElement, not
+            // a text node), see if it matches the selector, otherwise drop it (like it's hot).
+            if (nodeItem.matches && nodeItem.matches(selector)) {
+              selectors.push(selector);
+            }
+          });
+        });
+      }
+
+      // If a match was found, cascade each attribute to the element
+      if (selectors) {
+        const components = selectors
+          .filter(item => item.slice(0, prefix.length + 1) === `${prefix}-`)
+          .map(name => customElements.whenDefined(name));
+
+        if (components)
+          Promise.all(components).then(() => {
+            this._copyAttributes(selectors, cascade);
+          });
+        else this._copyAttributes(selectors, cascade);
+      }
+
+      // @TODO This is here for IE11 processing; can move this after deprecation
+      if (window.ShadyCSS && this._rendered && this._cascadeObserver)
+        this._cascadeObserver.observe(this, {
+          attributes: true,
+          childList: true,
+          subtree: true
+        });
+    }
+  }
+
+  /* --- Observers for global properties --- */
+
+  /**
+   * This responds to changes in the pfelement attribute; indicates if the component upgraded
+   * @TODO maybe we should use just the attribute instead of the class?
+   * https://github.com/angular/angular/issues/15399#issuecomment-318785677
+   */
+  _upgradeObserver() {
+    this.classList.add("PFElement");
+  }
+
+  /**
+   * This responds to changes in the context attribute; manual override tool
+   */
+  _contextObserver(oldValue, newValue) {
+    if (newValue && ((oldValue && oldValue !== newValue) || !oldValue)) {
+      this.on = newValue;
+      this.cssVariable("context", newValue);
+    }
+  }
+
+  /**
+   * This responds to changes in the context; source of truth for components
+   */
+  _onObserver(oldValue, newValue) {
+    if ((oldValue && oldValue !== newValue) || (newValue && !oldValue)) {
+      // Fire an event for child components
+      this.contextUpdate();
+    }
+  }
+
+  /**
+   * This responds to inline style changes and greps for context or theme updates.
+   * @TODO: --theme will be deprecated in 2.0
+   */
+  _inlineStyleObserver(oldValue, newValue) {
+    this.log(`Style observer activated on ${this.tag}`);
+    let newContext = "";
+    // Grep for context/theme
+    const regex = /--(?:context|theme):\s*(?:\"*(light|dark|saturated)\"*)/gi;
+    let found = regex.exec(newValue);
+    if (found) {
+      newContext = found[1];
+      // If the new context value differs from the on value, update
+      if (newContext !== this.on && !this.context) this.on = newContext;
+    }
+  }
+
+  /**
+   * This is connected with a mutation observer that watches for updates to the light DOM
+   * and pushes down the cascading values
+   */
+  _parseObserver(mutationsList) {
+    // Iterate over the mutation list, look for cascade updates
+    for (let mutation of mutationsList) {
+      // If a new node is added, attempt to cascade attributes to it
+      if (mutation.type === "childList" && mutation.addedNodes.length) {
+        this.cascadeProperties(mutation.addedNodes);
+      }
+      // @TODO: Do something when mutation type is attribute?
+      // else if (mutation.type === "attributes") {}
+    }
+  }
+  /* --- End observers --- */
+
+  /**
+   * Validate that the property meets the requirements for type and naming.
+   */
+  static _validateProperties() {
+    for (let propName in this.allProperties) {
+      const propDef = this.allProperties[propName];
+
+      // Verify that properties conform to the allowed data types
+      if (!isAllowedType(propDef)) {
+        this.error(`Property "${propName}" on ${this.name} must have type String, Number, or Boolean.`);
+      }
+
+      // Verify the property name conforms to our naming rules
+      if (!/^[a-z_]/.test(propName)) {
+        this.error(
+          `Property ${this.name}.${propName} defined, but prop names must begin with a lower-case letter or an underscore`
+        );
+      }
+
+      const isFunction = typeof propDef.default === "function";
+
+      // If the default value is not the same type as defined by the property
+      // and it's not a function (we can't validate the output of the function
+      // on the class level), throw a warning
+      if (propDef.default && !isValidDefaultType(propDef) && !isFunction)
+        this.error(
+          `[${this.name}] The default value \`${propDef.default}\` does not match the assigned type ${propDef.type.name} for the \'${propName}\' property`
+        );
+    }
+  }
+
+  /**
+   * Convert provided property value to the correct type as defined in the properties method.
+   */
+  _castPropertyValue(propDef, attrValue) {
+    switch (propDef.type) {
+      case Number:
+        // map various attribute string values to their respective
+        // desired property values
+        return {
+          [attrValue]: Number(attrValue),
+          null: null,
+          NaN: NaN,
+          undefined: undefined
+        }[attrValue];
+
+      case Boolean:
+        return attrValue !== null;
+
+      case String:
+        return {
+          [attrValue]: attrValue,
+          undefined: undefined
+        }[attrValue];
+
+      default:
+        return attrValue;
+    }
+  }
+
+  /**
+   * Map provided value to the attribute name on the component.
+   */
+  _assignValueToAttribute(obj, attr, value) {
+    // If the default is false and the property is boolean, we don't need to do anything
+    const isBooleanFalse = obj.type === Boolean && !value;
+    const isNull = value === null;
+    const isUndefined = typeof value === "undefined";
+
+    // If the attribute is not defined, set the default value
+    if (isBooleanFalse || isNull || isUndefined) {
+      this.removeAttribute(attr);
+    } else {
+      // Boolean values get an empty string: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes
+      if (obj.type === Boolean && typeof value === "boolean") {
+        this.setAttribute(attr, "");
+      } else {
+        // Validate against the provided values
+        if (obj.values) {
+          this._validateAttributeValue(obj, attr, value);
+        }
+
+        // Still accept the value provided even if it's not valid
+        this.setAttribute(attr, value);
+      }
+    }
+  }
+
+  /**
+   * Maps the defined slots into an object that is easier to query
+   */
+  _initializeSlots(tag, slots) {
+    this.log("Validate slots...");
+
+    if (window.ShadyCSS && this._slotsObserver) this._slotsObserver.disconnect();
+
+    // Loop over the properties provided by the schema
+    Object.keys(slots).forEach(slot => {
+      let slotObj = slots[slot];
+
+      // Only attach the information if the data provided is a schema object
+      if (typeof slotObj === "object") {
+        let slotExists = false;
+        let result = [];
+        // If it's a named slot, look for that slot definition
+        if (slotObj.namedSlot) {
+          // Check prefixed slots
+          result = this.getSlot(`${tag}--${slot}`);
+          if (result.length > 0) {
+            slotObj.nodes = result;
+            slotExists = true;
+          }
+
+          // Check for unprefixed slots
+          result = this.getSlot(`${slot}`);
+          if (result.length > 0) {
+            slotObj.nodes = result;
+            slotExists = true;
+          }
+          // If it's the default slot, look for direct children not assigned to a slot
+        } else {
+          result = [...this.children].filter(child => !child.hasAttribute("slot"));
+
+          if (result.length > 0) {
+            slotObj.nodes = result;
+            slotExists = true;
+          }
+        }
+
+        // If the slot exists, attach an attribute to the parent to indicate that
+        if (slotExists) {
+          this.setAttribute(`has_${slot}`, "");
+        } else {
+          this.removeAttribute(`has_${slot}`);
+        }
+      }
+    });
+
+    this.log("Slots validated.");
+
+    if (window.ShadyCSS && this._slotsObserver) this._slotsObserver.observe(this, { childList: true });
+  }
+
+  /**
+   * Sets up the property definitions based on the properties method.
+   */
+  _initializeProperties() {
+    const properties = this._pfeClass.allProperties;
+    let hasCascade = false;
+
+    if (Object.keys(properties).length > 0) this.log(`Initialize properties`);
+
+    for (let propName in properties) {
+      const propDef = properties[propName];
+
+      // Check if the property exists, throw a warning if it does.
+      // HTMLElements have a LOT of properties; it wouldn't be hard
+      // to overwrite one accidentally.
+      if (typeof this[propName] !== "undefined") {
+        this.log(
+          `Property "${propName}" on ${this.constructor.name} cannot be defined because the property name is reserved`
+        );
+      } else {
+        const attrName = this._pfeClass._prop2attr(propName);
+        if (propDef.cascade) hasCascade = true;
+
+        Object.defineProperty(this, propName, {
+          get: () => {
+            const attrValue = this.getAttribute(attrName);
+
+            return this._castPropertyValue(propDef, attrValue);
+          },
+          set: rawNewVal => {
+            // Assign the value to the attribute
+            this._assignValueToAttribute(propDef, attrName, rawNewVal);
+
+            return rawNewVal;
+          },
+          writeable: true,
+          enumerable: true,
+          configurable: false
+        });
+      }
+    }
+
+    // If any of the properties has cascade, attach a new mutation observer to the component
+    if (hasCascade) {
+      this._cascadeObserver = new MutationObserver(this._parseObserver);
+    }
+  }
+
+  /**
+   * Intialize the default value for an attribute.
+   */
+  _initializeAttributeDefaults() {
+    const properties = this._pfeClass.allProperties;
+
+    for (let propName in properties) {
+      const propDef = properties[propName];
+
+      const attrName = this._pfeClass._prop2attr(propName);
+
+      if (propDef.hasOwnProperty("default")) {
+        let value = propDef.default;
+
+        // Check if default is a function
+        if (typeof propDef.default === "function") {
+          value = propDef.default(this);
+        }
+
+        // If the attribute has not already been set, assign the default value
+        if (!this.hasAttribute(attrName)) {
+          // Assign the value to the attribute
+          this._assignValueToAttribute(propDef, attrName, value);
+        }
+      }
+    }
+  }
+
+  /**
+   * Validate the value against provided values.
+   */
+  // @TODO add support for a validation function
+  _validateAttributeValue(propDef, attr, value) {
+    if (
+      Array.isArray(propDef.values) &&
+      propDef.values.length > 0 &&
+      !propDef.values.includes(value) // ||
+      // (typeof propDef.values === "string" && propDef.values !== value) ||
+      // (typeof propDef.values === "function" && !propDef.values(value))
+    ) {
+      this.warn(
+        `${value} is not a valid value for ${attr}. Please provide one of the following values: ${propDef.values.join(
+          ", "
+        )}`
+      );
+    }
+
+    return value;
+  }
+
+  /**
+   * Look up an attribute name linked to a given property name.
+   */
+  static _prop2attr(propName) {
+    return this._getCache("prop2attr")[propName];
+  }
+
+  /**
+   * Look up an property name linked to a given attribute name.
+   */
+  static _attr2prop(attrName) {
+    return this._getCache("attr2prop")[attrName];
+  }
+
+  /**
+   * Convert a property name to an attribute name.
+   */
+  static _convertPropNameToAttrName(propName) {
+    const propDef = this.allProperties[propName];
+
+    if (propDef.attr) {
+      return propDef.attr;
+    }
+
+    return propName
+      .replace(/^_/, "")
+      .replace(/^[A-Z]/, l => l.toLowerCase())
+      .replace(/[A-Z]/g, l => `-${l.toLowerCase()}`);
+  }
+
+  /**
+   * Convert an attribute name to a property name.
+   */
+  static _convertAttrNameToPropName(attrName) {
+    for (let prop in this.allProperties) {
+      if (this.allProperties[prop].attr === attrName) {
+        return prop;
+      }
+    }
+
+    // Convert the property name to kebab case
+    const propName = attrName.replace(/-([A-Za-z])/g, l => l[1].toUpperCase());
+    return propName;
+  }
+
+  _copyAttributes(selectors, set) {
+    selectors.forEach(selector => {
+      set[selector].forEach(attr => {
+        this._copyAttribute(attr, selector);
+      });
+    });
+  }
+
+  _copyAttribute(name, to) {
+    const recipients = [...this.querySelectorAll(to), ...this.shadowRoot.querySelectorAll(to)];
+    const value = this.getAttribute(name);
+    const fname = value == null ? "removeAttribute" : "setAttribute";
+    for (const node of recipients) {
+      node[fname](name, value);
+    }
+  }
+
+  static _convertSelectorsToArray(selectors) {
+    if (selectors) {
+      if (typeof selectors === "string") return selectors.split(",");
+      else if (typeof selectors === "array" || typeof selectors === "object") return selectors;
+      else {
+        this.warn(`selectors should be provided as a string, array, or object; received: ${typeof selectors}.`);
+      }
+    }
+
+    return;
+  }
+
+  static _parsePropertiesForCascade(mergedProperties) {
+    let cascadingProperties = {};
+    // Parse the properties to pull out attributes that cascade
+    for (const [propName, config] of Object.entries(mergedProperties)) {
+      let cascadeTo = this._convertSelectorsToArray(config.cascade);
+
+      // Iterate over each node in the cascade list for this property
+      if (cascadeTo)
+        cascadeTo.map(nodeItem => {
+          let attr = this._prop2attr(propName);
+          // Create an object with the node as the key and an array of attributes
+          // that are to be cascaded down to it
+          if (!cascadingProperties[nodeItem]) cascadingProperties[nodeItem] = [attr];
+          else cascadingProperties[nodeItem].push(attr);
+        });
+    }
+
+    return cascadingProperties;
+  }
+
+  /**
+   * Caching the attributes and properties data for efficiency
+   */
+  static create(pfe) {
+    pfe._createCache();
+    pfe._populateCache(pfe);
+    pfe._validateProperties();
+    window.customElements.define(pfe.tag, pfe);
+
+    if (PFElement.trackPerformance()) {
+      try {
+        performance.mark(`${this._markId}-defined`);
+      } catch (err) {
+        this.log(`Performance marks are not supported by this browser.`);
+      }
+    }
+  }
+
+  static _createCache() {
+    this._cache = {
+      properties: {},
+      globalProperties: {},
+      componentProperties: {},
+      cascadingProperties: {},
+      attr2prop: {},
+      prop2attr: {}
+    };
+  }
+
+  /**
+   * Cache an object in a given cache namespace.  This overwrites anything
+   * already in that namespace.
+   */
+  static _setCache(namespace, object) {
+    this._cache[namespace] = object;
+  }
+
+  /**
+   * Get a cached object by namespace, or get all cached objects.
+   */
+  static _getCache(namespace) {
+    return namespace ? this._cache[namespace] : this._cache;
+  }
+
+  /**
+   * Populate initial values for properties cache.
+   */
+  static _populateCache(pfe) {
+    // @TODO add a warning when a component property conflicts with a global property.
+    const mergedProperties = { ...pfe.properties, ...PFElement.properties };
+
+    pfe._setCache("componentProperties", pfe.properties);
+    pfe._setCache("globalProperties", PFElement.properties);
+    pfe._setCache("properties", mergedProperties);
+
+    // create mapping objects to go from prop name to attrname and back
+    const prop2attr = {};
+    const attr2prop = {};
+    for (let propName in mergedProperties) {
+      const attrName = this._convertPropNameToAttrName(propName);
+      prop2attr[propName] = attrName;
+      attr2prop[attrName] = propName;
+    }
+    pfe._setCache("attr2prop", attr2prop);
+    pfe._setCache("prop2attr", prop2attr);
+
+    const cascadingProperties = this._parsePropertiesForCascade(mergedProperties);
+    if (Object.keys(cascadingProperties)) pfe._setCache("cascadingProperties", cascadingProperties);
+  }
+
+  /**
+   * allProperties returns an object containing PFElement's global properties
+   * and the descendents' (such as PfeCard, etc) component properties.  The two
+   * objects are merged together and in the case of a property name conflict,
+   * PFElement's properties override the component's properties.
+   */
+  static get allProperties() {
+    return this._getCache("properties");
+  }
+
+  /**
+   * cascadingProperties returns an object containing PFElement's global properties
+   * and the descendents' (such as PfeCard, etc) component properties.  The two
+   * objects are merged together and in the case of a property name conflict,
+   * PFElement's properties override the component's properties.
+   */
+  static get cascadingProperties() {
+    return this._getCache("cascadingProperties");
+  }
+}
+
+autoReveal(PFElement.log);
+
+export default PFElement;
+//# sourceMappingURL=pfelement.js.map
+
+
+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/elements/pfelement/gulpfile.js b/elements/pfelement/gulpfile.js index db67c4fefc..ba4b8db303 100644 --- a/elements/pfelement/gulpfile.js +++ b/elements/pfelement/gulpfile.js @@ -6,7 +6,7 @@ const jsdoc = require("gulp-jsdoc3"); const del = require("del"); task("clean:jsdoc", () => - del(["demo"], { + del(["demo/**", "!demo/example.html"], { read: false, allowEmpty: true }) From 09d9bdd180097e9540284eeeb839acb973559c00 Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 14:06:39 -0400 Subject: [PATCH 4/9] feat: Remove compiled assets from commit --- .gitignore | 2 + elements/pfelement/demo/PFElement.html | 2030 ---- elements/pfelement/demo/css/bootstrap.min.css | 6 - elements/pfelement/demo/css/prism.css | 138 - elements/pfelement/demo/css/prism.min.css | 1 - elements/pfelement/demo/css/template.min.css | 1 - elements/pfelement/demo/favicon.svg | 22 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes elements/pfelement/demo/global.html | 450 - .../demo/img/pfe-icon-white-shaded.svg | 1 - elements/pfelement/demo/index.html | 304 - elements/pfelement/demo/js/bootstrap.min.js | 1447 --- elements/pfelement/demo/js/clipboard.min.js | 543 -- elements/pfelement/demo/js/jquery.min.js | 4619 --------- elements/pfelement/demo/js/lunr-data.js | 8484 ----------------- elements/pfelement/demo/js/lunr-data.json | 8464 ---------------- elements/pfelement/demo/js/lunr.min.js | 751 -- elements/pfelement/demo/js/prism.js | 874 -- elements/pfelement/demo/js/prism.min.js | 741 -- elements/pfelement/demo/js/template.min.js | 492 - elements/pfelement/demo/list_class.html | 160 - elements/pfelement/demo/pfelement.js.html | 1336 --- 26 files changed, 2 insertions(+), 31152 deletions(-) delete mode 100644 elements/pfelement/demo/PFElement.html delete mode 100644 elements/pfelement/demo/css/bootstrap.min.css delete mode 100644 elements/pfelement/demo/css/prism.css delete mode 100644 elements/pfelement/demo/css/prism.min.css delete mode 100644 elements/pfelement/demo/css/template.min.css delete mode 100644 elements/pfelement/demo/favicon.svg delete mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot delete mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.svg delete mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf delete mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff delete mode 100644 elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 elements/pfelement/demo/global.html delete mode 100644 elements/pfelement/demo/img/pfe-icon-white-shaded.svg delete mode 100644 elements/pfelement/demo/index.html delete mode 100644 elements/pfelement/demo/js/bootstrap.min.js delete mode 100644 elements/pfelement/demo/js/clipboard.min.js delete mode 100644 elements/pfelement/demo/js/jquery.min.js delete mode 100644 elements/pfelement/demo/js/lunr-data.js delete mode 100644 elements/pfelement/demo/js/lunr-data.json delete mode 100644 elements/pfelement/demo/js/lunr.min.js delete mode 100644 elements/pfelement/demo/js/prism.js delete mode 100644 elements/pfelement/demo/js/prism.min.js delete mode 100644 elements/pfelement/demo/js/template.min.js delete mode 100644 elements/pfelement/demo/list_class.html delete mode 100644 elements/pfelement/demo/pfelement.js.html diff --git a/.gitignore b/.gitignore index de7c926148..967f0b217d 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,5 @@ docs/resources/_gen/assets storybook elements/pfe-sass/demo/* +elements/pfelement/demo/* +!elements/pfelement/demo/example.html diff --git a/elements/pfelement/demo/PFElement.html b/elements/pfelement/demo/PFElement.html deleted file mode 100644 index 6cdb122a43..0000000000 --- a/elements/pfelement/demo/PFElement.html +++ /dev/null @@ -1,2030 +0,0 @@ - - - - - - PFElement - - - - - - - - - - - - - - -
-
-
- -
-
-
-

new PFElement()

-
-
-
-
Description
Serves as the baseline for all PatternFly Element components.
-
Details
- - - - -
- -
-

HTMLElement

-
-
- - -
- -
-

1.4.0

-
-
- - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

Members

-
-
-
-

<static> PfeTypes

-
-
-
-
Description
A global definition of component types (a general way of defining the purpose of a - component and how it is put together).
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> version

-
-
-
-
Description
The current version of a component; set by the compiler using the package.json data.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

version

-
-
-
-
Description
A local alias to the static version. - For use in the console to validate version being loaded.
-
Examples
-
PfeAccordion.version
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> properties

-
-
-
-
Description
Global property definitions: properties managed by the base class that apply to all components.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

randomId

-
-
-
-
Description
A quick way to fetch a random ID value. - _Note:_ All values are prefixes with `pfe` automatically to ensure an ID-safe value is returned.
-
Examples
-
this.id = this.randomID;
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

contextVariable

-
-
-
-
Description
Set the --context variable with the provided value in this component.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

contextVariable

-
-
-
-
Description
Get the current value of the --context variable in this component.
-
Returns
-
- -
-
[dark|light|saturated]
-
-
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> allProperties

-
-
-
-
Description
allProperties returns an object containing PFElement's global properties - and the descendents' (such as PfeCard, etc) component properties. The two - objects are merged together and in the case of a property name conflict, - PFElement's properties override the component's properties.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> cascadingProperties

-
-
-
-
Description
cascadingProperties returns an object containing PFElement's global properties - and the descendents' (such as PfeCard, etc) component properties. The two - objects are merged together and in the case of a property name conflict, - PFElement's properties override the component's properties.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-

Methods

-
-
-
-

<static> debugLog()

-
-
-
-
Description
A boolean value that indicates if the logging should be printed to the console; used for debugging. - For use in a JS file or script tag; can also be added in the constructor of a component during development.
-
Examples
-
PFElement._debugLog = true;
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> trackPerformance()

-
-
-
-
Description
A boolean value that indicates if the performance should be tracked. - For use in a JS file or script tag; can also be added in the constructor of a component during development.
-
Examples
-
PFElement._trackPerformance = true;
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> log()

-
-
-
-
Description
A logging wrapper which checks the debugLog boolean and prints to the console if true.
-
Examples
-
PFElement.log("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

log()

-
-
-
-
Description
Local logging that outputs the tag name as a prefix automatically
-
Examples
-
this.log("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> warn()

-
-
-
-
Description
A console warning wrapper which formats your output with useful debugging information.
-
Examples
-
PFElement.warn("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

warn()

-
-
-
-
Description
Local warning wrapper that outputs the tag name as a prefix automatically. - For use inside a component's function.
-
Examples
-
this.warn("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> error()

-
-
-
-
Description
A console error wrapper which formats your output with useful debugging information. - For use inside a component's function.
-
Examples
-
PFElement.error("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

error()

-
-
-
-
Description
Local error wrapper that outputs the tag name as a prefix automatically. - For use inside a component's function.
-
Examples
-
this.error("Hello");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

hasLightDOM() → {boolean}

-
-
-
-
Description
Returns a boolean statement of whether or not this component contains any light DOM.
-
Returns
-
- -
-
-
-
-
-
Examples
-
if(this.hasLightDOM()) this._init();
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

hasSlot()

-
-
-
-
Description
Returns a boolean statement of whether or not that slot exists in the light DOM.
-
Examples
-
this.hasSlot("header");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

getSlot()

-
-
-
-
Description
Returns an array with all the slot with the provided name defined in the light DOM. - If no value is provided (i.e., `this.getSlot()`), it returns all unassigned slots.
-
Examples
-
this.hasSlot("header");
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

contextUpdate()

-
-
-
-
Description
This alerts nested components to a change in the context
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

connectedCallback()

-
-
-
-
Description
Standard connected callback; fires when the component is added to the DOM.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

disconnectedCallback()

-
-
-
-
Description
Standard disconnected callback; fires when a componet is removed from the DOM. - Add your removeEventListeners here.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

attributeChangedCallback()

-
-
-
-
Description
Attribute changed callback fires when attributes are updated. - This combines the global and the component-specific logic.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

render()

-
-
-
-
Description
Standard render function.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

emitEvent()

-
-
-
-
Description
A wrapper around an event dispatch to standardize formatting.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

cascadeProperties()

-
-
-
-
Description
Handles the cascading of properties to nested components when new elements are added - Attribute updates/additions are handled by the attribute callback
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_upgradeObserver()

-
-
-
-
Description
This responds to changes in the pfelement attribute; indicates if the component upgraded
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
- -
-

maybe we should use just the attribute instead of the class? - https://github.com/angular/angular/issues/15399#issuecomment-318785677

-
-
- -
-
-
-
-
-

_contextObserver()

-
-
-
-
Description
This responds to changes in the context attribute; manual override tool
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_onObserver()

-
-
-
-
Description
This responds to changes in the context; source of truth for components
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_inlineStyleObserver()

-
-
-
-
Description
This responds to inline style changes and greps for context or theme updates.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_parseObserver()

-
-
-
-
Description
This is connected with a mutation observer that watches for updates to the light DOM - and pushes down the cascading values
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _validateProperties()

-
-
-
-
Description
Validate that the property meets the requirements for type and naming.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_castPropertyValue()

-
-
-
-
Description
Convert provided property value to the correct type as defined in the properties method.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_assignValueToAttribute()

-
-
-
-
Description
Map provided value to the attribute name on the component.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_initializeSlots()

-
-
-
-
Description
Maps the defined slots into an object that is easier to query
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_initializeProperties()

-
-
-
-
Description
Sets up the property definitions based on the properties method.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_initializeAttributeDefaults()

-
-
-
-
Description
Intialize the default value for an attribute.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

_validateAttributeValue()

-
-
-
-
Description
Validate the value against provided values.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _prop2attr()

-
-
-
-
Description
Look up an attribute name linked to a given property name.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _attr2prop()

-
-
-
-
Description
Look up an property name linked to a given attribute name.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _convertPropNameToAttrName()

-
-
-
-
Description
Convert a property name to an attribute name.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _convertAttrNameToPropName()

-
-
-
-
Description
Convert an attribute name to a property name.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> create()

-
-
-
-
Description
Caching the attributes and properties data for efficiency
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _setCache()

-
-
-
-
Description
Cache an object in a given cache namespace. This overwrites anything - already in that namespace.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _getCache()

-
-
-
-
Description
Get a cached object by namespace, or get all cached objects.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

<static> _populateCache()

-
-
-
-
Description
Populate initial values for properties cache.
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-
-
-
- -
-
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/elements/pfelement/demo/css/bootstrap.min.css b/elements/pfelement/demo/css/bootstrap.min.css deleted file mode 100644 index ed3905e0e0..0000000000 --- a/elements/pfelement/demo/css/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/elements/pfelement/demo/css/prism.css b/elements/pfelement/demo/css/prism.css deleted file mode 100644 index 9010cb637e..0000000000 --- a/elements/pfelement/demo/css/prism.css +++ /dev/null @@ -1,138 +0,0 @@ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ - -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*="language-"]::selection, pre[class*="language-"] ::selection, -code[class*="language-"]::selection, code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; - white-space: normal; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #999; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - background: hsla(0, 0%, 100%, .5); -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} - -.token.function, -.token.class-name { - color: #DD4A68; -} - -.token.regex, -.token.important, -.token.variable { - color: #e90; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} diff --git a/elements/pfelement/demo/css/prism.min.css b/elements/pfelement/demo/css/prism.min.css deleted file mode 100644 index f51e15de5d..0000000000 --- a/elements/pfelement/demo/css/prism.min.css +++ /dev/null @@ -1 +0,0 @@ -code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre{border:1px solid #e1e1e8}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#f7f7f9}code[class*=language-],pre[class*=language-]{text-shadow:none;color:#333;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.namespace{opacity:1}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:0 0}.token.boolean,.token.constant,.token.deleted,.token.number,.token.symbol{color:#270dd1}.token.atrule,.token.attr-value{color:#270dd1}.token.keyword,.token.tag{color:#aa0d91}.token.builtin,.token.char,.token.inserted,.token.property,.token.string{color:#c41a16}.language-css .token.string,.token.url{color:#40a9b1}.token.attr-name{color:#994500}.token.cdata,.token.doctype,.token.prolog{color:#999}.token.comment{color:#007400}.language-html .token.punctuation,.language-markup .token.punctuation{color:#b2a1b0}.token.function,.token.operator,.token.punctuation,.token.selector{color:#333}pre.line-numbers{position:relative;padding-left:4.8em;counter-reset:linenumber}pre.line-numbers>code{position:relative}.line-numbers .line-numbers-rows{position:absolute;top:0;font-size:100%;left:-4.8em;width:4em;letter-spacing:-1px;border-right:1px solid #e1e1e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>a{display:block;counter-increment:linenumber;color:#bdbdbd}.line-numbers-rows>a:hover{color:#9b9b9b}.line-numbers-rows>a:before{content:counter(linenumber);display:block;padding-right:.8em;text-align:right}pre.code-toolbar{position:relative}pre.code-toolbar>.toolbar{position:absolute;top:0;right:0;z-index:10;display:block;padding:0;font-size:12px;color:#767676;cursor:pointer;background-color:#fff;border-left:1px solid #e1e1e8;border-bottom:1px solid #e1e1e8;border-radius:0 4px 0 4px}pre.code-toolbar>.toolbar:hover{color:#fff;background-color:#337ab7;border-left-color:#337ab7;border-bottom-color:#337ab7}pre.code-toolbar>.toolbar .toolbar-item{display:inline-block}pre.code-toolbar>.toolbar a{cursor:pointer}pre.code-toolbar>.toolbar button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}pre.code-toolbar>.toolbar a,pre.code-toolbar>.toolbar button,pre.code-toolbar>.toolbar span{color:inherit;padding:5px 8px;display:inline-block}pre.code-toolbar>.toolbar a:focus,pre.code-toolbar>.toolbar a:hover,pre.code-toolbar>.toolbar button:focus,pre.code-toolbar>.toolbar button:hover,pre.code-toolbar>.toolbar span:focus,pre.code-toolbar>.toolbar span:hover{color:inherit;text-decoration:none} \ No newline at end of file diff --git a/elements/pfelement/demo/css/template.min.css b/elements/pfelement/demo/css/template.min.css deleted file mode 100644 index abbb34cec0..0000000000 --- a/elements/pfelement/demo/css/template.min.css +++ /dev/null @@ -1 +0,0 @@ -html{margin-top:50px;background-color:#f9f9f9}.navbar-brand.branding-logo{background-position:15px center;background-size:40px;background-repeat:no-repeat;text-indent:44px}.main-content{padding-bottom:200px}.main-content h1,.main-content h2{border-bottom:1px solid #eee;margin-top:20px;margin-bottom:20px;padding-bottom:9px}.main-content .primary p+h1,.main-content .primary p+h2,.main-content .readme-section p+h1,.main-content .readme-section p+h2,.main-content .related-tutorials h2,.main-content .tutorial-section p+h1,.main-content .tutorial-section p+h2{margin-top:40px}footer{width:100%;max-width:100%;overflow:hidden;padding:15px;text-align:center;background-color:#f9f9f9;border-top:solid 1px #ddd;font-size:small;color:#777}.callout{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px}.callout h5{margin-top:0;margin-bottom:5px;font-family:inherit;font-weight:500;line-height:1.1;font-size:18px}.callout p:last-child,.callout table:last-child{margin-bottom:0}.callout code{border-radius:3px}.callout .control-label{color:#999;font-weight:400}.callout+.callout{margin-top:-5px}.callout-default{border-left-color:#999}.callout-default h5{color:#999}.callout-primary{border-left-color:#337ab7}.callout-primary h5{color:#337ab7}.callout-success{border-left-color:#5cb85c}.callout-success h5{color:#5cb85c}.callout-danger{border-left-color:#d9534f}.callout-danger h5{color:#d9534f}.callout-warning{border-left-color:#f0ad4e}.callout-warning h5{color:#f0ad4e}.callout-info{border-left-color:#87b9f1}.callout-info h5{color:#87b9f1}.callout-rpc{border-left-color:#c7bfd3}.callout-rpc h5{color:#c7bfd3}.callout-example{border-left-color:#8461b9}.callout-example h5{color:#8461b9}.callout .form-group{margin-bottom:5px}.callout .form-group>div.control-static>p{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.callout .table>thead>tr>th{font-weight:400}.page-header{margin-top:0;margin-bottom:40px;padding:15px 0;background-color:#337ab7}.page-header .kind{font-size:50px;line-height:1.1;text-transform:uppercase;opacity:.1;position:absolute;right:15px;color:#fff}.page-header h1{font-size:36px;line-height:1.1;margin-top:0;color:#fff}.page-header .ancestors{display:block;font-size:16px}.page-header .ancestors a{color:#fff;opacity:.3}.page-header .ancestors a:hover{opacity:1;text-decoration:underline}.page-header .ancestors+.name{margin-left:15px}.page-header p{font-size:20px;margin-bottom:0;font-weight:300;line-height:1.4;color:#d0d0d0}.page-header .container{position:relative}#topNavigation .dropdown-menu{max-height:640px;max-height:calc(100vh - 62px);overflow-y:auto}@media (min-width:768px){.page-header{padding-top:60px;padding-bottom:60px;text-align:left}.page-header .kind{font-size:80px;line-height:1}.page-header h1{font-size:60px;line-height:1}.page-header .ancestors{font-size:20px}.page-header p{font-size:24px}}dl.symbol dl.symbol{margin-left:15px;margin-bottom:15px}.symbol-title h1,.symbol-title h2,.symbol-title h3,.symbol-title h4,.symbol-title h5{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding-left:50px;text-indent:-50px}.main-content .symbol-title h1,.main-content .symbol-title h2{border-bottom:none;margin-bottom:inherit}.symbol-title .name-signature,.symbol-title .signature-params{color:#222}.symbol-title .name-string,.symbol-title .signature-param,.symbol-title h4.event{color:#c7254e}.symbol-details{overflow:hidden}.symbol-title.collapsible-symbol{cursor:pointer}.symbol-title.collapsible-symbol .toggle-icon{color:#337ab7;text-indent:0}.symbol-title.collapsible-symbol:hover .toggle-icon{opacity:.8}.symbol-details.collapsible-symbol{max-height:0}.symbol-details.collapsible-symbol.transition{transition:max-height .4s ease-in}.summary{font-size:15px;font-weight:400;color:grey}.signature-attribs,.signature-new,.signature-type{color:#adadad;font-size:smaller}.anchored{position:relative}.anchor-link{position:absolute;left:-55px;padding-right:15px;text-indent:0;display:inline-block;min-width:60px;text-align:right;opacity:0;visibility:hidden;color:#999}.anchor-link:hover{color:#777}.expanded .anchor-link,h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link{opacity:1;visibility:visible}.breadcrumb li a{color:#337ab7}.dummy-console{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;resize:vertical;margin-bottom:15px}#lunr-search-footer .pagination{margin:0}.lunr-search-results-page{list-style:none;padding:0;display:none}.lunr-search-results-page.active{display:block}.lunr-search-results-page li{list-style:none;margin-bottom:20px}span.lunr-search-result-kind{text-transform:capitalize}a.lunr-search-result-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.lunr-search-result-title:hover{text-decoration:underline}p.lunr-search-result-url{color:#006621;font-size:13px;line-height:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}p.lunr-search-result-summary{color:#999;font-size:13px;line-height:16px;margin:0;overflow:hidden;max-height:48px;text-overflow:ellipsis}@media (min-width:992px){.navbar-form{width:228px}}@media (min-width:1200px){.navbar-form{width:278px}}.related-tutorials ul{margin-top:20px}.related-tutorials ul li a{font-size:16px;margin:5px 0;display:inline-block}.toc.affix{position:static}.toc-nav{margin-top:5px;padding-bottom:10px;max-height:95%;max-height:calc(100% - 2em);overflow-y:auto}.toc .nav>li>a{display:block;padding:4px 4px 4px 36px;text-indent:-20px;font-size:14px;font-weight:500;color:#767676}.toc .nav>li>a:focus,.toc .nav>li>a:hover{padding-left:35px;color:#337ab7;text-decoration:none;background-color:transparent;border-left:1px solid #337ab7}.toc .nav>li.active>a,.toc .nav>li.active>a:focus,.toc .nav>li.active>a:hover{padding-left:34px;color:#337ab7;background-color:transparent;border-left:2px solid #337ab7}.toc .nav .nav{display:none;padding-bottom:10px}.toc .nav .nav>li>a{font-size:13px;padding-left:39px;font-weight:400}.toc .nav .nav>li>a:focus,.toc .nav .nav>li>a:hover{padding-left:38px}.toc .nav .nav>li.active>a,.toc .nav .nav>li.active>a:focus,.toc .nav .nav>li.active>a:hover{padding-left:37px}.toc .nav .nav .nav>li>a{font-size:12px;padding-left:44px}.toc .nav .nav .nav>li>a:focus,.toc .nav .nav .nav>li>a:hover{padding-left:43px}.toc .nav .nav .nav>li.active>a,.toc .nav .nav .nav>li.active>a:focus,.toc .nav .nav .nav>li.active>a:hover{padding-left:42px}.toc .nav .nav .nav .nav>li>a{font-size:12px;padding-left:49px}.toc .nav .nav .nav .nav>li>a:focus,.toc .nav .nav .nav .nav>li>a:hover{padding-left:48px}.toc .nav .nav .nav .nav>li.active>a,.toc .nav .nav .nav .nav>li.active>a:focus,.toc .nav .nav .nav .nav>li.active>a:hover{padding-left:47px}.toc .nav>li>a .name-require{color:#767676}.toc .nav>li>a>.ancestors>span{color:#337ab7}.toc .nav>li>a .signature-attribs{font-weight:400}.toc .nav>li>a .name-signature,.toc .nav>li>a .signature-params{color:#000}.toc .nav>li.event>a .name,.toc .nav>li>a .name-string,.toc .nav>li>a .signature-param{color:#c7254e}.back-to-top{display:none;padding:4px 10px;margin-top:10px;margin-left:10px;font-size:12px;font-weight:500;color:#999;cursor:pointer}.back-to-top:hover{color:#337ab7;text-decoration:none}@media (min-width:768px){.back-to-top{display:block}}@media (min-width:992px){.toc .nav>.active>ul{display:block}.toc.affix,.toc.affix-bottom{width:213px}.toc.affix{position:fixed;top:67px;height:calc(100% - 67px - 50px)}.toc.affix-bottom{position:absolute}.toc.affix .toc-nav,.toc.affix-bottom .toc-nav{margin-top:0;margin-bottom:0}}@media (min-width:1200px){.toc.affix,.toc.affix-bottom{width:263px}}.access-filter{text-align:right;font-size:12px;padding:8px 15px;margin-top:0;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px;color:#767676}.breadcrumb+.access-filter{margin-top:-25px;margin-bottom:0}.access-filter .checkbox-inline input[type=checkbox]{margin:1px 0 0 -17px}.access-filter .checkbox-inline,.access-filter .checkbox-inline:before{color:#767676}.access-filter .checkbox-inline.checked,.access-filter .checkbox-inline:focus,.access-filter .checkbox-inline:hover{color:#337ab7}.access-filter .checkbox-inline:before{display:inline-block;position:relative;left:-25px}.access-filter .checkbox-inline:first-of-type:before{content:"Show -"}.access-filter .checkbox-inline+.checkbox-inline:before{content:"|"} \ No newline at end of file diff --git a/elements/pfelement/demo/favicon.svg b/elements/pfelement/demo/favicon.svg deleted file mode 100644 index c6bb6ba0aa..0000000000 --- a/elements/pfelement/demo/favicon.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953fff68df523aa7656497ee339d6026d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20127 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609ab6f21774de0cb7e01360095584f65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 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 G`u_lkUM?>H diff --git a/elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 b/elements/pfelement/demo/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 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 diff --git a/elements/pfelement/demo/global.html b/elements/pfelement/demo/global.html deleted file mode 100644 index 0ff39b054a..0000000000 --- a/elements/pfelement/demo/global.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - Globals - - - - - - - - - - - - - - -
-
-
- -
-
-

Methods

-
-
-
-

reveal()

-
-
-
-
Description
Reveal web components when loading is complete by removing the unresolved attribute - from the body tag; log the event.
-
Throws
-
- -
-
debugging log indicating the reveal event
-
-
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

autoReveal( logFunction )

-
-
-
-
Description
Auto-reveal functionality prevents a flash of unstyled content before components - have finished loading.
-
-
Parameters
- - - - - - - - - - - - - - - -
NameTypeDescription
logFunctionfunction -
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - - - -
-
-
-
-
-

handleWebComponentsReady()

-
-
-
-
Description
Reveal web components when loading is complete and log event.
-
Throws
-
- -
-
debugging log indicating the web components are ready
-
-
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

isAllowedType( definition ) → {Boolean}

-
-
-
-
Description
Verify that a property definition's `type` field contains one of the allowed - types. If the definition type resolves to falsy, assumes String type.
-
-
Parameters
- - - - - - - - - - - - - - - -
NameTypeDescription
definitionconstructor -
-
-
Returns
-
- -
-
True if the definition type is one of String, Number, or Boolean
-
-
-
-
Details
- - - -
- -
-

String

-
-
- - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-

isValidDefaultType( definition ) → {Boolean}

-
-
-
-
Description
Verify that a property definition's `default` value is of the correct type. - - A `default` value is valid if it's of the same type as the `type` - definition. Or, if there is no `type` definition, then it must be a String - (the default value for `type`).
-
-
Parameters
- - - - - - - - - - - - - - - -
NameTypeDescription
definitiontype -
-
-
Returns
-
- -
-
True if the default value matches the type of the definition object.
-
-
-
-
Details
- - - - - - - - - - - - - - - - -
- - -
- - - - -
-
-
-
-
-
-
-
- -
-
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/elements/pfelement/demo/img/pfe-icon-white-shaded.svg b/elements/pfelement/demo/img/pfe-icon-white-shaded.svg deleted file mode 100644 index fc6e84c42d..0000000000 --- a/elements/pfelement/demo/img/pfe-icon-white-shaded.svg +++ /dev/null @@ -1 +0,0 @@ -PatternFly Elements Icon White (shaded) \ No newline at end of file diff --git a/elements/pfelement/demo/index.html b/elements/pfelement/demo/index.html deleted file mode 100644 index 862f8619c4..0000000000 --- a/elements/pfelement/demo/index.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - PatternFly Elements - - - - - - - - - - - - - - -
-
-
-
-

PFElement Element

-

This is the base element that all other PFElements should extend. It handles setting up a shadow root and applies Shady CSS if it is needed.

-

To create a new PFElement, use npm run new from the root of the PFElements repo. After answering a few questions, a new element will be generated for you by generator-pfelement.

-

Here is an example of a new element and how it extends the base PFElement.

-
import PFElement from "../pfelement/dist/pfelement.js";
-
-class MyElement extends PFElement {
-  // The HTML tag name for this element.  This will be passed into `customElements.define()`.
-  static get tag() {
-    return "my-element";
-  }
-
-  // The path to the element's SCSS file.  It is compiled to CSS at build time.
-  get styleUrl() {
-    return "my-element.scss";
-  }
-
-  // The path to the element's template.  This used at build time.
-  get templateUrl() {
-    return "my-element.html";
-  }
-
-  constructor() {
-    // The call to super is first and contains a reference to the class itself.
-    // This allows the base class to see any of MyElement's static properties.
-    super(MyElement);
-
-    // any other work to do during the constructor goes here
-  }
-
-  // connectedCallback runs when the element is placed into the DOM.  Note that
-  // in dynamic apps, this _can_ happen more than once, for instance if an
-  // element is moved from one part of the DOM tree to another.
-  connectedCallback() {
-    // super's connectedCallback goes first
-    super.connectedCallback();
-
-    // any other work to do during connectedCallback goes here
-  }
-}
-
-PFElement.create(MyElement);
-
-

Tooling / functions

-

The base class has a set of tools available for use inside all web components extending it.

-

Types

-

Define the type of your web component by extending the PfeTypes getter. A component can be classified as container, content, or combo. These are defined in more detail in the documentation.

-
  // Declare the type of this component
-  static get PfeType() {
-    return PFElement.PfeTypes.Container;
-  }
-
-

Context

-

All components automatically observe and react to the attribute on which can equal 1 of 3 possible options:

-
    -
  • light
  • -
  • dark
  • -
  • saturated
  • -
-

Context is automatically passed down from parent components to their children (often being defined by container elements and observed and acted upon by content components) without manual intervention by a developer. This is done through the on attribute. The on attribute should not be manually edited or added or manipulated by the JavaScript of a component.

-

Adding the context attribute to any component will break that inheritance and manually invoke your preferred context. This is a way to opt-out of the contexts provided by parent elements. Only add this attribute if you want to walk away from inherited context.

-

Random ID

-

Need to set a random ID on any part of your web component? Use the randomId getter:

-
  this.newId = this.randomId;
-
-

CSS Variables

-

You can query for or set the value of a CSS variable using the cssVariable function. It has 3 possible inputs:

-
    -
  1. name: The name of the CSS variable you are querying for (you can omit the -- at the beginning).
  2. -
  3. value: This input is optional. By passing in a value to the function, you are opting to set the variable name you provided equal to the value you have passed in.
  4. -
  5. element: This defaults to the this context of the web component calling the function but you can pass in any element. This is useful if you want to attach a specific CSS Variable to a shadow element in your template for example.
  6. -
-

Querying for a variable's value:

-
this.cssVariable("pfe-cta--Color");
-
-

Setting a value for a variable:

-
this.cssVariable("pfe-cta--Color", "#333");
-
-

Setting a value for a variable on a template element:

-
this.cssVariable("pfe-cta--Color", "#333", this.shadowRoot.querySelector(".pfe-cta--arrow"));
-
-

Querying for a slot(s)

-

There are 2 functions, hasSlot and getSlot which allow you to query for the existence of a slot in the light DOM. These are useful in the templates as a means of avoiding printing empty slots or wrappers.

-
    -
  • -

    hasSlot: Accepts the name of the slot you are querying for (does not work for default slots yet) and returns a NodeElement of that slot if it exists and null if it does not.

    -
  • -
  • -

    getSlot: Accepts the name of the slot you are querying for (does not work for default slots yet) and returns a NodeList of all elements assigned to that slot, if they exist, and null if they do not.

    -
  • -
-

Context set and update

- -

There are 2 functions for updating the context of a component. The first, setContext, will update the context of the component calling the function using the following logic:

-
    -
  1. Check that element for the value of the --context variable, if it exists.
  2. -
  3. If it does not exist, the component then checks for a context attribute.
  4. -
  5. Finally, if neither has a value, the optional feedback input value is used.
  6. -
-

If a value is defined at any point of this flow, an on attribute will be attached and assigned that value.

-

The context_update function will use much the same logic except it updates the context for the component calling the function and triggers an update for all of it's pfelement children.

-

Log

-

Prints a message to the console log in a standardized format when debugging is turned on: [pfe-band]: This is my console message.. To invoke this inside an element, you can add this.log("This is my console message"); to your JS file.

-

Emit event

-

This allows you to dispatch an event in a standardized way. The function accepts the name of the event and an object containing details about that event. That object supports the following configuration:

- - - - - - - - - - - - - - - - - - - - - - - - - -
Event settingDefault value
bubblestrue
cancelabletrue
composedfalse
detail{}
-

Elements should contain an events object which lists all the event names:

-
static get events() {
-  return {
-    change: `${this.tag}:change`
-  };
-}
-
-

And then reference that object in the following way to invoke those events:

-
this.emitEvent(
-  PfeAccordion.events.change, {
-    detail: {
-      expanded: !this.expanded
-    }
-  }
-);
-
-

Test

-
npm run test
-
-

Build

-
npm run build
-
-

Demo

-

From the PFElements root directory, run:

-
npm start
-
-

Code style

-

PFElement (and all PFElements) use Prettier to auto-format JS and JSON. The style rules get applied when you commit a change. If you choose to, you can integrate your editor with Prettier to have the style rules applied on every save.

-
-
-
- -
-
-
- - - - - - - - - - - - - \ No newline at end of file diff --git a/elements/pfelement/demo/js/bootstrap.min.js b/elements/pfelement/demo/js/bootstrap.min.js deleted file mode 100644 index 8eedebae35..0000000000 --- a/elements/pfelement/demo/js/bootstrap.min.js +++ /dev/null @@ -1,1447 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); -+(function(a) { - "use strict"; - var b = a.fn.jquery.split(" ")[0].split("."); - if ((b[0] < 2 && b[1] < 9) || (1 == b[0] && 9 == b[1] && b[2] < 1) || b[0] > 3) - throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"); -})(jQuery), - +(function(a) { - "use strict"; - function b() { - var a = document.createElement("bootstrap"), - b = { - WebkitTransition: "webkitTransitionEnd", - MozTransition: "transitionend", - OTransition: "oTransitionEnd otransitionend", - transition: "transitionend" - }; - for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; - return !1; - } - (a.fn.emulateTransitionEnd = function(b) { - var c = !1, - d = this; - a(this).one("bsTransitionEnd", function() { - c = !0; - }); - var e = function() { - c || a(d).trigger(a.support.transition.end); - }; - return setTimeout(e, b), this; - }), - a(function() { - (a.support.transition = b()), - a.support.transition && - (a.event.special.bsTransitionEnd = { - bindType: a.support.transition.end, - delegateType: a.support.transition.end, - handle: function(b) { - if (a(b.target).is(this)) return b.handleObj.handler.apply(this, arguments); - } - }); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var c = a(this), - e = c.data("bs.alert"); - e || c.data("bs.alert", (e = new d(this))), "string" == typeof b && e[b].call(c); - }); - } - var c = '[data-dismiss="alert"]', - d = function(b) { - a(b).on("click", c, this.close); - }; - (d.VERSION = "3.3.7"), - (d.TRANSITION_DURATION = 150), - (d.prototype.close = function(b) { - function c() { - g.detach() - .trigger("closed.bs.alert") - .remove(); - } - var e = a(this), - f = e.attr("data-target"); - f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, ""))); - var g = a("#" === f ? [] : f); - b && b.preventDefault(), - g.length || (g = e.closest(".alert")), - g.trigger((b = a.Event("close.bs.alert"))), - b.isDefaultPrevented() || - (g.removeClass("in"), - a.support.transition && g.hasClass("fade") - ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) - : c()); - }); - var e = a.fn.alert; - (a.fn.alert = b), - (a.fn.alert.Constructor = d), - (a.fn.alert.noConflict = function() { - return (a.fn.alert = e), this; - }), - a(document).on("click.bs.alert.data-api", c, d.prototype.close); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.button"), - f = "object" == typeof b && b; - e || d.data("bs.button", (e = new c(this, f))), "toggle" == b ? e.toggle() : b && e.setState(b); - }); - } - var c = function(b, d) { - (this.$element = a(b)), (this.options = a.extend({}, c.DEFAULTS, d)), (this.isLoading = !1); - }; - (c.VERSION = "3.3.7"), - (c.DEFAULTS = { loadingText: "loading..." }), - (c.prototype.setState = function(b) { - var c = "disabled", - d = this.$element, - e = d.is("input") ? "val" : "html", - f = d.data(); - (b += "Text"), - null == f.resetText && d.data("resetText", d[e]()), - setTimeout( - a.proxy(function() { - d[e](null == f[b] ? this.options[b] : f[b]), - "loadingText" == b - ? ((this.isLoading = !0), - d - .addClass(c) - .attr(c, c) - .prop(c, !0)) - : this.isLoading && - ((this.isLoading = !1), - d - .removeClass(c) - .removeAttr(c) - .prop(c, !1)); - }, this), - 0 - ); - }), - (c.prototype.toggle = function() { - var a = !0, - b = this.$element.closest('[data-toggle="buttons"]'); - if (b.length) { - var c = this.$element.find("input"); - "radio" == c.prop("type") - ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) - : "checkbox" == c.prop("type") && - (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), - c.prop("checked", this.$element.hasClass("active")), - a && c.trigger("change"); - } else - this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active"); - }); - var d = a.fn.button; - (a.fn.button = b), - (a.fn.button.Constructor = c), - (a.fn.button.noConflict = function() { - return (a.fn.button = d), this; - }), - a(document) - .on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) { - var d = a(c.target).closest(".btn"); - b.call(d, "toggle"), - a(c.target).is('input[type="radio"], input[type="checkbox"]') || - (c.preventDefault(), - d.is("input,button") - ? d.trigger("focus") - : d - .find("input:visible,button:visible") - .first() - .trigger("focus")); - }) - .on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(b) { - a(b.target) - .closest(".btn") - .toggleClass("focus", /^focus(in)?$/.test(b.type)); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.carousel"), - f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), - g = "string" == typeof b ? b : f.slide; - e || d.data("bs.carousel", (e = new c(this, f))), - "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle(); - }); - } - var c = function(b, c) { - (this.$element = a(b)), - (this.$indicators = this.$element.find(".carousel-indicators")), - (this.options = c), - (this.paused = null), - (this.sliding = null), - (this.interval = null), - (this.$active = null), - (this.$items = null), - this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), - "hover" == this.options.pause && - !("ontouchstart" in document.documentElement) && - this.$element - .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) - .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)); - }; - (c.VERSION = "3.3.7"), - (c.TRANSITION_DURATION = 600), - (c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }), - (c.prototype.keydown = function(a) { - if (!/input|textarea/i.test(a.target.tagName)) { - switch (a.which) { - case 37: - this.prev(); - break; - case 39: - this.next(); - break; - default: - return; - } - a.preventDefault(); - } - }), - (c.prototype.cycle = function(b) { - return ( - b || (this.paused = !1), - this.interval && clearInterval(this.interval), - this.options.interval && - !this.paused && - (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), - this - ); - }), - (c.prototype.getItemIndex = function(a) { - return (this.$items = a.parent().children(".item")), this.$items.index(a || this.$active); - }), - (c.prototype.getItemForDirection = function(a, b) { - var c = this.getItemIndex(b), - d = ("prev" == a && 0 === c) || ("next" == a && c == this.$items.length - 1); - if (d && !this.options.wrap) return b; - var e = "prev" == a ? -1 : 1, - f = (c + e) % this.$items.length; - return this.$items.eq(f); - }), - (c.prototype.to = function(a) { - var b = this, - c = this.getItemIndex((this.$active = this.$element.find(".item.active"))); - if (!(a > this.$items.length - 1 || a < 0)) - return this.sliding - ? this.$element.one("slid.bs.carousel", function() { - b.to(a); - }) - : c == a - ? this.pause().cycle() - : this.slide(a > c ? "next" : "prev", this.$items.eq(a)); - }), - (c.prototype.pause = function(b) { - return ( - b || (this.paused = !0), - this.$element.find(".next, .prev").length && - a.support.transition && - (this.$element.trigger(a.support.transition.end), this.cycle(!0)), - (this.interval = clearInterval(this.interval)), - this - ); - }), - (c.prototype.next = function() { - if (!this.sliding) return this.slide("next"); - }), - (c.prototype.prev = function() { - if (!this.sliding) return this.slide("prev"); - }), - (c.prototype.slide = function(b, d) { - var e = this.$element.find(".item.active"), - f = d || this.getItemForDirection(b, e), - g = this.interval, - h = "next" == b ? "left" : "right", - i = this; - if (f.hasClass("active")) return (this.sliding = !1); - var j = f[0], - k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); - if ((this.$element.trigger(k), !k.isDefaultPrevented())) { - if (((this.sliding = !0), g && this.pause(), this.$indicators.length)) { - this.$indicators.find(".active").removeClass("active"); - var l = a(this.$indicators.children()[this.getItemIndex(f)]); - l && l.addClass("active"); - } - var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: h }); - return ( - a.support.transition && this.$element.hasClass("slide") - ? (f.addClass(b), - f[0].offsetWidth, - e.addClass(h), - f.addClass(h), - e - .one("bsTransitionEnd", function() { - f.removeClass([b, h].join(" ")).addClass("active"), - e.removeClass(["active", h].join(" ")), - (i.sliding = !1), - setTimeout(function() { - i.$element.trigger(m); - }, 0); - }) - .emulateTransitionEnd(c.TRANSITION_DURATION)) - : (e.removeClass("active"), f.addClass("active"), (this.sliding = !1), this.$element.trigger(m)), - g && this.cycle(), - this - ); - } - }); - var d = a.fn.carousel; - (a.fn.carousel = b), - (a.fn.carousel.Constructor = c), - (a.fn.carousel.noConflict = function() { - return (a.fn.carousel = d), this; - }); - var e = function(c) { - var d, - e = a(this), - f = a(e.attr("data-target") || ((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""))); - if (f.hasClass("carousel")) { - var g = a.extend({}, f.data(), e.data()), - h = e.attr("data-slide-to"); - h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault(); - } - }; - a(document) - .on("click.bs.carousel.data-api", "[data-slide]", e) - .on("click.bs.carousel.data-api", "[data-slide-to]", e), - a(window).on("load", function() { - a('[data-ride="carousel"]').each(function() { - var c = a(this); - b.call(c, c.data()); - }); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - var c, - d = b.attr("data-target") || ((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")); - return a(d); - } - function c(b) { - return this.each(function() { - var c = a(this), - e = c.data("bs.collapse"), - f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); - !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), - e || c.data("bs.collapse", (e = new d(this, f))), - "string" == typeof b && e[b](); - }); - } - var d = function(b, c) { - (this.$element = a(b)), - (this.options = a.extend({}, d.DEFAULTS, c)), - (this.$trigger = a( - '[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]' - )), - (this.transitioning = null), - this.options.parent - ? (this.$parent = this.getParent()) - : this.addAriaAndCollapsedClass(this.$element, this.$trigger), - this.options.toggle && this.toggle(); - }; - (d.VERSION = "3.3.7"), - (d.TRANSITION_DURATION = 350), - (d.DEFAULTS = { toggle: !0 }), - (d.prototype.dimension = function() { - var a = this.$element.hasClass("width"); - return a ? "width" : "height"; - }), - (d.prototype.show = function() { - if (!this.transitioning && !this.$element.hasClass("in")) { - var b, - e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); - if (!(e && e.length && ((b = e.data("bs.collapse")), b && b.transitioning))) { - var f = a.Event("show.bs.collapse"); - if ((this.$element.trigger(f), !f.isDefaultPrevented())) { - e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); - var g = this.dimension(); - this.$element - .removeClass("collapse") - .addClass("collapsing") - [g](0) - .attr("aria-expanded", !0), - this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), - (this.transitioning = 1); - var h = function() { - this.$element - .removeClass("collapsing") - .addClass("collapse in") - [g](""), - (this.transitioning = 0), - this.$element.trigger("shown.bs.collapse"); - }; - if (!a.support.transition) return h.call(this); - var i = a.camelCase(["scroll", g].join("-")); - this.$element - .one("bsTransitionEnd", a.proxy(h, this)) - .emulateTransitionEnd(d.TRANSITION_DURATION) - [g](this.$element[0][i]); - } - } - } - }), - (d.prototype.hide = function() { - if (!this.transitioning && this.$element.hasClass("in")) { - var b = a.Event("hide.bs.collapse"); - if ((this.$element.trigger(b), !b.isDefaultPrevented())) { - var c = this.dimension(); - this.$element[c](this.$element[c]())[0].offsetHeight, - this.$element - .addClass("collapsing") - .removeClass("collapse in") - .attr("aria-expanded", !1), - this.$trigger.addClass("collapsed").attr("aria-expanded", !1), - (this.transitioning = 1); - var e = function() { - (this.transitioning = 0), - this.$element - .removeClass("collapsing") - .addClass("collapse") - .trigger("hidden.bs.collapse"); - }; - return a.support.transition - ? void this.$element[c](0) - .one("bsTransitionEnd", a.proxy(e, this)) - .emulateTransitionEnd(d.TRANSITION_DURATION) - : e.call(this); - } - } - }), - (d.prototype.toggle = function() { - this[this.$element.hasClass("in") ? "hide" : "show"](); - }), - (d.prototype.getParent = function() { - return a(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each( - a.proxy(function(c, d) { - var e = a(d); - this.addAriaAndCollapsedClass(b(e), e); - }, this) - ) - .end(); - }), - (d.prototype.addAriaAndCollapsedClass = function(a, b) { - var c = a.hasClass("in"); - a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c); - }); - var e = a.fn.collapse; - (a.fn.collapse = c), - (a.fn.collapse.Constructor = d), - (a.fn.collapse.noConflict = function() { - return (a.fn.collapse = e), this; - }), - a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(d) { - var e = a(this); - e.attr("data-target") || d.preventDefault(); - var f = b(e), - g = f.data("bs.collapse"), - h = g ? "toggle" : e.data(); - c.call(f, h); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - var c = b.attr("data-target"); - c || ((c = b.attr("href")), (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""))); - var d = c && a(c); - return d && d.length ? d : b.parent(); - } - function c(c) { - (c && 3 === c.which) || - (a(e).remove(), - a(f).each(function() { - var d = a(this), - e = b(d), - f = { relatedTarget: this }; - e.hasClass("open") && - ((c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target)) || - (e.trigger((c = a.Event("hide.bs.dropdown", f))), - c.isDefaultPrevented() || - (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))); - })); - } - function d(b) { - return this.each(function() { - var c = a(this), - d = c.data("bs.dropdown"); - d || c.data("bs.dropdown", (d = new g(this))), "string" == typeof b && d[b].call(c); - }); - } - var e = ".dropdown-backdrop", - f = '[data-toggle="dropdown"]', - g = function(b) { - a(b).on("click.bs.dropdown", this.toggle); - }; - (g.VERSION = "3.3.7"), - (g.prototype.toggle = function(d) { - var e = a(this); - if (!e.is(".disabled, :disabled")) { - var f = b(e), - g = f.hasClass("open"); - if ((c(), !g)) { - "ontouchstart" in document.documentElement && - !f.closest(".navbar-nav").length && - a(document.createElement("div")) - .addClass("dropdown-backdrop") - .insertAfter(a(this)) - .on("click", c); - var h = { relatedTarget: this }; - if ((f.trigger((d = a.Event("show.bs.dropdown", h))), d.isDefaultPrevented())) return; - e.trigger("focus").attr("aria-expanded", "true"), - f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h)); - } - return !1; - } - }), - (g.prototype.keydown = function(c) { - if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { - var d = a(this); - if ((c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled"))) { - var e = b(d), - g = e.hasClass("open"); - if ((!g && 27 != c.which) || (g && 27 == c.which)) - return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); - var h = " li:not(.disabled):visible a", - i = e.find(".dropdown-menu" + h); - if (i.length) { - var j = i.index(c.target); - 38 == c.which && j > 0 && j--, - 40 == c.which && j < i.length - 1 && j++, - ~j || (j = 0), - i.eq(j).trigger("focus"); - } - } - } - }); - var h = a.fn.dropdown; - (a.fn.dropdown = d), - (a.fn.dropdown.Constructor = g), - (a.fn.dropdown.noConflict = function() { - return (a.fn.dropdown = h), this; - }), - a(document) - .on("click.bs.dropdown.data-api", c) - .on("click.bs.dropdown.data-api", ".dropdown form", function(a) { - a.stopPropagation(); - }) - .on("click.bs.dropdown.data-api", f, g.prototype.toggle) - .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) - .on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown); - })(jQuery), - +(function(a) { - "use strict"; - function b(b, d) { - return this.each(function() { - var e = a(this), - f = e.data("bs.modal"), - g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); - f || e.data("bs.modal", (f = new c(this, g))), "string" == typeof b ? f[b](d) : g.show && f.show(d); - }); - } - var c = function(b, c) { - (this.options = c), - (this.$body = a(document.body)), - (this.$element = a(b)), - (this.$dialog = this.$element.find(".modal-dialog")), - (this.$backdrop = null), - (this.isShown = null), - (this.originalBodyPad = null), - (this.scrollbarWidth = 0), - (this.ignoreBackdropClick = !1), - this.options.remote && - this.$element.find(".modal-content").load( - this.options.remote, - a.proxy(function() { - this.$element.trigger("loaded.bs.modal"); - }, this) - ); - }; - (c.VERSION = "3.3.7"), - (c.TRANSITION_DURATION = 300), - (c.BACKDROP_TRANSITION_DURATION = 150), - (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }), - (c.prototype.toggle = function(a) { - return this.isShown ? this.hide() : this.show(a); - }), - (c.prototype.show = function(b) { - var d = this, - e = a.Event("show.bs.modal", { relatedTarget: b }); - this.$element.trigger(e), - this.isShown || - e.isDefaultPrevented() || - ((this.isShown = !0), - this.checkScrollbar(), - this.setScrollbar(), - this.$body.addClass("modal-open"), - this.escape(), - this.resize(), - this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), - this.$dialog.on("mousedown.dismiss.bs.modal", function() { - d.$element.one("mouseup.dismiss.bs.modal", function(b) { - a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0); - }); - }), - this.backdrop(function() { - var e = a.support.transition && d.$element.hasClass("fade"); - d.$element.parent().length || d.$element.appendTo(d.$body), - d.$element.show().scrollTop(0), - d.adjustDialog(), - e && d.$element[0].offsetWidth, - d.$element.addClass("in"), - d.enforceFocus(); - var f = a.Event("shown.bs.modal", { relatedTarget: b }); - e - ? d.$dialog - .one("bsTransitionEnd", function() { - d.$element.trigger("focus").trigger(f); - }) - .emulateTransitionEnd(c.TRANSITION_DURATION) - : d.$element.trigger("focus").trigger(f); - })); - }), - (c.prototype.hide = function(b) { - b && b.preventDefault(), - (b = a.Event("hide.bs.modal")), - this.$element.trigger(b), - this.isShown && - !b.isDefaultPrevented() && - ((this.isShown = !1), - this.escape(), - this.resize(), - a(document).off("focusin.bs.modal"), - this.$element - .removeClass("in") - .off("click.dismiss.bs.modal") - .off("mouseup.dismiss.bs.modal"), - this.$dialog.off("mousedown.dismiss.bs.modal"), - a.support.transition && this.$element.hasClass("fade") - ? this.$element - .one("bsTransitionEnd", a.proxy(this.hideModal, this)) - .emulateTransitionEnd(c.TRANSITION_DURATION) - : this.hideModal()); - }), - (c.prototype.enforceFocus = function() { - a(document) - .off("focusin.bs.modal") - .on( - "focusin.bs.modal", - a.proxy(function(a) { - document === a.target || - this.$element[0] === a.target || - this.$element.has(a.target).length || - this.$element.trigger("focus"); - }, this) - ); - }), - (c.prototype.escape = function() { - this.isShown && this.options.keyboard - ? this.$element.on( - "keydown.dismiss.bs.modal", - a.proxy(function(a) { - 27 == a.which && this.hide(); - }, this) - ) - : this.isShown || this.$element.off("keydown.dismiss.bs.modal"); - }), - (c.prototype.resize = function() { - this.isShown - ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) - : a(window).off("resize.bs.modal"); - }), - (c.prototype.hideModal = function() { - var a = this; - this.$element.hide(), - this.backdrop(function() { - a.$body.removeClass("modal-open"), - a.resetAdjustments(), - a.resetScrollbar(), - a.$element.trigger("hidden.bs.modal"); - }); - }), - (c.prototype.removeBackdrop = function() { - this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null); - }), - (c.prototype.backdrop = function(b) { - var d = this, - e = this.$element.hasClass("fade") ? "fade" : ""; - if (this.isShown && this.options.backdrop) { - var f = a.support.transition && e; - if ( - ((this.$backdrop = a(document.createElement("div")) - .addClass("modal-backdrop " + e) - .appendTo(this.$body)), - this.$element.on( - "click.dismiss.bs.modal", - a.proxy(function(a) { - return this.ignoreBackdropClick - ? void (this.ignoreBackdropClick = !1) - : void ( - a.target === a.currentTarget && - ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()) - ); - }, this) - ), - f && this.$backdrop[0].offsetWidth, - this.$backdrop.addClass("in"), - !b) - ) - return; - f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b(); - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass("in"); - var g = function() { - d.removeBackdrop(), b && b(); - }; - a.support.transition && this.$element.hasClass("fade") - ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) - : g(); - } else b && b(); - }), - (c.prototype.handleUpdate = function() { - this.adjustDialog(); - }), - (c.prototype.adjustDialog = function() { - var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", - paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" - }); - }), - (c.prototype.resetAdjustments = function() { - this.$element.css({ paddingLeft: "", paddingRight: "" }); - }), - (c.prototype.checkScrollbar = function() { - var a = window.innerWidth; - if (!a) { - var b = document.documentElement.getBoundingClientRect(); - a = b.right - Math.abs(b.left); - } - (this.bodyIsOverflowing = document.body.clientWidth < a), (this.scrollbarWidth = this.measureScrollbar()); - }), - (c.prototype.setScrollbar = function() { - var a = parseInt(this.$body.css("padding-right") || 0, 10); - (this.originalBodyPad = document.body.style.paddingRight || ""), - this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth); - }), - (c.prototype.resetScrollbar = function() { - this.$body.css("padding-right", this.originalBodyPad); - }), - (c.prototype.measureScrollbar = function() { - var a = document.createElement("div"); - (a.className = "modal-scrollbar-measure"), this.$body.append(a); - var b = a.offsetWidth - a.clientWidth; - return this.$body[0].removeChild(a), b; - }); - var d = a.fn.modal; - (a.fn.modal = b), - (a.fn.modal.Constructor = c), - (a.fn.modal.noConflict = function() { - return (a.fn.modal = d), this; - }), - a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) { - var d = a(this), - e = d.attr("href"), - f = a(d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, ""))), - g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); - d.is("a") && c.preventDefault(), - f.one("show.bs.modal", function(a) { - a.isDefaultPrevented() || - f.one("hidden.bs.modal", function() { - d.is(":visible") && d.trigger("focus"); - }); - }), - b.call(f, g, this); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.tooltip"), - f = "object" == typeof b && b; - (!e && /destroy|hide/.test(b)) || - (e || d.data("bs.tooltip", (e = new c(this, f))), "string" == typeof b && e[b]()); - }); - } - var c = function(a, b) { - (this.type = null), - (this.options = null), - (this.enabled = null), - (this.timeout = null), - (this.hoverState = null), - (this.$element = null), - (this.inState = null), - this.init("tooltip", a, b); - }; - (c.VERSION = "3.3.7"), - (c.TRANSITION_DURATION = 150), - (c.DEFAULTS = { - animation: !0, - placement: "top", - selector: !1, - template: - '', - trigger: "hover focus", - title: "", - delay: 0, - html: !1, - container: !1, - viewport: { selector: "body", padding: 0 } - }), - (c.prototype.init = function(b, c, d) { - if ( - ((this.enabled = !0), - (this.type = b), - (this.$element = a(c)), - (this.options = this.getOptions(d)), - (this.$viewport = - this.options.viewport && - a( - a.isFunction(this.options.viewport) - ? this.options.viewport.call(this, this.$element) - : this.options.viewport.selector || this.options.viewport - )), - (this.inState = { click: !1, hover: !1, focus: !1 }), - this.$element[0] instanceof document.constructor && !this.options.selector) - ) - throw new Error( - "`selector` option must be specified when initializing " + this.type + " on the window.document object!" - ); - for (var e = this.options.trigger.split(" "), f = e.length; f--; ) { - var g = e[f]; - if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); - else if ("manual" != g) { - var h = "hover" == g ? "mouseenter" : "focusin", - i = "hover" == g ? "mouseleave" : "focusout"; - this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), - this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)); - } - } - this.options.selector - ? (this._options = a.extend({}, this.options, { trigger: "manual", selector: "" })) - : this.fixTitle(); - }), - (c.prototype.getDefaults = function() { - return c.DEFAULTS; - }), - (c.prototype.getOptions = function(b) { - return ( - (b = a.extend({}, this.getDefaults(), this.$element.data(), b)), - b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), - b - ); - }), - (c.prototype.getDelegateOptions = function() { - var b = {}, - c = this.getDefaults(); - return ( - this._options && - a.each(this._options, function(a, d) { - c[a] != d && (b[a] = d); - }), - b - ); - }), - (c.prototype.enter = function(b) { - var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); - return ( - c || - ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), - a(b.currentTarget).data("bs." + this.type, c)), - b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), - c.tip().hasClass("in") || "in" == c.hoverState - ? void (c.hoverState = "in") - : (clearTimeout(c.timeout), - (c.hoverState = "in"), - c.options.delay && c.options.delay.show - ? void (c.timeout = setTimeout(function() { - "in" == c.hoverState && c.show(); - }, c.options.delay.show)) - : c.show()) - ); - }), - (c.prototype.isInStateTrue = function() { - for (var a in this.inState) if (this.inState[a]) return !0; - return !1; - }), - (c.prototype.leave = function(b) { - var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); - if ( - (c || - ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), - a(b.currentTarget).data("bs." + this.type, c)), - b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), - !c.isInStateTrue()) - ) - return ( - clearTimeout(c.timeout), - (c.hoverState = "out"), - c.options.delay && c.options.delay.hide - ? void (c.timeout = setTimeout(function() { - "out" == c.hoverState && c.hide(); - }, c.options.delay.hide)) - : c.hide() - ); - }), - (c.prototype.show = function() { - var b = a.Event("show.bs." + this.type); - if (this.hasContent() && this.enabled) { - this.$element.trigger(b); - var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); - if (b.isDefaultPrevented() || !d) return; - var e = this, - f = this.tip(), - g = this.getUID(this.type); - this.setContent(), - f.attr("id", g), - this.$element.attr("aria-describedby", g), - this.options.animation && f.addClass("fade"); - var h = - "function" == typeof this.options.placement - ? this.options.placement.call(this, f[0], this.$element[0]) - : this.options.placement, - i = /\s?auto?\s?/i, - j = i.test(h); - j && (h = h.replace(i, "") || "top"), - f - .detach() - .css({ top: 0, left: 0, display: "block" }) - .addClass(h) - .data("bs." + this.type, this), - this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), - this.$element.trigger("inserted.bs." + this.type); - var k = this.getPosition(), - l = f[0].offsetWidth, - m = f[0].offsetHeight; - if (j) { - var n = h, - o = this.getPosition(this.$viewport); - (h = - "bottom" == h && k.bottom + m > o.bottom - ? "top" - : "top" == h && k.top - m < o.top - ? "bottom" - : "right" == h && k.right + l > o.width - ? "left" - : "left" == h && k.left - l < o.left - ? "right" - : h), - f.removeClass(n).addClass(h); - } - var p = this.getCalculatedOffset(h, k, l, m); - this.applyPlacement(p, h); - var q = function() { - var a = e.hoverState; - e.$element.trigger("shown.bs." + e.type), (e.hoverState = null), "out" == a && e.leave(e); - }; - a.support.transition && this.$tip.hasClass("fade") - ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) - : q(); - } - }), - (c.prototype.applyPlacement = function(b, c) { - var d = this.tip(), - e = d[0].offsetWidth, - f = d[0].offsetHeight, - g = parseInt(d.css("margin-top"), 10), - h = parseInt(d.css("margin-left"), 10); - isNaN(g) && (g = 0), - isNaN(h) && (h = 0), - (b.top += g), - (b.left += h), - a.offset.setOffset( - d[0], - a.extend( - { - using: function(a) { - d.css({ top: Math.round(a.top), left: Math.round(a.left) }); - } - }, - b - ), - 0 - ), - d.addClass("in"); - var i = d[0].offsetWidth, - j = d[0].offsetHeight; - "top" == c && j != f && (b.top = b.top + f - j); - var k = this.getViewportAdjustedDelta(c, b, i, j); - k.left ? (b.left += k.left) : (b.top += k.top); - var l = /top|bottom/.test(c), - m = l ? 2 * k.left - e + i : 2 * k.top - f + j, - n = l ? "offsetWidth" : "offsetHeight"; - d.offset(b), this.replaceArrow(m, d[0][n], l); - }), - (c.prototype.replaceArrow = function(a, b, c) { - this.arrow() - .css(c ? "left" : "top", 50 * (1 - a / b) + "%") - .css(c ? "top" : "left", ""); - }), - (c.prototype.setContent = function() { - var a = this.tip(), - b = this.getTitle(); - a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), - a.removeClass("fade in top bottom left right"); - }), - (c.prototype.hide = function(b) { - function d() { - "in" != e.hoverState && f.detach(), - e.$element && e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), - b && b(); - } - var e = this, - f = a(this.$tip), - g = a.Event("hide.bs." + this.type); - if ((this.$element.trigger(g), !g.isDefaultPrevented())) - return ( - f.removeClass("in"), - a.support.transition && f.hasClass("fade") - ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) - : d(), - (this.hoverState = null), - this - ); - }), - (c.prototype.fixTitle = function() { - var a = this.$element; - (a.attr("title") || "string" != typeof a.attr("data-original-title")) && - a.attr("data-original-title", a.attr("title") || "").attr("title", ""); - }), - (c.prototype.hasContent = function() { - return this.getTitle(); - }), - (c.prototype.getPosition = function(b) { - b = b || this.$element; - var c = b[0], - d = "BODY" == c.tagName, - e = c.getBoundingClientRect(); - null == e.width && (e = a.extend({}, e, { width: e.right - e.left, height: e.bottom - e.top })); - var f = window.SVGElement && c instanceof window.SVGElement, - g = d ? { top: 0, left: 0 } : f ? null : b.offset(), - h = { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() }, - i = d ? { width: a(window).width(), height: a(window).height() } : null; - return a.extend({}, e, h, i, g); - }), - (c.prototype.getCalculatedOffset = function(a, b, c, d) { - return "bottom" == a - ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } - : "top" == a - ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } - : "left" == a - ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } - : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width }; - }), - (c.prototype.getViewportAdjustedDelta = function(a, b, c, d) { - var e = { top: 0, left: 0 }; - if (!this.$viewport) return e; - var f = (this.options.viewport && this.options.viewport.padding) || 0, - g = this.getPosition(this.$viewport); - if (/right|left/.test(a)) { - var h = b.top - f - g.scroll, - i = b.top + f - g.scroll + d; - h < g.top ? (e.top = g.top - h) : i > g.top + g.height && (e.top = g.top + g.height - i); - } else { - var j = b.left - f, - k = b.left + f + c; - j < g.left ? (e.left = g.left - j) : k > g.right && (e.left = g.left + g.width - k); - } - return e; - }), - (c.prototype.getTitle = function() { - var a, - b = this.$element, - c = this.options; - return (a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)); - }), - (c.prototype.getUID = function(a) { - do a += ~~(1e6 * Math.random()); - while (document.getElementById(a)); - return a; - }), - (c.prototype.tip = function() { - if (!this.$tip && ((this.$tip = a(this.options.template)), 1 != this.$tip.length)) - throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); - return this.$tip; - }), - (c.prototype.arrow = function() { - return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")); - }), - (c.prototype.enable = function() { - this.enabled = !0; - }), - (c.prototype.disable = function() { - this.enabled = !1; - }), - (c.prototype.toggleEnabled = function() { - this.enabled = !this.enabled; - }), - (c.prototype.toggle = function(b) { - var c = this; - b && - ((c = a(b.currentTarget).data("bs." + this.type)), - c || - ((c = new this.constructor(b.currentTarget, this.getDelegateOptions())), - a(b.currentTarget).data("bs." + this.type, c))), - b - ? ((c.inState.click = !c.inState.click), c.isInStateTrue() ? c.enter(c) : c.leave(c)) - : c.tip().hasClass("in") - ? c.leave(c) - : c.enter(c); - }), - (c.prototype.destroy = function() { - var a = this; - clearTimeout(this.timeout), - this.hide(function() { - a.$element.off("." + a.type).removeData("bs." + a.type), - a.$tip && a.$tip.detach(), - (a.$tip = null), - (a.$arrow = null), - (a.$viewport = null), - (a.$element = null); - }); - }); - var d = a.fn.tooltip; - (a.fn.tooltip = b), - (a.fn.tooltip.Constructor = c), - (a.fn.tooltip.noConflict = function() { - return (a.fn.tooltip = d), this; - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.popover"), - f = "object" == typeof b && b; - (!e && /destroy|hide/.test(b)) || - (e || d.data("bs.popover", (e = new c(this, f))), "string" == typeof b && e[b]()); - }); - } - var c = function(a, b) { - this.init("popover", a, b); - }; - if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); - (c.VERSION = "3.3.7"), - (c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { - placement: "right", - trigger: "click", - content: "", - template: - '' - })), - (c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)), - (c.prototype.constructor = c), - (c.prototype.getDefaults = function() { - return c.DEFAULTS; - }), - (c.prototype.setContent = function() { - var a = this.tip(), - b = this.getTitle(), - c = this.getContent(); - a.find(".popover-title")[this.options.html ? "html" : "text"](b), - a - .find(".popover-content") - .children() - .detach() - .end() - [this.options.html ? ("string" == typeof c ? "html" : "append") : "text"](c), - a.removeClass("fade top bottom left right in"), - a.find(".popover-title").html() || a.find(".popover-title").hide(); - }), - (c.prototype.hasContent = function() { - return this.getTitle() || this.getContent(); - }), - (c.prototype.getContent = function() { - var a = this.$element, - b = this.options; - return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content); - }), - (c.prototype.arrow = function() { - return (this.$arrow = this.$arrow || this.tip().find(".arrow")); - }); - var d = a.fn.popover; - (a.fn.popover = b), - (a.fn.popover.Constructor = c), - (a.fn.popover.noConflict = function() { - return (a.fn.popover = d), this; - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(c, d) { - (this.$body = a(document.body)), - (this.$scrollElement = a(a(c).is(document.body) ? window : c)), - (this.options = a.extend({}, b.DEFAULTS, d)), - (this.selector = (this.options.target || "") + " .nav li > a"), - (this.offsets = []), - (this.targets = []), - (this.activeTarget = null), - (this.scrollHeight = 0), - this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), - this.refresh(), - this.process(); - } - function c(c) { - return this.each(function() { - var d = a(this), - e = d.data("bs.scrollspy"), - f = "object" == typeof c && c; - e || d.data("bs.scrollspy", (e = new b(this, f))), "string" == typeof c && e[c](); - }); - } - (b.VERSION = "3.3.7"), - (b.DEFAULTS = { offset: 10 }), - (b.prototype.getScrollHeight = function() { - return ( - this.$scrollElement[0].scrollHeight || - Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - ); - }), - (b.prototype.refresh = function() { - var b = this, - c = "offset", - d = 0; - (this.offsets = []), - (this.targets = []), - (this.scrollHeight = this.getScrollHeight()), - a.isWindow(this.$scrollElement[0]) || ((c = "position"), (d = this.$scrollElement.scrollTop())), - this.$body - .find(this.selector) - .map(function() { - var b = a(this), - e = b.data("target") || b.attr("href"), - f = /^#./.test(e) && a(e); - return (f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) || null; - }) - .sort(function(a, b) { - return a[0] - b[0]; - }) - .each(function() { - b.offsets.push(this[0]), b.targets.push(this[1]); - }); - }), - (b.prototype.process = function() { - var a, - b = this.$scrollElement.scrollTop() + this.options.offset, - c = this.getScrollHeight(), - d = this.options.offset + c - this.$scrollElement.height(), - e = this.offsets, - f = this.targets, - g = this.activeTarget; - if ((this.scrollHeight != c && this.refresh(), b >= d)) return g != (a = f[f.length - 1]) && this.activate(a); - if (g && b < e[0]) return (this.activeTarget = null), this.clear(); - for (a = e.length; a--; ) - g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]); - }), - (b.prototype.activate = function(b) { - (this.activeTarget = b), this.clear(); - var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', - d = a(c) - .parents("li") - .addClass("active"); - d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), - d.trigger("activate.bs.scrollspy"); - }), - (b.prototype.clear = function() { - a(this.selector) - .parentsUntil(this.options.target, ".active") - .removeClass("active"); - }); - var d = a.fn.scrollspy; - (a.fn.scrollspy = c), - (a.fn.scrollspy.Constructor = b), - (a.fn.scrollspy.noConflict = function() { - return (a.fn.scrollspy = d), this; - }), - a(window).on("load.bs.scrollspy.data-api", function() { - a('[data-spy="scroll"]').each(function() { - var b = a(this); - c.call(b, b.data()); - }); - }); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.tab"); - e || d.data("bs.tab", (e = new c(this))), "string" == typeof b && e[b](); - }); - } - var c = function(b) { - this.element = a(b); - }; - (c.VERSION = "3.3.7"), - (c.TRANSITION_DURATION = 150), - (c.prototype.show = function() { - var b = this.element, - c = b.closest("ul:not(.dropdown-menu)"), - d = b.data("target"); - if ( - (d || ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))), !b.parent("li").hasClass("active")) - ) { - var e = c.find(".active:last a"), - f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), - g = a.Event("show.bs.tab", { relatedTarget: e[0] }); - if ((e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented())) { - var h = a(d); - this.activate(b.closest("li"), c), - this.activate(h, h.parent(), function() { - e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), - b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }); - }); - } - } - }), - (c.prototype.activate = function(b, d, e) { - function f() { - g - .removeClass("active") - .find("> .dropdown-menu > .active") - .removeClass("active") - .end() - .find('[data-toggle="tab"]') - .attr("aria-expanded", !1), - b - .addClass("active") - .find('[data-toggle="tab"]') - .attr("aria-expanded", !0), - h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), - b.parent(".dropdown-menu").length && - b - .closest("li.dropdown") - .addClass("active") - .end() - .find('[data-toggle="tab"]') - .attr("aria-expanded", !0), - e && e(); - } - var g = d.find("> .active"), - h = e && a.support.transition && ((g.length && g.hasClass("fade")) || !!d.find("> .fade").length); - g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), - g.removeClass("in"); - }); - var d = a.fn.tab; - (a.fn.tab = b), - (a.fn.tab.Constructor = c), - (a.fn.tab.noConflict = function() { - return (a.fn.tab = d), this; - }); - var e = function(c) { - c.preventDefault(), b.call(a(this), "show"); - }; - a(document) - .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) - .on("click.bs.tab.data-api", '[data-toggle="pill"]', e); - })(jQuery), - +(function(a) { - "use strict"; - function b(b) { - return this.each(function() { - var d = a(this), - e = d.data("bs.affix"), - f = "object" == typeof b && b; - e || d.data("bs.affix", (e = new c(this, f))), "string" == typeof b && e[b](); - }); - } - var c = function(b, d) { - (this.options = a.extend({}, c.DEFAULTS, d)), - (this.$target = a(this.options.target) - .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) - .on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this))), - (this.$element = a(b)), - (this.affixed = null), - (this.unpin = null), - (this.pinnedOffset = null), - this.checkPosition(); - }; - (c.VERSION = "3.3.7"), - (c.RESET = "affix affix-top affix-bottom"), - (c.DEFAULTS = { offset: 0, target: window }), - (c.prototype.getState = function(a, b, c, d) { - var e = this.$target.scrollTop(), - f = this.$element.offset(), - g = this.$target.height(); - if (null != c && "top" == this.affixed) return e < c && "top"; - if ("bottom" == this.affixed) - return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(e + g <= a - d) && "bottom"; - var h = null == this.affixed, - i = h ? e : f.top, - j = h ? g : b; - return null != c && e <= c ? "top" : null != d && i + j >= a - d && "bottom"; - }), - (c.prototype.getPinnedOffset = function() { - if (this.pinnedOffset) return this.pinnedOffset; - this.$element.removeClass(c.RESET).addClass("affix"); - var a = this.$target.scrollTop(), - b = this.$element.offset(); - return (this.pinnedOffset = b.top - a); - }), - (c.prototype.checkPositionWithEventLoop = function() { - setTimeout(a.proxy(this.checkPosition, this), 1); - }), - (c.prototype.checkPosition = function() { - if (this.$element.is(":visible")) { - var b = this.$element.height(), - d = this.options.offset, - e = d.top, - f = d.bottom, - g = Math.max(a(document).height(), a(document.body).height()); - "object" != typeof d && (f = e = d), - "function" == typeof e && (e = d.top(this.$element)), - "function" == typeof f && (f = d.bottom(this.$element)); - var h = this.getState(g, b, e, f); - if (this.affixed != h) { - null != this.unpin && this.$element.css("top", ""); - var i = "affix" + (h ? "-" + h : ""), - j = a.Event(i + ".bs.affix"); - if ((this.$element.trigger(j), j.isDefaultPrevented())) return; - (this.affixed = h), - (this.unpin = "bottom" == h ? this.getPinnedOffset() : null), - this.$element - .removeClass(c.RESET) - .addClass(i) - .trigger(i.replace("affix", "affixed") + ".bs.affix"); - } - "bottom" == h && this.$element.offset({ top: g - b - f }); - } - }); - var d = a.fn.affix; - (a.fn.affix = b), - (a.fn.affix.Constructor = c), - (a.fn.affix.noConflict = function() { - return (a.fn.affix = d), this; - }), - a(window).on("load", function() { - a('[data-spy="affix"]').each(function() { - var c = a(this), - d = c.data(); - (d.offset = d.offset || {}), - null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), - null != d.offsetTop && (d.offset.top = d.offsetTop), - b.call(c, d); - }); - }); - })(jQuery); diff --git a/elements/pfelement/demo/js/clipboard.min.js b/elements/pfelement/demo/js/clipboard.min.js deleted file mode 100644 index a71e8d506b..0000000000 --- a/elements/pfelement/demo/js/clipboard.min.js +++ /dev/null @@ -1,543 +0,0 @@ -/*! - * clipboard.js v2.0.1 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!(function(t, e) { - "object" == typeof exports && "object" == typeof module - ? (module.exports = e()) - : "function" == typeof define && define.amd - ? define([], e) - : "object" == typeof exports - ? (exports.ClipboardJS = e()) - : (t.ClipboardJS = e()); -})(this, function() { - return (function(t) { - function e(o) { - if (n[o]) return n[o].exports; - var r = (n[o] = { i: o, l: !1, exports: {} }); - return t[o].call(r.exports, r, r.exports, e), (r.l = !0), r.exports; - } - var n = {}; - return ( - (e.m = t), - (e.c = n), - (e.i = function(t) { - return t; - }), - (e.d = function(t, n, o) { - e.o(t, n) || Object.defineProperty(t, n, { configurable: !1, enumerable: !0, get: o }); - }), - (e.n = function(t) { - var n = - t && t.__esModule - ? function() { - return t.default; - } - : function() { - return t; - }; - return e.d(n, "a", n), n; - }), - (e.o = function(t, e) { - return Object.prototype.hasOwnProperty.call(t, e); - }), - (e.p = ""), - e((e.s = 3)) - ); - })([ - function(t, e, n) { - var o, r, i; - !(function(a, c) { - (r = [t, n(7)]), (o = c), void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i); - })(0, function(t, e) { - "use strict"; - function n(t, e) { - if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); - } - var o = (function(t) { - return t && t.__esModule ? t : { default: t }; - })(e), - r = - "function" == typeof Symbol && "symbol" == typeof Symbol.iterator - ? function(t) { - return typeof t; - } - : function(t) { - return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype - ? "symbol" - : typeof t; - }, - i = (function() { - function t(t, e) { - for (var n = 0; n < e.length; n++) { - var o = e[n]; - (o.enumerable = o.enumerable || !1), - (o.configurable = !0), - "value" in o && (o.writable = !0), - Object.defineProperty(t, o.key, o); - } - } - return function(e, n, o) { - return n && t(e.prototype, n), o && t(e, o), e; - }; - })(), - a = (function() { - function t(e) { - n(this, t), this.resolveOptions(e), this.initSelection(); - } - return ( - i(t, [ - { - key: "resolveOptions", - value: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - (this.action = t.action), - (this.container = t.container), - (this.emitter = t.emitter), - (this.target = t.target), - (this.text = t.text), - (this.trigger = t.trigger), - (this.selectedText = ""); - } - }, - { - key: "initSelection", - value: function() { - this.text ? this.selectFake() : this.target && this.selectTarget(); - } - }, - { - key: "selectFake", - value: function() { - var t = this, - e = "rtl" == document.documentElement.getAttribute("dir"); - this.removeFake(), - (this.fakeHandlerCallback = function() { - return t.removeFake(); - }), - (this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0), - (this.fakeElem = document.createElement("textarea")), - (this.fakeElem.style.fontSize = "12pt"), - (this.fakeElem.style.border = "0"), - (this.fakeElem.style.padding = "0"), - (this.fakeElem.style.margin = "0"), - (this.fakeElem.style.position = "absolute"), - (this.fakeElem.style[e ? "right" : "left"] = "-9999px"); - var n = window.pageYOffset || document.documentElement.scrollTop; - (this.fakeElem.style.top = n + "px"), - this.fakeElem.setAttribute("readonly", ""), - (this.fakeElem.value = this.text), - this.container.appendChild(this.fakeElem), - (this.selectedText = (0, o.default)(this.fakeElem)), - this.copyText(); - } - }, - { - key: "removeFake", - value: function() { - this.fakeHandler && - (this.container.removeEventListener("click", this.fakeHandlerCallback), - (this.fakeHandler = null), - (this.fakeHandlerCallback = null)), - this.fakeElem && (this.container.removeChild(this.fakeElem), (this.fakeElem = null)); - } - }, - { - key: "selectTarget", - value: function() { - (this.selectedText = (0, o.default)(this.target)), this.copyText(); - } - }, - { - key: "copyText", - value: function() { - var t = void 0; - try { - t = document.execCommand(this.action); - } catch (e) { - t = !1; - } - this.handleResult(t); - } - }, - { - key: "handleResult", - value: function(t) { - this.emitter.emit(t ? "success" : "error", { - action: this.action, - text: this.selectedText, - trigger: this.trigger, - clearSelection: this.clearSelection.bind(this) - }); - } - }, - { - key: "clearSelection", - value: function() { - this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges(); - } - }, - { - key: "destroy", - value: function() { - this.removeFake(); - } - }, - { - key: "action", - set: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy"; - if (((this._action = t), "copy" !== this._action && "cut" !== this._action)) - throw new Error('Invalid "action" value, use either "copy" or "cut"'); - }, - get: function() { - return this._action; - } - }, - { - key: "target", - set: function(t) { - if (void 0 !== t) { - if (!t || "object" !== (void 0 === t ? "undefined" : r(t)) || 1 !== t.nodeType) - throw new Error('Invalid "target" value, use a valid Element'); - if ("copy" === this.action && t.hasAttribute("disabled")) - throw new Error( - 'Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute' - ); - if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) - throw new Error( - 'Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes' - ); - this._target = t; - } - }, - get: function() { - return this._target; - } - } - ]), - t - ); - })(); - t.exports = a; - }); - }, - function(t, e, n) { - function o(t, e, n) { - if (!t && !e && !n) throw new Error("Missing required arguments"); - if (!c.string(e)) throw new TypeError("Second argument must be a String"); - if (!c.fn(n)) throw new TypeError("Third argument must be a Function"); - if (c.node(t)) return r(t, e, n); - if (c.nodeList(t)) return i(t, e, n); - if (c.string(t)) return a(t, e, n); - throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); - } - function r(t, e, n) { - return ( - t.addEventListener(e, n), - { - destroy: function() { - t.removeEventListener(e, n); - } - } - ); - } - function i(t, e, n) { - return ( - Array.prototype.forEach.call(t, function(t) { - t.addEventListener(e, n); - }), - { - destroy: function() { - Array.prototype.forEach.call(t, function(t) { - t.removeEventListener(e, n); - }); - } - } - ); - } - function a(t, e, n) { - return u(document.body, t, e, n); - } - var c = n(6), - u = n(5); - t.exports = o; - }, - function(t, e) { - function n() {} - (n.prototype = { - on: function(t, e, n) { - var o = this.e || (this.e = {}); - return (o[t] || (o[t] = [])).push({ fn: e, ctx: n }), this; - }, - once: function(t, e, n) { - function o() { - r.off(t, o), e.apply(n, arguments); - } - var r = this; - return (o._ = e), this.on(t, o, n); - }, - emit: function(t) { - var e = [].slice.call(arguments, 1), - n = ((this.e || (this.e = {}))[t] || []).slice(), - o = 0, - r = n.length; - for (o; o < r; o++) n[o].fn.apply(n[o].ctx, e); - return this; - }, - off: function(t, e) { - var n = this.e || (this.e = {}), - o = n[t], - r = []; - if (o && e) for (var i = 0, a = o.length; i < a; i++) o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); - return r.length ? (n[t] = r) : delete n[t], this; - } - }), - (t.exports = n); - }, - function(t, e, n) { - var o, r, i; - !(function(a, c) { - (r = [t, n(0), n(2), n(1)]), - (o = c), - void 0 !== (i = "function" == typeof o ? o.apply(e, r) : o) && (t.exports = i); - })(0, function(t, e, n, o) { - "use strict"; - function r(t) { - return t && t.__esModule ? t : { default: t }; - } - function i(t, e) { - if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); - } - function a(t, e) { - if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return !e || ("object" != typeof e && "function" != typeof e) ? t : e; - } - function c(t, e) { - if ("function" != typeof e && null !== e) - throw new TypeError("Super expression must either be null or a function, not " + typeof e); - (t.prototype = Object.create(e && e.prototype, { - constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } - })), - e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)); - } - function u(t, e) { - var n = "data-clipboard-" + t; - if (e.hasAttribute(n)) return e.getAttribute(n); - } - var l = r(e), - s = r(n), - f = r(o), - d = - "function" == typeof Symbol && "symbol" == typeof Symbol.iterator - ? function(t) { - return typeof t; - } - : function(t) { - return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype - ? "symbol" - : typeof t; - }, - h = (function() { - function t(t, e) { - for (var n = 0; n < e.length; n++) { - var o = e[n]; - (o.enumerable = o.enumerable || !1), - (o.configurable = !0), - "value" in o && (o.writable = !0), - Object.defineProperty(t, o.key, o); - } - } - return function(e, n, o) { - return n && t(e.prototype, n), o && t(e, o), e; - }; - })(), - p = (function(t) { - function e(t, n) { - i(this, e); - var o = a(this, (e.__proto__ || Object.getPrototypeOf(e)).call(this)); - return o.resolveOptions(n), o.listenClick(t), o; - } - return ( - c(e, t), - h( - e, - [ - { - key: "resolveOptions", - value: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - (this.action = "function" == typeof t.action ? t.action : this.defaultAction), - (this.target = "function" == typeof t.target ? t.target : this.defaultTarget), - (this.text = "function" == typeof t.text ? t.text : this.defaultText), - (this.container = "object" === d(t.container) ? t.container : document.body); - } - }, - { - key: "listenClick", - value: function(t) { - var e = this; - this.listener = (0, f.default)(t, "click", function(t) { - return e.onClick(t); - }); - } - }, - { - key: "onClick", - value: function(t) { - var e = t.delegateTarget || t.currentTarget; - this.clipboardAction && (this.clipboardAction = null), - (this.clipboardAction = new l.default({ - action: this.action(e), - target: this.target(e), - text: this.text(e), - container: this.container, - trigger: e, - emitter: this - })); - } - }, - { - key: "defaultAction", - value: function(t) { - return u("action", t); - } - }, - { - key: "defaultTarget", - value: function(t) { - var e = u("target", t); - if (e) return document.querySelector(e); - } - }, - { - key: "defaultText", - value: function(t) { - return u("text", t); - } - }, - { - key: "destroy", - value: function() { - this.listener.destroy(), - this.clipboardAction && (this.clipboardAction.destroy(), (this.clipboardAction = null)); - } - } - ], - [ - { - key: "isSupported", - value: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], - e = "string" == typeof t ? [t] : t, - n = !!document.queryCommandSupported; - return ( - e.forEach(function(t) { - n = n && !!document.queryCommandSupported(t); - }), - n - ); - } - } - ] - ), - e - ); - })(s.default); - t.exports = p; - }); - }, - function(t, e) { - function n(t, e) { - for (; t && t.nodeType !== o; ) { - if ("function" == typeof t.matches && t.matches(e)) return t; - t = t.parentNode; - } - } - var o = 9; - if ("undefined" != typeof Element && !Element.prototype.matches) { - var r = Element.prototype; - r.matches = - r.matchesSelector || - r.mozMatchesSelector || - r.msMatchesSelector || - r.oMatchesSelector || - r.webkitMatchesSelector; - } - t.exports = n; - }, - function(t, e, n) { - function o(t, e, n, o, r) { - var a = i.apply(this, arguments); - return ( - t.addEventListener(n, a, r), - { - destroy: function() { - t.removeEventListener(n, a, r); - } - } - ); - } - function r(t, e, n, r, i) { - return "function" == typeof t.addEventListener - ? o.apply(null, arguments) - : "function" == typeof n - ? o.bind(null, document).apply(null, arguments) - : ("string" == typeof t && (t = document.querySelectorAll(t)), - Array.prototype.map.call(t, function(t) { - return o(t, e, n, r, i); - })); - } - function i(t, e, n, o) { - return function(n) { - (n.delegateTarget = a(n.target, e)), n.delegateTarget && o.call(t, n); - }; - } - var a = n(4); - t.exports = r; - }, - function(t, e) { - (e.node = function(t) { - return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType; - }), - (e.nodeList = function(t) { - var n = Object.prototype.toString.call(t); - return ( - void 0 !== t && - ("[object NodeList]" === n || "[object HTMLCollection]" === n) && - "length" in t && - (0 === t.length || e.node(t[0])) - ); - }), - (e.string = function(t) { - return "string" == typeof t || t instanceof String; - }), - (e.fn = function(t) { - return "[object Function]" === Object.prototype.toString.call(t); - }); - }, - function(t, e) { - function n(t) { - var e; - if ("SELECT" === t.nodeName) t.focus(), (e = t.value); - else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) { - var n = t.hasAttribute("readonly"); - n || t.setAttribute("readonly", ""), - t.select(), - t.setSelectionRange(0, t.value.length), - n || t.removeAttribute("readonly"), - (e = t.value); - } else { - t.hasAttribute("contenteditable") && t.focus(); - var o = window.getSelection(), - r = document.createRange(); - r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), (e = o.toString()); - } - return e; - } - t.exports = n; - } - ]); -}); diff --git a/elements/pfelement/demo/js/jquery.min.js b/elements/pfelement/demo/js/jquery.min.js deleted file mode 100644 index ae417eb972..0000000000 --- a/elements/pfelement/demo/js/jquery.min.js +++ /dev/null @@ -1,4619 +0,0 @@ -/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!(function(e, t) { - "use strict"; - "object" == typeof module && "object" == typeof module.exports - ? (module.exports = e.document - ? t(e, !0) - : function(e) { - if (!e.document) throw new Error("jQuery requires a window with a document"); - return t(e); - }) - : t(e); -})("undefined" != typeof window ? window : this, function(e, t) { - "use strict"; - var n = [], - r = e.document, - i = Object.getPrototypeOf, - o = n.slice, - a = n.concat, - s = n.push, - u = n.indexOf, - l = {}, - c = l.toString, - f = l.hasOwnProperty, - p = f.toString, - d = p.call(Object), - h = {}, - g = function e(t) { - return "function" == typeof t && "number" != typeof t.nodeType; - }, - y = function e(t) { - return null != t && t === t.window; - }, - v = { type: !0, src: !0, noModule: !0 }; - function m(e, t, n) { - var i, - o = (t = t || r).createElement("script"); - if (((o.text = e), n)) for (i in v) n[i] && (o[i] = n[i]); - t.head.appendChild(o).parentNode.removeChild(o); - } - function x(e) { - return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e; - } - var b = "3.3.1", - w = function(e, t) { - return new w.fn.init(e, t); - }, - T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - (w.fn = w.prototype = { - jquery: "3.3.1", - constructor: w, - length: 0, - toArray: function() { - return o.call(this); - }, - get: function(e) { - return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]; - }, - pushStack: function(e) { - var t = w.merge(this.constructor(), e); - return (t.prevObject = this), t; - }, - each: function(e) { - return w.each(this, e); - }, - map: function(e) { - return this.pushStack( - w.map(this, function(t, n) { - return e.call(t, n, t); - }) - ); - }, - slice: function() { - return this.pushStack(o.apply(this, arguments)); - }, - first: function() { - return this.eq(0); - }, - last: function() { - return this.eq(-1); - }, - eq: function(e) { - var t = this.length, - n = +e + (e < 0 ? t : 0); - return this.pushStack(n >= 0 && n < t ? [this[n]] : []); - }, - end: function() { - return this.prevObject || this.constructor(); - }, - push: s, - sort: n.sort, - splice: n.splice - }), - (w.extend = w.fn.extend = function() { - var e, - t, - n, - r, - i, - o, - a = arguments[0] || {}, - s = 1, - u = arguments.length, - l = !1; - for ( - "boolean" == typeof a && ((l = a), (a = arguments[s] || {}), s++), - "object" == typeof a || g(a) || (a = {}), - s === u && ((a = this), s--); - s < u; - s++ - ) - if (null != (e = arguments[s])) - for (t in e) - (n = a[t]), - a !== (r = e[t]) && - (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) - ? (i ? ((i = !1), (o = n && Array.isArray(n) ? n : [])) : (o = n && w.isPlainObject(n) ? n : {}), - (a[t] = w.extend(l, o, r))) - : void 0 !== r && (a[t] = r)); - return a; - }), - w.extend({ - expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), - isReady: !0, - error: function(e) { - throw new Error(e); - }, - noop: function() {}, - isPlainObject: function(e) { - var t, n; - return ( - !(!e || "[object Object]" !== c.call(e)) && - (!(t = i(e)) || ("function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d)) - ); - }, - isEmptyObject: function(e) { - var t; - for (t in e) return !1; - return !0; - }, - globalEval: function(e) { - m(e); - }, - each: function(e, t) { - var n, - r = 0; - if (C(e)) { - for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break; - } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; - return e; - }, - trim: function(e) { - return null == e ? "" : (e + "").replace(T, ""); - }, - makeArray: function(e, t) { - var n = t || []; - return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n; - }, - inArray: function(e, t, n) { - return null == t ? -1 : u.call(t, e, n); - }, - merge: function(e, t) { - for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; - return (e.length = i), e; - }, - grep: function(e, t, n) { - for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) (r = !t(e[o], o)) !== s && i.push(e[o]); - return i; - }, - map: function(e, t, n) { - var r, - i, - o = 0, - s = []; - if (C(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && s.push(i); - else for (o in e) null != (i = t(e[o], o, n)) && s.push(i); - return a.apply([], s); - }, - guid: 1, - support: h - }), - "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), - w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) { - l["[object " + t + "]"] = t.toLowerCase(); - }); - function C(e) { - var t = !!e && "length" in e && e.length, - n = x(e); - return !g(e) && !y(e) && ("array" === n || 0 === t || ("number" == typeof t && t > 0 && t - 1 in e)); - } - var E = (function(e) { - var t, - n, - r, - i, - o, - a, - s, - u, - l, - c, - f, - p, - d, - h, - g, - y, - v, - m, - x, - b = "sizzle" + 1 * new Date(), - w = e.document, - T = 0, - C = 0, - E = ae(), - k = ae(), - S = ae(), - D = function(e, t) { - return e === t && (f = !0), 0; - }, - N = {}.hasOwnProperty, - A = [], - j = A.pop, - q = A.push, - L = A.push, - H = A.slice, - O = function(e, t) { - for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; - return -1; - }, - P = - "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - M = "[\\x20\\t\\r\\n\\f]", - R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - I = - "\\[" + - M + - "*(" + - R + - ")(?:" + - M + - "*([*^$|!~]?=)" + - M + - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + - R + - "))|)" + - M + - "*\\]", - W = - ":(" + - R + - ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + - I + - ")*)|.*)\\)|)", - $ = new RegExp(M + "+", "g"), - B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), - F = new RegExp("^" + M + "*," + M + "*"), - _ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), - z = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), - X = new RegExp(W), - U = new RegExp("^" + R + "$"), - V = { - ID: new RegExp("^#(" + R + ")"), - CLASS: new RegExp("^\\.(" + R + ")"), - TAG: new RegExp("^(" + R + "|[*])"), - ATTR: new RegExp("^" + I), - PSEUDO: new RegExp("^" + W), - 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("^(?:" + P + ")$", "i"), - needsContext: new RegExp( - "^" + - M + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - M + - "*((?:-\\d)?\\d*)" + - M + - "*\\)|)(?=[^-]|$)", - "i" - ) - }, - G = /^(?:input|select|textarea|button)$/i, - Y = /^h\d$/i, - Q = /^[^{]+\{\s*\[native \w/, - J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - K = /[+~]/, - Z = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), - ee = function(e, t, n) { - var r = "0x" + t - 65536; - return r !== r || n - ? t - : r < 0 - ? String.fromCharCode(r + 65536) - : String.fromCharCode((r >> 10) | 55296, (1023 & r) | 56320); - }, - te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - ne = function(e, t) { - return t - ? "\0" === e - ? "\ufffd" - : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " - : "\\" + e; - }, - re = function() { - p(); - }, - ie = me( - function(e) { - return !0 === e.disabled && ("form" in e || "label" in e); - }, - { dir: "parentNode", next: "legend" } - ); - try { - L.apply((A = H.call(w.childNodes)), w.childNodes), A[w.childNodes.length].nodeType; - } catch (e) { - L = { - apply: A.length - ? function(e, t) { - q.apply(e, H.call(t)); - } - : function(e, t) { - var n = e.length, - r = 0; - while ((e[n++] = t[r++])); - e.length = n - 1; - } - }; - } - function oe(e, t, r, i) { - var o, - s, - l, - c, - f, - h, - v, - m = t && t.ownerDocument, - T = t ? t.nodeType : 9; - if (((r = r || []), "string" != typeof e || !e || (1 !== T && 9 !== T && 11 !== T))) return r; - if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), (t = t || d), g)) { - if (11 !== T && (f = J.exec(e))) - if ((o = f[1])) { - if (9 === T) { - if (!(l = t.getElementById(o))) return r; - if (l.id === o) return r.push(l), r; - } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r; - } else { - if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r; - if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) - return L.apply(r, t.getElementsByClassName(o)), r; - } - if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { - if (1 !== T) (m = t), (v = e); - else if ("object" !== t.nodeName.toLowerCase()) { - (c = t.getAttribute("id")) ? (c = c.replace(te, ne)) : t.setAttribute("id", (c = b)), - (s = (h = a(e)).length); - while (s--) h[s] = "#" + c + " " + ve(h[s]); - (v = h.join(",")), (m = (K.test(e) && ge(t.parentNode)) || t); - } - if (v) - try { - return L.apply(r, m.querySelectorAll(v)), r; - } catch (e) { - } finally { - c === b && t.removeAttribute("id"); - } - } - } - return u(e.replace(B, "$1"), t, r, i); - } - function ae() { - var e = []; - function t(n, i) { - return e.push(n + " ") > r.cacheLength && delete t[e.shift()], (t[n + " "] = i); - } - return t; - } - function se(e) { - return (e[b] = !0), e; - } - function ue(e) { - var t = d.createElement("fieldset"); - try { - return !!e(t); - } catch (e) { - return !1; - } finally { - t.parentNode && t.parentNode.removeChild(t), (t = null); - } - } - function le(e, t) { - var n = e.split("|"), - i = n.length; - while (i--) r.attrHandle[n[i]] = t; - } - function ce(e, t) { - var n = t && e, - r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; - if (r) return r; - if (n) while ((n = n.nextSibling)) if (n === t) return -1; - return e ? 1 : -1; - } - function fe(e) { - return function(t) { - return "input" === t.nodeName.toLowerCase() && t.type === e; - }; - } - function pe(e) { - return function(t) { - var n = t.nodeName.toLowerCase(); - return ("input" === n || "button" === n) && t.type === e; - }; - } - function de(e) { - return function(t) { - return "form" in t - ? t.parentNode && !1 === t.disabled - ? "label" in t - ? "label" in t.parentNode - ? t.parentNode.disabled === e - : t.disabled === e - : t.isDisabled === e || (t.isDisabled !== !e && ie(t) === e) - : t.disabled === e - : "label" in t && t.disabled === e; - }; - } - function he(e) { - return se(function(t) { - return ( - (t = +t), - se(function(n, r) { - var i, - o = e([], n.length, t), - a = o.length; - while (a--) n[(i = o[a])] && (n[i] = !(r[i] = n[i])); - }) - ); - }); - } - function ge(e) { - return e && "undefined" != typeof e.getElementsByTagName && e; - } - (n = oe.support = {}), - (o = oe.isXML = function(e) { - var t = e && (e.ownerDocument || e).documentElement; - return !!t && "HTML" !== t.nodeName; - }), - (p = oe.setDocument = function(e) { - var t, - i, - a = e ? e.ownerDocument || e : w; - return a !== d && 9 === a.nodeType && a.documentElement - ? ((d = a), - (h = d.documentElement), - (g = !o(d)), - w !== d && - (i = d.defaultView) && - i.top !== i && - (i.addEventListener - ? i.addEventListener("unload", re, !1) - : i.attachEvent && i.attachEvent("onunload", re)), - (n.attributes = ue(function(e) { - return (e.className = "i"), !e.getAttribute("className"); - })), - (n.getElementsByTagName = ue(function(e) { - return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length; - })), - (n.getElementsByClassName = Q.test(d.getElementsByClassName)), - (n.getById = ue(function(e) { - return (h.appendChild(e).id = b), !d.getElementsByName || !d.getElementsByName(b).length; - })), - n.getById - ? ((r.filter.ID = function(e) { - var t = e.replace(Z, ee); - return function(e) { - return e.getAttribute("id") === t; - }; - }), - (r.find.ID = function(e, t) { - if ("undefined" != typeof t.getElementById && g) { - var n = t.getElementById(e); - return n ? [n] : []; - } - })) - : ((r.filter.ID = function(e) { - var t = e.replace(Z, ee); - return function(e) { - var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); - return n && n.value === t; - }; - }), - (r.find.ID = function(e, t) { - if ("undefined" != typeof t.getElementById && g) { - var n, - r, - i, - o = t.getElementById(e); - if (o) { - if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; - (i = t.getElementsByName(e)), (r = 0); - while ((o = i[r++])) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; - } - return []; - } - })), - (r.find.TAG = n.getElementsByTagName - ? function(e, t) { - return "undefined" != typeof t.getElementsByTagName - ? t.getElementsByTagName(e) - : n.qsa - ? t.querySelectorAll(e) - : void 0; - } - : function(e, t) { - var n, - r = [], - i = 0, - o = t.getElementsByTagName(e); - if ("*" === e) { - while ((n = o[i++])) 1 === n.nodeType && r.push(n); - return r; - } - return o; - }), - (r.find.CLASS = - n.getElementsByClassName && - function(e, t) { - if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e); - }), - (v = []), - (y = []), - (n.qsa = Q.test(d.querySelectorAll)) && - (ue(function(e) { - (h.appendChild(e).innerHTML = - ""), - e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), - e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), - e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), - e.querySelectorAll(":checked").length || y.push(":checked"), - e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]"); - }), - ue(function(e) { - e.innerHTML = ""; - var t = d.createElement("input"); - t.setAttribute("type", "hidden"), - e.appendChild(t).setAttribute("name", "D"), - e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), - 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), - (h.appendChild(e).disabled = !0), - 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), - e.querySelectorAll("*,:x"), - y.push(",.*:"); - })), - (n.matchesSelector = Q.test( - (m = - h.matches || - h.webkitMatchesSelector || - h.mozMatchesSelector || - h.oMatchesSelector || - h.msMatchesSelector) - )) && - ue(function(e) { - (n.disconnectedMatch = m.call(e, "*")), m.call(e, "[s!='']:x"), v.push("!=", W); - }), - (y = y.length && new RegExp(y.join("|"))), - (v = v.length && new RegExp(v.join("|"))), - (t = Q.test(h.compareDocumentPosition)), - (x = - t || Q.test(h.contains) - ? function(e, t) { - var n = 9 === e.nodeType ? e.documentElement : e, - r = t && t.parentNode; - return ( - e === r || - !( - !r || - 1 !== r.nodeType || - !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)) - ) - ); - } - : function(e, t) { - if (t) while ((t = t.parentNode)) if (t === e) return !0; - return !1; - }), - (D = t - ? function(e, t) { - if (e === t) return (f = !0), 0; - var r = !e.compareDocumentPosition - !t.compareDocumentPosition; - return ( - r || - (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || - (!n.sortDetached && t.compareDocumentPosition(e) === r) - ? e === d || (e.ownerDocument === w && x(w, e)) - ? -1 - : t === d || (t.ownerDocument === w && x(w, t)) - ? 1 - : c - ? O(c, e) - O(c, t) - : 0 - : 4 & r - ? -1 - : 1) - ); - } - : function(e, t) { - if (e === t) return (f = !0), 0; - var n, - r = 0, - i = e.parentNode, - o = t.parentNode, - a = [e], - s = [t]; - if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; - if (i === o) return ce(e, t); - n = e; - while ((n = n.parentNode)) a.unshift(n); - n = t; - while ((n = n.parentNode)) s.unshift(n); - while (a[r] === s[r]) r++; - return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0; - }), - d) - : d; - }), - (oe.matches = function(e, t) { - return oe(e, null, null, t); - }), - (oe.matchesSelector = function(e, t) { - if ( - ((e.ownerDocument || e) !== d && p(e), - (t = t.replace(z, "='$1']")), - n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) - ) - try { - var r = m.call(e, t); - if (r || n.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return r; - } catch (e) {} - return oe(t, d, null, [e]).length > 0; - }), - (oe.contains = function(e, t) { - return (e.ownerDocument || e) !== d && p(e), x(e, t); - }), - (oe.attr = function(e, t) { - (e.ownerDocument || e) !== d && p(e); - var i = r.attrHandle[t.toLowerCase()], - o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; - return void 0 !== o - ? o - : n.attributes || !g - ? e.getAttribute(t) - : (o = e.getAttributeNode(t)) && o.specified - ? o.value - : null; - }), - (oe.escape = function(e) { - return (e + "").replace(te, ne); - }), - (oe.error = function(e) { - throw new Error("Syntax error, unrecognized expression: " + e); - }), - (oe.uniqueSort = function(e) { - var t, - r = [], - i = 0, - o = 0; - if (((f = !n.detectDuplicates), (c = !n.sortStable && e.slice(0)), e.sort(D), f)) { - while ((t = e[o++])) t === e[o] && (i = r.push(o)); - while (i--) e.splice(r[i], 1); - } - return (c = null), e; - }), - (i = oe.getText = function(e) { - var t, - n = "", - r = 0, - o = e.nodeType; - if (o) { - if (1 === o || 9 === o || 11 === o) { - if ("string" == typeof e.textContent) return e.textContent; - for (e = e.firstChild; e; e = e.nextSibling) n += i(e); - } else if (3 === o || 4 === o) return e.nodeValue; - } else while ((t = e[r++])) n += i(t); - return n; - }), - ((r = oe.selectors = { - cacheLength: 50, - createPseudo: se, - match: V, - attrHandle: {}, - find: {}, - relative: { - ">": { dir: "parentNode", first: !0 }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: !0 }, - "~": { dir: "previousSibling" } - }, - preFilter: { - ATTR: function(e) { - return ( - (e[1] = e[1].replace(Z, ee)), - (e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee)), - "~=" === e[2] && (e[3] = " " + e[3] + " "), - e.slice(0, 4) - ); - }, - CHILD: function(e) { - return ( - (e[1] = e[1].toLowerCase()), - "nth" === e[1].slice(0, 3) - ? (e[3] || oe.error(e[0]), - (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3]))), - (e[5] = +(e[7] + e[8] || "odd" === e[3]))) - : e[3] && oe.error(e[0]), - e - ); - }, - PSEUDO: function(e) { - var t, - n = !e[6] && e[2]; - return V.CHILD.test(e[0]) - ? null - : (e[3] - ? (e[2] = e[4] || e[5] || "") - : n && - X.test(n) && - (t = a(n, !0)) && - (t = n.indexOf(")", n.length - t) - n.length) && - ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), - e.slice(0, 3)); - } - }, - filter: { - TAG: function(e) { - var t = e.replace(Z, ee).toLowerCase(); - return "*" === e - ? function() { - return !0; - } - : function(e) { - return e.nodeName && e.nodeName.toLowerCase() === t; - }; - }, - CLASS: function(e) { - var t = E[e + " "]; - return ( - t || - ((t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && - E(e, function(e) { - return t.test( - ("string" == typeof e.className && e.className) || - ("undefined" != typeof e.getAttribute && e.getAttribute("class")) || - "" - ); - })) - ); - }, - ATTR: function(e, t, n) { - return function(r) { - var i = oe.attr(r, e); - return null == i - ? "!=" === t - : !t || - ((i += ""), - "=" === t - ? i === n - : "!=" === t - ? i !== n - : "^=" === t - ? n && 0 === i.indexOf(n) - : "*=" === t - ? n && i.indexOf(n) > -1 - : "$=" === t - ? n && i.slice(-n.length) === n - : "~=" === t - ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 - : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); - }; - }, - CHILD: function(e, t, n, r, i) { - var o = "nth" !== e.slice(0, 3), - a = "last" !== e.slice(-4), - s = "of-type" === t; - return 1 === r && 0 === i - ? function(e) { - return !!e.parentNode; - } - : function(t, n, u) { - var l, - c, - f, - p, - d, - h, - g = o !== a ? "nextSibling" : "previousSibling", - y = t.parentNode, - v = s && t.nodeName.toLowerCase(), - m = !u && !s, - x = !1; - if (y) { - if (o) { - while (g) { - p = t; - while ((p = p[g])) if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; - h = g = "only" === e && !h && "nextSibling"; - } - return !0; - } - if (((h = [a ? y.firstChild : y.lastChild]), a && m)) { - (x = - (d = - (l = - (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === - T && l[1]) && l[2]), - (p = d && y.childNodes[d]); - while ((p = (++d && p && p[g]) || (x = d = 0) || h.pop())) - if (1 === p.nodeType && ++x && p === t) { - c[e] = [T, d, x]; - break; - } - } else if ( - (m && - (x = d = - (l = - (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === - T && l[1]), - !1 === x) - ) - while ((p = (++d && p && p[g]) || (x = d = 0) || h.pop())) - if ( - (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && - ++x && - (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), - p === t) - ) - break; - return (x -= i) === r || (x % r == 0 && x / r >= 0); - } - }; - }, - PSEUDO: function(e, t) { - var n, - i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); - return i[b] - ? i(t) - : i.length > 1 - ? ((n = [e, e, "", t]), - r.setFilters.hasOwnProperty(e.toLowerCase()) - ? se(function(e, n) { - var r, - o = i(e, t), - a = o.length; - while (a--) e[(r = O(e, o[a]))] = !(n[r] = o[a]); - }) - : function(e) { - return i(e, 0, n); - }) - : i; - } - }, - pseudos: { - not: se(function(e) { - var t = [], - n = [], - r = s(e.replace(B, "$1")); - return r[b] - ? se(function(e, t, n, i) { - var o, - a = r(e, null, i, []), - s = e.length; - while (s--) (o = a[s]) && (e[s] = !(t[s] = o)); - }) - : function(e, i, o) { - return (t[0] = e), r(t, null, o, n), (t[0] = null), !n.pop(); - }; - }), - has: se(function(e) { - return function(t) { - return oe(e, t).length > 0; - }; - }), - contains: se(function(e) { - return ( - (e = e.replace(Z, ee)), - function(t) { - return (t.textContent || t.innerText || i(t)).indexOf(e) > -1; - } - ); - }), - lang: se(function(e) { - return ( - U.test(e || "") || oe.error("unsupported lang: " + e), - (e = e.replace(Z, ee).toLowerCase()), - function(t) { - var n; - do { - if ((n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang"))) - return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); - } while ((t = t.parentNode) && 1 === t.nodeType); - return !1; - } - ); - }), - target: function(t) { - var n = e.location && e.location.hash; - return n && n.slice(1) === t.id; - }, - root: function(e) { - return e === h; - }, - focus: function(e) { - return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); - }, - enabled: de(!1), - disabled: de(!0), - checked: function(e) { - var t = e.nodeName.toLowerCase(); - return ("input" === t && !!e.checked) || ("option" === t && !!e.selected); - }, - selected: function(e) { - return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; - }, - empty: function(e) { - for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; - return !0; - }, - parent: function(e) { - return !r.pseudos.empty(e); - }, - header: function(e) { - return Y.test(e.nodeName); - }, - input: function(e) { - return G.test(e.nodeName); - }, - button: function(e) { - var t = e.nodeName.toLowerCase(); - return ("input" === t && "button" === e.type) || "button" === t; - }, - text: function(e) { - var t; - return ( - "input" === e.nodeName.toLowerCase() && - "text" === e.type && - (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) - ); - }, - first: he(function() { - return [0]; - }), - last: he(function(e, t) { - return [t - 1]; - }), - eq: he(function(e, t, n) { - return [n < 0 ? n + t : n]; - }), - even: he(function(e, t) { - for (var n = 0; n < t; n += 2) e.push(n); - return e; - }), - odd: he(function(e, t) { - for (var n = 1; n < t; n += 2) e.push(n); - return e; - }), - lt: he(function(e, t, n) { - for (var r = n < 0 ? n + t : n; --r >= 0; ) e.push(r); - return e; - }), - gt: he(function(e, t, n) { - for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); - return e; - }) - } - }).pseudos.nth = r.pseudos.eq); - for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = fe(t); - for (t in { submit: !0, reset: !0 }) r.pseudos[t] = pe(t); - function ye() {} - (ye.prototype = r.filters = r.pseudos), - (r.setFilters = new ye()), - (a = oe.tokenize = function(e, t) { - var n, - i, - o, - a, - s, - u, - l, - c = k[e + " "]; - if (c) return t ? 0 : c.slice(0); - (s = e), (u = []), (l = r.preFilter); - while (s) { - (n && !(i = F.exec(s))) || (i && (s = s.slice(i[0].length) || s), u.push((o = []))), - (n = !1), - (i = _.exec(s)) && - ((n = i.shift()), o.push({ value: n, type: i[0].replace(B, " ") }), (s = s.slice(n.length))); - for (a in r.filter) - !(i = V[a].exec(s)) || - (l[a] && !(i = l[a](i))) || - ((n = i.shift()), o.push({ value: n, type: a, matches: i }), (s = s.slice(n.length))); - if (!n) break; - } - return t ? s.length : s ? oe.error(e) : k(e, u).slice(0); - }); - function ve(e) { - for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; - return r; - } - function me(e, t, n) { - var r = t.dir, - i = t.next, - o = i || r, - a = n && "parentNode" === o, - s = C++; - return t.first - ? function(t, n, i) { - while ((t = t[r])) if (1 === t.nodeType || a) return e(t, n, i); - return !1; - } - : function(t, n, u) { - var l, - c, - f, - p = [T, s]; - if (u) { - while ((t = t[r])) if ((1 === t.nodeType || a) && e(t, n, u)) return !0; - } else - while ((t = t[r])) - if (1 === t.nodeType || a) - if ( - ((f = t[b] || (t[b] = {})), - (c = f[t.uniqueID] || (f[t.uniqueID] = {})), - i && i === t.nodeName.toLowerCase()) - ) - t = t[r] || t; - else { - if ((l = c[o]) && l[0] === T && l[1] === s) return (p[2] = l[2]); - if (((c[o] = p), (p[2] = e(t, n, u)))) return !0; - } - return !1; - }; - } - function xe(e) { - return e.length > 1 - ? function(t, n, r) { - var i = e.length; - while (i--) if (!e[i](t, n, r)) return !1; - return !0; - } - : e[0]; - } - function be(e, t, n) { - for (var r = 0, i = t.length; r < i; r++) oe(e, t[r], n); - return n; - } - function we(e, t, n, r, i) { - for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) - (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))); - return a; - } - function Te(e, t, n, r, i, o) { - return ( - r && !r[b] && (r = Te(r)), - i && !i[b] && (i = Te(i, o)), - se(function(o, a, s, u) { - var l, - c, - f, - p = [], - d = [], - h = a.length, - g = o || be(t || "*", s.nodeType ? [s] : s, []), - y = !e || (!o && t) ? g : we(g, p, e, s, u), - v = n ? (i || (o ? e : h || r) ? [] : a) : y; - if ((n && n(y, v, s, u), r)) { - (l = we(v, d)), r(l, [], s, u), (c = l.length); - while (c--) (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)); - } - if (o) { - if (i || e) { - if (i) { - (l = []), (c = v.length); - while (c--) (f = v[c]) && l.push((y[c] = f)); - i(null, (v = []), l, u); - } - c = v.length; - while (c--) (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)); - } - } else (v = we(v === a ? v.splice(h, v.length) : v)), i ? i(null, a, v, u) : L.apply(a, v); - }) - ); - } - function Ce(e) { - for ( - var t, - n, - i, - o = e.length, - a = r.relative[e[0].type], - s = a || r.relative[" "], - u = a ? 1 : 0, - c = me( - function(e) { - return e === t; - }, - s, - !0 - ), - f = me( - function(e) { - return O(t, e) > -1; - }, - s, - !0 - ), - p = [ - function(e, n, r) { - var i = (!a && (r || n !== l)) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); - return (t = null), i; - } - ]; - u < o; - u++ - ) - if ((n = r.relative[e[u].type])) p = [me(xe(p), n)]; - else { - if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { - for (i = ++u; i < o; i++) if (r.relative[e[i].type]) break; - return Te( - u > 1 && xe(p), - u > 1 && ve(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace(B, "$1"), - n, - u < i && Ce(e.slice(u, i)), - i < o && Ce((e = e.slice(i))), - i < o && ve(e) - ); - } - p.push(n); - } - return xe(p); - } - function Ee(e, t) { - var n = t.length > 0, - i = e.length > 0, - o = function(o, a, s, u, c) { - var f, - h, - y, - v = 0, - m = "0", - x = o && [], - b = [], - w = l, - C = o || (i && r.find.TAG("*", c)), - E = (T += null == w ? 1 : Math.random() || 0.1), - k = C.length; - for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { - if (i && f) { - (h = 0), a || f.ownerDocument === d || (p(f), (s = !g)); - while ((y = e[h++])) - if (y(f, a || d, s)) { - u.push(f); - break; - } - c && (T = E); - } - n && ((f = !y && f) && v--, o && x.push(f)); - } - if (((v += m), n && m !== v)) { - h = 0; - while ((y = t[h++])) y(x, b, a, s); - if (o) { - if (v > 0) while (m--) x[m] || b[m] || (b[m] = j.call(u)); - b = we(b); - } - L.apply(u, b), c && !o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u); - } - return c && ((T = E), (l = w)), x; - }; - return n ? se(o) : o; - } - return ( - (s = oe.compile = function(e, t) { - var n, - r = [], - i = [], - o = S[e + " "]; - if (!o) { - t || (t = a(e)), (n = t.length); - while (n--) (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); - (o = S(e, Ee(i, r))).selector = e; - } - return o; - }), - (u = oe.select = function(e, t, n, i) { - var o, - u, - l, - c, - f, - p = "function" == typeof e && e, - d = !i && a((e = p.selector || e)); - if (((n = n || []), 1 === d.length)) { - if ( - (u = d[0] = d[0].slice(0)).length > 2 && - "ID" === (l = u[0]).type && - 9 === t.nodeType && - g && - r.relative[u[1].type] - ) { - if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n; - p && (t = t.parentNode), (e = e.slice(u.shift().value.length)); - } - o = V.needsContext.test(e) ? 0 : u.length; - while (o--) { - if (((l = u[o]), r.relative[(c = l.type)])) break; - if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), (K.test(u[0].type) && ge(t.parentNode)) || t))) { - if ((u.splice(o, 1), !(e = i.length && ve(u)))) return L.apply(n, i), n; - break; - } - } - } - return (p || s(e, d))(i, t, !g, n, !t || (K.test(e) && ge(t.parentNode)) || t), n; - }), - (n.sortStable = - b - .split("") - .sort(D) - .join("") === b), - (n.detectDuplicates = !!f), - p(), - (n.sortDetached = ue(function(e) { - return 1 & e.compareDocumentPosition(d.createElement("fieldset")); - })), - ue(function(e) { - return (e.innerHTML = ""), "#" === e.firstChild.getAttribute("href"); - }) || - le("type|href|height|width", function(e, t, n) { - if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); - }), - (n.attributes && - ue(function(e) { - return ( - (e.innerHTML = ""), - e.firstChild.setAttribute("value", ""), - "" === e.firstChild.getAttribute("value") - ); - })) || - le("value", function(e, t, n) { - if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; - }), - ue(function(e) { - return null == e.getAttribute("disabled"); - }) || - le(P, function(e, t, n) { - var r; - if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; - }), - oe - ); - })(e); - (w.find = E), - (w.expr = E.selectors), - (w.expr[":"] = w.expr.pseudos), - (w.uniqueSort = w.unique = E.uniqueSort), - (w.text = E.getText), - (w.isXMLDoc = E.isXML), - (w.contains = E.contains), - (w.escapeSelector = E.escape); - var k = function(e, t, n) { - var r = [], - i = void 0 !== n; - while ((e = e[t]) && 9 !== e.nodeType) - if (1 === e.nodeType) { - if (i && w(e).is(n)) break; - r.push(e); - } - return r; - }, - S = function(e, t) { - for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); - return n; - }, - D = w.expr.match.needsContext; - function N(e, t) { - return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); - } - var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; - function j(e, t, n) { - return g(t) - ? w.grep(e, function(e, r) { - return !!t.call(e, r, e) !== n; - }) - : t.nodeType - ? w.grep(e, function(e) { - return (e === t) !== n; - }) - : "string" != typeof t - ? w.grep(e, function(e) { - return u.call(t, e) > -1 !== n; - }) - : w.filter(t, e, n); - } - (w.filter = function(e, t, n) { - var r = t[0]; - return ( - n && (e = ":not(" + e + ")"), - 1 === t.length && 1 === r.nodeType - ? w.find.matchesSelector(r, e) - ? [r] - : [] - : w.find.matches( - e, - w.grep(t, function(e) { - return 1 === e.nodeType; - }) - ) - ); - }), - w.fn.extend({ - find: function(e) { - var t, - n, - r = this.length, - i = this; - if ("string" != typeof e) - return this.pushStack( - w(e).filter(function() { - for (t = 0; t < r; t++) if (w.contains(i[t], this)) return !0; - }) - ); - for (n = this.pushStack([]), t = 0; t < r; t++) w.find(e, i[t], n); - return r > 1 ? w.uniqueSort(n) : n; - }, - filter: function(e) { - return this.pushStack(j(this, e || [], !1)); - }, - not: function(e) { - return this.pushStack(j(this, e || [], !0)); - }, - is: function(e) { - return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length; - } - }); - var q, - L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; - ((w.fn.init = function(e, t, n) { - var i, o; - if (!e) return this; - if (((n = n || q), "string" == typeof e)) { - if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || (!i[1] && t)) - return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); - if (i[1]) { - if ( - ((t = t instanceof w ? t[0] : t), - w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), - A.test(i[1]) && w.isPlainObject(t)) - ) - for (i in t) g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); - return this; - } - return (o = r.getElementById(i[2])) && ((this[0] = o), (this.length = 1)), this; - } - return e.nodeType - ? ((this[0] = e), (this.length = 1), this) - : g(e) - ? void 0 !== n.ready - ? n.ready(e) - : e(w) - : w.makeArray(e, this); - }).prototype = w.fn), - (q = w(r)); - var H = /^(?:parents|prev(?:Until|All))/, - O = { children: !0, contents: !0, next: !0, prev: !0 }; - w.fn.extend({ - has: function(e) { - var t = w(e, this), - n = t.length; - return this.filter(function() { - for (var e = 0; e < n; e++) if (w.contains(this, t[e])) return !0; - }); - }, - closest: function(e, t) { - var n, - r = 0, - i = this.length, - o = [], - a = "string" != typeof e && w(e); - if (!D.test(e)) - for (; r < i; r++) - for (n = this[r]; n && n !== t; n = n.parentNode) - if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { - o.push(n); - break; - } - return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o); - }, - index: function(e) { - return e - ? "string" == typeof e - ? u.call(w(e), this[0]) - : u.call(this, e.jquery ? e[0] : e) - : this[0] && this[0].parentNode - ? this.first().prevAll().length - : -1; - }, - add: function(e, t) { - return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))); - }, - addBack: function(e) { - return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); - } - }); - function P(e, t) { - while ((e = e[t]) && 1 !== e.nodeType); - return e; - } - w.each( - { - parent: function(e) { - var t = e.parentNode; - return t && 11 !== t.nodeType ? t : null; - }, - parents: function(e) { - return k(e, "parentNode"); - }, - parentsUntil: function(e, t, n) { - return k(e, "parentNode", n); - }, - next: function(e) { - return P(e, "nextSibling"); - }, - prev: function(e) { - return P(e, "previousSibling"); - }, - nextAll: function(e) { - return k(e, "nextSibling"); - }, - prevAll: function(e) { - return k(e, "previousSibling"); - }, - nextUntil: function(e, t, n) { - return k(e, "nextSibling", n); - }, - prevUntil: function(e, t, n) { - return k(e, "previousSibling", n); - }, - siblings: function(e) { - return S((e.parentNode || {}).firstChild, e); - }, - children: function(e) { - return S(e.firstChild); - }, - contents: function(e) { - return N(e, "iframe") - ? e.contentDocument - : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)); - } - }, - function(e, t) { - w.fn[e] = function(n, r) { - var i = w.map(this, t, n); - return ( - "Until" !== e.slice(-5) && (r = n), - r && "string" == typeof r && (i = w.filter(r, i)), - this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), - this.pushStack(i) - ); - }; - } - ); - var M = /[^\x20\t\r\n\f]+/g; - function R(e) { - var t = {}; - return ( - w.each(e.match(M) || [], function(e, n) { - t[n] = !0; - }), - t - ); - } - w.Callbacks = function(e) { - e = "string" == typeof e ? R(e) : w.extend({}, e); - var t, - n, - r, - i, - o = [], - a = [], - s = -1, - u = function() { - for (i = i || e.once, r = t = !0; a.length; s = -1) { - n = a.shift(); - while (++s < o.length) !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && ((s = o.length), (n = !1)); - } - e.memory || (n = !1), (t = !1), i && (o = n ? [] : ""); - }, - l = { - add: function() { - return ( - o && - (n && !t && ((s = o.length - 1), a.push(n)), - (function t(n) { - w.each(n, function(n, r) { - g(r) ? (e.unique && l.has(r)) || o.push(r) : r && r.length && "string" !== x(r) && t(r); - }); - })(arguments), - n && !t && u()), - this - ); - }, - remove: function() { - return ( - w.each(arguments, function(e, t) { - var n; - while ((n = w.inArray(t, o, n)) > -1) o.splice(n, 1), n <= s && s--; - }), - this - ); - }, - has: function(e) { - return e ? w.inArray(e, o) > -1 : o.length > 0; - }, - empty: function() { - return o && (o = []), this; - }, - disable: function() { - return (i = a = []), (o = n = ""), this; - }, - disabled: function() { - return !o; - }, - lock: function() { - return (i = a = []), n || t || (o = n = ""), this; - }, - locked: function() { - return !!i; - }, - fireWith: function(e, n) { - return i || ((n = [e, (n = n || []).slice ? n.slice() : n]), a.push(n), t || u()), this; - }, - fire: function() { - return l.fireWith(this, arguments), this; - }, - fired: function() { - return !!r; - } - }; - return l; - }; - function I(e) { - return e; - } - function W(e) { - throw e; - } - function $(e, t, n, r) { - var i; - try { - e && g((i = e.promise)) - ? i - .call(e) - .done(t) - .fail(n) - : e && g((i = e.then)) - ? i.call(e, t, n) - : t.apply(void 0, [e].slice(r)); - } catch (e) { - n.apply(void 0, [e]); - } - } - w.extend({ - Deferred: function(t) { - var n = [ - ["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2], - ["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"], - ["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"] - ], - r = "pending", - i = { - state: function() { - return r; - }, - always: function() { - return o.done(arguments).fail(arguments), this; - }, - catch: function(e) { - return i.then(null, e); - }, - pipe: function() { - var e = arguments; - return w - .Deferred(function(t) { - w.each(n, function(n, r) { - var i = g(e[r[4]]) && e[r[4]]; - o[r[1]](function() { - var e = i && i.apply(this, arguments); - e && g(e.promise) - ? e - .promise() - .progress(t.notify) - .done(t.resolve) - .fail(t.reject) - : t[r[0] + "With"](this, i ? [e] : arguments); - }); - }), - (e = null); - }) - .promise(); - }, - then: function(t, r, i) { - var o = 0; - function a(t, n, r, i) { - return function() { - var s = this, - u = arguments, - l = function() { - var e, l; - if (!(t < o)) { - if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution"); - (l = e && ("object" == typeof e || "function" == typeof e) && e.then), - g(l) - ? i - ? l.call(e, a(o, n, I, i), a(o, n, W, i)) - : (o++, l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) - : (r !== I && ((s = void 0), (u = [e])), (i || n.resolveWith)(s, u)); - } - }, - c = i - ? l - : function() { - try { - l(); - } catch (e) { - w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), - t + 1 >= o && (r !== W && ((s = void 0), (u = [e])), n.rejectWith(s, u)); - } - }; - t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)); - }; - } - return w - .Deferred(function(e) { - n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), - n[1][3].add(a(0, e, g(t) ? t : I)), - n[2][3].add(a(0, e, g(r) ? r : W)); - }) - .promise(); - }, - promise: function(e) { - return null != e ? w.extend(e, i) : i; - } - }, - o = {}; - return ( - w.each(n, function(e, t) { - var a = t[2], - s = t[5]; - (i[t[1]] = a.add), - s && - a.add( - function() { - r = s; - }, - n[3 - e][2].disable, - n[3 - e][3].disable, - n[0][2].lock, - n[0][3].lock - ), - a.add(t[3].fire), - (o[t[0]] = function() { - return o[t[0] + "With"](this === o ? void 0 : this, arguments), this; - }), - (o[t[0] + "With"] = a.fireWith); - }), - i.promise(o), - t && t.call(o, o), - o - ); - }, - when: function(e) { - var t = arguments.length, - n = t, - r = Array(n), - i = o.call(arguments), - a = w.Deferred(), - s = function(e) { - return function(n) { - (r[e] = this), (i[e] = arguments.length > 1 ? o.call(arguments) : n), --t || a.resolveWith(r, i); - }; - }; - if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) - return a.then(); - while (n--) $(i[n], s(n), a.reject); - return a.promise(); - } - }); - var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - (w.Deferred.exceptionHook = function(t, n) { - e.console && - e.console.warn && - t && - B.test(t.name) && - e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n); - }), - (w.readyException = function(t) { - e.setTimeout(function() { - throw t; - }); - }); - var F = w.Deferred(); - (w.fn.ready = function(e) { - return ( - F.then(e)["catch"](function(e) { - w.readyException(e); - }), - this - ); - }), - w.extend({ - isReady: !1, - readyWait: 1, - ready: function(e) { - (!0 === e ? --w.readyWait : w.isReady) || - ((w.isReady = !0), (!0 !== e && --w.readyWait > 0) || F.resolveWith(r, [w])); - } - }), - (w.ready.then = F.then); - function _() { - r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready(); - } - "complete" === r.readyState || ("loading" !== r.readyState && !r.documentElement.doScroll) - ? e.setTimeout(w.ready) - : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); - var z = function(e, t, n, r, i, o, a) { - var s = 0, - u = e.length, - l = null == n; - if ("object" === x(n)) { - i = !0; - for (s in n) z(e, t, s, n[s], !0, o, a); - } else if ( - void 0 !== r && - ((i = !0), - g(r) || (a = !0), - l && - (a - ? (t.call(e, r), (t = null)) - : ((l = t), - (t = function(e, t, n) { - return l.call(w(e), n); - }))), - t) - ) - for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); - return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; - }, - X = /^-ms-/, - U = /-([a-z])/g; - function V(e, t) { - return t.toUpperCase(); - } - function G(e) { - return e.replace(X, "ms-").replace(U, V); - } - var Y = function(e) { - return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; - }; - function Q() { - this.expando = w.expando + Q.uid++; - } - (Q.uid = 1), - (Q.prototype = { - cache: function(e) { - var t = e[this.expando]; - return ( - t || - ((t = {}), - Y(e) && - (e.nodeType - ? (e[this.expando] = t) - : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), - t - ); - }, - set: function(e, t, n) { - var r, - i = this.cache(e); - if ("string" == typeof t) i[G(t)] = n; - else for (r in t) i[G(r)] = t[r]; - return i; - }, - get: function(e, t) { - return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]; - }, - access: function(e, t, n) { - return void 0 === t || (t && "string" == typeof t && void 0 === n) - ? this.get(e, t) - : (this.set(e, t, n), void 0 !== n ? n : t); - }, - remove: function(e, t) { - var n, - r = e[this.expando]; - if (void 0 !== r) { - if (void 0 !== t) { - n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; - while (n--) delete r[t[n]]; - } - (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); - } - }, - hasData: function(e) { - var t = e[this.expando]; - return void 0 !== t && !w.isEmptyObject(t); - } - }); - var J = new Q(), - K = new Q(), - Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - ee = /[A-Z]/g; - function te(e) { - return ( - "true" === e || ("false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e)) - ); - } - function ne(e, t, n) { - var r; - if (void 0 === n && 1 === e.nodeType) - if (((r = "data-" + t.replace(ee, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(r)))) { - try { - n = te(n); - } catch (e) {} - K.set(e, t, n); - } else n = void 0; - return n; - } - w.extend({ - hasData: function(e) { - return K.hasData(e) || J.hasData(e); - }, - data: function(e, t, n) { - return K.access(e, t, n); - }, - removeData: function(e, t) { - K.remove(e, t); - }, - _data: function(e, t, n) { - return J.access(e, t, n); - }, - _removeData: function(e, t) { - J.remove(e, t); - } - }), - w.fn.extend({ - data: function(e, t) { - var n, - r, - i, - o = this[0], - a = o && o.attributes; - if (void 0 === e) { - if (this.length && ((i = K.get(o)), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { - n = a.length; - while (n--) a[n] && 0 === (r = a[n].name).indexOf("data-") && ((r = G(r.slice(5))), ne(o, r, i[r])); - J.set(o, "hasDataAttrs", !0); - } - return i; - } - return "object" == typeof e - ? this.each(function() { - K.set(this, e); - }) - : z( - this, - function(t) { - var n; - if (o && void 0 === t) { - if (void 0 !== (n = K.get(o, e))) return n; - if (void 0 !== (n = ne(o, e))) return n; - } else - this.each(function() { - K.set(this, e, t); - }); - }, - null, - t, - arguments.length > 1, - null, - !0 - ); - }, - removeData: function(e) { - return this.each(function() { - K.remove(this, e); - }); - } - }), - w.extend({ - queue: function(e, t, n) { - var r; - if (e) - return ( - (t = (t || "fx") + "queue"), - (r = J.get(e, t)), - n && (!r || Array.isArray(n) ? (r = J.access(e, t, w.makeArray(n))) : r.push(n)), - r || [] - ); - }, - dequeue: function(e, t) { - t = t || "fx"; - var n = w.queue(e, t), - r = n.length, - i = n.shift(), - o = w._queueHooks(e, t), - a = function() { - w.dequeue(e, t); - }; - "inprogress" === i && ((i = n.shift()), r--), - i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), - !r && o && o.empty.fire(); - }, - _queueHooks: function(e, t) { - var n = t + "queueHooks"; - return ( - J.get(e, n) || - J.access(e, n, { - empty: w.Callbacks("once memory").add(function() { - J.remove(e, [t + "queue", n]); - }) - }) - ); - } - }), - w.fn.extend({ - queue: function(e, t) { - var n = 2; - return ( - "string" != typeof e && ((t = e), (e = "fx"), n--), - arguments.length < n - ? w.queue(this[0], e) - : void 0 === t - ? this - : this.each(function() { - var n = w.queue(this, e, t); - w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e); - }) - ); - }, - dequeue: function(e) { - return this.each(function() { - w.dequeue(this, e); - }); - }, - clearQueue: function(e) { - return this.queue(e || "fx", []); - }, - promise: function(e, t) { - var n, - r = 1, - i = w.Deferred(), - o = this, - a = this.length, - s = function() { - --r || i.resolveWith(o, [o]); - }; - "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx"); - while (a--) (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); - return s(), i.promise(t); - } - }); - var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), - oe = ["Top", "Right", "Bottom", "Left"], - ae = function(e, t) { - return ( - "none" === (e = t || e).style.display || - ("" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display")) - ); - }, - se = function(e, t, n, r) { - var i, - o, - a = {}; - for (o in t) (a[o] = e.style[o]), (e.style[o] = t[o]); - i = n.apply(e, r || []); - for (o in t) e.style[o] = a[o]; - return i; - }; - function ue(e, t, n, r) { - var i, - o, - a = 20, - s = r - ? function() { - return r.cur(); - } - : function() { - return w.css(e, t, ""); - }, - u = s(), - l = (n && n[3]) || (w.cssNumber[t] ? "" : "px"), - c = (w.cssNumber[t] || ("px" !== l && +u)) && ie.exec(w.css(e, t)); - if (c && c[3] !== l) { - (u /= 2), (l = l || c[3]), (c = +u || 1); - while (a--) w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), (c /= o); - (c *= 2), w.style(e, t, c + l), (n = n || []); - } - return ( - n && - ((c = +c || +u || 0), - (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), - r && ((r.unit = l), (r.start = c), (r.end = i))), - i - ); - } - var le = {}; - function ce(e) { - var t, - n = e.ownerDocument, - r = e.nodeName, - i = le[r]; - return ( - i || - ((t = n.body.appendChild(n.createElement(r))), - (i = w.css(t, "display")), - t.parentNode.removeChild(t), - "none" === i && (i = "block"), - (le[r] = i), - i) - ); - } - function fe(e, t) { - for (var n, r, i = [], o = 0, a = e.length; o < a; o++) - (r = e[o]).style && - ((n = r.style.display), - t - ? ("none" === n && ((i[o] = J.get(r, "display") || null), i[o] || (r.style.display = "")), - "" === r.style.display && ae(r) && (i[o] = ce(r))) - : "none" !== n && ((i[o] = "none"), J.set(r, "display", n))); - for (o = 0; o < a; o++) null != i[o] && (e[o].style.display = i[o]); - return e; - } - w.fn.extend({ - show: function() { - return fe(this, !0); - }, - hide: function() { - return fe(this); - }, - toggle: function(e) { - return "boolean" == typeof e - ? e - ? this.show() - : this.hide() - : this.each(function() { - ae(this) ? w(this).show() : w(this).hide(); - }); - } - }); - var pe = /^(?:checkbox|radio)$/i, - de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, - he = /^$|^module$|\/(?:java|ecma)script/i, - ge = { - option: [1, ""], - thead: [1, "", "
"], - col: [2, "", "
"], - tr: [2, "", "
"], - td: [3, "", "
"], - _default: [0, "", ""] - }; - (ge.optgroup = ge.option), (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead), (ge.th = ge.td); - function ye(e, t) { - var n; - return ( - (n = - "undefined" != typeof e.getElementsByTagName - ? e.getElementsByTagName(t || "*") - : "undefined" != typeof e.querySelectorAll - ? e.querySelectorAll(t || "*") - : []), - void 0 === t || (t && N(e, t)) ? w.merge([e], n) : n - ); - } - function ve(e, t) { - for (var n = 0, r = e.length; n < r; n++) J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")); - } - var me = /<|&#?\w+;/; - function xe(e, t, n, r, i) { - for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) - if ((o = e[d]) || 0 === o) - if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o); - else if (me.test(o)) { - (a = a || f.appendChild(t.createElement("div"))), - (s = (de.exec(o) || ["", ""])[1].toLowerCase()), - (u = ge[s] || ge._default), - (a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2]), - (c = u[0]); - while (c--) a = a.lastChild; - w.merge(p, a.childNodes), ((a = f.firstChild).textContent = ""); - } else p.push(t.createTextNode(o)); - (f.textContent = ""), (d = 0); - while ((o = p[d++])) - if (r && w.inArray(o, r) > -1) i && i.push(o); - else if (((l = w.contains(o.ownerDocument, o)), (a = ye(f.appendChild(o), "script")), l && ve(a), n)) { - c = 0; - while ((o = a[c++])) he.test(o.type || "") && n.push(o); - } - return f; - } - !(function() { - var e = r.createDocumentFragment().appendChild(r.createElement("div")), - t = r.createElement("input"); - t.setAttribute("type", "radio"), - t.setAttribute("checked", "checked"), - t.setAttribute("name", "t"), - e.appendChild(t), - (h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked), - (e.innerHTML = ""), - (h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue); - })(); - var be = r.documentElement, - we = /^key/, - Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - Ce = /^([^.]*)(?:\.(.+)|)/; - function Ee() { - return !0; - } - function ke() { - return !1; - } - function Se() { - try { - return r.activeElement; - } catch (e) {} - } - function De(e, t, n, r, i, o) { - var a, s; - if ("object" == typeof t) { - "string" != typeof n && ((r = r || n), (n = void 0)); - for (s in t) De(e, s, n, r, t[s], o); - return e; - } - if ( - (null == r && null == i - ? ((i = n), (r = n = void 0)) - : null == i && ("string" == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), - !1 === i) - ) - i = ke; - else if (!i) return e; - return ( - 1 === o && - ((a = i), - ((i = function(e) { - return w().off(e), a.apply(this, arguments); - }).guid = a.guid || (a.guid = w.guid++))), - e.each(function() { - w.event.add(this, t, i, r, n); - }) - ); - } - (w.event = { - global: {}, - add: function(e, t, n, r, i) { - var o, - a, - s, - u, - l, - c, - f, - p, - d, - h, - g, - y = J.get(e); - if (y) { - n.handler && ((n = (o = n).handler), (i = o.selector)), - i && w.find.matchesSelector(be, i), - n.guid || (n.guid = w.guid++), - (u = y.events) || (u = y.events = {}), - (a = y.handle) || - (a = y.handle = function(t) { - return "undefined" != typeof w && w.event.triggered !== t.type - ? w.event.dispatch.apply(e, arguments) - : void 0; - }), - (l = (t = (t || "").match(M) || [""]).length); - while (l--) - (d = g = (s = Ce.exec(t[l]) || [])[1]), - (h = (s[2] || "").split(".").sort()), - d && - ((f = w.event.special[d] || {}), - (d = (i ? f.delegateType : f.bindType) || d), - (f = w.event.special[d] || {}), - (c = w.extend( - { - type: d, - origType: g, - data: r, - handler: n, - guid: n.guid, - selector: i, - needsContext: i && w.expr.match.needsContext.test(i), - namespace: h.join(".") - }, - o - )), - (p = u[d]) || - (((p = u[d] = []).delegateCount = 0), - (f.setup && !1 !== f.setup.call(e, r, h, a)) || (e.addEventListener && e.addEventListener(d, a))), - f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), - i ? p.splice(p.delegateCount++, 0, c) : p.push(c), - (w.event.global[d] = !0)); - } - }, - remove: function(e, t, n, r, i) { - var o, - a, - s, - u, - l, - c, - f, - p, - d, - h, - g, - y = J.hasData(e) && J.get(e); - if (y && (u = y.events)) { - l = (t = (t || "").match(M) || [""]).length; - while (l--) - if (((s = Ce.exec(t[l]) || []), (d = g = s[1]), (h = (s[2] || "").split(".").sort()), d)) { - (f = w.event.special[d] || {}), - (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), - (s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")), - (a = o = p.length); - while (o--) - (c = p[o]), - (!i && g !== c.origType) || - (n && n.guid !== c.guid) || - (s && !s.test(c.namespace)) || - (r && r !== c.selector && ("**" !== r || !c.selector)) || - (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); - a && - !p.length && - ((f.teardown && !1 !== f.teardown.call(e, h, y.handle)) || w.removeEvent(e, d, y.handle), delete u[d]); - } else for (d in u) w.event.remove(e, d + t[l], n, r, !0); - w.isEmptyObject(u) && J.remove(e, "handle events"); - } - }, - dispatch: function(e) { - var t = w.event.fix(e), - n, - r, - i, - o, - a, - s, - u = new Array(arguments.length), - l = (J.get(this, "events") || {})[t.type] || [], - c = w.event.special[t.type] || {}; - for (u[0] = t, n = 1; n < arguments.length; n++) u[n] = arguments[n]; - if (((t.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, t))) { - (s = w.event.handlers.call(this, t, l)), (n = 0); - while ((o = s[n++]) && !t.isPropagationStopped()) { - (t.currentTarget = o.elem), (r = 0); - while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) - (t.rnamespace && !t.rnamespace.test(a.namespace)) || - ((t.handleObj = a), - (t.data = a.data), - void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && - !1 === (t.result = i) && - (t.preventDefault(), t.stopPropagation())); - } - return c.postDispatch && c.postDispatch.call(this, t), t.result; - } - }, - handlers: function(e, t) { - var n, - r, - i, - o, - a, - s = [], - u = t.delegateCount, - l = e.target; - if (u && l.nodeType && !("click" === e.type && e.button >= 1)) - for (; l !== this; l = l.parentNode || this) - if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { - for (o = [], a = {}, n = 0; n < u; n++) - void 0 === a[(i = (r = t[n]).selector + " ")] && - (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), - a[i] && o.push(r); - o.length && s.push({ elem: l, handlers: o }); - } - return (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s; - }, - addProp: function(e, t) { - Object.defineProperty(w.Event.prototype, e, { - enumerable: !0, - configurable: !0, - get: g(t) - ? function() { - if (this.originalEvent) return t(this.originalEvent); - } - : function() { - if (this.originalEvent) return this.originalEvent[e]; - }, - set: function(t) { - Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }); - } - }); - }, - fix: function(e) { - return e[w.expando] ? e : new w.Event(e); - }, - special: { - load: { noBubble: !0 }, - focus: { - trigger: function() { - if (this !== Se() && this.focus) return this.focus(), !1; - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if (this === Se() && this.blur) return this.blur(), !1; - }, - delegateType: "focusout" - }, - click: { - trigger: function() { - if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1; - }, - _default: function(e) { - return N(e.target, "a"); - } - }, - beforeunload: { - postDispatch: function(e) { - void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); - } - } - } - }), - (w.removeEvent = function(e, t, n) { - e.removeEventListener && e.removeEventListener(t, n); - }), - (w.Event = function(e, t) { - if (!(this instanceof w.Event)) return new w.Event(e, t); - e && e.type - ? ((this.originalEvent = e), - (this.type = e.type), - (this.isDefaultPrevented = - e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ee : ke), - (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), - (this.currentTarget = e.currentTarget), - (this.relatedTarget = e.relatedTarget)) - : (this.type = e), - t && w.extend(this, t), - (this.timeStamp = (e && e.timeStamp) || Date.now()), - (this[w.expando] = !0); - }), - (w.Event.prototype = { - constructor: w.Event, - isDefaultPrevented: ke, - isPropagationStopped: ke, - isImmediatePropagationStopped: ke, - isSimulated: !1, - preventDefault: function() { - var e = this.originalEvent; - (this.isDefaultPrevented = Ee), e && !this.isSimulated && e.preventDefault(); - }, - stopPropagation: function() { - var e = this.originalEvent; - (this.isPropagationStopped = Ee), e && !this.isSimulated && e.stopPropagation(); - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - (this.isImmediatePropagationStopped = Ee), - e && !this.isSimulated && e.stopImmediatePropagation(), - this.stopPropagation(); - } - }), - w.each( - { - altKey: !0, - bubbles: !0, - cancelable: !0, - changedTouches: !0, - ctrlKey: !0, - detail: !0, - eventPhase: !0, - metaKey: !0, - pageX: !0, - pageY: !0, - shiftKey: !0, - view: !0, - char: !0, - charCode: !0, - key: !0, - keyCode: !0, - button: !0, - buttons: !0, - clientX: !0, - clientY: !0, - offsetX: !0, - offsetY: !0, - pointerId: !0, - pointerType: !0, - screenX: !0, - screenY: !0, - targetTouches: !0, - toElement: !0, - touches: !0, - which: function(e) { - var t = e.button; - return null == e.which && we.test(e.type) - ? null != e.charCode - ? e.charCode - : e.keyCode - : !e.which && void 0 !== t && Te.test(e.type) - ? 1 & t - ? 1 - : 2 & t - ? 3 - : 4 & t - ? 2 - : 0 - : e.which; - } - }, - w.event.addProp - ), - w.each( - { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, - function(e, t) { - w.event.special[e] = { - delegateType: t, - bindType: t, - handle: function(e) { - var n, - r = this, - i = e.relatedTarget, - o = e.handleObj; - return ( - (i && (i === r || w.contains(r, i))) || - ((e.type = o.origType), (n = o.handler.apply(this, arguments)), (e.type = t)), - n - ); - } - }; - } - ), - w.fn.extend({ - on: function(e, t, n, r) { - return De(this, e, t, n, r); - }, - one: function(e, t, n, r) { - return De(this, e, t, n, r, 1); - }, - off: function(e, t, n) { - var r, i; - if (e && e.preventDefault && e.handleObj) - return ( - (r = e.handleObj), - w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), - this - ); - if ("object" == typeof e) { - for (i in e) this.off(i, t, e[i]); - return this; - } - return ( - (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), - !1 === n && (n = ke), - this.each(function() { - w.event.remove(this, e, n, t); - }) - ); - } - }); - var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - Ae = /\s*$/g; - function Le(e, t) { - return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e; - } - function He(e) { - return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; - } - function Oe(e) { - return "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e; - } - function Pe(e, t) { - var n, r, i, o, a, s, u, l; - if (1 === t.nodeType) { - if (J.hasData(e) && ((o = J.access(e)), (a = J.set(t, o)), (l = o.events))) { - delete a.handle, (a.events = {}); - for (i in l) for (n = 0, r = l[i].length; n < r; n++) w.event.add(t, i, l[i][n]); - } - K.hasData(e) && ((s = K.access(e)), (u = w.extend({}, s)), K.set(t, u)); - } - } - function Me(e, t) { - var n = t.nodeName.toLowerCase(); - "input" === n && pe.test(e.type) - ? (t.checked = e.checked) - : ("input" !== n && "textarea" !== n) || (t.defaultValue = e.defaultValue); - } - function Re(e, t, n, r) { - t = a.apply([], t); - var i, - o, - s, - u, - l, - c, - f = 0, - p = e.length, - d = p - 1, - y = t[0], - v = g(y); - if (v || (p > 1 && "string" == typeof y && !h.checkClone && je.test(y))) - return e.each(function(i) { - var o = e.eq(i); - v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r); - }); - if ( - p && - ((i = xe(t, e[0].ownerDocument, !1, e, r)), (o = i.firstChild), 1 === i.childNodes.length && (i = o), o || r) - ) { - for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) - (l = i), f !== d && ((l = w.clone(l, !0, !0)), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); - if (u) - for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) - (l = s[f]), - he.test(l.type || "") && - !J.access(l, "globalEval") && - w.contains(c, l) && - (l.src && "module" !== (l.type || "").toLowerCase() - ? w._evalUrl && w._evalUrl(l.src) - : m(l.textContent.replace(qe, ""), c, l)); - } - return e; - } - function Ie(e, t, n) { - for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) - n || 1 !== r.nodeType || w.cleanData(ye(r)), - r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); - return e; - } - w.extend({ - htmlPrefilter: function(e) { - return e.replace(Ne, "<$1>"); - }, - clone: function(e, t, n) { - var r, - i, - o, - a, - s = e.cloneNode(!0), - u = w.contains(e.ownerDocument, e); - if (!(h.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || w.isXMLDoc(e))) - for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) Me(o[r], a[r]); - if (t) - if (n) for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) Pe(o[r], a[r]); - else Pe(e, s); - return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s; - }, - cleanData: function(e) { - for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) - if (Y(n)) { - if ((t = n[J.expando])) { - if (t.events) for (r in t.events) i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); - n[J.expando] = void 0; - } - n[K.expando] && (n[K.expando] = void 0); - } - } - }), - w.fn.extend({ - detach: function(e) { - return Ie(this, e, !0); - }, - remove: function(e) { - return Ie(this, e); - }, - text: function(e) { - return z( - this, - function(e) { - return void 0 === e - ? w.text(this) - : this.empty().each(function() { - (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e); - }); - }, - null, - e, - arguments.length - ); - }, - append: function() { - return Re(this, arguments, function(e) { - (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || Le(this, e).appendChild(e); - }); - }, - prepend: function() { - return Re(this, arguments, function(e) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var t = Le(this, e); - t.insertBefore(e, t.firstChild); - } - }); - }, - before: function() { - return Re(this, arguments, function(e) { - this.parentNode && this.parentNode.insertBefore(e, this); - }); - }, - after: function() { - return Re(this, arguments, function(e) { - this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); - }); - }, - empty: function() { - for (var e, t = 0; null != (e = this[t]); t++) - 1 === e.nodeType && (w.cleanData(ye(e, !1)), (e.textContent = "")); - return this; - }, - clone: function(e, t) { - return ( - (e = null != e && e), - (t = null == t ? e : t), - this.map(function() { - return w.clone(this, e, t); - }) - ); - }, - html: function(e) { - return z( - this, - function(e) { - var t = this[0] || {}, - n = 0, - r = this.length; - if (void 0 === e && 1 === t.nodeType) return t.innerHTML; - if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { - e = w.htmlPrefilter(e); - try { - for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), (t.innerHTML = e)); - t = 0; - } catch (e) {} - } - t && this.empty().append(e); - }, - null, - e, - arguments.length - ); - }, - replaceWith: function() { - var e = []; - return Re( - this, - arguments, - function(t) { - var n = this.parentNode; - w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)); - }, - e - ); - } - }), - w.each( - { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, - function(e, t) { - w.fn[e] = function(e) { - for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) - (n = a === o ? this : this.clone(!0)), w(i[a])[t](n), s.apply(r, n.get()); - return this.pushStack(r); - }; - } - ); - var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), - $e = function(t) { - var n = t.ownerDocument.defaultView; - return (n && n.opener) || (n = e), n.getComputedStyle(t); - }, - Be = new RegExp(oe.join("|"), "i"); - !(function() { - function t() { - if (c) { - (l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), - (c.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), - be.appendChild(l).appendChild(c); - var t = e.getComputedStyle(c); - (i = "1%" !== t.top), - (u = 12 === n(t.marginLeft)), - (c.style.right = "60%"), - (s = 36 === n(t.right)), - (o = 36 === n(t.width)), - (c.style.position = "absolute"), - (a = 36 === c.offsetWidth || "absolute"), - be.removeChild(l), - (c = null); - } - } - function n(e) { - return Math.round(parseFloat(e)); - } - var i, - o, - a, - s, - u, - l = r.createElement("div"), - c = r.createElement("div"); - c.style && - ((c.style.backgroundClip = "content-box"), - (c.cloneNode(!0).style.backgroundClip = ""), - (h.clearCloneStyle = "content-box" === c.style.backgroundClip), - w.extend(h, { - boxSizingReliable: function() { - return t(), o; - }, - pixelBoxStyles: function() { - return t(), s; - }, - pixelPosition: function() { - return t(), i; - }, - reliableMarginLeft: function() { - return t(), u; - }, - scrollboxSize: function() { - return t(), a; - } - })); - })(); - function Fe(e, t, n) { - var r, - i, - o, - a, - s = e.style; - return ( - (n = n || $e(e)) && - ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), - !h.pixelBoxStyles() && - We.test(a) && - Be.test(t) && - ((r = s.width), - (i = s.minWidth), - (o = s.maxWidth), - (s.minWidth = s.maxWidth = s.width = a), - (a = n.width), - (s.width = r), - (s.minWidth = i), - (s.maxWidth = o))), - void 0 !== a ? a + "" : a - ); - } - function _e(e, t) { - return { - get: function() { - if (!e()) return (this.get = t).apply(this, arguments); - delete this.get; - } - }; - } - var ze = /^(none|table(?!-c[ea]).+)/, - Xe = /^--/, - Ue = { position: "absolute", visibility: "hidden", display: "block" }, - Ve = { letterSpacing: "0", fontWeight: "400" }, - Ge = ["Webkit", "Moz", "ms"], - Ye = r.createElement("div").style; - function Qe(e) { - if (e in Ye) return e; - var t = e[0].toUpperCase() + e.slice(1), - n = Ge.length; - while (n--) if ((e = Ge[n] + t) in Ye) return e; - } - function Je(e) { - var t = w.cssProps[e]; - return t || (t = w.cssProps[e] = Qe(e) || e), t; - } - function Ke(e, t, n) { - var r = ie.exec(t); - return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; - } - function Ze(e, t, n, r, i, o) { - var a = "width" === t ? 1 : 0, - s = 0, - u = 0; - if (n === (r ? "border" : "content")) return 0; - for (; a < 4; a += 2) - "margin" === n && (u += w.css(e, n + oe[a], !0, i)), - r - ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), - "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) - : ((u += w.css(e, "padding" + oe[a], !0, i)), - "padding" !== n - ? (u += w.css(e, "border" + oe[a] + "Width", !0, i)) - : (s += w.css(e, "border" + oe[a] + "Width", !0, i))); - return ( - !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5))), u - ); - } - function et(e, t, n) { - var r = $e(e), - i = Fe(e, t, r), - o = "border-box" === w.css(e, "boxSizing", !1, r), - a = o; - if (We.test(i)) { - if (!n) return i; - i = "auto"; - } - return ( - (a = a && (h.boxSizingReliable() || i === e.style[t])), - ("auto" === i || (!parseFloat(i) && "inline" === w.css(e, "display", !1, r))) && - ((i = e["offset" + t[0].toUpperCase() + t.slice(1)]), (a = !0)), - (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px" - ); - } - w.extend({ - cssHooks: { - opacity: { - get: function(e, t) { - if (t) { - var n = Fe(e, "opacity"); - return "" === n ? "1" : n; - } - } - } - }, - cssNumber: { - animationIterationCount: !0, - columnCount: !0, - fillOpacity: !0, - flexGrow: !0, - flexShrink: !0, - fontWeight: !0, - lineHeight: !0, - opacity: !0, - order: !0, - orphans: !0, - widows: !0, - zIndex: !0, - zoom: !0 - }, - cssProps: {}, - style: function(e, t, n, r) { - if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { - var i, - o, - a, - s = G(t), - u = Xe.test(t), - l = e.style; - if ((u || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]), void 0 === n)) - return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; - "string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && ((n = ue(e, t, i)), (o = "number")), - null != n && - n === n && - ("number" === o && (n += (i && i[3]) || (w.cssNumber[s] ? "" : "px")), - h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), - (a && "set" in a && void 0 === (n = a.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n))); - } - }, - css: function(e, t, n, r) { - var i, - o, - a, - s = G(t); - return ( - Xe.test(t) || (t = Je(s)), - (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), - void 0 === i && (i = Fe(e, t, r)), - "normal" === i && t in Ve && (i = Ve[t]), - "" === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i - ); - } - }), - w.each(["height", "width"], function(e, t) { - w.cssHooks[t] = { - get: function(e, n, r) { - if (n) - return !ze.test(w.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width) - ? et(e, t, r) - : se(e, Ue, function() { - return et(e, t, r); - }); - }, - set: function(e, n, r) { - var i, - o = $e(e), - a = "border-box" === w.css(e, "boxSizing", !1, o), - s = r && Ze(e, t, r, a, o); - return ( - a && - h.scrollboxSize() === o.position && - (s -= Math.ceil( - e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - 0.5 - )), - s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && ((e.style[t] = n), (n = w.css(e, t))), - Ke(e, n, s) - ); - } - }; - }), - (w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function(e, t) { - if (t) - return ( - (parseFloat(Fe(e, "marginLeft")) || - e.getBoundingClientRect().left - - se(e, { marginLeft: 0 }, function() { - return e.getBoundingClientRect().left; - })) + "px" - ); - })), - w.each({ margin: "", padding: "", border: "Width" }, function(e, t) { - (w.cssHooks[e + t] = { - expand: function(n) { - for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) - i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; - return i; - } - }), - "margin" !== e && (w.cssHooks[e + t].set = Ke); - }), - w.fn.extend({ - css: function(e, t) { - return z( - this, - function(e, t, n) { - var r, - i, - o = {}, - a = 0; - if (Array.isArray(t)) { - for (r = $e(e), i = t.length; a < i; a++) o[t[a]] = w.css(e, t[a], !1, r); - return o; - } - return void 0 !== n ? w.style(e, t, n) : w.css(e, t); - }, - e, - t, - arguments.length > 1 - ); - } - }); - function tt(e, t, n, r, i) { - return new tt.prototype.init(e, t, n, r, i); - } - (w.Tween = tt), - (tt.prototype = { - constructor: tt, - init: function(e, t, n, r, i, o) { - (this.elem = e), - (this.prop = n), - (this.easing = i || w.easing._default), - (this.options = t), - (this.start = this.now = this.cur()), - (this.end = r), - (this.unit = o || (w.cssNumber[n] ? "" : "px")); - }, - cur: function() { - var e = tt.propHooks[this.prop]; - return e && e.get ? e.get(this) : tt.propHooks._default.get(this); - }, - run: function(e) { - var t, - n = tt.propHooks[this.prop]; - return ( - this.options.duration - ? (this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) - : (this.pos = t = e), - (this.now = (this.end - this.start) * t + this.start), - this.options.step && this.options.step.call(this.elem, this.now, this), - n && n.set ? n.set(this) : tt.propHooks._default.set(this), - this - ); - } - }), - (tt.prototype.init.prototype = tt.prototype), - (tt.propHooks = { - _default: { - get: function(e) { - var t; - return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) - ? e.elem[e.prop] - : (t = w.css(e.elem, e.prop, "")) && "auto" !== t - ? t - : 0; - }, - set: function(e) { - w.fx.step[e.prop] - ? w.fx.step[e.prop](e) - : 1 !== e.elem.nodeType || (null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop]) - ? (e.elem[e.prop] = e.now) - : w.style(e.elem, e.prop, e.now + e.unit); - } - } - }), - (tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { - set: function(e) { - e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); - } - }), - (w.easing = { - linear: function(e) { - return e; - }, - swing: function(e) { - return 0.5 - Math.cos(e * Math.PI) / 2; - }, - _default: "swing" - }), - (w.fx = tt.prototype.init), - (w.fx.step = {}); - var nt, - rt, - it = /^(?:toggle|show|hide)$/, - ot = /queueHooks$/; - function at() { - rt && - (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), - w.fx.tick()); - } - function st() { - return ( - e.setTimeout(function() { - nt = void 0; - }), - (nt = Date.now()) - ); - } - function ut(e, t) { - var n, - r = 0, - i = { height: e }; - for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = oe[r])] = i["padding" + n] = e; - return t && (i.opacity = i.width = e), i; - } - function lt(e, t, n) { - for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++) - if ((r = i[o].call(n, t, e))) return r; - } - function ct(e, t, n) { - var r, - i, - o, - a, - s, - u, - l, - c, - f = "width" in t || "height" in t, - p = this, - d = {}, - h = e.style, - g = e.nodeType && ae(e), - y = J.get(e, "fxshow"); - n.queue || - (null == (a = w._queueHooks(e, "fx")).unqueued && - ((a.unqueued = 0), - (s = a.empty.fire), - (a.empty.fire = function() { - a.unqueued || s(); - })), - a.unqueued++, - p.always(function() { - p.always(function() { - a.unqueued--, w.queue(e, "fx").length || a.empty.fire(); - }); - })); - for (r in t) - if (((i = t[r]), it.test(i))) { - if ((delete t[r], (o = o || "toggle" === i), i === (g ? "hide" : "show"))) { - if ("show" !== i || !y || void 0 === y[r]) continue; - g = !0; - } - d[r] = (y && y[r]) || w.style(e, r); - } - if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { - f && - 1 === e.nodeType && - ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), - null == (l = y && y.display) && (l = J.get(e, "display")), - "none" === (c = w.css(e, "display")) && - (l ? (c = l) : (fe([e], !0), (l = e.style.display || l), (c = w.css(e, "display")), fe([e]))), - ("inline" === c || ("inline-block" === c && null != l)) && - "none" === w.css(e, "float") && - (u || - (p.done(function() { - h.display = l; - }), - null == l && ((c = h.display), (l = "none" === c ? "" : c))), - (h.display = "inline-block"))), - n.overflow && - ((h.overflow = "hidden"), - p.always(function() { - (h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2]); - })), - (u = !1); - for (r in d) - u || - (y ? "hidden" in y && (g = y.hidden) : (y = J.access(e, "fxshow", { display: l })), - o && (y.hidden = !g), - g && fe([e], !0), - p.done(function() { - g || fe([e]), J.remove(e, "fxshow"); - for (r in d) w.style(e, r, d[r]); - })), - (u = lt(g ? y[r] : 0, r, p)), - r in y || ((y[r] = u.start), g && ((u.end = u.start), (u.start = 0))); - } - } - function ft(e, t) { - var n, r, i, o, a; - for (n in e) - if ( - ((r = G(n)), - (i = t[r]), - (o = e[n]), - Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), - n !== r && ((e[r] = o), delete e[n]), - (a = w.cssHooks[r]) && "expand" in a) - ) { - (o = a.expand(o)), delete e[r]; - for (n in o) n in e || ((e[n] = o[n]), (t[n] = i)); - } else t[r] = i; - } - function pt(e, t, n) { - var r, - i, - o = 0, - a = pt.prefilters.length, - s = w.Deferred().always(function() { - delete u.elem; - }), - u = function() { - if (i) return !1; - for ( - var t = nt || st(), - n = Math.max(0, l.startTime + l.duration - t), - r = 1 - (n / l.duration || 0), - o = 0, - a = l.tweens.length; - o < a; - o++ - ) - l.tweens[o].run(r); - return ( - s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1) - ); - }, - l = s.promise({ - elem: e, - props: w.extend({}, t), - opts: w.extend(!0, { specialEasing: {}, easing: w.easing._default }, n), - originalProperties: t, - originalOptions: n, - startTime: nt || st(), - duration: n.duration, - tweens: [], - createTween: function(t, n) { - var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); - return l.tweens.push(r), r; - }, - stop: function(t) { - var n = 0, - r = t ? l.tweens.length : 0; - if (i) return this; - for (i = !0; n < r; n++) l.tweens[n].run(1); - return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this; - } - }), - c = l.props; - for (ft(c, l.opts.specialEasing); o < a; o++) - if ((r = pt.prefilters[o].call(l, e, c, l.opts))) - return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; - return ( - w.map(c, lt, l), - g(l.opts.start) && l.opts.start.call(e, l), - l - .progress(l.opts.progress) - .done(l.opts.done, l.opts.complete) - .fail(l.opts.fail) - .always(l.opts.always), - w.fx.timer(w.extend(u, { elem: e, anim: l, queue: l.opts.queue })), - l - ); - } - (w.Animation = w.extend(pt, { - tweeners: { - "*": [ - function(e, t) { - var n = this.createTween(e, t); - return ue(n.elem, e, ie.exec(t), n), n; - } - ] - }, - tweener: function(e, t) { - g(e) ? ((t = e), (e = ["*"])) : (e = e.match(M)); - for (var n, r = 0, i = e.length; r < i; r++) - (n = e[r]), (pt.tweeners[n] = pt.tweeners[n] || []), pt.tweeners[n].unshift(t); - }, - prefilters: [ct], - prefilter: function(e, t) { - t ? pt.prefilters.unshift(e) : pt.prefilters.push(e); - } - })), - (w.speed = function(e, t, n) { - var r = - e && "object" == typeof e - ? w.extend({}, e) - : { complete: n || (!n && t) || (g(e) && e), duration: e, easing: (n && t) || (t && !g(t) && t) }; - return ( - w.fx.off - ? (r.duration = 0) - : "number" != typeof r.duration && - (r.duration in w.fx.speeds ? (r.duration = w.fx.speeds[r.duration]) : (r.duration = w.fx.speeds._default)), - (null != r.queue && !0 !== r.queue) || (r.queue = "fx"), - (r.old = r.complete), - (r.complete = function() { - g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue); - }), - r - ); - }), - w.fn.extend({ - fadeTo: function(e, t, n, r) { - return this.filter(ae) - .css("opacity", 0) - .show() - .end() - .animate({ opacity: t }, e, n, r); - }, - animate: function(e, t, n, r) { - var i = w.isEmptyObject(e), - o = w.speed(t, n, r), - a = function() { - var t = pt(this, w.extend({}, e), o); - (i || J.get(this, "finish")) && t.stop(!0); - }; - return (a.finish = a), i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); - }, - stop: function(e, t, n) { - var r = function(e) { - var t = e.stop; - delete e.stop, t(n); - }; - return ( - "string" != typeof e && ((n = t), (t = e), (e = void 0)), - t && !1 !== e && this.queue(e || "fx", []), - this.each(function() { - var t = !0, - i = null != e && e + "queueHooks", - o = w.timers, - a = J.get(this); - if (i) a[i] && a[i].stop && r(a[i]); - else for (i in a) a[i] && a[i].stop && ot.test(i) && r(a[i]); - for (i = o.length; i--; ) - o[i].elem !== this || (null != e && o[i].queue !== e) || (o[i].anim.stop(n), (t = !1), o.splice(i, 1)); - (!t && n) || w.dequeue(this, e); - }) - ); - }, - finish: function(e) { - return ( - !1 !== e && (e = e || "fx"), - this.each(function() { - var t, - n = J.get(this), - r = n[e + "queue"], - i = n[e + "queueHooks"], - o = w.timers, - a = r ? r.length : 0; - for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; ) - o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); - for (t = 0; t < a; t++) r[t] && r[t].finish && r[t].finish.call(this); - delete n.finish; - }) - ); - } - }), - w.each(["toggle", "show", "hide"], function(e, t) { - var n = w.fn[t]; - w.fn[t] = function(e, r, i) { - return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i); - }; - }), - w.each( - { - slideDown: ut("show"), - slideUp: ut("hide"), - slideToggle: ut("toggle"), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } - }, - function(e, t) { - w.fn[e] = function(e, n, r) { - return this.animate(t, e, n, r); - }; - } - ), - (w.timers = []), - (w.fx.tick = function() { - var e, - t = 0, - n = w.timers; - for (nt = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); - n.length || w.fx.stop(), (nt = void 0); - }), - (w.fx.timer = function(e) { - w.timers.push(e), w.fx.start(); - }), - (w.fx.interval = 13), - (w.fx.start = function() { - rt || ((rt = !0), at()); - }), - (w.fx.stop = function() { - rt = null; - }), - (w.fx.speeds = { slow: 600, fast: 200, _default: 400 }), - (w.fn.delay = function(t, n) { - return ( - (t = w.fx ? w.fx.speeds[t] || t : t), - (n = n || "fx"), - this.queue(n, function(n, r) { - var i = e.setTimeout(n, t); - r.stop = function() { - e.clearTimeout(i); - }; - }) - ); - }), - (function() { - var e = r.createElement("input"), - t = r.createElement("select").appendChild(r.createElement("option")); - (e.type = "checkbox"), - (h.checkOn = "" !== e.value), - (h.optSelected = t.selected), - ((e = r.createElement("input")).value = "t"), - (e.type = "radio"), - (h.radioValue = "t" === e.value); - })(); - var dt, - ht = w.expr.attrHandle; - w.fn.extend({ - attr: function(e, t) { - return z(this, w.attr, e, t, arguments.length > 1); - }, - removeAttr: function(e) { - return this.each(function() { - w.removeAttr(this, e); - }); - } - }), - w.extend({ - attr: function(e, t, n) { - var r, - i, - o = e.nodeType; - if (3 !== o && 8 !== o && 2 !== o) - return "undefined" == typeof e.getAttribute - ? w.prop(e, t, n) - : ((1 === o && w.isXMLDoc(e)) || - (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), - void 0 !== n - ? null === n - ? void w.removeAttr(e, t) - : i && "set" in i && void 0 !== (r = i.set(e, n, t)) - ? r - : (e.setAttribute(t, n + ""), n) - : i && "get" in i && null !== (r = i.get(e, t)) - ? r - : null == (r = w.find.attr(e, t)) - ? void 0 - : r); - }, - attrHooks: { - type: { - set: function(e, t) { - if (!h.radioValue && "radio" === t && N(e, "input")) { - var n = e.value; - return e.setAttribute("type", t), n && (e.value = n), t; - } - } - } - }, - removeAttr: function(e, t) { - var n, - r = 0, - i = t && t.match(M); - if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); - } - }), - (dt = { - set: function(e, t, n) { - return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n; - } - }), - w.each(w.expr.match.bool.source.match(/\w+/g), function(e, t) { - var n = ht[t] || w.find.attr; - ht[t] = function(e, t, r) { - var i, - o, - a = t.toLowerCase(); - return r || ((o = ht[a]), (ht[a] = i), (i = null != n(e, t, r) ? a : null), (ht[a] = o)), i; - }; - }); - var gt = /^(?:input|select|textarea|button)$/i, - yt = /^(?:a|area)$/i; - w.fn.extend({ - prop: function(e, t) { - return z(this, w.prop, e, t, arguments.length > 1); - }, - removeProp: function(e) { - return this.each(function() { - delete this[w.propFix[e] || e]; - }); - } - }), - w.extend({ - prop: function(e, t, n) { - var r, - i, - o = e.nodeType; - if (3 !== o && 8 !== o && 2 !== o) - return ( - (1 === o && w.isXMLDoc(e)) || ((t = w.propFix[t] || t), (i = w.propHooks[t])), - void 0 !== n - ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) - ? r - : (e[t] = n) - : i && "get" in i && null !== (r = i.get(e, t)) - ? r - : e[t] - ); - }, - propHooks: { - tabIndex: { - get: function(e) { - var t = w.find.attr(e, "tabindex"); - return t ? parseInt(t, 10) : gt.test(e.nodeName) || (yt.test(e.nodeName) && e.href) ? 0 : -1; - } - } - }, - propFix: { for: "htmlFor", class: "className" } - }), - h.optSelected || - (w.propHooks.selected = { - get: function(e) { - var t = e.parentNode; - return t && t.parentNode && t.parentNode.selectedIndex, null; - }, - set: function(e) { - var t = e.parentNode; - t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); - } - }), - w.each( - [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" - ], - function() { - w.propFix[this.toLowerCase()] = this; - } - ); - function vt(e) { - return (e.match(M) || []).join(" "); - } - function mt(e) { - return (e.getAttribute && e.getAttribute("class")) || ""; - } - function xt(e) { - return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : []; - } - w.fn.extend({ - addClass: function(e) { - var t, - n, - r, - i, - o, - a, - s, - u = 0; - if (g(e)) - return this.each(function(t) { - w(this).addClass(e.call(this, t, mt(this))); - }); - if ((t = xt(e)).length) - while ((n = this[u++])) - if (((i = mt(n)), (r = 1 === n.nodeType && " " + vt(i) + " "))) { - a = 0; - while ((o = t[a++])) r.indexOf(" " + o + " ") < 0 && (r += o + " "); - i !== (s = vt(r)) && n.setAttribute("class", s); - } - return this; - }, - removeClass: function(e) { - var t, - n, - r, - i, - o, - a, - s, - u = 0; - if (g(e)) - return this.each(function(t) { - w(this).removeClass(e.call(this, t, mt(this))); - }); - if (!arguments.length) return this.attr("class", ""); - if ((t = xt(e)).length) - while ((n = this[u++])) - if (((i = mt(n)), (r = 1 === n.nodeType && " " + vt(i) + " "))) { - a = 0; - while ((o = t[a++])) while (r.indexOf(" " + o + " ") > -1) r = r.replace(" " + o + " ", " "); - i !== (s = vt(r)) && n.setAttribute("class", s); - } - return this; - }, - toggleClass: function(e, t) { - var n = typeof e, - r = "string" === n || Array.isArray(e); - return "boolean" == typeof t && r - ? t - ? this.addClass(e) - : this.removeClass(e) - : g(e) - ? this.each(function(n) { - w(this).toggleClass(e.call(this, n, mt(this), t), t); - }) - : this.each(function() { - var t, i, o, a; - if (r) { - (i = 0), (o = w(this)), (a = xt(e)); - while ((t = a[i++])) o.hasClass(t) ? o.removeClass(t) : o.addClass(t); - } else (void 0 !== e && "boolean" !== n) || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || "")); - }); - }, - hasClass: function(e) { - var t, - n, - r = 0; - t = " " + e + " "; - while ((n = this[r++])) if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0; - return !1; - } - }); - var bt = /\r/g; - w.fn.extend({ - val: function(e) { - var t, - n, - r, - i = this[0]; - { - if (arguments.length) - return ( - (r = g(e)), - this.each(function(n) { - var i; - 1 === this.nodeType && - (null == (i = r ? e.call(this, n, w(this).val()) : e) - ? (i = "") - : "number" == typeof i - ? (i += "") - : Array.isArray(i) && - (i = w.map(i, function(e) { - return null == e ? "" : e + ""; - })), - ((t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && - "set" in t && - void 0 !== t.set(this, i, "value")) || - (this.value = i)); - }) - ); - if (i) - return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && - "get" in t && - void 0 !== (n = t.get(i, "value")) - ? n - : "string" == typeof (n = i.value) - ? n.replace(bt, "") - : null == n - ? "" - : n; - } - } - }), - w.extend({ - valHooks: { - option: { - get: function(e) { - var t = w.find.attr(e, "value"); - return null != t ? t : vt(w.text(e)); - } - }, - select: { - get: function(e) { - var t, - n, - r, - i = e.options, - o = e.selectedIndex, - a = "select-one" === e.type, - s = a ? null : [], - u = a ? o + 1 : i.length; - for (r = o < 0 ? u : a ? o : 0; r < u; r++) - if ( - ((n = i[r]).selected || r === o) && - !n.disabled && - (!n.parentNode.disabled || !N(n.parentNode, "optgroup")) - ) { - if (((t = w(n).val()), a)) return t; - s.push(t); - } - return s; - }, - set: function(e, t) { - var n, - r, - i = e.options, - o = w.makeArray(t), - a = i.length; - while (a--) ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); - return n || (e.selectedIndex = -1), o; - } - } - } - }), - w.each(["radio", "checkbox"], function() { - (w.valHooks[this] = { - set: function(e, t) { - if (Array.isArray(t)) return (e.checked = w.inArray(w(e).val(), t) > -1); - } - }), - h.checkOn || - (w.valHooks[this].get = function(e) { - return null === e.getAttribute("value") ? "on" : e.value; - }); - }), - (h.focusin = "onfocusin" in e); - var wt = /^(?:focusinfocus|focusoutblur)$/, - Tt = function(e) { - e.stopPropagation(); - }; - w.extend(w.event, { - trigger: function(t, n, i, o) { - var a, - s, - u, - l, - c, - p, - d, - h, - v = [i || r], - m = f.call(t, "type") ? t.type : t, - x = f.call(t, "namespace") ? t.namespace.split(".") : []; - if ( - ((s = h = u = i = i || r), - 3 !== i.nodeType && - 8 !== i.nodeType && - !wt.test(m + w.event.triggered) && - (m.indexOf(".") > -1 && ((m = (x = m.split(".")).shift()), x.sort()), - (c = m.indexOf(":") < 0 && "on" + m), - (t = t[w.expando] ? t : new w.Event(m, "object" == typeof t && t)), - (t.isTrigger = o ? 2 : 3), - (t.namespace = x.join(".")), - (t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + x.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), - (t.result = void 0), - t.target || (t.target = i), - (n = null == n ? [t] : w.makeArray(n, [t])), - (d = w.event.special[m] || {}), - o || !d.trigger || !1 !== d.trigger.apply(i, n))) - ) { - if (!o && !d.noBubble && !y(i)) { - for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) v.push(s), (u = s); - u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e); - } - a = 0; - while ((s = v[a++]) && !t.isPropagationStopped()) - (h = s), - (t.type = a > 1 ? l : d.bindType || m), - (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), - (p = c && s[c]) && p.apply && Y(s) && ((t.result = p.apply(s, n)), !1 === t.result && t.preventDefault()); - return ( - (t.type = m), - o || - t.isDefaultPrevented() || - (d._default && !1 !== d._default.apply(v.pop(), n)) || - !Y(i) || - (c && - g(i[m]) && - !y(i) && - ((u = i[c]) && (i[c] = null), - (w.event.triggered = m), - t.isPropagationStopped() && h.addEventListener(m, Tt), - i[m](), - t.isPropagationStopped() && h.removeEventListener(m, Tt), - (w.event.triggered = void 0), - u && (i[c] = u))), - t.result - ); - } - }, - simulate: function(e, t, n) { - var r = w.extend(new w.Event(), n, { type: e, isSimulated: !0 }); - w.event.trigger(r, null, t); - } - }), - w.fn.extend({ - trigger: function(e, t) { - return this.each(function() { - w.event.trigger(e, t, this); - }); - }, - triggerHandler: function(e, t) { - var n = this[0]; - if (n) return w.event.trigger(e, t, n, !0); - } - }), - h.focusin || - w.each({ focus: "focusin", blur: "focusout" }, function(e, t) { - var n = function(e) { - w.event.simulate(t, e.target, w.event.fix(e)); - }; - w.event.special[t] = { - setup: function() { - var r = this.ownerDocument || this, - i = J.access(r, t); - i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1); - }, - teardown: function() { - var r = this.ownerDocument || this, - i = J.access(r, t) - 1; - i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)); - } - }; - }); - var Ct = e.location, - Et = Date.now(), - kt = /\?/; - w.parseXML = function(t) { - var n; - if (!t || "string" != typeof t) return null; - try { - n = new e.DOMParser().parseFromString(t, "text/xml"); - } catch (e) { - n = void 0; - } - return (n && !n.getElementsByTagName("parsererror").length) || w.error("Invalid XML: " + t), n; - }; - var St = /\[\]$/, - Dt = /\r?\n/g, - Nt = /^(?:submit|button|image|reset|file)$/i, - At = /^(?:input|select|textarea|keygen)/i; - function jt(e, t, n, r) { - var i; - if (Array.isArray(t)) - w.each(t, function(t, i) { - n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r); - }); - else if (n || "object" !== x(t)) r(e, t); - else for (i in t) jt(e + "[" + i + "]", t[i], n, r); - } - (w.param = function(e, t) { - var n, - r = [], - i = function(e, t) { - var n = g(t) ? t() : t; - r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); - }; - if (Array.isArray(e) || (e.jquery && !w.isPlainObject(e))) - w.each(e, function() { - i(this.name, this.value); - }); - else for (n in e) jt(n, e[n], t, i); - return r.join("&"); - }), - w.fn.extend({ - serialize: function() { - return w.param(this.serializeArray()); - }, - serializeArray: function() { - return this.map(function() { - var e = w.prop(this, "elements"); - return e ? w.makeArray(e) : this; - }) - .filter(function() { - var e = this.type; - return ( - this.name && - !w(this).is(":disabled") && - At.test(this.nodeName) && - !Nt.test(e) && - (this.checked || !pe.test(e)) - ); - }) - .map(function(e, t) { - var n = w(this).val(); - return null == n - ? null - : Array.isArray(n) - ? w.map(n, function(e) { - return { name: t.name, value: e.replace(Dt, "\r\n") }; - }) - : { name: t.name, value: n.replace(Dt, "\r\n") }; - }) - .get(); - } - }); - var qt = /%20/g, - Lt = /#.*$/, - Ht = /([?&])_=[^&]*/, - Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, - Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - Mt = /^(?:GET|HEAD)$/, - Rt = /^\/\//, - It = {}, - Wt = {}, - $t = "*/".concat("*"), - Bt = r.createElement("a"); - Bt.href = Ct.href; - function Ft(e) { - return function(t, n) { - "string" != typeof t && ((n = t), (t = "*")); - var r, - i = 0, - o = t.toLowerCase().match(M) || []; - if (g(n)) - while ((r = o[i++])) - "+" === r[0] ? ((r = r.slice(1) || "*"), (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n); - }; - } - function _t(e, t, n, r) { - var i = {}, - o = e === Wt; - function a(s) { - var u; - return ( - (i[s] = !0), - w.each(e[s] || [], function(e, s) { - var l = s(t, n, r); - return "string" != typeof l || o || i[l] ? (o ? !(u = l) : void 0) : (t.dataTypes.unshift(l), a(l), !1); - }), - u - ); - } - return a(t.dataTypes[0]) || (!i["*"] && a("*")); - } - function zt(e, t) { - var n, - r, - i = w.ajaxSettings.flatOptions || {}; - for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); - return r && w.extend(!0, e, r), e; - } - function Xt(e, t, n) { - var r, - i, - o, - a, - s = e.contents, - u = e.dataTypes; - while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); - if (r) - for (i in s) - if (s[i] && s[i].test(r)) { - u.unshift(i); - break; - } - if (u[0] in n) o = u[0]; - else { - for (i in n) { - if (!u[0] || e.converters[i + " " + u[0]]) { - o = i; - break; - } - a || (a = i); - } - o = o || a; - } - if (o) return o !== u[0] && u.unshift(o), n[o]; - } - function Ut(e, t, n, r) { - var i, - o, - a, - s, - u, - l = {}, - c = e.dataTypes.slice(); - if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; - o = c.shift(); - while (o) - if ( - (e.responseFields[o] && (n[e.responseFields[o]] = t), - !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), - (u = o), - (o = c.shift())) - ) - if ("*" === o) o = u; - else if ("*" !== u && u !== o) { - if (!(a = l[u + " " + o] || l["* " + o])) - for (i in l) - if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { - !0 === a ? (a = l[i]) : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])); - break; - } - if (!0 !== a) - if (a && e["throws"]) t = a(t); - else - try { - t = a(t); - } catch (e) { - return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o }; - } - } - return { state: "success", data: t }; - } - w.extend({ - active: 0, - lastModified: {}, - etag: {}, - ajaxSettings: { - url: Ct.href, - type: "GET", - isLocal: Pt.test(Ct.protocol), - global: !0, - processData: !0, - async: !0, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - accepts: { - "*": $t, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, - responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, - converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": w.parseXML }, - flatOptions: { url: !0, context: !0 } - }, - ajaxSetup: function(e, t) { - return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e); - }, - ajaxPrefilter: Ft(It), - ajaxTransport: Ft(Wt), - ajax: function(t, n) { - "object" == typeof t && ((n = t), (t = void 0)), (n = n || {}); - var i, - o, - a, - s, - u, - l, - c, - f, - p, - d, - h = w.ajaxSetup({}, n), - g = h.context || h, - y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event, - v = w.Deferred(), - m = w.Callbacks("once memory"), - x = h.statusCode || {}, - b = {}, - T = {}, - C = "canceled", - E = { - readyState: 0, - getResponseHeader: function(e) { - var t; - if (c) { - if (!s) { - s = {}; - while ((t = Ot.exec(a))) s[t[1].toLowerCase()] = t[2]; - } - t = s[e.toLowerCase()]; - } - return null == t ? null : t; - }, - getAllResponseHeaders: function() { - return c ? a : null; - }, - setRequestHeader: function(e, t) { - return null == c && ((e = T[e.toLowerCase()] = T[e.toLowerCase()] || e), (b[e] = t)), this; - }, - overrideMimeType: function(e) { - return null == c && (h.mimeType = e), this; - }, - statusCode: function(e) { - var t; - if (e) - if (c) E.always(e[E.status]); - else for (t in e) x[t] = [x[t], e[t]]; - return this; - }, - abort: function(e) { - var t = e || C; - return i && i.abort(t), k(0, t), this; - } - }; - if ( - (v.promise(E), - (h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//")), - (h.type = n.method || n.type || h.method || h.type), - (h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""]), - null == h.crossDomain) - ) { - l = r.createElement("a"); - try { - (l.href = h.url), - (l.href = l.href), - (h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host); - } catch (e) { - h.crossDomain = !0; - } - } - if ( - (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), - _t(It, h, n, E), - c) - ) - return E; - (f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), - (h.type = h.type.toUpperCase()), - (h.hasContent = !Mt.test(h.type)), - (o = h.url.replace(Lt, "")), - h.hasContent - ? h.data && - h.processData && - 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && - (h.data = h.data.replace(qt, "+")) - : ((d = h.url.slice(o.length)), - h.data && - (h.processData || "string" == typeof h.data) && - ((o += (kt.test(o) ? "&" : "?") + h.data), delete h.data), - !1 === h.cache && ((o = o.replace(Ht, "$1")), (d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d)), - (h.url = o + d)), - h.ifModified && - (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), - w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), - ((h.data && h.hasContent && !1 !== h.contentType) || n.contentType) && - E.setRequestHeader("Content-Type", h.contentType), - E.setRequestHeader( - "Accept", - h.dataTypes[0] && h.accepts[h.dataTypes[0]] - ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") - : h.accepts["*"] - ); - for (p in h.headers) E.setRequestHeader(p, h.headers[p]); - if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort(); - if (((C = "abort"), m.add(h.complete), E.done(h.success), E.fail(h.error), (i = _t(Wt, h, n, E)))) { - if (((E.readyState = 1), f && y.trigger("ajaxSend", [E, h]), c)) return E; - h.async && - h.timeout > 0 && - (u = e.setTimeout(function() { - E.abort("timeout"); - }, h.timeout)); - try { - (c = !1), i.send(b, k); - } catch (e) { - if (c) throw e; - k(-1, e); - } - } else k(-1, "No Transport"); - function k(t, n, r, s) { - var l, - p, - d, - b, - T, - C = n; - c || - ((c = !0), - u && e.clearTimeout(u), - (i = void 0), - (a = s || ""), - (E.readyState = t > 0 ? 4 : 0), - (l = (t >= 200 && t < 300) || 304 === t), - r && (b = Xt(h, E, r)), - (b = Ut(h, b, E, l)), - l - ? (h.ifModified && - ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), - (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), - 204 === t || "HEAD" === h.type - ? (C = "nocontent") - : 304 === t - ? (C = "notmodified") - : ((C = b.state), (p = b.data), (l = !(d = b.error)))) - : ((d = C), (!t && C) || ((C = "error"), t < 0 && (t = 0))), - (E.status = t), - (E.statusText = (n || C) + ""), - l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), - E.statusCode(x), - (x = void 0), - f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), - m.fireWith(g, [E, C]), - f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop"))); - } - return E; - }, - getJSON: function(e, t, n) { - return w.get(e, t, n, "json"); - }, - getScript: function(e, t) { - return w.get(e, void 0, t, "script"); - } - }), - w.each(["get", "post"], function(e, t) { - w[t] = function(e, n, r, i) { - return ( - g(n) && ((i = i || r), (r = n), (n = void 0)), - w.ajax(w.extend({ url: e, type: t, dataType: i, data: n, success: r }, w.isPlainObject(e) && e)) - ); - }; - }), - (w._evalUrl = function(e) { - return w.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, throws: !0 }); - }), - w.fn.extend({ - wrapAll: function(e) { - var t; - return ( - this[0] && - (g(e) && (e = e.call(this[0])), - (t = w(e, this[0].ownerDocument) - .eq(0) - .clone(!0)), - this[0].parentNode && t.insertBefore(this[0]), - t - .map(function() { - var e = this; - while (e.firstElementChild) e = e.firstElementChild; - return e; - }) - .append(this)), - this - ); - }, - wrapInner: function(e) { - return g(e) - ? this.each(function(t) { - w(this).wrapInner(e.call(this, t)); - }) - : this.each(function() { - var t = w(this), - n = t.contents(); - n.length ? n.wrapAll(e) : t.append(e); - }); - }, - wrap: function(e) { - var t = g(e); - return this.each(function(n) { - w(this).wrapAll(t ? e.call(this, n) : e); - }); - }, - unwrap: function(e) { - return ( - this.parent(e) - .not("body") - .each(function() { - w(this).replaceWith(this.childNodes); - }), - this - ); - } - }), - (w.expr.pseudos.hidden = function(e) { - return !w.expr.pseudos.visible(e); - }), - (w.expr.pseudos.visible = function(e) { - return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); - }), - (w.ajaxSettings.xhr = function() { - try { - return new e.XMLHttpRequest(); - } catch (e) {} - }); - var Vt = { 0: 200, 1223: 204 }, - Gt = w.ajaxSettings.xhr(); - (h.cors = !!Gt && "withCredentials" in Gt), - (h.ajax = Gt = !!Gt), - w.ajaxTransport(function(t) { - var n, r; - if (h.cors || (Gt && !t.crossDomain)) - return { - send: function(i, o) { - var a, - s = t.xhr(); - if ((s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)) - for (a in t.xhrFields) s[a] = t.xhrFields[a]; - t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), - t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); - for (a in i) s.setRequestHeader(a, i[a]); - (n = function(e) { - return function() { - n && - ((n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null), - "abort" === e - ? s.abort() - : "error" === e - ? "number" != typeof s.status - ? o(0, "error") - : o(s.status, s.statusText) - : o( - Vt[s.status] || s.status, - s.statusText, - "text" !== (s.responseType || "text") || "string" != typeof s.responseText - ? { binary: s.response } - : { text: s.responseText }, - s.getAllResponseHeaders() - )); - }; - }), - (s.onload = n()), - (r = s.onerror = s.ontimeout = n("error")), - void 0 !== s.onabort - ? (s.onabort = r) - : (s.onreadystatechange = function() { - 4 === s.readyState && - e.setTimeout(function() { - n && r(); - }); - }), - (n = n("abort")); - try { - s.send((t.hasContent && t.data) || null); - } catch (e) { - if (n) throw e; - } - }, - abort: function() { - n && n(); - } - }; - }), - w.ajaxPrefilter(function(e) { - e.crossDomain && (e.contents.script = !1); - }), - w.ajaxSetup({ - accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, - contents: { script: /\b(?:java|ecma)script\b/ }, - converters: { - "text script": function(e) { - return w.globalEval(e), e; - } - } - }), - w.ajaxPrefilter("script", function(e) { - void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); - }), - w.ajaxTransport("script", function(e) { - if (e.crossDomain) { - var t, n; - return { - send: function(i, o) { - (t = w(" - - - - - -
-
-
- -
-

Classes

- -
-
-
- -
-
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/elements/pfelement/demo/pfelement.js.html b/elements/pfelement/demo/pfelement.js.html deleted file mode 100644 index 79d01a4878..0000000000 --- a/elements/pfelement/demo/pfelement.js.html +++ /dev/null @@ -1,1336 +0,0 @@ - - - - - - - pfelement.js - - - - - - - - - - - - - - -
-
-
-
-
-
let logger = () => null;
-
-/**
- * Reveal web components when loading is complete by removing the unresolved attribute
- * from the body tag; log the event.
- * @throws debugging log indicating the reveal event
- */
-function reveal() {
-  logger(`[reveal] elements ready, revealing the body`);
-  window.document.body.removeAttribute("unresolved");
-}
-
-/**
- * Auto-reveal functionality prevents a flash of unstyled content before components
- * have finished loading.
- * @param {function} logFunction
- * @see https://github.com/github/webcomponentsjs#webcomponents-loaderjs
- */
-function autoReveal(logFunction) {
-  logger = logFunction;
-  // If Web Components are already ready, run the handler right away.  If they
-  // are not yet ready, wait.
-  //
-  // see https://github.com/github/webcomponentsjs#webcomponents-loaderjs for
-  // info about web component readiness events
-  const polyfillPresent = window.WebComponents;
-  const polyfillReady = polyfillPresent && window.WebComponents.ready;
-
-  if (!polyfillPresent || polyfillReady) {
-    handleWebComponentsReady();
-  } else {
-    window.addEventListener("WebComponentsReady", handleWebComponentsReady);
-  }
-}
-
-/**
- * Reveal web components when loading is complete and log event.
- * @throws debugging log indicating the web components are ready
- */
-function handleWebComponentsReady() {
-  logger("[reveal] web components ready");
-  reveal();
-}
-
-/**
- * Verify that a property definition's `type` field contains one of the allowed
- * types.  If the definition type resolves to falsy, assumes String type.
- * @param {constructor} definition
- * @default String
- * @return {Boolean} True if the definition type is one of String, Number, or Boolean
- */
-function isAllowedType(definition) {
-  return [String, Number, Boolean].includes(definition.type || String);
-}
-
-/**
- * Verify that a property definition's `default` value is of the correct type.
- *
- * A `default` value is valid if it's of the same type as the `type`
- * definition.  Or, if there is no `type` definition, then it must be a String
- * (the default value for `type`).
- * @param {type} definition
- * @return {Boolean} True if the default value matches the type of the definition object.
- */
-function isValidDefaultType(definition) {
-  return definition.hasOwnProperty("default") && definition.default.constructor === definition.type;
-}
-
-// @POLYFILL  Array.includes
-/** @see https://tc39.github.io/ecma262/#sec-array.prototype.includes */
-if (!Array.prototype.includes) {
-  Object.defineProperty(Array.prototype, "includes", {
-    value: function(valueToFind, fromIndex) {
-      if (this == null) {
-        throw new TypeError('"this" is null or not defined');
-      }
-
-      // 1. Let O be ? ToObject(this value).
-      var o = Object(this);
-
-      // 2. Let len be ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
-
-      // 3. If len is 0, return false.
-      if (len === 0) {
-        return false;
-      }
-
-      // 4. Let n be ? ToInteger(fromIndex).
-      //    (If fromIndex is undefined, this step produces the value 0.)
-      var n = fromIndex | 0;
-
-      // 5. If n ≥ 0, then
-      //  a. Let k be n.
-      // 6. Else n < 0,
-      //  a. Let k be len + n.
-      //  b. If k < 0, let k be 0.
-      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-
-      function sameValueZero(x, y) {
-        return x === y || (typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y));
-      }
-
-      // 7. Repeat, while k < len
-      while (k < len) {
-        // a. Let elementK be the result of ? Get(O, ! ToString(k)).
-        // b. If SameValueZero(valueToFind, elementK) is true, return true.
-        if (sameValueZero(o[k], valueToFind)) {
-          return true;
-        }
-        // c. Increase k by 1.
-        k++;
-      }
-
-      // 8. Return false
-      return false;
-    }
-  });
-}
-
-// @POLYFILL Object.entries
-/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries */
-if (!Object.entries) {
-  Object.entries = function(obj) {
-    var ownProps = Object.keys(obj),
-      i = ownProps.length,
-      resArray = new Array(i); // preallocate the Array
-    while (i--) resArray[i] = [ownProps[i], obj[ownProps[i]]];
-
-    return resArray;
-  };
-}
-
-// @POLYFILL String.startsWith
-/** @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith#polyfill */
-if (!String.prototype.startsWith) {
-  Object.defineProperty(String.prototype, "startsWith", {
-    value: function(search, rawPos) {
-      var pos = rawPos > 0 ? rawPos | 0 : 0;
-      return this.substring(pos, pos + search.length) === search;
-    }
-  });
-}
-
-/*!
- * PatternFly Elements: PFElement 1.4.0
- * @license
- * Copyright 2021 Red Hat, Inc.
- * 
- * 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.
- * 
-*/
-
-// /**
-//  * Global prefix used for all components in the project.
-//  * @constant {String}
-//  * */
-const prefix = "pfe";
-
-/**
- * @class PFElement
- * @extends HTMLElement
- * @version 1.4.0
- * @classdesc Serves as the baseline for all PatternFly Element components.
- */
-class PFElement extends HTMLElement {
-  /**
-   * A boolean value that indicates if the logging should be printed to the console; used for debugging.
-   * For use in a JS file or script tag; can also be added in the constructor of a component during development.
-   * @example PFElement._debugLog = true;
-   * @tags debug
-   */
-  static debugLog(preference = null) {
-    if (preference !== null) {
-      PFElement._debugLog = !!preference;
-    }
-    return PFElement._debugLog;
-  }
-
-  /**
-   * A boolean value that indicates if the performance should be tracked.
-   * For use in a JS file or script tag; can also be added in the constructor of a component during development.
-   * @example PFElement._trackPerformance = true;
-   */
-  static trackPerformance(preference = null) {
-    if (preference !== null) {
-      PFElement._trackPerformance = !!preference;
-    }
-    return PFElement._trackPerformance;
-  }
-
-  /**
-   * A logging wrapper which checks the debugLog boolean and prints to the console if true.
-   *
-   * @example PFElement.log("Hello");
-   */
-  static log(...msgs) {
-    if (PFElement.debugLog()) {
-      console.log(...msgs);
-    }
-  }
-
-  /**
-   * Local logging that outputs the tag name as a prefix automatically
-   *
-   * @example this.log("Hello");
-   */
-  log(...msgs) {
-    PFElement.log(`[${this.tag}${this.id ? `#${this.id}` : ""}]: ${msgs.join(", ")}`);
-  }
-
-  /**
-   * A console warning wrapper which formats your output with useful debugging information.
-   *
-   * @example PFElement.warn("Hello");
-   */
-  static warn(...msgs) {
-    console.warn(...msgs);
-  }
-
-  /**
-   * Local warning wrapper that outputs the tag name as a prefix automatically.
-   * For use inside a component's function.
-   * @example this.warn("Hello");
-   */
-  warn(...msgs) {
-    PFElement.warn(`[${this.tag}${this.id ? `#${this.id}` : ``}]: ${msgs.join(", ")}`);
-  }
-
-  /**
-   * A console error wrapper which formats your output with useful debugging information.
-   * For use inside a component's function.
-   * @example PFElement.error("Hello");
-   */
-  static error(...msgs) {
-    throw new Error([...msgs].join(" "));
-  }
-
-  /**
-   * Local error wrapper that outputs the tag name as a prefix automatically.
-   * For use inside a component's function.
-   * @example this.error("Hello");
-   */
-  error(...msgs) {
-    PFElement.error(`[${this.tag}${this.id ? `#${this.id}` : ``}]:`, ...msgs);
-  }
-
-  /**
-   * A global definition of component types (a general way of defining the purpose of a
-   * component and how it is put together).
-   */
-  static get PfeTypes() {
-    return {
-      Container: "container",
-      Content: "content",
-      Combo: "combo"
-    };
-  }
-
-  /**
-   * The current version of a component; set by the compiler using the package.json data.
-   */
-  static get version() {
-    return "1.4.0";
-  }
-
-  /**
-   * A local alias to the static version.
-   * For use in the console to validate version being loaded.
-   * @example PfeAccordion.version
-   */
-  get version() {
-    return this._pfeClass.version;
-  }
-
-  /**
-   * Global property definitions: properties managed by the base class that apply to all components.
-   */
-  static get properties() {
-    return {
-      pfelement: {
-        title: "Upgraded flag",
-        type: Boolean,
-        default: true,
-        observer: "_upgradeObserver"
-      },
-      on: {
-        title: "Context",
-        description: "Describes the visual context (backgrounds).",
-        type: String,
-        values: ["light", "dark", "saturated"],
-        default: el => el.contextVariable,
-        observer: "_onObserver"
-      },
-      context: {
-        title: "Context hook",
-        description: "Lets you override the system-set context.",
-        type: String,
-        values: ["light", "dark", "saturated"],
-        observer: "_contextObserver"
-      },
-      // @TODO: Deprecated with 1.0
-      oldTheme: {
-        type: String,
-        values: ["light", "dark", "saturated"],
-        alias: "context",
-        attr: "pfe-theme"
-      },
-      _style: {
-        title: "Custom styles",
-        type: String,
-        attr: "style",
-        observer: "_inlineStyleObserver"
-      },
-      type: {
-        title: "Component type",
-        type: String,
-        values: ["container", "content", "combo"]
-      }
-    };
-  }
-
-  static get observedAttributes() {
-    const properties = this.allProperties;
-    if (properties) {
-      const oa = Object.keys(properties)
-        .filter(prop => properties[prop].observer || properties[prop].cascade || properties[prop].alias)
-        .map(p => this._convertPropNameToAttrName(p));
-      return [...oa];
-    }
-  }
-
-  /**
-   * A quick way to fetch a random ID value.
-   * _Note:_ All values are prefixes with `pfe` automatically to ensure an ID-safe value is returned.
-   *
-   * @example this.id = this.randomID;
-   */
-  get randomId() {
-    return (
-      `${prefix}-` +
-      Math.random()
-        .toString(36)
-        .substr(2, 9)
-    );
-  }
-
-  /**
-   * Set the --context variable with the provided value in this component.
-   */
-  set contextVariable(value) {
-    this.cssVariable("context", value);
-  }
-
-  /**
-   * Get the current value of the --context variable in this component.
-   * @return {string} [dark|light|saturated]
-   */
-  get contextVariable() {
-    /* @DEPRECATED --theme in 1.0, to be removed in 2.0 */
-    return this.cssVariable("context") || this.cssVariable("theme");
-  }
-
-  /**
-   * Returns a boolean statement of whether or not this component contains any light DOM.
-   * @returns {boolean}
-   * @example if(this.hasLightDOM()) this._init();
-   */
-  hasLightDOM() {
-    return this.children.length || this.textContent.trim().length;
-  }
-
-  /**
-   * Returns a boolean statement of whether or not that slot exists in the light DOM.
-   *
-   * @example this.hasSlot("header");
-   */
-  hasSlot(name) {
-    if (!name) {
-      this.warn(`Please provide at least one slot name for which to search.`);
-      return;
-    }
-
-    switch (typeof name) {
-      case "string":
-        return (
-          [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === name).length >
-          0
-        );
-      case "array":
-        return name.reduce(
-          n =>
-            [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === n).length >
-            0
-        );
-      default:
-        this.warn(
-          `Did not recognize the type of the name provided to hasSlot; this funciton can accept a string or an array.`
-        );
-        return;
-    }
-  }
-
-  /**
-   * Returns an array with all the slot with the provided name defined in the light DOM.
-   * If no value is provided (i.e., `this.getSlot()`), it returns all unassigned slots.
-   *
-   * @example this.hasSlot("header");
-   */
-  getSlot(name = "unassigned") {
-    if (name !== "unassigned") {
-      return [...this.children].filter(child => child.hasAttribute("slot") && child.getAttribute("slot") === name);
-    } else {
-      return [...this.children].filter(child => !child.hasAttribute("slot"));
-    }
-  }
-
-  cssVariable(name, value, element = this) {
-    name = name.substr(0, 2) !== "--" ? "--" + name : name;
-    if (value) {
-      element.style.setProperty(name, value);
-      return value;
-    }
-    return (
-      window
-        .getComputedStyle(element)
-        .getPropertyValue(name)
-        .trim() || null
-    );
-  }
-
-  /**
-   * This alerts nested components to a change in the context
-   */
-  contextUpdate() {
-    // If a value has been set, alert any nested children of the change
-    [...this.querySelectorAll("*"), ...this.shadowRoot.querySelectorAll("*")]
-      .filter(item => item.tagName.toLowerCase().slice(0, 4) === `${prefix}-`)
-      .map(child => {
-        this.log(`Update context of ${child.tag}`);
-        Promise.all([customElements.whenDefined(child.tagName.toLowerCase())]).then(() => {
-          // Ask the component to recheck it's context in case it changed
-          child.resetContext(this.on);
-        });
-      });
-  }
-
-  resetContext(fallback) {
-    this.log(`Resetting context on ${this.tag}`);
-    // Priority order for context values to be pulled from:
-    //--> 1. context (OLD: pfe-theme)
-    //--> 2. --context (OLD: --theme)
-    let value = this.context || this.contextVariable || fallback;
-    this.on = value;
-  }
-
-  constructor(pfeClass, { type = null, delayRender = false } = {}) {
-    super();
-
-    this._pfeClass = pfeClass;
-    this.tag = pfeClass.tag;
-    this._parseObserver = this._parseObserver.bind(this);
-
-    // Set up the mark ID based on existing ID on component if it exists
-    if (!this.id) {
-      this._markId = this.randomId.replace("pfe", this.tag);
-    } else if (this.id.startsWith("pfe-") && !this.id.startsWith(this.tag)) {
-      this._markId = this.id.replace("pfe", this.tag);
-    } else {
-      this._markId = `${this.tag}-${this.id}`;
-    }
-
-    this._markCount = 0;
-
-    // TODO: Deprecated for 1.0 release
-    this.schemaProps = pfeClass.schemaProperties;
-
-    // TODO: Migrate this out of schema for 1.0
-    this.slots = pfeClass.slots;
-
-    this.template = document.createElement("template");
-
-    // Set the default value to the passed in type
-    if (type && this._pfeClass.allProperties.type) this._pfeClass.allProperties.type.default = type;
-
-    // Initalize the properties and attributes from the property getter
-    this._initializeProperties();
-
-    this.attachShadow({ mode: "open" });
-
-    // Tracks if the component has been initially rendered. Useful if for debouncing
-    // template updates.
-    this._rendered = false;
-
-    if (!delayRender) this.render();
-  }
-
-  /**
-   * Standard connected callback; fires when the component is added to the DOM.
-   */
-  connectedCallback() {
-    this._initializeAttributeDefaults();
-
-    if (window.ShadyCSS) window.ShadyCSS.styleElement(this);
-
-    // If the slot definition exists, set up an observer
-    if (typeof this.slots === "object") {
-      this._slotsObserver = new MutationObserver(() => this._initializeSlots(this.tag, this.slots));
-      this._initializeSlots(this.tag, this.slots);
-    }
-  }
-
-  /**
-   * Standard disconnected callback; fires when a componet is removed from the DOM.
-   * Add your removeEventListeners here.
-   */
-  disconnectedCallback() {
-    if (this._cascadeObserver) this._cascadeObserver.disconnect();
-    if (this._slotsObserver) this._slotsObserver.disconnect();
-  }
-
-  /**
-   * Attribute changed callback fires when attributes are updated.
-   * This combines the global and the component-specific logic.
-   */
-  attributeChangedCallback(attr, oldVal, newVal) {
-    if (!this._pfeClass.allProperties) return;
-
-    let propName = this._pfeClass._attr2prop(attr);
-
-    const propDef = this._pfeClass.allProperties[propName];
-
-    // If the attribute that changed derives from a property definition
-    if (propDef) {
-      // If the property/attribute pair has an alias, copy the new value to the alias target
-      if (propDef.alias) {
-        const aliasedPropDef = this._pfeClass.allProperties[propDef.alias];
-        const aliasedAttr = this._pfeClass._prop2attr(propDef.alias);
-        const aliasedAttrVal = this.getAttribute(aliasedAttr);
-        if (aliasedAttrVal !== newVal) {
-          this[propDef.alias] = this._castPropertyValue(aliasedPropDef, newVal);
-        }
-      }
-
-      // If the property/attribute pair has an observer, fire it
-      // Observers receive the oldValue and the newValue from the attribute changed callback
-      if (propDef.observer) {
-        this[propDef.observer](this._castPropertyValue(propDef, oldVal), this._castPropertyValue(propDef, newVal));
-      }
-
-      // If the property/attribute pair has a cascade target, copy the attribute to the matching elements
-      // Note: this handles the cascading of new/updated attributes
-      if (propDef.cascade) {
-        this._copyAttribute(attr, this._pfeClass._convertSelectorsToArray(propDef.cascade));
-      }
-    }
-  }
-
-  /**
-   * Standard render function.
-   */
-  render() {
-    this.shadowRoot.innerHTML = "";
-    this.template.innerHTML = this.html;
-
-    if (window.ShadyCSS) {
-      window.ShadyCSS.prepareTemplate(this.template, this.tag);
-    }
-
-    this.shadowRoot.appendChild(this.template.content.cloneNode(true));
-
-    this.log(`render`);
-
-    // Cascade properties to the rendered template
-    this.cascadeProperties();
-
-    // Reset the display context
-    this.resetContext();
-
-    if (PFElement.trackPerformance()) {
-      try {
-        performance.mark(`${this._markId}-rendered`);
-
-        if (this._markCount < 1) {
-          this._markCount = this._markCount + 1;
-
-          // Navigation start, i.e., the browser first sees that the user has navigated to the page
-          performance.measure(`${this._markId}-from-navigation-to-first-render`, undefined, `${this._markId}-rendered`);
-
-          // Render is run before connection unless delayRender is used
-          performance.measure(
-            `${this._markId}-from-defined-to-first-render`,
-            `${this._markId}-defined`,
-            `${this._markId}-rendered`
-          );
-        }
-      } catch (err) {
-        this.log(`Performance marks are not supported by this browser.`);
-      }
-    }
-
-    // If the slot definition exists, set up an observer
-    if (typeof this.slots === "object" && this._slotsObserver) {
-      this._slotsObserver.observe(this, { childList: true });
-    }
-
-    // If an observer was defined, set it to begin observing here
-    if (this._cascadeObserver) {
-      this._cascadeObserver.observe(this, {
-        attributes: true,
-        childList: true,
-        subtree: true
-      });
-    }
-
-    this._rendered = true;
-  }
-
-  /**
-   * A wrapper around an event dispatch to standardize formatting.
-   */
-  emitEvent(name, { bubbles = true, cancelable = false, composed = false, detail = {} } = {}) {
-    this.log(`Custom event: ${name}`);
-    this.dispatchEvent(
-      new CustomEvent(name, {
-        bubbles,
-        cancelable,
-        composed,
-        detail
-      })
-    );
-  }
-
-  /**
-   * Handles the cascading of properties to nested components when new elements are added
-   * Attribute updates/additions are handled by the attribute callback
-   */
-  cascadeProperties(nodeList) {
-    const cascade = this._pfeClass._getCache("cascadingProperties");
-
-    if (cascade) {
-      if (window.ShadyCSS && this._cascadeObserver) this._cascadeObserver.disconnect();
-
-      let selectors = Object.keys(cascade);
-      // Find out if anything in the nodeList matches any of the observed selectors for cacading properties
-      if (nodeList) {
-        selectors = [];
-        [...nodeList].forEach(nodeItem => {
-          Object.keys(cascade).map(selector => {
-            // if this node has a match function (i.e., it's an HTMLElement, not
-            // a text node), see if it matches the selector, otherwise drop it (like it's hot).
-            if (nodeItem.matches && nodeItem.matches(selector)) {
-              selectors.push(selector);
-            }
-          });
-        });
-      }
-
-      // If a match was found, cascade each attribute to the element
-      if (selectors) {
-        const components = selectors
-          .filter(item => item.slice(0, prefix.length + 1) === `${prefix}-`)
-          .map(name => customElements.whenDefined(name));
-
-        if (components)
-          Promise.all(components).then(() => {
-            this._copyAttributes(selectors, cascade);
-          });
-        else this._copyAttributes(selectors, cascade);
-      }
-
-      // @TODO This is here for IE11 processing; can move this after deprecation
-      if (window.ShadyCSS && this._rendered && this._cascadeObserver)
-        this._cascadeObserver.observe(this, {
-          attributes: true,
-          childList: true,
-          subtree: true
-        });
-    }
-  }
-
-  /* --- Observers for global properties --- */
-
-  /**
-   * This responds to changes in the pfelement attribute; indicates if the component upgraded
-   * @TODO maybe we should use just the attribute instead of the class?
-   * https://github.com/angular/angular/issues/15399#issuecomment-318785677
-   */
-  _upgradeObserver() {
-    this.classList.add("PFElement");
-  }
-
-  /**
-   * This responds to changes in the context attribute; manual override tool
-   */
-  _contextObserver(oldValue, newValue) {
-    if (newValue && ((oldValue && oldValue !== newValue) || !oldValue)) {
-      this.on = newValue;
-      this.cssVariable("context", newValue);
-    }
-  }
-
-  /**
-   * This responds to changes in the context; source of truth for components
-   */
-  _onObserver(oldValue, newValue) {
-    if ((oldValue && oldValue !== newValue) || (newValue && !oldValue)) {
-      // Fire an event for child components
-      this.contextUpdate();
-    }
-  }
-
-  /**
-   * This responds to inline style changes and greps for context or theme updates.
-   * @TODO: --theme will be deprecated in 2.0
-   */
-  _inlineStyleObserver(oldValue, newValue) {
-    this.log(`Style observer activated on ${this.tag}`);
-    let newContext = "";
-    // Grep for context/theme
-    const regex = /--(?:context|theme):\s*(?:\"*(light|dark|saturated)\"*)/gi;
-    let found = regex.exec(newValue);
-    if (found) {
-      newContext = found[1];
-      // If the new context value differs from the on value, update
-      if (newContext !== this.on && !this.context) this.on = newContext;
-    }
-  }
-
-  /**
-   * This is connected with a mutation observer that watches for updates to the light DOM
-   * and pushes down the cascading values
-   */
-  _parseObserver(mutationsList) {
-    // Iterate over the mutation list, look for cascade updates
-    for (let mutation of mutationsList) {
-      // If a new node is added, attempt to cascade attributes to it
-      if (mutation.type === "childList" && mutation.addedNodes.length) {
-        this.cascadeProperties(mutation.addedNodes);
-      }
-      // @TODO: Do something when mutation type is attribute?
-      // else if (mutation.type === "attributes") {}
-    }
-  }
-  /* --- End observers --- */
-
-  /**
-   * Validate that the property meets the requirements for type and naming.
-   */
-  static _validateProperties() {
-    for (let propName in this.allProperties) {
-      const propDef = this.allProperties[propName];
-
-      // Verify that properties conform to the allowed data types
-      if (!isAllowedType(propDef)) {
-        this.error(`Property "${propName}" on ${this.name} must have type String, Number, or Boolean.`);
-      }
-
-      // Verify the property name conforms to our naming rules
-      if (!/^[a-z_]/.test(propName)) {
-        this.error(
-          `Property ${this.name}.${propName} defined, but prop names must begin with a lower-case letter or an underscore`
-        );
-      }
-
-      const isFunction = typeof propDef.default === "function";
-
-      // If the default value is not the same type as defined by the property
-      // and it's not a function (we can't validate the output of the function
-      // on the class level), throw a warning
-      if (propDef.default && !isValidDefaultType(propDef) && !isFunction)
-        this.error(
-          `[${this.name}] The default value \`${propDef.default}\` does not match the assigned type ${propDef.type.name} for the \'${propName}\' property`
-        );
-    }
-  }
-
-  /**
-   * Convert provided property value to the correct type as defined in the properties method.
-   */
-  _castPropertyValue(propDef, attrValue) {
-    switch (propDef.type) {
-      case Number:
-        // map various attribute string values to their respective
-        // desired property values
-        return {
-          [attrValue]: Number(attrValue),
-          null: null,
-          NaN: NaN,
-          undefined: undefined
-        }[attrValue];
-
-      case Boolean:
-        return attrValue !== null;
-
-      case String:
-        return {
-          [attrValue]: attrValue,
-          undefined: undefined
-        }[attrValue];
-
-      default:
-        return attrValue;
-    }
-  }
-
-  /**
-   * Map provided value to the attribute name on the component.
-   */
-  _assignValueToAttribute(obj, attr, value) {
-    // If the default is false and the property is boolean, we don't need to do anything
-    const isBooleanFalse = obj.type === Boolean && !value;
-    const isNull = value === null;
-    const isUndefined = typeof value === "undefined";
-
-    // If the attribute is not defined, set the default value
-    if (isBooleanFalse || isNull || isUndefined) {
-      this.removeAttribute(attr);
-    } else {
-      // Boolean values get an empty string: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes
-      if (obj.type === Boolean && typeof value === "boolean") {
-        this.setAttribute(attr, "");
-      } else {
-        // Validate against the provided values
-        if (obj.values) {
-          this._validateAttributeValue(obj, attr, value);
-        }
-
-        // Still accept the value provided even if it's not valid
-        this.setAttribute(attr, value);
-      }
-    }
-  }
-
-  /**
-   * Maps the defined slots into an object that is easier to query
-   */
-  _initializeSlots(tag, slots) {
-    this.log("Validate slots...");
-
-    if (window.ShadyCSS && this._slotsObserver) this._slotsObserver.disconnect();
-
-    // Loop over the properties provided by the schema
-    Object.keys(slots).forEach(slot => {
-      let slotObj = slots[slot];
-
-      // Only attach the information if the data provided is a schema object
-      if (typeof slotObj === "object") {
-        let slotExists = false;
-        let result = [];
-        // If it's a named slot, look for that slot definition
-        if (slotObj.namedSlot) {
-          // Check prefixed slots
-          result = this.getSlot(`${tag}--${slot}`);
-          if (result.length > 0) {
-            slotObj.nodes = result;
-            slotExists = true;
-          }
-
-          // Check for unprefixed slots
-          result = this.getSlot(`${slot}`);
-          if (result.length > 0) {
-            slotObj.nodes = result;
-            slotExists = true;
-          }
-          // If it's the default slot, look for direct children not assigned to a slot
-        } else {
-          result = [...this.children].filter(child => !child.hasAttribute("slot"));
-
-          if (result.length > 0) {
-            slotObj.nodes = result;
-            slotExists = true;
-          }
-        }
-
-        // If the slot exists, attach an attribute to the parent to indicate that
-        if (slotExists) {
-          this.setAttribute(`has_${slot}`, "");
-        } else {
-          this.removeAttribute(`has_${slot}`);
-        }
-      }
-    });
-
-    this.log("Slots validated.");
-
-    if (window.ShadyCSS && this._slotsObserver) this._slotsObserver.observe(this, { childList: true });
-  }
-
-  /**
-   * Sets up the property definitions based on the properties method.
-   */
-  _initializeProperties() {
-    const properties = this._pfeClass.allProperties;
-    let hasCascade = false;
-
-    if (Object.keys(properties).length > 0) this.log(`Initialize properties`);
-
-    for (let propName in properties) {
-      const propDef = properties[propName];
-
-      // Check if the property exists, throw a warning if it does.
-      // HTMLElements have a LOT of properties; it wouldn't be hard
-      // to overwrite one accidentally.
-      if (typeof this[propName] !== "undefined") {
-        this.log(
-          `Property "${propName}" on ${this.constructor.name} cannot be defined because the property name is reserved`
-        );
-      } else {
-        const attrName = this._pfeClass._prop2attr(propName);
-        if (propDef.cascade) hasCascade = true;
-
-        Object.defineProperty(this, propName, {
-          get: () => {
-            const attrValue = this.getAttribute(attrName);
-
-            return this._castPropertyValue(propDef, attrValue);
-          },
-          set: rawNewVal => {
-            // Assign the value to the attribute
-            this._assignValueToAttribute(propDef, attrName, rawNewVal);
-
-            return rawNewVal;
-          },
-          writeable: true,
-          enumerable: true,
-          configurable: false
-        });
-      }
-    }
-
-    // If any of the properties has cascade, attach a new mutation observer to the component
-    if (hasCascade) {
-      this._cascadeObserver = new MutationObserver(this._parseObserver);
-    }
-  }
-
-  /**
-   * Intialize the default value for an attribute.
-   */
-  _initializeAttributeDefaults() {
-    const properties = this._pfeClass.allProperties;
-
-    for (let propName in properties) {
-      const propDef = properties[propName];
-
-      const attrName = this._pfeClass._prop2attr(propName);
-
-      if (propDef.hasOwnProperty("default")) {
-        let value = propDef.default;
-
-        // Check if default is a function
-        if (typeof propDef.default === "function") {
-          value = propDef.default(this);
-        }
-
-        // If the attribute has not already been set, assign the default value
-        if (!this.hasAttribute(attrName)) {
-          // Assign the value to the attribute
-          this._assignValueToAttribute(propDef, attrName, value);
-        }
-      }
-    }
-  }
-
-  /**
-   * Validate the value against provided values.
-   */
-  // @TODO add support for a validation function
-  _validateAttributeValue(propDef, attr, value) {
-    if (
-      Array.isArray(propDef.values) &&
-      propDef.values.length > 0 &&
-      !propDef.values.includes(value) // ||
-      // (typeof propDef.values === "string" && propDef.values !== value) ||
-      // (typeof propDef.values === "function" && !propDef.values(value))
-    ) {
-      this.warn(
-        `${value} is not a valid value for ${attr}. Please provide one of the following values: ${propDef.values.join(
-          ", "
-        )}`
-      );
-    }
-
-    return value;
-  }
-
-  /**
-   * Look up an attribute name linked to a given property name.
-   */
-  static _prop2attr(propName) {
-    return this._getCache("prop2attr")[propName];
-  }
-
-  /**
-   * Look up an property name linked to a given attribute name.
-   */
-  static _attr2prop(attrName) {
-    return this._getCache("attr2prop")[attrName];
-  }
-
-  /**
-   * Convert a property name to an attribute name.
-   */
-  static _convertPropNameToAttrName(propName) {
-    const propDef = this.allProperties[propName];
-
-    if (propDef.attr) {
-      return propDef.attr;
-    }
-
-    return propName
-      .replace(/^_/, "")
-      .replace(/^[A-Z]/, l => l.toLowerCase())
-      .replace(/[A-Z]/g, l => `-${l.toLowerCase()}`);
-  }
-
-  /**
-   * Convert an attribute name to a property name.
-   */
-  static _convertAttrNameToPropName(attrName) {
-    for (let prop in this.allProperties) {
-      if (this.allProperties[prop].attr === attrName) {
-        return prop;
-      }
-    }
-
-    // Convert the property name to kebab case
-    const propName = attrName.replace(/-([A-Za-z])/g, l => l[1].toUpperCase());
-    return propName;
-  }
-
-  _copyAttributes(selectors, set) {
-    selectors.forEach(selector => {
-      set[selector].forEach(attr => {
-        this._copyAttribute(attr, selector);
-      });
-    });
-  }
-
-  _copyAttribute(name, to) {
-    const recipients = [...this.querySelectorAll(to), ...this.shadowRoot.querySelectorAll(to)];
-    const value = this.getAttribute(name);
-    const fname = value == null ? "removeAttribute" : "setAttribute";
-    for (const node of recipients) {
-      node[fname](name, value);
-    }
-  }
-
-  static _convertSelectorsToArray(selectors) {
-    if (selectors) {
-      if (typeof selectors === "string") return selectors.split(",");
-      else if (typeof selectors === "array" || typeof selectors === "object") return selectors;
-      else {
-        this.warn(`selectors should be provided as a string, array, or object; received: ${typeof selectors}.`);
-      }
-    }
-
-    return;
-  }
-
-  static _parsePropertiesForCascade(mergedProperties) {
-    let cascadingProperties = {};
-    // Parse the properties to pull out attributes that cascade
-    for (const [propName, config] of Object.entries(mergedProperties)) {
-      let cascadeTo = this._convertSelectorsToArray(config.cascade);
-
-      // Iterate over each node in the cascade list for this property
-      if (cascadeTo)
-        cascadeTo.map(nodeItem => {
-          let attr = this._prop2attr(propName);
-          // Create an object with the node as the key and an array of attributes
-          // that are to be cascaded down to it
-          if (!cascadingProperties[nodeItem]) cascadingProperties[nodeItem] = [attr];
-          else cascadingProperties[nodeItem].push(attr);
-        });
-    }
-
-    return cascadingProperties;
-  }
-
-  /**
-   * Caching the attributes and properties data for efficiency
-   */
-  static create(pfe) {
-    pfe._createCache();
-    pfe._populateCache(pfe);
-    pfe._validateProperties();
-    window.customElements.define(pfe.tag, pfe);
-
-    if (PFElement.trackPerformance()) {
-      try {
-        performance.mark(`${this._markId}-defined`);
-      } catch (err) {
-        this.log(`Performance marks are not supported by this browser.`);
-      }
-    }
-  }
-
-  static _createCache() {
-    this._cache = {
-      properties: {},
-      globalProperties: {},
-      componentProperties: {},
-      cascadingProperties: {},
-      attr2prop: {},
-      prop2attr: {}
-    };
-  }
-
-  /**
-   * Cache an object in a given cache namespace.  This overwrites anything
-   * already in that namespace.
-   */
-  static _setCache(namespace, object) {
-    this._cache[namespace] = object;
-  }
-
-  /**
-   * Get a cached object by namespace, or get all cached objects.
-   */
-  static _getCache(namespace) {
-    return namespace ? this._cache[namespace] : this._cache;
-  }
-
-  /**
-   * Populate initial values for properties cache.
-   */
-  static _populateCache(pfe) {
-    // @TODO add a warning when a component property conflicts with a global property.
-    const mergedProperties = { ...pfe.properties, ...PFElement.properties };
-
-    pfe._setCache("componentProperties", pfe.properties);
-    pfe._setCache("globalProperties", PFElement.properties);
-    pfe._setCache("properties", mergedProperties);
-
-    // create mapping objects to go from prop name to attrname and back
-    const prop2attr = {};
-    const attr2prop = {};
-    for (let propName in mergedProperties) {
-      const attrName = this._convertPropNameToAttrName(propName);
-      prop2attr[propName] = attrName;
-      attr2prop[attrName] = propName;
-    }
-    pfe._setCache("attr2prop", attr2prop);
-    pfe._setCache("prop2attr", prop2attr);
-
-    const cascadingProperties = this._parsePropertiesForCascade(mergedProperties);
-    if (Object.keys(cascadingProperties)) pfe._setCache("cascadingProperties", cascadingProperties);
-  }
-
-  /**
-   * allProperties returns an object containing PFElement's global properties
-   * and the descendents' (such as PfeCard, etc) component properties.  The two
-   * objects are merged together and in the case of a property name conflict,
-   * PFElement's properties override the component's properties.
-   */
-  static get allProperties() {
-    return this._getCache("properties");
-  }
-
-  /**
-   * cascadingProperties returns an object containing PFElement's global properties
-   * and the descendents' (such as PfeCard, etc) component properties.  The two
-   * objects are merged together and in the case of a property name conflict,
-   * PFElement's properties override the component's properties.
-   */
-  static get cascadingProperties() {
-    return this._getCache("cascadingProperties");
-  }
-}
-
-autoReveal(PFElement.log);
-
-export default PFElement;
-//# sourceMappingURL=pfelement.js.map
-
-
-
-
-
- - - - - - - - - - - - - \ No newline at end of file From 54bcb7cf02d07e8fb9ebf8f7271cba6293dc9463 Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 14:07:52 -0400 Subject: [PATCH 5/9] feat: Remove commented out config and link to documentation --- elements/pfelement/gulpfile.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/elements/pfelement/gulpfile.js b/elements/pfelement/gulpfile.js index ba4b8db303..ba7118e470 100644 --- a/elements/pfelement/gulpfile.js +++ b/elements/pfelement/gulpfile.js @@ -23,31 +23,19 @@ task("build:jsdoc", cb => { destination: "demo/", template: "../../node_modules/foodoc/template" }, + // https://github.com/steveush/foodoc#configuring-the-template templates: { systemName: "PatternFly Elements", systemSummary: "A set of community-created web components based on PatternFly design.", systemLogo: "../../brand/logo/svg/pfe-icon-white-shaded.svg", favicon: "../../brand/logo/svg/pfe-icon-blue-shaded.svg", systemColor: "rgb(0, 64, 128)", - // "footer" : "{string}", copyright: "©2021 Red Hat, Inc.", includeDate: true, dateFormat: "YYYY MMM DD", showAccessFilter: false, collapseSymbols: false, stylesheets: ["../pfe-styles/dist/pfe-base.min.css"] - // "inlineNav" : "{boolean}", - // "inverseNav" : "{boolean}", - // "navMembers" : "{array.}", - // "linenums" : "{boolean}", - // "showTableOfContents" : "{boolean}", - // "analytics" : "{object}", - // "collapseSymbols" : "{boolean}", - // "methodHeadingReturns" : "{boolean}", - // "outputSourceFiles" : "{boolean}", - // "outputSourcePath" : "{boolean}", - // "stylesheets" : "{array.}", - // "scripts" : "{array.}" } }, cb From e8eb3064db1676aed44c8130f7604c0644255da7 Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Tue, 6 Apr 2021 14:09:21 -0400 Subject: [PATCH 6/9] feat: Update package; remove jsdoc for gulp-jsdoc3 --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 32ac452a91..dcaf316054 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,6 @@ "http-server": "^0.12.3", "husky": "^5.0.9", "inquirer": "^8.0.0", - "jsdoc": "^3.6.6", "leasot": "^11.5.0", "lerna": "^4.0.0", "lit-html": "^1.1.2", From 5bc4ef444c3dd116f21344b45561c4d4ef36dc8e Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Mon, 19 Apr 2021 20:25:44 -0400 Subject: [PATCH 7/9] Update gulpfile.js --- elements/pfe-sass/gulpfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/elements/pfe-sass/gulpfile.js b/elements/pfe-sass/gulpfile.js index dca99643d9..f01e5c89ed 100644 --- a/elements/pfe-sass/gulpfile.js +++ b/elements/pfe-sass/gulpfile.js @@ -19,11 +19,11 @@ const del = require("del"); const sassdoc = require("sassdoc"); // Delete the demo assets -task("clean", () => src(["demo/*.html", "demo/assets"], { +task("clean", () => del(["demo/*.html", "demo/assets"], { cwd: paths.compiled, read: false, allowEmpty: true -}).pipe(clean())); +})); task("build:sassdoc", () => src(["{extends,functions,maps,mixins,variables}/_*.scss", "pfe-sass.scss"], { cwd: paths.compiled, From 411aa398b3fc4b01b8d0c4496dd047d5a89bf1e1 Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Mon, 19 Apr 2021 20:27:08 -0400 Subject: [PATCH 8/9] Update gulpfile.factory.js --- .../element/templates/scripts/gulpfile.factory.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/generators/element/templates/scripts/gulpfile.factory.js b/generators/element/templates/scripts/gulpfile.factory.js index 9393d3909c..f76d78646f 100644 --- a/generators/element/templates/scripts/gulpfile.factory.js +++ b/generators/element/templates/scripts/gulpfile.factory.js @@ -64,16 +64,14 @@ module.exports = function factory({ const decomment = require("decomment"); // Delete the temp directory - task("clean", () => { - return del([ + task("clean", () => del([ paths.temp, paths.compiled ], { cwd: paths.root, read: false, allowEmpty: true - }); - }); + })); // Compile the sass into css, compress, autoprefix task("compile:styles", () => src("*.{scss,css}", { @@ -296,16 +294,14 @@ ${fs task("bundle", () => shell.task("../../node_modules/.bin/rollup -c")); // Delete the temp directory - task("clean:post", () => { - return del([ + task("clean:post", () => del([ "*.min.css", "*.umd.js" ], { cwd: paths.temp, read: false, allowEmpty: true - }); - }); + })); task( "build", From 2f618586fd83533a0712e89054ce721cfdf7cc4a Mon Sep 17 00:00:00 2001 From: "[ Cassondra ]" Date: Mon, 19 Apr 2021 20:28:22 -0400 Subject: [PATCH 9/9] Update gulpfile.factory.js --- scripts/gulpfile.factory.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/scripts/gulpfile.factory.js b/scripts/gulpfile.factory.js index ebc5c94c7e..4a9b071c5d 100644 --- a/scripts/gulpfile.factory.js +++ b/scripts/gulpfile.factory.js @@ -65,13 +65,12 @@ module.exports = function factory({ const decomment = require("decomment"); // Delete the temp directory - task("clean", () => { - return del([paths.temp, paths.compiled], { + task("clean", () => del([paths.temp, paths.compiled], { cwd: paths.root, read: false, allowEmpty: true - }); - }); + }) + ); // Compile the sass into css, compress, autoprefix task("compile:styles", () => src(`${paths.source}/*.{scss,css}`, { @@ -310,13 +309,12 @@ ${fs task("bundle", shell.task("../../node_modules/.bin/rollup -c")); // Delete the temp directory - task("clean:post", () => { - return del(["*.min.css", "*.umd.js"], { + task("clean:post", () => del(["*.min.css", "*.umd.js"], { cwd: paths.temp, read: false, allowEmpty: true - }); - }); + }) + ); task( "build",