├── assets
├── package.json
├── node_modules
│ ├── jquery
│ │ ├── src
│ │ │ ├── var
│ │ │ │ ├── arr.js
│ │ │ │ ├── document.js
│ │ │ │ ├── getProto.js
│ │ │ │ ├── concat.js
│ │ │ │ ├── push.js
│ │ │ │ ├── slice.js
│ │ │ │ ├── class2type.js
│ │ │ │ ├── indexOf.js
│ │ │ │ ├── pnum.js
│ │ │ │ ├── fnToString.js
│ │ │ │ ├── toString.js
│ │ │ │ ├── hasOwn.js
│ │ │ │ ├── documentElement.js
│ │ │ │ ├── support.js
│ │ │ │ ├── ObjectFunctionString.js
│ │ │ │ ├── rcssNum.js
│ │ │ │ └── rnothtmlwhite.js
│ │ │ ├── selector.js
│ │ │ ├── .eslintrc.json
│ │ │ ├── ajax
│ │ │ │ ├── var
│ │ │ │ │ ├── rquery.js
│ │ │ │ │ ├── location.js
│ │ │ │ │ └── nonce.js
│ │ │ │ ├── parseXML.js
│ │ │ │ ├── script.js
│ │ │ │ ├── load.js
│ │ │ │ ├── jsonp.js
│ │ │ │ └── xhr.js
│ │ │ ├── css
│ │ │ │ ├── var
│ │ │ │ │ ├── rmargin.js
│ │ │ │ │ ├── cssExpand.js
│ │ │ │ │ ├── rnumnonpx.js
│ │ │ │ │ ├── getStyles.js
│ │ │ │ │ ├── swap.js
│ │ │ │ │ └── isHiddenWithinTree.js
│ │ │ │ ├── hiddenVisibleSelectors.js
│ │ │ │ ├── addGetHookIf.js
│ │ │ │ ├── curCSS.js
│ │ │ │ ├── adjustCSS.js
│ │ │ │ ├── support.js
│ │ │ │ └── showHide.js
│ │ │ ├── data
│ │ │ │ ├── var
│ │ │ │ │ ├── dataPriv.js
│ │ │ │ │ ├── dataUser.js
│ │ │ │ │ └── acceptData.js
│ │ │ │ └── Data.js
│ │ │ ├── manipulation
│ │ │ │ ├── var
│ │ │ │ │ ├── rcheckableType.js
│ │ │ │ │ ├── rscriptType.js
│ │ │ │ │ └── rtagName.js
│ │ │ │ ├── _evalUrl.js
│ │ │ │ ├── setGlobalEval.js
│ │ │ │ ├── getAll.js
│ │ │ │ ├── wrapMap.js
│ │ │ │ ├── support.js
│ │ │ │ └── buildFragment.js
│ │ │ ├── traversing
│ │ │ │ ├── var
│ │ │ │ │ ├── rneedsContext.js
│ │ │ │ │ ├── siblings.js
│ │ │ │ │ └── dir.js
│ │ │ │ └── findFilter.js
│ │ │ ├── core
│ │ │ │ ├── var
│ │ │ │ │ └── rsingleTag.js
│ │ │ │ ├── readyException.js
│ │ │ │ ├── nodeName.js
│ │ │ │ ├── DOMEval.js
│ │ │ │ ├── stripAndCollapse.js
│ │ │ │ ├── support.js
│ │ │ │ ├── access.js
│ │ │ │ ├── parseHTML.js
│ │ │ │ ├── ready.js
│ │ │ │ ├── ready-no-deferred.js
│ │ │ │ └── init.js
│ │ │ ├── event
│ │ │ │ ├── support.js
│ │ │ │ ├── ajax.js
│ │ │ │ ├── alias.js
│ │ │ │ ├── focusin.js
│ │ │ │ └── trigger.js
│ │ │ ├── attributes.js
│ │ │ ├── effects
│ │ │ │ ├── animatedSelector.js
│ │ │ │ └── Tween.js
│ │ │ ├── selector-sizzle.js
│ │ │ ├── deferred
│ │ │ │ └── exceptionHook.js
│ │ │ ├── queue
│ │ │ │ └── delay.js
│ │ │ ├── exports
│ │ │ │ ├── global.js
│ │ │ │ └── amd.js
│ │ │ ├── jquery.js
│ │ │ ├── attributes
│ │ │ │ ├── support.js
│ │ │ │ ├── prop.js
│ │ │ │ ├── attr.js
│ │ │ │ ├── classes.js
│ │ │ │ └── val.js
│ │ │ ├── deprecated.js
│ │ │ ├── wrap.js
│ │ │ ├── dimensions.js
│ │ │ ├── serialize.js
│ │ │ ├── queue.js
│ │ │ ├── data.js
│ │ │ ├── traversing.js
│ │ │ ├── callbacks.js
│ │ │ ├── offset.js
│ │ │ └── selector-native.js
│ │ ├── bower.json
│ │ ├── LICENSE.txt
│ │ ├── external
│ │ │ └── sizzle
│ │ │ │ └── LICENSE.txt
│ │ ├── README.md
│ │ ├── package.json
│ │ └── AUTHORS.txt
│ ├── jquery-ui-sortable
│ │ └── package.json
│ ├── .yarn-integrity
│ └── formBuilder
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── package.json
└── yarn.lock
├── FormBuilderAsset.php
├── composer.json
├── LICENSE
├── README.md
├── messages
├── fa-IR.php
├── fa.php
├── en.php
├── pt-BR.php
└── es-MX.php
└── FormBuilder.php
/assets/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "formBuilder": "^2.2.6"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/arr.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return [];
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/selector.js:
--------------------------------------------------------------------------------
1 | define( [ "./selector-sizzle" ], function() {
2 | "use strict";
3 | } );
4 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 |
4 | "extends": "../.eslintrc-browser.json"
5 | }
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/var/rquery.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /\?/ );
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/document.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return window.document;
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/var/location.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return window.location;
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/rmargin.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^margin/ );
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/getProto.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return Object.getPrototypeOf;
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/concat.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.concat;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/push.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.push;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/slice.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.slice;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/class2type.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // [[Class]] -> type pairs
5 | return {};
6 | } );
7 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/indexOf.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.indexOf;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/cssExpand.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return [ "Top", "Right", "Bottom", "Left" ];
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/data/var/dataPriv.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | "use strict";
5 |
6 | return new Data();
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/data/var/dataUser.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | "use strict";
5 |
6 | return new Data();
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/pnum.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/var/nonce.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 | "use strict";
5 |
6 | return jQuery.now();
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/var/rcheckableType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^(?:checkbox|radio)$/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/var/rscriptType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^$|\/(?:java|ecma)script/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/var/rtagName.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/fnToString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./hasOwn"
3 | ], function( hasOwn ) {
4 | "use strict";
5 |
6 | return hasOwn.toString;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/toString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | "use strict";
5 |
6 | return class2type.toString;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/hasOwn.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | "use strict";
5 |
6 | return class2type.hasOwnProperty;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/documentElement.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./document"
3 | ], function( document ) {
4 | "use strict";
5 |
6 | return document.documentElement;
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/support.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // All support tests are defined in their respective modules.
5 | return {};
6 | } );
7 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/ObjectFunctionString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./fnToString"
3 | ], function( fnToString ) {
4 | "use strict";
5 |
6 | return fnToString.call( Object );
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/rnumnonpx.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../var/pnum"
3 | ], function( pnum ) {
4 | "use strict";
5 |
6 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
7 | } );
8 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/traversing/var/rneedsContext.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 | ], function( jQuery ) {
5 | "use strict";
6 |
7 | return jQuery.expr.match.needsContext;
8 | } );
9 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/var/rsingleTag.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // Match a standalone tag
5 | return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
6 | } );
7 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/rcssNum.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/pnum"
3 | ], function( pnum ) {
4 |
5 | "use strict";
6 |
7 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
8 |
9 | } );
10 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/event/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/support"
3 | ], function( support ) {
4 |
5 | "use strict";
6 |
7 | support.focusin = "onfocusin" in window;
8 |
9 | return support;
10 |
11 | } );
12 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/readyException.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | jQuery.readyException = function( error ) {
8 | window.setTimeout( function() {
9 | throw error;
10 | } );
11 | };
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ]
14 | }
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/nodeName.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | function nodeName( elem, name ) {
6 |
7 | return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
8 |
9 | };
10 |
11 | return nodeName;
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/var/rnothtmlwhite.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // Only count HTML whitespace
5 | // Other whitespace should count in values
6 | // https://html.spec.whatwg.org/multipage/infrastructure.html#space-character
7 | return ( /[^\x20\t\r\n\f]+/g );
8 | } );
9 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./attributes/attr",
4 | "./attributes/prop",
5 | "./attributes/classes",
6 | "./attributes/val"
7 | ], function( jQuery ) {
8 |
9 | "use strict";
10 |
11 | // Return jQuery for attributes-only inclusion
12 | return jQuery;
13 | } );
14 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery-ui-sortable/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-ui-sortable",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "jquery-ui.min.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC"
11 | }
12 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/traversing/var/siblings.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | return function( n, elem ) {
6 | var matched = [];
7 |
8 | for ( ; n; n = n.nextSibling ) {
9 | if ( n.nodeType === 1 && n !== elem ) {
10 | matched.push( n );
11 | }
12 | }
13 |
14 | return matched;
15 | };
16 |
17 | } );
18 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/effects/animatedSelector.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector",
4 | "../effects"
5 | ], function( jQuery ) {
6 |
7 | "use strict";
8 |
9 | jQuery.expr.pseudos.animated = function( elem ) {
10 | return jQuery.grep( jQuery.timers, function( fn ) {
11 | return elem === fn.elem;
12 | } ).length;
13 | };
14 |
15 | } );
16 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/DOMEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document"
3 | ], function( document ) {
4 | "use strict";
5 |
6 | function DOMEval( code, doc ) {
7 | doc = doc || document;
8 |
9 | var script = doc.createElement( "script" );
10 |
11 | script.text = code;
12 | doc.head.appendChild( script ).parentNode.removeChild( script );
13 | }
14 |
15 | return DOMEval;
16 | } );
17 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/hiddenVisibleSelectors.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | jQuery.expr.pseudos.hidden = function( elem ) {
9 | return !jQuery.expr.pseudos.visible( elem );
10 | };
11 | jQuery.expr.pseudos.visible = function( elem ) {
12 | return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
13 | };
14 |
15 | } );
16 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/data/var/acceptData.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | /**
6 | * Determines whether an object can have data
7 | */
8 | return function( owner ) {
9 |
10 | // Accepts only:
11 | // - Node
12 | // - Node.ELEMENT_NODE
13 | // - Node.DOCUMENT_NODE
14 | // - Object
15 | // - Any
16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17 | };
18 |
19 | } );
20 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/event/ajax.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../event"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | // Attach a bunch of functions for handling common AJAX events
9 | jQuery.each( [
10 | "ajaxStart",
11 | "ajaxStop",
12 | "ajaxComplete",
13 | "ajaxError",
14 | "ajaxSuccess",
15 | "ajaxSend"
16 | ], function( i, type ) {
17 | jQuery.fn[ type ] = function( fn ) {
18 | return this.on( type, fn );
19 | };
20 | } );
21 |
22 | } );
23 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/stripAndCollapse.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/rnothtmlwhite"
3 | ], function( rnothtmlwhite ) {
4 | "use strict";
5 |
6 | // Strip and collapse whitespace according to HTML spec
7 | // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
8 | function stripAndCollapse( value ) {
9 | var tokens = value.match( rnothtmlwhite ) || [];
10 | return tokens.join( " " );
11 | }
12 |
13 | return stripAndCollapse;
14 | } );
15 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/_evalUrl.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../ajax"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | jQuery._evalUrl = function( url ) {
8 | return jQuery.ajax( {
9 | url: url,
10 |
11 | // Make this explicit, since user can override this through ajaxSetup (#11264)
12 | type: "GET",
13 | dataType: "script",
14 | cache: true,
15 | async: false,
16 | global: false,
17 | "throws": true
18 | } );
19 | };
20 |
21 | return jQuery._evalUrl;
22 |
23 | } );
24 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/getStyles.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return function( elem ) {
5 |
6 | // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
7 | // IE throws on elements created in popups
8 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
9 | var view = elem.ownerDocument.defaultView;
10 |
11 | if ( !view || !view.opener ) {
12 | view = window;
13 | }
14 |
15 | return view.getComputedStyle( elem );
16 | };
17 | } );
18 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/traversing/var/dir.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | return function( elem, dir, until ) {
8 | var matched = [],
9 | truncate = until !== undefined;
10 |
11 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
12 | if ( elem.nodeType === 1 ) {
13 | if ( truncate && jQuery( elem ).is( until ) ) {
14 | break;
15 | }
16 | matched.push( elem );
17 | }
18 | }
19 | return matched;
20 | };
21 |
22 | } );
23 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/setGlobalEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../data/var/dataPriv"
3 | ], function( dataPriv ) {
4 |
5 | "use strict";
6 |
7 | // Mark scripts as having already been evaluated
8 | function setGlobalEval( elems, refElements ) {
9 | var i = 0,
10 | l = elems.length;
11 |
12 | for ( ; i < l; i++ ) {
13 | dataPriv.set(
14 | elems[ i ],
15 | "globalEval",
16 | !refElements || dataPriv.get( refElements[ i ], "globalEval" )
17 | );
18 | }
19 | }
20 |
21 | return setGlobalEval;
22 | } );
23 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/selector-sizzle.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "../external/sizzle/dist/sizzle"
4 | ], function( jQuery, Sizzle ) {
5 |
6 | "use strict";
7 |
8 | jQuery.find = Sizzle;
9 | jQuery.expr = Sizzle.selectors;
10 |
11 | // Deprecated
12 | jQuery.expr[ ":" ] = jQuery.expr.pseudos;
13 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
14 | jQuery.text = Sizzle.getText;
15 | jQuery.isXMLDoc = Sizzle.isXML;
16 | jQuery.contains = Sizzle.contains;
17 | jQuery.escapeSelector = Sizzle.escape;
18 |
19 | } );
20 |
--------------------------------------------------------------------------------
/FormBuilderAsset.php:
--------------------------------------------------------------------------------
1 | js = [
15 | 'form-builder.min.js',
16 | 'form-render.min.js',
17 | ];
18 | }
19 |
20 | public $depends = [
21 | 'yii\jui\JuiAsset',
22 | ];
23 | }
24 |
--------------------------------------------------------------------------------
/assets/node_modules/.yarn-integrity:
--------------------------------------------------------------------------------
1 | {
2 | "flags": [],
3 | "linkedModules": [],
4 | "topLevelPatters": [
5 | "formBuilder@^2.2.6"
6 | ],
7 | "lockfileEntries": {
8 | "formBuilder@^2.2.6": "https://registry.yarnpkg.com/formBuilder/-/formBuilder-2.5.3.tgz#2b5b59c1a5eb2bcd635dae5a72312068dae14711",
9 | "jquery-ui-sortable@*": "https://registry.yarnpkg.com/jquery-ui-sortable/-/jquery-ui-sortable-1.0.0.tgz#0ee062ce02b29b36585ede3a3e0ddde666060f96",
10 | "jquery@^3.1.1": "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
11 | },
12 | "files": [],
13 | "artifacts": {}
14 | }
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "meysampg/yii2-formbuilder",
3 | "description": "A drag and drop form builder with jQuery for Yii2",
4 | "type": "yii2-extension",
5 | "keywords": ["yii2","extension","form-builder","js","form"],
6 | "license": "MIT",
7 | "authors": [
8 | {
9 | "name": "Meysam P.G.",
10 | "email": "p.g.meysam@gmail.com"
11 | }
12 | ],
13 | "require": {
14 | "yiisoft/yii2": "*",
15 | "yiisoft/yii2-jui": "*"
16 | },
17 | "autoload": {
18 | "psr-4": {
19 | "meysampg\\formbuilder\\": ""
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/swap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | // A method for quickly swapping in/out CSS properties to get correct calculations.
6 | return function( elem, options, callback, args ) {
7 | var ret, name,
8 | old = {};
9 |
10 | // Remember the old values, and insert the new ones
11 | for ( name in options ) {
12 | old[ name ] = elem.style[ name ];
13 | elem.style[ name ] = options[ name ];
14 | }
15 |
16 | ret = callback.apply( elem, args || [] );
17 |
18 | // Revert the old values
19 | for ( name in options ) {
20 | elem.style[ name ] = old[ name ];
21 | }
22 |
23 | return ret;
24 | };
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/addGetHookIf.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | function addGetHookIf( conditionFn, hookFn ) {
6 |
7 | // Define the hook, we'll check on the first run if it's really needed.
8 | return {
9 | get: function() {
10 | if ( conditionFn() ) {
11 |
12 | // Hook not needed (or it's not possible to use it due
13 | // to missing dependency), remove it.
14 | delete this.get;
15 | return;
16 | }
17 |
18 | // Hook needed; redefine it so that the support test is not executed again.
19 | return ( this.get = hookFn ).apply( this, arguments );
20 | }
21 | };
22 | }
23 |
24 | return addGetHookIf;
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/assets/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | formBuilder@^2.2.6:
6 | version "2.5.3"
7 | resolved "https://registry.yarnpkg.com/formBuilder/-/formBuilder-2.5.3.tgz#2b5b59c1a5eb2bcd635dae5a72312068dae14711"
8 | dependencies:
9 | jquery "^3.1.1"
10 | jquery-ui-sortable "*"
11 |
12 | jquery-ui-sortable@*:
13 | version "1.0.0"
14 | resolved "https://registry.yarnpkg.com/jquery-ui-sortable/-/jquery-ui-sortable-1.0.0.tgz#0ee062ce02b29b36585ede3a3e0ddde666060f96"
15 |
16 | jquery@^3.1.1:
17 | version "3.2.1"
18 | resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
19 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Cross-browser xml parsing
8 | jQuery.parseXML = function( data ) {
9 | var xml;
10 | if ( !data || typeof data !== "string" ) {
11 | return null;
12 | }
13 |
14 | // Support: IE 9 - 11 only
15 | // IE throws on parseFromString with invalid input.
16 | try {
17 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
18 | } catch ( e ) {
19 | xml = undefined;
20 | }
21 |
22 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
23 | jQuery.error( "Invalid XML: " + data );
24 | }
25 | return xml;
26 | };
27 |
28 | return jQuery.parseXML;
29 |
30 | } );
31 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | // Support: Safari 8 only
9 | // In Safari 8 documents created via document.implementation.createHTMLDocument
10 | // collapse sibling forms: the second one becomes a child of the first one.
11 | // Because of that, this security measure has to be disabled in Safari 8.
12 | // https://bugs.webkit.org/show_bug.cgi?id=137337
13 | support.createHTMLDocument = ( function() {
14 | var body = document.implementation.createHTMLDocument( "" ).body;
15 | body.innerHTML = "
";
16 | return body.childNodes.length === 2;
17 | } )();
18 |
19 | return support;
20 | } );
21 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/deferred/exceptionHook.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../deferred"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | // These usually indicate a programmer mistake during development,
9 | // warn about them ASAP rather than swallowing them by default.
10 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
11 |
12 | jQuery.Deferred.exceptionHook = function( error, stack ) {
13 |
14 | // Support: IE 8 - 9 only
15 | // Console exists when dev tools are open, which can happen at any time
16 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
17 | window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
18 | }
19 | };
20 |
21 | } );
22 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/queue/delay.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../queue",
4 | "../effects" // Delay is optional because of this dependency
5 | ], function( jQuery ) {
6 |
7 | "use strict";
8 |
9 | // Based off of the plugin by Clint Helfers, with permission.
10 | // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
11 | jQuery.fn.delay = function( time, type ) {
12 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
13 | type = type || "fx";
14 |
15 | return this.queue( type, function( next, hooks ) {
16 | var timeout = window.setTimeout( next, time );
17 | hooks.stop = function() {
18 | window.clearTimeout( timeout );
19 | };
20 | } );
21 | };
22 |
23 | return jQuery.fn.delay;
24 | } );
25 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/exports/global.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery, noGlobal ) {
4 |
5 | "use strict";
6 |
7 | var
8 |
9 | // Map over jQuery in case of overwrite
10 | _jQuery = window.jQuery,
11 |
12 | // Map over the $ in case of overwrite
13 | _$ = window.$;
14 |
15 | jQuery.noConflict = function( deep ) {
16 | if ( window.$ === jQuery ) {
17 | window.$ = _$;
18 | }
19 |
20 | if ( deep && window.jQuery === jQuery ) {
21 | window.jQuery = _jQuery;
22 | }
23 |
24 | return jQuery;
25 | };
26 |
27 | // Expose jQuery and $ identifiers, even in AMD
28 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
29 | // and CommonJS for browser emulators (#13566)
30 | if ( !noGlobal ) {
31 | window.jQuery = window.$ = jQuery;
32 | }
33 |
34 | } );
35 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/event/alias.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 |
4 | "../event",
5 | "./trigger"
6 | ], function( jQuery ) {
7 |
8 | "use strict";
9 |
10 | jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
11 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
12 | "change select submit keydown keypress keyup contextmenu" ).split( " " ),
13 | function( i, name ) {
14 |
15 | // Handle event binding
16 | jQuery.fn[ name ] = function( data, fn ) {
17 | return arguments.length > 0 ?
18 | this.on( name, null, data, fn ) :
19 | this.trigger( name );
20 | };
21 | } );
22 |
23 | jQuery.fn.extend( {
24 | hover: function( fnOver, fnOut ) {
25 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
26 | }
27 | } );
28 |
29 | } );
30 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/getAll.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/nodeName"
4 | ], function( jQuery, nodeName ) {
5 |
6 | "use strict";
7 |
8 | function getAll( context, tag ) {
9 |
10 | // Support: IE <=9 - 11 only
11 | // Use typeof to avoid zero-argument method invocation on host objects (#15151)
12 | var ret;
13 |
14 | if ( typeof context.getElementsByTagName !== "undefined" ) {
15 | ret = context.getElementsByTagName( tag || "*" );
16 |
17 | } else if ( typeof context.querySelectorAll !== "undefined" ) {
18 | ret = context.querySelectorAll( tag || "*" );
19 |
20 | } else {
21 | ret = [];
22 | }
23 |
24 | if ( tag === undefined || tag && nodeName( context, tag ) ) {
25 | return jQuery.merge( [ context ], ret );
26 | }
27 |
28 | return ret;
29 | }
30 |
31 | return getAll;
32 | } );
33 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/jquery.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./selector",
4 | "./traversing",
5 | "./callbacks",
6 | "./deferred",
7 | "./deferred/exceptionHook",
8 | "./core/ready",
9 | "./data",
10 | "./queue",
11 | "./queue/delay",
12 | "./attributes",
13 | "./event",
14 | "./event/alias",
15 | "./event/focusin",
16 | "./manipulation",
17 | "./manipulation/_evalUrl",
18 | "./wrap",
19 | "./css",
20 | "./css/hiddenVisibleSelectors",
21 | "./serialize",
22 | "./ajax",
23 | "./ajax/xhr",
24 | "./ajax/script",
25 | "./ajax/jsonp",
26 | "./ajax/load",
27 | "./event/ajax",
28 | "./effects",
29 | "./effects/animatedSelector",
30 | "./offset",
31 | "./dimensions",
32 | "./deprecated",
33 | "./exports/amd",
34 | "./exports/global"
35 | ], function( jQuery ) {
36 |
37 | "use strict";
38 |
39 | return jQuery;
40 |
41 | } );
42 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/wrapMap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | // We have to close these tags to support XHTML (#13200)
6 | var wrapMap = {
7 |
8 | // Support: IE <=9 only
9 | option: [ 1, "" ],
10 |
11 | // XHTML parsers do not magically insert elements in the
12 | // same way that tag soup parsers do. So we cannot shorten
13 | // this by omitting or other required elements.
14 | thead: [ 1, "" ],
15 | col: [ 2, "" ],
16 | tr: [ 2, "" ],
17 | td: [ 3, "" ],
18 |
19 | _default: [ 0, "", "" ]
20 | };
21 |
22 | // Support: IE <=9 only
23 | wrapMap.optgroup = wrapMap.option;
24 |
25 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
26 | wrapMap.th = wrapMap.td;
27 |
28 | return wrapMap;
29 | } );
30 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | ( function() {
9 | var input = document.createElement( "input" ),
10 | select = document.createElement( "select" ),
11 | opt = select.appendChild( document.createElement( "option" ) );
12 |
13 | input.type = "checkbox";
14 |
15 | // Support: Android <=4.3 only
16 | // Default value for a checkbox should be "on"
17 | support.checkOn = input.value !== "";
18 |
19 | // Support: IE <=11 only
20 | // Must access selectedIndex to make default options select
21 | support.optSelected = opt.selected;
22 |
23 | // Support: IE <=11 only
24 | // An input loses its value after becoming a radio
25 | input = document.createElement( "input" );
26 | input.value = "t";
27 | input.type = "radio";
28 | support.radioValue = input.value === "t";
29 | } )();
30 |
31 | return support;
32 |
33 | } );
34 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/deprecated.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/nodeName"
4 | ], function( jQuery, nodeName ) {
5 |
6 | "use strict";
7 |
8 | jQuery.fn.extend( {
9 |
10 | bind: function( types, data, fn ) {
11 | return this.on( types, null, data, fn );
12 | },
13 | unbind: function( types, fn ) {
14 | return this.off( types, null, fn );
15 | },
16 |
17 | delegate: function( selector, types, data, fn ) {
18 | return this.on( types, selector, data, fn );
19 | },
20 | undelegate: function( selector, types, fn ) {
21 |
22 | // ( namespace ) or ( selector, types [, fn] )
23 | return arguments.length === 1 ?
24 | this.off( selector, "**" ) :
25 | this.off( types, selector || "**", fn );
26 | }
27 | } );
28 |
29 | jQuery.holdReady = function( hold ) {
30 | if ( hold ) {
31 | jQuery.readyWait++;
32 | } else {
33 | jQuery.ready( true );
34 | }
35 | };
36 | jQuery.isArray = Array.isArray;
37 | jQuery.parseJSON = JSON.parse;
38 | jQuery.nodeName = nodeName;
39 |
40 | } );
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 Meysam GanJi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/exports/amd.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Register as a named AMD module, since jQuery can be concatenated with other
8 | // files that may use define, but not via a proper concatenation script that
9 | // understands anonymous AMD modules. A named AMD is safest and most robust
10 | // way to register. Lowercase jquery is used because AMD module names are
11 | // derived from file names, and jQuery is normally delivered in a lowercase
12 | // file name. Do this after creating the global so that if an AMD module wants
13 | // to call noConflict to hide this version of jQuery, it will work.
14 |
15 | // Note that for maximum portability, libraries that are not jQuery should
16 | // declare themselves as anonymous modules, and avoid setting a global if an
17 | // AMD loader is present. jQuery is a special case. For more information, see
18 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
19 |
20 | if ( typeof define === "function" && define.amd ) {
21 | define( "jquery", [], function() {
22 | return jQuery;
23 | } );
24 | }
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/assets/node_modules/formBuilder/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | =====================
3 |
4 | Copyright © 2016 Kevin Chappell
5 |
6 | Permission is hereby granted, free of charge, to any person
7 | obtaining a copy of this software and associated documentation
8 | files (the “Software”), to deal in the Software without
9 | restriction, including without limitation the rights to use,
10 | copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the
12 | Software is furnished to do so, subject to the following
13 | conditions:
14 |
15 | The above copyright notice and this permission notice shall be
16 | included in all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 | OTHER DEALINGS IN THE SOFTWARE.
26 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | ( function() {
9 | var fragment = document.createDocumentFragment(),
10 | div = fragment.appendChild( document.createElement( "div" ) ),
11 | input = document.createElement( "input" );
12 |
13 | // Support: Android 4.0 - 4.3 only
14 | // Check state lost if the name is set (#11217)
15 | // Support: Windows Web Apps (WWA)
16 | // `name` and `type` must use .setAttribute for WWA (#14901)
17 | input.setAttribute( "type", "radio" );
18 | input.setAttribute( "checked", "checked" );
19 | input.setAttribute( "name", "t" );
20 |
21 | div.appendChild( input );
22 |
23 | // Support: Android <=4.1 only
24 | // Older WebKit doesn't clone checked state correctly in fragments
25 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
26 |
27 | // Support: IE <=11 only
28 | // Make sure textarea (and checkbox) defaultValue is properly cloned
29 | div.innerHTML = "";
30 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
31 | } )();
32 |
33 | return support;
34 |
35 | } );
36 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/var/isHiddenWithinTree.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 |
5 | // css is assumed
6 | ], function( jQuery ) {
7 | "use strict";
8 |
9 | // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
10 | // through the CSS cascade), which is useful in deciding whether or not to make it visible.
11 | // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
12 | // * A hidden ancestor does not force an element to be classified as hidden.
13 | // * Being disconnected from the document does not force an element to be classified as hidden.
14 | // These differences improve the behavior of .toggle() et al. when applied to elements that are
15 | // detached or contained within hidden ancestors (gh-2404, gh-2863).
16 | return function( elem, el ) {
17 |
18 | // isHiddenWithinTree might be called from jQuery#filter function;
19 | // in that case, element will be second argument
20 | elem = el || elem;
21 |
22 | // Inline style trumps all
23 | return elem.style.display === "none" ||
24 | elem.style.display === "" &&
25 |
26 | // Otherwise, check computed style
27 | // Support: Firefox <=43 - 45
28 | // Disconnected elements can have computed display: none, so first confirm that elem is
29 | // in the document.
30 | jQuery.contains( elem.ownerDocument, elem ) &&
31 |
32 | jQuery.css( elem, "display" ) === "none";
33 | };
34 | } );
35 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/access.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Multifunctional method to get and set values of a collection
8 | // The value/s can optionally be executed if it's a function
9 | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
10 | var i = 0,
11 | len = elems.length,
12 | bulk = key == null;
13 |
14 | // Sets many values
15 | if ( jQuery.type( key ) === "object" ) {
16 | chainable = true;
17 | for ( i in key ) {
18 | access( elems, fn, i, key[ i ], true, emptyGet, raw );
19 | }
20 |
21 | // Sets one value
22 | } else if ( value !== undefined ) {
23 | chainable = true;
24 |
25 | if ( !jQuery.isFunction( value ) ) {
26 | raw = true;
27 | }
28 |
29 | if ( bulk ) {
30 |
31 | // Bulk operations run against the entire set
32 | if ( raw ) {
33 | fn.call( elems, value );
34 | fn = null;
35 |
36 | // ...except when executing function values
37 | } else {
38 | bulk = fn;
39 | fn = function( elem, key, value ) {
40 | return bulk.call( jQuery( elem ), value );
41 | };
42 | }
43 | }
44 |
45 | if ( fn ) {
46 | for ( ; i < len; i++ ) {
47 | fn(
48 | elems[ i ], key, raw ?
49 | value :
50 | value.call( elems[ i ], i, fn( elems[ i ], key ) )
51 | );
52 | }
53 | }
54 | }
55 |
56 | if ( chainable ) {
57 | return elems;
58 | }
59 |
60 | // Gets
61 | if ( bulk ) {
62 | return fn.call( elems );
63 | }
64 |
65 | return len ? fn( elems[ 0 ], key ) : emptyGet;
66 | };
67 |
68 | return access;
69 |
70 | } );
71 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright JS Foundation and other contributors, https://js.foundation/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/event/focusin.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../data/var/dataPriv",
4 | "./support",
5 |
6 | "../event",
7 | "./trigger"
8 | ], function( jQuery, dataPriv, support ) {
9 |
10 | "use strict";
11 |
12 | // Support: Firefox <=44
13 | // Firefox doesn't have focus(in | out) events
14 | // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
15 | //
16 | // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
17 | // focus(in | out) events fire after focus & blur events,
18 | // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
19 | // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
20 | if ( !support.focusin ) {
21 | jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
22 |
23 | // Attach a single capturing handler on the document while someone wants focusin/focusout
24 | var handler = function( event ) {
25 | jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
26 | };
27 |
28 | jQuery.event.special[ fix ] = {
29 | setup: function() {
30 | var doc = this.ownerDocument || this,
31 | attaches = dataPriv.access( doc, fix );
32 |
33 | if ( !attaches ) {
34 | doc.addEventListener( orig, handler, true );
35 | }
36 | dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
37 | },
38 | teardown: function() {
39 | var doc = this.ownerDocument || this,
40 | attaches = dataPriv.access( doc, fix ) - 1;
41 |
42 | if ( !attaches ) {
43 | doc.removeEventListener( orig, handler, true );
44 | dataPriv.remove( doc, fix );
45 |
46 | } else {
47 | dataPriv.access( doc, fix, attaches );
48 | }
49 | }
50 | };
51 | } );
52 | }
53 |
54 | return jQuery;
55 | } );
56 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/external/sizzle/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright jQuery Foundation and other contributors, https://jquery.org/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/sizzle
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/wrap.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/init",
4 | "./manipulation", // clone
5 | "./traversing" // parent, contents
6 | ], function( jQuery ) {
7 |
8 | "use strict";
9 |
10 | jQuery.fn.extend( {
11 | wrapAll: function( html ) {
12 | var wrap;
13 |
14 | if ( this[ 0 ] ) {
15 | if ( jQuery.isFunction( html ) ) {
16 | html = html.call( this[ 0 ] );
17 | }
18 |
19 | // The elements to wrap the target around
20 | wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
21 |
22 | if ( this[ 0 ].parentNode ) {
23 | wrap.insertBefore( this[ 0 ] );
24 | }
25 |
26 | wrap.map( function() {
27 | var elem = this;
28 |
29 | while ( elem.firstElementChild ) {
30 | elem = elem.firstElementChild;
31 | }
32 |
33 | return elem;
34 | } ).append( this );
35 | }
36 |
37 | return this;
38 | },
39 |
40 | wrapInner: function( html ) {
41 | if ( jQuery.isFunction( html ) ) {
42 | return this.each( function( i ) {
43 | jQuery( this ).wrapInner( html.call( this, i ) );
44 | } );
45 | }
46 |
47 | return this.each( function() {
48 | var self = jQuery( this ),
49 | contents = self.contents();
50 |
51 | if ( contents.length ) {
52 | contents.wrapAll( html );
53 |
54 | } else {
55 | self.append( html );
56 | }
57 | } );
58 | },
59 |
60 | wrap: function( html ) {
61 | var isFunction = jQuery.isFunction( html );
62 |
63 | return this.each( function( i ) {
64 | jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
65 | } );
66 | },
67 |
68 | unwrap: function( selector ) {
69 | this.parent( selector ).not( "body" ).each( function() {
70 | jQuery( this ).replaceWith( this.childNodes );
71 | } );
72 | return this;
73 | }
74 | } );
75 |
76 | return jQuery;
77 | } );
78 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/parseHTML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "./var/rsingleTag",
5 | "../manipulation/buildFragment",
6 |
7 | // This is the only module that needs core/support
8 | "./support"
9 | ], function( jQuery, document, rsingleTag, buildFragment, support ) {
10 |
11 | "use strict";
12 |
13 | // Argument "data" should be string of html
14 | // context (optional): If specified, the fragment will be created in this context,
15 | // defaults to document
16 | // keepScripts (optional): If true, will include scripts passed in the html string
17 | jQuery.parseHTML = function( data, context, keepScripts ) {
18 | if ( typeof data !== "string" ) {
19 | return [];
20 | }
21 | if ( typeof context === "boolean" ) {
22 | keepScripts = context;
23 | context = false;
24 | }
25 |
26 | var base, parsed, scripts;
27 |
28 | if ( !context ) {
29 |
30 | // Stop scripts or inline event handlers from being executed immediately
31 | // by using document.implementation
32 | if ( support.createHTMLDocument ) {
33 | context = document.implementation.createHTMLDocument( "" );
34 |
35 | // Set the base href for the created document
36 | // so any parsed elements with URLs
37 | // are based on the document's URL (gh-2965)
38 | base = context.createElement( "base" );
39 | base.href = document.location.href;
40 | context.head.appendChild( base );
41 | } else {
42 | context = document;
43 | }
44 | }
45 |
46 | parsed = rsingleTag.exec( data );
47 | scripts = !keepScripts && [];
48 |
49 | // Single tag
50 | if ( parsed ) {
51 | return [ context.createElement( parsed[ 1 ] ) ];
52 | }
53 |
54 | parsed = buildFragment( [ data ], context, scripts );
55 |
56 | if ( scripts && scripts.length ) {
57 | jQuery( scripts ).remove();
58 | }
59 |
60 | return jQuery.merge( [], parsed.childNodes );
61 | };
62 |
63 | return jQuery.parseHTML;
64 |
65 | } );
66 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/script.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "../ajax"
5 | ], function( jQuery, document ) {
6 |
7 | "use strict";
8 |
9 | // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
10 | jQuery.ajaxPrefilter( function( s ) {
11 | if ( s.crossDomain ) {
12 | s.contents.script = false;
13 | }
14 | } );
15 |
16 | // Install script dataType
17 | jQuery.ajaxSetup( {
18 | accepts: {
19 | script: "text/javascript, application/javascript, " +
20 | "application/ecmascript, application/x-ecmascript"
21 | },
22 | contents: {
23 | script: /\b(?:java|ecma)script\b/
24 | },
25 | converters: {
26 | "text script": function( text ) {
27 | jQuery.globalEval( text );
28 | return text;
29 | }
30 | }
31 | } );
32 |
33 | // Handle cache's special case and crossDomain
34 | jQuery.ajaxPrefilter( "script", function( s ) {
35 | if ( s.cache === undefined ) {
36 | s.cache = false;
37 | }
38 | if ( s.crossDomain ) {
39 | s.type = "GET";
40 | }
41 | } );
42 |
43 | // Bind script tag hack transport
44 | jQuery.ajaxTransport( "script", function( s ) {
45 |
46 | // This transport only deals with cross domain requests
47 | if ( s.crossDomain ) {
48 | var script, callback;
49 | return {
50 | send: function( _, complete ) {
51 | script = jQuery( "
20 | ```
21 |
22 | #### Babel
23 |
24 | [Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.
25 |
26 | ```js
27 | import $ from "jquery";
28 | ```
29 |
30 | #### Browserify/Webpack
31 |
32 | There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...
33 |
34 | ```js
35 | var $ = require("jquery");
36 | ```
37 |
38 | #### AMD (Asynchronous Module Definition)
39 |
40 | AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).
41 |
42 | ```js
43 | define(["jquery"], function($) {
44 |
45 | });
46 | ```
47 |
48 | ### Node
49 |
50 | To include jQuery in [Node](nodejs.org), first install with npm.
51 |
52 | ```sh
53 | npm install jquery
54 | ```
55 |
56 | For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.
57 |
58 | ```js
59 | require("jsdom").env("", function(err, window) {
60 | if (err) {
61 | console.error(err);
62 | return;
63 | }
64 |
65 | var $ = require("jquery")(window);
66 | });
67 | ```
68 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/ready.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "../core/readyException",
5 | "../deferred"
6 | ], function( jQuery, document ) {
7 |
8 | "use strict";
9 |
10 | // The deferred used on DOM ready
11 | var readyList = jQuery.Deferred();
12 |
13 | jQuery.fn.ready = function( fn ) {
14 |
15 | readyList
16 | .then( fn )
17 |
18 | // Wrap jQuery.readyException in a function so that the lookup
19 | // happens at the time of error handling instead of callback
20 | // registration.
21 | .catch( function( error ) {
22 | jQuery.readyException( error );
23 | } );
24 |
25 | return this;
26 | };
27 |
28 | jQuery.extend( {
29 |
30 | // Is the DOM ready to be used? Set to true once it occurs.
31 | isReady: false,
32 |
33 | // A counter to track how many items to wait for before
34 | // the ready event fires. See #6781
35 | readyWait: 1,
36 |
37 | // Handle when the DOM is ready
38 | ready: function( wait ) {
39 |
40 | // Abort if there are pending holds or we're already ready
41 | if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
42 | return;
43 | }
44 |
45 | // Remember that the DOM is ready
46 | jQuery.isReady = true;
47 |
48 | // If a normal DOM Ready event fired, decrement, and wait if need be
49 | if ( wait !== true && --jQuery.readyWait > 0 ) {
50 | return;
51 | }
52 |
53 | // If there are functions bound, to execute
54 | readyList.resolveWith( document, [ jQuery ] );
55 | }
56 | } );
57 |
58 | jQuery.ready.then = readyList.then;
59 |
60 | // The ready event handler and self cleanup method
61 | function completed() {
62 | document.removeEventListener( "DOMContentLoaded", completed );
63 | window.removeEventListener( "load", completed );
64 | jQuery.ready();
65 | }
66 |
67 | // Catch cases where $(document).ready() is called
68 | // after the browser event has already occurred.
69 | // Support: IE <=9 - 10 only
70 | // Older IE sometimes signals "interactive" too soon
71 | if ( document.readyState === "complete" ||
72 | ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
73 |
74 | // Handle it asynchronously to allow scripts the opportunity to delay ready
75 | window.setTimeout( jQuery.ready );
76 |
77 | } else {
78 |
79 | // Use the handy event callback
80 | document.addEventListener( "DOMContentLoaded", completed );
81 |
82 | // A fallback to window.onload, that will always work
83 | window.addEventListener( "load", completed );
84 | }
85 |
86 | } );
87 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/ready-no-deferred.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document"
4 | ], function( jQuery, document ) {
5 |
6 | "use strict";
7 |
8 | var readyCallbacks = [],
9 | whenReady = function( fn ) {
10 | readyCallbacks.push( fn );
11 | },
12 | executeReady = function( fn ) {
13 |
14 | // Prevent errors from freezing future callback execution (gh-1823)
15 | // Not backwards-compatible as this does not execute sync
16 | window.setTimeout( function() {
17 | fn.call( document, jQuery );
18 | } );
19 | };
20 |
21 | jQuery.fn.ready = function( fn ) {
22 | whenReady( fn );
23 | return this;
24 | };
25 |
26 | jQuery.extend( {
27 |
28 | // Is the DOM ready to be used? Set to true once it occurs.
29 | isReady: false,
30 |
31 | // A counter to track how many items to wait for before
32 | // the ready event fires. See #6781
33 | readyWait: 1,
34 |
35 | ready: function( wait ) {
36 |
37 | // Abort if there are pending holds or we're already ready
38 | if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
39 | return;
40 | }
41 |
42 | // Remember that the DOM is ready
43 | jQuery.isReady = true;
44 |
45 | // If a normal DOM Ready event fired, decrement, and wait if need be
46 | if ( wait !== true && --jQuery.readyWait > 0 ) {
47 | return;
48 | }
49 |
50 | whenReady = function( fn ) {
51 | readyCallbacks.push( fn );
52 |
53 | while ( readyCallbacks.length ) {
54 | fn = readyCallbacks.shift();
55 | if ( jQuery.isFunction( fn ) ) {
56 | executeReady( fn );
57 | }
58 | }
59 | };
60 |
61 | whenReady();
62 | }
63 | } );
64 |
65 | // Make jQuery.ready Promise consumable (gh-1778)
66 | jQuery.ready.then = jQuery.fn.ready;
67 |
68 | /**
69 | * The ready event handler and self cleanup method
70 | */
71 | function completed() {
72 | document.removeEventListener( "DOMContentLoaded", completed );
73 | window.removeEventListener( "load", completed );
74 | jQuery.ready();
75 | }
76 |
77 | // Catch cases where $(document).ready() is called
78 | // after the browser event has already occurred.
79 | // Support: IE9-10 only
80 | // Older IE sometimes signals "interactive" too soon
81 | if ( document.readyState === "complete" ||
82 | ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
83 |
84 | // Handle it asynchronously to allow scripts the opportunity to delay ready
85 | window.setTimeout( jQuery.ready );
86 |
87 | } else {
88 |
89 | // Use the handy event callback
90 | document.addEventListener( "DOMContentLoaded", completed );
91 |
92 | // A fallback to window.onload, that will always work
93 | window.addEventListener( "load", completed );
94 | }
95 |
96 | } );
97 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "title": "jQuery",
4 | "description": "JavaScript library for DOM operations",
5 | "version": "3.2.1",
6 | "main": "dist/jquery.js",
7 | "homepage": "https://jquery.com",
8 | "author": {
9 | "name": "JS Foundation and other contributors",
10 | "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/jquery/jquery.git"
15 | },
16 | "keywords": [
17 | "jquery",
18 | "javascript",
19 | "browser",
20 | "library"
21 | ],
22 | "bugs": {
23 | "url": "https://github.com/jquery/jquery/issues"
24 | },
25 | "license": "MIT",
26 | "dependencies": {},
27 | "devDependencies": {
28 | "babel-preset-es2015": "6.6.0",
29 | "commitplease": "2.6.1",
30 | "core-js": "2.2.2",
31 | "cross-spawn": "2.2.3",
32 | "eslint-config-jquery": "1.0.0",
33 | "grunt": "1.0.1",
34 | "grunt-babel": "6.0.0",
35 | "grunt-cli": "1.2.0",
36 | "grunt-compare-size": "0.4.2",
37 | "grunt-contrib-uglify": "1.0.1",
38 | "grunt-contrib-watch": "1.0.0",
39 | "grunt-eslint": "19.0.0",
40 | "grunt-git-authors": "3.2.0",
41 | "grunt-jsonlint": "1.0.7",
42 | "grunt-newer": "1.2.0",
43 | "grunt-npmcopy": "0.1.0",
44 | "gzip-js": "0.3.2",
45 | "husky": "0.11.4",
46 | "insight": "0.8.1",
47 | "jsdom": "5.6.1",
48 | "load-grunt-tasks": "3.5.0",
49 | "native-promise-only": "0.8.1",
50 | "promises-aplus-tests": "2.1.2",
51 | "q": "1.4.1",
52 | "qunit-assert-step": "1.0.3",
53 | "qunitjs": "1.23.1",
54 | "requirejs": "2.2.0",
55 | "sinon": "1.17.3",
56 | "sizzle": "2.3.3",
57 | "strip-json-comments": "2.0.1",
58 | "testswarm": "1.1.0"
59 | },
60 | "scripts": {
61 | "build": "npm install && grunt",
62 | "start": "grunt watch",
63 | "test": "grunt && grunt test:slow",
64 | "precommit": "grunt lint:newer",
65 | "commitmsg": "node node_modules/commitplease"
66 | },
67 | "commitplease": {
68 | "nohook": true,
69 | "components": [
70 | "Docs",
71 | "Tests",
72 | "Build",
73 | "Support",
74 | "Release",
75 | "Core",
76 | "Ajax",
77 | "Attributes",
78 | "Callbacks",
79 | "CSS",
80 | "Data",
81 | "Deferred",
82 | "Deprecated",
83 | "Dimensions",
84 | "Effects",
85 | "Event",
86 | "Manipulation",
87 | "Offset",
88 | "Queue",
89 | "Selector",
90 | "Serialize",
91 | "Traversing",
92 | "Wrap"
93 | ],
94 | "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
95 | "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "../var/documentElement",
5 | "../var/support"
6 | ], function( jQuery, document, documentElement, support ) {
7 |
8 | "use strict";
9 |
10 | ( function() {
11 |
12 | // Executing both pixelPosition & boxSizingReliable tests require only one layout
13 | // so they're executed at the same time to save the second computation.
14 | function computeStyleTests() {
15 |
16 | // This is a singleton, we need to execute it only once
17 | if ( !div ) {
18 | return;
19 | }
20 |
21 | div.style.cssText =
22 | "box-sizing:border-box;" +
23 | "position:relative;display:block;" +
24 | "margin:auto;border:1px;padding:1px;" +
25 | "top:1%;width:50%";
26 | div.innerHTML = "";
27 | documentElement.appendChild( container );
28 |
29 | var divStyle = window.getComputedStyle( div );
30 | pixelPositionVal = divStyle.top !== "1%";
31 |
32 | // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
33 | reliableMarginLeftVal = divStyle.marginLeft === "2px";
34 | boxSizingReliableVal = divStyle.width === "4px";
35 |
36 | // Support: Android 4.0 - 4.3 only
37 | // Some styles come back with percentage values, even though they shouldn't
38 | div.style.marginRight = "50%";
39 | pixelMarginRightVal = divStyle.marginRight === "4px";
40 |
41 | documentElement.removeChild( container );
42 |
43 | // Nullify the div so it wouldn't be stored in the memory and
44 | // it will also be a sign that checks already performed
45 | div = null;
46 | }
47 |
48 | var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
49 | container = document.createElement( "div" ),
50 | div = document.createElement( "div" );
51 |
52 | // Finish early in limited (non-browser) environments
53 | if ( !div.style ) {
54 | return;
55 | }
56 |
57 | // Support: IE <=9 - 11 only
58 | // Style of cloned element affects source element cloned (#8908)
59 | div.style.backgroundClip = "content-box";
60 | div.cloneNode( true ).style.backgroundClip = "";
61 | support.clearCloneStyle = div.style.backgroundClip === "content-box";
62 |
63 | container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
64 | "padding:0;margin-top:1px;position:absolute";
65 | container.appendChild( div );
66 |
67 | jQuery.extend( support, {
68 | pixelPosition: function() {
69 | computeStyleTests();
70 | return pixelPositionVal;
71 | },
72 | boxSizingReliable: function() {
73 | computeStyleTests();
74 | return boxSizingReliableVal;
75 | },
76 | pixelMarginRight: function() {
77 | computeStyleTests();
78 | return pixelMarginRightVal;
79 | },
80 | reliableMarginLeft: function() {
81 | computeStyleTests();
82 | return reliableMarginLeftVal;
83 | }
84 | } );
85 | } )();
86 |
87 | return support;
88 |
89 | } );
90 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/css/showHide.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../data/var/dataPriv",
4 | "../css/var/isHiddenWithinTree"
5 | ], function( jQuery, dataPriv, isHiddenWithinTree ) {
6 |
7 | "use strict";
8 |
9 | var defaultDisplayMap = {};
10 |
11 | function getDefaultDisplay( elem ) {
12 | var temp,
13 | doc = elem.ownerDocument,
14 | nodeName = elem.nodeName,
15 | display = defaultDisplayMap[ nodeName ];
16 |
17 | if ( display ) {
18 | return display;
19 | }
20 |
21 | temp = doc.body.appendChild( doc.createElement( nodeName ) );
22 | display = jQuery.css( temp, "display" );
23 |
24 | temp.parentNode.removeChild( temp );
25 |
26 | if ( display === "none" ) {
27 | display = "block";
28 | }
29 | defaultDisplayMap[ nodeName ] = display;
30 |
31 | return display;
32 | }
33 |
34 | function showHide( elements, show ) {
35 | var display, elem,
36 | values = [],
37 | index = 0,
38 | length = elements.length;
39 |
40 | // Determine new display value for elements that need to change
41 | for ( ; index < length; index++ ) {
42 | elem = elements[ index ];
43 | if ( !elem.style ) {
44 | continue;
45 | }
46 |
47 | display = elem.style.display;
48 | if ( show ) {
49 |
50 | // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
51 | // check is required in this first loop unless we have a nonempty display value (either
52 | // inline or about-to-be-restored)
53 | if ( display === "none" ) {
54 | values[ index ] = dataPriv.get( elem, "display" ) || null;
55 | if ( !values[ index ] ) {
56 | elem.style.display = "";
57 | }
58 | }
59 | if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
60 | values[ index ] = getDefaultDisplay( elem );
61 | }
62 | } else {
63 | if ( display !== "none" ) {
64 | values[ index ] = "none";
65 |
66 | // Remember what we're overwriting
67 | dataPriv.set( elem, "display", display );
68 | }
69 | }
70 | }
71 |
72 | // Set the display of the elements in a second loop to avoid constant reflow
73 | for ( index = 0; index < length; index++ ) {
74 | if ( values[ index ] != null ) {
75 | elements[ index ].style.display = values[ index ];
76 | }
77 | }
78 |
79 | return elements;
80 | }
81 |
82 | jQuery.fn.extend( {
83 | show: function() {
84 | return showHide( this, true );
85 | },
86 | hide: function() {
87 | return showHide( this );
88 | },
89 | toggle: function( state ) {
90 | if ( typeof state === "boolean" ) {
91 | return state ? this.show() : this.hide();
92 | }
93 |
94 | return this.each( function() {
95 | if ( isHiddenWithinTree( this ) ) {
96 | jQuery( this ).show();
97 | } else {
98 | jQuery( this ).hide();
99 | }
100 | } );
101 | }
102 | } );
103 |
104 | return showHide;
105 | } );
106 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/manipulation/buildFragment.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "./var/rtagName",
4 | "./var/rscriptType",
5 | "./wrapMap",
6 | "./getAll",
7 | "./setGlobalEval"
8 | ], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
9 |
10 | "use strict";
11 |
12 | var rhtml = /<|?\w+;/;
13 |
14 | function buildFragment( elems, context, scripts, selection, ignored ) {
15 | var elem, tmp, tag, wrap, contains, j,
16 | fragment = context.createDocumentFragment(),
17 | nodes = [],
18 | i = 0,
19 | l = elems.length;
20 |
21 | for ( ; i < l; i++ ) {
22 | elem = elems[ i ];
23 |
24 | if ( elem || elem === 0 ) {
25 |
26 | // Add nodes directly
27 | if ( jQuery.type( elem ) === "object" ) {
28 |
29 | // Support: Android <=4.0 only, PhantomJS 1 only
30 | // push.apply(_, arraylike) throws on ancient WebKit
31 | jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
32 |
33 | // Convert non-html into a text node
34 | } else if ( !rhtml.test( elem ) ) {
35 | nodes.push( context.createTextNode( elem ) );
36 |
37 | // Convert html into DOM nodes
38 | } else {
39 | tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
40 |
41 | // Deserialize a standard representation
42 | tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
43 | wrap = wrapMap[ tag ] || wrapMap._default;
44 | tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
45 |
46 | // Descend through wrappers to the right content
47 | j = wrap[ 0 ];
48 | while ( j-- ) {
49 | tmp = tmp.lastChild;
50 | }
51 |
52 | // Support: Android <=4.0 only, PhantomJS 1 only
53 | // push.apply(_, arraylike) throws on ancient WebKit
54 | jQuery.merge( nodes, tmp.childNodes );
55 |
56 | // Remember the top-level container
57 | tmp = fragment.firstChild;
58 |
59 | // Ensure the created nodes are orphaned (#12392)
60 | tmp.textContent = "";
61 | }
62 | }
63 | }
64 |
65 | // Remove wrapper from fragment
66 | fragment.textContent = "";
67 |
68 | i = 0;
69 | while ( ( elem = nodes[ i++ ] ) ) {
70 |
71 | // Skip elements already in the context collection (trac-4087)
72 | if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
73 | if ( ignored ) {
74 | ignored.push( elem );
75 | }
76 | continue;
77 | }
78 |
79 | contains = jQuery.contains( elem.ownerDocument, elem );
80 |
81 | // Append to fragment
82 | tmp = getAll( fragment.appendChild( elem ), "script" );
83 |
84 | // Preserve script evaluation history
85 | if ( contains ) {
86 | setGlobalEval( tmp );
87 | }
88 |
89 | // Capture executables
90 | if ( scripts ) {
91 | j = 0;
92 | while ( ( elem = tmp[ j++ ] ) ) {
93 | if ( rscriptType.test( elem.type || "" ) ) {
94 | scripts.push( elem );
95 | }
96 | }
97 | }
98 | }
99 |
100 | return fragment;
101 | }
102 |
103 | return buildFragment;
104 | } );
105 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/traversing/findFilter.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/indexOf",
4 | "./var/rneedsContext",
5 | "../selector"
6 | ], function( jQuery, indexOf, rneedsContext ) {
7 |
8 | "use strict";
9 |
10 | var risSimple = /^.[^:#\[\.,]*$/;
11 |
12 | // Implement the identical functionality for filter and not
13 | function winnow( elements, qualifier, not ) {
14 | if ( jQuery.isFunction( qualifier ) ) {
15 | return jQuery.grep( elements, function( elem, i ) {
16 | return !!qualifier.call( elem, i, elem ) !== not;
17 | } );
18 | }
19 |
20 | // Single element
21 | if ( qualifier.nodeType ) {
22 | return jQuery.grep( elements, function( elem ) {
23 | return ( elem === qualifier ) !== not;
24 | } );
25 | }
26 |
27 | // Arraylike of elements (jQuery, arguments, Array)
28 | if ( typeof qualifier !== "string" ) {
29 | return jQuery.grep( elements, function( elem ) {
30 | return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
31 | } );
32 | }
33 |
34 | // Simple selector that can be filtered directly, removing non-Elements
35 | if ( risSimple.test( qualifier ) ) {
36 | return jQuery.filter( qualifier, elements, not );
37 | }
38 |
39 | // Complex selector, compare the two sets, removing non-Elements
40 | qualifier = jQuery.filter( qualifier, elements );
41 | return jQuery.grep( elements, function( elem ) {
42 | return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
43 | } );
44 | }
45 |
46 | jQuery.filter = function( expr, elems, not ) {
47 | var elem = elems[ 0 ];
48 |
49 | if ( not ) {
50 | expr = ":not(" + expr + ")";
51 | }
52 |
53 | if ( elems.length === 1 && elem.nodeType === 1 ) {
54 | return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
55 | }
56 |
57 | return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
58 | return elem.nodeType === 1;
59 | } ) );
60 | };
61 |
62 | jQuery.fn.extend( {
63 | find: function( selector ) {
64 | var i, ret,
65 | len = this.length,
66 | self = this;
67 |
68 | if ( typeof selector !== "string" ) {
69 | return this.pushStack( jQuery( selector ).filter( function() {
70 | for ( i = 0; i < len; i++ ) {
71 | if ( jQuery.contains( self[ i ], this ) ) {
72 | return true;
73 | }
74 | }
75 | } ) );
76 | }
77 |
78 | ret = this.pushStack( [] );
79 |
80 | for ( i = 0; i < len; i++ ) {
81 | jQuery.find( selector, self[ i ], ret );
82 | }
83 |
84 | return len > 1 ? jQuery.uniqueSort( ret ) : ret;
85 | },
86 | filter: function( selector ) {
87 | return this.pushStack( winnow( this, selector || [], false ) );
88 | },
89 | not: function( selector ) {
90 | return this.pushStack( winnow( this, selector || [], true ) );
91 | },
92 | is: function( selector ) {
93 | return !!winnow(
94 | this,
95 |
96 | // If this is a positional/relative selector, check membership in the returned set
97 | // so $("p:first").is("p:last") won't return true for a doc with two "p".
98 | typeof selector === "string" && rneedsContext.test( selector ) ?
99 | jQuery( selector ) :
100 | selector || [],
101 | false
102 | ).length;
103 | }
104 | } );
105 |
106 | } );
107 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/jsonp.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "./var/nonce",
4 | "./var/rquery",
5 | "../ajax"
6 | ], function( jQuery, nonce, rquery ) {
7 |
8 | "use strict";
9 |
10 | var oldCallbacks = [],
11 | rjsonp = /(=)\?(?=&|$)|\?\?/;
12 |
13 | // Default jsonp settings
14 | jQuery.ajaxSetup( {
15 | jsonp: "callback",
16 | jsonpCallback: function() {
17 | var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
18 | this[ callback ] = true;
19 | return callback;
20 | }
21 | } );
22 |
23 | // Detect, normalize options and install callbacks for jsonp requests
24 | jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
25 |
26 | var callbackName, overwritten, responseContainer,
27 | jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
28 | "url" :
29 | typeof s.data === "string" &&
30 | ( s.contentType || "" )
31 | .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
32 | rjsonp.test( s.data ) && "data"
33 | );
34 |
35 | // Handle iff the expected data type is "jsonp" or we have a parameter to set
36 | if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
37 |
38 | // Get callback name, remembering preexisting value associated with it
39 | callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
40 | s.jsonpCallback() :
41 | s.jsonpCallback;
42 |
43 | // Insert callback into url or form data
44 | if ( jsonProp ) {
45 | s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
46 | } else if ( s.jsonp !== false ) {
47 | s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
48 | }
49 |
50 | // Use data converter to retrieve json after script execution
51 | s.converters[ "script json" ] = function() {
52 | if ( !responseContainer ) {
53 | jQuery.error( callbackName + " was not called" );
54 | }
55 | return responseContainer[ 0 ];
56 | };
57 |
58 | // Force json dataType
59 | s.dataTypes[ 0 ] = "json";
60 |
61 | // Install callback
62 | overwritten = window[ callbackName ];
63 | window[ callbackName ] = function() {
64 | responseContainer = arguments;
65 | };
66 |
67 | // Clean-up function (fires after converters)
68 | jqXHR.always( function() {
69 |
70 | // If previous value didn't exist - remove it
71 | if ( overwritten === undefined ) {
72 | jQuery( window ).removeProp( callbackName );
73 |
74 | // Otherwise restore preexisting value
75 | } else {
76 | window[ callbackName ] = overwritten;
77 | }
78 |
79 | // Save back as free
80 | if ( s[ callbackName ] ) {
81 |
82 | // Make sure that re-using the options doesn't screw things around
83 | s.jsonpCallback = originalSettings.jsonpCallback;
84 |
85 | // Save the callback name for future use
86 | oldCallbacks.push( callbackName );
87 | }
88 |
89 | // Call if it was a function and we have a response
90 | if ( responseContainer && jQuery.isFunction( overwritten ) ) {
91 | overwritten( responseContainer[ 0 ] );
92 | }
93 |
94 | responseContainer = overwritten = undefined;
95 | } );
96 |
97 | // Delegate to script
98 | return "script";
99 | }
100 | } );
101 |
102 | } );
103 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes/prop.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/access",
4 | "./support",
5 | "../selector"
6 | ], function( jQuery, access, support ) {
7 |
8 | "use strict";
9 |
10 | var rfocusable = /^(?:input|select|textarea|button)$/i,
11 | rclickable = /^(?:a|area)$/i;
12 |
13 | jQuery.fn.extend( {
14 | prop: function( name, value ) {
15 | return access( this, jQuery.prop, name, value, arguments.length > 1 );
16 | },
17 |
18 | removeProp: function( name ) {
19 | return this.each( function() {
20 | delete this[ jQuery.propFix[ name ] || name ];
21 | } );
22 | }
23 | } );
24 |
25 | jQuery.extend( {
26 | prop: function( elem, name, value ) {
27 | var ret, hooks,
28 | nType = elem.nodeType;
29 |
30 | // Don't get/set properties on text, comment and attribute nodes
31 | if ( nType === 3 || nType === 8 || nType === 2 ) {
32 | return;
33 | }
34 |
35 | if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
36 |
37 | // Fix name and attach hooks
38 | name = jQuery.propFix[ name ] || name;
39 | hooks = jQuery.propHooks[ name ];
40 | }
41 |
42 | if ( value !== undefined ) {
43 | if ( hooks && "set" in hooks &&
44 | ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
45 | return ret;
46 | }
47 |
48 | return ( elem[ name ] = value );
49 | }
50 |
51 | if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
52 | return ret;
53 | }
54 |
55 | return elem[ name ];
56 | },
57 |
58 | propHooks: {
59 | tabIndex: {
60 | get: function( elem ) {
61 |
62 | // Support: IE <=9 - 11 only
63 | // elem.tabIndex doesn't always return the
64 | // correct value when it hasn't been explicitly set
65 | // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
66 | // Use proper attribute retrieval(#12072)
67 | var tabindex = jQuery.find.attr( elem, "tabindex" );
68 |
69 | if ( tabindex ) {
70 | return parseInt( tabindex, 10 );
71 | }
72 |
73 | if (
74 | rfocusable.test( elem.nodeName ) ||
75 | rclickable.test( elem.nodeName ) &&
76 | elem.href
77 | ) {
78 | return 0;
79 | }
80 |
81 | return -1;
82 | }
83 | }
84 | },
85 |
86 | propFix: {
87 | "for": "htmlFor",
88 | "class": "className"
89 | }
90 | } );
91 |
92 | // Support: IE <=11 only
93 | // Accessing the selectedIndex property
94 | // forces the browser to respect setting selected
95 | // on the option
96 | // The getter ensures a default option is selected
97 | // when in an optgroup
98 | // eslint rule "no-unused-expressions" is disabled for this code
99 | // since it considers such accessions noop
100 | if ( !support.optSelected ) {
101 | jQuery.propHooks.selected = {
102 | get: function( elem ) {
103 |
104 | /* eslint no-unused-expressions: "off" */
105 |
106 | var parent = elem.parentNode;
107 | if ( parent && parent.parentNode ) {
108 | parent.parentNode.selectedIndex;
109 | }
110 | return null;
111 | },
112 | set: function( elem ) {
113 |
114 | /* eslint no-unused-expressions: "off" */
115 |
116 | var parent = elem.parentNode;
117 | if ( parent ) {
118 | parent.selectedIndex;
119 |
120 | if ( parent.parentNode ) {
121 | parent.parentNode.selectedIndex;
122 | }
123 | }
124 | }
125 | };
126 | }
127 |
128 | jQuery.each( [
129 | "tabIndex",
130 | "readOnly",
131 | "maxLength",
132 | "cellSpacing",
133 | "cellPadding",
134 | "rowSpan",
135 | "colSpan",
136 | "useMap",
137 | "frameBorder",
138 | "contentEditable"
139 | ], function() {
140 | jQuery.propFix[ this.toLowerCase() ] = this;
141 | } );
142 |
143 | } );
144 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/serialize.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./manipulation/var/rcheckableType",
4 | "./core/init",
5 | "./traversing", // filter
6 | "./attributes/prop"
7 | ], function( jQuery, rcheckableType ) {
8 |
9 | "use strict";
10 |
11 | var
12 | rbracket = /\[\]$/,
13 | rCRLF = /\r?\n/g,
14 | rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
15 | rsubmittable = /^(?:input|select|textarea|keygen)/i;
16 |
17 | function buildParams( prefix, obj, traditional, add ) {
18 | var name;
19 |
20 | if ( Array.isArray( obj ) ) {
21 |
22 | // Serialize array item.
23 | jQuery.each( obj, function( i, v ) {
24 | if ( traditional || rbracket.test( prefix ) ) {
25 |
26 | // Treat each array item as a scalar.
27 | add( prefix, v );
28 |
29 | } else {
30 |
31 | // Item is non-scalar (array or object), encode its numeric index.
32 | buildParams(
33 | prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
34 | v,
35 | traditional,
36 | add
37 | );
38 | }
39 | } );
40 |
41 | } else if ( !traditional && jQuery.type( obj ) === "object" ) {
42 |
43 | // Serialize object item.
44 | for ( name in obj ) {
45 | buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
46 | }
47 |
48 | } else {
49 |
50 | // Serialize scalar item.
51 | add( prefix, obj );
52 | }
53 | }
54 |
55 | // Serialize an array of form elements or a set of
56 | // key/values into a query string
57 | jQuery.param = function( a, traditional ) {
58 | var prefix,
59 | s = [],
60 | add = function( key, valueOrFunction ) {
61 |
62 | // If value is a function, invoke it and use its return value
63 | var value = jQuery.isFunction( valueOrFunction ) ?
64 | valueOrFunction() :
65 | valueOrFunction;
66 |
67 | s[ s.length ] = encodeURIComponent( key ) + "=" +
68 | encodeURIComponent( value == null ? "" : value );
69 | };
70 |
71 | // If an array was passed in, assume that it is an array of form elements.
72 | if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
73 |
74 | // Serialize the form elements
75 | jQuery.each( a, function() {
76 | add( this.name, this.value );
77 | } );
78 |
79 | } else {
80 |
81 | // If traditional, encode the "old" way (the way 1.3.2 or older
82 | // did it), otherwise encode params recursively.
83 | for ( prefix in a ) {
84 | buildParams( prefix, a[ prefix ], traditional, add );
85 | }
86 | }
87 |
88 | // Return the resulting serialization
89 | return s.join( "&" );
90 | };
91 |
92 | jQuery.fn.extend( {
93 | serialize: function() {
94 | return jQuery.param( this.serializeArray() );
95 | },
96 | serializeArray: function() {
97 | return this.map( function() {
98 |
99 | // Can add propHook for "elements" to filter or add form elements
100 | var elements = jQuery.prop( this, "elements" );
101 | return elements ? jQuery.makeArray( elements ) : this;
102 | } )
103 | .filter( function() {
104 | var type = this.type;
105 |
106 | // Use .is( ":disabled" ) so that fieldset[disabled] works
107 | return this.name && !jQuery( this ).is( ":disabled" ) &&
108 | rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
109 | ( this.checked || !rcheckableType.test( type ) );
110 | } )
111 | .map( function( i, elem ) {
112 | var val = jQuery( this ).val();
113 |
114 | if ( val == null ) {
115 | return null;
116 | }
117 |
118 | if ( Array.isArray( val ) ) {
119 | return jQuery.map( val, function( val ) {
120 | return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
121 | } );
122 | }
123 |
124 | return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
125 | } ).get();
126 | }
127 | } );
128 |
129 | return jQuery;
130 | } );
131 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/queue.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./data/var/dataPriv",
4 | "./deferred",
5 | "./callbacks"
6 | ], function( jQuery, dataPriv ) {
7 |
8 | "use strict";
9 |
10 | jQuery.extend( {
11 | queue: function( elem, type, data ) {
12 | var queue;
13 |
14 | if ( elem ) {
15 | type = ( type || "fx" ) + "queue";
16 | queue = dataPriv.get( elem, type );
17 |
18 | // Speed up dequeue by getting out quickly if this is just a lookup
19 | if ( data ) {
20 | if ( !queue || Array.isArray( data ) ) {
21 | queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
22 | } else {
23 | queue.push( data );
24 | }
25 | }
26 | return queue || [];
27 | }
28 | },
29 |
30 | dequeue: function( elem, type ) {
31 | type = type || "fx";
32 |
33 | var queue = jQuery.queue( elem, type ),
34 | startLength = queue.length,
35 | fn = queue.shift(),
36 | hooks = jQuery._queueHooks( elem, type ),
37 | next = function() {
38 | jQuery.dequeue( elem, type );
39 | };
40 |
41 | // If the fx queue is dequeued, always remove the progress sentinel
42 | if ( fn === "inprogress" ) {
43 | fn = queue.shift();
44 | startLength--;
45 | }
46 |
47 | if ( fn ) {
48 |
49 | // Add a progress sentinel to prevent the fx queue from being
50 | // automatically dequeued
51 | if ( type === "fx" ) {
52 | queue.unshift( "inprogress" );
53 | }
54 |
55 | // Clear up the last queue stop function
56 | delete hooks.stop;
57 | fn.call( elem, next, hooks );
58 | }
59 |
60 | if ( !startLength && hooks ) {
61 | hooks.empty.fire();
62 | }
63 | },
64 |
65 | // Not public - generate a queueHooks object, or return the current one
66 | _queueHooks: function( elem, type ) {
67 | var key = type + "queueHooks";
68 | return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
69 | empty: jQuery.Callbacks( "once memory" ).add( function() {
70 | dataPriv.remove( elem, [ type + "queue", key ] );
71 | } )
72 | } );
73 | }
74 | } );
75 |
76 | jQuery.fn.extend( {
77 | queue: function( type, data ) {
78 | var setter = 2;
79 |
80 | if ( typeof type !== "string" ) {
81 | data = type;
82 | type = "fx";
83 | setter--;
84 | }
85 |
86 | if ( arguments.length < setter ) {
87 | return jQuery.queue( this[ 0 ], type );
88 | }
89 |
90 | return data === undefined ?
91 | this :
92 | this.each( function() {
93 | var queue = jQuery.queue( this, type, data );
94 |
95 | // Ensure a hooks for this queue
96 | jQuery._queueHooks( this, type );
97 |
98 | if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
99 | jQuery.dequeue( this, type );
100 | }
101 | } );
102 | },
103 | dequeue: function( type ) {
104 | return this.each( function() {
105 | jQuery.dequeue( this, type );
106 | } );
107 | },
108 | clearQueue: function( type ) {
109 | return this.queue( type || "fx", [] );
110 | },
111 |
112 | // Get a promise resolved when queues of a certain type
113 | // are emptied (fx is the type by default)
114 | promise: function( type, obj ) {
115 | var tmp,
116 | count = 1,
117 | defer = jQuery.Deferred(),
118 | elements = this,
119 | i = this.length,
120 | resolve = function() {
121 | if ( !( --count ) ) {
122 | defer.resolveWith( elements, [ elements ] );
123 | }
124 | };
125 |
126 | if ( typeof type !== "string" ) {
127 | obj = type;
128 | type = undefined;
129 | }
130 | type = type || "fx";
131 |
132 | while ( i-- ) {
133 | tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
134 | if ( tmp && tmp.empty ) {
135 | count++;
136 | tmp.empty.add( resolve );
137 | }
138 | }
139 | resolve();
140 | return defer.promise( obj );
141 | }
142 | } );
143 |
144 | return jQuery;
145 | } );
146 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Yii2 Form Builder
2 | =================
3 | 🟥⚠️ _THIS PACKAGE IS ABANDONED. PLEASE SELECT ANOTHER PACKAGE OR FORK THIS REPOSITORY AND INFORM ME ON p.g.meysam [at] Gmail [dot] com TO REFER TO YOUR PACKAGE IN PACKAGIST_ ⚠️🟥
4 |
5 | A drag and drop form builder with jQuery for Yii2 which built upon to [jQuery FormBuilder](https://github.com/kevinchappell/formBuilder) plugin.
6 |
7 | Installation
8 | ------------
9 |
10 | The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
11 |
12 | Either run
13 |
14 | ```
15 | composer.phar require meysampg/yii2-formbuilder "*"
16 | ```
17 |
18 | or add
19 |
20 | ```
21 | "meysampg/yii2-formbuilder": "*"
22 | ```
23 |
24 | to the require section of your `composer.json` file.
25 |
26 |
27 | Usage
28 | -----
29 |
30 | Once the extension is installed, simply use it in your code by:
31 |
32 | ```php
33 | use meysampg\formbuilder\FormBuilder;
34 | ```
35 |
36 | and use it as a widget:
37 |
38 | ```php
39 | = FormBuilder::widget(); ?>
40 | ```
41 |
42 | Configurations
43 | --------------
44 |
45 | There are some properties that let you to easily control over form builder.
46 |
47 | | Property | Type | Description | Default Value |
48 | |-----|--------|----------------|---------------|
49 | |accessVariableName| string|JavaScript variable name for accessing to formbuilder contents in JS codes | `'formBuilderJsVariable'` |
50 | |data | array | list of elements for rendering as default elements of form builder| |
51 | |dataType| string| indicates that input and output data must be XML or JSON| `'xml'` |
52 | |elementType| string | HTML tag for form builder constructor | `'div'` |
53 | |messages| array | list of label strings on a desired language | |
54 | |language| string| Desired language for showing form builder (See translation section)| |
55 | | options | array | list of plugin options, see [FormBuilder Documentations](http://formbuilder.readthedocs.io/en/latest/) | |
56 | |showActionButtons| boolean | indicates that control buttons be showed or not | `false` |
57 |
58 | Examples
59 | -------------
60 | ```php
61 | = FormBuilder::widget([
62 | 'data' => [
63 | [
64 | "type" => "header",
65 | "subtype" => "h1",
66 | "label" => "Header",
67 | "class" => "header",
68 | ],
69 | [
70 | "type" => "button",
71 | "label" => "Button",
72 | "subtype" => "button",
73 | "class" => "button-input btn btn-warning",
74 | "name" => "button-1475845417456",
75 | "style" => "warning",
76 | ],
77 | ],
78 | ]); ?>
79 | ```
80 | 
81 |
82 | ----
83 | ```php
84 | = FormBuilder::widget([
85 | 'dataType' => 'json'
86 | ]); ?>
87 | ```
88 | 
89 |
90 | ---
91 | ```php
92 | = FormBuilder::widget([
93 | 'messages' => [
94 | "autocomplete" => "Autocomplete 23",
95 | ],
96 | ]); ?>
97 | ```
98 | 
99 |
100 | ---
101 | ```php
102 | = FormBuilder::widget([
103 | 'language' => 'fa-IR',
104 | ]); ?>
105 | ```
106 | 
107 |
108 | Translation
109 | -----------
110 |
111 | Simply copy `en.php` file in `messages` folder and rename it to your language (e.g. `ar`, `fr`, `fa`, `fa-IR` ...), translate strings, commit your changes and send a pull request.
112 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/effects/Tween.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../css"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | function Tween( elem, options, prop, end, easing ) {
9 | return new Tween.prototype.init( elem, options, prop, end, easing );
10 | }
11 | jQuery.Tween = Tween;
12 |
13 | Tween.prototype = {
14 | constructor: Tween,
15 | init: function( elem, options, prop, end, easing, unit ) {
16 | this.elem = elem;
17 | this.prop = prop;
18 | this.easing = easing || jQuery.easing._default;
19 | this.options = options;
20 | this.start = this.now = this.cur();
21 | this.end = end;
22 | this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
23 | },
24 | cur: function() {
25 | var hooks = Tween.propHooks[ this.prop ];
26 |
27 | return hooks && hooks.get ?
28 | hooks.get( this ) :
29 | Tween.propHooks._default.get( this );
30 | },
31 | run: function( percent ) {
32 | var eased,
33 | hooks = Tween.propHooks[ this.prop ];
34 |
35 | if ( this.options.duration ) {
36 | this.pos = eased = jQuery.easing[ this.easing ](
37 | percent, this.options.duration * percent, 0, 1, this.options.duration
38 | );
39 | } else {
40 | this.pos = eased = percent;
41 | }
42 | this.now = ( this.end - this.start ) * eased + this.start;
43 |
44 | if ( this.options.step ) {
45 | this.options.step.call( this.elem, this.now, this );
46 | }
47 |
48 | if ( hooks && hooks.set ) {
49 | hooks.set( this );
50 | } else {
51 | Tween.propHooks._default.set( this );
52 | }
53 | return this;
54 | }
55 | };
56 |
57 | Tween.prototype.init.prototype = Tween.prototype;
58 |
59 | Tween.propHooks = {
60 | _default: {
61 | get: function( tween ) {
62 | var result;
63 |
64 | // Use a property on the element directly when it is not a DOM element,
65 | // or when there is no matching style property that exists.
66 | if ( tween.elem.nodeType !== 1 ||
67 | tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
68 | return tween.elem[ tween.prop ];
69 | }
70 |
71 | // Passing an empty string as a 3rd parameter to .css will automatically
72 | // attempt a parseFloat and fallback to a string if the parse fails.
73 | // Simple values such as "10px" are parsed to Float;
74 | // complex values such as "rotate(1rad)" are returned as-is.
75 | result = jQuery.css( tween.elem, tween.prop, "" );
76 |
77 | // Empty strings, null, undefined and "auto" are converted to 0.
78 | return !result || result === "auto" ? 0 : result;
79 | },
80 | set: function( tween ) {
81 |
82 | // Use step hook for back compat.
83 | // Use cssHook if its there.
84 | // Use .style if available and use plain properties where available.
85 | if ( jQuery.fx.step[ tween.prop ] ) {
86 | jQuery.fx.step[ tween.prop ]( tween );
87 | } else if ( tween.elem.nodeType === 1 &&
88 | ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
89 | jQuery.cssHooks[ tween.prop ] ) ) {
90 | jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
91 | } else {
92 | tween.elem[ tween.prop ] = tween.now;
93 | }
94 | }
95 | }
96 | };
97 |
98 | // Support: IE <=9 only
99 | // Panic based approach to setting things on disconnected nodes
100 | Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
101 | set: function( tween ) {
102 | if ( tween.elem.nodeType && tween.elem.parentNode ) {
103 | tween.elem[ tween.prop ] = tween.now;
104 | }
105 | }
106 | };
107 |
108 | jQuery.easing = {
109 | linear: function( p ) {
110 | return p;
111 | },
112 | swing: function( p ) {
113 | return 0.5 - Math.cos( p * Math.PI ) / 2;
114 | },
115 | _default: "swing"
116 | };
117 |
118 | jQuery.fx = Tween.prototype.init;
119 |
120 | // Back compat <1.8 extension point
121 | jQuery.fx.step = {};
122 |
123 | } );
124 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/core/init.js:
--------------------------------------------------------------------------------
1 | // Initialize a jQuery object
2 | define( [
3 | "../core",
4 | "../var/document",
5 | "./var/rsingleTag",
6 |
7 | "../traversing/findFilter"
8 | ], function( jQuery, document, rsingleTag ) {
9 |
10 | "use strict";
11 |
12 | // A central reference to the root jQuery(document)
13 | var rootjQuery,
14 |
15 | // A simple way to check for HTML strings
16 | // Prioritize #id over to avoid XSS via location.hash (#9521)
17 | // Strict HTML recognition (#11290: must start with <)
18 | // Shortcut simple #id case for speed
19 | rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
20 |
21 | init = jQuery.fn.init = function( selector, context, root ) {
22 | var match, elem;
23 |
24 | // HANDLE: $(""), $(null), $(undefined), $(false)
25 | if ( !selector ) {
26 | return this;
27 | }
28 |
29 | // Method init() accepts an alternate rootjQuery
30 | // so migrate can support jQuery.sub (gh-2101)
31 | root = root || rootjQuery;
32 |
33 | // Handle HTML strings
34 | if ( typeof selector === "string" ) {
35 | if ( selector[ 0 ] === "<" &&
36 | selector[ selector.length - 1 ] === ">" &&
37 | selector.length >= 3 ) {
38 |
39 | // Assume that strings that start and end with <> are HTML and skip the regex check
40 | match = [ null, selector, null ];
41 |
42 | } else {
43 | match = rquickExpr.exec( selector );
44 | }
45 |
46 | // Match html or make sure no context is specified for #id
47 | if ( match && ( match[ 1 ] || !context ) ) {
48 |
49 | // HANDLE: $(html) -> $(array)
50 | if ( match[ 1 ] ) {
51 | context = context instanceof jQuery ? context[ 0 ] : context;
52 |
53 | // Option to run scripts is true for back-compat
54 | // Intentionally let the error be thrown if parseHTML is not present
55 | jQuery.merge( this, jQuery.parseHTML(
56 | match[ 1 ],
57 | context && context.nodeType ? context.ownerDocument || context : document,
58 | true
59 | ) );
60 |
61 | // HANDLE: $(html, props)
62 | if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
63 | for ( match in context ) {
64 |
65 | // Properties of context are called as methods if possible
66 | if ( jQuery.isFunction( this[ match ] ) ) {
67 | this[ match ]( context[ match ] );
68 |
69 | // ...and otherwise set as attributes
70 | } else {
71 | this.attr( match, context[ match ] );
72 | }
73 | }
74 | }
75 |
76 | return this;
77 |
78 | // HANDLE: $(#id)
79 | } else {
80 | elem = document.getElementById( match[ 2 ] );
81 |
82 | if ( elem ) {
83 |
84 | // Inject the element directly into the jQuery object
85 | this[ 0 ] = elem;
86 | this.length = 1;
87 | }
88 | return this;
89 | }
90 |
91 | // HANDLE: $(expr, $(...))
92 | } else if ( !context || context.jquery ) {
93 | return ( context || root ).find( selector );
94 |
95 | // HANDLE: $(expr, context)
96 | // (which is just equivalent to: $(context).find(expr)
97 | } else {
98 | return this.constructor( context ).find( selector );
99 | }
100 |
101 | // HANDLE: $(DOMElement)
102 | } else if ( selector.nodeType ) {
103 | this[ 0 ] = selector;
104 | this.length = 1;
105 | return this;
106 |
107 | // HANDLE: $(function)
108 | // Shortcut for document ready
109 | } else if ( jQuery.isFunction( selector ) ) {
110 | return root.ready !== undefined ?
111 | root.ready( selector ) :
112 |
113 | // Execute immediately if ready is not present
114 | selector( jQuery );
115 | }
116 |
117 | return jQuery.makeArray( selector, this );
118 | };
119 |
120 | // Give the init function the jQuery prototype for later instantiation
121 | init.prototype = jQuery.fn;
122 |
123 | // Initialize central reference
124 | rootjQuery = jQuery( document );
125 |
126 | return init;
127 |
128 | } );
129 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes/attr.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/access",
4 | "../core/nodeName",
5 | "./support",
6 | "../var/rnothtmlwhite",
7 | "../selector"
8 | ], function( jQuery, access, nodeName, support, rnothtmlwhite ) {
9 |
10 | "use strict";
11 |
12 | var boolHook,
13 | attrHandle = jQuery.expr.attrHandle;
14 |
15 | jQuery.fn.extend( {
16 | attr: function( name, value ) {
17 | return access( this, jQuery.attr, name, value, arguments.length > 1 );
18 | },
19 |
20 | removeAttr: function( name ) {
21 | return this.each( function() {
22 | jQuery.removeAttr( this, name );
23 | } );
24 | }
25 | } );
26 |
27 | jQuery.extend( {
28 | attr: function( elem, name, value ) {
29 | var ret, hooks,
30 | nType = elem.nodeType;
31 |
32 | // Don't get/set attributes on text, comment and attribute nodes
33 | if ( nType === 3 || nType === 8 || nType === 2 ) {
34 | return;
35 | }
36 |
37 | // Fallback to prop when attributes are not supported
38 | if ( typeof elem.getAttribute === "undefined" ) {
39 | return jQuery.prop( elem, name, value );
40 | }
41 |
42 | // Attribute hooks are determined by the lowercase version
43 | // Grab necessary hook if one is defined
44 | if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
45 | hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
46 | ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
47 | }
48 |
49 | if ( value !== undefined ) {
50 | if ( value === null ) {
51 | jQuery.removeAttr( elem, name );
52 | return;
53 | }
54 |
55 | if ( hooks && "set" in hooks &&
56 | ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
57 | return ret;
58 | }
59 |
60 | elem.setAttribute( name, value + "" );
61 | return value;
62 | }
63 |
64 | if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
65 | return ret;
66 | }
67 |
68 | ret = jQuery.find.attr( elem, name );
69 |
70 | // Non-existent attributes return null, we normalize to undefined
71 | return ret == null ? undefined : ret;
72 | },
73 |
74 | attrHooks: {
75 | type: {
76 | set: function( elem, value ) {
77 | if ( !support.radioValue && value === "radio" &&
78 | nodeName( elem, "input" ) ) {
79 | var val = elem.value;
80 | elem.setAttribute( "type", value );
81 | if ( val ) {
82 | elem.value = val;
83 | }
84 | return value;
85 | }
86 | }
87 | }
88 | },
89 |
90 | removeAttr: function( elem, value ) {
91 | var name,
92 | i = 0,
93 |
94 | // Attribute names can contain non-HTML whitespace characters
95 | // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
96 | attrNames = value && value.match( rnothtmlwhite );
97 |
98 | if ( attrNames && elem.nodeType === 1 ) {
99 | while ( ( name = attrNames[ i++ ] ) ) {
100 | elem.removeAttribute( name );
101 | }
102 | }
103 | }
104 | } );
105 |
106 | // Hooks for boolean attributes
107 | boolHook = {
108 | set: function( elem, value, name ) {
109 | if ( value === false ) {
110 |
111 | // Remove boolean attributes when set to false
112 | jQuery.removeAttr( elem, name );
113 | } else {
114 | elem.setAttribute( name, name );
115 | }
116 | return name;
117 | }
118 | };
119 |
120 | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
121 | var getter = attrHandle[ name ] || jQuery.find.attr;
122 |
123 | attrHandle[ name ] = function( elem, name, isXML ) {
124 | var ret, handle,
125 | lowercaseName = name.toLowerCase();
126 |
127 | if ( !isXML ) {
128 |
129 | // Avoid an infinite loop by temporarily removing this function from the getter
130 | handle = attrHandle[ lowercaseName ];
131 | attrHandle[ lowercaseName ] = ret;
132 | ret = getter( elem, name, isXML ) != null ?
133 | lowercaseName :
134 | null;
135 | attrHandle[ lowercaseName ] = handle;
136 | }
137 | return ret;
138 | };
139 | } );
140 |
141 | } );
142 |
--------------------------------------------------------------------------------
/messages/fa-IR.php:
--------------------------------------------------------------------------------
1 | "افزودن گزینه",
5 | "allFieldsRemoved" => "همهی فیلدها حذف شدند.",
6 | "allowSelect" => "قابل انتخاب",
7 | "allowMultipleFiles" => "اجازه به همهی کاربران برای آپلود چند فایل",
8 | "autocomplete" => "خودنگار",
9 | "button" => "دکمه",
10 | "cannotBeEmpty" => "فیلد نمیتواند خالی باشد",
11 | "checkboxGroup" => "چکباکس گروهی",
12 | "checkbox" => "چکباکس",
13 | "checkboxes" => "چکباکس",
14 | "className" => "کلاس",
15 | "clearAllMessage" => "آیا از حذف همهی فیلدها مطمئن هستید؟",
16 | "clearAll" => "حذف همه",
17 | "close" => "بستن",
18 | "content" => "محتوا",
19 | "copy" => "کپی در کلیپبورد",
20 | "copyButton" => "+",
21 | "copyButtonTooltip" => "کپی",
22 | "dateField" => "فیلد تاریخ",
23 | "description" => "متن کمکی",
24 | "descriptionField" => "توضیح",
25 | "devMode" => "حالت ویرایشگر",
26 | "editNames" => "ویرایش نامها",
27 | "editorTitle" => "المانهای فرم",
28 | "editXML" => "ویرایش XML",
29 | "enableOther" => "فعال بودن گزینه "دیگر"",
30 | "enableOtherMsg" => "به کاربران اجازه دهید تا یک گزینهی لیستنشده را انتخاب کنند",
31 | "fieldVars" => "متغیرهای فیلد",
32 | "fieldNonEditable" => "این فیلد قابل ویرایش نیست.",
33 | "fieldRemoveWarning" => "از حذف این فیلد مطمئنید؟",
34 | "fileUpload" => "آپلود فایل",
35 | "formUpdated" => "فرم بروز شد",
36 | "getStarted" => "یک فیلد را از ستون کناری به اینجا بکشید.",
37 | "header" => "عنوان",
38 | "hide" => "ویرایش",
39 | "hidden" => "فیلد مخفی",
40 | "label" => "برچسب",
41 | "labelEmpty" => "عنوان فیلد نباید خالی باشد",
42 | "limitRole" => "محدودیت دسترسی به یک یا چند نقش زیر:",
43 | "mandatory" => "ضروری",
44 | "max" => "بیشینه",
45 | "maxlength" => "بیشترین طول",
46 | "min" => "کمینه",
47 | "minOptionMessage" => "این فیلد حداقل به ۲ گزینه نیاز دارد.",
48 | "multipleFiles" => "فایل چندگانه",
49 | "name" => "نام",
50 | "no" => "نه",
51 | "number" => "عدد",
52 | "off" => "خاموش",
53 | "on" => "روشن",
54 | "option" => "انتخاب",
55 | "optional" => "انتخابی",
56 | "optionLabelPlaceholder" => "برچسب",
57 | "optionValuePlaceholder" => "مقدار",
58 | "optionEmpty" => "انتخاب مقدار ضروری است",
59 | "other" => "دیگر",
60 | "paragraph" => "پاراگراف",
61 | "placeholder" => "مکاننما",
62 | "placeholders" => [
63 | "value" => "مقدار",
64 | "label" => "برچسب",
65 | "text" => "",
66 | "textarea" => "",
67 | "email" => "ایمیل خود را وارد نمائید",
68 | "placeholder" => "",
69 | "className" => "کلاسها را فاصله جدا کنید",
70 | "password" => "رمز عبور خود را وارد نمائید"
71 | ],
72 | "preview" => "پیشنمایش",
73 | "radioGroup" => "رادیوگروهی",
74 | "radio" => "رادیو",
75 | "removeMessage" => "حذف المان",
76 | "remove" => "×",
77 | "required" => "ضروری",
78 | "richText" => "ویرایشگر توانا",
79 | "roles" => "دسترسی",
80 | "save" => "ذخیره",
81 | "selectOptions" => "گزینهها",
82 | "select" => "انتخاب",
83 | "selectColor" => "انتخاب رنگ",
84 | "selectionsMessage" => "اجازه انتخاب چندگانه",
85 | "size" => "اندازه",
86 | "sizes" => [
87 | "xs" => "خیلی کوچک",
88 | "sm" => "کوچک",
89 | "m" => "معمولی",
90 | "lg" => "بزرگ"
91 | ],
92 | "step" => "طول گام",
93 | "style" => "استایل",
94 | "styles" => [
95 | "btn" => [
96 | "default" => "پیشفرض",
97 | "danger" => "خطر",
98 | "info" => "اطلاعات",
99 | "primary" => "اولیه",
100 | "success" => "موفق",
101 | "warning" => "اخطار"
102 | ]
103 | ],
104 | "subtype" => "نوع",
105 | "text" => "فیلد متن",
106 | "textArea" => "ناحیه متن",
107 | "toggle" => "تعویض",
108 | "warning" => "هشدار!",
109 | "value" => "مقدار",
110 | "viewJSON" => "{ }",
111 | "viewXML" => "</>",
112 | "yes" => "بله",
113 | ];
114 |
--------------------------------------------------------------------------------
/messages/fa.php:
--------------------------------------------------------------------------------
1 | "افزودن گزینه",
5 | "allFieldsRemoved" => "همهی فیلدها حذف شدند.",
6 | "allowSelect" => "قابل انتخاب",
7 | "allowMultipleFiles" => "اجازه به همهی کاربران برای آپلود چند فایل",
8 | "autocomplete" => "خودنگار",
9 | "button" => "دکمه",
10 | "cannotBeEmpty" => "فیلد نمیتواند خالی باشد",
11 | "checkboxGroup" => "چکباکس گروهی",
12 | "checkbox" => "چکباکس",
13 | "checkboxes" => "چکباکس",
14 | "className" => "کلاس",
15 | "clearAllMessage" => "آیا از حذف همهی فیلدها مطمئن هستید؟",
16 | "clearAll" => "حذف همه",
17 | "close" => "بستن",
18 | "content" => "محتوا",
19 | "copy" => "کپی در کلیپبورد",
20 | "copyButton" => "+",
21 | "copyButtonTooltip" => "کپی",
22 | "dateField" => "فیلد تاریخ",
23 | "description" => "متن کمکی",
24 | "descriptionField" => "توضیح",
25 | "devMode" => "حالت ویرایشگر",
26 | "editNames" => "ویرایش نامها",
27 | "editorTitle" => "المانهای فرم",
28 | "editXML" => "ویرایش XML",
29 | "enableOther" => "فعال بودن گزینه "دیگر"",
30 | "enableOtherMsg" => "به کاربران اجازه دهید تا یک گزینهی لیستنشده را انتخاب کنند",
31 | "fieldVars" => "متغیرهای فیلد",
32 | "fieldNonEditable" => "این فیلد قابل ویرایش نیست.",
33 | "fieldRemoveWarning" => "از حذف این فیلد مطمئنید؟",
34 | "fileUpload" => "آپلود فایل",
35 | "formUpdated" => "فرم بروز شد",
36 | "getStarted" => "یک فیلد را از ستون کناری به اینجا بکشید.",
37 | "header" => "عنوان",
38 | "hide" => "ویرایش",
39 | "hidden" => "فیلد مخفی",
40 | "label" => "برچسب",
41 | "labelEmpty" => "عنوان فیلد نباید خالی باشد",
42 | "limitRole" => "محدودیت دسترسی به یک یا چند نقش زیر:",
43 | "mandatory" => "ضروری",
44 | "max" => "بیشینه",
45 | "maxlength" => "بیشترین طول",
46 | "min" => "کمینه",
47 | "minOptionMessage" => "این فیلد حداقل به ۲ گزینه نیاز دارد.",
48 | "multipleFiles" => "فایل چندگانه",
49 | "name" => "نام",
50 | "no" => "نه",
51 | "number" => "عدد",
52 | "off" => "خاموش",
53 | "on" => "روشن",
54 | "option" => "انتخاب",
55 | "optional" => "انتخابی",
56 | "optionLabelPlaceholder" => "برچسب",
57 | "optionValuePlaceholder" => "مقدار",
58 | "optionEmpty" => "انتخاب مقدار ضروری است",
59 | "other" => "دیگر",
60 | "paragraph" => "پاراگراف",
61 | "placeholder" => "مکاننما",
62 | "placeholders" => [
63 | "value" => "مقدار",
64 | "label" => "برچسب",
65 | "text" => "",
66 | "textarea" => "",
67 | "email" => "ایمیل خود را وارد نمائید",
68 | "placeholder" => "",
69 | "className" => "کلاسها را فاصله جدا کنید",
70 | "password" => "رمز عبور خود را وارد نمائید"
71 | ],
72 | "preview" => "پیشنمایش",
73 | "radioGroup" => "رادیوگروهی",
74 | "radio" => "رادیو",
75 | "removeMessage" => "حذف المان",
76 | "remove" => "×",
77 | "required" => "ضروری",
78 | "richText" => "ویرایشگر توانا",
79 | "roles" => "دسترسی",
80 | "save" => "ذخیره",
81 | "selectOptions" => "گزینهها",
82 | "select" => "انتخاب",
83 | "selectColor" => "انتخاب رنگ",
84 | "selectionsMessage" => "اجازه انتخاب چندگانه",
85 | "size" => "اندازه",
86 | "sizes" => [
87 | "xs" => "خیلی کوچک",
88 | "sm" => "کوچک",
89 | "m" => "معمولی",
90 | "lg" => "بزرگ"
91 | ],
92 | "step" => "طول گام",
93 | "style" => "استایل",
94 | "styles" => [
95 | "btn" => [
96 | "default" => "پیشفرض",
97 | "danger" => "خطر",
98 | "info" => "اطلاعات",
99 | "primary" => "اولیه",
100 | "success" => "موفق",
101 | "warning" => "اخطار"
102 | ]
103 | ],
104 | "subtype" => "نوع",
105 | "text" => "فیلد متن",
106 | "textArea" => "ناحیه متن",
107 | "toggle" => "تعویض",
108 | "warning" => "هشدار!",
109 | "value" => "مقدار",
110 | "viewJSON" => "{ }",
111 | "viewXML" => "</>",
112 | "yes" => "بله",
113 | ];
114 |
--------------------------------------------------------------------------------
/messages/en.php:
--------------------------------------------------------------------------------
1 | "Add Option",
5 | "allFieldsRemoved" => "All fields were removed.",
6 | "allowSelect" => "Allow Select",
7 | "allowMultipleFiles" => "Allow users to upload multiple files",
8 | "autocomplete" => "Autocomplete",
9 | "button" => "Button",
10 | "cannotBeEmpty" => "This field cannot be empty",
11 | "checkboxGroup" => "Checkbox Group",
12 | "checkbox" => "Checkbox",
13 | "checkboxes" => "Checkboxes",
14 | "className" => "Class",
15 | "clearAllMessage" => "Are you sure you want to clear all fields?",
16 | "clearAll" => "Clear",
17 | "close" => "Close",
18 | "content" => "Content",
19 | "copy" => "Copy To Clipboard",
20 | "copyButton" => "+",
21 | "copyButtonTooltip" => "Copy",
22 | "dateField" => "Date Field",
23 | "description" => "Help Text",
24 | "descriptionField" => "Description",
25 | "devMode" => "Developer Mode",
26 | "editNames" => "Edit Names",
27 | "editorTitle" => "Form Elements",
28 | "editXML" => "Edit XML",
29 | "enableOther" => "Enable "Other"",
30 | "enableOtherMsg" => "Let users to enter an unlisted option",
31 | "fieldVars" => "Field Variables",
32 | "fieldNonEditable" => "This field cannot be edited.",
33 | "fieldRemoveWarning" => "Are you sure you want to remove this field?",
34 | "fileUpload" => "File Upload",
35 | "formUpdated" => "Form Updated",
36 | "getStarted" => "Drag a field from the right to this area",
37 | "header" => "Header",
38 | "hide" => "Edit",
39 | "hidden" => "Hidden Input",
40 | "label" => "Label",
41 | "labelEmpty" => "Field Label cannot be empty",
42 | "limitRole" => "Limit access to one or more of the following roles:",
43 | "mandatory" => "Mandatory",
44 | "max" => "Maximum",
45 | "maxlength" => "Max Length",
46 | "min" => "Minimum",
47 | "minOptionMessage" => "This field requires a minimum of 2 options",
48 | "multipleFiles" => "Multiple Files",
49 | "name" => "Name",
50 | "no" => "No",
51 | "number" => "Number",
52 | "off" => "Off",
53 | "on" => "On",
54 | "option" => "Option",
55 | "optional" => "optional",
56 | "optionLabelPlaceholder" => "Label",
57 | "optionValuePlaceholder" => "Value",
58 | "optionEmpty" => "Option value required",
59 | "other" => "Other",
60 | "paragraph" => "Paragraph",
61 | "placeholder" => "Placeholder",
62 | "placeholders" => [
63 | "value" => "Value",
64 | "label" => "Label",
65 | "text" => "",
66 | "textarea" => "",
67 | "email" => "Enter you email",
68 | "placeholder" => "",
69 | "className" => "space separated classes",
70 | "password" => "Enter your password"
71 | ],
72 | "preview" => "Preview",
73 | "radioGroup" => "Radio Group",
74 | "radio" => "Radio",
75 | "removeMessage" => "Remove Element",
76 | "remove" => "×",
77 | "required" => "Required",
78 | "richText" => "Rich Text Editor",
79 | "roles" => "Access",
80 | "save" => "Save",
81 | "selectOptions" => "Options",
82 | "select" => "Select",
83 | "selectColor" => "Select Color",
84 | "selectionsMessage" => "Allow Multiple Selections",
85 | "size" => "Size",
86 | "sizes" => [
87 | "xs" => "Extra Small",
88 | "sm" => "Small",
89 | "m" => "Default",
90 | "lg" => "Large"
91 | ],
92 | "step" => "Step",
93 | "style" => "Style",
94 | "styles" => [
95 | "btn" => [
96 | "default" => "Default",
97 | "danger" => "Danger",
98 | "info" => "Info",
99 | "primary" => "Primary",
100 | "success" => "Success",
101 | "warning" => "Warning"
102 | ]
103 | ],
104 | "subtype" => "Type",
105 | "text" => "Text Field",
106 | "textArea" => "Text Area",
107 | "toggle" => "Toggle",
108 | "warning" => "Warning!",
109 | "value" => "Value",
110 | "viewJSON" => "{ }",
111 | "viewXML" => "</>",
112 | "yes" => "Yes",
113 | ];
114 |
--------------------------------------------------------------------------------
/messages/pt-BR.php:
--------------------------------------------------------------------------------
1 | "Adicionar Opção",
5 | "allFieldsRemoved" => "Todos os campos foram removidos.",
6 | "allowSelect" => "Permitir Seleção",
7 | "allowMultipleFiles" => "Permitir usuários enviar múltiplos arquivos",
8 | "autocomplete" => "Auto Completar",
9 | "button" => "Botão",
10 | "cannotBeEmpty" => "Este campo não pode ser vazio",
11 | "checkboxGroup" => "Grupo de Checkbox",
12 | "checkbox" => "Checkbox",
13 | "checkboxes" => "Checkboxes",
14 | "className" => "Classe",
15 | "clearAllMessage" => "Tem certeza que quer limpar todos os campos?",
16 | "clearAll" => "Limpar",
17 | "close" => "Fechar",
18 | "content" => "Conteúdo",
19 | "copy" => "Copiar para aárea de transferência",
20 | "copyButton" => "+",
21 | "copyButtonTooltip" => "Copiar",
22 | "dateField" => "Campo de data",
23 | "description" => "Texto de ajuda",
24 | "descriptionField" => "Descrição",
25 | "devMode" => "Mode de desenvolvimento",
26 | "editNames" => "Editar nomes",
27 | "editorTitle" => "Elementos de formulário",
28 | "editXML" => "Editar XML",
29 | "enableOther" => "Ativar "Outros"",
30 | "enableOtherMsg" => "Permitir usuário entrar com uma opção não listada",
31 | "fieldVars" => "Variáveis de campo",
32 | "fieldNonEditable" => "Este campo não pode ser editado.",
33 | "fieldRemoveWarning" => "Tem certeza que deseja remover este campo?",
34 | "fileUpload" => "Envio de arquivo",
35 | "formUpdated" => "Formulário atualizado",
36 | "getStarted" => "Arraste e solte um campo da direita para esta área",
37 | "header" => "Cabeçalho",
38 | "hide" => "Editar",
39 | "hidden" => "Campo Oculto",
40 | "label" => "Rótulo",
41 | "labelEmpty" => "O campo Rótulo não pode ser vazio",
42 | "limitRole" => "Limitar acesso a uma ou mais das seguintes funções:",
43 | "mandatory" => "Obrigatório",
44 | "max" => "Máximo",
45 | "maxlength" => "Tamanho máximo",
46 | "min" => "Mínimo",
47 | "minOptionMessage" => "Este campo requer um mínimo de 2 opções",
48 | "multipleFiles" => "Mútiplos arquivos",
49 | "name" => "Nome",
50 | "no" => "Não",
51 | "number" => "Número",
52 | "off" => "Desligar",
53 | "on" => "Ligar",
54 | "option" => "Opção",
55 | "optional" => "opcional",
56 | "optionLabelPlaceholder" => "Rótulo",
57 | "optionValuePlaceholder" => "Valor",
58 | "optionEmpty" => "Valor Opção requerido",
59 | "other" => "Outro",
60 | "paragraph" => "Parágrafo",
61 | "placeholder" => "Marcador de posição",
62 | "placeholders" => [
63 | "value" => "Valor",
64 | "label" => "Rótulo",
65 | "text" => "",
66 | "textarea" => "",
67 | "email" => "Digite o seu email",
68 | "placeholder" => "",
69 | "className" => "classes separadas por espaço",
70 | "password" => "Digite a sua senha"
71 | ],
72 | "preview" => "Pré-visualizar",
73 | "radioGroup" => "Grupo de Rádio",
74 | "radio" => "Rádio",
75 | "removeMessage" => "Remover Elemento",
76 | "remove" => "×",
77 | "required" => "Obrigatório",
78 | "richText" => "Editor de Texto",
79 | "roles" => "Acesso",
80 | "save" => "Salvar",
81 | "selectOptions" => "Optções",
82 | "select" => "Seletor",
83 | "selectColor" => "Cor do Seletor",
84 | "selectionsMessage" => "Permitir múltiplas seleções",
85 | "size" => "Tamanho",
86 | "sizes" => [
87 | "xs" => "Muito Pequeno",
88 | "sm" => "Pequeno",
89 | "m" => "Padrão",
90 | "lg" => "Grande"
91 | ],
92 | "step" => "Passo",
93 | "style" => "Estilo",
94 | "styles" => [
95 | "btn" => [
96 | "default" => "Padrão",
97 | "danger" => "Perigo",
98 | "info" => "Informação",
99 | "primary" => "Principal",
100 | "success" => "Sucesso",
101 | "warning" => "Aviso"
102 | ]
103 | ],
104 | "subtype" => "Tipo",
105 | "text" => "Campo de texto",
106 | "textArea" => "Área de texto",
107 | "toggle" => "Alternância",
108 | "warning" => "Aviso!",
109 | "value" => "Valor",
110 | "viewJSON" => "{ }",
111 | "viewXML" => "</>",
112 | "yes" => "Sim",
113 | ];
114 |
--------------------------------------------------------------------------------
/messages/es-MX.php:
--------------------------------------------------------------------------------
1 | "Agregar Opción",
5 | "allFieldsRemoved" => "Todos los campos fueron removidos.",
6 | "allowSelect" => "Permitir Selección",
7 | "allowMultipleFiles" => "Permitir a los usuarios cargar archivos múltiples",
8 | "autocomplete" => "Autocompletado",
9 | "button" => "Botón",
10 | "cannotBeEmpty" => "Este campo no puede ser vacío",
11 | "checkboxGroup" => "Grupo de Cajas de selección",
12 | "checkbox" => "Caja de Seleccion",
13 | "checkboxes" => "Cajas de Seleccion",
14 | "className" => "Clase",
15 | "clearAllMessage" => "¿Estas seguro que quieres borrar todos los campos?",
16 | "clearAll" => "Borrar",
17 | "close" => "Cerrar",
18 | "content" => "Contenido",
19 | "copy" => "Copiar al portapapeles",
20 | "copyButton" => "+",
21 | "copyButtonTooltip" => "copiar",
22 | "dateField" => "Campo de fecha",
23 | "description" => "Texto de ayuda",
24 | "descriptionField" => "Descripción",
25 | "devMode" => "Modo Desarrollador",
26 | "editNames" => "Editar nombres",
27 | "editorTitle" => "Elementos de formulario",
28 | "editXML" => "Editar XML",
29 | "enableOther" => "Habilitar "Otro"",
30 | "enableOtherMsg" => "Permitir a los usuarios ingresar una opción no listada",
31 | "fieldVars" => "Variables de campo",
32 | "fieldNonEditable" => "Este campo no puede ser editado.",
33 | "fieldRemoveWarning" => "¿Seguro que quieres eliminar este campo?",
34 | "fileUpload" => "Subir Archivo",
35 | "formUpdated" => "Formulario Actualizado",
36 | "getStarted" => "Arrastra un campo de la derecha a esta área",
37 | "header" => "Encabezamiento",
38 | "hide" => "Editar",
39 | "hidden" => "Campo oculto",
40 | "label" => "Etiqueta",
41 | "labelEmpty" => "Etiqueta del campo no puede estar vacio",
42 | "limitRole" => "Limitar el acceso a uno o más de los siguientes roles:",
43 | "mandatory" => "Mandatorio",
44 | "max" => "Maximo",
45 | "maxlength" => "Máxima longitud",
46 | "min" => "Minimo",
47 | "minOptionMessage" => "Este campo requiere un minimo de 2 opciones",
48 | "multipleFiles" => "Multiples archivos",
49 | "name" => "Nombre",
50 | "no" => "No",
51 | "number" => "Número",
52 | "off" => "Apagado",
53 | "on" => "Encendido",
54 | "option" => "Opción",
55 | "optional" => "opcional",
56 | "optionLabelPlaceholder" => "Etiqueta",
57 | "optionValuePlaceholder" => "Valor",
58 | "optionEmpty" => "Valor de la opción es requerido",
59 | "other" => "Otro",
60 | "paragraph" => "Parrafo",
61 | "placeholder" => "Placeholder",
62 | "placeholders" => [
63 | "value" => "Valor",
64 | "label" => "Etiqueta",
65 | "text" => "Texto",
66 | "textarea" => "Area de texto",
67 | "email" => "Ingresa tu correo electrónico",
68 | "placeholder" => "",
69 | "className" => "espacio que separa las clases",
70 | "password" => "Ingresa tu contraseña"
71 | ],
72 | "preview" => "Previo",
73 | "radioGroup" => "Grupo de Radio",
74 | "radio" => "Radio",
75 | "removeMessage" => "Remover Elemento",
76 | "remove" => "×",
77 | "required" => "Requerido",
78 | "richText" => "Editor de texto enriquecido",
79 | "roles" => "Acceso",
80 | "save" => "Guardar",
81 | "selectOptions" => "Opciones",
82 | "select" => "Seleccionar",
83 | "selectColor" => "Selecciona color",
84 | "selectionsMessage" => "Permitir multiples selecciones",
85 | "size" => "Tamaño",
86 | "sizes" => [
87 | "xs" => "Extra pequeño",
88 | "sm" => "Pequeño",
89 | "m" => "Default",
90 | "lg" => "Largo"
91 | ],
92 | "step" => "Paso",
93 | "style" => "Estilo",
94 | "styles" => [
95 | "btn" => [
96 | "default" => "Default",
97 | "danger" => "Riesgo",
98 | "info" => "Informacion",
99 | "primary" => "Primario",
100 | "success" => "Exito",
101 | "warning" => "Advertencia"
102 | ]
103 | ],
104 | "subtype" => "Tipo",
105 | "text" => "Campo de texto",
106 | "textArea" => "Area de texto",
107 | "toggle" => "Palanca",
108 | "warning" => "¡Advertencia!",
109 | "value" => "Valor",
110 | "viewJSON" => "{ }",
111 | "viewXML" => "</>",
112 | "yes" => "Si",
113 | ];
114 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/data/Data.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/rnothtmlwhite",
4 | "./var/acceptData"
5 | ], function( jQuery, rnothtmlwhite, acceptData ) {
6 |
7 | "use strict";
8 |
9 | function Data() {
10 | this.expando = jQuery.expando + Data.uid++;
11 | }
12 |
13 | Data.uid = 1;
14 |
15 | Data.prototype = {
16 |
17 | cache: function( owner ) {
18 |
19 | // Check if the owner object already has a cache
20 | var value = owner[ this.expando ];
21 |
22 | // If not, create one
23 | if ( !value ) {
24 | value = {};
25 |
26 | // We can accept data for non-element nodes in modern browsers,
27 | // but we should not, see #8335.
28 | // Always return an empty object.
29 | if ( acceptData( owner ) ) {
30 |
31 | // If it is a node unlikely to be stringify-ed or looped over
32 | // use plain assignment
33 | if ( owner.nodeType ) {
34 | owner[ this.expando ] = value;
35 |
36 | // Otherwise secure it in a non-enumerable property
37 | // configurable must be true to allow the property to be
38 | // deleted when data is removed
39 | } else {
40 | Object.defineProperty( owner, this.expando, {
41 | value: value,
42 | configurable: true
43 | } );
44 | }
45 | }
46 | }
47 |
48 | return value;
49 | },
50 | set: function( owner, data, value ) {
51 | var prop,
52 | cache = this.cache( owner );
53 |
54 | // Handle: [ owner, key, value ] args
55 | // Always use camelCase key (gh-2257)
56 | if ( typeof data === "string" ) {
57 | cache[ jQuery.camelCase( data ) ] = value;
58 |
59 | // Handle: [ owner, { properties } ] args
60 | } else {
61 |
62 | // Copy the properties one-by-one to the cache object
63 | for ( prop in data ) {
64 | cache[ jQuery.camelCase( prop ) ] = data[ prop ];
65 | }
66 | }
67 | return cache;
68 | },
69 | get: function( owner, key ) {
70 | return key === undefined ?
71 | this.cache( owner ) :
72 |
73 | // Always use camelCase key (gh-2257)
74 | owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
75 | },
76 | access: function( owner, key, value ) {
77 |
78 | // In cases where either:
79 | //
80 | // 1. No key was specified
81 | // 2. A string key was specified, but no value provided
82 | //
83 | // Take the "read" path and allow the get method to determine
84 | // which value to return, respectively either:
85 | //
86 | // 1. The entire cache object
87 | // 2. The data stored at the key
88 | //
89 | if ( key === undefined ||
90 | ( ( key && typeof key === "string" ) && value === undefined ) ) {
91 |
92 | return this.get( owner, key );
93 | }
94 |
95 | // When the key is not a string, or both a key and value
96 | // are specified, set or extend (existing objects) with either:
97 | //
98 | // 1. An object of properties
99 | // 2. A key and value
100 | //
101 | this.set( owner, key, value );
102 |
103 | // Since the "set" path can have two possible entry points
104 | // return the expected data based on which path was taken[*]
105 | return value !== undefined ? value : key;
106 | },
107 | remove: function( owner, key ) {
108 | var i,
109 | cache = owner[ this.expando ];
110 |
111 | if ( cache === undefined ) {
112 | return;
113 | }
114 |
115 | if ( key !== undefined ) {
116 |
117 | // Support array or space separated string of keys
118 | if ( Array.isArray( key ) ) {
119 |
120 | // If key is an array of keys...
121 | // We always set camelCase keys, so remove that.
122 | key = key.map( jQuery.camelCase );
123 | } else {
124 | key = jQuery.camelCase( key );
125 |
126 | // If a key with the spaces exists, use it.
127 | // Otherwise, create an array by matching non-whitespace
128 | key = key in cache ?
129 | [ key ] :
130 | ( key.match( rnothtmlwhite ) || [] );
131 | }
132 |
133 | i = key.length;
134 |
135 | while ( i-- ) {
136 | delete cache[ key[ i ] ];
137 | }
138 | }
139 |
140 | // Remove the expando if there's no more data
141 | if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
142 |
143 | // Support: Chrome <=35 - 45
144 | // Webkit & Blink performance suffers when deleting properties
145 | // from DOM nodes, so set to undefined instead
146 | // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
147 | if ( owner.nodeType ) {
148 | owner[ this.expando ] = undefined;
149 | } else {
150 | delete owner[ this.expando ];
151 | }
152 | }
153 | },
154 | hasData: function( owner ) {
155 | var cache = owner[ this.expando ];
156 | return cache !== undefined && !jQuery.isEmptyObject( cache );
157 | }
158 | };
159 |
160 | return Data;
161 | } );
162 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/ajax/xhr.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/support",
4 | "../ajax"
5 | ], function( jQuery, support ) {
6 |
7 | "use strict";
8 |
9 | jQuery.ajaxSettings.xhr = function() {
10 | try {
11 | return new window.XMLHttpRequest();
12 | } catch ( e ) {}
13 | };
14 |
15 | var xhrSuccessStatus = {
16 |
17 | // File protocol always yields status code 0, assume 200
18 | 0: 200,
19 |
20 | // Support: IE <=9 only
21 | // #1450: sometimes IE returns 1223 when it should be 204
22 | 1223: 204
23 | },
24 | xhrSupported = jQuery.ajaxSettings.xhr();
25 |
26 | support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
27 | support.ajax = xhrSupported = !!xhrSupported;
28 |
29 | jQuery.ajaxTransport( function( options ) {
30 | var callback, errorCallback;
31 |
32 | // Cross domain only allowed if supported through XMLHttpRequest
33 | if ( support.cors || xhrSupported && !options.crossDomain ) {
34 | return {
35 | send: function( headers, complete ) {
36 | var i,
37 | xhr = options.xhr();
38 |
39 | xhr.open(
40 | options.type,
41 | options.url,
42 | options.async,
43 | options.username,
44 | options.password
45 | );
46 |
47 | // Apply custom fields if provided
48 | if ( options.xhrFields ) {
49 | for ( i in options.xhrFields ) {
50 | xhr[ i ] = options.xhrFields[ i ];
51 | }
52 | }
53 |
54 | // Override mime type if needed
55 | if ( options.mimeType && xhr.overrideMimeType ) {
56 | xhr.overrideMimeType( options.mimeType );
57 | }
58 |
59 | // X-Requested-With header
60 | // For cross-domain requests, seeing as conditions for a preflight are
61 | // akin to a jigsaw puzzle, we simply never set it to be sure.
62 | // (it can always be set on a per-request basis or even using ajaxSetup)
63 | // For same-domain requests, won't change header if already provided.
64 | if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
65 | headers[ "X-Requested-With" ] = "XMLHttpRequest";
66 | }
67 |
68 | // Set headers
69 | for ( i in headers ) {
70 | xhr.setRequestHeader( i, headers[ i ] );
71 | }
72 |
73 | // Callback
74 | callback = function( type ) {
75 | return function() {
76 | if ( callback ) {
77 | callback = errorCallback = xhr.onload =
78 | xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
79 |
80 | if ( type === "abort" ) {
81 | xhr.abort();
82 | } else if ( type === "error" ) {
83 |
84 | // Support: IE <=9 only
85 | // On a manual native abort, IE9 throws
86 | // errors on any property access that is not readyState
87 | if ( typeof xhr.status !== "number" ) {
88 | complete( 0, "error" );
89 | } else {
90 | complete(
91 |
92 | // File: protocol always yields status 0; see #8605, #14207
93 | xhr.status,
94 | xhr.statusText
95 | );
96 | }
97 | } else {
98 | complete(
99 | xhrSuccessStatus[ xhr.status ] || xhr.status,
100 | xhr.statusText,
101 |
102 | // Support: IE <=9 only
103 | // IE9 has no XHR2 but throws on binary (trac-11426)
104 | // For XHR2 non-text, let the caller handle it (gh-2498)
105 | ( xhr.responseType || "text" ) !== "text" ||
106 | typeof xhr.responseText !== "string" ?
107 | { binary: xhr.response } :
108 | { text: xhr.responseText },
109 | xhr.getAllResponseHeaders()
110 | );
111 | }
112 | }
113 | };
114 | };
115 |
116 | // Listen to events
117 | xhr.onload = callback();
118 | errorCallback = xhr.onerror = callback( "error" );
119 |
120 | // Support: IE 9 only
121 | // Use onreadystatechange to replace onabort
122 | // to handle uncaught aborts
123 | if ( xhr.onabort !== undefined ) {
124 | xhr.onabort = errorCallback;
125 | } else {
126 | xhr.onreadystatechange = function() {
127 |
128 | // Check readyState before timeout as it changes
129 | if ( xhr.readyState === 4 ) {
130 |
131 | // Allow onerror to be called first,
132 | // but that will not handle a native abort
133 | // Also, save errorCallback to a variable
134 | // as xhr.onerror cannot be accessed
135 | window.setTimeout( function() {
136 | if ( callback ) {
137 | errorCallback();
138 | }
139 | } );
140 | }
141 | };
142 | }
143 |
144 | // Create the abort callback
145 | callback = callback( "abort" );
146 |
147 | try {
148 |
149 | // Do send the request (this may raise an exception)
150 | xhr.send( options.hasContent && options.data || null );
151 | } catch ( e ) {
152 |
153 | // #14683: Only rethrow if this hasn't been notified as an error yet
154 | if ( callback ) {
155 | throw e;
156 | }
157 | }
158 | },
159 |
160 | abort: function() {
161 | if ( callback ) {
162 | callback();
163 | }
164 | }
165 | };
166 | }
167 | } );
168 |
169 | } );
170 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes/classes.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/stripAndCollapse",
4 | "../var/rnothtmlwhite",
5 | "../data/var/dataPriv",
6 | "../core/init"
7 | ], function( jQuery, stripAndCollapse, rnothtmlwhite, dataPriv ) {
8 |
9 | "use strict";
10 |
11 | function getClass( elem ) {
12 | return elem.getAttribute && elem.getAttribute( "class" ) || "";
13 | }
14 |
15 | jQuery.fn.extend( {
16 | addClass: function( value ) {
17 | var classes, elem, cur, curValue, clazz, j, finalValue,
18 | i = 0;
19 |
20 | if ( jQuery.isFunction( value ) ) {
21 | return this.each( function( j ) {
22 | jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
23 | } );
24 | }
25 |
26 | if ( typeof value === "string" && value ) {
27 | classes = value.match( rnothtmlwhite ) || [];
28 |
29 | while ( ( elem = this[ i++ ] ) ) {
30 | curValue = getClass( elem );
31 | cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
32 |
33 | if ( cur ) {
34 | j = 0;
35 | while ( ( clazz = classes[ j++ ] ) ) {
36 | if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
37 | cur += clazz + " ";
38 | }
39 | }
40 |
41 | // Only assign if different to avoid unneeded rendering.
42 | finalValue = stripAndCollapse( cur );
43 | if ( curValue !== finalValue ) {
44 | elem.setAttribute( "class", finalValue );
45 | }
46 | }
47 | }
48 | }
49 |
50 | return this;
51 | },
52 |
53 | removeClass: function( value ) {
54 | var classes, elem, cur, curValue, clazz, j, finalValue,
55 | i = 0;
56 |
57 | if ( jQuery.isFunction( value ) ) {
58 | return this.each( function( j ) {
59 | jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
60 | } );
61 | }
62 |
63 | if ( !arguments.length ) {
64 | return this.attr( "class", "" );
65 | }
66 |
67 | if ( typeof value === "string" && value ) {
68 | classes = value.match( rnothtmlwhite ) || [];
69 |
70 | while ( ( elem = this[ i++ ] ) ) {
71 | curValue = getClass( elem );
72 |
73 | // This expression is here for better compressibility (see addClass)
74 | cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
75 |
76 | if ( cur ) {
77 | j = 0;
78 | while ( ( clazz = classes[ j++ ] ) ) {
79 |
80 | // Remove *all* instances
81 | while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
82 | cur = cur.replace( " " + clazz + " ", " " );
83 | }
84 | }
85 |
86 | // Only assign if different to avoid unneeded rendering.
87 | finalValue = stripAndCollapse( cur );
88 | if ( curValue !== finalValue ) {
89 | elem.setAttribute( "class", finalValue );
90 | }
91 | }
92 | }
93 | }
94 |
95 | return this;
96 | },
97 |
98 | toggleClass: function( value, stateVal ) {
99 | var type = typeof value;
100 |
101 | if ( typeof stateVal === "boolean" && type === "string" ) {
102 | return stateVal ? this.addClass( value ) : this.removeClass( value );
103 | }
104 |
105 | if ( jQuery.isFunction( value ) ) {
106 | return this.each( function( i ) {
107 | jQuery( this ).toggleClass(
108 | value.call( this, i, getClass( this ), stateVal ),
109 | stateVal
110 | );
111 | } );
112 | }
113 |
114 | return this.each( function() {
115 | var className, i, self, classNames;
116 |
117 | if ( type === "string" ) {
118 |
119 | // Toggle individual class names
120 | i = 0;
121 | self = jQuery( this );
122 | classNames = value.match( rnothtmlwhite ) || [];
123 |
124 | while ( ( className = classNames[ i++ ] ) ) {
125 |
126 | // Check each className given, space separated list
127 | if ( self.hasClass( className ) ) {
128 | self.removeClass( className );
129 | } else {
130 | self.addClass( className );
131 | }
132 | }
133 |
134 | // Toggle whole class name
135 | } else if ( value === undefined || type === "boolean" ) {
136 | className = getClass( this );
137 | if ( className ) {
138 |
139 | // Store className if set
140 | dataPriv.set( this, "__className__", className );
141 | }
142 |
143 | // If the element has a class name or if we're passed `false`,
144 | // then remove the whole classname (if there was one, the above saved it).
145 | // Otherwise bring back whatever was previously saved (if anything),
146 | // falling back to the empty string if nothing was stored.
147 | if ( this.setAttribute ) {
148 | this.setAttribute( "class",
149 | className || value === false ?
150 | "" :
151 | dataPriv.get( this, "__className__" ) || ""
152 | );
153 | }
154 | }
155 | } );
156 | },
157 |
158 | hasClass: function( selector ) {
159 | var className, elem,
160 | i = 0;
161 |
162 | className = " " + selector + " ";
163 | while ( ( elem = this[ i++ ] ) ) {
164 | if ( elem.nodeType === 1 &&
165 | ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
166 | return true;
167 | }
168 | }
169 |
170 | return false;
171 | }
172 | } );
173 |
174 | } );
175 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/attributes/val.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/stripAndCollapse",
4 | "./support",
5 | "../core/nodeName",
6 |
7 | "../core/init"
8 | ], function( jQuery, stripAndCollapse, support, nodeName ) {
9 |
10 | "use strict";
11 |
12 | var rreturn = /\r/g;
13 |
14 | jQuery.fn.extend( {
15 | val: function( value ) {
16 | var hooks, ret, isFunction,
17 | elem = this[ 0 ];
18 |
19 | if ( !arguments.length ) {
20 | if ( elem ) {
21 | hooks = jQuery.valHooks[ elem.type ] ||
22 | jQuery.valHooks[ elem.nodeName.toLowerCase() ];
23 |
24 | if ( hooks &&
25 | "get" in hooks &&
26 | ( ret = hooks.get( elem, "value" ) ) !== undefined
27 | ) {
28 | return ret;
29 | }
30 |
31 | ret = elem.value;
32 |
33 | // Handle most common string cases
34 | if ( typeof ret === "string" ) {
35 | return ret.replace( rreturn, "" );
36 | }
37 |
38 | // Handle cases where value is null/undef or number
39 | return ret == null ? "" : ret;
40 | }
41 |
42 | return;
43 | }
44 |
45 | isFunction = jQuery.isFunction( value );
46 |
47 | return this.each( function( i ) {
48 | var val;
49 |
50 | if ( this.nodeType !== 1 ) {
51 | return;
52 | }
53 |
54 | if ( isFunction ) {
55 | val = value.call( this, i, jQuery( this ).val() );
56 | } else {
57 | val = value;
58 | }
59 |
60 | // Treat null/undefined as ""; convert numbers to string
61 | if ( val == null ) {
62 | val = "";
63 |
64 | } else if ( typeof val === "number" ) {
65 | val += "";
66 |
67 | } else if ( Array.isArray( val ) ) {
68 | val = jQuery.map( val, function( value ) {
69 | return value == null ? "" : value + "";
70 | } );
71 | }
72 |
73 | hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
74 |
75 | // If set returns undefined, fall back to normal setting
76 | if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
77 | this.value = val;
78 | }
79 | } );
80 | }
81 | } );
82 |
83 | jQuery.extend( {
84 | valHooks: {
85 | option: {
86 | get: function( elem ) {
87 |
88 | var val = jQuery.find.attr( elem, "value" );
89 | return val != null ?
90 | val :
91 |
92 | // Support: IE <=10 - 11 only
93 | // option.text throws exceptions (#14686, #14858)
94 | // Strip and collapse whitespace
95 | // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
96 | stripAndCollapse( jQuery.text( elem ) );
97 | }
98 | },
99 | select: {
100 | get: function( elem ) {
101 | var value, option, i,
102 | options = elem.options,
103 | index = elem.selectedIndex,
104 | one = elem.type === "select-one",
105 | values = one ? null : [],
106 | max = one ? index + 1 : options.length;
107 |
108 | if ( index < 0 ) {
109 | i = max;
110 |
111 | } else {
112 | i = one ? index : 0;
113 | }
114 |
115 | // Loop through all the selected options
116 | for ( ; i < max; i++ ) {
117 | option = options[ i ];
118 |
119 | // Support: IE <=9 only
120 | // IE8-9 doesn't update selected after form reset (#2551)
121 | if ( ( option.selected || i === index ) &&
122 |
123 | // Don't return options that are disabled or in a disabled optgroup
124 | !option.disabled &&
125 | ( !option.parentNode.disabled ||
126 | !nodeName( option.parentNode, "optgroup" ) ) ) {
127 |
128 | // Get the specific value for the option
129 | value = jQuery( option ).val();
130 |
131 | // We don't need an array for one selects
132 | if ( one ) {
133 | return value;
134 | }
135 |
136 | // Multi-Selects return an array
137 | values.push( value );
138 | }
139 | }
140 |
141 | return values;
142 | },
143 |
144 | set: function( elem, value ) {
145 | var optionSet, option,
146 | options = elem.options,
147 | values = jQuery.makeArray( value ),
148 | i = options.length;
149 |
150 | while ( i-- ) {
151 | option = options[ i ];
152 |
153 | /* eslint-disable no-cond-assign */
154 |
155 | if ( option.selected =
156 | jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
157 | ) {
158 | optionSet = true;
159 | }
160 |
161 | /* eslint-enable no-cond-assign */
162 | }
163 |
164 | // Force browsers to behave consistently when non-matching value is set
165 | if ( !optionSet ) {
166 | elem.selectedIndex = -1;
167 | }
168 | return values;
169 | }
170 | }
171 | }
172 | } );
173 |
174 | // Radios and checkboxes getter/setter
175 | jQuery.each( [ "radio", "checkbox" ], function() {
176 | jQuery.valHooks[ this ] = {
177 | set: function( elem, value ) {
178 | if ( Array.isArray( value ) ) {
179 | return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
180 | }
181 | }
182 | };
183 | if ( !support.checkOn ) {
184 | jQuery.valHooks[ this ].get = function( elem ) {
185 | return elem.getAttribute( "value" ) === null ? "on" : elem.value;
186 | };
187 | }
188 | } );
189 |
190 | } );
191 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/data.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/access",
4 | "./data/var/dataPriv",
5 | "./data/var/dataUser"
6 | ], function( jQuery, access, dataPriv, dataUser ) {
7 |
8 | "use strict";
9 |
10 | // Implementation Summary
11 | //
12 | // 1. Enforce API surface and semantic compatibility with 1.9.x branch
13 | // 2. Improve the module's maintainability by reducing the storage
14 | // paths to a single mechanism.
15 | // 3. Use the same single mechanism to support "private" and "user" data.
16 | // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
17 | // 5. Avoid exposing implementation details on user objects (eg. expando properties)
18 | // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
19 |
20 | var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
21 | rmultiDash = /[A-Z]/g;
22 |
23 | function getData( data ) {
24 | if ( data === "true" ) {
25 | return true;
26 | }
27 |
28 | if ( data === "false" ) {
29 | return false;
30 | }
31 |
32 | if ( data === "null" ) {
33 | return null;
34 | }
35 |
36 | // Only convert to a number if it doesn't change the string
37 | if ( data === +data + "" ) {
38 | return +data;
39 | }
40 |
41 | if ( rbrace.test( data ) ) {
42 | return JSON.parse( data );
43 | }
44 |
45 | return data;
46 | }
47 |
48 | function dataAttr( elem, key, data ) {
49 | var name;
50 |
51 | // If nothing was found internally, try to fetch any
52 | // data from the HTML5 data-* attribute
53 | if ( data === undefined && elem.nodeType === 1 ) {
54 | name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
55 | data = elem.getAttribute( name );
56 |
57 | if ( typeof data === "string" ) {
58 | try {
59 | data = getData( data );
60 | } catch ( e ) {}
61 |
62 | // Make sure we set the data so it isn't changed later
63 | dataUser.set( elem, key, data );
64 | } else {
65 | data = undefined;
66 | }
67 | }
68 | return data;
69 | }
70 |
71 | jQuery.extend( {
72 | hasData: function( elem ) {
73 | return dataUser.hasData( elem ) || dataPriv.hasData( elem );
74 | },
75 |
76 | data: function( elem, name, data ) {
77 | return dataUser.access( elem, name, data );
78 | },
79 |
80 | removeData: function( elem, name ) {
81 | dataUser.remove( elem, name );
82 | },
83 |
84 | // TODO: Now that all calls to _data and _removeData have been replaced
85 | // with direct calls to dataPriv methods, these can be deprecated.
86 | _data: function( elem, name, data ) {
87 | return dataPriv.access( elem, name, data );
88 | },
89 |
90 | _removeData: function( elem, name ) {
91 | dataPriv.remove( elem, name );
92 | }
93 | } );
94 |
95 | jQuery.fn.extend( {
96 | data: function( key, value ) {
97 | var i, name, data,
98 | elem = this[ 0 ],
99 | attrs = elem && elem.attributes;
100 |
101 | // Gets all values
102 | if ( key === undefined ) {
103 | if ( this.length ) {
104 | data = dataUser.get( elem );
105 |
106 | if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
107 | i = attrs.length;
108 | while ( i-- ) {
109 |
110 | // Support: IE 11 only
111 | // The attrs elements can be null (#14894)
112 | if ( attrs[ i ] ) {
113 | name = attrs[ i ].name;
114 | if ( name.indexOf( "data-" ) === 0 ) {
115 | name = jQuery.camelCase( name.slice( 5 ) );
116 | dataAttr( elem, name, data[ name ] );
117 | }
118 | }
119 | }
120 | dataPriv.set( elem, "hasDataAttrs", true );
121 | }
122 | }
123 |
124 | return data;
125 | }
126 |
127 | // Sets multiple values
128 | if ( typeof key === "object" ) {
129 | return this.each( function() {
130 | dataUser.set( this, key );
131 | } );
132 | }
133 |
134 | return access( this, function( value ) {
135 | var data;
136 |
137 | // The calling jQuery object (element matches) is not empty
138 | // (and therefore has an element appears at this[ 0 ]) and the
139 | // `value` parameter was not undefined. An empty jQuery object
140 | // will result in `undefined` for elem = this[ 0 ] which will
141 | // throw an exception if an attempt to read a data cache is made.
142 | if ( elem && value === undefined ) {
143 |
144 | // Attempt to get data from the cache
145 | // The key will always be camelCased in Data
146 | data = dataUser.get( elem, key );
147 | if ( data !== undefined ) {
148 | return data;
149 | }
150 |
151 | // Attempt to "discover" the data in
152 | // HTML5 custom data-* attrs
153 | data = dataAttr( elem, key );
154 | if ( data !== undefined ) {
155 | return data;
156 | }
157 |
158 | // We tried really hard, but the data doesn't exist.
159 | return;
160 | }
161 |
162 | // Set the data...
163 | this.each( function() {
164 |
165 | // We always store the camelCased key
166 | dataUser.set( this, key, value );
167 | } );
168 | }, null, value, arguments.length > 1, null, true );
169 | },
170 |
171 | removeData: function( key ) {
172 | return this.each( function() {
173 | dataUser.remove( this, key );
174 | } );
175 | }
176 | } );
177 |
178 | return jQuery;
179 | } );
180 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/traversing.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./var/indexOf",
4 | "./traversing/var/dir",
5 | "./traversing/var/siblings",
6 | "./traversing/var/rneedsContext",
7 | "./core/nodeName",
8 |
9 | "./core/init",
10 | "./traversing/findFilter",
11 | "./selector"
12 | ], function( jQuery, indexOf, dir, siblings, rneedsContext, nodeName ) {
13 |
14 | "use strict";
15 |
16 | var rparentsprev = /^(?:parents|prev(?:Until|All))/,
17 |
18 | // Methods guaranteed to produce a unique set when starting from a unique set
19 | guaranteedUnique = {
20 | children: true,
21 | contents: true,
22 | next: true,
23 | prev: true
24 | };
25 |
26 | jQuery.fn.extend( {
27 | has: function( target ) {
28 | var targets = jQuery( target, this ),
29 | l = targets.length;
30 |
31 | return this.filter( function() {
32 | var i = 0;
33 | for ( ; i < l; i++ ) {
34 | if ( jQuery.contains( this, targets[ i ] ) ) {
35 | return true;
36 | }
37 | }
38 | } );
39 | },
40 |
41 | closest: function( selectors, context ) {
42 | var cur,
43 | i = 0,
44 | l = this.length,
45 | matched = [],
46 | targets = typeof selectors !== "string" && jQuery( selectors );
47 |
48 | // Positional selectors never match, since there's no _selection_ context
49 | if ( !rneedsContext.test( selectors ) ) {
50 | for ( ; i < l; i++ ) {
51 | for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
52 |
53 | // Always skip document fragments
54 | if ( cur.nodeType < 11 && ( targets ?
55 | targets.index( cur ) > -1 :
56 |
57 | // Don't pass non-elements to Sizzle
58 | cur.nodeType === 1 &&
59 | jQuery.find.matchesSelector( cur, selectors ) ) ) {
60 |
61 | matched.push( cur );
62 | break;
63 | }
64 | }
65 | }
66 | }
67 |
68 | return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
69 | },
70 |
71 | // Determine the position of an element within the set
72 | index: function( elem ) {
73 |
74 | // No argument, return index in parent
75 | if ( !elem ) {
76 | return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
77 | }
78 |
79 | // Index in selector
80 | if ( typeof elem === "string" ) {
81 | return indexOf.call( jQuery( elem ), this[ 0 ] );
82 | }
83 |
84 | // Locate the position of the desired element
85 | return indexOf.call( this,
86 |
87 | // If it receives a jQuery object, the first element is used
88 | elem.jquery ? elem[ 0 ] : elem
89 | );
90 | },
91 |
92 | add: function( selector, context ) {
93 | return this.pushStack(
94 | jQuery.uniqueSort(
95 | jQuery.merge( this.get(), jQuery( selector, context ) )
96 | )
97 | );
98 | },
99 |
100 | addBack: function( selector ) {
101 | return this.add( selector == null ?
102 | this.prevObject : this.prevObject.filter( selector )
103 | );
104 | }
105 | } );
106 |
107 | function sibling( cur, dir ) {
108 | while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
109 | return cur;
110 | }
111 |
112 | jQuery.each( {
113 | parent: function( elem ) {
114 | var parent = elem.parentNode;
115 | return parent && parent.nodeType !== 11 ? parent : null;
116 | },
117 | parents: function( elem ) {
118 | return dir( elem, "parentNode" );
119 | },
120 | parentsUntil: function( elem, i, until ) {
121 | return dir( elem, "parentNode", until );
122 | },
123 | next: function( elem ) {
124 | return sibling( elem, "nextSibling" );
125 | },
126 | prev: function( elem ) {
127 | return sibling( elem, "previousSibling" );
128 | },
129 | nextAll: function( elem ) {
130 | return dir( elem, "nextSibling" );
131 | },
132 | prevAll: function( elem ) {
133 | return dir( elem, "previousSibling" );
134 | },
135 | nextUntil: function( elem, i, until ) {
136 | return dir( elem, "nextSibling", until );
137 | },
138 | prevUntil: function( elem, i, until ) {
139 | return dir( elem, "previousSibling", until );
140 | },
141 | siblings: function( elem ) {
142 | return siblings( ( elem.parentNode || {} ).firstChild, elem );
143 | },
144 | children: function( elem ) {
145 | return siblings( elem.firstChild );
146 | },
147 | contents: function( elem ) {
148 | if ( nodeName( elem, "iframe" ) ) {
149 | return elem.contentDocument;
150 | }
151 |
152 | // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
153 | // Treat the template element as a regular one in browsers that
154 | // don't support it.
155 | if ( nodeName( elem, "template" ) ) {
156 | elem = elem.content || elem;
157 | }
158 |
159 | return jQuery.merge( [], elem.childNodes );
160 | }
161 | }, function( name, fn ) {
162 | jQuery.fn[ name ] = function( until, selector ) {
163 | var matched = jQuery.map( this, fn, until );
164 |
165 | if ( name.slice( -5 ) !== "Until" ) {
166 | selector = until;
167 | }
168 |
169 | if ( selector && typeof selector === "string" ) {
170 | matched = jQuery.filter( selector, matched );
171 | }
172 |
173 | if ( this.length > 1 ) {
174 |
175 | // Remove duplicates
176 | if ( !guaranteedUnique[ name ] ) {
177 | jQuery.uniqueSort( matched );
178 | }
179 |
180 | // Reverse order for parents* and prev-derivatives
181 | if ( rparentsprev.test( name ) ) {
182 | matched.reverse();
183 | }
184 | }
185 |
186 | return this.pushStack( matched );
187 | };
188 | } );
189 |
190 | return jQuery;
191 | } );
192 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/event/trigger.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "../data/var/dataPriv",
5 | "../data/var/acceptData",
6 | "../var/hasOwn",
7 |
8 | "../event"
9 | ], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
10 |
11 | "use strict";
12 |
13 | var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
14 |
15 | jQuery.extend( jQuery.event, {
16 |
17 | trigger: function( event, data, elem, onlyHandlers ) {
18 |
19 | var i, cur, tmp, bubbleType, ontype, handle, special,
20 | eventPath = [ elem || document ],
21 | type = hasOwn.call( event, "type" ) ? event.type : event,
22 | namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
23 |
24 | cur = tmp = elem = elem || document;
25 |
26 | // Don't do events on text and comment nodes
27 | if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
28 | return;
29 | }
30 |
31 | // focus/blur morphs to focusin/out; ensure we're not firing them right now
32 | if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
33 | return;
34 | }
35 |
36 | if ( type.indexOf( "." ) > -1 ) {
37 |
38 | // Namespaced trigger; create a regexp to match event type in handle()
39 | namespaces = type.split( "." );
40 | type = namespaces.shift();
41 | namespaces.sort();
42 | }
43 | ontype = type.indexOf( ":" ) < 0 && "on" + type;
44 |
45 | // Caller can pass in a jQuery.Event object, Object, or just an event type string
46 | event = event[ jQuery.expando ] ?
47 | event :
48 | new jQuery.Event( type, typeof event === "object" && event );
49 |
50 | // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
51 | event.isTrigger = onlyHandlers ? 2 : 3;
52 | event.namespace = namespaces.join( "." );
53 | event.rnamespace = event.namespace ?
54 | new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
55 | null;
56 |
57 | // Clean up the event in case it is being reused
58 | event.result = undefined;
59 | if ( !event.target ) {
60 | event.target = elem;
61 | }
62 |
63 | // Clone any incoming data and prepend the event, creating the handler arg list
64 | data = data == null ?
65 | [ event ] :
66 | jQuery.makeArray( data, [ event ] );
67 |
68 | // Allow special events to draw outside the lines
69 | special = jQuery.event.special[ type ] || {};
70 | if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
71 | return;
72 | }
73 |
74 | // Determine event propagation path in advance, per W3C events spec (#9951)
75 | // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
76 | if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
77 |
78 | bubbleType = special.delegateType || type;
79 | if ( !rfocusMorph.test( bubbleType + type ) ) {
80 | cur = cur.parentNode;
81 | }
82 | for ( ; cur; cur = cur.parentNode ) {
83 | eventPath.push( cur );
84 | tmp = cur;
85 | }
86 |
87 | // Only add window if we got to document (e.g., not plain obj or detached DOM)
88 | if ( tmp === ( elem.ownerDocument || document ) ) {
89 | eventPath.push( tmp.defaultView || tmp.parentWindow || window );
90 | }
91 | }
92 |
93 | // Fire handlers on the event path
94 | i = 0;
95 | while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
96 |
97 | event.type = i > 1 ?
98 | bubbleType :
99 | special.bindType || type;
100 |
101 | // jQuery handler
102 | handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
103 | dataPriv.get( cur, "handle" );
104 | if ( handle ) {
105 | handle.apply( cur, data );
106 | }
107 |
108 | // Native handler
109 | handle = ontype && cur[ ontype ];
110 | if ( handle && handle.apply && acceptData( cur ) ) {
111 | event.result = handle.apply( cur, data );
112 | if ( event.result === false ) {
113 | event.preventDefault();
114 | }
115 | }
116 | }
117 | event.type = type;
118 |
119 | // If nobody prevented the default action, do it now
120 | if ( !onlyHandlers && !event.isDefaultPrevented() ) {
121 |
122 | if ( ( !special._default ||
123 | special._default.apply( eventPath.pop(), data ) === false ) &&
124 | acceptData( elem ) ) {
125 |
126 | // Call a native DOM method on the target with the same name as the event.
127 | // Don't do default actions on window, that's where global variables be (#6170)
128 | if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
129 |
130 | // Don't re-trigger an onFOO event when we call its FOO() method
131 | tmp = elem[ ontype ];
132 |
133 | if ( tmp ) {
134 | elem[ ontype ] = null;
135 | }
136 |
137 | // Prevent re-triggering of the same event, since we already bubbled it above
138 | jQuery.event.triggered = type;
139 | elem[ type ]();
140 | jQuery.event.triggered = undefined;
141 |
142 | if ( tmp ) {
143 | elem[ ontype ] = tmp;
144 | }
145 | }
146 | }
147 | }
148 |
149 | return event.result;
150 | },
151 |
152 | // Piggyback on a donor event to simulate a different one
153 | // Used only for `focus(in | out)` events
154 | simulate: function( type, elem, event ) {
155 | var e = jQuery.extend(
156 | new jQuery.Event(),
157 | event,
158 | {
159 | type: type,
160 | isSimulated: true
161 | }
162 | );
163 |
164 | jQuery.event.trigger( e, null, elem );
165 | }
166 |
167 | } );
168 |
169 | jQuery.fn.extend( {
170 |
171 | trigger: function( type, data ) {
172 | return this.each( function() {
173 | jQuery.event.trigger( type, data, this );
174 | } );
175 | },
176 | triggerHandler: function( type, data ) {
177 | var elem = this[ 0 ];
178 | if ( elem ) {
179 | return jQuery.event.trigger( type, data, elem, true );
180 | }
181 | }
182 | } );
183 |
184 | return jQuery;
185 | } );
186 |
--------------------------------------------------------------------------------
/assets/node_modules/formBuilder/README.md:
--------------------------------------------------------------------------------
1 | formBuilder v2.5.3
2 | ===========
3 |
4 | [](https://gitter.im/kevinchappell/formBuilder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5 |
6 | A jQuery plugin for drag and drop form creation, formBuilder has many options and is translatable.
7 |
8 | **Example**
9 | ```
10 | jQuery(function($) {
11 | var editor = document.getElementById('fb-editor');
12 | $(editor).formBuilder();
13 | });
14 | ```
15 |
16 | ## [Demo](https://formbuilder.online/)
17 | [](https://formbuilder.online/)
18 |
19 | ## [Options](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/)
20 | ### General
21 | | Option | Type | Value(s) | Default |
22 | | ------------- | ------------- |------------- |------------- |
23 | | [actionButtons](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/actionButtons/) | {Array} | `[{...}]` | `[]` |
24 | | [append / prepend](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/appendPrepend/) | {Object, Array, String} | `DOM Object` \| `[]` \| `''` | `false` |
25 | | [controlOrder](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/controlOrder/) | {Array} | `['autocomplete', 'button', 'checkbox', ...]` | |
26 | | [controlPosition](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/controlPosition/) | {String} | `'left'` \| `'right'` | `'right'` |
27 | | [dataType](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/dataType/) | {String} | `json` \| `xml` | `json` |
28 | | [defaultFields](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/defaultFields/) | {Array} | `[{type: 'text', name: 'first-name'}]` | `[]` |
29 | | [disabledAttrs](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/disabledAttrs/) | {Array} | array of attributes to disable for all fields | `[]` |
30 | | [disabledActionButtons](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/disabledActionButtons/) | {Array} | array of form action buttons to disable | `[]` |
31 | | [disableFields](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/disableFields/) | {Array} | array of field types to disable | `['autocomplete', 'hidden', 'number']` |
32 | | [disableInjectedStyle](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/disableInjectedStyle/) | {Bool} | `true` \| `false` | `false` |
33 | | [editOnAdd](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/editOnAdd/) | {Bool} | `true` \| `false` | `false` |
34 | | [fieldRemoveWarn](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/fieldRemoveWarn/) | {Bool} | `true` | `false` |
35 | | [fields](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/fields/) | {Array} | array of additional field definitions | `[]` |
36 | | [formData](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/formData/) | {String} | `xmlData` | `jsonData` |
37 | | [inputSets](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/inputSets/) | {Array} | array of field definitions | `[]` |
38 | | [notify](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/notify/) | {Object} | `{error: message => alert(message)}` | [See config.js#L47](https://github.com/kevinchappell/formBuilder/blob/master/src/js/config.js#L47) |
39 | | [onSave](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/onSave/) | {Function} | `(evt, formData) => {}` | [See config.js#L52](https://github.com/kevinchappell/formBuilder/blob/master/src/js/config.js#L52) |
40 | | [onClearAll](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/onClearAll/) | {Function} | `() => {}` | [See config.js#L53](https://github.com/kevinchappell/formBuilder/blob/master/src/js/config.js#L53) |
41 | | [roles](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/roles/) | {Object} | `{'admin': 'Administrator', 'editor': 'Editor' }` | `{ 1: 'Administrator'}` |
42 | | [showActionButtons](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/showActionButtons/) | {Bool} | `showActionButtons: false` | `true` |
43 | | [sortableControls](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/sortableControls/) | {Bool} | `sortableControls: true` | `false` |
44 | | [stickyControls](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/stickyControls/) | {Object} | `stickyControls: {enable:true, offset: { top: 5, bottom: 'auto', right: 'auto' }}` | `stickyControls: {enable:true}` |
45 | | [templates](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/templates/) | {Object} | Additional field templates | `{}` |
46 | | [typeUserAttrs](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/typeUserAttrs/) | {Object} | typeUserAttrs config | null |
47 | | [typeUserDisabledAttrs](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/typeUserDisabledAttrs/) | {Object} | typeUserDisabledAttrs config | null |
48 | | [typeUserEvents](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/typeUserEvents/) | {Object} | typeUserEvents config | null |
49 |
50 | ### i18n
51 | | Option | Type | Value(s) | Default |
52 | | ------------- | ------------- |------------- |------------- |
53 | | [locale](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/i18n/#locale) | {String} | user's locale eg. 'pt-BR' | 'en-US' |
54 | | [location](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/i18n/#location) | {String} | url of language directory | 'https://formbuilder.online/assets/lang/' |
55 | | [extension](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/i18n/#extension) | {String} | '.ext' | '.lang' |
56 | | [preloaded](http://formbuilder.readthedocs.io/en/latest/formBuilder/options/i18n/#preloaded) | {Object} | `{}` | `{'en-US': {...}}` |
57 |
58 | ## [Changelog](https://github.com/kevinchappell/formBuilder/blob/master/CHANGELOG.md) ##
59 |
60 | ## Translators Needed!
61 | As formBuilder usage grows so does it's need to be available in multiple languages. Additional and updates to existing languages are always welcome, see [Contributing Languages](https://github.com/kevinchappell/formBuilder-languages/blob/master/CONTRIBUTING.md) for details.
62 |
--------------------------------------------------------------------------------
/FormBuilder.php:
--------------------------------------------------------------------------------
1 | view = $this->getView();
60 |
61 | if ($this->dataType == 'json') {
62 | $this->arrayToTypeFunction = 'arrayJsonEncode';
63 | } elseif ($this->dataType == 'xml') {
64 | $this->arrayToTypeFunction = 'arrayXmlEncode';
65 | } else {
66 | throw new InvalidConfigException('Property $dataType must be "xml" or "json".');
67 | }
68 | }
69 |
70 | public function run()
71 | {
72 | FormBuilderAsset::register($this->view);
73 | $this->view->registerJs($this->getFBJs());
74 |
75 | return '<' . $this->elementType . ' id="' . $this->fBId . '">' . $this->elementType . '>';
76 | }
77 |
78 | /**
79 | * @return string unique id of form builder
80 | */
81 | public function getFBId()
82 | {
83 | return $this->id . '-fb-element';
84 | }
85 |
86 | /**
87 | * @return string initialize form builder javascript code
88 | */
89 | private function getFBJs()
90 | {
91 | $str = "var {$this->getFBJsVariableElement()} = $('#{$this->getFBId()}');\n"
92 | . "var {$this->accessVariableName} = $({$this->getFBJsVariableElement()}).formBuilder({$this->getFBOptions()});\n";
93 |
94 | return $str;
95 | }
96 |
97 | private function getFBJsVariableElement()
98 | {
99 | return lcfirst(Inflector::id2camel($this->getFBId() . '-' . 'variable'));
100 | }
101 |
102 | private function getFBOptions()
103 | {
104 | $this->options = array_merge(
105 | [
106 | 'dataType' => $this->dataType,
107 | 'formData' => $this->{$this->arrayToTypeFunction}($this->data),
108 | 'showActionButtons' => $this->showActionButtons,
109 | ],
110 | $this->options
111 | );
112 |
113 | if ($this->language) {
114 | $this->options['i18n'] = [
115 | 'locale' => $this->language,
116 | 'preloaded' => [
117 | $this->language => $this->getMessages()
118 | ],
119 | ];
120 | }
121 |
122 | return json_encode($this->options);
123 | }
124 |
125 | private function getMessages()
126 | {
127 | $messages = [];
128 |
129 | if ($this->language) {
130 | $fileName = __DIR__ . '/messages/' . $this->language . '.php';
131 | if (file_exists($fileName)) {
132 | $messages = require($fileName);
133 | }
134 | }
135 |
136 | return array_merge($messages, $this->messages);
137 | }
138 |
139 | private function getLanguage()
140 | {
141 | return $this->language ? $this->language : 'en-US';
142 | }
143 |
144 | private function arrayJsonEncode($options)
145 | {
146 | return json_encode($options);
147 | }
148 |
149 | private function arrayXmlEncode($options, $tag = 'field', $generateHeaderAndFooter = true)
150 | {
151 | $xmlString = '';
152 |
153 | if ($generateHeaderAndFooter) {
154 | $xmlString .= ""
155 | . "";
156 | }
157 |
158 | if (is_array($options)) {
159 | if (!empty($options)) {
160 | foreach ($options as $key => $option) {
161 | $label = isset($option['label']) ? $option['label'] : '';
162 | $attributes = $this->arrayToAttribute($option);
163 |
164 | if (strlen($attributes)) {
165 | $xmlString .= "<$tag"
166 | . $attributes
167 | . ">";
168 | }
169 |
170 | if (is_array($option)) {
171 | $xmlString .= $this->arrayXmlEncode($option, Inflector::singularize($key), false);
172 | }
173 |
174 | if ('option' == $tag) {
175 | $xmlString .= $label;
176 | }
177 |
178 | if (strlen($attributes)) {
179 | $xmlString .= "$tag>";
180 | }
181 | }
182 | }
183 | } else {
184 | throw new InvalidConfigException('Property $data must be an array.');
185 | }
186 |
187 | if ($generateHeaderAndFooter) {
188 | $xmlString .= ""
189 | . "";
190 | }
191 |
192 | return $xmlString;
193 | }
194 |
195 | private function arrayToAttribute(&$options)
196 | {
197 | $str = '';
198 |
199 | foreach ($options as $key => $value) {
200 | if (is_scalar($value)) {
201 | $str .= " $key=" . (is_bool($value) ? "'" . var_export($value, 1) . "'" : var_export($value, 1));
202 | unset($options[$key]);
203 | }
204 | }
205 |
206 | return $str;
207 | }
208 | }
209 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/callbacks.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./var/rnothtmlwhite"
4 | ], function( jQuery, rnothtmlwhite ) {
5 |
6 | "use strict";
7 |
8 | // Convert String-formatted options into Object-formatted ones
9 | function createOptions( options ) {
10 | var object = {};
11 | jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
12 | object[ flag ] = true;
13 | } );
14 | return object;
15 | }
16 |
17 | /*
18 | * Create a callback list using the following parameters:
19 | *
20 | * options: an optional list of space-separated options that will change how
21 | * the callback list behaves or a more traditional option object
22 | *
23 | * By default a callback list will act like an event callback list and can be
24 | * "fired" multiple times.
25 | *
26 | * Possible options:
27 | *
28 | * once: will ensure the callback list can only be fired once (like a Deferred)
29 | *
30 | * memory: will keep track of previous values and will call any callback added
31 | * after the list has been fired right away with the latest "memorized"
32 | * values (like a Deferred)
33 | *
34 | * unique: will ensure a callback can only be added once (no duplicate in the list)
35 | *
36 | * stopOnFalse: interrupt callings when a callback returns false
37 | *
38 | */
39 | jQuery.Callbacks = function( options ) {
40 |
41 | // Convert options from String-formatted to Object-formatted if needed
42 | // (we check in cache first)
43 | options = typeof options === "string" ?
44 | createOptions( options ) :
45 | jQuery.extend( {}, options );
46 |
47 | var // Flag to know if list is currently firing
48 | firing,
49 |
50 | // Last fire value for non-forgettable lists
51 | memory,
52 |
53 | // Flag to know if list was already fired
54 | fired,
55 |
56 | // Flag to prevent firing
57 | locked,
58 |
59 | // Actual callback list
60 | list = [],
61 |
62 | // Queue of execution data for repeatable lists
63 | queue = [],
64 |
65 | // Index of currently firing callback (modified by add/remove as needed)
66 | firingIndex = -1,
67 |
68 | // Fire callbacks
69 | fire = function() {
70 |
71 | // Enforce single-firing
72 | locked = locked || options.once;
73 |
74 | // Execute callbacks for all pending executions,
75 | // respecting firingIndex overrides and runtime changes
76 | fired = firing = true;
77 | for ( ; queue.length; firingIndex = -1 ) {
78 | memory = queue.shift();
79 | while ( ++firingIndex < list.length ) {
80 |
81 | // Run callback and check for early termination
82 | if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
83 | options.stopOnFalse ) {
84 |
85 | // Jump to end and forget the data so .add doesn't re-fire
86 | firingIndex = list.length;
87 | memory = false;
88 | }
89 | }
90 | }
91 |
92 | // Forget the data if we're done with it
93 | if ( !options.memory ) {
94 | memory = false;
95 | }
96 |
97 | firing = false;
98 |
99 | // Clean up if we're done firing for good
100 | if ( locked ) {
101 |
102 | // Keep an empty list if we have data for future add calls
103 | if ( memory ) {
104 | list = [];
105 |
106 | // Otherwise, this object is spent
107 | } else {
108 | list = "";
109 | }
110 | }
111 | },
112 |
113 | // Actual Callbacks object
114 | self = {
115 |
116 | // Add a callback or a collection of callbacks to the list
117 | add: function() {
118 | if ( list ) {
119 |
120 | // If we have memory from a past run, we should fire after adding
121 | if ( memory && !firing ) {
122 | firingIndex = list.length - 1;
123 | queue.push( memory );
124 | }
125 |
126 | ( function add( args ) {
127 | jQuery.each( args, function( _, arg ) {
128 | if ( jQuery.isFunction( arg ) ) {
129 | if ( !options.unique || !self.has( arg ) ) {
130 | list.push( arg );
131 | }
132 | } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
133 |
134 | // Inspect recursively
135 | add( arg );
136 | }
137 | } );
138 | } )( arguments );
139 |
140 | if ( memory && !firing ) {
141 | fire();
142 | }
143 | }
144 | return this;
145 | },
146 |
147 | // Remove a callback from the list
148 | remove: function() {
149 | jQuery.each( arguments, function( _, arg ) {
150 | var index;
151 | while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
152 | list.splice( index, 1 );
153 |
154 | // Handle firing indexes
155 | if ( index <= firingIndex ) {
156 | firingIndex--;
157 | }
158 | }
159 | } );
160 | return this;
161 | },
162 |
163 | // Check if a given callback is in the list.
164 | // If no argument is given, return whether or not list has callbacks attached.
165 | has: function( fn ) {
166 | return fn ?
167 | jQuery.inArray( fn, list ) > -1 :
168 | list.length > 0;
169 | },
170 |
171 | // Remove all callbacks from the list
172 | empty: function() {
173 | if ( list ) {
174 | list = [];
175 | }
176 | return this;
177 | },
178 |
179 | // Disable .fire and .add
180 | // Abort any current/pending executions
181 | // Clear all callbacks and values
182 | disable: function() {
183 | locked = queue = [];
184 | list = memory = "";
185 | return this;
186 | },
187 | disabled: function() {
188 | return !list;
189 | },
190 |
191 | // Disable .fire
192 | // Also disable .add unless we have memory (since it would have no effect)
193 | // Abort any pending executions
194 | lock: function() {
195 | locked = queue = [];
196 | if ( !memory && !firing ) {
197 | list = memory = "";
198 | }
199 | return this;
200 | },
201 | locked: function() {
202 | return !!locked;
203 | },
204 |
205 | // Call all callbacks with the given context and arguments
206 | fireWith: function( context, args ) {
207 | if ( !locked ) {
208 | args = args || [];
209 | args = [ context, args.slice ? args.slice() : args ];
210 | queue.push( args );
211 | if ( !firing ) {
212 | fire();
213 | }
214 | }
215 | return this;
216 | },
217 |
218 | // Call all the callbacks with the given arguments
219 | fire: function() {
220 | self.fireWith( this, arguments );
221 | return this;
222 | },
223 |
224 | // To know if the callbacks have already been called at least once
225 | fired: function() {
226 | return !!fired;
227 | }
228 | };
229 |
230 | return self;
231 | };
232 |
233 | return jQuery;
234 | } );
235 |
--------------------------------------------------------------------------------
/assets/node_modules/formBuilder/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "formBuilder",
3 | "version": "2.5.3",
4 | "main": "dist/form-builder.min.js",
5 | "files": [
6 | "dist/form-builder.min.js",
7 | "dist/form-render.min.js"
8 | ],
9 | "homepage": "https://formbuilder.online/",
10 | "repository": {
11 | "url": "http://github.com/kevinchappell/formBuilder",
12 | "type": "git"
13 | },
14 | "author": "Kevin Chappell ",
15 | "contributors": [],
16 | "bugs": "https://github.com/kevinchappell/formBuilder/issues",
17 | "description": "A jQuery plugin for drag and drop form building",
18 | "keywords": [
19 | "jquery-plugin",
20 | "forms",
21 | "drag and drop",
22 | "form builder",
23 | "form create"
24 | ],
25 | "license": "MIT",
26 | "ignore": [
27 | "**/*",
28 | "node_modules",
29 | "test"
30 | ],
31 | "config": {
32 | "files": {
33 | "test": [
34 | "test/**/*.spec.js"
35 | ],
36 | "pluginsDir": "src/js/control_plugins/",
37 | "formBuilder": {
38 | "js": "src/js/form-builder.js",
39 | "fonts": "src/fonts/fontello",
40 | "sass": [
41 | "src/sass/form-builder.scss"
42 | ]
43 | },
44 | "formRender": {
45 | "js": "src/js/form-render.js",
46 | "sass": [
47 | "src/sass/form-render.scss"
48 | ]
49 | },
50 | "site": [
51 | "demo/assets/sass/site.scss"
52 | ]
53 | },
54 | "fontServer": "http://fontello.com"
55 | },
56 | "browserify": {
57 | "transform": [
58 | [
59 | "babelify",
60 | {
61 | "presets": [
62 | "es2015",
63 | "node6",
64 | "stage-3"
65 | ],
66 | "plugins": [
67 | "transform-object-rest-spread",
68 | "transform-es2015-destructuring",
69 | "syntax-object-rest-spread",
70 | "transform-runtime"
71 | ]
72 | }
73 | ]
74 | ]
75 | },
76 | "babel": {
77 | "presets": [
78 | "es2015",
79 | [
80 | "env",
81 | {
82 | "targets": {
83 | "browsers": [
84 | "last 1 version"
85 | ]
86 | },
87 | "include": [
88 | "es6.promise",
89 | "es6.object.assign"
90 | ],
91 | "loose": true,
92 | "modules": false
93 | }
94 | ]
95 | ],
96 | "comments": false,
97 | "plugins": [
98 | "transform-object-rest-spread"
99 | ]
100 | },
101 | "scripts": {
102 | "test": "npm test",
103 | "test:watch": "npm test -- --reporter min --watch",
104 | "deploy": "babel-node -- node_modules/gulp/bin/gulp deploy",
105 | "tag:patch": "babel-node -- node_modules/gulp/bin/gulp tag --patch",
106 | "tag:minor": "babel-node -- node_modules/gulp/bin/gulp tag --minor",
107 | "release:patch": "npm run tag:patch --patch && npm run deploy",
108 | "release:minor": "npm run tag:minor --minor && npm run deploy",
109 | "start": "babel-node -- node_modules/webpack/bin/webpack -d --progress --config tools/webpack.config | babel-node -- node_modules/webpack-dev-server/bin/webpack-dev-server --config tools/webpack.config",
110 | "build": "babel-node -- node_modules/webpack/bin/webpack -p --progress --config tools/webpack.config && cp demo/assets/js/form-* dist/",
111 | "build:vendor": "babel-node -- tools/run build-vendor",
112 | "build:plugins": "babel-node -- node_modules/webpack/bin/webpack -p --display-entrypoints --progress --config tools/webpack.plugins.config"
113 | },
114 | "dependencies": {
115 | "jquery": "^3.1.1",
116 | "jquery-ui-sortable": "*"
117 | },
118 | "devDependencies": {
119 | "babel-cli": "^6.23.0",
120 | "babel-core": "^6.23.1",
121 | "babel-eslint": "^7.1.1",
122 | "babel-loader": "^7.0.0",
123 | "babel-plugin-syntax-object-rest-spread": "^6.13.0",
124 | "babel-plugin-transform-es2015-destructuring": "^6.23.0",
125 | "babel-plugin-transform-object-rest-spread": "^6.23.0",
126 | "babel-plugin-transform-runtime": "^6.23.0",
127 | "babel-preset-env": "^1.4.0",
128 | "babel-preset-es2015": "^6.22.0",
129 | "babel-preset-node6": "^11.0.0",
130 | "babel-preset-stage-3": "^6.22.0",
131 | "babel-regenerator-runtime": "^6.5.0",
132 | "babel-register": "^6.23.0",
133 | "babelify": "^7.3.0",
134 | "babili": "^0.0.12",
135 | "babili-webpack-plugin": "^0.0.11",
136 | "browser-sync": "^2.18.8",
137 | "browserify": "^14.3.0",
138 | "chai": "^3.5.0",
139 | "compression-webpack-plugin": "^0.4.0",
140 | "concat-files": "^0.1.1",
141 | "copy-webpack-plugin": "^4.0.1",
142 | "cross-env": "^4.0.0",
143 | "css-loader": "^0.28.0",
144 | "eslint": "^3.15.0",
145 | "eslint-config-google": "^0.7.1",
146 | "eslint-loader": "^1.7.1",
147 | "extract-text-webpack-plugin": "^2.1.0",
148 | "gulp": "^3.9.1",
149 | "gulp-autoprefixer": "^3.1.1",
150 | "gulp-base64": "^0.1.3",
151 | "gulp-bump": "^2.6.1",
152 | "gulp-concat": "^2.6.1",
153 | "gulp-cssmin": "^0.1.7",
154 | "gulp-eslint": "^3.0.1",
155 | "gulp-header": "^1.8.8",
156 | "gulp-iife": "^0.3.0",
157 | "gulp-load-plugins": "^1.5.0",
158 | "gulp-plumber": "^1.1.0",
159 | "gulp-regex-rename": "^0.1.0",
160 | "gulp-replace": "^0.5.4",
161 | "gulp-sass": "^3.1.0",
162 | "gulp-sourcemaps": "^2.4.1",
163 | "gulp-uglify": "^2.0.1",
164 | "mi18n": "^0.3.4",
165 | "mocha": "^3.3.0",
166 | "node-sass": "^4.5.0",
167 | "opener": "^1.4.3",
168 | "postcss-loader": "^1.3.3",
169 | "sass-loader": "^6.0.3",
170 | "semver": "^5.3.0",
171 | "style-loader": "^0.16.1",
172 | "vinyl-buffer": "^1.0.0",
173 | "vinyl-source-stream": "^1.1.0",
174 | "webpack": "^2.4.1",
175 | "webpack-dev-server": "^2.4.5"
176 | },
177 | "eslintConfig": {
178 | "parser": "babel-eslint",
179 | "extends": [
180 | "eslint:recommended",
181 | "google"
182 | ],
183 | "globals": {
184 | "jQuery": true,
185 | "$": true
186 | },
187 | "env": {
188 | "es6": true,
189 | "browser": true,
190 | "node": true
191 | },
192 | "rules": {
193 | "quote-props": 0,
194 | "no-unused-vars": 1,
195 | "no-console": 0,
196 | "new-cap": 0,
197 | "strict": 0,
198 | "arrow-parens": 0,
199 | "max-len": 0,
200 | "no-underscore-dangle": 0,
201 | "comma-dangle": 0,
202 | "no-use-before-define": 0,
203 | "eol-last": 0,
204 | "quotes": [
205 | 2,
206 | "single"
207 | ]
208 | }
209 | },
210 | "engines": {}
211 | }
212 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/offset.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/access",
4 | "./var/document",
5 | "./var/documentElement",
6 | "./css/var/rnumnonpx",
7 | "./css/curCSS",
8 | "./css/addGetHookIf",
9 | "./css/support",
10 | "./core/nodeName",
11 |
12 | "./core/init",
13 | "./css",
14 | "./selector" // contains
15 | ], function( jQuery, access, document, documentElement, rnumnonpx,
16 | curCSS, addGetHookIf, support, nodeName ) {
17 |
18 | "use strict";
19 |
20 | jQuery.offset = {
21 | setOffset: function( elem, options, i ) {
22 | var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
23 | position = jQuery.css( elem, "position" ),
24 | curElem = jQuery( elem ),
25 | props = {};
26 |
27 | // Set position first, in-case top/left are set even on static elem
28 | if ( position === "static" ) {
29 | elem.style.position = "relative";
30 | }
31 |
32 | curOffset = curElem.offset();
33 | curCSSTop = jQuery.css( elem, "top" );
34 | curCSSLeft = jQuery.css( elem, "left" );
35 | calculatePosition = ( position === "absolute" || position === "fixed" ) &&
36 | ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
37 |
38 | // Need to be able to calculate position if either
39 | // top or left is auto and position is either absolute or fixed
40 | if ( calculatePosition ) {
41 | curPosition = curElem.position();
42 | curTop = curPosition.top;
43 | curLeft = curPosition.left;
44 |
45 | } else {
46 | curTop = parseFloat( curCSSTop ) || 0;
47 | curLeft = parseFloat( curCSSLeft ) || 0;
48 | }
49 |
50 | if ( jQuery.isFunction( options ) ) {
51 |
52 | // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
53 | options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
54 | }
55 |
56 | if ( options.top != null ) {
57 | props.top = ( options.top - curOffset.top ) + curTop;
58 | }
59 | if ( options.left != null ) {
60 | props.left = ( options.left - curOffset.left ) + curLeft;
61 | }
62 |
63 | if ( "using" in options ) {
64 | options.using.call( elem, props );
65 |
66 | } else {
67 | curElem.css( props );
68 | }
69 | }
70 | };
71 |
72 | jQuery.fn.extend( {
73 | offset: function( options ) {
74 |
75 | // Preserve chaining for setter
76 | if ( arguments.length ) {
77 | return options === undefined ?
78 | this :
79 | this.each( function( i ) {
80 | jQuery.offset.setOffset( this, options, i );
81 | } );
82 | }
83 |
84 | var doc, docElem, rect, win,
85 | elem = this[ 0 ];
86 |
87 | if ( !elem ) {
88 | return;
89 | }
90 |
91 | // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
92 | // Support: IE <=11 only
93 | // Running getBoundingClientRect on a
94 | // disconnected node in IE throws an error
95 | if ( !elem.getClientRects().length ) {
96 | return { top: 0, left: 0 };
97 | }
98 |
99 | rect = elem.getBoundingClientRect();
100 |
101 | doc = elem.ownerDocument;
102 | docElem = doc.documentElement;
103 | win = doc.defaultView;
104 |
105 | return {
106 | top: rect.top + win.pageYOffset - docElem.clientTop,
107 | left: rect.left + win.pageXOffset - docElem.clientLeft
108 | };
109 | },
110 |
111 | position: function() {
112 | if ( !this[ 0 ] ) {
113 | return;
114 | }
115 |
116 | var offsetParent, offset,
117 | elem = this[ 0 ],
118 | parentOffset = { top: 0, left: 0 };
119 |
120 | // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
121 | // because it is its only offset parent
122 | if ( jQuery.css( elem, "position" ) === "fixed" ) {
123 |
124 | // Assume getBoundingClientRect is there when computed position is fixed
125 | offset = elem.getBoundingClientRect();
126 |
127 | } else {
128 |
129 | // Get *real* offsetParent
130 | offsetParent = this.offsetParent();
131 |
132 | // Get correct offsets
133 | offset = this.offset();
134 | if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
135 | parentOffset = offsetParent.offset();
136 | }
137 |
138 | // Add offsetParent borders
139 | parentOffset = {
140 | top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
141 | left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
142 | };
143 | }
144 |
145 | // Subtract parent offsets and element margins
146 | return {
147 | top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
148 | left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
149 | };
150 | },
151 |
152 | // This method will return documentElement in the following cases:
153 | // 1) For the element inside the iframe without offsetParent, this method will return
154 | // documentElement of the parent window
155 | // 2) For the hidden or detached element
156 | // 3) For body or html element, i.e. in case of the html node - it will return itself
157 | //
158 | // but those exceptions were never presented as a real life use-cases
159 | // and might be considered as more preferable results.
160 | //
161 | // This logic, however, is not guaranteed and can change at any point in the future
162 | offsetParent: function() {
163 | return this.map( function() {
164 | var offsetParent = this.offsetParent;
165 |
166 | while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
167 | offsetParent = offsetParent.offsetParent;
168 | }
169 |
170 | return offsetParent || documentElement;
171 | } );
172 | }
173 | } );
174 |
175 | // Create scrollLeft and scrollTop methods
176 | jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
177 | var top = "pageYOffset" === prop;
178 |
179 | jQuery.fn[ method ] = function( val ) {
180 | return access( this, function( elem, method, val ) {
181 |
182 | // Coalesce documents and windows
183 | var win;
184 | if ( jQuery.isWindow( elem ) ) {
185 | win = elem;
186 | } else if ( elem.nodeType === 9 ) {
187 | win = elem.defaultView;
188 | }
189 |
190 | if ( val === undefined ) {
191 | return win ? win[ prop ] : elem[ method ];
192 | }
193 |
194 | if ( win ) {
195 | win.scrollTo(
196 | !top ? val : win.pageXOffset,
197 | top ? val : win.pageYOffset
198 | );
199 |
200 | } else {
201 | elem[ method ] = val;
202 | }
203 | }, method, val, arguments.length );
204 | };
205 | } );
206 |
207 | // Support: Safari <=7 - 9.1, Chrome <=37 - 49
208 | // Add the top/left cssHooks using jQuery.fn.position
209 | // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
210 | // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
211 | // getComputedStyle returns percent when specified for top/left/bottom/right;
212 | // rather than make the css module depend on the offset module, just check for it here
213 | jQuery.each( [ "top", "left" ], function( i, prop ) {
214 | jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
215 | function( elem, computed ) {
216 | if ( computed ) {
217 | computed = curCSS( elem, prop );
218 |
219 | // If curCSS returns percentage, fallback to offset
220 | return rnumnonpx.test( computed ) ?
221 | jQuery( elem ).position()[ prop ] + "px" :
222 | computed;
223 | }
224 | }
225 | );
226 | } );
227 |
228 | return jQuery;
229 | } );
230 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/src/selector-native.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./var/document",
4 | "./var/documentElement",
5 | "./var/hasOwn",
6 | "./var/indexOf"
7 | ], function( jQuery, document, documentElement, hasOwn, indexOf ) {
8 |
9 | "use strict";
10 |
11 | /*
12 | * Optional (non-Sizzle) selector module for custom builds.
13 | *
14 | * Note that this DOES NOT SUPPORT many documented jQuery
15 | * features in exchange for its smaller size:
16 | *
17 | * Attribute not equal selector
18 | * Positional selectors (:first; :eq(n); :odd; etc.)
19 | * Type selectors (:input; :checkbox; :button; etc.)
20 | * State-based selectors (:animated; :visible; :hidden; etc.)
21 | * :has(selector)
22 | * :not(complex selector)
23 | * custom selectors via Sizzle extensions
24 | * Leading combinators (e.g., $collection.find("> *"))
25 | * Reliable functionality on XML fragments
26 | * Requiring all parts of a selector to match elements under context
27 | * (e.g., $div.find("div > *") now matches children of $div)
28 | * Matching against non-elements
29 | * Reliable sorting of disconnected nodes
30 | * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
31 | *
32 | * If any of these are unacceptable tradeoffs, either use Sizzle or
33 | * customize this stub for the project's specific needs.
34 | */
35 |
36 | var hasDuplicate, sortInput,
37 | sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
38 | matches = documentElement.matches ||
39 | documentElement.webkitMatchesSelector ||
40 | documentElement.mozMatchesSelector ||
41 | documentElement.oMatchesSelector ||
42 | documentElement.msMatchesSelector,
43 |
44 | // CSS string/identifier serialization
45 | // https://drafts.csswg.org/cssom/#common-serializing-idioms
46 | rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
47 | fcssescape = function( ch, asCodePoint ) {
48 | if ( asCodePoint ) {
49 |
50 | // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
51 | if ( ch === "\0" ) {
52 | return "\uFFFD";
53 | }
54 |
55 | // Control characters and (dependent upon position) numbers get escaped as code points
56 | return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
57 | }
58 |
59 | // Other potentially-special ASCII characters get backslash-escaped
60 | return "\\" + ch;
61 | };
62 |
63 | function sortOrder( a, b ) {
64 |
65 | // Flag for duplicate removal
66 | if ( a === b ) {
67 | hasDuplicate = true;
68 | return 0;
69 | }
70 |
71 | // Sort on method existence if only one input has compareDocumentPosition
72 | var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
73 | if ( compare ) {
74 | return compare;
75 | }
76 |
77 | // Calculate position if both inputs belong to the same document
78 | compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
79 | a.compareDocumentPosition( b ) :
80 |
81 | // Otherwise we know they are disconnected
82 | 1;
83 |
84 | // Disconnected nodes
85 | if ( compare & 1 ) {
86 |
87 | // Choose the first element that is related to our preferred document
88 | if ( a === document || a.ownerDocument === document &&
89 | jQuery.contains( document, a ) ) {
90 | return -1;
91 | }
92 | if ( b === document || b.ownerDocument === document &&
93 | jQuery.contains( document, b ) ) {
94 | return 1;
95 | }
96 |
97 | // Maintain original order
98 | return sortInput ?
99 | ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
100 | 0;
101 | }
102 |
103 | return compare & 4 ? -1 : 1;
104 | }
105 |
106 | function uniqueSort( results ) {
107 | var elem,
108 | duplicates = [],
109 | j = 0,
110 | i = 0;
111 |
112 | hasDuplicate = false;
113 | sortInput = !sortStable && results.slice( 0 );
114 | results.sort( sortOrder );
115 |
116 | if ( hasDuplicate ) {
117 | while ( ( elem = results[ i++ ] ) ) {
118 | if ( elem === results[ i ] ) {
119 | j = duplicates.push( i );
120 | }
121 | }
122 | while ( j-- ) {
123 | results.splice( duplicates[ j ], 1 );
124 | }
125 | }
126 |
127 | // Clear input after sorting to release objects
128 | // See https://github.com/jquery/sizzle/pull/225
129 | sortInput = null;
130 |
131 | return results;
132 | }
133 |
134 | function escape( sel ) {
135 | return ( sel + "" ).replace( rcssescape, fcssescape );
136 | }
137 |
138 | jQuery.extend( {
139 | uniqueSort: uniqueSort,
140 | unique: uniqueSort,
141 | escapeSelector: escape,
142 | find: function( selector, context, results, seed ) {
143 | var elem, nodeType,
144 | i = 0;
145 |
146 | results = results || [];
147 | context = context || document;
148 |
149 | // Same basic safeguard as Sizzle
150 | if ( !selector || typeof selector !== "string" ) {
151 | return results;
152 | }
153 |
154 | // Early return if context is not an element or document
155 | if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
156 | return [];
157 | }
158 |
159 | if ( seed ) {
160 | while ( ( elem = seed[ i++ ] ) ) {
161 | if ( jQuery.find.matchesSelector( elem, selector ) ) {
162 | results.push( elem );
163 | }
164 | }
165 | } else {
166 | jQuery.merge( results, context.querySelectorAll( selector ) );
167 | }
168 |
169 | return results;
170 | },
171 | text: function( elem ) {
172 | var node,
173 | ret = "",
174 | i = 0,
175 | nodeType = elem.nodeType;
176 |
177 | if ( !nodeType ) {
178 |
179 | // If no nodeType, this is expected to be an array
180 | while ( ( node = elem[ i++ ] ) ) {
181 |
182 | // Do not traverse comment nodes
183 | ret += jQuery.text( node );
184 | }
185 | } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
186 |
187 | // Use textContent for elements
188 | return elem.textContent;
189 | } else if ( nodeType === 3 || nodeType === 4 ) {
190 | return elem.nodeValue;
191 | }
192 |
193 | // Do not include comment or processing instruction nodes
194 |
195 | return ret;
196 | },
197 | contains: function( a, b ) {
198 | var adown = a.nodeType === 9 ? a.documentElement : a,
199 | bup = b && b.parentNode;
200 | return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
201 | },
202 | isXMLDoc: function( elem ) {
203 |
204 | // documentElement is verified for cases where it doesn't yet exist
205 | // (such as loading iframes in IE - #4833)
206 | var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
207 | return documentElement ? documentElement.nodeName !== "HTML" : false;
208 | },
209 | expr: {
210 | attrHandle: {},
211 | match: {
212 | bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
213 | "|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
214 | needsContext: /^[\x20\t\r\n\f]*[>+~]/
215 | }
216 | }
217 | } );
218 |
219 | jQuery.extend( jQuery.find, {
220 | matches: function( expr, elements ) {
221 | return jQuery.find( expr, null, null, elements );
222 | },
223 | matchesSelector: function( elem, expr ) {
224 | return matches.call( elem, expr );
225 | },
226 | attr: function( elem, name ) {
227 | var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
228 |
229 | // Don't get fooled by Object.prototype properties (jQuery #13807)
230 | value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
231 | fn( elem, name, jQuery.isXMLDoc( elem ) ) :
232 | undefined;
233 | return value !== undefined ? value : elem.getAttribute( name );
234 | }
235 | } );
236 |
237 | } );
238 |
--------------------------------------------------------------------------------
/assets/node_modules/jquery/AUTHORS.txt:
--------------------------------------------------------------------------------
1 | Authors ordered by first contribution.
2 |
3 | John Resig
4 | Gilles van den Hoven
5 | Michael Geary
6 | Stefan Petre
7 | Yehuda Katz
8 | Corey Jewett
9 | Klaus Hartl
10 | Franck Marcia
11 | Jörn Zaefferer
12 | Paul Bakaus
13 | Brandon Aaron
14 | Mike Alsup
15 | Dave Methvin
16 | Ed Engelhardt
17 | Sean Catchpole
18 | Paul Mclanahan
19 | David Serduke
20 | Richard D. Worth
21 | Scott González
22 | Ariel Flesler
23 | Jon Evans
24 | TJ Holowaychuk
25 | Michael Bensoussan
26 | Robert Katić
27 | Louis-Rémi Babé
28 | Earle Castledine
29 | Damian Janowski
30 | Rich Dougherty
31 | Kim Dalsgaard
32 | Andrea Giammarchi
33 | Mark Gibson
34 | Karl Swedberg
35 | Justin Meyer
36 | Ben Alman
37 | James Padolsey
38 | David Petersen
39 | Batiste Bieler
40 | Alexander Farkas
41 | Rick Waldron
42 | Filipe Fortes
43 | Neeraj Singh
44 | Paul Irish
45 | Iraê Carvalho
46 | Matt Curry
47 | Michael Monteleone
48 | Noah Sloan
49 | Tom Viner
50 | Douglas Neiner
51 | Adam J. Sontag
52 | Dave Reed
53 | Ralph Whitbeck
54 | Carl Fürstenberg
55 | Jacob Wright
56 | J. Ryan Stinnett
57 | unknown
58 | temp01
59 | Heungsub Lee
60 | Colin Snover
61 | Ryan W Tenney
62 | Pinhook
63 | Ron Otten
64 | Jephte Clain
65 | Anton Matzneller
66 | Alex Sexton
67 | Dan Heberden
68 | Henri Wiechers
69 | Russell Holbrook
70 | Julian Aubourg
71 | Gianni Alessandro Chiappetta
72 | Scott Jehl
73 | James Burke
74 | Jonas Pfenniger
75 | Xavi Ramirez
76 | Jared Grippe
77 | Sylvester Keil
78 | Brandon Sterne
79 | Mathias Bynens
80 | Timmy Willison <4timmywil@gmail.com>
81 | Corey Frang
82 | Digitalxero
83 | Anton Kovalyov
84 | David Murdoch
85 | Josh Varner
86 | Charles McNulty
87 | Jordan Boesch
88 | Jess Thrysoee
89 | Michael Murray
90 | Lee Carpenter
91 | Alexis Abril
92 | Rob Morgan
93 | John Firebaugh
94 | Sam Bisbee
95 | Gilmore Davidson
96 | Brian Brennan
97 | Xavier Montillet
98 | Daniel Pihlstrom
99 | Sahab Yazdani
100 | avaly
101 | Scott Hughes
102 | Mike Sherov
103 | Greg Hazel
104 | Schalk Neethling
105 | Denis Knauf
106 | Timo Tijhof
107 | Steen Nielsen
108 | Anton Ryzhov
109 | Shi Chuan
110 | Berker Peksag
111 | Toby Brain
112 | Matt Mueller
113 | Justin
114 | Daniel Herman
115 | Oleg Gaidarenko
116 | Richard Gibson
117 | Rafaël Blais Masson
118 | cmc3cn <59194618@qq.com>
119 | Joe Presbrey
120 | Sindre Sorhus
121 | Arne de Bree
122 | Vladislav Zarakovsky
123 | Andrew E Monat
124 | Oskari
125 | Joao Henrique de Andrade Bruni
126 | tsinha
127 | Matt Farmer
128 | Trey Hunner
129 | Jason Moon
130 | Jeffery To
131 | Kris Borchers
132 | Vladimir Zhuravlev
133 | Jacob Thornton
134 | Chad Killingsworth
135 | Nowres Rafid
136 | David Benjamin
137 | Uri Gilad
138 | Chris Faulkner
139 | Elijah Manor
140 | Daniel Chatfield
141 | Nikita Govorov
142 | Wesley Walser
143 | Mike Pennisi
144 | Markus Staab
145 | Dave Riddle
146 | Callum Macrae
147 | Benjamin Truyman
148 | James Huston
149 | Erick Ruiz de Chávez
150 | David Bonner
151 | Akintayo Akinwunmi
152 | MORGAN
153 | Ismail Khair
154 | Carl Danley
155 | Mike Petrovich
156 | Greg Lavallee
157 | Daniel Gálvez
158 | Sai Lung Wong
159 | Tom H Fuertes
160 | Roland Eckl
161 | Jay Merrifield
162 | Allen J Schmidt Jr
163 | Jonathan Sampson
164 | Marcel Greter
165 | Matthias Jäggli
166 | David Fox
167 | Yiming He
168 | Devin Cooper
169 | Paul Ramos
170 | Rod Vagg
171 | Bennett Sorbo
172 | Sebastian Burkhard
173 | Zachary Adam Kaplan
174 | nanto_vi
175 | nanto
176 | Danil Somsikov
177 | Ryunosuke SATO
178 | Jean Boussier
179 | Adam Coulombe
180 | Andrew Plummer
181 | Mark Raddatz
182 | Isaac Z. Schlueter
183 | Karl Sieburg
184 | Pascal Borreli
185 | Nguyen Phuc Lam
186 | Dmitry Gusev
187 | Michał Gołębiowski
188 | Li Xudong
189 | Steven Benner
190 | Tom H Fuertes
191 | Renato Oliveira dos Santos
192 | ros3cin
193 | Jason Bedard
194 | Kyle Robinson Young
195 | Chris Talkington
196 | Eddie Monge
197 | Terry Jones
198 | Jason Merino
199 | Jeremy Dunck
200 | Chris Price
201 | Guy Bedford
202 | Amey Sakhadeo
203 | Mike Sidorov
204 | Anthony Ryan
205 | Dominik D. Geyer
206 | George Kats
207 | Lihan Li
208 | Ronny Springer
209 | Chris Antaki
210 | Marian Sollmann
211 | njhamann
212 | Ilya Kantor
213 | David Hong
214 | John Paul
215 | Jakob Stoeck
216 | Christopher Jones
217 | Forbes Lindesay
218 | S. Andrew Sheppard
219 | Leonardo Balter
220 | Roman Reiß
221 | Benjy Cui
222 | Rodrigo Rosenfeld Rosas
223 | John Hoven
224 | Philip Jägenstedt
225 | Christian Kosmowski
226 | Liang Peng
227 | TJ VanToll
228 | Senya Pugach
229 | Aurelio De Rosa
230 | Nazar Mokrynskyi
231 | Amit Merchant
232 | Jason Bedard
233 | Arthur Verschaeve
234 | Dan Hart
235 | Bin Xin
236 | David Corbacho
237 | Veaceslav Grimalschi
238 | Daniel Husar
239 | Frederic Hemberger
240 | Ben Toews
241 | Aditya Raghavan
242 | Victor Homyakov
243 | Shivaji Varma
244 | Nicolas HENRY
245 | Anne-Gaelle Colom
246 | George Mauer
247 | Leonardo Braga
248 | Stephen Edgar
249 | Thomas Tortorini
250 | Winston Howes
251 | Jon Hester
252 | Alexander O'Mara
253 | Bastian Buchholz
254 | Arthur Stolyar
255 | Calvin Metcalf