Version Description
Download this release
Release Info
Developer | businessdirectoryplugin |
Plugin | Business Directory Plugin |
Version | 5.6 |
Comparing to | |
See all releases |
Code changes from version 5.5.14 to 5.6
- README.TXT +13 -2
- assets/css/admin-csv-import.min.css +1 -1
- assets/css/admin.min.css +1 -1
- assets/css/less/admin-csv-import.less +9 -0
- assets/css/less/common.less +1 -0
- assets/css/less/wpbdp.less +23 -4
- assets/css/wpbdp.min.css +1 -1
- assets/js/admin-fees.js +1 -1
- assets/js/admin-fees.min.js +1 -1
- assets/js/submit-listing.js +1 -17
- assets/js/submit-listing.min.js +1 -1
- assets/js/wpbdp.js +1 -1
- assets/js/wpbdp.min.js +1 -1
- business-directory-plugin.php +1 -1
- includes/admin/class-admin-listings.php +25 -0
- includes/admin/class-csv-import.php +11 -2
- includes/class-assets.php +7 -7
- includes/class-listing-email-notification.php +1 -1
- includes/class-listing.php +6 -0
- includes/class-query-integration.php +33 -0
- includes/class-rewrite.php +2 -2
- includes/class-wordpress-template-integration.php +1 -1
- includes/class-wpbdp.php +1 -1
- includes/fields/class-fieldtypes-twitter.php +1 -1
- includes/fields/class-form-field-type.php +1 -1
- includes/functions.php +34 -0
- includes/helpers/class-email.php +12 -1
- includes/helpers/class-listing-display-helper.php +1 -1
- includes/templates-ui.php +0 -18
- languages/WPBDM-ar.mo +0 -0
- languages/WPBDM-ar.po +94 -81
- languages/WPBDM-de_DE.mo +0 -0
- languages/WPBDM-de_DE.po +94 -81
- languages/WPBDM-en_US.po +91 -81
- languages/WPBDM-es_ES.mo +0 -0
- languages/WPBDM-es_ES.po +99 -89
- languages/WPBDM-fr_FR.mo +0 -0
- languages/WPBDM-fr_FR.po +94 -81
- languages/WPBDM-it_IT.mo +0 -0
- languages/WPBDM-it_IT.po +94 -81
- languages/WPBDM-nl_NL.po +95 -82
- languages/WPBDM-pl_PL.mo +0 -0
- languages/WPBDM-pl_PL.po +96 -81
- languages/WPBDM-ru_RU.mo +0 -0
- languages/WPBDM-ru_RU.po +94 -81
- languages/WPBDM-sv_SE.mo +0 -0
- languages/WPBDM-sv_SE.po +94 -81
- languages/WPBDM.pot +92 -82
- templates/admin/csv-import.tpl.php +21 -2
- vendors/jQuery-File-Upload-9.32.0/.jshintrc +0 -81
- vendors/jQuery-File-Upload-9.32.0/.npmignore +0 -20
- vendors/jQuery-File-Upload-9.32.0/CONTRIBUTING.md +0 -15
- vendors/jQuery-File-Upload-9.32.0/LICENSE.txt +0 -21
- vendors/jQuery-File-Upload-9.32.0/README.md +0 -117
- vendors/jQuery-File-Upload-9.32.0/VULNERABILITIES.md +0 -65
- vendors/jQuery-File-Upload-9.32.0/angularjs.html +0 -211
- vendors/jQuery-File-Upload-9.32.0/basic-plus.html +0 -226
- vendors/jQuery-File-Upload-9.32.0/basic.html +0 -136
- vendors/jQuery-File-Upload-9.32.0/bower-version-update.js +0 -16
- vendors/jQuery-File-Upload-9.32.0/bower.json +0 -64
- vendors/jQuery-File-Upload-9.32.0/cors/postmessage.html +0 -75
- vendors/jQuery-File-Upload-9.32.0/cors/result.html +0 -24
- vendors/jQuery-File-Upload-9.32.0/css/jquery-ui-demo-ie8.css +0 -21
- vendors/jQuery-File-Upload-9.32.0/css/jquery-ui-demo.css +0 -67
- vendors/jQuery-File-Upload-9.32.0/css/style.css +0 -15
- vendors/jQuery-File-Upload-9.32.0/index.html +0 -259
- vendors/jQuery-File-Upload-9.32.0/jquery-ui.html +0 -256
- vendors/jQuery-File-Upload-9.32.0/js/app.js +0 -101
- vendors/jQuery-File-Upload-9.32.0/js/cors/jquery.postmessage-transport.js +0 -126
- vendors/jQuery-File-Upload-9.32.0/js/cors/jquery.xdr-transport.js +0 -89
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-angular.js +0 -438
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-audio.js +0 -113
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-image.js +0 -326
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-jquery-ui.js +0 -161
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-process.js +0 -178
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-ui.js +0 -714
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-validate.js +0 -125
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-video.js +0 -113
- vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload.js +0 -1535
- vendors/jQuery-File-Upload-9.32.0/js/jquery.iframe-transport.js +0 -224
- vendors/jQuery-File-Upload-9.32.0/js/main.js +0 -75
- vendors/jQuery-File-Upload-9.32.0/package.json +0 -55
- vendors/jQuery-File-Upload-9.32.0/server/php/docker-compose.yml +0 -9
- vendors/jQuery-File-Upload-9.32.0/test/index.html +0 -172
- vendors/jQuery-File-Upload-9.32.0/test/test.js +0 -1292
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/.gitignore +1 -1
- vendors/jQuery-File-Upload/LICENSE.txt +20 -0
- vendors/jQuery-File-Upload/README.md +225 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/SECURITY.md +108 -32
- vendors/jQuery-File-Upload/VULNERABILITIES.md +118 -0
- vendors/jQuery-File-Upload/cors/postmessage.html +85 -0
- vendors/jQuery-File-Upload/cors/result.html +26 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-noscript.css +0 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-ui-noscript.css +0 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-ui.css +10 -6
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload.css +0 -0
- vendors/jQuery-File-Upload/docker-compose.yml +59 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/img/loading.gif +0 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/img/progressbar.gif +0 -0
- vendors/jQuery-File-Upload/index.html +368 -0
- vendors/jQuery-File-Upload/js/cors/jquery.postmessage-transport.js +126 -0
- vendors/jQuery-File-Upload/js/cors/jquery.xdr-transport.js +97 -0
- vendors/jQuery-File-Upload/js/demo.js +75 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-audio.js +101 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-image.js +339 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-process.js +175 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-ui.js +763 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-validate.js +119 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload-video.js +101 -0
- vendors/jQuery-File-Upload/js/jquery.fileupload.js +1611 -0
- vendors/jQuery-File-Upload/js/jquery.iframe-transport.js +221 -0
- vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/js/vendor/jquery.ui.widget.js +0 -0
- vendors/jQuery-File-Upload/package-lock.json +3739 -0
README.TXT
CHANGED
@@ -5,8 +5,8 @@ Tags: business directory, listings, directory plugin, company business directory
|
|
5 |
Requires at least: 4.8
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.3
|
8 |
-
Last Updated: 2020-
|
9 |
-
Stable tag: 5.
|
10 |
License: GPLv2 or later
|
11 |
|
12 |
Build any kind of local listings directory, directory of business providers, a Yellow-Pages business directory, Yelp-like review directory, property listings and much more! Make your listings sing with Business Directory Plugin.
|
@@ -146,6 +146,17 @@ If you are having problems please visit [support forum](http://www.businessdirec
|
|
146 |
|
147 |
== Changelog ==
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
= Version 5.5.14 =
|
150 |
* Fix layout and style in login BD view.
|
151 |
* Fix listings email notification for free fees.
|
5 |
Requires at least: 4.8
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.3
|
8 |
+
Last Updated: 2020-Feb-11
|
9 |
+
Stable tag: 5.6
|
10 |
License: GPLv2 or later
|
11 |
|
12 |
Build any kind of local listings directory, directory of business providers, a Yellow-Pages business directory, Yelp-like review directory, property listings and much more! Make your listings sing with Business Directory Plugin.
|
146 |
|
147 |
== Changelog ==
|
148 |
|
149 |
+
= Version 5.6 =
|
150 |
+
* Add CSV Import setting to set existing listings import status. (#4409)
|
151 |
+
* Add listing_id as argument for wpbdp_listing_schema_org filter. (#4414)
|
152 |
+
* Create wpbdp_listing_schema_org filter to allow customer modifying/including Schema.org items to listings. (#4414)
|
153 |
+
* Support multiple recipients on listing email address for notifications. (#4406)
|
154 |
+
* Upgrade jQuery File Upload to version 10.7.0. (#4426)
|
155 |
+
* Use WooCommerce version of select2 lib scripts to enhance BD accesibility. (#4440)
|
156 |
+
* Fix renewal notification admin CC. (#4420)
|
157 |
+
* Generate 404 when trying to access to a listing using ID and wrong slug. (#4421)
|
158 |
+
* Fix twitter social fields alignment on listing detail view. (#4444)
|
159 |
+
|
160 |
= Version 5.5.14 =
|
161 |
* Fix layout and style in login BD view.
|
162 |
* Fix listings email notification for free fees.
|
assets/css/admin-csv-import.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#wpbdp-csv-import-fatal-error{display:none}#wpbdp-csv-import-fatal-error .last-imported-line .placeholder{font-weight:bold}.wpbdp-page-csv-import .canceled-import{display:none}.wpbdp-page-csv-import a.cancel-import{margin-left:35px;color:red}.wpbdp-page-csv-import dl{margin-left:10px}.wpbdp-page-csv-import .status-msg{margin:5px 0 0 0;font-style:italic}.wpbdp-page-csv-import #wpbdp-csv-import-summary,.wpbdp-page-csv-import #wpbdp-csv-import-summary .no-warnings,.wpbdp-page-csv-import #wpbdp-csv-import-summary .with-warnings,.wpbdp-page-csv-import #wpbdp-csv-import-summary .wpbdp-csv-import-warnings{display:none}.wpbdp-page-csv-import .wpbdp-csv-import-warnings .col-line-no{width:40px}.wpbdp-page-csv-import .wpbdp-csv-import-warnings tbody .col-line-content{font-family:monospace;font-size:90%;width:350px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-local-selection{margin:10px 0 0 0}.file-local-selection ul{margin-left:5px;border-left:solid 3px #ddd;padding-left:10px;display:none}.file-local-selection ul li{margin:0;padding:0}.wpbdp-csv-import-example{width:100%;padding:10px;display:block;background:#fff;border:solid 1px #ddd;font-size:90%;font-family:monospace;height:100%;white-space:pre}#wpbdp-csv-import-form input[type="file"]{border:none}table.wpbdp-csv-import-results,table.wpbdp-csv-import-warnings{width:100%}table.wpbdp-csv-import-results .line-no,table.wpbdp-csv-import-warnings .line-no{width:50px}table.wpbdp-csv-import-results td.line,table.wpbdp-csv-import-warnings td.line{font-family:monospace;font-size:90%}table.wpbdp-csv-import-results .error,table.wpbdp-csv-import-warnings .error{width:200px}table.wpbdp-csv-import-headers{width:100%}table.wpbdp-csv-import-headers td.field-is-required,table.wpbdp-csv-import-headers td.field-is-multivalued{text-align:center}table.wpbdp-csv-import-headers tbody tr{background:#f9f9f9}table.wpbdp-csv-import-headers tbody tr.alt{background:inherit}.wpbdp-csv-import-top-buttons{float:right}
|
1 |
+
#wpbdp-csv-import-fatal-error{display:none}#wpbdp-csv-import-fatal-error .last-imported-line .placeholder{font-weight:bold}.wpbdp-page-csv-import .canceled-import{display:none}.wpbdp-page-csv-import a.cancel-import{margin-left:35px;color:red}.wpbdp-page-csv-import dl{margin-left:10px}.wpbdp-page-csv-import .status-msg{margin:5px 0 0 0;font-style:italic}.wpbdp-page-csv-import #wpbdp-csv-import-summary,.wpbdp-page-csv-import #wpbdp-csv-import-summary .no-warnings,.wpbdp-page-csv-import #wpbdp-csv-import-summary .with-warnings,.wpbdp-page-csv-import #wpbdp-csv-import-summary .wpbdp-csv-import-warnings{display:none}.wpbdp-page-csv-import .wpbdp-csv-import-warnings .col-line-no{width:40px}.wpbdp-page-csv-import .wpbdp-csv-import-warnings tbody .col-line-content{font-family:monospace;font-size:90%;width:350px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-local-selection{margin:10px 0 0 0}.file-local-selection ul{margin-left:5px;border-left:solid 3px #ddd;padding-left:10px;display:none}.file-local-selection ul li{margin:0;padding:0}.wpbdp-csv-import-example{width:100%;padding:10px;display:block;background:#fff;border:solid 1px #ddd;font-size:90%;font-family:monospace;height:100%;white-space:pre}#wpbdp-csv-import-form select,#wpbdp-csv-import-form input[type="text"]{min-width:30%}#wpbdp-csv-import-form input[type="file"]{border:none}#wpbdp-csv-import-form span.description{display:block}table.wpbdp-csv-import-results,table.wpbdp-csv-import-warnings{width:100%}table.wpbdp-csv-import-results .line-no,table.wpbdp-csv-import-warnings .line-no{width:50px}table.wpbdp-csv-import-results td.line,table.wpbdp-csv-import-warnings td.line{font-family:monospace;font-size:90%}table.wpbdp-csv-import-results .error,table.wpbdp-csv-import-warnings .error{width:200px}table.wpbdp-csv-import-headers{width:100%}table.wpbdp-csv-import-headers td.field-is-required,table.wpbdp-csv-import-headers td.field-is-multivalued{text-align:center}table.wpbdp-csv-import-headers tbody tr{background:#f9f9f9}table.wpbdp-csv-import-headers tbody tr.alt{background:inherit}.wpbdp-csv-import-top-buttons{float:right}
|
assets/css/admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wpbdp-display-block{display:block}.cf:before,.cf:after{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.button-primary.next-to-secondary{margin-left:30px}.wpbdp-admin-content.with-sidebar{margin-top:20px;clear:left;float:left;width:78%}.wpbdp-admin .sidebar{margin-top:20px;float:right;clear:right;width:20%}.wpbdp-admin .sidebar .postbox{min-width:0 !important}.wpbdp-admin .sidebar .premium-modules h3 span{color:#145200;font-weight:bold}.wpbdp-admin .sidebar .premium-modules{border-color:#0EAD00;border-width:3px;background:#FFFFCF}.wpbdp-admin .premium-modules .tag{font-size:8px !important}.wpbdp-admin .premium-modules .tag.new{background:#00A000;color: #fff}.wp-list-table tr.wpbdp-item-message-tr td{padding-top:0}.wp-list-table tr.wpbdp-item-message-tr td div{margin:0 15px;padding:6px 12px 8px 12px;background-color:#fef7f1;font-size:12px}.wpbdp-admin-page-fees .tablenav{display:none}#wpbdp-admin-admin-page-fees .column-attributes .wpbdp-tag{background:green;color:#fff}.wpbdp-admin-page-fees .wp-list-table .wpbdp-drag-handle{margin-right:15px;display:none}.wpbdp-admin-page-fees .purchase-gateways{margin-left:20px}.wpbdp-admin-page-fees .purchase-gateways .gateway{float:left;width:35%;margin:30px 20px 0 0}.wpbdp-admin-page-fees .purchase-gateways .gateway.installed{opacity:.5}.wpbdp-admin-page-fees .purchase-gateways .gateway a img.gateway-logo{height:40px;margin:0;padding:0;border:none}.wpbdp-admin-page-fees .purchase-gateways .gateway a.price{margin-top:10px;display:block;color:green;font-size:22px;font-weight:bold}.wpbdp-admin-page-fees .purchase-gateways .gateway .check-mark{font-size:150%;font-weight:bold;color:green}#wpbdp-fee-form #limit-categories-list{font-size:90%}#wpbdp-fee-form #limit-categories-list p{margin:10px 0}#wpbdp-fee-form #limit-categories-list select{width:100%}#wpbdp-fee-form #limit-categories-list .select2-selection{padding:0 0 2px 0;margin:0;border-radius:5px;border-color:#ddd;min-height:26px}#wpbdp-fee-form #limit-categories-list .select2-selection__choice{border:none;padding:0;margin:2px 4px 0 0;background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-paid{background:green}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-admin-posted{background:orange}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice .select2-selection__choice__remove{color:#fff}#wpbdp-fee-form #limit-categories-list .select2-search{margin-bottom:0}#wpbdp-fee-form #limit-categories-list .wpbdp-category-item{width:33.33%;float:left;padding:2px 0}#wpbdp-fee-form .pricing-details-variable>td{padding-top:0}#wpbdp-fee-form .pricing-details-variable table th{font-weight:normal}#wpbdp-fee-form .pricing-details-variable table td:last-child{width:100%}#wpbdp-fee-form .pricing-details-variable table td{font-size:90%;padding:0}#wpbdp-fee-form .pricing-details-variable table td.category-name-col{padding-right:20px;text-align:right}#wpbdp-fee-form .pricing-details-variable .wpbdp-variable-pricing-configurator-row input{width:100px}#wpbdp-fee-form .pricing-options label{display:block}#wpbdp-fee-form .fee-pricing-details input[type="text"]{width:100px}#wpbdp-fee-form #fee-bgcolor-picker{position:relative}#wpbdp-fee-form #fee-bgcolor-picker input#fee-bgcolor-value{border:none;cursor:pointer}#wpbdp-fee-form #fee-bgcolor-picker .color-selection{left:5px;display:none;position:absolute;background:#fff;padding:10px;box-shadow:0 8px 16px 0 rgba(0,0,0,0.2)}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns{margin:0 0 10px 0;font-size:12px}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a{text-decoration:none}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a.close-btn{float:right;color:#999}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a.reset-btn .no-color-img{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' preserveAspectRatio='none' viewBox='0 0 100 100'><path d='M0 99 L99 0 L100 1 L1 100' fill='#ff0000' /></svg>");background-repeat:no-repeat;background-position:center center;background-size:100% 100%,auto;background-color:#fff;width:10px;height:10px;display:inline-block;border:solid 1px #000}#wpbdp-admin-page-settings .nav-tab.tab-error{border-top:solid 1px red}#wpbdp-admin-page-settings .nav-tab.tab-warning{border-top:solid 1px yellow}#wpbdp-admin-page-settings .form-table tr>th{min-width:250px}#wpbdp-admin-page-settings .form-table tr>th>h3{font-size:1.2em;margin:0 auto}#wpbdp-admin-page-settings .wpbdp-setting-description{color:#666;font-style:italic;display:block}#wpbdp-admin-page-settings .wpbdp-setting-tooltip{height:18px;width:18px;font-size:18px;line-height:18px;vertical-align:middle;margin-right:5px;color:#666;cursor:help}#wpbdp-admin-page-settings input[type="text"],#wpbdp-admin-page-settings input[type="url"],#wpbdp-admin-page-settings textarea{padding:6px;width:85%}#wpbdp-admin-page-settings textarea{min-height:150px}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activate-btn,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-deactivate-btn{margin-left:10px;margin-top:2px;display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activate-btn{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-warning-icon,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-ok-icon{display:none;vertical-align:middle;margin:0 8px 2px 0}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-warning-icon{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-warning-icon{display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-ok-icon{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-key-activate-btn{display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-key-deactivate-btn{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-input{width:70%}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg{font-size:90%;position:relative;border-radius:4px;padding:8px;margin:10px 12px 3px 30px;background:#fff;color:#000;box-sizing:border-box;width:calc(100% - 30px)}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:after,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:before{bottom:100%;left:20px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;margin-left:-8px}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:before{border-color:rgba(214,66,38,0);border-bottom-color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-success{background-color:#27a533;color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-success:after{border-bottom-color:#27a533}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-error{background-color:#d84747;color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-error:after{border-bottom-color:#d84747}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg a{color:#fff;font-weight:bold}#wpbdp-admin-page-settings tr.wpbdp-setting-disabled{opacity:.7}.wpbdp-tooltip-msg{background:#333 !important;border-width:1px !important;border-radius:3px !important;box-shadow:1px 1px 2px 1px rgba(214,214,214,0.5) !important;color:#dedede !important;max-width:300px !important;padding:7px !important;text-rendering:optimizeLegibility;text-shadow:none !important;z-index:9999 !important}#wpbdp-admin-page-settings select{display:block}#wpbdp-admin-page-settings .wpbdp-settings-choice-radio{margin:0 0 5px 0}#wpbdp-admin-page-settings tr.disabled{opacity:.7}#wpbdp-admin-page-settings .text-fields-warning{font-size:90%;display:block;margin-bottom:2px}#wpbdp-admin-page-settings .wpbdp-expiration-notice-email-schedule-summary{background:#ccc;font-size:85%;padding:5px}#wpbdp-admin-page-settings .wpbdp-settings-email{margin:10px 0 0 0;border:solid 1px #ccc;padding:5px;background:#fff}#wpbdp-admin-page-settings .wpbdp-settings-email.wpbdp-expiration-notice-email{border-bottom:none}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview{color:#999;font-size:90%;height:45px;cursor:pointer;overflow:hidden}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview h4,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview h4{margin:0 0 10px 0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview a.wpbdp-settings-email-edit-btn,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview a.wpbdp-settings-email-edit-btn,#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview .edit-toggle,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview .edit-toggle{float:right;color:#fff}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl{margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl dt,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl dt{font-weight:bold;margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl dd,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl dd{margin:0;padding:0 0 0 10px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor{display:none;margin-left:10px;font-size:90%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor table.form-table,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor table.form-table{margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .editor table.form-table th,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor table.form-table th{padding-left:4px;padding-right:0;min-width:0;width:20%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor input[type="text"],#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor input[type="text"]{width:100%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor textarea,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor textarea{width:100%;min-height:150px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholders,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholders{margin:10px 0 0 0}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder{font-size:90%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder .placeholder-code,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder .placeholder-code{font-family:monospace;font-weight:bold}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder .placeholder-description,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder .placeholder-description{font-style:italic}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder-separator,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder-separator{margin-top:10px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons{margin:30px 0 0 0;text-align:right}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons .preview-email,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons .preview-email{float:left}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons .cancel,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons .cancel{margin-right:10px}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices #wpbdp-settings-expiration-notices-add-btn{margin:0 0 5px 0}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices #wpbdp-settings-expiration-notices-add .wpbdp-expiration-notice-email{display:none;border-bottom:1px solid #ccc}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices .buttons .delete{color:#a00;float:left;font-size:13px}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices .buttons .delete:hover{color:red}#wpbdp-admin-page-settings .wpbdp-settings-type-checkbox input[type="checkbox"]{vertical-align:bottom}#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option,#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option{margin:0 0 5px 0}#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option input[type="checkbox"]{vertical-align:bottom}#wpbdp-admin-page-settings .wpbdp-settings-radio-options+.wpbdp-setting-description,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options+.wpbdp-setting-description{margin:10px 0 0 0}#wpbdp-admin-page-settings #wpbdp-settings-quick-search-fields .wpbdp-settings-multicheck-option{width:50%;display:inline-block}td.column-payment_status .status,td.column-sticky_status .status{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:90%}td.column-payment_status .status.ok{background:green}td.column-payment_status .paymentdata{font-size:85%}td.column-payment_status .paymentdata b{font-weight:normal}td.column-payment_status .paymentdata span{font-style:italic}td.column-sticky_status .status.notpaid{background:orange}td.column-sticky_status .status.pending{background:red;font-weight:bold}td.column-sticky_status .status.sticky{background:green}table.wp-list-table td .tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:90%;margin-right:2px;display:inline-block}table.wp-list-table.formfields th.column-label{width:40%}table.wp-list-table.formfields th.column-tags,table.wp-list-table.formfields td.column-tags{width:200px}table.wp-list-table.formfields th.column-order,table.wp-list-table.formfields td.column-order{width:55px}table.wp-list-table.formfields td.column-order .wpbdp-drag-handle{visibility:hidden}table.wp-list-table.formfields tr:hover .wpbdp-drag-handle{visibility:visible}table.wp-list-table.formfields .tag.private{background:red}table.wp-list-table.formfields .tag.privacy{background:blue}table.wp-list-table.formfields .tag.required{background:orange}table.wp-list-table.formfields .tag.in-excerpt{background:green}table.wp-list-table.formfields .tag.in-listing{background:green}table.wp-list-table.formfields tr.wpbdp-draggable-highlight{height:54px}table.wp-list-table.formfields tr.ui-sortable-helper{background:#fff;border:1px dashed #c1c1c1}#wpbdp-admin-page-field-form .iframe-confirm{display:none}#wpbdp-admin-page-field-form .iframe-confirm p{font-size:90%}#wpbdp-admin-page-field-form .wpbdp-setting-description{color:#666;font-style:italic;display:block}#wpbdp-settings-currency .wpbdp-setting-description{display:none}.wpbdp-settings-type-file .preview img{margin-right:10px}.wpbdp-settings-type-file .preview,.wpbdp-form-field-type-social-network .preview,.wpbdp-form-field-type-image .preview{float:none}.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}table.wpbdp-debug-section{width:90%}table.wpbdp-debug-section tbody tr{background:#efefef}table.wpbdp-debug-section tbody tr td{padding:3px 8px}table.wpbdp-debug-section tbody tr:nth-child(2n){background:#f5f5f5}#wpbdp-admin-debug-info-page textarea.test-ssl-results{display:block;width:90%;font-family:monospace;font-size:11px;height:100px}.wpbdp-page-admin-transactions .tag{font-size:95%}.wpbdp-page-admin-transactions .tag.approved{background:green}.wpbdp-page-admin-transactions .tag.pending{background:red}.wpbdp-page-admin-transactions .column-actions a.delete{color:#bc0b0b}.wpbdp-page-admin-transactions tr.more-details-row{background:#fff}.wpbdp-page-admin-transactions tr.more-details-row td{padding-left:40px;font-size:95%}.wpbdp-page-admin-transactions tr.more-details-row td dl dt{font-weight:bold}body.taxonomy-wpbdp_category .column-id{width:35px}.transaction-status-container{text-align:right;padding:5px}.wpbdp-progress-bar .progress-bar{margin-left:10px;display:inline-block;vertical-align:middle}.wpbdp-progress-bar .progress-bar-outer{min-width:200px;height:12px;border:solid 1px #3366CC;padding:0}.wpbdp-progress-bar .progress-bar-inner{height:100%;background:#99CCFF}.wpbdp-note{padding:5px 10px;background:#d7f5ff;margin:5px 0 20px 0;border:solid 1px #bad5df;border-radius:4px}.wpbdp-note p{margin:0}.wpbdp-note h1,.wpbdp-note h2,.wpbdp-note h3,.wpbdp-note h4{margin:0 0 8px 0}.wpbdp-note.error,.wpbdp-note.warning{background-color:#FFEBE8;border-color:#C00}.wpbdp-notice.dismissible{position:relative}.tag.paymentstatus{text-transform:capitalize}.tag.paymentstatus.ok{background:green}.tag.paymentstatus.completed{background:green}.tag.paymentstatus.pending,.tag.paymentstatus.pending-abandonment{background:red}.wpbdp-listing-metabox-tab dl{margin:0}.wpbdp-payment-details .tag{float:right}.wpbdp-payment-details .details,.wpbdp-payment-details .invoice,.wpbdp-payment-details .actions{clear:both;margin:20px 0}.wpbdp-payment-details .details dl dt{font-weight:bold}.wpbdp-payment-details table.wpbdp-payment-items-table{width:100%}.wpbdp-payment-details table.wpbdp-payment-items-table th{text-transform:uppercase}.wpbdp-payment-details table.wpbdp-payment-items-table td{border-top:1px solid #bbb;padding:6px 10px 6px 0}.wpbdp-payment-details .actions a.button-primary{color:#fff !important}.listing-fee-change .fee-selection .fee{padding-bottom:5px;margin-bottom:10px;border-bottom:dotted 1px #ccc;opacity:.85}.listing-fee-change .fee-selection .fee:hover{opacity:1}.listing-fee-change .fee-selection .fee .details{margin-left:10px}.listing-fee-change .fee-selection .fee .tag{float:right}.listing-fee-change .fee-selection .fee .choose-this{float:right}.wpbdp-draggable-highlight{background:#bbb}.wpbdp-module-compat-check .module-info{margin-bottom:3px}.wpbdp-module-compat-check .module-info .module-version,.wpbdp-module-compat-check .module-info .module-required{color:#666}.wpbdp-module-compat-check .module-info .module-version{margin-left:15px}.wpbdp-module-compat-check .module-info .module-version b{color:#333}.wpbdp-module-compat-check .module-info .module-required b{color:#900000}#wpbdp-admin-page-admin .welcome-message{padding:10px;font-size:105%}#wpbdp-admin-page-admin .welcome-message p{font-size:inherit}#wpbdp-admin-page-admin .welcome-message h4{font-size:120%}#wpbdp-admin-page-admin .welcome-message ul{list-style-position:inside;list-style-type:disc}#wpbdp-admin-page-admin .shortcuts{margin:auto}#wpbdp-admin-page-admin .shortcuts li{float:left;margin-right:10px}#wpbdp-admin-page-admin .shortcuts li.clear{margin:0}#wpbdp-admin-page-uninstall .wpbdp-admin-content{box-sizing:border-box;margin:20px 0 0 0;padding:16px;background:#fff;border-radius:4px}#wpbdp-admin-page-uninstall .wpbdp-validation-error{font-size:80%;color:#d64226;margin:0 0 10px 0}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion{float:left;box-sizing:border-box}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning ul,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion ul{margin-left:10px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning ul li,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion ul li{list-style-type:disc;list-style-position:inside}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning{width:60%;padding-right:20px;color:#d64226}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-margin{float:left}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-margin .dashicons{width:30px;height:30px;font-size:30px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-content{margin-left:50px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion{width:40%;padding-left:20px;border-left:1px solid #efefef}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form{display:none}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .reasons{margin-left:15px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .reasons .reason{margin-bottom:5px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .custom-reason{display:none}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form textarea{margin:10px 0 0 0;width:50%;min-height:100px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form textarea.invalid{border-color:#d64226}#wpbdp-admin-page-uninstall #wpbdp-uninstall-proceed-btn{margin-top:20px;color:#d64226}#wpbdp-licensing-issues-warning ul li{list-style-position:inside;list-style-type:disc}#wpbdp-licensing-issues-warning span.item-name{background:#fff9aa;padding:2px 5px;margin:0 0 0 4px;border-radius:4px}.wp-admin.widgets-php .widget-content span.help{color:#666}.wpbdp-admin-tab-nav{float:none;margin:0 0 .5em 0}.wpbdp-admin-tab-content{padding:5px 0 0 0;display:none}.wpbdp-admin-box label{vertical-align:top}a.wpbdp-admin-delete-link{color:#a00;text-decoration:none}a.wpbdp-admin-delete-link:hover{color:red}#wpbdp-admin-payment-info-box .inside{margin:0;padding:0}#wpbdp-admin-payment-info-box .wpbdp-admin-box-row{border-bottom:1px solid #eee;clear:both;padding:6px 12px;margin:0;line-height:1.5}#wpbdp-admin-payment-info-box label{font-weight:bold}#wpbdp-admin-payment-items-box .payment-item,#wpbdp-admin-payment-items-box .payment-item-header{margin:0 12px;padding:6px 0}#wpbdp-admin-payment-items-box .payment-item .payment-item-type,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-type{display:block;width:20%;float:left}#wpbdp-admin-payment-items-box .payment-item .payment-item-description,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-description{display:block;width:60%;float:left}#wpbdp-admin-payment-items-box .payment-item .payment-item-amount,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-amount{display:block;width:20%;float:left}#wpbdp-admin-payment-items-box .payment-item.payment-totals,#wpbdp-admin-payment-items-box .payment-item-header.payment-totals{border-top:1px solid #eee;font-weight:bold}#wpbdp-admin-payment-items-box .payment-item-header{font-weight:bold}#wpbdp-admin-payment-details-box *{box-sizing:border-box}#wpbdp-admin-payment-details-box .wpbdp-admin-box-row>div{padding:6px 0}#wpbdp-admin-payment-details-box label{display:block}#wpbdp-admin-payment-details-box .customer-email,#wpbdp-admin-payment-details-box .customer-address-line1,#wpbdp-admin-payment-details-box .customer-address-line2{clear:both;width:100%}#wpbdp-admin-payment-details-box .customer-email input,#wpbdp-admin-payment-details-box .customer-address-line1 input,#wpbdp-admin-payment-details-box .customer-address-line2 input{width:100%}#wpbdp-admin-payment-details-box .customer-first-name,#wpbdp-admin-payment-details-box .customer-address-country,#wpbdp-admin-payment-details-box .customer-address-city{padding-right:3px !important}#wpbdp-admin-payment-details-box .customer-last-name,#wpbdp-admin-payment-details-box .customer-address-state,#wpbdp-admin-payment-details-box .customer-address-zipcode{padding-left:3px !important}#wpbdp-admin-payment-details-box .customer-first-name,#wpbdp-admin-payment-details-box .customer-last-name,#wpbdp-admin-payment-details-box .customer-address-country,#wpbdp-admin-payment-details-box .customer-address-state,#wpbdp-admin-payment-details-box .customer-address-city,#wpbdp-admin-payment-details-box .customer-address-zipcode{float:left;width:50%}#wpbdp-admin-payment-details-box .customer-first-name input,#wpbdp-admin-payment-details-box .customer-last-name input,#wpbdp-admin-payment-details-box .customer-address-country input,#wpbdp-admin-payment-details-box .customer-address-state input,#wpbdp-admin-payment-details-box .customer-address-city input,#wpbdp-admin-payment-details-box .customer-address-zipcode input{width:100%}#wpbdp-payment-notes .wpbdp-payment-note{margin-bottom:12px;line-height:1.5}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-payment-note-meta-user{font-weight:bold}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-payment-note-meta-date{color:#666}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-admin-delete-link{float:right;display:none}#wpbdp-payment-notes .wpbdp-payment-note:hover .wpbdp-admin-delete-link{display:block}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}span.tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}span.tag.wpbdp-listing-attr-paid{background:green}span.tag.wpbdp-listing-attr-admin-posted{background:orange}span.tag.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}span.tag.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}span.tag.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}.wpbdp-tag.wpbdp-listing-attr-paid,span.tag.wpbdp-listing-attr-paid{background:green}.wpbdp-tag.wpbdp-listing-attr-admin-posted,span.tag.wpbdp-listing-attr-admin-posted{background:orange}.wpbdp-tag.wpbdp-listing-attr-post-status-pending,span.tag.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}.wpbdp-tag.wpbdp-listing-attr-no-fee-plan,span.tag.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}.wpbdp-tag.wpbdp-listing-attr-reported,span.tag.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}.wp-list-table td .wpbdp-tag{display:inline-block}body.post-type-wpbdp_listing .wp-list-table .wpbdp-tag{font-size:10px !important;text-transform:none !important}#wpbdp-listing-form-preview{padding:25px;border:solid 1px #ccc;background:#fff}
|
1 |
+
.wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.wpbdp-display-block{display:block}.cf:before,.cf:after{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.button-primary.next-to-secondary{margin-left:30px}.wpbdp-admin-content.with-sidebar{margin-top:20px;clear:left;float:left;width:78%}.wpbdp-admin .sidebar{margin-top:20px;float:right;clear:right;width:20%}.wpbdp-admin .sidebar .postbox{min-width:0 !important}.wpbdp-admin .sidebar .premium-modules h3 span{color:#145200;font-weight:bold}.wpbdp-admin .sidebar .premium-modules{border-color:#0EAD00;border-width:3px;background:#FFFFCF}.wpbdp-admin .premium-modules .tag{font-size:8px !important}.wpbdp-admin .premium-modules .tag.new{background:#00A000;color: #fff}.wp-list-table tr.wpbdp-item-message-tr td{padding-top:0}.wp-list-table tr.wpbdp-item-message-tr td div{margin:0 15px;padding:6px 12px 8px 12px;background-color:#fef7f1;font-size:12px}.wpbdp-admin-page-fees .tablenav{display:none}#wpbdp-admin-admin-page-fees .column-attributes .wpbdp-tag{background:green;color:#fff}.wpbdp-admin-page-fees .wp-list-table .wpbdp-drag-handle{margin-right:15px;display:none}.wpbdp-admin-page-fees .purchase-gateways{margin-left:20px}.wpbdp-admin-page-fees .purchase-gateways .gateway{float:left;width:35%;margin:30px 20px 0 0}.wpbdp-admin-page-fees .purchase-gateways .gateway.installed{opacity:.5}.wpbdp-admin-page-fees .purchase-gateways .gateway a img.gateway-logo{height:40px;margin:0;padding:0;border:none}.wpbdp-admin-page-fees .purchase-gateways .gateway a.price{margin-top:10px;display:block;color:green;font-size:22px;font-weight:bold}.wpbdp-admin-page-fees .purchase-gateways .gateway .check-mark{font-size:150%;font-weight:bold;color:green}#wpbdp-fee-form #limit-categories-list{font-size:90%}#wpbdp-fee-form #limit-categories-list p{margin:10px 0}#wpbdp-fee-form #limit-categories-list select{width:100%}#wpbdp-fee-form #limit-categories-list .select2-selection{padding:0 0 2px 0;margin:0;border-radius:5px;border-color:#ddd;min-height:26px}#wpbdp-fee-form #limit-categories-list .select2-selection__choice{border:none;padding:0;margin:2px 4px 0 0;background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-paid{background:green}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-admin-posted{background:orange}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}#wpbdp-fee-form #limit-categories-list .select2-selection__choice .select2-selection__choice__remove{color:#fff}#wpbdp-fee-form #limit-categories-list .select2-search{margin-bottom:0}#wpbdp-fee-form #limit-categories-list .wpbdp-category-item{width:33.33%;float:left;padding:2px 0}#wpbdp-fee-form .pricing-details-variable>td{padding-top:0}#wpbdp-fee-form .pricing-details-variable table th{font-weight:normal}#wpbdp-fee-form .pricing-details-variable table td:last-child{width:100%}#wpbdp-fee-form .pricing-details-variable table td{font-size:90%;padding:0}#wpbdp-fee-form .pricing-details-variable table td.category-name-col{padding-right:20px;text-align:right}#wpbdp-fee-form .pricing-details-variable .wpbdp-variable-pricing-configurator-row input{width:100px}#wpbdp-fee-form .pricing-options label{display:block}#wpbdp-fee-form .fee-pricing-details input[type="text"]{width:100px}#wpbdp-fee-form #fee-bgcolor-picker{position:relative}#wpbdp-fee-form #fee-bgcolor-picker input#fee-bgcolor-value{border:none;cursor:pointer}#wpbdp-fee-form #fee-bgcolor-picker .color-selection{left:5px;display:none;position:absolute;background:#fff;padding:10px;box-shadow:0 8px 16px 0 rgba(0,0,0,0.2)}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns{margin:0 0 10px 0;font-size:12px}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a{text-decoration:none}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a.close-btn{float:right;color:#999}#wpbdp-fee-form #fee-bgcolor-picker .color-selection-btns a.reset-btn .no-color-img{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' preserveAspectRatio='none' viewBox='0 0 100 100'><path d='M0 99 L99 0 L100 1 L1 100' fill='#ff0000' /></svg>");background-repeat:no-repeat;background-position:center center;background-size:100% 100%,auto;background-color:#fff;width:10px;height:10px;display:inline-block;border:solid 1px #000}#wpbdp-admin-page-settings .nav-tab.tab-error{border-top:solid 1px red}#wpbdp-admin-page-settings .nav-tab.tab-warning{border-top:solid 1px yellow}#wpbdp-admin-page-settings .form-table tr>th{min-width:250px}#wpbdp-admin-page-settings .form-table tr>th>h3{font-size:1.2em;margin:0 auto}#wpbdp-admin-page-settings .wpbdp-setting-description{color:#666;font-style:italic;display:block}#wpbdp-admin-page-settings .wpbdp-setting-tooltip{height:18px;width:18px;font-size:18px;line-height:18px;vertical-align:middle;margin-right:5px;color:#666;cursor:help}#wpbdp-admin-page-settings input[type="text"],#wpbdp-admin-page-settings input[type="url"],#wpbdp-admin-page-settings textarea{padding:6px;width:85%}#wpbdp-admin-page-settings textarea{min-height:150px}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activate-btn,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-deactivate-btn{margin-left:10px;margin-top:2px;display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activate-btn{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-warning-icon,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-ok-icon{display:none;vertical-align:middle;margin:0 8px 2px 0}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-warning-icon{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-warning-icon{display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-ok-icon{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-key-activate-btn{display:none}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui.wpbdp-license-status-valid .wpbdp-license-key-deactivate-btn{display:inline-block}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-input{width:70%}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg{font-size:90%;position:relative;border-radius:4px;padding:8px;margin:10px 12px 3px 30px;background:#fff;color:#000;box-sizing:border-box;width:calc(100% - 30px)}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:after,#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:before{bottom:100%;left:20px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;margin-left:-8px}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg:before{border-color:rgba(214,66,38,0);border-bottom-color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-success{background-color:#27a533;color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-success:after{border-bottom-color:#27a533}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-error{background-color:#d84747;color:#fff}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg.status-error:after{border-bottom-color:#d84747}#wpbdp-admin-page-settings .wpbdp-license-key-activation-ui .wpbdp-license-key-activation-status-msg a{color:#fff;font-weight:bold}#wpbdp-admin-page-settings tr.wpbdp-setting-disabled{opacity:.7}.wpbdp-tooltip-msg{background:#333 !important;border-width:1px !important;border-radius:3px !important;box-shadow:1px 1px 2px 1px rgba(214,214,214,0.5) !important;color:#dedede !important;max-width:300px !important;padding:7px !important;text-rendering:optimizeLegibility;text-shadow:none !important;z-index:9999 !important}#wpbdp-admin-page-settings select{display:block}#wpbdp-admin-page-settings .wpbdp-settings-choice-radio{margin:0 0 5px 0}#wpbdp-admin-page-settings tr.disabled{opacity:.7}#wpbdp-admin-page-settings .text-fields-warning{font-size:90%;display:block;margin-bottom:2px}#wpbdp-admin-page-settings .wpbdp-expiration-notice-email-schedule-summary{background:#ccc;font-size:85%;padding:5px}#wpbdp-admin-page-settings .wpbdp-settings-email{margin:10px 0 0 0;border:solid 1px #ccc;padding:5px;background:#fff}#wpbdp-admin-page-settings .wpbdp-settings-email.wpbdp-expiration-notice-email{border-bottom:none}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview{color:#999;font-size:90%;height:45px;cursor:pointer;overflow:hidden}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview h4,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview h4{margin:0 0 10px 0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview a.wpbdp-settings-email-edit-btn,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview a.wpbdp-settings-email-edit-btn,#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview .edit-toggle,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview .edit-toggle{float:right;color:#fff}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl{margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl dt,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl dt{font-weight:bold;margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .short-preview dl dd,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-preview dl dd{margin:0;padding:0 0 0 10px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor{display:none;margin-left:10px;font-size:90%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor table.form-table,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor table.form-table{margin:0;padding:0}#wpbdp-admin-page-settings .wpbdp-settings-email .editor table.form-table th,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor table.form-table th{padding-left:4px;padding-right:0;min-width:0;width:20%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor input[type="text"],#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor input[type="text"]{width:100%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor textarea,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor textarea{width:100%;min-height:150px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholders,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholders{margin:10px 0 0 0}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder{font-size:90%}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder .placeholder-code,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder .placeholder-code{font-family:monospace;font-weight:bold}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder .placeholder-description,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder .placeholder-description{font-style:italic}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .placeholder-separator,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .placeholder-separator{margin-top:10px}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons{margin:30px 0 0 0;text-align:right}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons .preview-email,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons .preview-email{float:left}#wpbdp-admin-page-settings .wpbdp-settings-email .editor .buttons .cancel,#wpbdp-admin-page-settings .wpbdp-settings-email .wpbdp-settings-email-editor .buttons .cancel{margin-right:10px}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices #wpbdp-settings-expiration-notices-add-btn{margin:0 0 5px 0}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices #wpbdp-settings-expiration-notices-add .wpbdp-expiration-notice-email{display:none;border-bottom:1px solid #ccc}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices .buttons .delete{color:#a00;float:left;font-size:13px}#wpbdp-admin-page-settings .wpbdp-settings-expiration-notices .buttons .delete:hover{color:red}#wpbdp-admin-page-settings .wpbdp-settings-type-checkbox input[type="checkbox"]{vertical-align:bottom}#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option,#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option{margin:0 0 5px 0}#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option input[type="radio"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-radio-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-radio-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-radio-options .wpbdp-settings-multicheck-option input[type="checkbox"],#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options .wpbdp-settings-multicheck-option input[type="checkbox"]{vertical-align:bottom}#wpbdp-admin-page-settings .wpbdp-settings-radio-options+.wpbdp-setting-description,#wpbdp-admin-page-settings .wpbdp-settings-multicheck-options+.wpbdp-setting-description{margin:10px 0 0 0}#wpbdp-admin-page-settings #wpbdp-settings-quick-search-fields .wpbdp-settings-multicheck-option{width:50%;display:inline-block}td.column-payment_status .status,td.column-sticky_status .status{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:90%}td.column-payment_status .status.ok{background:green}td.column-payment_status .paymentdata{font-size:85%}td.column-payment_status .paymentdata b{font-weight:normal}td.column-payment_status .paymentdata span{font-style:italic}td.column-sticky_status .status.notpaid{background:orange}td.column-sticky_status .status.pending{background:red;font-weight:bold}td.column-sticky_status .status.sticky{background:green}table.wp-list-table td .tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:90%;margin-right:2px;display:inline-block}table.wp-list-table.formfields th.column-label{width:40%}table.wp-list-table.formfields th.column-tags,table.wp-list-table.formfields td.column-tags{width:200px}table.wp-list-table.formfields th.column-order,table.wp-list-table.formfields td.column-order{width:55px}table.wp-list-table.formfields td.column-order .wpbdp-drag-handle{visibility:hidden}table.wp-list-table.formfields tr:hover .wpbdp-drag-handle{visibility:visible}table.wp-list-table.formfields .tag.private{background:red}table.wp-list-table.formfields .tag.privacy{background:blue}table.wp-list-table.formfields .tag.required{background:orange}table.wp-list-table.formfields .tag.in-excerpt{background:green}table.wp-list-table.formfields .tag.in-listing{background:green}table.wp-list-table.formfields tr.wpbdp-draggable-highlight{height:54px}table.wp-list-table.formfields tr.ui-sortable-helper{background:#fff;border:1px dashed #c1c1c1}#wpbdp-admin-page-field-form .iframe-confirm{display:none}#wpbdp-admin-page-field-form .iframe-confirm p{font-size:90%}#wpbdp-admin-page-field-form .wpbdp-setting-description{color:#666;font-style:italic;display:block}#wpbdp-settings-currency .wpbdp-setting-description{display:none}.wpbdp-settings-type-file .preview img{margin-right:10px}.wpbdp-settings-type-file .preview,.wpbdp-form-field-type-social-network .preview,.wpbdp-form-field-type-image .preview{float:none}.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}table.wpbdp-debug-section{width:90%}table.wpbdp-debug-section tbody tr{background:#efefef}table.wpbdp-debug-section tbody tr td{padding:3px 8px}table.wpbdp-debug-section tbody tr:nth-child(2n){background:#f5f5f5}#wpbdp-admin-debug-info-page textarea.test-ssl-results{display:block;width:90%;font-family:monospace;font-size:11px;height:100px}.wpbdp-page-admin-transactions .tag{font-size:95%}.wpbdp-page-admin-transactions .tag.approved{background:green}.wpbdp-page-admin-transactions .tag.pending{background:red}.wpbdp-page-admin-transactions .column-actions a.delete{color:#bc0b0b}.wpbdp-page-admin-transactions tr.more-details-row{background:#fff}.wpbdp-page-admin-transactions tr.more-details-row td{padding-left:40px;font-size:95%}.wpbdp-page-admin-transactions tr.more-details-row td dl dt{font-weight:bold}body.taxonomy-wpbdp_category .column-id{width:35px}.transaction-status-container{text-align:right;padding:5px}.wpbdp-progress-bar .progress-bar{margin-left:10px;display:inline-block;vertical-align:middle}.wpbdp-progress-bar .progress-bar-outer{min-width:200px;height:12px;border:solid 1px #3366CC;padding:0}.wpbdp-progress-bar .progress-bar-inner{height:100%;background:#99CCFF}.wpbdp-note{padding:5px 10px;background:#d7f5ff;margin:5px 0 20px 0;border:solid 1px #bad5df;border-radius:4px}.wpbdp-note p{margin:0}.wpbdp-note h1,.wpbdp-note h2,.wpbdp-note h3,.wpbdp-note h4{margin:0 0 8px 0}.wpbdp-note.error,.wpbdp-note.warning{background-color:#FFEBE8;border-color:#C00}.wpbdp-notice.dismissible{position:relative}.tag.paymentstatus{text-transform:capitalize}.tag.paymentstatus.ok{background:green}.tag.paymentstatus.completed{background:green}.tag.paymentstatus.pending,.tag.paymentstatus.pending-abandonment{background:red}.wpbdp-listing-metabox-tab dl{margin:0}.wpbdp-payment-details .tag{float:right}.wpbdp-payment-details .details,.wpbdp-payment-details .invoice,.wpbdp-payment-details .actions{clear:both;margin:20px 0}.wpbdp-payment-details .details dl dt{font-weight:bold}.wpbdp-payment-details table.wpbdp-payment-items-table{width:100%}.wpbdp-payment-details table.wpbdp-payment-items-table th{text-transform:uppercase}.wpbdp-payment-details table.wpbdp-payment-items-table td{border-top:1px solid #bbb;padding:6px 10px 6px 0}.wpbdp-payment-details .actions a.button-primary{color:#fff !important}.listing-fee-change .fee-selection .fee{padding-bottom:5px;margin-bottom:10px;border-bottom:dotted 1px #ccc;opacity:.85}.listing-fee-change .fee-selection .fee:hover{opacity:1}.listing-fee-change .fee-selection .fee .details{margin-left:10px}.listing-fee-change .fee-selection .fee .tag{float:right}.listing-fee-change .fee-selection .fee .choose-this{float:right}.wpbdp-draggable-highlight{background:#bbb}.wpbdp-module-compat-check .module-info{margin-bottom:3px}.wpbdp-module-compat-check .module-info .module-version,.wpbdp-module-compat-check .module-info .module-required{color:#666}.wpbdp-module-compat-check .module-info .module-version{margin-left:15px}.wpbdp-module-compat-check .module-info .module-version b{color:#333}.wpbdp-module-compat-check .module-info .module-required b{color:#900000}#wpbdp-admin-page-admin .welcome-message{padding:10px;font-size:105%}#wpbdp-admin-page-admin .welcome-message p{font-size:inherit}#wpbdp-admin-page-admin .welcome-message h4{font-size:120%}#wpbdp-admin-page-admin .welcome-message ul{list-style-position:inside;list-style-type:disc}#wpbdp-admin-page-admin .shortcuts{margin:auto}#wpbdp-admin-page-admin .shortcuts li{float:left;margin-right:10px}#wpbdp-admin-page-admin .shortcuts li.clear{margin:0}#wpbdp-admin-page-uninstall .wpbdp-admin-content{box-sizing:border-box;margin:20px 0 0 0;padding:16px;background:#fff;border-radius:4px}#wpbdp-admin-page-uninstall .wpbdp-validation-error{font-size:80%;color:#d64226;margin:0 0 10px 0}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion{float:left;box-sizing:border-box}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning ul,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion ul{margin-left:10px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning ul li,#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion ul li{list-style-type:disc;list-style-position:inside}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning{width:60%;padding-right:20px;color:#d64226}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-margin{float:left}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-margin .dashicons{width:30px;height:30px;font-size:30px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-warning .wpbdp-warning-content{margin-left:50px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-messages #wpbdp-uninstall-reinstall-suggestion{width:40%;padding-left:20px;border-left:1px solid #efefef}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form{display:none}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .reasons{margin-left:15px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .reasons .reason{margin-bottom:5px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form .custom-reason{display:none}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form textarea{margin:10px 0 0 0;width:50%;min-height:100px}#wpbdp-admin-page-uninstall #wpbdp-uninstall-capture-form textarea.invalid{border-color:#d64226}#wpbdp-admin-page-uninstall #wpbdp-uninstall-proceed-btn{margin-top:20px;color:#d64226}#wpbdp-licensing-issues-warning ul li{list-style-position:inside;list-style-type:disc}#wpbdp-licensing-issues-warning span.item-name{background:#fff9aa;padding:2px 5px;margin:0 0 0 4px;border-radius:4px}.wp-admin.widgets-php .widget-content span.help{color:#666}.wpbdp-admin-tab-nav{float:none;margin:0 0 .5em 0}.wpbdp-admin-tab-content{padding:5px 0 0 0;display:none}.wpbdp-admin-box label{vertical-align:top}a.wpbdp-admin-delete-link{color:#a00;text-decoration:none}a.wpbdp-admin-delete-link:hover{color:red}#wpbdp-admin-payment-info-box .inside{margin:0;padding:0}#wpbdp-admin-payment-info-box .wpbdp-admin-box-row{border-bottom:1px solid #eee;clear:both;padding:6px 12px;margin:0;line-height:1.5}#wpbdp-admin-payment-info-box label{font-weight:bold}#wpbdp-admin-payment-items-box .payment-item,#wpbdp-admin-payment-items-box .payment-item-header{margin:0 12px;padding:6px 0}#wpbdp-admin-payment-items-box .payment-item .payment-item-type,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-type{display:block;width:20%;float:left}#wpbdp-admin-payment-items-box .payment-item .payment-item-description,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-description{display:block;width:60%;float:left}#wpbdp-admin-payment-items-box .payment-item .payment-item-amount,#wpbdp-admin-payment-items-box .payment-item-header .payment-item-amount{display:block;width:20%;float:left}#wpbdp-admin-payment-items-box .payment-item.payment-totals,#wpbdp-admin-payment-items-box .payment-item-header.payment-totals{border-top:1px solid #eee;font-weight:bold}#wpbdp-admin-payment-items-box .payment-item-header{font-weight:bold}#wpbdp-admin-payment-details-box *{box-sizing:border-box}#wpbdp-admin-payment-details-box .wpbdp-admin-box-row>div{padding:6px 0}#wpbdp-admin-payment-details-box label{display:block}#wpbdp-admin-payment-details-box .customer-email,#wpbdp-admin-payment-details-box .customer-address-line1,#wpbdp-admin-payment-details-box .customer-address-line2{clear:both;width:100%}#wpbdp-admin-payment-details-box .customer-email input,#wpbdp-admin-payment-details-box .customer-address-line1 input,#wpbdp-admin-payment-details-box .customer-address-line2 input{width:100%}#wpbdp-admin-payment-details-box .customer-first-name,#wpbdp-admin-payment-details-box .customer-address-country,#wpbdp-admin-payment-details-box .customer-address-city{padding-right:3px !important}#wpbdp-admin-payment-details-box .customer-last-name,#wpbdp-admin-payment-details-box .customer-address-state,#wpbdp-admin-payment-details-box .customer-address-zipcode{padding-left:3px !important}#wpbdp-admin-payment-details-box .customer-first-name,#wpbdp-admin-payment-details-box .customer-last-name,#wpbdp-admin-payment-details-box .customer-address-country,#wpbdp-admin-payment-details-box .customer-address-state,#wpbdp-admin-payment-details-box .customer-address-city,#wpbdp-admin-payment-details-box .customer-address-zipcode{float:left;width:50%}#wpbdp-admin-payment-details-box .customer-first-name input,#wpbdp-admin-payment-details-box .customer-last-name input,#wpbdp-admin-payment-details-box .customer-address-country input,#wpbdp-admin-payment-details-box .customer-address-state input,#wpbdp-admin-payment-details-box .customer-address-city input,#wpbdp-admin-payment-details-box .customer-address-zipcode input{width:100%}#wpbdp-payment-notes .wpbdp-payment-note{margin-bottom:12px;line-height:1.5}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-payment-note-meta-user{font-weight:bold}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-payment-note-meta-date{color:#666}#wpbdp-payment-notes .wpbdp-payment-note .wpbdp-admin-delete-link{float:right;display:none}#wpbdp-payment-notes .wpbdp-payment-note:hover .wpbdp-admin-delete-link{display:block}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}span.tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}span.tag.wpbdp-listing-attr-paid{background:green}span.tag.wpbdp-listing-attr-admin-posted{background:orange}span.tag.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}span.tag.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}span.tag.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}.wpbdp-tag.wpbdp-listing-attr-paid,span.tag.wpbdp-listing-attr-paid{background:green}.wpbdp-tag.wpbdp-listing-attr-admin-posted,span.tag.wpbdp-listing-attr-admin-posted{background:orange}.wpbdp-tag.wpbdp-listing-attr-post-status-pending,span.tag.wpbdp-listing-attr-post-status-pending{background:blue;color:#fff}.wpbdp-tag.wpbdp-listing-attr-no-fee-plan,span.tag.wpbdp-listing-attr-no-fee-plan{background:#bc0b0b;color:#fff}.wpbdp-tag.wpbdp-listing-attr-reported,span.tag.wpbdp-listing-attr-reported{background:#bc0b0b;color:#fff}.wp-list-table td .wpbdp-tag{display:inline-block}body.post-type-wpbdp_listing .wp-list-table .wpbdp-tag{font-size:10px !important;text-transform:none !important}#wpbdp-listing-form-preview{padding:25px;border:solid 1px #ccc;background:#fff}
|
assets/css/less/admin-csv-import.less
CHANGED
@@ -76,10 +76,19 @@
|
|
76 |
white-space: pre;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
79 |
#wpbdp-csv-import-form input[type="file"] {
|
80 |
border: none;
|
81 |
}
|
82 |
|
|
|
|
|
|
|
|
|
83 |
table.wpbdp-csv-import-results, table.wpbdp-csv-import-warnings {
|
84 |
width: 100%;
|
85 |
}
|
76 |
white-space: pre;
|
77 |
}
|
78 |
|
79 |
+
#wpbdp-csv-import-form select,
|
80 |
+
#wpbdp-csv-import-form input[type="text"] {
|
81 |
+
min-width: 30%;
|
82 |
+
}
|
83 |
+
|
84 |
#wpbdp-csv-import-form input[type="file"] {
|
85 |
border: none;
|
86 |
}
|
87 |
|
88 |
+
#wpbdp-csv-import-form span.description {
|
89 |
+
display: block;
|
90 |
+
}
|
91 |
+
|
92 |
table.wpbdp-csv-import-results, table.wpbdp-csv-import-warnings {
|
93 |
width: 100%;
|
94 |
}
|
assets/css/less/common.less
CHANGED
@@ -23,6 +23,7 @@
|
|
23 |
white-space: nowrap;
|
24 |
overflow: hidden;
|
25 |
text-overflow: ellipsis;
|
|
|
26 |
// text-transform: uppercase;
|
27 |
}
|
28 |
|
23 |
white-space: nowrap;
|
24 |
overflow: hidden;
|
25 |
text-overflow: ellipsis;
|
26 |
+
display: inline-block;
|
27 |
// text-transform: uppercase;
|
28 |
}
|
29 |
|
assets/css/less/wpbdp.less
CHANGED
@@ -281,7 +281,6 @@ form#wpbdmsearchform a.advanced-search-link {
|
|
281 |
|
282 |
&.twitter {
|
283 |
display: inline-block;
|
284 |
-
vertical-align: text-top;
|
285 |
height: 20px;
|
286 |
margin-right: 10px;
|
287 |
|
@@ -946,6 +945,7 @@ body.business-directory #TB_secondLine {
|
|
946 |
|
947 |
.wpbdp-main-links .button {
|
948 |
margin: 0 5px;
|
|
|
949 |
}
|
950 |
.wpbdp-main-links .button:first-child {
|
951 |
margin-left: 0;
|
@@ -1156,12 +1156,23 @@ body.business-directory #TB_secondLine {
|
|
1156 |
}
|
1157 |
|
1158 |
|
1159 |
-
.wpbdp-wp-theme-twentyseventeen
|
1160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
}
|
1162 |
|
1163 |
.wpbdp-wp-theme-twentytwenty {
|
1164 |
-
.wpbdp-main-links .button,
|
1165 |
.box-col.submit-btn input,
|
1166 |
.listing-actions {
|
1167 |
font-size: 1.5rem;
|
@@ -1170,4 +1181,12 @@ body.business-directory #TB_secondLine {
|
|
1170 |
.wpbdp-listing-excerpt {
|
1171 |
font-size: 1.8rem;
|
1172 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1173 |
}
|
281 |
|
282 |
&.twitter {
|
283 |
display: inline-block;
|
|
|
284 |
height: 20px;
|
285 |
margin-right: 10px;
|
286 |
|
945 |
|
946 |
.wpbdp-main-links .button {
|
947 |
margin: 0 5px;
|
948 |
+
font-size: 15px;
|
949 |
}
|
950 |
.wpbdp-main-links .button:first-child {
|
951 |
margin-left: 0;
|
1156 |
}
|
1157 |
|
1158 |
|
1159 |
+
.wpbdp-wp-theme-twentyseventeen {
|
1160 |
+
|
1161 |
+
.single-featured-image-header {
|
1162 |
+
display: none;
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
.wpbdp-listing {
|
1166 |
+
|
1167 |
+
.social-fields .twitter.twitter-handle {
|
1168 |
+
vertical-align: text-top;
|
1169 |
+
padding-top: 1px;
|
1170 |
+
}
|
1171 |
+
}
|
1172 |
}
|
1173 |
|
1174 |
.wpbdp-wp-theme-twentytwenty {
|
1175 |
+
.wpbdp-main-links .wpbdp-button,
|
1176 |
.box-col.submit-btn input,
|
1177 |
.listing-actions {
|
1178 |
font-size: 1.5rem;
|
1181 |
.wpbdp-listing-excerpt {
|
1182 |
font-size: 1.8rem;
|
1183 |
}
|
1184 |
+
|
1185 |
+
.wpbdp-listing .social-fields {
|
1186 |
+
|
1187 |
+
&.twitter.twitter-handle {
|
1188 |
+
padding-top: 5px;
|
1189 |
+
vertical-align: text-top;
|
1190 |
+
}
|
1191 |
+
}
|
1192 |
}
|
assets/css/wpbdp.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wpbdp-display-block{display:block}.wpbdp-cf:before,.wpbdp-cf:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-cf:after,.cf:after{clear:both}.wpbdp-cf,.cf{*zoom:1}form#wpbdmsearchform{padding:12px 0;text-align:center}form#wpbdmsearchform input{display:inline}form#wpbdmsearchform .wpbdmsearchbutton{margin-top:5px}form#wpbdmsearchform a.advanced-search-link{font-size:70%;display:block}#wpbdp-search-form{padding-left:10px}#wpbdp-search-form .wpbdp-search-filter{margin-bottom:10px;clear:both}#wpbdp-search-form .wpbdp-search-filter>.wpbdp-search-field-label{display:block;width:40%;float:left}#wpbdp-search-form .wpbdp-search-filter>div.field{display:block;width:60%;margin-left:40%;padding-left:5px}#wpbdp-search-form .wpbdp-search-filter>div.field>input[type="text"]{box-sizing:border-box;width:90%}#wpbdp-search-form .wpbdp-search-filter>div.field>select{box-sizing:border-box;width:90%}#wpbdp-search-form input[type="submit"]{float:none;margin:auto}.wpbdp-clearfix:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-clearfix:after,.cf:after{clear:both}.wpbdp-clearfix,.cf{*zoom:1}.wpbdp-pagination{margin:25px 0 0 0}.wpbdp-pagination .next{float:right}.listing-actions form{margin:0;padding:0;display:inline}.listing-actions input{margin:0;font-size:80%}.listing-actions input.delete-listing{margin-left:5px;margin-right:30px;color:#ff0000 !important}.listing-actions .back-to-dir{float:right}.listing-actions a.button{padding:5px 10px;font-size:11px;text-decoration:none;background-color:#e6e6e6;color:#7c7c7c;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-ms-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-webkit-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-o-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:linear-gradient(top, #f4f4f4, #e6e6e6);border:1px solid #d2d2d2;border-radius:3px;box-shadow:0 1px 2px rgba(64,64,64,0.1);margin-right:3px}.listing-actions a.button:hover{color:#5e5e5e;background-color:#ebebeb;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-ms-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-webkit-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-o-linear-gradient(top, #f9f9f9, #ebebeb);background-image:linear-gradient(top, #f9f9f9, #ebebeb)}.listing-actions a.delete-listing{margin-left:20px;color:#ff0000}.wpbdp-listing .listing-details .field-value{margin-bottom:10px;width:100%;float:none}.wpbdmsingledetails .singledetailsview .field-value{margin-bottom:10px}.field-value label,.field-value .field-label{color:#444;font-weight:bold}.wpbdp-listing-excerpt{padding:10px;border-bottom:dotted 1px #ddd}.wpbdp-listing-excerpt.odd{background:#eee}.wpbdp-listing-excerpt.sticky{background:#fff0cf;border-bottom:solid 1px #b37800;margin-top:30px}.wpbdp-listing-excerpt .listing-thumbnail{float:right;margin:0 10px 0 0}.wpbdp-listing-excerpt .listing-actions{margin-top:15px}.wpbdp-listing-single .listing-actions{margin-bottom:25px}.wpbdp-listing-single.sticky{margin-top:30px}.wpbdp-listing-excerpt .stickytag{float:right;margin-top:-20px}.wpbdp-listing-single .stickytag{float:right;margin-top:-100px}.wpbdp-listing-single .stickytag img{margin-left:-85px;position:absolute;overflow:hidden}.wpbdp-listing-excerpt .stickytag img{margin-top:-19px}.wpbdp-listing-excerpt .stickytag img,.wpbdp-listing-single .stickytag img{border:0;box-shadow:none;background:transparent;height:102px}.wpbdp-listing-single .listing-title{padding:2px 8px;background:#efefef;border:dotted 1px #ddd;margin-bottom:7px}.wpbdp-listing-single .listing-title h2{clear:none;margin:0}.wpbdp-listing-single .main-image{float:right;margin-left:10px;padding:5px}.wpbdp-listing-single .main-image a{position:relative !important}.wpbdp-listing-single .main-image img{border:solid 1px #333}.wpbdp-listing-single .extra-images{margin-top:10px;clear:both}.wpbdp-listing-single .extra-images ul{margin:0 auto;width:100%}.wpbdp-listing-single .extra-images ul li{list-style-type:none;display:inline;margin-left:5px}.wpbdp-listing-single .extra-images ul li img{display:inline;vertical-align:top;margin:0 auto;max-width:150px;border:solid 1px #333}.wpbdp-listing .social-fields{margin:20px 0}.wpbdp-listing .social-fields .social-field{margin-bottom:10px}.wpbdp-listing .social-fields .social-field.twitter{display:inline-block;vertical-align:text-top;height:20px;margin-right:10px}.wpbdp-listing .social-fields .social-field.twitter iframe{margin-bottom:0}.wpbdp-listing .social-fields .social-field.facebook{display:inline-block;height:0;margin-right:10px}.wpbdp-listing .social-fields .social-field.facebook .fb-like span:first-of-type{vertical-align:middle !important}.wpbdp-listing .social-fields .social-field.linkedin{display:inline-block;margin-right:10px}.wpbdp-listing .social-fields .social-field.linkedin img{vertical-align:middle}.social-field-link{display:inline-block;margin-right:10px}.social-field-link .social-icon{display:inline-block;vertical-align:middle;background-color:transparent;color:#1a1a1a}.social-field-link a{box-shadow:none}.social-field-link a img{height:30px;width:auto}.social-field-link a object{height:34px;margin-bottom:0}.social-field-link.twitter object{border-radius:17px}.social-field-link.icon_first .social-icon{margin-right:5px}.social-field-link.text_first .social-text{margin-right:5px}@media screen and (max-width:500px){.social-field.facebook .fb-like>span{width:100% !important}}.wpbdp-listing-contact-form{margin-top:20px;border-top:dotted 1px #ddd;padding-top:20px;padding-left:10px}.wpbdp-listing-contact-form label,.wpbdp-listing-contact-form .wpbdp-contact-listing-title{display:block;margin-bottom:10px}.wpbdp-listing-contact-form input[type="text"]{width:98%}.wpbdp-listing-contact-form #wpbdp-contact-form-recaptcha{margin-bottom:20px}.wpbdp-listing-contact-form .send-message-button{margin-left:-10px}.wpbdp-listing-contact-form h3{margin-left:-10px}.wpbdp-listing-contact-form textarea{width:98% !important}.wpbdp-listing .comments{margin-top:20px}.wpbdp-bar{background:#f7f7f7;margin:10px 0 20px 0;padding:5px 10px}.wpbdp-bar:before,.wpbdp-bar:after{content:" ";display:table;clear:both}.wpbdp-bar .wpbdp-search-form{margin:0;padding:0 !important;margin-left:50%}.wpbdp-main-links a{margin-right:15px}.wpbdp-bar .left{float:left;text-align:center}.wpbdp-bar .right{width:300px;float:right}.wpbdp-listings-sort-options{font-size:90%;margin:5px 0;text-align:right}.wpbdp-listings-sort-options .current{font-weight:bold}#wpbdp-categories{clear:both}.wpbdp-categories{margin:0;padding-left:20px}.wpbdp-categories .cat-item{box-sizing:border-box;float:left;margin:0 0 20px;width:50%}.wpbdp-categories .cat-item:nth-child(2n+1){clear:left}.wpbdp-categories .cat-item .cat-item{margin:0;width:100%}.wpbdp-categories-tiny .cat-item{float:none;width:100%}.wpbdp-categories-tiny .cat-item:nth-child(2n+1){clear:none}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.wpbdp-checkout-section{margin:0 0 1.5em 0;padding:.7em 1.2em;border:solid 1px #efefef}.wpbdp-checkout-section.wpbdp-checkout-errors{padding:0;border:none}.wpbdp-checkout-section h3{margin:0 0 1em 0;padding:0}.wpbdp-checkout-gateway-selection label{margin:0 10px 0 0}.wpbdp-checkout-gateway-selection label:last-child{margin-right:0}.wpbdp-checkout-gateway-selection label input,.wpbdp-checkout-gateway-selection label img{vertical-align:middle}.wpbdp-checkout-gateway-selection label img{margin-bottom:10px}.wpbdp-billing-detail-field{margin:0 0 1.5em 0;font-size:95%}.wpbdp-billing-detail-field label{margin:0;padding:0;font-weight:bold;display:block}.wpbdp-billing-detail-field .wpbdp-description{margin:0 0 4px 0;font-size:80%;color:#666;display:block}.wpbdp-billing-detail-field input[type="text"]{width:100%;box-sizing:border-box;padding:4px 6px}.wpbdp-billing-detail-field:last-child{margin-bottom:0}.wpbdp-billing-detail-field.wpbdp-required label:after{content:' *';color:#900000}.wpbdp-payment-receipt{border:1px solid #ccc;padding:1em 1.5em;margin:1.5em 0;font-size:90%}.wpbdp-payment-receipt h4{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-date{color:#666}.wpbdp-payment-receipt .wpbdp-payment-status{float:right}.wpbdp-payment-receipt .wpbdp-payment-receipt-details{margin:1.5em .5em}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dt{margin:0;padding:0;float:left;min-width:50%}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dd{margin:0 0 5px 50%;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-print{margin:1.5em 0 0 0}.wpbdp-checkout-invoice table.wpbdp-payment-items-table th,.wpbdp-checkout-invoice table.wpbdp-payment-items-table td{font-size:95%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table tr.item td:first-of-type{width:80%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table .item-fee-description{margin-left:10px;font-size:85%;max-width:90%}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}#wpbdp-login-view .wpbdp-login-options{margin:30px 0 0 0;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option{width:50%;float:left;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:first-child{padding:0 20px 0 0}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:last-child{border-left:1px solid #ccc;padding:0 0 0 20px}#wpbdp-login-view #loginform #user_login,#wpbdp-login-view #loginform #user_pass{display:block}#wpbdp-login-view h4{font-size:21px;margin-top:0}#wpbdp-login-view .access-key-message{font-size:13px}#wpbdp-login-view input[type=text],#wpbdp-login-view input[type=password]{width:100%}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-access-key-form input[type=submit]{margin-top:49px}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-form h4{margin-bottom:74px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view h4{font-size:24px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view .access-key-message{font-size:16px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-access-key-form input[type=submit]{margin-top:60px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-form h4{margin-bottom:72px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-access-key-form input[type=submit]{margin-top:44px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-form h4{margin-bottom:57px}.wpbdp-msg{font-size:85%;padding:6px 12px;color:#555;margin:5px 0;background:#fffbcc;border-radius:3px}.wpbdp-msg ul{margin:0}.wpbdp-msg ul li{list-style-position:inside}.wpbdp-msg.error,.wpbdp-msg.wpbdp-error{color:#fff;background:#bc0b0b}.wpbdp-msg.tip{background:#d7f5ff}.wpbdp-submit-page table.fee-options{width:100%}.wpbdp-submit-page table.fee-options th,.wpbdp-submit-page table.fee-options td{text-align:center}.wpbdp-submit-page table.fee-options td.fee-label,.wpbdp-submit-page table.fee-options tr.fee-description td{text-align:left}.wpbdp-submit-page table.fee-options .fee-selection{width:5%}.wpbdp-submit-page table.fee-options tr.fee-option td.fee-label{font-weight:bold}.wpbdp-submit-page table.fee-options td.fee-description{font-size:90%;color:#666}#wpbdp-renewal-page .do-not-renew-listing{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}#wpbdp-renewal-page .do-not-renew-listing p:last-child{margin-bottom:0}#wpbdp-renewal-page .do-not-renew-listing input[type="submit"]{background:#bc0b0b}.wpbdp-recaptcha-error{color:#ff0000}#wpbdp-delete-listing-page form.confirm-form{margin-top:30px}#wpbdp-delete-listing-page input.delete-listing-confirm{margin-left:20px;color:#c00}#googlewallet-buy img{border:none;box-shadow:none}.wpbdp-checkout input[type="image"]{padding:0;border:none;box-shadow:none;width:auto}table#wpbdp-manage-recurring th.listing-title,table#wpbdp-manage-recurring td.listing-title{min-width:200px}table#wpbdp-manage-recurring a.cancel-subscription{color:#ff0000}#wpbdp-manage-recurring-cancel dl dd{margin-left:10px}.wpbdp-cancel-subscription-form{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}.wpbdp-cancel-subscription-form p:last-child{margin-bottom:0}.wpbdp-cancel-subscription-form input.button-primary[type="submit"]{background-color:#bc0b0b}.wpbdp-cc-form{padding:0;width:90%}.wpbdp-cc-form h4{margin:0}.wpbdp-cc-field input{width:auto}.wpbdp-cc-field label{display:block;font-weight:bold;text-align:right;padding-right:10px}#wpbdp-billing-information .billing-info-section h4{margin:10px 0 5px 0}#wpbdp-billing-information .billing-info-section table{margin:1.75em 0}#wpbdp-billing-information #wpbdp-billing-field-exp,#wpbdp-billing-information #wpbdp-billing-field-exp-year{width:40%;display:inline}#wpbdp-billing-information .form-buttons{margin:15px 0}.wpbdp-show-on-mobile{display:none}input[type="button"].wpbdp-show-on-mobile{display:none}@media screen and (max-width:500px){.wpbdp-show-on-mobile{display:inline !important}input[type="button"].wpbdp-hide-on-mobile{display:none}.wpbdp-hide-on-mobile{display:none}.wpbdp-bar form.wpbdp-search-form{display:block;margin-left:0;margin-top:10px}.wpbdp-bar form.wpbdp-search-form #intextbox{margin-bottom:5px;padding:4px}.wpbdp-bar form.wpbdp-search-form input[type="text"]{padding:4px 0;margin:0 0 2px 0}.wpbdp-listings-sort-options{font-size:90%}.wpbdp-listing.wpbdp-listing{font-size:90%}.wpbdp-listing.wpbdp-listing-excerpt .field-value>label{display:block}.wpbdp-listing.wpbdp-listing-excerpt .listing-thumbnail,.wpbdp-listing.wpbdp-listing-single .listing-thumbnail{float:none;padding:5px}.wpbdp-listing.wpbdp-listing-excerpt .listing-details,.wpbdp-listing.wpbdp-listing-single .listing-details{margin:0 5px;float:none;display:block}.wpbdp-listing .listing-actions input{font-size:70%}.wpbdp-listing .listing-actions input.back-to-dir{float:right}.wpbdp-listing.wpbdp-listing-single .main-image{display:block;float:none;padding:0;margin:0 0 10px 0;text-align:center;max-width:90%}.wpbdp-listing.wpbdp-listing-single .field-value>label{display:block}.wpbdp-submit-page.step-images #image-upload-dnd-area{font-size:90%;float:none !important;width:100% !important}.wpbdp-submit-page.step-images .dnd-area-inside-error{margin-top:30px}.wpbdp-submit-page.step-images #image-upload-conditions{width:100% !important;float:none !important;font-size:90%}.wpbdp-submit-page.step-images #image-upload-conditions dl{margin:0;padding:0}.wpbdp-submit-page.step-images #image-upload-conditions dl dt{margin:0;margin-right:5px;padding:0;float:left}.wpbdp-submit-page.step-images #image-upload-conditions dl dd{margin:0;padding:0;display:block}.wpbdp-submit-page.step-images .wpbdp-image img{max-width:50%}.wpbdp-listings-sort-options.wpbdp-show-on-mobile{margin-bottom:10px}}body.business-directory #TB_ImageOff .screen-reader-text,body.business-directory #TB_closeWindowButton .screen-reader-text{visibility:hidden}body.business-directory #TB_next{float:right}body.business-directory #TB_prev{float:left}body.business-directory #TB_caption{text-align:center;width:70%;height:auto}body.business-directory #TB_closeWindow{padding:0;height:0}body.business-directory #TB_closeWindow .screen-reader-text{display:none}body.business-directory #TB_secondLine{font-size:11px;color:#666}.wpbdp-form-row label{display:block}.wpbdp-form-row.wpbdp-form-textfield input[type="text"]{width:400px}.wpbdp-main-box,.wpbdp-main-box .box-row,.wpbdp-main-box .box-col{box-sizing:border-box}.wpbdp-main-box{background:#f7f7f7;margin:10px 0 20px 0;border-radius:4px;padding:10px;width:100%}.wpbdp-main-box .box-row{margin-bottom:4px}.wpbdp-main-box .box-col{margin-bottom:4px;width:100%}.wpbdp-main-box .box-col input{width:100%}.wpbdp-main-box .submit-btn input[type="submit"]{margin-top:0}.wpbdp-main-box .advanced-search-link{border:none;box-shadow:none;display:block;font-size:11px;text-align:right;text-decoration:none}.wpbdp-main-box-medium .box-col,.wpbdp-main-box-large .box-col{float:left}.wpbdp-main-box-medium .search-fields>.cols-1 .box-col,.wpbdp-main-box-large .search-fields>.cols-1 .box-col{width:100%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col,.wpbdp-main-box-large .search-fields>.cols-2 .box-col{width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:first-child{padding-right:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:last-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:last-child{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col,.wpbdp-main-box-large .search-fields>.cols-3 .box-col{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding-right:5px}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding:0;width:100%}.wpbdp-main-box-large .box-row{margin-bottom:0}.wpbdp-main-box-large .search-fields{padding-right:5px;width:78%}.wpbdp-main-box-large .submit-btn{padding-left:5px;width:22%}.wpbdp-main-links{text-align:right}.wpbdp-main-links .button{margin:0 5px}.wpbdp-main-links .button:first-child{margin-left:0}.wpbdp-main-links .button:last-child{margin-right:0}.wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px;width:100%;margin:0 0 4px}.wpbdp-main-links-small .button{width:100%;margin:0 0 4px}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button{width:49%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:first-child{margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:last-child{margin-left:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n){width:49%;margin-top:1%;margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n+3){width:49%;margin-top:1%;margin-left:1%}.wpbdp-main-links-large .button{margin:0 3px}.wpbdp-with-button-styles .wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-small .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-medium .wpbdp-main-links .button{padding-top:8px;padding-bottom:8px}.single-wpbdp_listing .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_category .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_tag .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-search .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-submit_listing .wpbdp-view-content-wrapper header.entry-header{display:none}.wpbdp-wp-theme-graphene.single-wpbdp_listing h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_category h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_tag h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-search h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-submit_listing h1.post-title{display:none}.wpbdp-wp-theme-genesis.wpbdp-view-show_category .archive-description,.wpbdp-wp-theme-genesis.wpbdp-view-show_tag .archive-description{display:none}.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_category .post-details,.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_tag .post-details{display:none}.wpbdp-wp-theme-atahualpa.wpbdp-view-show_category .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_tag .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_listing .post-footer{display:none}.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_category .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_tag .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_listing .entry-content .featured-image{display:none}.wpbdp-plan-info-box{padding:10px;margin:0 0 6px 0;border:1px solid #d2d2d2;border-radius:2px;background:#fafafa}.wpbdp-plan-info-box .wpbdp-plan-duration,.wpbdp-plan-info-box .wpbdp-plan-details,.wpbdp-plan-info-box .wpbdp-plan-price{float:left;box-sizing:border-box}.wpbdp-plan-info-box .wpbdp-plan-duration{width:20%;text-align:center}.wpbdp-plan-info-box .wpbdp-plan-duration-never-expires{font-size:20px;font-weight:bold;display:block;line-height:1em;text-transform:uppercase;word-wrap:break-word}.wpbdp-plan-info-box .wpbdp-plan-duration-amount{font-size:30px;font-weight:bold;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-duration-period{font-size:22px;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-details{width:55%;padding:0 10px}.wpbdp-plan-info-box .wpbdp-plan-description{margin:0 0 10px 0}.wpbdp-plan-info-box .wpbdp-plan-label{font-size:1.1em;font-weight:bold;margin-bottom:10px}.wpbdp-plan-info-box .wpbdp-plan-feature-list{margin:0 0 0 10px}.wpbdp-plan-info-box .wpbdp-plan-details p{margin:0}.wpbdp-plan-info-box .wpbdp-plan-feature-list li{list-style-position:inside;margin:0}.wpbdp-plan-info-box .wpbdp-plan-price{width:25%}.wpbdp-plan-info-box .wpbdp-plan-price label{font-size:20px;border:1px solid #f3f3f3;background:#fdfdfd;border-radius:2px;display:block;padding:4px 8px}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label{cursor:pointer}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label:hover{border-color:#d0d0d0;background:#fff}.wpbdp-plan-info-box .wpbdp-plan-price label input{margin:0 4px 0 0;vertical-align:2px}.wpbdp-plan-info-box .wpbdp-plan-disabled-msg{clear:both}.wpbdp-plan-info-box .wpbdp-plan-private-msg{width:100%;display:inline-block;text-align:right}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-price{width:100%}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-amount,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-period{display:inline}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details{padding:0 0 4pt}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-label{font-size:1.5em;margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-description{margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-details{width:47%}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-price{width:32%}.wpbdp-drag-handle{width:6px;height:10px;display:inline-block;background:url('../../assets/images/drag-handle.png') 0 0;cursor:move;float:left;margin:5px 5px 0 0;vertical-align:middle}.wpbdp-help-tip{margin:10px 0}.wpbdp-help-tip .dashicons{vertical-align:middle}.wpbdp-help-tip .message{display:inline-block}.wpbdp-help-tip.small{font-size:12px}.wpbdp-help-tip.small .dashicons{font-size:15px;width:15px;height:15px}.wpbdp-hidden{display:none}.wpbdp-form-field-association-category .wpbdp-form-field-checkbox-item.disabled,.wpbdp-form-field-association-category .wpbdp-form-field-radio-item.disabled{opacity:.65}.wpbdp-form-field-association-category select{width:100%}.wpbdp-form-field-association-category .select2{width:100%}.wpbdp-form-field-association-category .select2 .select2-selection{border-radius:0}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:normal;white-space:nowrap;vertical-align:baseline;border:none}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice .select2-selection__choice__remove{margin-right:5px}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice,.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-search--inline{margin:5px 5px 0 0}.wpbdp-form-field-association-category .select2 .select2-search .select2-search__field{font-size:11px}#wpbdp-listing-flagging-page textarea{width:90%;min-height:150px;margin-bottom:10px}.wpbdp-wp-theme-twentyseventeen .single-featured-image-header{display:none}.wpbdp-wp-theme-twentytwenty .wpbdp-main-links .button,.wpbdp-wp-theme-twentytwenty .box-col.submit-btn input,.wpbdp-wp-theme-twentytwenty .listing-actions{font-size:1.5rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing-excerpt{font-size:1.8rem}
|
1 |
+
.wpbdp-tag{background:#444;border-radius:2px;padding:2px 5px;color:#fff;font-size:10px !important;margin-right:2px;text-decoration:none !important;line-height:1.5 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.wpbdp-display-block{display:block}.wpbdp-cf:before,.wpbdp-cf:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-cf:after,.cf:after{clear:both}.wpbdp-cf,.cf{*zoom:1}form#wpbdmsearchform{padding:12px 0;text-align:center}form#wpbdmsearchform input{display:inline}form#wpbdmsearchform .wpbdmsearchbutton{margin-top:5px}form#wpbdmsearchform a.advanced-search-link{font-size:70%;display:block}#wpbdp-search-form{padding-left:10px}#wpbdp-search-form .wpbdp-search-filter{margin-bottom:10px;clear:both}#wpbdp-search-form .wpbdp-search-filter>.wpbdp-search-field-label{display:block;width:40%;float:left}#wpbdp-search-form .wpbdp-search-filter>div.field{display:block;width:60%;margin-left:40%;padding-left:5px}#wpbdp-search-form .wpbdp-search-filter>div.field>input[type="text"]{box-sizing:border-box;width:90%}#wpbdp-search-form .wpbdp-search-filter>div.field>select{box-sizing:border-box;width:90%}#wpbdp-search-form input[type="submit"]{float:none;margin:auto}.wpbdp-clearfix:after,.cf:before,.cf:after{content:" ";display:table}.wpbdp-clearfix:after,.cf:after{clear:both}.wpbdp-clearfix,.cf{*zoom:1}.wpbdp-pagination{margin:25px 0 0 0}.wpbdp-pagination .next{float:right}.listing-actions form{margin:0;padding:0;display:inline}.listing-actions input{margin:0;font-size:80%}.listing-actions input.delete-listing{margin-left:5px;margin-right:30px;color:#ff0000 !important}.listing-actions .back-to-dir{float:right}.listing-actions a.button{padding:5px 10px;font-size:11px;text-decoration:none;background-color:#e6e6e6;color:#7c7c7c;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-ms-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-webkit-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:-o-linear-gradient(top, #f4f4f4, #e6e6e6);background-image:linear-gradient(top, #f4f4f4, #e6e6e6);border:1px solid #d2d2d2;border-radius:3px;box-shadow:0 1px 2px rgba(64,64,64,0.1);margin-right:3px}.listing-actions a.button:hover{color:#5e5e5e;background-color:#ebebeb;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-ms-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-webkit-linear-gradient(top, #f9f9f9, #ebebeb);background-image:-o-linear-gradient(top, #f9f9f9, #ebebeb);background-image:linear-gradient(top, #f9f9f9, #ebebeb)}.listing-actions a.delete-listing{margin-left:20px;color:#ff0000}.wpbdp-listing .listing-details .field-value{margin-bottom:10px;width:100%;float:none}.wpbdmsingledetails .singledetailsview .field-value{margin-bottom:10px}.field-value label,.field-value .field-label{color:#444;font-weight:bold}.wpbdp-listing-excerpt{padding:10px;border-bottom:dotted 1px #ddd}.wpbdp-listing-excerpt.odd{background:#eee}.wpbdp-listing-excerpt.sticky{background:#fff0cf;border-bottom:solid 1px #b37800;margin-top:30px}.wpbdp-listing-excerpt .listing-thumbnail{float:right;margin:0 10px 0 0}.wpbdp-listing-excerpt .listing-actions{margin-top:15px}.wpbdp-listing-single .listing-actions{margin-bottom:25px}.wpbdp-listing-single.sticky{margin-top:30px}.wpbdp-listing-excerpt .stickytag{float:right;margin-top:-20px}.wpbdp-listing-single .stickytag{float:right;margin-top:-100px}.wpbdp-listing-single .stickytag img{margin-left:-85px;position:absolute;overflow:hidden}.wpbdp-listing-excerpt .stickytag img{margin-top:-19px}.wpbdp-listing-excerpt .stickytag img,.wpbdp-listing-single .stickytag img{border:0;box-shadow:none;background:transparent;height:102px}.wpbdp-listing-single .listing-title{padding:2px 8px;background:#efefef;border:dotted 1px #ddd;margin-bottom:7px}.wpbdp-listing-single .listing-title h2{clear:none;margin:0}.wpbdp-listing-single .main-image{float:right;margin-left:10px;padding:5px}.wpbdp-listing-single .main-image a{position:relative !important}.wpbdp-listing-single .main-image img{border:solid 1px #333}.wpbdp-listing-single .extra-images{margin-top:10px;clear:both}.wpbdp-listing-single .extra-images ul{margin:0 auto;width:100%}.wpbdp-listing-single .extra-images ul li{list-style-type:none;display:inline;margin-left:5px}.wpbdp-listing-single .extra-images ul li img{display:inline;vertical-align:top;margin:0 auto;max-width:150px;border:solid 1px #333}.wpbdp-listing .social-fields{margin:20px 0}.wpbdp-listing .social-fields .social-field{margin-bottom:10px}.wpbdp-listing .social-fields .social-field.twitter{display:inline-block;height:20px;margin-right:10px}.wpbdp-listing .social-fields .social-field.twitter iframe{margin-bottom:0}.wpbdp-listing .social-fields .social-field.facebook{display:inline-block;height:0;margin-right:10px}.wpbdp-listing .social-fields .social-field.facebook .fb-like span:first-of-type{vertical-align:middle !important}.wpbdp-listing .social-fields .social-field.linkedin{display:inline-block;margin-right:10px}.wpbdp-listing .social-fields .social-field.linkedin img{vertical-align:middle}.social-field-link{display:inline-block;margin-right:10px}.social-field-link .social-icon{display:inline-block;vertical-align:middle;background-color:transparent;color:#1a1a1a}.social-field-link a{box-shadow:none}.social-field-link a img{height:30px;width:auto}.social-field-link a object{height:34px;margin-bottom:0}.social-field-link.twitter object{border-radius:17px}.social-field-link.icon_first .social-icon{margin-right:5px}.social-field-link.text_first .social-text{margin-right:5px}@media screen and (max-width:500px){.social-field.facebook .fb-like>span{width:100% !important}}.wpbdp-listing-contact-form{margin-top:20px;border-top:dotted 1px #ddd;padding-top:20px;padding-left:10px}.wpbdp-listing-contact-form label,.wpbdp-listing-contact-form .wpbdp-contact-listing-title{display:block;margin-bottom:10px}.wpbdp-listing-contact-form input[type="text"]{width:98%}.wpbdp-listing-contact-form #wpbdp-contact-form-recaptcha{margin-bottom:20px}.wpbdp-listing-contact-form .send-message-button{margin-left:-10px}.wpbdp-listing-contact-form h3{margin-left:-10px}.wpbdp-listing-contact-form textarea{width:98% !important}.wpbdp-listing .comments{margin-top:20px}.wpbdp-bar{background:#f7f7f7;margin:10px 0 20px 0;padding:5px 10px}.wpbdp-bar:before,.wpbdp-bar:after{content:" ";display:table;clear:both}.wpbdp-bar .wpbdp-search-form{margin:0;padding:0 !important;margin-left:50%}.wpbdp-main-links a{margin-right:15px}.wpbdp-bar .left{float:left;text-align:center}.wpbdp-bar .right{width:300px;float:right}.wpbdp-listings-sort-options{font-size:90%;margin:5px 0;text-align:right}.wpbdp-listings-sort-options .current{font-weight:bold}#wpbdp-categories{clear:both}.wpbdp-categories{margin:0;padding-left:20px}.wpbdp-categories .cat-item{box-sizing:border-box;float:left;margin:0 0 20px;width:50%}.wpbdp-categories .cat-item:nth-child(2n+1){clear:left}.wpbdp-categories .cat-item .cat-item{margin:0;width:100%}.wpbdp-categories-tiny .cat-item{float:none;width:100%}.wpbdp-categories-tiny .cat-item:nth-child(2n+1){clear:none}.wpbdp-form-field{margin:12px 0}.wpbdp-form-field:first-child{margin-top:0}.wpbdp-form-field .wpbdp-form-field-label{margin:0 0 3px 0}.wpbdp-form-field .wpbdp-form-field-label label{display:inline-block;font-weight:bold}.wpbdp-form-field .wpbdp-form-field-label .wpbdp-form-field-required-indicator{margin-left:3px;font-size:90%}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-label{margin-bottom:0}.wpbdp-form-field.wpbdp-form-field-has-description .wpbdp-form-field-description{margin-bottom:3px}.wpbdp-form-field .wpbdp-form-field-description{padding-left:6px;color:#666}.wpbdp-form-field .wpbdp-form-field-inner{padding-left:6px}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea,.wpbdp-form-field.wpbdp-form-field-type-textfield input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-select select,.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-twitter input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-facebook input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-linkedin input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-phone_number input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-date input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-textarea textarea{min-height:50px}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col{box-sizing:border-box;float:left;width:50%}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:first-child{padding-right:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col:last-child{padding-left:10pt}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col .sublabel{margin:0;display:block}.wpbdp-form-field.wpbdp-form-field-type-url .wpbdp-url-field-col input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-association-content textarea{min-height:80px}.wpbdp-form-field .field-description{font-size:90%;color:#696969;float:right}.wpbdp-form-field .sublabel{font-size:90%;margin-left:10px;margin-right:10px}.wpbdp-form-field.wpbdp-form-field-type-image .preview,.wpbdp-form-field.wpbdp-form-field-type-social-network .preview{margin-bottom:20px}.wpbdp-form-field.wpbdp-form-field-type-image a.delete,.wpbdp-form-field.wpbdp-form-field-type-social-network a.delete{color:#900000;margin-right:20px}.wpbdp-form-field.wpbdp-form-field-type-image input[type="text"],.wpbdp-form-field.wpbdp-form-field-type-social-network input[type="text"]{width:100%;font-size:inherit}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .sublabel,.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .sublabel{display:block}.wpbdp-form-field.wpbdp-form-field-type-image .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1),.wpbdp-form-field.wpbdp-form-field-type-social-network .wpbdp-social-type-field .wpbdp-inner-social-field-option:nth-of-type(2n+1){display:inline-block;width:30%;margin-right:40%;float:right}.wpbdp-form-field-validation-error-wrapper{margin:24px 0}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors{font-size:80%;color:#d64226;position:relative;background:#fff;border:1px solid #d64226;border-radius:4px;padding:4px 6px;margin:0 12px 3px 6px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after,.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{top:100%;left:12px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:after{border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:4px;margin-left:-4px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field-validation-errors:before{border-color:rgba(214,66,38,0);border-top-color:#d64226;border-width:5px;margin-left:-5px}.wpbdp-form-field-validation-error-wrapper .wpbdp-form-field{margin:0}.wpbdp-checkout-section{margin:0 0 1.5em 0;padding:.7em 1.2em;border:solid 1px #efefef}.wpbdp-checkout-section.wpbdp-checkout-errors{padding:0;border:none}.wpbdp-checkout-section h3{margin:0 0 1em 0;padding:0}.wpbdp-checkout-gateway-selection label{margin:0 10px 0 0}.wpbdp-checkout-gateway-selection label:last-child{margin-right:0}.wpbdp-checkout-gateway-selection label input,.wpbdp-checkout-gateway-selection label img{vertical-align:middle}.wpbdp-checkout-gateway-selection label img{margin-bottom:10px}.wpbdp-billing-detail-field{margin:0 0 1.5em 0;font-size:95%}.wpbdp-billing-detail-field label{margin:0;padding:0;font-weight:bold;display:block}.wpbdp-billing-detail-field .wpbdp-description{margin:0 0 4px 0;font-size:80%;color:#666;display:block}.wpbdp-billing-detail-field input[type="text"]{width:100%;box-sizing:border-box;padding:4px 6px}.wpbdp-billing-detail-field:last-child{margin-bottom:0}.wpbdp-billing-detail-field.wpbdp-required label:after{content:' *';color:#900000}.wpbdp-payment-receipt{border:1px solid #ccc;padding:1em 1.5em;margin:1.5em 0;font-size:90%}.wpbdp-payment-receipt h4{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-date{color:#666}.wpbdp-payment-receipt .wpbdp-payment-status{float:right}.wpbdp-payment-receipt .wpbdp-payment-receipt-details{margin:1.5em .5em}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl{margin:0;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dt{margin:0;padding:0;float:left;min-width:50%}.wpbdp-payment-receipt .wpbdp-payment-receipt-details dl dd{margin:0 0 5px 50%;padding:0}.wpbdp-payment-receipt .wpbdp-payment-receipt-print{margin:1.5em 0 0 0}.wpbdp-checkout-invoice table.wpbdp-payment-items-table th,.wpbdp-checkout-invoice table.wpbdp-payment-items-table td{font-size:95%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table tr.item td:first-of-type{width:80%}.wpbdp-checkout-invoice table.wpbdp-payment-items-table .item-fee-description{margin-left:10px;font-size:85%;max-width:90%}.select2-results{font-size:11px}#wpbdp-submit-listing input[type="text"],#wpbdp-submit-listing textarea{box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section{margin:10px 0 0 0;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.expanded{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .collapse-indicator.collapsed{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section.collapsed .wpbdp-submit-listing-section-content{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section.hidden{display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header{background:#ccc;text-transform:uppercase;font-weight:bold;color:#333;padding:2px 10px;font-size:12px;cursor:pointer}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator{margin:0 10px 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-header .collapse-indicator.expanded{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-content{padding:10px 20px;border:solid 1px #ccc;border-top:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}#wpbdp-submit-listing .wpbdp-submit-listing-section-content h4{margin:0 0 10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions{margin:10px 0}#wpbdp-submit-listing .wpbdp-submit-listing-form-actions input[type="submit"]{float:right}#wpbdp-submit-listing .wpbdp-submit-listing-section-messages{margin:0 0 12px 0}#wpbdp-submit-listing .wpbdp-plan-selection-with-tip{margin:24px 0 0 0;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list{margin:0;padding:0;list-style-type:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection ul.category-list li{font-size:10px;margin:0 5px 0 0;padding:1px 6px;border-radius:3px;background:#5bc0de;color:#fff;font-weight:700;text-align:center;white-space:nowrap;vertical-align:baseline;border:none;display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-plan_selection .wpbdp_continue_to_fields_action{text-align:right}#wpbdp-submit-listing .wpbdp-editor-area{height:422px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form{margin:15px 10px}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #wpbdp-uploaded-images{margin:0 0 20px 0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image{padding:10px 0;border-bottom:dotted 1px #efefef}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-img{width:60px;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-extra input[type="text"]{width:60%;display:block}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link{float:right;font-size:11px;text-decoration:none;color:#900000;display:none}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image .wpbdp-image-delete-link:hover{text-decoration:underline;color:#ff0000}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image:hover .wpbdp-image-delete-link{display:inline}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .wpbdp-image-draggable-highlight{width:160px;height:160px;margin:0 10px;background:red;float:left}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images #image-upload-form-no-js{width:0;height:0;overflow:hidden;visibility:hidden}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area{float:left;width:72%;box-sizing:border-box}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-dnd-area.no-conditions{float:none;width:100%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions{float:right;width:25%;color:#666;font-size:90%}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl{margin:0}#wpbdp-submit-listing .wpbdp-submit-listing-section-listing_images .area-and-conditions #image-upload-conditions dl dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#wpbdp-submit-listing textarea.wpbdp-submit-listing-tos{width:100%;min-height:100px}#wpbdp-submit-listing #change-plan-link{text-align:right;font-size:90%}#wpbdp-submit-listing #wpbdp-submit-listing-account-details{margin:10px 0 0 0}#wpbdp-submit-listing #wpbdp-submit-listing-account-details input[type="password"]{width:70%;display:inline-block}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter{float:right;width:20%;padding:4px;text-align:center;border:1px solid}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-0{background-color:#f1adad;border-color:#e35b5b}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-2{background-color:#fbc5a9;border-color:#f78b53}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-3{background-color:#ffe399;border-color:#ffc733}#wpbdp-submit-listing #wpbdp-submit-listing-account-details .wpbdp-password-strength-meter.strength-4{background-color:#c1e1b9;border-color:#83c373}#wpbdp-login-view .wpbdp-login-options{margin:30px 0 0 0;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option{width:50%;float:left;box-sizing:border-box}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:first-child{padding:0 20px 0 0}#wpbdp-login-view .wpbdp-login-options.options-2 .wpbdp-login-option:last-child{border-left:1px solid #ccc;padding:0 0 0 20px}#wpbdp-login-view #loginform #user_login,#wpbdp-login-view #loginform #user_pass{display:block}#wpbdp-login-view h4{font-size:21px;margin-top:0}#wpbdp-login-view .access-key-message{font-size:13px}#wpbdp-login-view input[type=text],#wpbdp-login-view input[type=password]{width:100%}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-access-key-form input[type=submit]{margin-top:49px}.wpbdp-wp-theme-twentyseventeen #wpbdp-login-form h4{margin-bottom:74px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view h4{font-size:24px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view .access-key-message{font-size:16px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-access-key-form input[type=submit]{margin-top:60px}.wpbdp-wp-theme-twentynineteen #wpbdp-login-view #wpbdp-login-form h4{margin-bottom:72px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-access-key-form input[type=submit]{margin-top:44px}.wpbdp-wp-theme-twentytwenty #wpbdp-login-form h4{margin-bottom:57px}.wpbdp-msg{font-size:85%;padding:6px 12px;color:#555;margin:5px 0;background:#fffbcc;border-radius:3px}.wpbdp-msg ul{margin:0}.wpbdp-msg ul li{list-style-position:inside}.wpbdp-msg.error,.wpbdp-msg.wpbdp-error{color:#fff;background:#bc0b0b}.wpbdp-msg.tip{background:#d7f5ff}.wpbdp-submit-page table.fee-options{width:100%}.wpbdp-submit-page table.fee-options th,.wpbdp-submit-page table.fee-options td{text-align:center}.wpbdp-submit-page table.fee-options td.fee-label,.wpbdp-submit-page table.fee-options tr.fee-description td{text-align:left}.wpbdp-submit-page table.fee-options .fee-selection{width:5%}.wpbdp-submit-page table.fee-options tr.fee-option td.fee-label{font-weight:bold}.wpbdp-submit-page table.fee-options td.fee-description{font-size:90%;color:#666}#wpbdp-renewal-page .do-not-renew-listing{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}#wpbdp-renewal-page .do-not-renew-listing p:last-child{margin-bottom:0}#wpbdp-renewal-page .do-not-renew-listing input[type="submit"]{background:#bc0b0b}.wpbdp-recaptcha-error{color:#ff0000}#wpbdp-delete-listing-page form.confirm-form{margin-top:30px}#wpbdp-delete-listing-page input.delete-listing-confirm{margin-left:20px;color:#c00}#googlewallet-buy img{border:none;box-shadow:none}.wpbdp-checkout input[type="image"]{padding:0;border:none;box-shadow:none;width:auto}table#wpbdp-manage-recurring th.listing-title,table#wpbdp-manage-recurring td.listing-title{min-width:200px}table#wpbdp-manage-recurring a.cancel-subscription{color:#ff0000}#wpbdp-manage-recurring-cancel dl dd{margin-left:10px}.wpbdp-cancel-subscription-form{padding:15px 10px 10px;border-radius:2px;background-color:#f0f0f0}.wpbdp-cancel-subscription-form p:last-child{margin-bottom:0}.wpbdp-cancel-subscription-form input.button-primary[type="submit"]{background-color:#bc0b0b}.wpbdp-cc-form{padding:0;width:90%}.wpbdp-cc-form h4{margin:0}.wpbdp-cc-field input{width:auto}.wpbdp-cc-field label{display:block;font-weight:bold;text-align:right;padding-right:10px}#wpbdp-billing-information .billing-info-section h4{margin:10px 0 5px 0}#wpbdp-billing-information .billing-info-section table{margin:1.75em 0}#wpbdp-billing-information #wpbdp-billing-field-exp,#wpbdp-billing-information #wpbdp-billing-field-exp-year{width:40%;display:inline}#wpbdp-billing-information .form-buttons{margin:15px 0}.wpbdp-show-on-mobile{display:none}input[type="button"].wpbdp-show-on-mobile{display:none}@media screen and (max-width:500px){.wpbdp-show-on-mobile{display:inline !important}input[type="button"].wpbdp-hide-on-mobile{display:none}.wpbdp-hide-on-mobile{display:none}.wpbdp-bar form.wpbdp-search-form{display:block;margin-left:0;margin-top:10px}.wpbdp-bar form.wpbdp-search-form #intextbox{margin-bottom:5px;padding:4px}.wpbdp-bar form.wpbdp-search-form input[type="text"]{padding:4px 0;margin:0 0 2px 0}.wpbdp-listings-sort-options{font-size:90%}.wpbdp-listing.wpbdp-listing{font-size:90%}.wpbdp-listing.wpbdp-listing-excerpt .field-value>label{display:block}.wpbdp-listing.wpbdp-listing-excerpt .listing-thumbnail,.wpbdp-listing.wpbdp-listing-single .listing-thumbnail{float:none;padding:5px}.wpbdp-listing.wpbdp-listing-excerpt .listing-details,.wpbdp-listing.wpbdp-listing-single .listing-details{margin:0 5px;float:none;display:block}.wpbdp-listing .listing-actions input{font-size:70%}.wpbdp-listing .listing-actions input.back-to-dir{float:right}.wpbdp-listing.wpbdp-listing-single .main-image{display:block;float:none;padding:0;margin:0 0 10px 0;text-align:center;max-width:90%}.wpbdp-listing.wpbdp-listing-single .field-value>label{display:block}.wpbdp-submit-page.step-images #image-upload-dnd-area{font-size:90%;float:none !important;width:100% !important}.wpbdp-submit-page.step-images .dnd-area-inside-error{margin-top:30px}.wpbdp-submit-page.step-images #image-upload-conditions{width:100% !important;float:none !important;font-size:90%}.wpbdp-submit-page.step-images #image-upload-conditions dl{margin:0;padding:0}.wpbdp-submit-page.step-images #image-upload-conditions dl dt{margin:0;margin-right:5px;padding:0;float:left}.wpbdp-submit-page.step-images #image-upload-conditions dl dd{margin:0;padding:0;display:block}.wpbdp-submit-page.step-images .wpbdp-image img{max-width:50%}.wpbdp-listings-sort-options.wpbdp-show-on-mobile{margin-bottom:10px}}body.business-directory #TB_ImageOff .screen-reader-text,body.business-directory #TB_closeWindowButton .screen-reader-text{visibility:hidden}body.business-directory #TB_next{float:right}body.business-directory #TB_prev{float:left}body.business-directory #TB_caption{text-align:center;width:70%;height:auto}body.business-directory #TB_closeWindow{padding:0;height:0}body.business-directory #TB_closeWindow .screen-reader-text{display:none}body.business-directory #TB_secondLine{font-size:11px;color:#666}.wpbdp-form-row label{display:block}.wpbdp-form-row.wpbdp-form-textfield input[type="text"]{width:400px}.wpbdp-main-box,.wpbdp-main-box .box-row,.wpbdp-main-box .box-col{box-sizing:border-box}.wpbdp-main-box{background:#f7f7f7;margin:10px 0 20px 0;border-radius:4px;padding:10px;width:100%}.wpbdp-main-box .box-row{margin-bottom:4px}.wpbdp-main-box .box-col{margin-bottom:4px;width:100%}.wpbdp-main-box .box-col input{width:100%}.wpbdp-main-box .submit-btn input[type="submit"]{margin-top:0}.wpbdp-main-box .advanced-search-link{border:none;box-shadow:none;display:block;font-size:11px;text-align:right;text-decoration:none}.wpbdp-main-box-medium .box-col,.wpbdp-main-box-large .box-col{float:left}.wpbdp-main-box-medium .search-fields>.cols-1 .box-col,.wpbdp-main-box-large .search-fields>.cols-1 .box-col{width:100%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col,.wpbdp-main-box-large .search-fields>.cols-2 .box-col{width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:first-child{padding-right:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-2 .box-col:last-child,.wpbdp-main-box-large .search-fields>.cols-2 .box-col:last-child{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col,.wpbdp-main-box-large .search-fields>.cols-3 .box-col{padding-left:5px;width:50%}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding-right:5px}.wpbdp-main-box-medium .search-fields>.cols-3 .box-col:first-child,.wpbdp-main-box-large .search-fields>.cols-3 .box-col:first-child{padding:0;width:100%}.wpbdp-main-box-large .box-row{margin-bottom:0}.wpbdp-main-box-large .search-fields{padding-right:5px;width:78%}.wpbdp-main-box-large .submit-btn{padding-left:5px;width:22%}.wpbdp-main-links{text-align:right}.wpbdp-main-links .button{margin:0 5px;font-size:15px}.wpbdp-main-links .button:first-child{margin-left:0}.wpbdp-main-links .button:last-child{margin-right:0}.wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px;width:100%;margin:0 0 4px}.wpbdp-main-links-small .button{width:100%;margin:0 0 4px}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button{width:49%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:first-child{margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-2-buttons .button:last-child{margin-left:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n){width:49%;margin-top:1%;margin-right:1%}.wpbdp-main-links-small .wpbdp-main-links-3-buttons .button:nth-child(2n+3){width:49%;margin-top:1%;margin-left:1%}.wpbdp-main-links-large .button{margin:0 3px}.wpbdp-with-button-styles .wpbdp-main-links-tiny .wpbdp-main-links .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-small .button{padding-top:10px;padding-bottom:10px}.wpbdp-with-button-styles .wpbdp-main-links-medium .wpbdp-main-links .button{padding-top:8px;padding-bottom:8px}.single-wpbdp_listing .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_category .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-show_tag .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-search .wpbdp-view-content-wrapper header.entry-header,.wpbdp-view-submit_listing .wpbdp-view-content-wrapper header.entry-header{display:none}.wpbdp-wp-theme-graphene.single-wpbdp_listing h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_category h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-show_tag h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-search h1.post-title,.wpbdp-wp-theme-graphene.wpbdp-view-submit_listing h1.post-title{display:none}.wpbdp-wp-theme-genesis.wpbdp-view-show_category .archive-description,.wpbdp-wp-theme-genesis.wpbdp-view-show_tag .archive-description{display:none}.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_category .post-details,.wpbdp-wp-theme-hmtpro5.wpbdp-view-show_tag .post-details{display:none}.wpbdp-wp-theme-atahualpa.wpbdp-view-show_category .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_tag .post-footer,.wpbdp-wp-theme-atahualpa.wpbdp-view-show_listing .post-footer{display:none}.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_category .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_tag .entry-content .featured-image,.wpbdp-wp-theme-ultimate-silostorm-pro.wpbdp-view-show_listing .entry-content .featured-image{display:none}.wpbdp-plan-info-box{padding:10px;margin:0 0 6px 0;border:1px solid #d2d2d2;border-radius:2px;background:#fafafa}.wpbdp-plan-info-box .wpbdp-plan-duration,.wpbdp-plan-info-box .wpbdp-plan-details,.wpbdp-plan-info-box .wpbdp-plan-price{float:left;box-sizing:border-box}.wpbdp-plan-info-box .wpbdp-plan-duration{width:20%;text-align:center}.wpbdp-plan-info-box .wpbdp-plan-duration-never-expires{font-size:20px;font-weight:bold;display:block;line-height:1em;text-transform:uppercase;word-wrap:break-word}.wpbdp-plan-info-box .wpbdp-plan-duration-amount{font-size:30px;font-weight:bold;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-duration-period{font-size:22px;display:block;line-height:1em}.wpbdp-plan-info-box .wpbdp-plan-details{width:55%;padding:0 10px}.wpbdp-plan-info-box .wpbdp-plan-description{margin:0 0 10px 0}.wpbdp-plan-info-box .wpbdp-plan-label{font-size:1.1em;font-weight:bold;margin-bottom:10px}.wpbdp-plan-info-box .wpbdp-plan-feature-list{margin:0 0 0 10px}.wpbdp-plan-info-box .wpbdp-plan-details p{margin:0}.wpbdp-plan-info-box .wpbdp-plan-feature-list li{list-style-position:inside;margin:0}.wpbdp-plan-info-box .wpbdp-plan-price{width:25%}.wpbdp-plan-info-box .wpbdp-plan-price label{font-size:20px;border:1px solid #f3f3f3;background:#fdfdfd;border-radius:2px;display:block;padding:4px 8px}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label{cursor:pointer}.wpbdp-plan-info-box:not(.display-only) .wpbdp-plan-price label:hover{border-color:#d0d0d0;background:#fff}.wpbdp-plan-info-box .wpbdp-plan-price label input{margin:0 4px 0 0;vertical-align:2px}.wpbdp-plan-info-box .wpbdp-plan-disabled-msg{clear:both}.wpbdp-plan-info-box .wpbdp-plan-private-msg{width:100%;display:inline-block;text-align:right}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-price{width:100%}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-amount,.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-duration-period{display:inline}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-details{padding:0 0 4pt}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-label{font-size:1.5em;margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-tiny .wpbdp-plan-description{margin-bottom:5px}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-details{width:47%}.wpbdp-plan-selection-wrapper.wpbdp-size-small .wpbdp-plan-price{width:32%}.wpbdp-drag-handle{width:6px;height:10px;display:inline-block;background:url('../../assets/images/drag-handle.png') 0 0;cursor:move;float:left;margin:5px 5px 0 0;vertical-align:middle}.wpbdp-help-tip{margin:10px 0}.wpbdp-help-tip .dashicons{vertical-align:middle}.wpbdp-help-tip .message{display:inline-block}.wpbdp-help-tip.small{font-size:12px}.wpbdp-help-tip.small .dashicons{font-size:15px;width:15px;height:15px}.wpbdp-hidden{display:none}.wpbdp-form-field-association-category .wpbdp-form-field-checkbox-item.disabled,.wpbdp-form-field-association-category .wpbdp-form-field-radio-item.disabled{opacity:.65}.wpbdp-form-field-association-category select{width:100%}.wpbdp-form-field-association-category .select2{width:100%}.wpbdp-form-field-association-category .select2 .select2-selection{border-radius:0}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:normal;white-space:nowrap;vertical-align:baseline;border:none}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice .select2-selection__choice__remove{margin-right:5px}.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-selection__choice,.wpbdp-form-field-association-category .select2 ul.select2-selection__rendered li.select2-search--inline{margin:5px 5px 0 0}.wpbdp-form-field-association-category .select2 .select2-search .select2-search__field{font-size:11px}#wpbdp-listing-flagging-page textarea{width:90%;min-height:150px;margin-bottom:10px}.wpbdp-wp-theme-twentyseventeen .single-featured-image-header{display:none}.wpbdp-wp-theme-twentyseventeen .wpbdp-listing .social-fields .twitter.twitter-handle{vertical-align:text-top;padding-top:1px}.wpbdp-wp-theme-twentytwenty .wpbdp-main-links .wpbdp-button,.wpbdp-wp-theme-twentytwenty .box-col.submit-btn input,.wpbdp-wp-theme-twentytwenty .listing-actions{font-size:1.5rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing-excerpt{font-size:1.8rem}.wpbdp-wp-theme-twentytwenty .wpbdp-listing .social-fields.twitter.twitter-handle{padding-top:5px;vertical-align:text-top}
|
assets/js/admin-fees.js
CHANGED
@@ -84,7 +84,7 @@ jQuery(function($) {
|
|
84 |
'#limit-categories-list select'
|
85 |
).change( update_form_ui );
|
86 |
|
87 |
-
$( '#limit-categories-list select' ).
|
88 |
placeholder: $( '#limit-categories-list select' ).attr( 'placeholder' )
|
89 |
});
|
90 |
|
84 |
'#limit-categories-list select'
|
85 |
).change( update_form_ui );
|
86 |
|
87 |
+
$( '#limit-categories-list select' ).selectWoo({
|
88 |
placeholder: $( '#limit-categories-list select' ).attr( 'placeholder' )
|
89 |
});
|
90 |
|
assets/js/admin-fees.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function($){var $form=$("form#wpbdp-fee-form");if(0!=$form.length){var update_form_ui=function(event){var fee__days=$('input[name="_days"]:checked',$form).val(),$textfield=$('input[name="fee[days]"]',$form);0==fee__days?$textfield.prop("disabled",!0).val("0"):($textfield.prop("disabled",!1),event&&$("#wpbdp-fee-form-days",$form).is(event.target)&&$textfield.focus());var $pricing=$('input[name="fee[pricing_model]"]',$form),limit_categories="1"==$('select[name="limit_categories"]',$form).val(),pricing=$pricing.filter(":checked").val(),$category_chooser=$("#limit-categories-list",$form),selected_categories=[];if(limit_categories?($category_chooser.removeClass("hidden"),$("select",$category_chooser).length>0?(selected_categories=$("select",$category_chooser).val(),selected_categories||(selected_categories=[])):selected_categories=$("input:checked",$category_chooser).map(function(i,cb){return $(cb).val()}).get(),selected_categories.length>0?$pricing.filter('[value="variable"]').parent().show():($pricing.filter('[value="variable"]').parent().hide(),pricing=$pricing.val(["flat"]).val())):($category_chooser.addClass("hidden"),$pricing.filter('[value="variable"]').parent().show()),$(".fee-pricing-details").not(".pricing-details-"+pricing).addClass("hidden"),$(".fee-pricing-details.pricing-details-"+pricing,$form).removeClass("hidden"),"variable"==pricing){var $rows=$(".wpbdp-variable-pricing-configurator-row",$form);limit_categories?($rows.addClass("hidden"),$.each(selected_categories,function(i,val){$rows.filter('[data-term-id="'+val+'"]').removeClass("hidden")})):$rows.removeClass("hidden")}};update_form_ui(),$('input[name="fee[days]"]',$form).blur(function(){var val=parseInt($.trim($(this).val()),10);$(this).val(isNaN(val)?"0":Math.max(0,Math.round(val)))}),$('input[name="_days"],select[name="limit_categories"],input[name="fee[pricing_model]"],#limit-categories-list input[type="checkbox"],#limit-categories-list select').change(update_form_ui),$("#limit-categories-list select").
|
1 |
+
jQuery(function($){var $form=$("form#wpbdp-fee-form");if(0!=$form.length){var update_form_ui=function(event){var fee__days=$('input[name="_days"]:checked',$form).val(),$textfield=$('input[name="fee[days]"]',$form);0==fee__days?$textfield.prop("disabled",!0).val("0"):($textfield.prop("disabled",!1),event&&$("#wpbdp-fee-form-days",$form).is(event.target)&&$textfield.focus());var $pricing=$('input[name="fee[pricing_model]"]',$form),limit_categories="1"==$('select[name="limit_categories"]',$form).val(),pricing=$pricing.filter(":checked").val(),$category_chooser=$("#limit-categories-list",$form),selected_categories=[];if(limit_categories?($category_chooser.removeClass("hidden"),$("select",$category_chooser).length>0?(selected_categories=$("select",$category_chooser).val(),selected_categories||(selected_categories=[])):selected_categories=$("input:checked",$category_chooser).map(function(i,cb){return $(cb).val()}).get(),selected_categories.length>0?$pricing.filter('[value="variable"]').parent().show():($pricing.filter('[value="variable"]').parent().hide(),pricing=$pricing.val(["flat"]).val())):($category_chooser.addClass("hidden"),$pricing.filter('[value="variable"]').parent().show()),$(".fee-pricing-details").not(".pricing-details-"+pricing).addClass("hidden"),$(".fee-pricing-details.pricing-details-"+pricing,$form).removeClass("hidden"),"variable"==pricing){var $rows=$(".wpbdp-variable-pricing-configurator-row",$form);limit_categories?($rows.addClass("hidden"),$.each(selected_categories,function(i,val){$rows.filter('[data-term-id="'+val+'"]').removeClass("hidden")})):$rows.removeClass("hidden")}};update_form_ui(),$('input[name="fee[days]"]',$form).blur(function(){var val=parseInt($.trim($(this).val()),10);$(this).val(isNaN(val)?"0":Math.max(0,Math.round(val)))}),$('input[name="_days"],select[name="limit_categories"],input[name="fee[pricing_model]"],#limit-categories-list input[type="checkbox"],#limit-categories-list select').change(update_form_ui),$("#limit-categories-list select").selectWoo({placeholder:$("#limit-categories-list select").attr("placeholder")}),$form.submit(function(){return $('input[name="fee[days]"]',$form).prop("disabled",!1),!0});var $color_picker=$form.find("#fee-bgcolor-picker"),$color_picker_field=$color_picker.find("#fee-bgcolor-value");$color_picker_field.val()&&($color_picker_field.css("color",$color_picker_field.val()),$color_picker_field.css("background-color",$color_picker_field.val())),$color_picker_field.iris({mode:"hsl",hide:!1,width:200,palettes:!0,border:!1,target:"#fee-bgcolor-picker-iris",change:function(event,ui){$(this).css("color",ui.color.toString()),$(this).css("background-color",ui.color.toString())}}).focus(function(){$color_picker.find(".color-selection").show()}),$color_picker.find("a.iris-square-value").click(function(e){e.preventDefault(),$color_picker.find(".color-selection").hide()}),$("a.reset-btn",$color_picker).click(function(e){e.preventDefault(),$color_picker_field.val("").css("background-color","#ffffff"),$color_picker.find(".color-selection").hide()}),$("a.close-btn",$color_picker).click(function(e){e.preventDefault(),$color_picker.find(".color-selection").hide()})}});
|
assets/js/submit-listing.js
CHANGED
@@ -35,7 +35,7 @@ jQuery(function($) {
|
|
35 |
// Workaround for https://github.com/select2/select2/issues/3992.
|
36 |
var self = this;
|
37 |
setTimeout(function() {
|
38 |
-
self.field.
|
39 |
} );
|
40 |
}
|
41 |
|
@@ -66,8 +66,6 @@ jQuery(function($) {
|
|
66 |
this.field.change( $.proxy( this.categories_changed, this ) );
|
67 |
this.maybe_limit_category_options();
|
68 |
this.field.first().trigger('change');
|
69 |
-
|
70 |
-
// this.field.select2();
|
71 |
},
|
72 |
|
73 |
categories_changed: function() {
|
@@ -315,20 +313,6 @@ jQuery(function($) {
|
|
315 |
$options.prop( 'checked', $( this ).find( 'input' ).is(':checked') );
|
316 |
} );
|
317 |
|
318 |
-
// $submit.on( 'change', '.wpbdp-form-field-association-category .select2-selection ul', function ( e ) {
|
319 |
-
// if ( self.skip_plan_selection ) {
|
320 |
-
// var data = self.$form.serialize();
|
321 |
-
// data += '&action=wpbdp_ajax&handler=submit_listing__sections';
|
322 |
-
//
|
323 |
-
// self.ajax( data, function( res ) {
|
324 |
-
// self.refresh( res );
|
325 |
-
// $( 'html, body' ).delay(100).animate({
|
326 |
-
// scrollTop: self.$form.find('.wpbdp-submit-listing-section-plan_selection').offset().top
|
327 |
-
// }, 500);
|
328 |
-
// } );
|
329 |
-
// }
|
330 |
-
// } );
|
331 |
-
|
332 |
$( window ).trigger( 'wpbdp_submit_init' );
|
333 |
};
|
334 |
$.extend( wpbdp.submit_listing.Handler.prototype, {
|
35 |
// Workaround for https://github.com/select2/select2/issues/3992.
|
36 |
var self = this;
|
37 |
setTimeout(function() {
|
38 |
+
self.field.selectWoo({placeholder: wpbdpSubmitListingL10n.categoriesPlaceholderTxt});
|
39 |
} );
|
40 |
}
|
41 |
|
66 |
this.field.change( $.proxy( this.categories_changed, this ) );
|
67 |
this.maybe_limit_category_options();
|
68 |
this.field.first().trigger('change');
|
|
|
|
|
69 |
},
|
70 |
|
71 |
categories_changed: function() {
|
313 |
$options.prop( 'checked', $( this ).find( 'input' ).is(':checked') );
|
314 |
} );
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
$( window ).trigger( 'wpbdp_submit_init' );
|
317 |
};
|
318 |
$.extend( wpbdp.submit_listing.Handler.prototype, {
|
assets/js/submit-listing.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function($){var wpbdp=window.wpbdp||{};wpbdp.submit_listing=wpbdp.submit_listing||{},wpbdp.submit_listing.Fee_Selection_Helper=function($submit,editing){this.editing=!("undefined"==typeof editing||!editing),this.reset()},$.extend(wpbdp.submit_listing.Fee_Selection_Helper.prototype,{reset:function(){if(this.field_wrapper=$(".wpbdp-submit-listing-section-plan_selection .wpbdp-form-field-association-category"),this.field_type="",this.plan_autoselect=!1,$(".wpbdp-js-select2",this.field_wrapper).length>0?this.field_type="select2":this.field_wrapper.hasClass("wpbdp-form-field-type-checkbox")?this.field_type="checkbox":this.field_wrapper.hasClass("wpbdp-form-field-type-radio")&&(this.field_type="radio"),this.field=this.field_wrapper.find('select, input[type="checkbox"], input[type="radio"]'),this.field_type){if("select2"==this.field_type){this.field.find('option[disabled="disabled"]').data("keep_disabled",!0);var self=this;setTimeout(function(){self.field.select2({placeholder:wpbdpSubmitListingL10n.categoriesPlaceholderTxt})})}this.editing||(this.skip_plan_selection=1==$('input[type="hidden"][name="skip_plan_selection"][value="1"]').length,this.skip_plan_selection||(this.$plans_container=$(".wpbdp-plan-selection-wrapper"),this.$plan_selection=this.$plans_container.find(".wpbdp-plan-selection"),this.plans=this.$plan_selection.find(".wpbdp-plan"),this.$plan_selection.hide(),this.selected_categories=[],this.available_plans=this.plans.map(function(){return $(this).data("id")}).get(),this.field.change($.proxy(this.categories_changed,this)),this.maybe_limit_category_options(),this.field.first().trigger("change")))}},categories_changed:function(){this.selected_categories=[],"select2"===this.field_type?this.selected_categories=this.field.val():"checkbox"===this.field_type?this.selected_categories=this.field.filter(":checked").map(function(){return $(this).val()}).get():"radio"===this.field_type&&(this.selected_categories=this.field.filter(":checked").val()),this.selected_categories||(this.selected_categories=[]),$.isArray(this.selected_categories)||(this.selected_categories=[this.selected_categories]),this.selected_categories||(this.selected_categories=[]),this.selected_categories=$.map(this.selected_categories,function(x){return parseInt(x)}),this.update_plan_list(),this.update_plan_prices(),("checkbox"==this.field_type||this.field.is("[multiple]"))&&this.maybe_limit_category_options(),0==this.selected_categories.length?this.plans.find('input[name="listing_plan"]').prop({disabled:0==this.selected_categories.length,checked:!1}):this.plans.find('input[name="listing_plan"]').prop("disabled",!1);var self=this;this.selected_categories.length>0?(this.$plans_container.show(),Reusables.Breakpoints.evaluate(),this.$plan_selection.fadeIn("fast")):this.$plans_container.fadeOut("fast",function(){self.$plan_selection.hide()}),1===this.available_plans.length&&this.plan_autoselect&&$("#wpbdp-plan-select-radio-"+this.available_plans[0]).trigger("click"),this.plan_autoselect||"checkbox"===this.field_type||$(this.field_wrapper).hasClass("wpbdp-form-field-type-multiselect")||(this.plan_autoselect=!0)},_enable_categories:function(categories){return"none"!=categories&&"all"!=categories&&this._enable_categories("none"),"none"==categories||"all"==categories?void("select2"==this.field_type?this.field.find("option").each(function(i,v){!0===$(this).data("keep_disabled")||$(this).prop("disabled","all"!=categories)}):(this.field.prop("disabled","all"!=categories),"all"==categories?this.field_wrapper.find(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").removeClass("disabled"):this.field_wrapper.find(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").addClass("disabled"))):void("select2"==this.field_type?this.field.find("option").each(function(i,v){!0===$(this).data("keep_disabled")||$(this).prop("disabled",-1==$.inArray(parseInt($(this).val()),categories))}):this.field.each(function(i,v){-1!=$.inArray(parseInt($(this).val()),categories)&&($(this).prop("disabled",!1),$(this).parents().filter(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").removeClass("disabled"))}))},maybe_limit_category_options:function(){var all_cats=!1,cats=[],self=this;$.each(this.available_plans,function(i,v){if(!all_cats){var plan_cats=self.plans.filter('[data-id="'+v+'"]').data("categories");"all"==plan_cats?all_cats=!0:(cats=$.unique(cats.concat(plan_cats.toString().split(","))),cats=$.map(cats,function(x){return parseInt(x)}))}}),all_cats?this._enable_categories("all"):this._enable_categories(cats)},update_plan_list:function(){var self=this,plans=[];$.each(this.plans,function(i,v){var $plan=$(v),plan_cats=$plan.data("categories").toString(),plan_supports_selection=!0;"all"!=plan_cats&&self.selected_categories&&(plan_cats=$.map(plan_cats.split(","),function(x){return parseInt(x)}),$.each(self.selected_categories,function(j,c){plan_supports_selection&&-1==$.inArray(c,plan_cats)&&(plan_supports_selection=!1)})),plan_supports_selection?(plans.push($plan.data("id")),$plan.show()):$plan.hide()}),self.available_plans=plans},update_plan_prices:function(){var self=this;$.each(self.available_plans,function(i,plan_id){var $plan=self.plans.filter('[data-id="'+plan_id+'"]'),pricing=$plan.data("pricing-details"),price=null;switch($plan.data("pricing-model")){case"variable":price=0,$.each(self.selected_categories,function(j,cat_id){price+=parseFloat(pricing[cat_id])});break;case"extra":price=parseFloat($plan.data("amount"))+parseFloat(pricing.extra)*self.selected_categories.length;break;case"flat":default:price=parseFloat($plan.data("amount"))}$plan.find(".wpbdp-plan-price-amount").text(price?$plan.data("amount-format").replace("[amount]",price.toFixed(2)):$plan.data("free-text")),1===self.available_plans.length&&$plan.find("#wpbdp-plan-select-radio-"+plan_id).prop("checked",!0)})}}),wpbdp.submit_listing.Handler=function($submit){this.$submit=$submit,this.$form=this.$submit.find("form"),this.editing="1"==this.$form.find('input[name="editing"]').val(),this.$sections=this.$submit.find(".wpbdp-submit-listing-section"),this.skip_plan_selection=1==$('input[type="hidden"][name="skip_plan_selection"][value="1"]').length,this.listing_id=this.$form.find('input[name="listing_id"]').val(),this.ajax_url=this.$form.attr("data-ajax-url"),this.doing_ajax=!1,this.setup_section_headers(),this.plan_handling();var self=this;this.$form.on("click",":reset",function(e){e.preventDefault(),self.$form.find('input[name="save_listing"]').val(""),self.$form.find('input[name="reset"]').val("reset"),self.$form.submit()}),$(window).on("wpbdp_submit_refresh",function(event,submit,section_id){self.fee_helper.reset()}),$("#wpbdp-submit-listing").on("change","#wpbdp-submit-listing-create_account",function(e){$("#wpbdp-submit-listing-account-details").toggle()}),$("#wpbdp-submit-listing").on("keyup",'#wpbdp-submit-listing-account-details input[type="password"]',function(e){self.check_password_strength($(this))}),$("#wpbdp-submit-listing").on("click",".wpbdp-inner-field-option-select_all",function(e){var $options=$(this).parent().find('input[type="checkbox"]');$options.prop("checked",$(this).find("input").is(":checked"))}),$(window).trigger("wpbdp_submit_init")},$.extend(wpbdp.submit_listing.Handler.prototype,{ajax:function(data,callback){if(this.doing_ajax)return void alert(wpbdpSubmitListingL10n.waitAMoment);this.doing_ajax=!0;var self=this;$.post(this.ajax_url,data,function(res){return res.success?(self.doing_ajax=!1,void callback.call(self,res.data)):void alert(wpbdpSubmitListingL10n.somethingWentWrong)},"json")},setup_section_headers:function(){this.$sections.find(".wpbdp-submit-listing-section-header").click(function(){var $section=$(this).parent(".wpbdp-submit-listing-section");$section.toggleClass("collapsed")})},plan_handling:function(){if(this.fee_helper=new wpbdp.submit_listing.Fee_Selection_Helper(this.$submit,this.editing),this.editing){var $plan=this.$form.find(this.skip_plan_selection?".wpbdp-plan-selection .wpbdp-plan":".wpbdp-current-plan .wpbdp-plan"),plan_cats=$plan.length?$plan.data("categories").toString():"";if("all"!=plan_cats){var supported_categories=$.map($.unique(plan_cats.split(",")),function(x){return parseInt(x)});this.fee_helper._enable_categories(supported_categories)}}else{var self=this;this.$submit.on("change, click",'input[name="listing_plan"], input[name="continue-to-fields"]',function(e){if(e.preventDefault(),1==$(this).parents(".wpbdp-plan").attr("data-disabled"))return!1;var data=self.$form.serialize();data+="&action=wpbdp_ajax&handler=submit_listing__sections",self.ajax(data,function(res){self.refresh(res),$("html, body").delay(100).animate({scrollTop:self.$form.find(".wpbdp-submit-listing-section-plan_selection").offset().top},500)})}),this.$submit.on("click","#change-plan-link a",function(e){e.preventDefault();var data=self.$form.serialize();data+="&action=wpbdp_ajax&handler=submit_listing__reset_plan",self.ajax(data,function(res){self.refresh(res)})})}},refresh:function(data){var sections=data.sections,current_sections=(data.messages,this.$form.find(".wpbdp-submit-listing-section")),new_sections=sections,self=this;$.each(new_sections,function(section_id,section_details){var $section=current_sections.filter('[data-section-id="'+section_id+'"]'),$new_html=$(section_details.html);$section.find(".wpbdp-editor-area").each(function(){wp.editor.remove($(this).attr("id"))}),$section.attr("class",$new_html.attr("class")),$section.find(".wpbdp-submit-listing-section-content").fadeOut("fast",function(){var $new_content=$new_html.find(".wpbdp-submit-listing-section-content");$(this).replaceWith($new_content),Reusables.Breakpoints.scan($new_content),$section.find(".wpbdp-editor-area").each(function(){var id=$(this).attr("id");wp.editor.initialize(id,WPBDPTinyMCESettings[id])}),$(window).trigger("wpbdp_submit_refresh",[self,section_id,$section])})})},check_password_strength:function($input){var pass=$input.val(),$result=$input.siblings(".wpbdp-password-strength-meter");if($result.removeClass("strength-0 strength-2 strength-3 strength-4").html(""),pass){var strength=wp.passwordStrength.meter(pass,wp.passwordStrength.userInputBlacklist(),""),strength_msg="";switch(strength){case 2:strength_msg=pwsL10n.bad;break;case 3:strength_msg=pwsL10n.good;break;case 4:strength_msg=pwsL10n.strong;break;case 5:strength_msg=pwsL10n.mismatch;break;default:strength_msg=pwsL10n["short"]}$result.addClass("strength-"+(strength<5&&strength>=2?strength:"0")),$result.html(strength_msg)}}});var $submit=$("#wpbdp-submit-listing");if($(window).on("wpbdp_submit_init",function(){$submit.find(".wpbdp-editor-area").each(function(){var id=$(this).attr("id");wp.editor.initialize(id,WPBDPTinyMCESettings[id])})}),$submit.length>0){new wpbdp.submit_listing.Handler($submit)}});
|
1 |
+
jQuery(function($){var wpbdp=window.wpbdp||{};wpbdp.submit_listing=wpbdp.submit_listing||{},wpbdp.submit_listing.Fee_Selection_Helper=function($submit,editing){this.editing=!("undefined"==typeof editing||!editing),this.reset()},$.extend(wpbdp.submit_listing.Fee_Selection_Helper.prototype,{reset:function(){if(this.field_wrapper=$(".wpbdp-submit-listing-section-plan_selection .wpbdp-form-field-association-category"),this.field_type="",this.plan_autoselect=!1,$(".wpbdp-js-select2",this.field_wrapper).length>0?this.field_type="select2":this.field_wrapper.hasClass("wpbdp-form-field-type-checkbox")?this.field_type="checkbox":this.field_wrapper.hasClass("wpbdp-form-field-type-radio")&&(this.field_type="radio"),this.field=this.field_wrapper.find('select, input[type="checkbox"], input[type="radio"]'),this.field_type){if("select2"==this.field_type){this.field.find('option[disabled="disabled"]').data("keep_disabled",!0);var self=this;setTimeout(function(){self.field.selectWoo({placeholder:wpbdpSubmitListingL10n.categoriesPlaceholderTxt})})}this.editing||(this.skip_plan_selection=1==$('input[type="hidden"][name="skip_plan_selection"][value="1"]').length,this.skip_plan_selection||(this.$plans_container=$(".wpbdp-plan-selection-wrapper"),this.$plan_selection=this.$plans_container.find(".wpbdp-plan-selection"),this.plans=this.$plan_selection.find(".wpbdp-plan"),this.$plan_selection.hide(),this.selected_categories=[],this.available_plans=this.plans.map(function(){return $(this).data("id")}).get(),this.field.change($.proxy(this.categories_changed,this)),this.maybe_limit_category_options(),this.field.first().trigger("change")))}},categories_changed:function(){this.selected_categories=[],"select2"===this.field_type?this.selected_categories=this.field.val():"checkbox"===this.field_type?this.selected_categories=this.field.filter(":checked").map(function(){return $(this).val()}).get():"radio"===this.field_type&&(this.selected_categories=this.field.filter(":checked").val()),this.selected_categories||(this.selected_categories=[]),$.isArray(this.selected_categories)||(this.selected_categories=[this.selected_categories]),this.selected_categories||(this.selected_categories=[]),this.selected_categories=$.map(this.selected_categories,function(x){return parseInt(x)}),this.update_plan_list(),this.update_plan_prices(),("checkbox"==this.field_type||this.field.is("[multiple]"))&&this.maybe_limit_category_options(),0==this.selected_categories.length?this.plans.find('input[name="listing_plan"]').prop({disabled:0==this.selected_categories.length,checked:!1}):this.plans.find('input[name="listing_plan"]').prop("disabled",!1);var self=this;this.selected_categories.length>0?(this.$plans_container.show(),Reusables.Breakpoints.evaluate(),this.$plan_selection.fadeIn("fast")):this.$plans_container.fadeOut("fast",function(){self.$plan_selection.hide()}),1===this.available_plans.length&&this.plan_autoselect&&$("#wpbdp-plan-select-radio-"+this.available_plans[0]).trigger("click"),this.plan_autoselect||"checkbox"===this.field_type||$(this.field_wrapper).hasClass("wpbdp-form-field-type-multiselect")||(this.plan_autoselect=!0)},_enable_categories:function(categories){return"none"!=categories&&"all"!=categories&&this._enable_categories("none"),"none"==categories||"all"==categories?void("select2"==this.field_type?this.field.find("option").each(function(i,v){!0===$(this).data("keep_disabled")||$(this).prop("disabled","all"!=categories)}):(this.field.prop("disabled","all"!=categories),"all"==categories?this.field_wrapper.find(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").removeClass("disabled"):this.field_wrapper.find(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").addClass("disabled"))):void("select2"==this.field_type?this.field.find("option").each(function(i,v){!0===$(this).data("keep_disabled")||$(this).prop("disabled",-1==$.inArray(parseInt($(this).val()),categories))}):this.field.each(function(i,v){-1!=$.inArray(parseInt($(this).val()),categories)&&($(this).prop("disabled",!1),$(this).parents().filter(".wpbdp-form-field-checkbox-item, .wpbdp-form-field-radio-item").removeClass("disabled"))}))},maybe_limit_category_options:function(){var all_cats=!1,cats=[],self=this;$.each(this.available_plans,function(i,v){if(!all_cats){var plan_cats=self.plans.filter('[data-id="'+v+'"]').data("categories");"all"==plan_cats?all_cats=!0:(cats=$.unique(cats.concat(plan_cats.toString().split(","))),cats=$.map(cats,function(x){return parseInt(x)}))}}),all_cats?this._enable_categories("all"):this._enable_categories(cats)},update_plan_list:function(){var self=this,plans=[];$.each(this.plans,function(i,v){var $plan=$(v),plan_cats=$plan.data("categories").toString(),plan_supports_selection=!0;"all"!=plan_cats&&self.selected_categories&&(plan_cats=$.map(plan_cats.split(","),function(x){return parseInt(x)}),$.each(self.selected_categories,function(j,c){plan_supports_selection&&-1==$.inArray(c,plan_cats)&&(plan_supports_selection=!1)})),plan_supports_selection?(plans.push($plan.data("id")),$plan.show()):$plan.hide()}),self.available_plans=plans},update_plan_prices:function(){var self=this;$.each(self.available_plans,function(i,plan_id){var $plan=self.plans.filter('[data-id="'+plan_id+'"]'),pricing=$plan.data("pricing-details"),price=null;switch($plan.data("pricing-model")){case"variable":price=0,$.each(self.selected_categories,function(j,cat_id){price+=parseFloat(pricing[cat_id])});break;case"extra":price=parseFloat($plan.data("amount"))+parseFloat(pricing.extra)*self.selected_categories.length;break;case"flat":default:price=parseFloat($plan.data("amount"))}$plan.find(".wpbdp-plan-price-amount").text(price?$plan.data("amount-format").replace("[amount]",price.toFixed(2)):$plan.data("free-text")),1===self.available_plans.length&&$plan.find("#wpbdp-plan-select-radio-"+plan_id).prop("checked",!0)})}}),wpbdp.submit_listing.Handler=function($submit){this.$submit=$submit,this.$form=this.$submit.find("form"),this.editing="1"==this.$form.find('input[name="editing"]').val(),this.$sections=this.$submit.find(".wpbdp-submit-listing-section"),this.skip_plan_selection=1==$('input[type="hidden"][name="skip_plan_selection"][value="1"]').length,this.listing_id=this.$form.find('input[name="listing_id"]').val(),this.ajax_url=this.$form.attr("data-ajax-url"),this.doing_ajax=!1,this.setup_section_headers(),this.plan_handling();var self=this;this.$form.on("click",":reset",function(e){e.preventDefault(),self.$form.find('input[name="save_listing"]').val(""),self.$form.find('input[name="reset"]').val("reset"),self.$form.submit()}),$(window).on("wpbdp_submit_refresh",function(event,submit,section_id){self.fee_helper.reset()}),$("#wpbdp-submit-listing").on("change","#wpbdp-submit-listing-create_account",function(e){$("#wpbdp-submit-listing-account-details").toggle()}),$("#wpbdp-submit-listing").on("keyup",'#wpbdp-submit-listing-account-details input[type="password"]',function(e){self.check_password_strength($(this))}),$("#wpbdp-submit-listing").on("click",".wpbdp-inner-field-option-select_all",function(e){var $options=$(this).parent().find('input[type="checkbox"]');$options.prop("checked",$(this).find("input").is(":checked"))}),$(window).trigger("wpbdp_submit_init")},$.extend(wpbdp.submit_listing.Handler.prototype,{ajax:function(data,callback){if(this.doing_ajax)return void alert(wpbdpSubmitListingL10n.waitAMoment);this.doing_ajax=!0;var self=this;$.post(this.ajax_url,data,function(res){return res.success?(self.doing_ajax=!1,void callback.call(self,res.data)):void alert(wpbdpSubmitListingL10n.somethingWentWrong)},"json")},setup_section_headers:function(){this.$sections.find(".wpbdp-submit-listing-section-header").click(function(){var $section=$(this).parent(".wpbdp-submit-listing-section");$section.toggleClass("collapsed")})},plan_handling:function(){if(this.fee_helper=new wpbdp.submit_listing.Fee_Selection_Helper(this.$submit,this.editing),this.editing){var $plan=this.$form.find(this.skip_plan_selection?".wpbdp-plan-selection .wpbdp-plan":".wpbdp-current-plan .wpbdp-plan"),plan_cats=$plan.length?$plan.data("categories").toString():"";if("all"!=plan_cats){var supported_categories=$.map($.unique(plan_cats.split(",")),function(x){return parseInt(x)});this.fee_helper._enable_categories(supported_categories)}}else{var self=this;this.$submit.on("change, click",'input[name="listing_plan"], input[name="continue-to-fields"]',function(e){if(e.preventDefault(),1==$(this).parents(".wpbdp-plan").attr("data-disabled"))return!1;var data=self.$form.serialize();data+="&action=wpbdp_ajax&handler=submit_listing__sections",self.ajax(data,function(res){self.refresh(res),$("html, body").delay(100).animate({scrollTop:self.$form.find(".wpbdp-submit-listing-section-plan_selection").offset().top},500)})}),this.$submit.on("click","#change-plan-link a",function(e){e.preventDefault();var data=self.$form.serialize();data+="&action=wpbdp_ajax&handler=submit_listing__reset_plan",self.ajax(data,function(res){self.refresh(res)})})}},refresh:function(data){var sections=data.sections,current_sections=(data.messages,this.$form.find(".wpbdp-submit-listing-section")),new_sections=sections,self=this;$.each(new_sections,function(section_id,section_details){var $section=current_sections.filter('[data-section-id="'+section_id+'"]'),$new_html=$(section_details.html);$section.find(".wpbdp-editor-area").each(function(){wp.editor.remove($(this).attr("id"))}),$section.attr("class",$new_html.attr("class")),$section.find(".wpbdp-submit-listing-section-content").fadeOut("fast",function(){var $new_content=$new_html.find(".wpbdp-submit-listing-section-content");$(this).replaceWith($new_content),Reusables.Breakpoints.scan($new_content),$section.find(".wpbdp-editor-area").each(function(){var id=$(this).attr("id");wp.editor.initialize(id,WPBDPTinyMCESettings[id])}),$(window).trigger("wpbdp_submit_refresh",[self,section_id,$section])})})},check_password_strength:function($input){var pass=$input.val(),$result=$input.siblings(".wpbdp-password-strength-meter");if($result.removeClass("strength-0 strength-2 strength-3 strength-4").html(""),pass){var strength=wp.passwordStrength.meter(pass,wp.passwordStrength.userInputBlacklist(),""),strength_msg="";switch(strength){case 2:strength_msg=pwsL10n.bad;break;case 3:strength_msg=pwsL10n.good;break;case 4:strength_msg=pwsL10n.strong;break;case 5:strength_msg=pwsL10n.mismatch;break;default:strength_msg=pwsL10n["short"]}$result.addClass("strength-"+(strength<5&&strength>=2?strength:"0")),$result.html(strength_msg)}}});var $submit=$("#wpbdp-submit-listing");if($(window).on("wpbdp_submit_init",function(){$submit.find(".wpbdp-editor-area").each(function(){var id=$(this).attr("id");wp.editor.initialize(id,WPBDPTinyMCESettings[id])})}),$submit.length>0){new wpbdp.submit_listing.Handler($submit)}});
|
assets/js/wpbdp.js
CHANGED
@@ -12,7 +12,7 @@ jQuery(function( $ ) {
|
|
12 |
|
13 |
jQuery(document).ready(function($){
|
14 |
if ( $( '.wpbdp-js-select2' ).length > 0 ) {
|
15 |
-
$( '.wpbdp-js-select2' ).
|
16 |
}
|
17 |
|
18 |
|
12 |
|
13 |
jQuery(document).ready(function($){
|
14 |
if ( $( '.wpbdp-js-select2' ).length > 0 ) {
|
15 |
+
$( '.wpbdp-js-select2' ).selectWoo();
|
16 |
}
|
17 |
|
18 |
|
assets/js/wpbdp.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
"undefined"==typeof window.WPBDP&&(window.WPBDP={}),"undefined"==typeof window.wpbdp&&(window.wpbdp={}),jQuery(function($){$(".wpbdp-no-js").hide()}),jQuery(document).ready(function($){$(".wpbdp-js-select2").length>0&&$(".wpbdp-js-select2").
|
1 |
+
"undefined"==typeof window.WPBDP&&(window.WPBDP={}),"undefined"==typeof window.wpbdp&&(window.wpbdp={}),jQuery(function($){$(".wpbdp-no-js").hide()}),jQuery(document).ready(function($){$(".wpbdp-js-select2").length>0&&$(".wpbdp-js-select2").selectWoo(),wpbdp.main_box={init:function(){return},sum_width:function($selector,prop){var prop="undefined"==typeof prop?"width":prop,sum=0;return $selector.each(function(){var w=0;w="initial"==prop?$(this).data("initial-width"):"outer"==prop?$(this).outerWidth():"inner"==prop?$(this).innerWidth():$(this).width(),sum+=parseInt(w)}),sum},min_width:function(){return this.sum_width(this.$cols_fixed,"initial")},should_resize:function(){return this.$box.find("form").width()>this.min_width()},resize:function(){if(this.should_resize()){var available_width=this.$box.find("form").innerWidth()-this.min_width(),flex_width=Math.floor(available_width/this.$cols_expanding.length)-2;this.$cols_expanding.each(function(){$(this).outerWidth(flex_width)})}}},$("#wpbdp-main-box").length>0&&wpbdp.main_box.init(),0==$(".wpbdp-bar").children().length&&""==$.trim($(".wpbdp-bar").text())&&$(".wpbdp-bar").remove(),$(".wpbdp-listing-contact-form .send-message-button").click(function(){$(".wpbdp-listing-contact-form .contact-form-wrapper").toggle()}),$(".wpbdp-listings-sort-options.wpbdp-show-on-mobile select").change(function(e){var selected=$(this).val();location.href=selected})}),jQuery(function($){var form_fields={init:function(){var t=this;$(".wpbdp-form-field-type-date").each(function(i,v){t.configure_date_picker($(v).find("input"))}),$(window).on("wpbdp_submit_refresh",function(event,submit,section_id){"listing_fields"==section_id&&t.init()})},configure_date_picker:function($e){$e.datepicker({dateFormat:$e.attr("data-date-format"),defaultDate:$e.val()})}};form_fields.init()}),WPBDP.fileUpload={resizeIFrame:function(element_id,height){var iframe=jQuery("#wpbdp-upload-iframe-"+element_id)[0],iframeWin=iframe.contentWindow||iframe.contentDocument.parentWindow;iframeWin.document.body&&(iframe.height=height?height:iframeWin.document.documentElement.scrollHeight||iframeWin.document.body.scrollHeight),0!==jQuery(iframe).parents(".wpbdp-social-type-field").length&&(jQuery(iframe).parent().siblings(".wpbdp-inner-social-field-option-Other").find("input").is(":checked")||jQuery(iframe).parent().hide())},handleUpload:function(o){var $input=jQuery(o),$form=$input.parent("form");$form.submit()},finishUpload:function(element_id,upload_id,element){var $iframe=jQuery("#wpbdp-upload-iframe-"+element_id),$input=jQuery('input[name="'+element+'"]');$input.val(upload_id);var $preview=$input.siblings(".preview");$preview.find("img").remove(),$preview.prepend($iframe.contents().find(".preview").html()),$iframe.contents().find(".preview").remove(),$iframe.hide(),$preview.show()},deleteUpload:function(element_id,element){var $iframe=jQuery("#wpbdp-upload-iframe-"+element_id),$input=jQuery('input[name="'+element+'"]'),$preview=$input.siblings(".preview");return $input.val(""),$preview.find("img").remove(),$preview.find("input").val(""),$preview.hide(),$iframe.show(),!1}},function($){var sb=wpbdp.listingSubmit={init:function(){$(".wpbdp-submit-listing-section-listing_images").length>0&&sb.images.init()},init_events:function(){$("#wpbdp-submit-listing").on("click",".wpbdp-inner-field-option-select_all",function(e){var $options=$(this).parent().find('input[type="checkbox"]');$options.prop("checked",$(this).find("input").is(":checked"))}),$("#wpbdp-submit-listing").on("click",".wpbdp-inner-social-field-option input",function(e){var $icon_element=$(this).parents(".wpbdp-inner-social-field-option").siblings(".wpbdp-upload-widget");return console.log($icon_element),"Other"!==$(this).val()?void $icon_element.hide():void $icon_element.show()})}};sb.images=wpbdp.listingSubmit.images={_initialized:!1,_admin_nonce:"",_slots:0,_slotsRemaining:0,_working:!1,init:function(){this._initialized=!0,this._admin_nonce=$("#image-upload-dnd-area").attr("data-admin-nonce");var t=this;this._admin_nonce||(sb.images._slots=parseInt($("#image-slots-total").text()),sb.images._slotsRemaining=parseInt($("#image-slots-remaining").text())),$("#wpbdp-uploaded-images").on("click",".wpbdp-image-delete-link","click",function(e){e.preventDefault();var url=$(this).attr("href");$.post(url,{},function(res){res.success&&$('#wpbdp-uploaded-images .wpbdp-image[data-imageid="'+res.data.imageId+'"]').fadeOut(function(){if($(this).remove(),1==$("#wpbdp-uploaded-images .wpbdp-image").length&&$('#wpbdp-uploaded-images .wpbdp-image:first input[name="thumbnail_id"] ').attr("checked","checked"),t._admin_nonce||(t._slotsRemaining++,$("#image-slots-remaining").text(t._slotsRemaining)),(t._admin_nonce&&0==$("#wpbdp-uploaded-images .wpbdp-image").length||!t._admin_nonce&&t._slotsRemaining==t._slots)&&$("#no-images-message").show(),(t._admin_nonce||t._slotsRemaining>0)&&($("#image-upload-dnd-area .dnd-area-inside").show(),$("#noslots-message").hide(),$("#image-upload-dnd-area").removeClass("error"),$("#image-upload-dnd-area .dnd-area-inside-error").hide()),$("#wpbdp-listing-fields.postbox").length>0){var $with_count=$(".wpbdp-admin-tab-nav li a .with-image-count"),$no_count=$(".wpbdp-admin-tab-nav li a .no-image-count"),n=$("#wpbdp-uploaded-images .wpbdp-image").length;n?($no_count.addClass("hidden"),$with_count.removeClass("hidden").find("span").text(n)):($with_count.addClass("hidden"),$no_count.removeClass("hidden"))}})},"json")}),wpbdp.dnd.setup($("#image-upload-dnd-area"),{init:function(){t._admin_nonce||t._slotsRemaining>0||($("#image-upload-dnd-area .dnd-area-inside").hide(),$("#noslots-message").show(),$("#image-upload-dnd-area").addClass("error"),$("#image-upload-dnd-area .dnd-area-inside-error").show())},validate:function(data){return!!t._admin_nonce||($(this).siblings(".wpbdp-msg").remove(),!0)},done:function(res){var uploadErrors=!1;if(uploadErrors=res.success?"undefined"!=typeof res.data.uploadErrors&&res.data.uploadErrors:[res.error]){var errorMsg=$("<div>").addClass("wpbdp-msg error").html(uploadErrors);return void $(".area-and-conditions").prepend(errorMsg)}if($("#no-images-message").hide(),$("#wpbdp-uploaded-images").append(res.data.html),1==$("#wpbdp-uploaded-images .wpbdp-image").length&&$('#wpbdp-uploaded-images .wpbdp-image:first input[name="thumbnail_id"] ').attr("checked","checked"),t._admin_nonce||(t._slotsRemaining-=res.data.attachmentIds.length,$("#image-slots-remaining").text(t._slotsRemaining),0==t._slotsRemaining&&($("#image-upload-dnd-area .dnd-area-inside").hide(),$("#noslots-message").show(),$("#image-upload-dnd-area").addClass("error"),$("#image-upload-dnd-area .dnd-area-inside").hide(),$("#image-upload-dnd-area .dnd-area-inside-error").show())),$("#wpbdp-listing-fields.postbox").length>0){var $with_count=$(".wpbdp-admin-tab-nav li a .with-image-count"),$no_count=$(".wpbdp-admin-tab-nav li a .no-image-count"),n=$("#wpbdp-uploaded-images .wpbdp-image").length;n?($no_count.addClass("hidden"),$with_count.removeClass("hidden").find("span").text(n)):($with_count.addClass("hidden"),$no_count.removeClass("hidden"))}}}),$("#wpbdp-uploaded-images").sortable({axis:"y",cursor:"move",opacity:.9,update:function(ev,ui){var sorted=$(this).sortable("toArray",{attribute:"data-imageid"}),no_images=sorted.length;$.each(sorted,function(i,v){$('input[name="images_meta['+v+'][order]"]').val(no_images-i)})}})}};$(document).ready(function(){0!=$("#wpbdp-submit-listing").length&&(sb.init_events(),0!=$(".wpbdp-submit-page").length&&sb.init())})}(jQuery);
|
business-directory-plugin.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Business Directory Plugin
|
4 |
* Plugin URI: https://www.businessdirectoryplugin.com
|
5 |
* Description: Provides the ability to maintain a free or paid business directory on your WordPress powered site.
|
6 |
-
* Version: 5.
|
7 |
* Author: D. Rodenbaugh
|
8 |
* Author URI: https://businessdirectoryplugin.com
|
9 |
* Text Domain: WPBDM
|
3 |
* Plugin Name: Business Directory Plugin
|
4 |
* Plugin URI: https://www.businessdirectoryplugin.com
|
5 |
* Description: Provides the ability to maintain a free or paid business directory on your WordPress powered site.
|
6 |
+
* Version: 5.6
|
7 |
* Author: D. Rodenbaugh
|
8 |
* Author URI: https://businessdirectoryplugin.com
|
9 |
* Text Domain: WPBDM
|
includes/admin/class-admin-listings.php
CHANGED
@@ -29,8 +29,11 @@ class WPBDP_Admin_Listings {
|
|
29 |
add_action( 'admin_footer', array( $this, '_fix_new_links' ) );
|
30 |
|
31 |
add_action( 'wpbdp_save_listing', array( $this, 'maybe_save_fields' ) );
|
|
|
32 |
add_action( 'wpbdp_save_listing', array( $this, 'maybe_update_plan' ) );
|
33 |
|
|
|
|
|
34 |
// Filter by category.
|
35 |
add_action( 'restrict_manage_posts', array( &$this, '_add_category_filter' ) );
|
36 |
add_action( 'parse_query', array( &$this, '_apply_category_filter' ) );
|
@@ -516,6 +519,28 @@ class WPBDP_Admin_Listings {
|
|
516 |
}
|
517 |
}
|
518 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
/**
|
520 |
* @since 5.0
|
521 |
*/
|
29 |
add_action( 'admin_footer', array( $this, '_fix_new_links' ) );
|
30 |
|
31 |
add_action( 'wpbdp_save_listing', array( $this, 'maybe_save_fields' ) );
|
32 |
+
add_action( 'wpbdp_save_listing', array( $this, 'maybe_restore_listing_slug' ) );
|
33 |
add_action( 'wpbdp_save_listing', array( $this, 'maybe_update_plan' ) );
|
34 |
|
35 |
+
add_filter( 'get_sample_permalink_html', array( $this, 'maybe_hide_permalinks' ), 10, 5);
|
36 |
+
|
37 |
// Filter by category.
|
38 |
add_action( 'restrict_manage_posts', array( &$this, '_add_category_filter' ) );
|
39 |
add_action( 'parse_query', array( &$this, '_apply_category_filter' ) );
|
519 |
}
|
520 |
}
|
521 |
|
522 |
+
public function maybe_restore_listing_slug( $post_id ) {
|
523 |
+
$post_name = $post_name = get_post_meta( $post_id, '_wpbdp[name]', true );
|
524 |
+
|
525 |
+
if ( ! $post_name || $post_name === get_post_field( 'post_name', $post_id ) ) {
|
526 |
+
return;
|
527 |
+
}
|
528 |
+
|
529 |
+
wp_update_post( array( 'post_name' => $post_name, 'ID' => $post_id ) );
|
530 |
+
}
|
531 |
+
|
532 |
+
function maybe_hide_permalinks( $return, $post_id, $new_title, $new_slug, $post ) {
|
533 |
+
if( WPBDP_POST_TYPE === $post->post_type ) {
|
534 |
+
// $return .= sprintf(
|
535 |
+
// '<div class="wpbdp_allow_slug_edit hidden"><label for="wpbdp_allow_slug_edit_input"><input id="wpbdp_allow_slug_edit_input" type="checkbox" name="edit_listing_slug" value="1" /> %s</label></div>',
|
536 |
+
// __( 'Allow listing slug edition', 'WPBDM' )
|
537 |
+
// );
|
538 |
+
return '';
|
539 |
+
}
|
540 |
+
|
541 |
+
return $return;
|
542 |
+
}
|
543 |
+
|
544 |
/**
|
545 |
* @since 5.0
|
546 |
*/
|
includes/admin/class-csv-import.php
CHANGED
@@ -56,6 +56,7 @@ class WPBDP_CSV_Import {
|
|
56 |
'assign-listings-to-user' => true,
|
57 |
'default-user' => '0',
|
58 |
'post-status' => 'publish',
|
|
|
59 |
'disable-email-notifications' => true,
|
60 |
'append-images' => true,
|
61 |
|
@@ -569,7 +570,15 @@ class WPBDP_CSV_Import {
|
|
569 |
$listing_data = (array) $state;
|
570 |
$listing_data['listing_id'] = $listing_id;
|
571 |
$listing_data['append_images'] = $this->settings['append-images'];
|
572 |
-
$listing_data['post_status'] = $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
573 |
|
574 |
if ( ! empty( $data['plan_id'] ) ) {
|
575 |
$listing_data['plan_id'] = $data['plan_id'];
|
@@ -788,7 +797,7 @@ class WPBDP_CSV_Import {
|
|
788 |
$fields[ $field->get_id() ] = $tags;
|
789 |
}*/ else {
|
790 |
$fields[ $field->get_id() ] = $field->convert_csv_input( $value, $this->settings );
|
791 |
-
}
|
792 |
|
793 |
break;
|
794 |
}
|
56 |
'assign-listings-to-user' => true,
|
57 |
'default-user' => '0',
|
58 |
'post-status' => 'publish',
|
59 |
+
'existing-post-status' => 'preserve_status',
|
60 |
'disable-email-notifications' => true,
|
61 |
'append-images' => true,
|
62 |
|
570 |
$listing_data = (array) $state;
|
571 |
$listing_data['listing_id'] = $listing_id;
|
572 |
$listing_data['append_images'] = $this->settings['append-images'];
|
573 |
+
$listing_data['post_status'] = $this->settings['post-status'];
|
574 |
+
|
575 |
+
if ( $listing_id ) {
|
576 |
+
$listing_data['post_status'] = $this->settings['existing-post-status'];
|
577 |
+
|
578 |
+
if ( 'preserve_status' === $this->settings['existing-post-status'] ) {
|
579 |
+
$listing_data['post_status'] = get_post_status( $listing_id );
|
580 |
+
}
|
581 |
+
}
|
582 |
|
583 |
if ( ! empty( $data['plan_id'] ) ) {
|
584 |
$listing_data['plan_id'] = $data['plan_id'];
|
797 |
$fields[ $field->get_id() ] = $tags;
|
798 |
}*/ else {
|
799 |
$fields[ $field->get_id() ] = $field->convert_csv_input( $value, $this->settings );
|
800 |
+
}
|
801 |
|
802 |
break;
|
803 |
}
|
includes/class-assets.php
CHANGED
@@ -32,16 +32,16 @@ class WPBDP__Assets {
|
|
32 |
public function register_common_scripts() {
|
33 |
wp_register_script(
|
34 |
'jquery-file-upload-iframe-transport',
|
35 |
-
WPBDP_URL . 'vendors/jQuery-File-Upload
|
36 |
array(),
|
37 |
-
'
|
38 |
);
|
39 |
|
40 |
wp_register_script(
|
41 |
'jquery-file-upload',
|
42 |
-
WPBDP_URL . 'vendors/jQuery-File-Upload
|
43 |
array( 'jquery', 'jquery-ui-widget', 'jquery-file-upload-iframe-transport' ),
|
44 |
-
'
|
45 |
);
|
46 |
|
47 |
$this->maybe_register_script(
|
@@ -74,17 +74,17 @@ class WPBDP__Assets {
|
|
74 |
WPBDP_VERSION
|
75 |
);
|
76 |
|
77 |
-
// Select2.
|
78 |
wp_register_style(
|
79 |
'wpbdp-js-select2-css',
|
80 |
-
WPBDP_URL . 'vendors/
|
81 |
array(),
|
82 |
'4.0.5'
|
83 |
);
|
84 |
|
85 |
wp_register_script(
|
86 |
'wpbdp-js-select2',
|
87 |
-
WPBDP_URL . 'vendors/
|
88 |
array( 'jquery' ),
|
89 |
'4.0.5'
|
90 |
);
|
32 |
public function register_common_scripts() {
|
33 |
wp_register_script(
|
34 |
'jquery-file-upload-iframe-transport',
|
35 |
+
WPBDP_URL . 'vendors/jQuery-File-Upload/js/jquery.iframe-transport.js',
|
36 |
array(),
|
37 |
+
'10.7.0'
|
38 |
);
|
39 |
|
40 |
wp_register_script(
|
41 |
'jquery-file-upload',
|
42 |
+
WPBDP_URL . 'vendors/jQuery-File-Upload/js/jquery.fileupload.js',
|
43 |
array( 'jquery', 'jquery-ui-widget', 'jquery-file-upload-iframe-transport' ),
|
44 |
+
'10.7.0'
|
45 |
);
|
46 |
|
47 |
$this->maybe_register_script(
|
74 |
WPBDP_VERSION
|
75 |
);
|
76 |
|
77 |
+
// Use Select2 styles and scripts from selectWoo https://woocommerce.wordpress.com/2017/08/08/selectwoo-an-accessible-replacement-for-select2/.
|
78 |
wp_register_style(
|
79 |
'wpbdp-js-select2-css',
|
80 |
+
WPBDP_URL . 'vendors/selectWoo/css/selectWoo.min.css',
|
81 |
array(),
|
82 |
'4.0.5'
|
83 |
);
|
84 |
|
85 |
wp_register_script(
|
86 |
'wpbdp-js-select2',
|
87 |
+
WPBDP_URL . 'vendors/selectWoo/js/selectWoo.full.min.js',
|
88 |
array( 'jquery' ),
|
89 |
'4.0.5'
|
90 |
);
|
includes/class-listing-email-notification.php
CHANGED
@@ -199,7 +199,7 @@ class WPBDP__Listing_Email_Notification {
|
|
199 |
$email->to[] = wpbusdirman_get_the_business_email( $listing->get_id() );
|
200 |
|
201 |
if ( 'expiration' === $event && in_array( 'renewal', wpbdp_get_option( 'admin-notifications' ), true ) ) {
|
202 |
-
$email->cc
|
203 |
|
204 |
if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
|
205 |
$email->cc = wpbdp_get_option( 'admin-notifications-cc' );
|
199 |
$email->to[] = wpbusdirman_get_the_business_email( $listing->get_id() );
|
200 |
|
201 |
if ( 'expiration' === $event && in_array( 'renewal', wpbdp_get_option( 'admin-notifications' ), true ) ) {
|
202 |
+
$email->cc = get_option( 'admin_email' );
|
203 |
|
204 |
if ( wpbdp_get_option( 'admin-notifications-cc' ) ) {
|
205 |
$email->cc = wpbdp_get_option( 'admin-notifications-cc' );
|
includes/class-listing.php
CHANGED
@@ -363,6 +363,12 @@ class WPBDP_Listing {
|
|
363 |
if ( ! $this->id )
|
364 |
return;
|
365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
wp_update_post( array( 'post_status' => $status, 'ID' => $this->id ) );
|
367 |
}
|
368 |
|
363 |
if ( ! $this->id )
|
364 |
return;
|
365 |
|
366 |
+
$post_name = get_post_meta( $this->id, '_wpbdp[name]', true );
|
367 |
+
|
368 |
+
if ( ! $post_name ) {
|
369 |
+
update_post_meta( $this->id, '_wpbdp[name]', get_post_field( 'post_name', $this->id ) );
|
370 |
+
}
|
371 |
+
|
372 |
wp_update_post( array( 'post_status' => $status, 'ID' => $this->id ) );
|
373 |
}
|
374 |
|
includes/class-query-integration.php
CHANGED
@@ -36,6 +36,7 @@ class WPBDP__Query_Integration {
|
|
36 |
array_push( $vars, 'wpbdp-listener' );
|
37 |
array_push( $vars, 'region' );
|
38 |
array_push( $vars, 'wpbdp_view' );
|
|
|
39 |
|
40 |
if ( wpbdp_get_option( 'disable-cpt' ) ) {
|
41 |
array_push( $vars, '_' . wpbdp_get_option( 'permalinks-directory-slug' ) );
|
@@ -159,6 +160,7 @@ class WPBDP__Query_Integration {
|
|
159 |
}
|
160 |
|
161 |
public function pre_get_posts( &$query ) {
|
|
|
162 |
if ( is_admin() || ! isset( $query->wpbdp_our_query ) || ! $query->wpbdp_our_query ) {
|
163 |
return;
|
164 |
}
|
@@ -357,6 +359,37 @@ class WPBDP__Query_Integration {
|
|
357 |
return $orderby;
|
358 |
}
|
359 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
// }}
|
361 |
}
|
362 |
|
36 |
array_push( $vars, 'wpbdp-listener' );
|
37 |
array_push( $vars, 'region' );
|
38 |
array_push( $vars, 'wpbdp_view' );
|
39 |
+
array_push( $vars, 'listing_slug' );
|
40 |
|
41 |
if ( wpbdp_get_option( 'disable-cpt' ) ) {
|
42 |
array_push( $vars, '_' . wpbdp_get_option( 'permalinks-directory-slug' ) );
|
160 |
}
|
161 |
|
162 |
public function pre_get_posts( &$query ) {
|
163 |
+
$this->verify_unique_listing_url( $query );
|
164 |
if ( is_admin() || ! isset( $query->wpbdp_our_query ) || ! $query->wpbdp_our_query ) {
|
165 |
return;
|
166 |
}
|
359 |
return $orderby;
|
360 |
}
|
361 |
}
|
362 |
+
|
363 |
+
private function verify_unique_listing_url( &$query ) {
|
364 |
+
if ( ! wpbdp_get_option( 'permalinks-no-id' ) && ! empty( $query->query['listing_slug'] ) ) {
|
365 |
+
$wpbdp_404_query = false;
|
366 |
+
if ( ! wpbdp_get_option( 'disable-cpt' ) ) {
|
367 |
+
if ( 'show_listing' == $query->wpbdp_view ) {
|
368 |
+
if ( $query->query['listing_slug'] !== get_post_field( 'post_name', $query->query['p'] ) ) {
|
369 |
+
unset( $query->query['p'] );
|
370 |
+
unset( $query->query['post_type'] );
|
371 |
+
$wpbdp_404_query = true;
|
372 |
+
}
|
373 |
+
}
|
374 |
+
}
|
375 |
+
|
376 |
+
$dir_slug = '_' . wpbdp_get_option( 'permalinks-directory-slug' );
|
377 |
+
|
378 |
+
if ( 'main' == $query->wpbdp_view && ! empty( $query->query[$dir_slug] ) ) {
|
379 |
+
if ( $query->query['listing_slug'] !== get_post_field( 'post_name', $query->query[$dir_slug] ) ) {
|
380 |
+
unset( $query->query['page_id'] );
|
381 |
+
unset( $query->query[$dir_] );
|
382 |
+
$wpbdp_404_query = true;
|
383 |
+
}
|
384 |
+
}
|
385 |
+
|
386 |
+
if ( $wpbdp_404_query ) {
|
387 |
+
$query->query( $query->query );
|
388 |
+
$query->set_404();
|
389 |
+
status_header(404);
|
390 |
+
}
|
391 |
+
}
|
392 |
+
}
|
393 |
// }}
|
394 |
}
|
395 |
|
includes/class-rewrite.php
CHANGED
@@ -69,9 +69,9 @@ class WPBDP__Rewrite {
|
|
69 |
}
|
70 |
} else {
|
71 |
if ( ! wpbdp_get_option( 'disable-cpt' ) ) {
|
72 |
-
$rules['(' . $rewrite_base . ')/([0-9]{1,})/?(.*)/?$'] = 'index.php?p=$matches[2]&post_type=' . WPBDP_POST_TYPE; // FIXME: post_type shouldn't be required. Fix Query_Integration too.
|
73 |
} else {
|
74 |
-
$rules['(' . $rewrite_base . ')/([0-9]{1,})/?(.*)/?$'] = 'index.php?page_id=' . $page_id . '&_' . $dir_slug . '=$matches[2]';
|
75 |
}
|
76 |
}
|
77 |
}
|
69 |
}
|
70 |
} else {
|
71 |
if ( ! wpbdp_get_option( 'disable-cpt' ) ) {
|
72 |
+
$rules['(' . $rewrite_base . ')/([0-9]{1,})/?(.*)/?$'] = 'index.php?p=$matches[2]&listing_slug=$matches[3]&post_type=' . WPBDP_POST_TYPE; // FIXME: post_type shouldn't be required. Fix Query_Integration too.
|
73 |
} else {
|
74 |
+
$rules['(' . $rewrite_base . ')/([0-9]{1,})/?(.*)/?$'] = 'index.php?page_id=' . $page_id . '&_' . $dir_slug . '=$matches[2]&listing_slug=$matches[3]';
|
75 |
}
|
76 |
}
|
77 |
}
|
includes/class-wordpress-template-integration.php
CHANGED
@@ -11,6 +11,7 @@ class WPBDP__WordPress_Template_Integration {
|
|
11 |
|
12 |
public function __construct() {
|
13 |
add_action( 'body_class', array( $this, 'add_basic_body_classes' ) );
|
|
|
14 |
|
15 |
if ( wpbdp_get_option( 'disable-cpt' ) ) {
|
16 |
add_filter('comments_template', array( &$this, '_comments_template'));
|
@@ -23,7 +24,6 @@ class WPBDP__WordPress_Template_Integration {
|
|
23 |
add_filter( 'template_include', array( $this, 'template_include' ), 20 );
|
24 |
add_action( 'wp_head', array( $this, 'maybe_spoof_post' ), 100 );
|
25 |
add_action( 'wp_head', array( $this, 'wp_head_done' ), 999 );
|
26 |
-
add_filter( 'body_class', array( &$this, 'add_advanced_body_classes' ), 10 );
|
27 |
add_filter( 'post_class', array( $this, 'post_class' ), 10, 3 );
|
28 |
}
|
29 |
|
11 |
|
12 |
public function __construct() {
|
13 |
add_action( 'body_class', array( $this, 'add_basic_body_classes' ) );
|
14 |
+
add_filter( 'body_class', array( &$this, 'add_advanced_body_classes' ), 10 );
|
15 |
|
16 |
if ( wpbdp_get_option( 'disable-cpt' ) ) {
|
17 |
add_filter('comments_template', array( &$this, '_comments_template'));
|
24 |
add_filter( 'template_include', array( $this, 'template_include' ), 20 );
|
25 |
add_action( 'wp_head', array( $this, 'maybe_spoof_post' ), 100 );
|
26 |
add_action( 'wp_head', array( $this, 'wp_head_done' ), 999 );
|
|
|
27 |
add_filter( 'post_class', array( $this, 'post_class' ), 10, 3 );
|
28 |
}
|
29 |
|
includes/class-wpbdp.php
CHANGED
@@ -19,7 +19,7 @@ final class WPBDP {
|
|
19 |
}
|
20 |
|
21 |
private function setup_constants() {
|
22 |
-
define( 'WPBDP_VERSION', '5.
|
23 |
|
24 |
define( 'WPBDP_PATH', wp_normalize_path( plugin_dir_path( WPBDP_PLUGIN_FILE ) ) );
|
25 |
define( 'WPBDP_INC', trailingslashit( WPBDP_PATH . 'includes' ) );
|
19 |
}
|
20 |
|
21 |
private function setup_constants() {
|
22 |
+
define( 'WPBDP_VERSION', '5.6' );
|
23 |
|
24 |
define( 'WPBDP_PATH', wp_normalize_path( plugin_dir_path( WPBDP_PLUGIN_FILE ) ) );
|
25 |
define( 'WPBDP_INC', trailingslashit( WPBDP_PATH . 'includes' ) );
|
includes/fields/class-fieldtypes-twitter.php
CHANGED
@@ -60,7 +60,7 @@ class WPBDP_FieldTypes_Twitter extends WPBDP_Form_Field_Type {
|
|
60 |
return '';
|
61 |
|
62 |
$html = '';
|
63 |
-
$html .= '<div class="social-field twitter">';
|
64 |
$html .= sprintf(
|
65 |
'<a href="https://twitter.com/%s" class="twitter-follow-button" data-show-count="%s" data-lang="%s">Follow @%s</a>',
|
66 |
$value,
|
60 |
return '';
|
61 |
|
62 |
$html = '';
|
63 |
+
$html .= '<div class="social-field twitter twitter-handle">';
|
64 |
$html .= sprintf(
|
65 |
'<a href="https://twitter.com/%s" class="twitter-follow-button" data-show-count="%s" data-lang="%s">Follow @%s</a>',
|
66 |
$value,
|
includes/fields/class-form-field-type.php
CHANGED
@@ -293,7 +293,7 @@ class WPBDP_Form_Field_Type {
|
|
293 |
break;
|
294 |
}
|
295 |
|
296 |
-
return $schema;
|
297 |
}
|
298 |
|
299 |
/**
|
293 |
break;
|
294 |
}
|
295 |
|
296 |
+
return apply_filters( 'wpbdp_field_schema_org', $schema, $field, $post_id );
|
297 |
}
|
298 |
|
299 |
/**
|
includes/functions.php
CHANGED
@@ -1292,4 +1292,38 @@ if( get_option( '_wpbpd_update_zip_module_version', false ) ) {
|
|
1292 |
delete_option( '_wpbpd_update_zip_module_version' );
|
1293 |
}
|
1294 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1295 |
// phpcs:enable
|
1292 |
delete_option( '_wpbpd_update_zip_module_version' );
|
1293 |
}
|
1294 |
|
1295 |
+
// Temporary zipcodesearch version fix Remove before 5.5.14.
|
1296 |
+
// Remove option created to fix zipcodesearch version, delete before 5.5.15.
|
1297 |
+
|
1298 |
+
if( is_admin() && ! get_option( '_wpbpd_update_claim_module_version', false ) ) {
|
1299 |
+
|
1300 |
+
$file = plugin_dir_path( __DIR__ ) . '../business-directory-claim-listings/business-directory-claim-listings.php';
|
1301 |
+
|
1302 |
+
if ( ! file_exists( $file ) ) {
|
1303 |
+
return;
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
$content = file_get_contents( $file );
|
1307 |
+
|
1308 |
+
if ( strpos( $content, '* Version: 5.3' ) ) {
|
1309 |
+
if( file_put_contents( $file, str_replace('* Version: 5.3','* Version: 5.2', $content ) ) !== false ) {
|
1310 |
+
update_option( '_wpbpd_update_zip_module_version', true );
|
1311 |
+
}
|
1312 |
+
}
|
1313 |
+
|
1314 |
+
if ( strpos( $content, '* Version: 5.3.1' ) ) {
|
1315 |
+
if( file_put_contents( $file, str_replace('* Version: 5.3.1','* Version: 5.2', $content ) ) !== false ) {
|
1316 |
+
update_option( '_wpbpd_update_zip_module_version', true );
|
1317 |
+
}
|
1318 |
+
}
|
1319 |
+
|
1320 |
+
|
1321 |
+
|
1322 |
+
if ( strpos( $content, '* Version: 5.3.2' ) ) {
|
1323 |
+
if( file_put_contents( $file, str_replace('* Version: 5.3.2','* Version: 5.2', $content ) ) !== false ) {
|
1324 |
+
update_option( '_wpbpd_update_zip_module_version', true );
|
1325 |
+
}
|
1326 |
+
}
|
1327 |
+
}
|
1328 |
+
|
1329 |
// phpcs:enable
|
includes/helpers/class-email.php
CHANGED
@@ -109,6 +109,17 @@ class WPBDP_Email {
|
|
109 |
return $this->html;
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
/**
|
113 |
* Sends the email.
|
114 |
*
|
@@ -136,7 +147,7 @@ class WPBDP_Email {
|
|
136 |
}
|
137 |
|
138 |
add_action( 'phpmailer_init', array( $this, 'wpbdp_email_config' ), 10 );
|
139 |
-
$result = wp_mail( $this->
|
140 |
remove_action( 'phpmailer_init', array( $this, 'wpbdp_email_config' ), 10 );
|
141 |
|
142 |
return $result;
|
109 |
return $this->html;
|
110 |
}
|
111 |
|
112 |
+
private function get_recipients() {
|
113 |
+
$recipients = array();
|
114 |
+
foreach ( $this->to as $emails ) {
|
115 |
+
foreach ( explode( ',', str_replace( ';', ',', $emails ) ) as $email ) {
|
116 |
+
$recipients[] = $email;
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
return $recipients;
|
121 |
+
}
|
122 |
+
|
123 |
/**
|
124 |
* Sends the email.
|
125 |
*
|
147 |
}
|
148 |
|
149 |
add_action( 'phpmailer_init', array( $this, 'wpbdp_email_config' ), 10 );
|
150 |
+
$result = wp_mail( $this->get_recipients(), $this->subject, $this->get_message(), $this->get_headers() );
|
151 |
remove_action( 'phpmailer_init', array( $this, 'wpbdp_email_config' ), 10 );
|
152 |
|
153 |
return $result;
|
includes/helpers/class-listing-display-helper.php
CHANGED
@@ -266,7 +266,7 @@ class WPBDP_Listing_Display_Helper {
|
|
266 |
}
|
267 |
}
|
268 |
|
269 |
-
$schema = apply_filters( 'wpbdp_listing_schema_org', $schema );
|
270 |
|
271 |
return $schema;
|
272 |
}
|
266 |
}
|
267 |
}
|
268 |
|
269 |
+
$schema = apply_filters( 'wpbdp_listing_schema_org', $schema, $vars['listing_id'] );
|
270 |
|
271 |
return $schema;
|
272 |
}
|
includes/templates-ui.php
CHANGED
@@ -713,21 +713,3 @@ function wpbdp_main_box( $args = null ) {
|
|
713 |
$html = wpbdp_x_render( apply_filters( 'wpbdp_main_box_template_name', 'main-box' ), $template_vars );
|
714 |
return $html;
|
715 |
}
|
716 |
-
|
717 |
-
/**
|
718 |
-
* @since 5.3.2
|
719 |
-
*
|
720 |
-
* This function should be removed in 5.3.4
|
721 |
-
*
|
722 |
-
* @param $use_default
|
723 |
-
* @return array
|
724 |
-
*/
|
725 |
-
function wpbdp_use_default_picture( $use_default ) {
|
726 |
-
if ( ! is_array( $use_default ) ) {
|
727 |
-
$use_default = $use_default ? array( 'excerpt' ) : array();
|
728 |
-
wpbdp_set_option( 'use-default-picture', $use_default );
|
729 |
-
}
|
730 |
-
|
731 |
-
return $use_default;
|
732 |
-
}
|
733 |
-
add_filter( 'wpbdp_get_option_use-default-picture', 'wpbdp_use_default_picture' );
|
713 |
$html = wpbdp_x_render( apply_filters( 'wpbdp_main_box_template_name', 'main-box' ), $template_vars );
|
714 |
return $html;
|
715 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/WPBDM-ar.mo
CHANGED
Binary file
|
languages/WPBDM-ar.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"PO-Revision-Date: 2017-01-16 17:47-0500\n"
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
@@ -18,26 +18,26 @@ msgstr ""
|
|
18 |
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
-
#: includes/admin/class-admin-listings.php:
|
22 |
msgid "Listing Information"
|
23 |
msgstr "معلومات حول الإعلان"
|
24 |
|
25 |
-
#: includes/admin/class-admin-listings.php:
|
26 |
#, fuzzy
|
27 |
msgid "Listing Timeline"
|
28 |
msgstr "عنوان الإعلان: "
|
29 |
|
30 |
-
#: includes/admin/class-admin-listings.php:
|
31 |
#, fuzzy
|
32 |
msgid "Listing Reports"
|
33 |
msgstr "الإعلان منتهي التاريخ"
|
34 |
|
35 |
-
#: includes/admin/class-admin-listings.php:
|
36 |
#, fuzzy
|
37 |
msgid "Expires on"
|
38 |
msgstr "ستنتهي الصلاحية في"
|
39 |
|
40 |
-
#: includes/admin/class-admin-listings.php:
|
41 |
#, fuzzy
|
42 |
msgid "Attributes"
|
43 |
msgstr "سمات الحقل"
|
@@ -60,7 +60,7 @@ msgstr "حذف إضافة دليل الأعمال"
|
|
60 |
msgid "Uninstall"
|
61 |
msgstr "حذف"
|
62 |
|
63 |
-
#: includes/admin/class-csv-import.php:
|
64 |
#, fuzzy
|
65 |
msgid "Listing imported by admin. Payment skipped."
|
66 |
msgstr "Poster annonce(paiement initial)"
|
@@ -528,44 +528,44 @@ msgctxt "admin csv-import"
|
|
528 |
msgid "See an example CSV import file"
|
529 |
msgstr "مشاهدة مثال لملف استيراد CSV"
|
530 |
|
531 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "Help"
|
534 |
msgstr "المساعدة"
|
535 |
|
536 |
-
#: includes/admin/class-csv-import.php:
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid ""
|
539 |
"Could not create listing category \"<category-name>\". The operation failed "
|
540 |
"with the following error: <error-message>."
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: includes/admin/class-csv-import.php:
|
544 |
msgctxt "admin csv-import"
|
545 |
msgid "Could not create listing category \"%s\""
|
546 |
msgstr "لا يمكن إنشاء تصنيف الإعلان \"%s\""
|
547 |
|
548 |
-
#: includes/admin/class-csv-import.php:
|
549 |
msgctxt "admin csv-import"
|
550 |
msgid "Username \"%s\" does not exist"
|
551 |
msgstr "إسم المستخدم \"%s\" غير موجود"
|
552 |
|
553 |
-
#: includes/admin/class-csv-import.php:
|
554 |
msgctxt "admin csv-import"
|
555 |
msgid "The string <string> couldn't be converted into a valid date."
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: includes/admin/class-csv-import.php:
|
559 |
msgctxt "admin csv-import"
|
560 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: includes/admin/class-csv-import.php:
|
564 |
msgctxt "admin csv-import"
|
565 |
msgid "Missing required field: %s"
|
566 |
msgstr "حقل مطلوب مفقود: %s"
|
567 |
|
568 |
-
#: includes/admin/class-csv-import.php:
|
569 |
msgctxt "admin csv-import"
|
570 |
msgid "Listing category \"%s\" does not exist"
|
571 |
msgstr "تصنيف الإعلان \"%s\" غير موجود"
|
@@ -822,56 +822,69 @@ msgid "Import settings"
|
|
822 |
msgstr "إعدادات الاستيراد"
|
823 |
|
824 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
825 |
msgctxt "admin csv-import"
|
826 |
-
msgid "Post status of imported listings"
|
827 |
msgstr "حالة مقالة الإعلانات المستوردة"
|
828 |
|
829 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
830 |
msgctxt "admin csv-import"
|
831 |
msgid "Missing categories handling"
|
832 |
msgstr "معالجة التصنيفات المفقودة"
|
833 |
|
834 |
-
#: templates/admin/csv-import.tpl.php:
|
835 |
msgctxt "admin csv-import"
|
836 |
msgid "Auto-create categories"
|
837 |
msgstr "الإنشاء التلقائي للتصنيفات"
|
838 |
|
839 |
-
#: templates/admin/csv-import.tpl.php:
|
840 |
msgctxt "admin csv-import"
|
841 |
msgid "Generate errors when a category is not found"
|
842 |
msgstr "إنشاء أخطاء عند عدم العثور على تصنيف"
|
843 |
|
844 |
-
#: templates/admin/csv-import.tpl.php:
|
845 |
msgctxt "admin csv-import"
|
846 |
msgid "Keep existing listing images?"
|
847 |
msgstr "الاحتفاظ بصور الإعلانات الموجودة؟"
|
848 |
|
849 |
-
#: templates/admin/csv-import.tpl.php:
|
850 |
msgctxt "admin csv-import"
|
851 |
msgid "Keep existing images."
|
852 |
msgstr "الاحتفاظ بالصور الموجودة."
|
853 |
|
854 |
-
#: templates/admin/csv-import.tpl.php:
|
855 |
msgctxt "admin csv-import"
|
856 |
msgid "Appends new images while keeping current ones."
|
857 |
msgstr "إلحاق الصور الجديدة مع الاحتفاظ بالموجودة حاليا."
|
858 |
|
859 |
-
#: templates/admin/csv-import.tpl.php:
|
860 |
msgctxt "admin csv-import"
|
861 |
msgid "Assign listings to a user?"
|
862 |
msgstr "تعيين إعلانات للعضو؟"
|
863 |
|
864 |
-
#: templates/admin/csv-import.tpl.php:
|
865 |
msgctxt "admin csv-import"
|
866 |
msgid "Assign listings to a user."
|
867 |
msgstr "تعيين إعلانات للعضو."
|
868 |
|
869 |
-
#: templates/admin/csv-import.tpl.php:
|
870 |
msgctxt "admin csv-import"
|
871 |
msgid "Use a default user for listings?"
|
872 |
msgstr "استخدام العضو الافتراضي للإعلانات؟"
|
873 |
|
874 |
-
#: templates/admin/csv-import.tpl.php:
|
875 |
msgctxt "admin csv-import"
|
876 |
msgid ""
|
877 |
"Select a default user to be used if the username column is not present in "
|
@@ -880,24 +893,24 @@ msgstr ""
|
|
880 |
"حدد العضو الافتراضي لاستخدامه إذا كان العمود إسم المستخدم غير موجود في ملف "
|
881 |
"CSV."
|
882 |
|
883 |
-
#: templates/admin/csv-import.tpl.php:
|
884 |
msgctxt "admin csv-import"
|
885 |
msgid "Default listing user"
|
886 |
msgstr "إعلان العضو الافتراضي"
|
887 |
|
888 |
-
#: templates/admin/csv-import.tpl.php:
|
889 |
msgctxt "admin csv-import"
|
890 |
msgid ""
|
891 |
"This user will be used if the username column is not present in the CSV file."
|
892 |
msgstr "سيتم استخدام هذا العضو إذا كان عمود إسم المستخدم غير موجود في ملف CSV."
|
893 |
|
894 |
-
#: templates/admin/csv-import.tpl.php:
|
895 |
#, fuzzy
|
896 |
msgctxt "admin csv-import"
|
897 |
msgid "Number of listings imported on every cycle"
|
898 |
msgstr "عدد الإعلانات للعرض"
|
899 |
|
900 |
-
#: templates/admin/csv-import.tpl.php:
|
901 |
msgctxt "admin csv-import"
|
902 |
msgid ""
|
903 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -906,27 +919,27 @@ msgid ""
|
|
906 |
"success on shared hosting platforms and other resource-constrained servers."
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: templates/admin/csv-import.tpl.php:
|
910 |
msgctxt "admin csv-import"
|
911 |
msgid "Disable e-mail notifications during import?"
|
912 |
msgstr "تعطيل تنبيهات البريد الإلكتروني أثناء عملية الاستيراد؟"
|
913 |
|
914 |
-
#: templates/admin/csv-import.tpl.php:
|
915 |
msgctxt "admin csv-import"
|
916 |
msgid "Disable e-mail notifications."
|
917 |
msgstr "تعطيل التنبيهات."
|
918 |
|
919 |
-
#: templates/admin/csv-import.tpl.php:
|
920 |
msgctxt "admin csv-import"
|
921 |
msgid "Test Import"
|
922 |
msgstr "اختبار الاستيراد"
|
923 |
|
924 |
-
#: templates/admin/csv-import.tpl.php:
|
925 |
msgctxt "admin csv-import"
|
926 |
msgid "Import Listings"
|
927 |
msgstr "استيراد الإعلانات"
|
928 |
|
929 |
-
#: templates/admin/csv-import.tpl.php:
|
930 |
msgctxt "admin csv-import"
|
931 |
msgid ""
|
932 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -938,32 +951,32 @@ msgstr ""
|
|
938 |
"القيم (مثل تصنيف أو وسوم) عدة مرات في الملف. إضغط فوق <a href=\"%s\">\"انظر "
|
939 |
"مثال لملف استيراد CSV\"</a> لمعرفة كيف يجب أن يبدو ملف الاستيراد."
|
940 |
|
941 |
-
#: templates/admin/csv-import.tpl.php:
|
942 |
msgctxt "admin csv-import"
|
943 |
msgid "Header name/label"
|
944 |
msgstr "إسم رأس/التسمية"
|
945 |
|
946 |
-
#: templates/admin/csv-import.tpl.php:
|
947 |
msgctxt "admin csv-import"
|
948 |
msgid "Field"
|
949 |
msgstr "حقل"
|
950 |
|
951 |
-
#: templates/admin/csv-import.tpl.php:
|
952 |
msgctxt "admin csv-import"
|
953 |
msgid "Type"
|
954 |
msgstr "نوع"
|
955 |
|
956 |
-
#: templates/admin/csv-import.tpl.php:
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid "Required?"
|
959 |
msgstr "مطلوب؟"
|
960 |
|
961 |
-
#: templates/admin/csv-import.tpl.php:
|
962 |
msgctxt "admin csv-import"
|
963 |
msgid "Multivalued?"
|
964 |
msgstr "متعدد القيم؟"
|
965 |
|
966 |
-
#: templates/admin/csv-import.tpl.php:
|
967 |
#, fuzzy
|
968 |
msgctxt "admin csv-import"
|
969 |
msgid ""
|
@@ -973,24 +986,24 @@ msgstr ""
|
|
973 |
"تاريخ انتهاء صلاحية الإعلان بهذا التنسيق YYYY-MM-dd. \"استخدام\" هذا العمود "
|
974 |
"عند إضافة أو تحديث الإعلانات من مصادر خارجية."
|
975 |
|
976 |
-
#: templates/admin/csv-import.tpl.php:
|
977 |
msgctxt "admin csv-import"
|
978 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
979 |
msgstr "لائحة مفصولة بفاصلة منقوطة لصور الإعلانات (من ملف مضغوط)"
|
980 |
|
981 |
-
#: templates/admin/csv-import.tpl.php:
|
982 |
msgctxt "admin csv-import"
|
983 |
msgid "Listing author's username"
|
984 |
msgstr "إسم مستخدم كاتب الإعلان"
|
985 |
|
986 |
-
#: templates/admin/csv-import.tpl.php:
|
987 |
msgctxt "admin csv-import"
|
988 |
msgid ""
|
989 |
"Internal Sequence ID used to allow listing updates from external sources."
|
990 |
msgstr ""
|
991 |
"معرف (ID) تسلسل داخلي يستخدم للسماح للإعلان بالتحديثات من مصادر خارجية."
|
992 |
|
993 |
-
#: templates/admin/csv-import.tpl.php:
|
994 |
msgctxt "admin csv-import"
|
995 |
msgid ""
|
996 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1011,12 +1024,12 @@ msgctxt "admin csv"
|
|
1011 |
msgid "Export"
|
1012 |
msgstr "تصدير CSV"
|
1013 |
|
1014 |
-
#: includes/admin/class-admin-listings.php:
|
1015 |
msgctxt "admin category filter"
|
1016 |
msgid "All categories"
|
1017 |
msgstr "جميع التصنيفات"
|
1018 |
|
1019 |
-
#: includes/admin/class-admin-listings.php:
|
1020 |
#, fuzzy
|
1021 |
msgctxt "admin listings"
|
1022 |
msgid ""
|
@@ -1028,42 +1041,42 @@ msgstr ""
|
|
1028 |
"به) مطلوب من أجل تحديد الميزات المتوفرة لهذا الإعلان، زائد التعامل مع تجديد "
|
1029 |
"الاشتراك."
|
1030 |
|
1031 |
-
#: includes/admin/class-admin-listings.php:
|
1032 |
#, fuzzy
|
1033 |
msgctxt "admin listings"
|
1034 |
msgid "Never"
|
1035 |
msgstr "أبداً"
|
1036 |
|
1037 |
-
#: includes/admin/class-admin-listings.php:
|
1038 |
#, fuzzy
|
1039 |
msgctxt "admin listings"
|
1040 |
msgid "Featured"
|
1041 |
msgstr "حالة مميزة (مثبت)"
|
1042 |
|
1043 |
-
#: includes/admin/class-admin-listings.php:
|
1044 |
#, fuzzy
|
1045 |
msgctxt "admin listings"
|
1046 |
msgid "Recurring"
|
1047 |
msgstr "(متكرر)"
|
1048 |
|
1049 |
-
#: includes/admin/class-admin-listings.php:
|
1050 |
#, fuzzy
|
1051 |
msgctxt "admin listings"
|
1052 |
msgid "Free"
|
1053 |
msgstr "مجاني"
|
1054 |
|
1055 |
-
#: includes/admin/class-admin-listings.php:
|
1056 |
#, fuzzy
|
1057 |
msgctxt "admin listings"
|
1058 |
msgid "Paid"
|
1059 |
msgstr "تم الدفع"
|
1060 |
|
1061 |
-
#: includes/admin/class-admin-listings.php:
|
1062 |
msgctxt "admin listings"
|
1063 |
msgid "Reported"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#: includes/admin/class-admin-listings.php:
|
1067 |
msgctxt "admin listings"
|
1068 |
msgid "Listing's payment history successfully deleted"
|
1069 |
msgstr ""
|
@@ -1091,13 +1104,13 @@ msgctxt "admin listings"
|
|
1091 |
msgid "Clear listing reports."
|
1092 |
msgstr "الإعلان منتهي التاريخ"
|
1093 |
|
1094 |
-
#: includes/admin/class-admin-listings.php:
|
1095 |
#, fuzzy
|
1096 |
msgctxt "admin"
|
1097 |
msgid "Directory Listing Fields / Images"
|
1098 |
msgstr "حقول / صور الإعلان"
|
1099 |
|
1100 |
-
#: includes/admin/class-admin-listings.php:
|
1101 |
msgctxt "admin"
|
1102 |
msgid "Categories"
|
1103 |
msgstr "التصنيفات"
|
@@ -1303,120 +1316,120 @@ msgctxt "admin"
|
|
1303 |
msgid "Go to \"Manage Fees\""
|
1304 |
msgstr "إنتقل إلى \"إدارة حقول\""
|
1305 |
|
1306 |
-
#: includes/admin/class-admin-listings.php:
|
1307 |
msgctxt "listing attribute"
|
1308 |
msgid "No Fee Plan"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: includes/admin/class-admin-listings.php:
|
1312 |
msgctxt "listing status"
|
1313 |
msgid "Reported"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: includes/class-listing.php:
|
1317 |
msgctxt "listing status"
|
1318 |
msgid "Unknown"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: includes/class-listing.php:
|
1322 |
msgctxt "listing status"
|
1323 |
msgid "Legacy"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: includes/class-listing.php:
|
1327 |
#, fuzzy
|
1328 |
msgctxt "listing status"
|
1329 |
msgid "Incomplete"
|
1330 |
msgstr "إكتمل"
|
1331 |
|
1332 |
-
#: includes/class-listing.php:
|
1333 |
#, fuzzy
|
1334 |
msgctxt "listing status"
|
1335 |
msgid "Pending Payment"
|
1336 |
msgstr "في انتظار التخلي"
|
1337 |
|
1338 |
-
#: includes/class-listing.php:
|
1339 |
#, fuzzy
|
1340 |
msgctxt "listing status"
|
1341 |
msgid "Complete"
|
1342 |
msgstr "إكتمل"
|
1343 |
|
1344 |
-
#: includes/class-listing.php:
|
1345 |
#, fuzzy
|
1346 |
msgctxt "listing status"
|
1347 |
msgid "Pending Upgrade"
|
1348 |
msgstr " في انتظار الترقية"
|
1349 |
|
1350 |
-
#: includes/class-listing.php:
|
1351 |
#, fuzzy
|
1352 |
msgctxt "listing status"
|
1353 |
msgid "Expired"
|
1354 |
msgstr "منتهي الصلاحية"
|
1355 |
|
1356 |
-
#: includes/class-listing.php:
|
1357 |
#, fuzzy
|
1358 |
msgctxt "listing status"
|
1359 |
msgid "Pending Renewal"
|
1360 |
msgstr "مفعل + ريثما يتم التجديد"
|
1361 |
|
1362 |
-
#: includes/class-listing.php:
|
1363 |
#, fuzzy
|
1364 |
msgctxt "listing status"
|
1365 |
msgid "Abandoned"
|
1366 |
msgstr "متخلى عنه"
|
1367 |
|
1368 |
-
#: includes/admin/class-admin-listings.php:
|
1369 |
msgctxt "admin actions"
|
1370 |
msgid "Edit Listing"
|
1371 |
msgstr "تحرير الإعلان"
|
1372 |
|
1373 |
-
#: includes/admin/class-admin-listings.php:
|
1374 |
msgctxt "admin actions"
|
1375 |
msgid "Delete Listing"
|
1376 |
msgstr "حذف الإعلان"
|
1377 |
|
1378 |
-
#: includes/admin/class-admin-listings.php:
|
1379 |
#, fuzzy
|
1380 |
msgctxt "admin actions"
|
1381 |
msgid "View Payments"
|
1382 |
msgstr "الدفع"
|
1383 |
|
1384 |
-
#: includes/admin/class-admin-listings.php:
|
1385 |
#, fuzzy
|
1386 |
msgctxt "admin actions"
|
1387 |
msgid "View Payment"
|
1388 |
msgstr "الدفع"
|
1389 |
|
1390 |
-
#: includes/admin/class-admin-listings.php:
|
1391 |
#, fuzzy
|
1392 |
msgctxt "admin actions"
|
1393 |
msgid "Publish listings"
|
1394 |
msgstr "نشر إعلان"
|
1395 |
|
1396 |
-
#: includes/admin/class-admin-listings.php:
|
1397 |
#, fuzzy
|
1398 |
msgctxt "admin actions"
|
1399 |
msgid "Mark as \"Pending Review\""
|
1400 |
msgstr " في الانتظار"
|
1401 |
|
1402 |
-
#: includes/admin/class-admin-listings.php:
|
1403 |
msgctxt "admin actions"
|
1404 |
msgid "Hide from directory (mark as \"Draft\")"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: includes/admin/class-admin-listings.php:
|
1408 |
#, fuzzy
|
1409 |
msgctxt "admin actions"
|
1410 |
msgid "Renew listings"
|
1411 |
msgstr "تجديد الإعلان"
|
1412 |
|
1413 |
-
#: includes/admin/class-admin-listings.php:
|
1414 |
#, fuzzy
|
1415 |
msgctxt "admin actions"
|
1416 |
msgid "Set listings as \"Expired\""
|
1417 |
msgstr "الإعلان منتهي التاريخ"
|
1418 |
|
1419 |
-
#: includes/admin/class-admin-listings.php:
|
1420 |
#, fuzzy
|
1421 |
msgctxt "admin actions"
|
1422 |
msgid "Send access keys"
|
@@ -6059,19 +6072,19 @@ msgctxt "listing"
|
|
6059 |
msgid "Listing expired"
|
6060 |
msgstr "الإعلان منتهي التاريخ"
|
6061 |
|
6062 |
-
#: includes/class-listing.php:
|
6063 |
#, fuzzy
|
6064 |
msgctxt "listing"
|
6065 |
msgid "(Unavailable Plan)"
|
6066 |
msgstr "(رسم غير متوفر)"
|
6067 |
|
6068 |
-
#: includes/class-listing.php:
|
6069 |
#, fuzzy
|
6070 |
msgctxt "listing"
|
6071 |
msgid "Plan \"%s\" (recurring)"
|
6072 |
msgstr "(متكرر)"
|
6073 |
|
6074 |
-
#: includes/class-listing.php:
|
6075 |
msgctxt "listing"
|
6076 |
msgid "Plan \"%s\""
|
6077 |
msgstr ""
|
@@ -8751,7 +8764,7 @@ msgstr "بحث"
|
|
8751 |
#: templates/admin/csv-import.tpl.php:116
|
8752 |
#: templates/admin/csv-import.tpl.php:142
|
8753 |
#: templates/admin/csv-import.tpl.php:153
|
8754 |
-
#: templates/admin/csv-import.tpl.php:
|
8755 |
msgctxt "admin forms"
|
8756 |
msgid "required"
|
8757 |
msgstr "مطلوب"
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"PO-Revision-Date: 2017-01-16 17:47-0500\n"
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
18 |
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
+
#: includes/admin/class-admin-listings.php:184
|
22 |
msgid "Listing Information"
|
23 |
msgstr "معلومات حول الإعلان"
|
24 |
|
25 |
+
#: includes/admin/class-admin-listings.php:192
|
26 |
#, fuzzy
|
27 |
msgid "Listing Timeline"
|
28 |
msgstr "عنوان الإعلان: "
|
29 |
|
30 |
+
#: includes/admin/class-admin-listings.php:210
|
31 |
#, fuzzy
|
32 |
msgid "Listing Reports"
|
33 |
msgstr "الإعلان منتهي التاريخ"
|
34 |
|
35 |
+
#: includes/admin/class-admin-listings.php:251
|
36 |
#, fuzzy
|
37 |
msgid "Expires on"
|
38 |
msgstr "ستنتهي الصلاحية في"
|
39 |
|
40 |
+
#: includes/admin/class-admin-listings.php:259
|
41 |
#, fuzzy
|
42 |
msgid "Attributes"
|
43 |
msgstr "سمات الحقل"
|
60 |
msgid "Uninstall"
|
61 |
msgstr "حذف"
|
62 |
|
63 |
+
#: includes/admin/class-csv-import.php:633
|
64 |
#, fuzzy
|
65 |
msgid "Listing imported by admin. Payment skipped."
|
66 |
msgstr "Poster annonce(paiement initial)"
|
528 |
msgid "See an example CSV import file"
|
529 |
msgstr "مشاهدة مثال لملف استيراد CSV"
|
530 |
|
531 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "Help"
|
534 |
msgstr "المساعدة"
|
535 |
|
536 |
+
#: includes/admin/class-csv-import.php:503
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid ""
|
539 |
"Could not create listing category \"<category-name>\". The operation failed "
|
540 |
"with the following error: <error-message>."
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: includes/admin/class-csv-import.php:509
|
544 |
msgctxt "admin csv-import"
|
545 |
msgid "Could not create listing category \"%s\""
|
546 |
msgstr "لا يمكن إنشاء تصنيف الإعلان \"%s\""
|
547 |
|
548 |
+
#: includes/admin/class-csv-import.php:684
|
549 |
msgctxt "admin csv-import"
|
550 |
msgid "Username \"%s\" does not exist"
|
551 |
msgstr "إسم المستخدم \"%s\" غير موجود"
|
552 |
|
553 |
+
#: includes/admin/class-csv-import.php:710
|
554 |
msgctxt "admin csv-import"
|
555 |
msgid "The string <string> couldn't be converted into a valid date."
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: includes/admin/class-csv-import.php:732
|
559 |
msgctxt "admin csv-import"
|
560 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
561 |
msgstr ""
|
562 |
|
563 |
+
#: includes/admin/class-csv-import.php:755
|
564 |
msgctxt "admin csv-import"
|
565 |
msgid "Missing required field: %s"
|
566 |
msgstr "حقل مطلوب مفقود: %s"
|
567 |
|
568 |
+
#: includes/admin/class-csv-import.php:780
|
569 |
msgctxt "admin csv-import"
|
570 |
msgid "Listing category \"%s\" does not exist"
|
571 |
msgstr "تصنيف الإعلان \"%s\" غير موجود"
|
822 |
msgstr "إعدادات الاستيراد"
|
823 |
|
824 |
#: templates/admin/csv-import.tpl.php:168
|
825 |
+
#, fuzzy
|
826 |
msgctxt "admin csv-import"
|
827 |
+
msgid "Post status of new imported listings"
|
828 |
msgstr "حالة مقالة الإعلانات المستوردة"
|
829 |
|
830 |
+
#: templates/admin/csv-import.tpl.php:183
|
831 |
+
#, fuzzy
|
832 |
+
msgctxt "admin csv-import"
|
833 |
+
msgid "Post status of existing imported listings"
|
834 |
+
msgstr "حالة مقالة الإعلانات المستوردة"
|
835 |
+
|
836 |
+
#: templates/admin/csv-import.tpl.php:187
|
837 |
+
#, fuzzy
|
838 |
+
msgctxt "admin csv-import"
|
839 |
+
msgid "Preserve existing status"
|
840 |
+
msgstr "الإعلانات"
|
841 |
+
|
842 |
+
#: templates/admin/csv-import.tpl.php:199
|
843 |
msgctxt "admin csv-import"
|
844 |
msgid "Missing categories handling"
|
845 |
msgstr "معالجة التصنيفات المفقودة"
|
846 |
|
847 |
+
#: templates/admin/csv-import.tpl.php:204
|
848 |
msgctxt "admin csv-import"
|
849 |
msgid "Auto-create categories"
|
850 |
msgstr "الإنشاء التلقائي للتصنيفات"
|
851 |
|
852 |
+
#: templates/admin/csv-import.tpl.php:207
|
853 |
msgctxt "admin csv-import"
|
854 |
msgid "Generate errors when a category is not found"
|
855 |
msgstr "إنشاء أخطاء عند عدم العثور على تصنيف"
|
856 |
|
857 |
+
#: templates/admin/csv-import.tpl.php:212
|
858 |
msgctxt "admin csv-import"
|
859 |
msgid "Keep existing listing images?"
|
860 |
msgstr "الاحتفاظ بصور الإعلانات الموجودة؟"
|
861 |
|
862 |
+
#: templates/admin/csv-import.tpl.php:217
|
863 |
msgctxt "admin csv-import"
|
864 |
msgid "Keep existing images."
|
865 |
msgstr "الاحتفاظ بالصور الموجودة."
|
866 |
|
867 |
+
#: templates/admin/csv-import.tpl.php:218
|
868 |
msgctxt "admin csv-import"
|
869 |
msgid "Appends new images while keeping current ones."
|
870 |
msgstr "إلحاق الصور الجديدة مع الاحتفاظ بالموجودة حاليا."
|
871 |
|
872 |
+
#: templates/admin/csv-import.tpl.php:223
|
873 |
msgctxt "admin csv-import"
|
874 |
msgid "Assign listings to a user?"
|
875 |
msgstr "تعيين إعلانات للعضو؟"
|
876 |
|
877 |
+
#: templates/admin/csv-import.tpl.php:229
|
878 |
msgctxt "admin csv-import"
|
879 |
msgid "Assign listings to a user."
|
880 |
msgstr "تعيين إعلانات للعضو."
|
881 |
|
882 |
+
#: templates/admin/csv-import.tpl.php:234
|
883 |
msgctxt "admin csv-import"
|
884 |
msgid "Use a default user for listings?"
|
885 |
msgstr "استخدام العضو الافتراضي للإعلانات؟"
|
886 |
|
887 |
+
#: templates/admin/csv-import.tpl.php:240
|
888 |
msgctxt "admin csv-import"
|
889 |
msgid ""
|
890 |
"Select a default user to be used if the username column is not present in "
|
893 |
"حدد العضو الافتراضي لاستخدامه إذا كان العمود إسم المستخدم غير موجود في ملف "
|
894 |
"CSV."
|
895 |
|
896 |
+
#: templates/admin/csv-import.tpl.php:245
|
897 |
msgctxt "admin csv-import"
|
898 |
msgid "Default listing user"
|
899 |
msgstr "إعلان العضو الافتراضي"
|
900 |
|
901 |
+
#: templates/admin/csv-import.tpl.php:251
|
902 |
msgctxt "admin csv-import"
|
903 |
msgid ""
|
904 |
"This user will be used if the username column is not present in the CSV file."
|
905 |
msgstr "سيتم استخدام هذا العضو إذا كان عمود إسم المستخدم غير موجود في ملف CSV."
|
906 |
|
907 |
+
#: templates/admin/csv-import.tpl.php:256
|
908 |
#, fuzzy
|
909 |
msgctxt "admin csv-import"
|
910 |
msgid "Number of listings imported on every cycle"
|
911 |
msgstr "عدد الإعلانات للعرض"
|
912 |
|
913 |
+
#: templates/admin/csv-import.tpl.php:264
|
914 |
msgctxt "admin csv-import"
|
915 |
msgid ""
|
916 |
"If you are having trouble importing listings due to memory problems, try "
|
919 |
"success on shared hosting platforms and other resource-constrained servers."
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: templates/admin/csv-import.tpl.php:269
|
923 |
msgctxt "admin csv-import"
|
924 |
msgid "Disable e-mail notifications during import?"
|
925 |
msgstr "تعطيل تنبيهات البريد الإلكتروني أثناء عملية الاستيراد؟"
|
926 |
|
927 |
+
#: templates/admin/csv-import.tpl.php:274
|
928 |
msgctxt "admin csv-import"
|
929 |
msgid "Disable e-mail notifications."
|
930 |
msgstr "تعطيل التنبيهات."
|
931 |
|
932 |
+
#: templates/admin/csv-import.tpl.php:280
|
933 |
msgctxt "admin csv-import"
|
934 |
msgid "Test Import"
|
935 |
msgstr "اختبار الاستيراد"
|
936 |
|
937 |
+
#: templates/admin/csv-import.tpl.php:281
|
938 |
msgctxt "admin csv-import"
|
939 |
msgid "Import Listings"
|
940 |
msgstr "استيراد الإعلانات"
|
941 |
|
942 |
+
#: templates/admin/csv-import.tpl.php:289
|
943 |
msgctxt "admin csv-import"
|
944 |
msgid ""
|
945 |
"The following are the valid header names to be used in the CSV file. "
|
951 |
"القيم (مثل تصنيف أو وسوم) عدة مرات في الملف. إضغط فوق <a href=\"%s\">\"انظر "
|
952 |
"مثال لملف استيراد CSV\"</a> لمعرفة كيف يجب أن يبدو ملف الاستيراد."
|
953 |
|
954 |
+
#: templates/admin/csv-import.tpl.php:296
|
955 |
msgctxt "admin csv-import"
|
956 |
msgid "Header name/label"
|
957 |
msgstr "إسم رأس/التسمية"
|
958 |
|
959 |
+
#: templates/admin/csv-import.tpl.php:297
|
960 |
msgctxt "admin csv-import"
|
961 |
msgid "Field"
|
962 |
msgstr "حقل"
|
963 |
|
964 |
+
#: templates/admin/csv-import.tpl.php:298
|
965 |
msgctxt "admin csv-import"
|
966 |
msgid "Type"
|
967 |
msgstr "نوع"
|
968 |
|
969 |
+
#: templates/admin/csv-import.tpl.php:299
|
970 |
msgctxt "admin csv-import"
|
971 |
msgid "Required?"
|
972 |
msgstr "مطلوب؟"
|
973 |
|
974 |
+
#: templates/admin/csv-import.tpl.php:300
|
975 |
msgctxt "admin csv-import"
|
976 |
msgid "Multivalued?"
|
977 |
msgstr "متعدد القيم؟"
|
978 |
|
979 |
+
#: templates/admin/csv-import.tpl.php:322
|
980 |
#, fuzzy
|
981 |
msgctxt "admin csv-import"
|
982 |
msgid ""
|
986 |
"تاريخ انتهاء صلاحية الإعلان بهذا التنسيق YYYY-MM-dd. \"استخدام\" هذا العمود "
|
987 |
"عند إضافة أو تحديث الإعلانات من مصادر خارجية."
|
988 |
|
989 |
+
#: templates/admin/csv-import.tpl.php:329
|
990 |
msgctxt "admin csv-import"
|
991 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
992 |
msgstr "لائحة مفصولة بفاصلة منقوطة لصور الإعلانات (من ملف مضغوط)"
|
993 |
|
994 |
+
#: templates/admin/csv-import.tpl.php:336
|
995 |
msgctxt "admin csv-import"
|
996 |
msgid "Listing author's username"
|
997 |
msgstr "إسم مستخدم كاتب الإعلان"
|
998 |
|
999 |
+
#: templates/admin/csv-import.tpl.php:343
|
1000 |
msgctxt "admin csv-import"
|
1001 |
msgid ""
|
1002 |
"Internal Sequence ID used to allow listing updates from external sources."
|
1003 |
msgstr ""
|
1004 |
"معرف (ID) تسلسل داخلي يستخدم للسماح للإعلان بالتحديثات من مصادر خارجية."
|
1005 |
|
1006 |
+
#: templates/admin/csv-import.tpl.php:350
|
1007 |
msgctxt "admin csv-import"
|
1008 |
msgid ""
|
1009 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1024 |
msgid "Export"
|
1025 |
msgstr "تصدير CSV"
|
1026 |
|
1027 |
+
#: includes/admin/class-admin-listings.php:62
|
1028 |
msgctxt "admin category filter"
|
1029 |
msgid "All categories"
|
1030 |
msgstr "جميع التصنيفات"
|
1031 |
|
1032 |
+
#: includes/admin/class-admin-listings.php:177
|
1033 |
#, fuzzy
|
1034 |
msgctxt "admin listings"
|
1035 |
msgid ""
|
1041 |
"به) مطلوب من أجل تحديد الميزات المتوفرة لهذا الإعلان، زائد التعامل مع تجديد "
|
1042 |
"الاشتراك."
|
1043 |
|
1044 |
+
#: includes/admin/class-admin-listings.php:296
|
1045 |
#, fuzzy
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Never"
|
1048 |
msgstr "أبداً"
|
1049 |
|
1050 |
+
#: includes/admin/class-admin-listings.php:322
|
1051 |
#, fuzzy
|
1052 |
msgctxt "admin listings"
|
1053 |
msgid "Featured"
|
1054 |
msgstr "حالة مميزة (مثبت)"
|
1055 |
|
1056 |
+
#: includes/admin/class-admin-listings.php:326
|
1057 |
#, fuzzy
|
1058 |
msgctxt "admin listings"
|
1059 |
msgid "Recurring"
|
1060 |
msgstr "(متكرر)"
|
1061 |
|
1062 |
+
#: includes/admin/class-admin-listings.php:330
|
1063 |
#, fuzzy
|
1064 |
msgctxt "admin listings"
|
1065 |
msgid "Free"
|
1066 |
msgstr "مجاني"
|
1067 |
|
1068 |
+
#: includes/admin/class-admin-listings.php:332
|
1069 |
#, fuzzy
|
1070 |
msgctxt "admin listings"
|
1071 |
msgid "Paid"
|
1072 |
msgstr "تم الدفع"
|
1073 |
|
1074 |
+
#: includes/admin/class-admin-listings.php:337
|
1075 |
msgctxt "admin listings"
|
1076 |
msgid "Reported"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
+
#: includes/admin/class-admin-listings.php:666
|
1080 |
msgctxt "admin listings"
|
1081 |
msgid "Listing's payment history successfully deleted"
|
1082 |
msgstr ""
|
1104 |
msgid "Clear listing reports."
|
1105 |
msgstr "الإعلان منتهي التاريخ"
|
1106 |
|
1107 |
+
#: includes/admin/class-admin-listings.php:200
|
1108 |
#, fuzzy
|
1109 |
msgctxt "admin"
|
1110 |
msgid "Directory Listing Fields / Images"
|
1111 |
msgstr "حقول / صور الإعلان"
|
1112 |
|
1113 |
+
#: includes/admin/class-admin-listings.php:250
|
1114 |
msgctxt "admin"
|
1115 |
msgid "Categories"
|
1116 |
msgstr "التصنيفات"
|
1316 |
msgid "Go to \"Manage Fees\""
|
1317 |
msgstr "إنتقل إلى \"إدارة حقول\""
|
1318 |
|
1319 |
+
#: includes/admin/class-admin-listings.php:307
|
1320 |
msgctxt "listing attribute"
|
1321 |
msgid "No Fee Plan"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: includes/admin/class-admin-listings.php:397
|
1325 |
msgctxt "listing status"
|
1326 |
msgid "Reported"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
+
#: includes/class-listing.php:776
|
1330 |
msgctxt "listing status"
|
1331 |
msgid "Unknown"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
+
#: includes/class-listing.php:777
|
1335 |
msgctxt "listing status"
|
1336 |
msgid "Legacy"
|
1337 |
msgstr ""
|
1338 |
|
1339 |
+
#: includes/class-listing.php:778
|
1340 |
#, fuzzy
|
1341 |
msgctxt "listing status"
|
1342 |
msgid "Incomplete"
|
1343 |
msgstr "إكتمل"
|
1344 |
|
1345 |
+
#: includes/class-listing.php:779
|
1346 |
#, fuzzy
|
1347 |
msgctxt "listing status"
|
1348 |
msgid "Pending Payment"
|
1349 |
msgstr "في انتظار التخلي"
|
1350 |
|
1351 |
+
#: includes/class-listing.php:780
|
1352 |
#, fuzzy
|
1353 |
msgctxt "listing status"
|
1354 |
msgid "Complete"
|
1355 |
msgstr "إكتمل"
|
1356 |
|
1357 |
+
#: includes/class-listing.php:781
|
1358 |
#, fuzzy
|
1359 |
msgctxt "listing status"
|
1360 |
msgid "Pending Upgrade"
|
1361 |
msgstr " في انتظار الترقية"
|
1362 |
|
1363 |
+
#: includes/class-listing.php:782
|
1364 |
#, fuzzy
|
1365 |
msgctxt "listing status"
|
1366 |
msgid "Expired"
|
1367 |
msgstr "منتهي الصلاحية"
|
1368 |
|
1369 |
+
#: includes/class-listing.php:783
|
1370 |
#, fuzzy
|
1371 |
msgctxt "listing status"
|
1372 |
msgid "Pending Renewal"
|
1373 |
msgstr "مفعل + ريثما يتم التجديد"
|
1374 |
|
1375 |
+
#: includes/class-listing.php:784
|
1376 |
#, fuzzy
|
1377 |
msgctxt "listing status"
|
1378 |
msgid "Abandoned"
|
1379 |
msgstr "متخلى عنه"
|
1380 |
|
1381 |
+
#: includes/admin/class-admin-listings.php:446
|
1382 |
msgctxt "admin actions"
|
1383 |
msgid "Edit Listing"
|
1384 |
msgstr "تحرير الإعلان"
|
1385 |
|
1386 |
+
#: includes/admin/class-admin-listings.php:451
|
1387 |
msgctxt "admin actions"
|
1388 |
msgid "Delete Listing"
|
1389 |
msgstr "حذف الإعلان"
|
1390 |
|
1391 |
+
#: includes/admin/class-admin-listings.php:462
|
1392 |
#, fuzzy
|
1393 |
msgctxt "admin actions"
|
1394 |
msgid "View Payments"
|
1395 |
msgstr "الدفع"
|
1396 |
|
1397 |
+
#: includes/admin/class-admin-listings.php:467
|
1398 |
#, fuzzy
|
1399 |
msgctxt "admin actions"
|
1400 |
msgid "View Payment"
|
1401 |
msgstr "الدفع"
|
1402 |
|
1403 |
+
#: includes/admin/class-admin-listings.php:605
|
1404 |
#, fuzzy
|
1405 |
msgctxt "admin actions"
|
1406 |
msgid "Publish listings"
|
1407 |
msgstr "نشر إعلان"
|
1408 |
|
1409 |
+
#: includes/admin/class-admin-listings.php:606
|
1410 |
#, fuzzy
|
1411 |
msgctxt "admin actions"
|
1412 |
msgid "Mark as \"Pending Review\""
|
1413 |
msgstr " في الانتظار"
|
1414 |
|
1415 |
+
#: includes/admin/class-admin-listings.php:607
|
1416 |
msgctxt "admin actions"
|
1417 |
msgid "Hide from directory (mark as \"Draft\")"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: includes/admin/class-admin-listings.php:609
|
1421 |
#, fuzzy
|
1422 |
msgctxt "admin actions"
|
1423 |
msgid "Renew listings"
|
1424 |
msgstr "تجديد الإعلان"
|
1425 |
|
1426 |
+
#: includes/admin/class-admin-listings.php:610
|
1427 |
#, fuzzy
|
1428 |
msgctxt "admin actions"
|
1429 |
msgid "Set listings as \"Expired\""
|
1430 |
msgstr "الإعلان منتهي التاريخ"
|
1431 |
|
1432 |
+
#: includes/admin/class-admin-listings.php:617
|
1433 |
#, fuzzy
|
1434 |
msgctxt "admin actions"
|
1435 |
msgid "Send access keys"
|
6072 |
msgid "Listing expired"
|
6073 |
msgstr "الإعلان منتهي التاريخ"
|
6074 |
|
6075 |
+
#: includes/class-listing.php:516
|
6076 |
#, fuzzy
|
6077 |
msgctxt "listing"
|
6078 |
msgid "(Unavailable Plan)"
|
6079 |
msgstr "(رسم غير متوفر)"
|
6080 |
|
6081 |
+
#: includes/class-listing.php:673
|
6082 |
#, fuzzy
|
6083 |
msgctxt "listing"
|
6084 |
msgid "Plan \"%s\" (recurring)"
|
6085 |
msgstr "(متكرر)"
|
6086 |
|
6087 |
+
#: includes/class-listing.php:675
|
6088 |
msgctxt "listing"
|
6089 |
msgid "Plan \"%s\""
|
6090 |
msgstr ""
|
8764 |
#: templates/admin/csv-import.tpl.php:116
|
8765 |
#: templates/admin/csv-import.tpl.php:142
|
8766 |
#: templates/admin/csv-import.tpl.php:153
|
8767 |
+
#: templates/admin/csv-import.tpl.php:199
|
8768 |
msgctxt "admin forms"
|
8769 |
msgid "required"
|
8770 |
msgstr "مطلوب"
|
languages/WPBDM-de_DE.mo
CHANGED
Binary file
|
languages/WPBDM-de_DE.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"PO-Revision-Date: 2019-07-16 15:05-0500\n"
|
10 |
"Last-Translator: Axel J. Metayer <axel@kfz.net>\n"
|
11 |
"Language-Team: Business Directory Plugin <support@businessdirectoryplugin."
|
@@ -18,25 +18,25 @@ msgstr ""
|
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
-
#: includes/admin/class-admin-listings.php:
|
22 |
msgid "Listing Information"
|
23 |
msgstr "Eintrag Informationen"
|
24 |
|
25 |
-
#: includes/admin/class-admin-listings.php:
|
26 |
msgid "Listing Timeline"
|
27 |
msgstr "Eintrag Titel:"
|
28 |
|
29 |
-
#: includes/admin/class-admin-listings.php:
|
30 |
#, fuzzy
|
31 |
msgid "Listing Reports"
|
32 |
msgstr "Ein Eintrag läuft aus."
|
33 |
|
34 |
-
#: includes/admin/class-admin-listings.php:
|
35 |
#, fuzzy
|
36 |
msgid "Expires on"
|
37 |
msgstr "Läuft ab am"
|
38 |
|
39 |
-
#: includes/admin/class-admin-listings.php:
|
40 |
#, fuzzy
|
41 |
msgid "Attributes"
|
42 |
msgstr "Feld Attribute"
|
@@ -60,7 +60,7 @@ msgstr "Branchenverzeichnis deinstallieren"
|
|
60 |
msgid "Uninstall"
|
61 |
msgstr "Deinstallieren"
|
62 |
|
63 |
-
#: includes/admin/class-csv-import.php:
|
64 |
#, fuzzy
|
65 |
msgid "Listing imported by admin. Payment skipped."
|
66 |
msgstr "Eintrag zusenden (Initialbezahlung)"
|
@@ -507,12 +507,12 @@ msgctxt "admin csv-import"
|
|
507 |
msgid "See an example CSV import file"
|
508 |
msgstr "Beispiel CSV Import Datei anschauen"
|
509 |
|
510 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
511 |
msgctxt "admin csv-import"
|
512 |
msgid "Help"
|
513 |
msgstr "Hilfe "
|
514 |
|
515 |
-
#: includes/admin/class-csv-import.php:
|
516 |
msgctxt "admin csv-import"
|
517 |
msgid ""
|
518 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -521,32 +521,32 @@ msgstr ""
|
|
521 |
"Die Kategorieauflistung \"<category-name>\" konnte nicht erstellt werden. "
|
522 |
"Der Vorgang ist mit dem folgenden Fehler fehlgeschlagen: <error-message>."
|
523 |
|
524 |
-
#: includes/admin/class-csv-import.php:
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "Could not create listing category \"%s\""
|
527 |
msgstr "Konnte Eintragskategorie nicht erstellen \"%s\""
|
528 |
|
529 |
-
#: includes/admin/class-csv-import.php:
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Username \"%s\" does not exist"
|
532 |
msgstr "Benutzername \"%s\" existiert nicht"
|
533 |
|
534 |
-
#: includes/admin/class-csv-import.php:
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "The string <string> couldn't be converted into a valid date."
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: includes/admin/class-csv-import.php:
|
540 |
msgctxt "admin csv-import"
|
541 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: includes/admin/class-csv-import.php:
|
545 |
msgctxt "admin csv-import"
|
546 |
msgid "Missing required field: %s"
|
547 |
msgstr "Benötigtes nicht vorhandenes Feld: %s"
|
548 |
|
549 |
-
#: includes/admin/class-csv-import.php:
|
550 |
msgctxt "admin csv-import"
|
551 |
msgid "Listing category \"%s\" does not exist"
|
552 |
msgstr "Eintragskategorie \"%s\" existiert nicht"
|
@@ -811,56 +811,69 @@ msgid "Import settings"
|
|
811 |
msgstr "Importeinstellungen"
|
812 |
|
813 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
814 |
msgctxt "admin csv-import"
|
815 |
-
msgid "Post status of imported listings"
|
816 |
msgstr "Status der importierten Einträge"
|
817 |
|
818 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
819 |
msgctxt "admin csv-import"
|
820 |
msgid "Missing categories handling"
|
821 |
msgstr "Verhalten bei nicht vorhandener Kategorie"
|
822 |
|
823 |
-
#: templates/admin/csv-import.tpl.php:
|
824 |
msgctxt "admin csv-import"
|
825 |
msgid "Auto-create categories"
|
826 |
msgstr "Kategorie automatisch erstellen"
|
827 |
|
828 |
-
#: templates/admin/csv-import.tpl.php:
|
829 |
msgctxt "admin csv-import"
|
830 |
msgid "Generate errors when a category is not found"
|
831 |
msgstr "Fehlermeldung erzeugen, wenn die Kategorie nicht gefunden wird"
|
832 |
|
833 |
-
#: templates/admin/csv-import.tpl.php:
|
834 |
msgctxt "admin csv-import"
|
835 |
msgid "Keep existing listing images?"
|
836 |
msgstr "Vorhandene Bilder beibehalten?"
|
837 |
|
838 |
-
#: templates/admin/csv-import.tpl.php:
|
839 |
msgctxt "admin csv-import"
|
840 |
msgid "Keep existing images."
|
841 |
msgstr "Vorhandene Bilder behalten."
|
842 |
|
843 |
-
#: templates/admin/csv-import.tpl.php:
|
844 |
msgctxt "admin csv-import"
|
845 |
msgid "Appends new images while keeping current ones."
|
846 |
msgstr "Hängt neue Bilder an und behaltet die alten."
|
847 |
|
848 |
-
#: templates/admin/csv-import.tpl.php:
|
849 |
msgctxt "admin csv-import"
|
850 |
msgid "Assign listings to a user?"
|
851 |
msgstr "Zuweisung"
|
852 |
|
853 |
-
#: templates/admin/csv-import.tpl.php:
|
854 |
msgctxt "admin csv-import"
|
855 |
msgid "Assign listings to a user."
|
856 |
msgstr "Einträge einem Benutzer zuweisen."
|
857 |
|
858 |
-
#: templates/admin/csv-import.tpl.php:
|
859 |
msgctxt "admin csv-import"
|
860 |
msgid "Use a default user for listings?"
|
861 |
msgstr "Voreingestellter-Nutzer für neue Einträge?"
|
862 |
|
863 |
-
#: templates/admin/csv-import.tpl.php:
|
864 |
msgctxt "admin csv-import"
|
865 |
msgid ""
|
866 |
"Select a default user to be used if the username column is not present in "
|
@@ -869,12 +882,12 @@ msgstr ""
|
|
869 |
"Wählen Sie einen Benutzernamen der verwendet werden soll, wenn die Username-"
|
870 |
"Spalte in der CSV-Datei nicht vorhanden ist."
|
871 |
|
872 |
-
#: templates/admin/csv-import.tpl.php:
|
873 |
msgctxt "admin csv-import"
|
874 |
msgid "Default listing user"
|
875 |
msgstr "Voreingestellter-Nutzer"
|
876 |
|
877 |
-
#: templates/admin/csv-import.tpl.php:
|
878 |
msgctxt "admin csv-import"
|
879 |
msgid ""
|
880 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -882,13 +895,13 @@ msgstr ""
|
|
882 |
"Dieser Benutzer wird verwendet wenn die Spalte Benutzername nicht in der CSV-"
|
883 |
"Datei vorhanden ist."
|
884 |
|
885 |
-
#: templates/admin/csv-import.tpl.php:
|
886 |
#, fuzzy
|
887 |
msgctxt "admin csv-import"
|
888 |
msgid "Number of listings imported on every cycle"
|
889 |
msgstr "Nummer der Einträge zum Anzeigen:"
|
890 |
|
891 |
-
#: templates/admin/csv-import.tpl.php:
|
892 |
msgctxt "admin csv-import"
|
893 |
msgid ""
|
894 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -897,27 +910,27 @@ msgid ""
|
|
897 |
"success on shared hosting platforms and other resource-constrained servers."
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: templates/admin/csv-import.tpl.php:
|
901 |
msgctxt "admin csv-import"
|
902 |
msgid "Disable e-mail notifications during import?"
|
903 |
msgstr "E-Mail-Benachrichtigungen"
|
904 |
|
905 |
-
#: templates/admin/csv-import.tpl.php:
|
906 |
msgctxt "admin csv-import"
|
907 |
msgid "Disable e-mail notifications."
|
908 |
msgstr "E-Mail-Benachrichtigungen beim Import deaktivieren?"
|
909 |
|
910 |
-
#: templates/admin/csv-import.tpl.php:
|
911 |
msgctxt "admin csv-import"
|
912 |
msgid "Test Import"
|
913 |
msgstr "Importtest"
|
914 |
|
915 |
-
#: templates/admin/csv-import.tpl.php:
|
916 |
msgctxt "admin csv-import"
|
917 |
msgid "Import Listings"
|
918 |
msgstr "Einträge importieren"
|
919 |
|
920 |
-
#: templates/admin/csv-import.tpl.php:
|
921 |
msgctxt "admin csv-import"
|
922 |
msgid ""
|
923 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -930,32 +943,32 @@ msgstr ""
|
|
930 |
"erscheinen. Klicken Sie <a href=\"%s\">\"CSV Beispieldatei anschauen\"</a>, "
|
931 |
"um zu sehen wie eine Importdatei aufgebaut sein muss."
|
932 |
|
933 |
-
#: templates/admin/csv-import.tpl.php:
|
934 |
msgctxt "admin csv-import"
|
935 |
msgid "Header name/label"
|
936 |
msgstr "Kopfname/Bezeichnung"
|
937 |
|
938 |
-
#: templates/admin/csv-import.tpl.php:
|
939 |
msgctxt "admin csv-import"
|
940 |
msgid "Field"
|
941 |
msgstr "Feld"
|
942 |
|
943 |
-
#: templates/admin/csv-import.tpl.php:
|
944 |
msgctxt "admin csv-import"
|
945 |
msgid "Type"
|
946 |
msgstr "Typ"
|
947 |
|
948 |
-
#: templates/admin/csv-import.tpl.php:
|
949 |
msgctxt "admin csv-import"
|
950 |
msgid "Required?"
|
951 |
msgstr "Pflichtfeld?"
|
952 |
|
953 |
-
#: templates/admin/csv-import.tpl.php:
|
954 |
msgctxt "admin csv-import"
|
955 |
msgid "Multivalued?"
|
956 |
msgstr "Mehrfachwert?"
|
957 |
|
958 |
-
#: templates/admin/csv-import.tpl.php:
|
959 |
#, fuzzy
|
960 |
msgctxt "admin csv-import"
|
961 |
msgid ""
|
@@ -965,17 +978,17 @@ msgstr ""
|
|
965 |
"Tag des Eintragende formatiert als YYYY-MM-DD. Benutze diese Spalte, wenn "
|
966 |
"Einträge aus externen Quellen hinzugefügt oder aktualisiert werden."
|
967 |
|
968 |
-
#: templates/admin/csv-import.tpl.php:
|
969 |
msgctxt "admin csv-import"
|
970 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
971 |
msgstr "Semikolon getrennte Liste der Eintragsbilder (aus der ZIP Datei)"
|
972 |
|
973 |
-
#: templates/admin/csv-import.tpl.php:
|
974 |
msgctxt "admin csv-import"
|
975 |
msgid "Listing author's username"
|
976 |
msgstr "Benutzername des Authors"
|
977 |
|
978 |
-
#: templates/admin/csv-import.tpl.php:
|
979 |
msgctxt "admin csv-import"
|
980 |
msgid ""
|
981 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -983,7 +996,7 @@ msgstr ""
|
|
983 |
"Interne Sequenz ID wird benutzt um Aktualisierungen von Einträgen aus "
|
984 |
"externer Quellen durchzuführen."
|
985 |
|
986 |
-
#: templates/admin/csv-import.tpl.php:
|
987 |
msgctxt "admin csv-import"
|
988 |
msgid ""
|
989 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1004,12 +1017,12 @@ msgctxt "admin csv"
|
|
1004 |
msgid "Export"
|
1005 |
msgstr "CVS Export"
|
1006 |
|
1007 |
-
#: includes/admin/class-admin-listings.php:
|
1008 |
msgctxt "admin category filter"
|
1009 |
msgid "All categories"
|
1010 |
msgstr "Alle Kategorien"
|
1011 |
|
1012 |
-
#: includes/admin/class-admin-listings.php:
|
1013 |
#, fuzzy
|
1014 |
msgctxt "admin listings"
|
1015 |
msgid ""
|
@@ -1022,42 +1035,42 @@ msgstr ""
|
|
1022 |
"Auflistung zur Verfügung stehenden Funktionen sowie die Erneuerung zu "
|
1023 |
"ermitteln."
|
1024 |
|
1025 |
-
#: includes/admin/class-admin-listings.php:
|
1026 |
#, fuzzy
|
1027 |
msgctxt "admin listings"
|
1028 |
msgid "Never"
|
1029 |
msgstr "niemals"
|
1030 |
|
1031 |
-
#: includes/admin/class-admin-listings.php:
|
1032 |
#, fuzzy
|
1033 |
msgctxt "admin listings"
|
1034 |
msgid "Featured"
|
1035 |
msgstr "unterstützter (unbeweglicher) Status"
|
1036 |
|
1037 |
-
#: includes/admin/class-admin-listings.php:
|
1038 |
#, fuzzy
|
1039 |
msgctxt "admin listings"
|
1040 |
msgid "Recurring"
|
1041 |
msgstr "(wiederkehrend)"
|
1042 |
|
1043 |
-
#: includes/admin/class-admin-listings.php:
|
1044 |
#, fuzzy
|
1045 |
msgctxt "admin listings"
|
1046 |
msgid "Free"
|
1047 |
msgstr "Kostenlos"
|
1048 |
|
1049 |
-
#: includes/admin/class-admin-listings.php:
|
1050 |
#, fuzzy
|
1051 |
msgctxt "admin listings"
|
1052 |
msgid "Paid"
|
1053 |
msgstr "Bezahlt"
|
1054 |
|
1055 |
-
#: includes/admin/class-admin-listings.php:
|
1056 |
msgctxt "admin listings"
|
1057 |
msgid "Reported"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: includes/admin/class-admin-listings.php:
|
1061 |
msgctxt "admin listings"
|
1062 |
msgid "Listing's payment history successfully deleted"
|
1063 |
msgstr ""
|
@@ -1085,13 +1098,13 @@ msgctxt "admin listings"
|
|
1085 |
msgid "Clear listing reports."
|
1086 |
msgstr "Ein Eintrag läuft aus."
|
1087 |
|
1088 |
-
#: includes/admin/class-admin-listings.php:
|
1089 |
#, fuzzy
|
1090 |
msgctxt "admin"
|
1091 |
msgid "Directory Listing Fields / Images"
|
1092 |
msgstr "Eintrag Felder / Bilder"
|
1093 |
|
1094 |
-
#: includes/admin/class-admin-listings.php:
|
1095 |
msgctxt "admin"
|
1096 |
msgid "Categories"
|
1097 |
msgstr "Kategorien"
|
@@ -1289,120 +1302,120 @@ msgctxt "admin"
|
|
1289 |
msgid "Go to \"Manage Fees\""
|
1290 |
msgstr "zu \"Formularfelder verwalten\""
|
1291 |
|
1292 |
-
#: includes/admin/class-admin-listings.php:
|
1293 |
msgctxt "listing attribute"
|
1294 |
msgid "No Fee Plan"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: includes/admin/class-admin-listings.php:
|
1298 |
msgctxt "listing status"
|
1299 |
msgid "Reported"
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#: includes/class-listing.php:
|
1303 |
msgctxt "listing status"
|
1304 |
msgid "Unknown"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: includes/class-listing.php:
|
1308 |
msgctxt "listing status"
|
1309 |
msgid "Legacy"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: includes/class-listing.php:
|
1313 |
#, fuzzy
|
1314 |
msgctxt "listing status"
|
1315 |
msgid "Incomplete"
|
1316 |
msgstr "Abgeschlossen"
|
1317 |
|
1318 |
-
#: includes/class-listing.php:
|
1319 |
#, fuzzy
|
1320 |
msgctxt "listing status"
|
1321 |
msgid "Pending Payment"
|
1322 |
msgstr "Ausstehende Zahlungen"
|
1323 |
|
1324 |
-
#: includes/class-listing.php:
|
1325 |
#, fuzzy
|
1326 |
msgctxt "listing status"
|
1327 |
msgid "Complete"
|
1328 |
msgstr "Abgeschlossen"
|
1329 |
|
1330 |
-
#: includes/class-listing.php:
|
1331 |
#, fuzzy
|
1332 |
msgctxt "listing status"
|
1333 |
msgid "Pending Upgrade"
|
1334 |
msgstr "Ausstehende Aktualisierung"
|
1335 |
|
1336 |
-
#: includes/class-listing.php:
|
1337 |
#, fuzzy
|
1338 |
msgctxt "listing status"
|
1339 |
msgid "Expired"
|
1340 |
msgstr "Abgelaufen"
|
1341 |
|
1342 |
-
#: includes/class-listing.php:
|
1343 |
#, fuzzy
|
1344 |
msgctxt "listing status"
|
1345 |
msgid "Pending Renewal"
|
1346 |
msgstr "Aktiv + Ausstehende Erneuerungen"
|
1347 |
|
1348 |
-
#: includes/class-listing.php:
|
1349 |
#, fuzzy
|
1350 |
msgctxt "listing status"
|
1351 |
msgid "Abandoned"
|
1352 |
msgstr "Abgebrochen"
|
1353 |
|
1354 |
-
#: includes/admin/class-admin-listings.php:
|
1355 |
msgctxt "admin actions"
|
1356 |
msgid "Edit Listing"
|
1357 |
msgstr "Eintrag Bearbeiten"
|
1358 |
|
1359 |
-
#: includes/admin/class-admin-listings.php:
|
1360 |
msgctxt "admin actions"
|
1361 |
msgid "Delete Listing"
|
1362 |
msgstr "Eintrag Löschen"
|
1363 |
|
1364 |
-
#: includes/admin/class-admin-listings.php:
|
1365 |
#, fuzzy
|
1366 |
msgctxt "admin actions"
|
1367 |
msgid "View Payments"
|
1368 |
msgstr "Bezahlung"
|
1369 |
|
1370 |
-
#: includes/admin/class-admin-listings.php:
|
1371 |
#, fuzzy
|
1372 |
msgctxt "admin actions"
|
1373 |
msgid "View Payment"
|
1374 |
msgstr "Bezahlung"
|
1375 |
|
1376 |
-
#: includes/admin/class-admin-listings.php:
|
1377 |
#, fuzzy
|
1378 |
msgctxt "admin actions"
|
1379 |
msgid "Publish listings"
|
1380 |
msgstr "Eintrag veröffentlichen"
|
1381 |
|
1382 |
-
#: includes/admin/class-admin-listings.php:
|
1383 |
#, fuzzy
|
1384 |
msgctxt "admin actions"
|
1385 |
msgid "Mark as \"Pending Review\""
|
1386 |
msgstr "Ausstehend"
|
1387 |
|
1388 |
-
#: includes/admin/class-admin-listings.php:
|
1389 |
msgctxt "admin actions"
|
1390 |
msgid "Hide from directory (mark as \"Draft\")"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
-
#: includes/admin/class-admin-listings.php:
|
1394 |
#, fuzzy
|
1395 |
msgctxt "admin actions"
|
1396 |
msgid "Renew listings"
|
1397 |
msgstr "Eintrag erneuern"
|
1398 |
|
1399 |
-
#: includes/admin/class-admin-listings.php:
|
1400 |
#, fuzzy
|
1401 |
msgctxt "admin actions"
|
1402 |
msgid "Set listings as \"Expired\""
|
1403 |
msgstr "Ein Eintrag läuft aus."
|
1404 |
|
1405 |
-
#: includes/admin/class-admin-listings.php:
|
1406 |
#, fuzzy
|
1407 |
msgctxt "admin actions"
|
1408 |
msgid "Send access keys"
|
@@ -6023,19 +6036,19 @@ msgctxt "listing"
|
|
6023 |
msgid "Listing expired"
|
6024 |
msgstr "Ein Eintrag läuft aus."
|
6025 |
|
6026 |
-
#: includes/class-listing.php:
|
6027 |
#, fuzzy
|
6028 |
msgctxt "listing"
|
6029 |
msgid "(Unavailable Plan)"
|
6030 |
msgstr "(Preis nicht verfügbar)"
|
6031 |
|
6032 |
-
#: includes/class-listing.php:
|
6033 |
#, fuzzy
|
6034 |
msgctxt "listing"
|
6035 |
msgid "Plan \"%s\" (recurring)"
|
6036 |
msgstr "(wiederkehrend)"
|
6037 |
|
6038 |
-
#: includes/class-listing.php:
|
6039 |
msgctxt "listing"
|
6040 |
msgid "Plan \"%s\""
|
6041 |
msgstr ""
|
@@ -8726,7 +8739,7 @@ msgstr "Suche"
|
|
8726 |
#: templates/admin/csv-import.tpl.php:116
|
8727 |
#: templates/admin/csv-import.tpl.php:142
|
8728 |
#: templates/admin/csv-import.tpl.php:153
|
8729 |
-
#: templates/admin/csv-import.tpl.php:
|
8730 |
msgctxt "admin forms"
|
8731 |
msgid "required"
|
8732 |
msgstr "Pflichtfeld"
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"PO-Revision-Date: 2019-07-16 15:05-0500\n"
|
10 |
"Last-Translator: Axel J. Metayer <axel@kfz.net>\n"
|
11 |
"Language-Team: Business Directory Plugin <support@businessdirectoryplugin."
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
+
#: includes/admin/class-admin-listings.php:184
|
22 |
msgid "Listing Information"
|
23 |
msgstr "Eintrag Informationen"
|
24 |
|
25 |
+
#: includes/admin/class-admin-listings.php:192
|
26 |
msgid "Listing Timeline"
|
27 |
msgstr "Eintrag Titel:"
|
28 |
|
29 |
+
#: includes/admin/class-admin-listings.php:210
|
30 |
#, fuzzy
|
31 |
msgid "Listing Reports"
|
32 |
msgstr "Ein Eintrag läuft aus."
|
33 |
|
34 |
+
#: includes/admin/class-admin-listings.php:251
|
35 |
#, fuzzy
|
36 |
msgid "Expires on"
|
37 |
msgstr "Läuft ab am"
|
38 |
|
39 |
+
#: includes/admin/class-admin-listings.php:259
|
40 |
#, fuzzy
|
41 |
msgid "Attributes"
|
42 |
msgstr "Feld Attribute"
|
60 |
msgid "Uninstall"
|
61 |
msgstr "Deinstallieren"
|
62 |
|
63 |
+
#: includes/admin/class-csv-import.php:633
|
64 |
#, fuzzy
|
65 |
msgid "Listing imported by admin. Payment skipped."
|
66 |
msgstr "Eintrag zusenden (Initialbezahlung)"
|
507 |
msgid "See an example CSV import file"
|
508 |
msgstr "Beispiel CSV Import Datei anschauen"
|
509 |
|
510 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
511 |
msgctxt "admin csv-import"
|
512 |
msgid "Help"
|
513 |
msgstr "Hilfe "
|
514 |
|
515 |
+
#: includes/admin/class-csv-import.php:503
|
516 |
msgctxt "admin csv-import"
|
517 |
msgid ""
|
518 |
"Could not create listing category \"<category-name>\". The operation failed "
|
521 |
"Die Kategorieauflistung \"<category-name>\" konnte nicht erstellt werden. "
|
522 |
"Der Vorgang ist mit dem folgenden Fehler fehlgeschlagen: <error-message>."
|
523 |
|
524 |
+
#: includes/admin/class-csv-import.php:509
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "Could not create listing category \"%s\""
|
527 |
msgstr "Konnte Eintragskategorie nicht erstellen \"%s\""
|
528 |
|
529 |
+
#: includes/admin/class-csv-import.php:684
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Username \"%s\" does not exist"
|
532 |
msgstr "Benutzername \"%s\" existiert nicht"
|
533 |
|
534 |
+
#: includes/admin/class-csv-import.php:710
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "The string <string> couldn't be converted into a valid date."
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: includes/admin/class-csv-import.php:732
|
540 |
msgctxt "admin csv-import"
|
541 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: includes/admin/class-csv-import.php:755
|
545 |
msgctxt "admin csv-import"
|
546 |
msgid "Missing required field: %s"
|
547 |
msgstr "Benötigtes nicht vorhandenes Feld: %s"
|
548 |
|
549 |
+
#: includes/admin/class-csv-import.php:780
|
550 |
msgctxt "admin csv-import"
|
551 |
msgid "Listing category \"%s\" does not exist"
|
552 |
msgstr "Eintragskategorie \"%s\" existiert nicht"
|
811 |
msgstr "Importeinstellungen"
|
812 |
|
813 |
#: templates/admin/csv-import.tpl.php:168
|
814 |
+
#, fuzzy
|
815 |
msgctxt "admin csv-import"
|
816 |
+
msgid "Post status of new imported listings"
|
817 |
msgstr "Status der importierten Einträge"
|
818 |
|
819 |
+
#: templates/admin/csv-import.tpl.php:183
|
820 |
+
#, fuzzy
|
821 |
+
msgctxt "admin csv-import"
|
822 |
+
msgid "Post status of existing imported listings"
|
823 |
+
msgstr "Status der importierten Einträge"
|
824 |
+
|
825 |
+
#: templates/admin/csv-import.tpl.php:187
|
826 |
+
#, fuzzy
|
827 |
+
msgctxt "admin csv-import"
|
828 |
+
msgid "Preserve existing status"
|
829 |
+
msgstr "Einträge"
|
830 |
+
|
831 |
+
#: templates/admin/csv-import.tpl.php:199
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Missing categories handling"
|
834 |
msgstr "Verhalten bei nicht vorhandener Kategorie"
|
835 |
|
836 |
+
#: templates/admin/csv-import.tpl.php:204
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Auto-create categories"
|
839 |
msgstr "Kategorie automatisch erstellen"
|
840 |
|
841 |
+
#: templates/admin/csv-import.tpl.php:207
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Generate errors when a category is not found"
|
844 |
msgstr "Fehlermeldung erzeugen, wenn die Kategorie nicht gefunden wird"
|
845 |
|
846 |
+
#: templates/admin/csv-import.tpl.php:212
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Keep existing listing images?"
|
849 |
msgstr "Vorhandene Bilder beibehalten?"
|
850 |
|
851 |
+
#: templates/admin/csv-import.tpl.php:217
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Keep existing images."
|
854 |
msgstr "Vorhandene Bilder behalten."
|
855 |
|
856 |
+
#: templates/admin/csv-import.tpl.php:218
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid "Appends new images while keeping current ones."
|
859 |
msgstr "Hängt neue Bilder an und behaltet die alten."
|
860 |
|
861 |
+
#: templates/admin/csv-import.tpl.php:223
|
862 |
msgctxt "admin csv-import"
|
863 |
msgid "Assign listings to a user?"
|
864 |
msgstr "Zuweisung"
|
865 |
|
866 |
+
#: templates/admin/csv-import.tpl.php:229
|
867 |
msgctxt "admin csv-import"
|
868 |
msgid "Assign listings to a user."
|
869 |
msgstr "Einträge einem Benutzer zuweisen."
|
870 |
|
871 |
+
#: templates/admin/csv-import.tpl.php:234
|
872 |
msgctxt "admin csv-import"
|
873 |
msgid "Use a default user for listings?"
|
874 |
msgstr "Voreingestellter-Nutzer für neue Einträge?"
|
875 |
|
876 |
+
#: templates/admin/csv-import.tpl.php:240
|
877 |
msgctxt "admin csv-import"
|
878 |
msgid ""
|
879 |
"Select a default user to be used if the username column is not present in "
|
882 |
"Wählen Sie einen Benutzernamen der verwendet werden soll, wenn die Username-"
|
883 |
"Spalte in der CSV-Datei nicht vorhanden ist."
|
884 |
|
885 |
+
#: templates/admin/csv-import.tpl.php:245
|
886 |
msgctxt "admin csv-import"
|
887 |
msgid "Default listing user"
|
888 |
msgstr "Voreingestellter-Nutzer"
|
889 |
|
890 |
+
#: templates/admin/csv-import.tpl.php:251
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid ""
|
893 |
"This user will be used if the username column is not present in the CSV file."
|
895 |
"Dieser Benutzer wird verwendet wenn die Spalte Benutzername nicht in der CSV-"
|
896 |
"Datei vorhanden ist."
|
897 |
|
898 |
+
#: templates/admin/csv-import.tpl.php:256
|
899 |
#, fuzzy
|
900 |
msgctxt "admin csv-import"
|
901 |
msgid "Number of listings imported on every cycle"
|
902 |
msgstr "Nummer der Einträge zum Anzeigen:"
|
903 |
|
904 |
+
#: templates/admin/csv-import.tpl.php:264
|
905 |
msgctxt "admin csv-import"
|
906 |
msgid ""
|
907 |
"If you are having trouble importing listings due to memory problems, try "
|
910 |
"success on shared hosting platforms and other resource-constrained servers."
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: templates/admin/csv-import.tpl.php:269
|
914 |
msgctxt "admin csv-import"
|
915 |
msgid "Disable e-mail notifications during import?"
|
916 |
msgstr "E-Mail-Benachrichtigungen"
|
917 |
|
918 |
+
#: templates/admin/csv-import.tpl.php:274
|
919 |
msgctxt "admin csv-import"
|
920 |
msgid "Disable e-mail notifications."
|
921 |
msgstr "E-Mail-Benachrichtigungen beim Import deaktivieren?"
|
922 |
|
923 |
+
#: templates/admin/csv-import.tpl.php:280
|
924 |
msgctxt "admin csv-import"
|
925 |
msgid "Test Import"
|
926 |
msgstr "Importtest"
|
927 |
|
928 |
+
#: templates/admin/csv-import.tpl.php:281
|
929 |
msgctxt "admin csv-import"
|
930 |
msgid "Import Listings"
|
931 |
msgstr "Einträge importieren"
|
932 |
|
933 |
+
#: templates/admin/csv-import.tpl.php:289
|
934 |
msgctxt "admin csv-import"
|
935 |
msgid ""
|
936 |
"The following are the valid header names to be used in the CSV file. "
|
943 |
"erscheinen. Klicken Sie <a href=\"%s\">\"CSV Beispieldatei anschauen\"</a>, "
|
944 |
"um zu sehen wie eine Importdatei aufgebaut sein muss."
|
945 |
|
946 |
+
#: templates/admin/csv-import.tpl.php:296
|
947 |
msgctxt "admin csv-import"
|
948 |
msgid "Header name/label"
|
949 |
msgstr "Kopfname/Bezeichnung"
|
950 |
|
951 |
+
#: templates/admin/csv-import.tpl.php:297
|
952 |
msgctxt "admin csv-import"
|
953 |
msgid "Field"
|
954 |
msgstr "Feld"
|
955 |
|
956 |
+
#: templates/admin/csv-import.tpl.php:298
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid "Type"
|
959 |
msgstr "Typ"
|
960 |
|
961 |
+
#: templates/admin/csv-import.tpl.php:299
|
962 |
msgctxt "admin csv-import"
|
963 |
msgid "Required?"
|
964 |
msgstr "Pflichtfeld?"
|
965 |
|
966 |
+
#: templates/admin/csv-import.tpl.php:300
|
967 |
msgctxt "admin csv-import"
|
968 |
msgid "Multivalued?"
|
969 |
msgstr "Mehrfachwert?"
|
970 |
|
971 |
+
#: templates/admin/csv-import.tpl.php:322
|
972 |
#, fuzzy
|
973 |
msgctxt "admin csv-import"
|
974 |
msgid ""
|
978 |
"Tag des Eintragende formatiert als YYYY-MM-DD. Benutze diese Spalte, wenn "
|
979 |
"Einträge aus externen Quellen hinzugefügt oder aktualisiert werden."
|
980 |
|
981 |
+
#: templates/admin/csv-import.tpl.php:329
|
982 |
msgctxt "admin csv-import"
|
983 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
984 |
msgstr "Semikolon getrennte Liste der Eintragsbilder (aus der ZIP Datei)"
|
985 |
|
986 |
+
#: templates/admin/csv-import.tpl.php:336
|
987 |
msgctxt "admin csv-import"
|
988 |
msgid "Listing author's username"
|
989 |
msgstr "Benutzername des Authors"
|
990 |
|
991 |
+
#: templates/admin/csv-import.tpl.php:343
|
992 |
msgctxt "admin csv-import"
|
993 |
msgid ""
|
994 |
"Internal Sequence ID used to allow listing updates from external sources."
|
996 |
"Interne Sequenz ID wird benutzt um Aktualisierungen von Einträgen aus "
|
997 |
"externer Quellen durchzuführen."
|
998 |
|
999 |
+
#: templates/admin/csv-import.tpl.php:350
|
1000 |
msgctxt "admin csv-import"
|
1001 |
msgid ""
|
1002 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1017 |
msgid "Export"
|
1018 |
msgstr "CVS Export"
|
1019 |
|
1020 |
+
#: includes/admin/class-admin-listings.php:62
|
1021 |
msgctxt "admin category filter"
|
1022 |
msgid "All categories"
|
1023 |
msgstr "Alle Kategorien"
|
1024 |
|
1025 |
+
#: includes/admin/class-admin-listings.php:177
|
1026 |
#, fuzzy
|
1027 |
msgctxt "admin listings"
|
1028 |
msgid ""
|
1035 |
"Auflistung zur Verfügung stehenden Funktionen sowie die Erneuerung zu "
|
1036 |
"ermitteln."
|
1037 |
|
1038 |
+
#: includes/admin/class-admin-listings.php:296
|
1039 |
#, fuzzy
|
1040 |
msgctxt "admin listings"
|
1041 |
msgid "Never"
|
1042 |
msgstr "niemals"
|
1043 |
|
1044 |
+
#: includes/admin/class-admin-listings.php:322
|
1045 |
#, fuzzy
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Featured"
|
1048 |
msgstr "unterstützter (unbeweglicher) Status"
|
1049 |
|
1050 |
+
#: includes/admin/class-admin-listings.php:326
|
1051 |
#, fuzzy
|
1052 |
msgctxt "admin listings"
|
1053 |
msgid "Recurring"
|
1054 |
msgstr "(wiederkehrend)"
|
1055 |
|
1056 |
+
#: includes/admin/class-admin-listings.php:330
|
1057 |
#, fuzzy
|
1058 |
msgctxt "admin listings"
|
1059 |
msgid "Free"
|
1060 |
msgstr "Kostenlos"
|
1061 |
|
1062 |
+
#: includes/admin/class-admin-listings.php:332
|
1063 |
#, fuzzy
|
1064 |
msgctxt "admin listings"
|
1065 |
msgid "Paid"
|
1066 |
msgstr "Bezahlt"
|
1067 |
|
1068 |
+
#: includes/admin/class-admin-listings.php:337
|
1069 |
msgctxt "admin listings"
|
1070 |
msgid "Reported"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: includes/admin/class-admin-listings.php:666
|
1074 |
msgctxt "admin listings"
|
1075 |
msgid "Listing's payment history successfully deleted"
|
1076 |
msgstr ""
|
1098 |
msgid "Clear listing reports."
|
1099 |
msgstr "Ein Eintrag läuft aus."
|
1100 |
|
1101 |
+
#: includes/admin/class-admin-listings.php:200
|
1102 |
#, fuzzy
|
1103 |
msgctxt "admin"
|
1104 |
msgid "Directory Listing Fields / Images"
|
1105 |
msgstr "Eintrag Felder / Bilder"
|
1106 |
|
1107 |
+
#: includes/admin/class-admin-listings.php:250
|
1108 |
msgctxt "admin"
|
1109 |
msgid "Categories"
|
1110 |
msgstr "Kategorien"
|
1302 |
msgid "Go to \"Manage Fees\""
|
1303 |
msgstr "zu \"Formularfelder verwalten\""
|
1304 |
|
1305 |
+
#: includes/admin/class-admin-listings.php:307
|
1306 |
msgctxt "listing attribute"
|
1307 |
msgid "No Fee Plan"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
+
#: includes/admin/class-admin-listings.php:397
|
1311 |
msgctxt "listing status"
|
1312 |
msgid "Reported"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: includes/class-listing.php:776
|
1316 |
msgctxt "listing status"
|
1317 |
msgid "Unknown"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: includes/class-listing.php:777
|
1321 |
msgctxt "listing status"
|
1322 |
msgid "Legacy"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: includes/class-listing.php:778
|
1326 |
#, fuzzy
|
1327 |
msgctxt "listing status"
|
1328 |
msgid "Incomplete"
|
1329 |
msgstr "Abgeschlossen"
|
1330 |
|
1331 |
+
#: includes/class-listing.php:779
|
1332 |
#, fuzzy
|
1333 |
msgctxt "listing status"
|
1334 |
msgid "Pending Payment"
|
1335 |
msgstr "Ausstehende Zahlungen"
|
1336 |
|
1337 |
+
#: includes/class-listing.php:780
|
1338 |
#, fuzzy
|
1339 |
msgctxt "listing status"
|
1340 |
msgid "Complete"
|
1341 |
msgstr "Abgeschlossen"
|
1342 |
|
1343 |
+
#: includes/class-listing.php:781
|
1344 |
#, fuzzy
|
1345 |
msgctxt "listing status"
|
1346 |
msgid "Pending Upgrade"
|
1347 |
msgstr "Ausstehende Aktualisierung"
|
1348 |
|
1349 |
+
#: includes/class-listing.php:782
|
1350 |
#, fuzzy
|
1351 |
msgctxt "listing status"
|
1352 |
msgid "Expired"
|
1353 |
msgstr "Abgelaufen"
|
1354 |
|
1355 |
+
#: includes/class-listing.php:783
|
1356 |
#, fuzzy
|
1357 |
msgctxt "listing status"
|
1358 |
msgid "Pending Renewal"
|
1359 |
msgstr "Aktiv + Ausstehende Erneuerungen"
|
1360 |
|
1361 |
+
#: includes/class-listing.php:784
|
1362 |
#, fuzzy
|
1363 |
msgctxt "listing status"
|
1364 |
msgid "Abandoned"
|
1365 |
msgstr "Abgebrochen"
|
1366 |
|
1367 |
+
#: includes/admin/class-admin-listings.php:446
|
1368 |
msgctxt "admin actions"
|
1369 |
msgid "Edit Listing"
|
1370 |
msgstr "Eintrag Bearbeiten"
|
1371 |
|
1372 |
+
#: includes/admin/class-admin-listings.php:451
|
1373 |
msgctxt "admin actions"
|
1374 |
msgid "Delete Listing"
|
1375 |
msgstr "Eintrag Löschen"
|
1376 |
|
1377 |
+
#: includes/admin/class-admin-listings.php:462
|
1378 |
#, fuzzy
|
1379 |
msgctxt "admin actions"
|
1380 |
msgid "View Payments"
|
1381 |
msgstr "Bezahlung"
|
1382 |
|
1383 |
+
#: includes/admin/class-admin-listings.php:467
|
1384 |
#, fuzzy
|
1385 |
msgctxt "admin actions"
|
1386 |
msgid "View Payment"
|
1387 |
msgstr "Bezahlung"
|
1388 |
|
1389 |
+
#: includes/admin/class-admin-listings.php:605
|
1390 |
#, fuzzy
|
1391 |
msgctxt "admin actions"
|
1392 |
msgid "Publish listings"
|
1393 |
msgstr "Eintrag veröffentlichen"
|
1394 |
|
1395 |
+
#: includes/admin/class-admin-listings.php:606
|
1396 |
#, fuzzy
|
1397 |
msgctxt "admin actions"
|
1398 |
msgid "Mark as \"Pending Review\""
|
1399 |
msgstr "Ausstehend"
|
1400 |
|
1401 |
+
#: includes/admin/class-admin-listings.php:607
|
1402 |
msgctxt "admin actions"
|
1403 |
msgid "Hide from directory (mark as \"Draft\")"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: includes/admin/class-admin-listings.php:609
|
1407 |
#, fuzzy
|
1408 |
msgctxt "admin actions"
|
1409 |
msgid "Renew listings"
|
1410 |
msgstr "Eintrag erneuern"
|
1411 |
|
1412 |
+
#: includes/admin/class-admin-listings.php:610
|
1413 |
#, fuzzy
|
1414 |
msgctxt "admin actions"
|
1415 |
msgid "Set listings as \"Expired\""
|
1416 |
msgstr "Ein Eintrag läuft aus."
|
1417 |
|
1418 |
+
#: includes/admin/class-admin-listings.php:617
|
1419 |
#, fuzzy
|
1420 |
msgctxt "admin actions"
|
1421 |
msgid "Send access keys"
|
6036 |
msgid "Listing expired"
|
6037 |
msgstr "Ein Eintrag läuft aus."
|
6038 |
|
6039 |
+
#: includes/class-listing.php:516
|
6040 |
#, fuzzy
|
6041 |
msgctxt "listing"
|
6042 |
msgid "(Unavailable Plan)"
|
6043 |
msgstr "(Preis nicht verfügbar)"
|
6044 |
|
6045 |
+
#: includes/class-listing.php:673
|
6046 |
#, fuzzy
|
6047 |
msgctxt "listing"
|
6048 |
msgid "Plan \"%s\" (recurring)"
|
6049 |
msgstr "(wiederkehrend)"
|
6050 |
|
6051 |
+
#: includes/class-listing.php:675
|
6052 |
msgctxt "listing"
|
6053 |
msgid "Plan \"%s\""
|
6054 |
msgstr ""
|
8739 |
#: templates/admin/csv-import.tpl.php:116
|
8740 |
#: templates/admin/csv-import.tpl.php:142
|
8741 |
#: templates/admin/csv-import.tpl.php:153
|
8742 |
+
#: templates/admin/csv-import.tpl.php:199
|
8743 |
msgctxt "admin forms"
|
8744 |
msgid "required"
|
8745 |
msgstr "Pflichtfeld"
|
languages/WPBDM-en_US.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"PO-Revision-Date: 2017-01-16 17:47-0500\n"
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
@@ -17,23 +17,23 @@ msgstr ""
|
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"X-Poedit-SourceCharset: UTF-8\n"
|
19 |
|
20 |
-
#: includes/admin/class-admin-listings.php:
|
21 |
msgid "Listing Information"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: includes/admin/class-admin-listings.php:
|
25 |
msgid "Listing Timeline"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: includes/admin/class-admin-listings.php:
|
29 |
msgid "Listing Reports"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: includes/admin/class-admin-listings.php:
|
33 |
msgid "Expires on"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: includes/admin/class-admin-listings.php:
|
37 |
msgid "Attributes"
|
38 |
msgstr ""
|
39 |
|
@@ -51,7 +51,7 @@ msgstr ""
|
|
51 |
msgid "Uninstall"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: includes/admin/class-csv-import.php:
|
55 |
msgid "Listing imported by admin. Payment skipped."
|
56 |
msgstr ""
|
57 |
|
@@ -459,44 +459,44 @@ msgctxt "admin csv-import"
|
|
459 |
msgid "See an example CSV import file"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
463 |
msgctxt "admin csv-import"
|
464 |
msgid "Help"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: includes/admin/class-csv-import.php:
|
468 |
msgctxt "admin csv-import"
|
469 |
msgid ""
|
470 |
"Could not create listing category \"<category-name>\". The operation failed "
|
471 |
"with the following error: <error-message>."
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: includes/admin/class-csv-import.php:
|
475 |
msgctxt "admin csv-import"
|
476 |
msgid "Could not create listing category \"%s\""
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: includes/admin/class-csv-import.php:
|
480 |
msgctxt "admin csv-import"
|
481 |
msgid "Username \"%s\" does not exist"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: includes/admin/class-csv-import.php:
|
485 |
msgctxt "admin csv-import"
|
486 |
msgid "The string <string> couldn't be converted into a valid date."
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: includes/admin/class-csv-import.php:
|
490 |
msgctxt "admin csv-import"
|
491 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: includes/admin/class-csv-import.php:
|
495 |
msgctxt "admin csv-import"
|
496 |
msgid "Missing required field: %s"
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: includes/admin/class-csv-import.php:
|
500 |
msgctxt "admin csv-import"
|
501 |
msgid "Listing category \"%s\" does not exist"
|
502 |
msgstr ""
|
@@ -746,78 +746,88 @@ msgstr ""
|
|
746 |
|
747 |
#: templates/admin/csv-import.tpl.php:168
|
748 |
msgctxt "admin csv-import"
|
749 |
-
msgid "Post status of imported listings"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
msgctxt "admin csv-import"
|
754 |
msgid "Missing categories handling"
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: templates/admin/csv-import.tpl.php:
|
758 |
msgctxt "admin csv-import"
|
759 |
msgid "Auto-create categories"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: templates/admin/csv-import.tpl.php:
|
763 |
msgctxt "admin csv-import"
|
764 |
msgid "Generate errors when a category is not found"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: templates/admin/csv-import.tpl.php:
|
768 |
msgctxt "admin csv-import"
|
769 |
msgid "Keep existing listing images?"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: templates/admin/csv-import.tpl.php:
|
773 |
msgctxt "admin csv-import"
|
774 |
msgid "Keep existing images."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: templates/admin/csv-import.tpl.php:
|
778 |
msgctxt "admin csv-import"
|
779 |
msgid "Appends new images while keeping current ones."
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: templates/admin/csv-import.tpl.php:
|
783 |
msgctxt "admin csv-import"
|
784 |
msgid "Assign listings to a user?"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: templates/admin/csv-import.tpl.php:
|
788 |
msgctxt "admin csv-import"
|
789 |
msgid "Assign listings to a user."
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: templates/admin/csv-import.tpl.php:
|
793 |
msgctxt "admin csv-import"
|
794 |
msgid "Use a default user for listings?"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: templates/admin/csv-import.tpl.php:
|
798 |
msgctxt "admin csv-import"
|
799 |
msgid ""
|
800 |
"Select a default user to be used if the username column is not present in "
|
801 |
"the CSV file."
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: templates/admin/csv-import.tpl.php:
|
805 |
msgctxt "admin csv-import"
|
806 |
msgid "Default listing user"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: templates/admin/csv-import.tpl.php:
|
810 |
msgctxt "admin csv-import"
|
811 |
msgid ""
|
812 |
"This user will be used if the username column is not present in the CSV file."
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: templates/admin/csv-import.tpl.php:
|
816 |
msgctxt "admin csv-import"
|
817 |
msgid "Number of listings imported on every cycle"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: templates/admin/csv-import.tpl.php:
|
821 |
msgctxt "admin csv-import"
|
822 |
msgid ""
|
823 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -826,27 +836,27 @@ msgid ""
|
|
826 |
"success on shared hosting platforms and other resource-constrained servers."
|
827 |
msgstr ""
|
828 |
|
829 |
-
#: templates/admin/csv-import.tpl.php:
|
830 |
msgctxt "admin csv-import"
|
831 |
msgid "Disable e-mail notifications during import?"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#: templates/admin/csv-import.tpl.php:
|
835 |
msgctxt "admin csv-import"
|
836 |
msgid "Disable e-mail notifications."
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: templates/admin/csv-import.tpl.php:
|
840 |
msgctxt "admin csv-import"
|
841 |
msgid "Test Import"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: templates/admin/csv-import.tpl.php:
|
845 |
msgctxt "admin csv-import"
|
846 |
msgid "Import Listings"
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: templates/admin/csv-import.tpl.php:
|
850 |
msgctxt "admin csv-import"
|
851 |
msgid ""
|
852 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -855,55 +865,55 @@ msgid ""
|
|
855 |
"how an import file should look like."
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: templates/admin/csv-import.tpl.php:
|
859 |
msgctxt "admin csv-import"
|
860 |
msgid "Header name/label"
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: templates/admin/csv-import.tpl.php:
|
864 |
msgctxt "admin csv-import"
|
865 |
msgid "Field"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: templates/admin/csv-import.tpl.php:
|
869 |
msgctxt "admin csv-import"
|
870 |
msgid "Type"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: templates/admin/csv-import.tpl.php:
|
874 |
msgctxt "admin csv-import"
|
875 |
msgid "Required?"
|
876 |
msgstr ""
|
877 |
|
878 |
-
#: templates/admin/csv-import.tpl.php:
|
879 |
msgctxt "admin csv-import"
|
880 |
msgid "Multivalued?"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: templates/admin/csv-import.tpl.php:
|
884 |
msgctxt "admin csv-import"
|
885 |
msgid ""
|
886 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
887 |
"updating listings from external sources."
|
888 |
msgstr ""
|
889 |
|
890 |
-
#: templates/admin/csv-import.tpl.php:
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: templates/admin/csv-import.tpl.php:
|
896 |
msgctxt "admin csv-import"
|
897 |
msgid "Listing author's username"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: templates/admin/csv-import.tpl.php:
|
901 |
msgctxt "admin csv-import"
|
902 |
msgid ""
|
903 |
"Internal Sequence ID used to allow listing updates from external sources."
|
904 |
msgstr ""
|
905 |
|
906 |
-
#: templates/admin/csv-import.tpl.php:
|
907 |
msgctxt "admin csv-import"
|
908 |
msgid ""
|
909 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -920,12 +930,12 @@ msgctxt "admin csv"
|
|
920 |
msgid "Export"
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: includes/admin/class-admin-listings.php:
|
924 |
msgctxt "admin category filter"
|
925 |
msgid "All categories"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: includes/admin/class-admin-listings.php:
|
929 |
msgctxt "admin listings"
|
930 |
msgid ""
|
931 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -933,37 +943,37 @@ msgid ""
|
|
933 |
"renewals."
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: includes/admin/class-admin-listings.php:
|
937 |
msgctxt "admin listings"
|
938 |
msgid "Never"
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: includes/admin/class-admin-listings.php:
|
942 |
msgctxt "admin listings"
|
943 |
msgid "Featured"
|
944 |
msgstr ""
|
945 |
|
946 |
-
#: includes/admin/class-admin-listings.php:
|
947 |
msgctxt "admin listings"
|
948 |
msgid "Recurring"
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: includes/admin/class-admin-listings.php:
|
952 |
msgctxt "admin listings"
|
953 |
msgid "Free"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: includes/admin/class-admin-listings.php:
|
957 |
msgctxt "admin listings"
|
958 |
msgid "Paid"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/admin/class-admin-listings.php:
|
962 |
msgctxt "admin listings"
|
963 |
msgid "Reported"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: includes/admin/class-admin-listings.php:
|
967 |
msgctxt "admin listings"
|
968 |
msgid "Listing's payment history successfully deleted"
|
969 |
msgstr ""
|
@@ -988,12 +998,12 @@ msgctxt "admin listings"
|
|
988 |
msgid "Clear listing reports."
|
989 |
msgstr ""
|
990 |
|
991 |
-
#: includes/admin/class-admin-listings.php:
|
992 |
msgctxt "admin"
|
993 |
msgid "Directory Listing Fields / Images"
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: includes/admin/class-admin-listings.php:
|
997 |
msgctxt "admin"
|
998 |
msgid "Categories"
|
999 |
msgstr ""
|
@@ -1167,107 +1177,107 @@ msgctxt "admin"
|
|
1167 |
msgid "Go to \"Manage Fees\""
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: includes/admin/class-admin-listings.php:
|
1171 |
msgctxt "listing attribute"
|
1172 |
msgid "No Fee Plan"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
-
#: includes/admin/class-admin-listings.php:
|
1176 |
msgctxt "listing status"
|
1177 |
msgid "Reported"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#: includes/class-listing.php:
|
1181 |
msgctxt "listing status"
|
1182 |
msgid "Unknown"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: includes/class-listing.php:
|
1186 |
msgctxt "listing status"
|
1187 |
msgid "Legacy"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: includes/class-listing.php:
|
1191 |
msgctxt "listing status"
|
1192 |
msgid "Incomplete"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: includes/class-listing.php:
|
1196 |
msgctxt "listing status"
|
1197 |
msgid "Pending Payment"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
-
#: includes/class-listing.php:
|
1201 |
msgctxt "listing status"
|
1202 |
msgid "Complete"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: includes/class-listing.php:
|
1206 |
msgctxt "listing status"
|
1207 |
msgid "Pending Upgrade"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: includes/class-listing.php:
|
1211 |
msgctxt "listing status"
|
1212 |
msgid "Expired"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: includes/class-listing.php:
|
1216 |
msgctxt "listing status"
|
1217 |
msgid "Pending Renewal"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: includes/class-listing.php:
|
1221 |
msgctxt "listing status"
|
1222 |
msgid "Abandoned"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: includes/admin/class-admin-listings.php:
|
1226 |
msgctxt "admin actions"
|
1227 |
msgid "Edit Listing"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: includes/admin/class-admin-listings.php:
|
1231 |
msgctxt "admin actions"
|
1232 |
msgid "Delete Listing"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: includes/admin/class-admin-listings.php:
|
1236 |
msgctxt "admin actions"
|
1237 |
msgid "View Payments"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
-
#: includes/admin/class-admin-listings.php:
|
1241 |
msgctxt "admin actions"
|
1242 |
msgid "View Payment"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: includes/admin/class-admin-listings.php:
|
1246 |
msgctxt "admin actions"
|
1247 |
msgid "Publish listings"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: includes/admin/class-admin-listings.php:
|
1251 |
msgctxt "admin actions"
|
1252 |
msgid "Mark as \"Pending Review\""
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: includes/admin/class-admin-listings.php:
|
1256 |
msgctxt "admin actions"
|
1257 |
msgid "Hide from directory (mark as \"Draft\")"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: includes/admin/class-admin-listings.php:
|
1261 |
msgctxt "admin actions"
|
1262 |
msgid "Renew listings"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: includes/admin/class-admin-listings.php:
|
1266 |
msgctxt "admin actions"
|
1267 |
msgid "Set listings as \"Expired\""
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: includes/admin/class-admin-listings.php:
|
1271 |
msgctxt "admin actions"
|
1272 |
msgid "Send access keys"
|
1273 |
msgstr ""
|
@@ -5418,17 +5428,17 @@ msgctxt "listing"
|
|
5418 |
msgid "Listing expired"
|
5419 |
msgstr ""
|
5420 |
|
5421 |
-
#: includes/class-listing.php:
|
5422 |
msgctxt "listing"
|
5423 |
msgid "(Unavailable Plan)"
|
5424 |
msgstr ""
|
5425 |
|
5426 |
-
#: includes/class-listing.php:
|
5427 |
msgctxt "listing"
|
5428 |
msgid "Plan \"%s\" (recurring)"
|
5429 |
msgstr ""
|
5430 |
|
5431 |
-
#: includes/class-listing.php:
|
5432 |
msgctxt "listing"
|
5433 |
msgid "Plan \"%s\""
|
5434 |
msgstr ""
|
@@ -7884,7 +7894,7 @@ msgstr ""
|
|
7884 |
#: templates/admin/csv-import.tpl.php:116
|
7885 |
#: templates/admin/csv-import.tpl.php:142
|
7886 |
#: templates/admin/csv-import.tpl.php:153
|
7887 |
-
#: templates/admin/csv-import.tpl.php:
|
7888 |
msgctxt "admin forms"
|
7889 |
msgid "required"
|
7890 |
msgstr ""
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"PO-Revision-Date: 2017-01-16 17:47-0500\n"
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"X-Poedit-SourceCharset: UTF-8\n"
|
19 |
|
20 |
+
#: includes/admin/class-admin-listings.php:184
|
21 |
msgid "Listing Information"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: includes/admin/class-admin-listings.php:192
|
25 |
msgid "Listing Timeline"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: includes/admin/class-admin-listings.php:210
|
29 |
msgid "Listing Reports"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: includes/admin/class-admin-listings.php:251
|
33 |
msgid "Expires on"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: includes/admin/class-admin-listings.php:259
|
37 |
msgid "Attributes"
|
38 |
msgstr ""
|
39 |
|
51 |
msgid "Uninstall"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: includes/admin/class-csv-import.php:633
|
55 |
msgid "Listing imported by admin. Payment skipped."
|
56 |
msgstr ""
|
57 |
|
459 |
msgid "See an example CSV import file"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
463 |
msgctxt "admin csv-import"
|
464 |
msgid "Help"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: includes/admin/class-csv-import.php:503
|
468 |
msgctxt "admin csv-import"
|
469 |
msgid ""
|
470 |
"Could not create listing category \"<category-name>\". The operation failed "
|
471 |
"with the following error: <error-message>."
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: includes/admin/class-csv-import.php:509
|
475 |
msgctxt "admin csv-import"
|
476 |
msgid "Could not create listing category \"%s\""
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: includes/admin/class-csv-import.php:684
|
480 |
msgctxt "admin csv-import"
|
481 |
msgid "Username \"%s\" does not exist"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: includes/admin/class-csv-import.php:710
|
485 |
msgctxt "admin csv-import"
|
486 |
msgid "The string <string> couldn't be converted into a valid date."
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: includes/admin/class-csv-import.php:732
|
490 |
msgctxt "admin csv-import"
|
491 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: includes/admin/class-csv-import.php:755
|
495 |
msgctxt "admin csv-import"
|
496 |
msgid "Missing required field: %s"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: includes/admin/class-csv-import.php:780
|
500 |
msgctxt "admin csv-import"
|
501 |
msgid "Listing category \"%s\" does not exist"
|
502 |
msgstr ""
|
746 |
|
747 |
#: templates/admin/csv-import.tpl.php:168
|
748 |
msgctxt "admin csv-import"
|
749 |
+
msgid "Post status of new imported listings"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: templates/admin/csv-import.tpl.php:183
|
753 |
+
msgctxt "admin csv-import"
|
754 |
+
msgid "Post status of existing imported listings"
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: templates/admin/csv-import.tpl.php:187
|
758 |
+
msgctxt "admin csv-import"
|
759 |
+
msgid "Preserve existing status"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: templates/admin/csv-import.tpl.php:199
|
763 |
msgctxt "admin csv-import"
|
764 |
msgid "Missing categories handling"
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: templates/admin/csv-import.tpl.php:204
|
768 |
msgctxt "admin csv-import"
|
769 |
msgid "Auto-create categories"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: templates/admin/csv-import.tpl.php:207
|
773 |
msgctxt "admin csv-import"
|
774 |
msgid "Generate errors when a category is not found"
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: templates/admin/csv-import.tpl.php:212
|
778 |
msgctxt "admin csv-import"
|
779 |
msgid "Keep existing listing images?"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: templates/admin/csv-import.tpl.php:217
|
783 |
msgctxt "admin csv-import"
|
784 |
msgid "Keep existing images."
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: templates/admin/csv-import.tpl.php:218
|
788 |
msgctxt "admin csv-import"
|
789 |
msgid "Appends new images while keeping current ones."
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: templates/admin/csv-import.tpl.php:223
|
793 |
msgctxt "admin csv-import"
|
794 |
msgid "Assign listings to a user?"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: templates/admin/csv-import.tpl.php:229
|
798 |
msgctxt "admin csv-import"
|
799 |
msgid "Assign listings to a user."
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: templates/admin/csv-import.tpl.php:234
|
803 |
msgctxt "admin csv-import"
|
804 |
msgid "Use a default user for listings?"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: templates/admin/csv-import.tpl.php:240
|
808 |
msgctxt "admin csv-import"
|
809 |
msgid ""
|
810 |
"Select a default user to be used if the username column is not present in "
|
811 |
"the CSV file."
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: templates/admin/csv-import.tpl.php:245
|
815 |
msgctxt "admin csv-import"
|
816 |
msgid "Default listing user"
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: templates/admin/csv-import.tpl.php:251
|
820 |
msgctxt "admin csv-import"
|
821 |
msgid ""
|
822 |
"This user will be used if the username column is not present in the CSV file."
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: templates/admin/csv-import.tpl.php:256
|
826 |
msgctxt "admin csv-import"
|
827 |
msgid "Number of listings imported on every cycle"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: templates/admin/csv-import.tpl.php:264
|
831 |
msgctxt "admin csv-import"
|
832 |
msgid ""
|
833 |
"If you are having trouble importing listings due to memory problems, try "
|
836 |
"success on shared hosting platforms and other resource-constrained servers."
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: templates/admin/csv-import.tpl.php:269
|
840 |
msgctxt "admin csv-import"
|
841 |
msgid "Disable e-mail notifications during import?"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: templates/admin/csv-import.tpl.php:274
|
845 |
msgctxt "admin csv-import"
|
846 |
msgid "Disable e-mail notifications."
|
847 |
msgstr ""
|
848 |
|
849 |
+
#: templates/admin/csv-import.tpl.php:280
|
850 |
msgctxt "admin csv-import"
|
851 |
msgid "Test Import"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: templates/admin/csv-import.tpl.php:281
|
855 |
msgctxt "admin csv-import"
|
856 |
msgid "Import Listings"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: templates/admin/csv-import.tpl.php:289
|
860 |
msgctxt "admin csv-import"
|
861 |
msgid ""
|
862 |
"The following are the valid header names to be used in the CSV file. "
|
865 |
"how an import file should look like."
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: templates/admin/csv-import.tpl.php:296
|
869 |
msgctxt "admin csv-import"
|
870 |
msgid "Header name/label"
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: templates/admin/csv-import.tpl.php:297
|
874 |
msgctxt "admin csv-import"
|
875 |
msgid "Field"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: templates/admin/csv-import.tpl.php:298
|
879 |
msgctxt "admin csv-import"
|
880 |
msgid "Type"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: templates/admin/csv-import.tpl.php:299
|
884 |
msgctxt "admin csv-import"
|
885 |
msgid "Required?"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: templates/admin/csv-import.tpl.php:300
|
889 |
msgctxt "admin csv-import"
|
890 |
msgid "Multivalued?"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: templates/admin/csv-import.tpl.php:322
|
894 |
msgctxt "admin csv-import"
|
895 |
msgid ""
|
896 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
897 |
"updating listings from external sources."
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: templates/admin/csv-import.tpl.php:329
|
901 |
msgctxt "admin csv-import"
|
902 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: templates/admin/csv-import.tpl.php:336
|
906 |
msgctxt "admin csv-import"
|
907 |
msgid "Listing author's username"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: templates/admin/csv-import.tpl.php:343
|
911 |
msgctxt "admin csv-import"
|
912 |
msgid ""
|
913 |
"Internal Sequence ID used to allow listing updates from external sources."
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: templates/admin/csv-import.tpl.php:350
|
917 |
msgctxt "admin csv-import"
|
918 |
msgid ""
|
919 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
930 |
msgid "Export"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: includes/admin/class-admin-listings.php:62
|
934 |
msgctxt "admin category filter"
|
935 |
msgid "All categories"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: includes/admin/class-admin-listings.php:177
|
939 |
msgctxt "admin listings"
|
940 |
msgid ""
|
941 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
943 |
"renewals."
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: includes/admin/class-admin-listings.php:296
|
947 |
msgctxt "admin listings"
|
948 |
msgid "Never"
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: includes/admin/class-admin-listings.php:322
|
952 |
msgctxt "admin listings"
|
953 |
msgid "Featured"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: includes/admin/class-admin-listings.php:326
|
957 |
msgctxt "admin listings"
|
958 |
msgid "Recurring"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: includes/admin/class-admin-listings.php:330
|
962 |
msgctxt "admin listings"
|
963 |
msgid "Free"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: includes/admin/class-admin-listings.php:332
|
967 |
msgctxt "admin listings"
|
968 |
msgid "Paid"
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: includes/admin/class-admin-listings.php:337
|
972 |
msgctxt "admin listings"
|
973 |
msgid "Reported"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: includes/admin/class-admin-listings.php:666
|
977 |
msgctxt "admin listings"
|
978 |
msgid "Listing's payment history successfully deleted"
|
979 |
msgstr ""
|
998 |
msgid "Clear listing reports."
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: includes/admin/class-admin-listings.php:200
|
1002 |
msgctxt "admin"
|
1003 |
msgid "Directory Listing Fields / Images"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: includes/admin/class-admin-listings.php:250
|
1007 |
msgctxt "admin"
|
1008 |
msgid "Categories"
|
1009 |
msgstr ""
|
1177 |
msgid "Go to \"Manage Fees\""
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
#: includes/admin/class-admin-listings.php:307
|
1181 |
msgctxt "listing attribute"
|
1182 |
msgid "No Fee Plan"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
+
#: includes/admin/class-admin-listings.php:397
|
1186 |
msgctxt "listing status"
|
1187 |
msgid "Reported"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: includes/class-listing.php:776
|
1191 |
msgctxt "listing status"
|
1192 |
msgid "Unknown"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
+
#: includes/class-listing.php:777
|
1196 |
msgctxt "listing status"
|
1197 |
msgid "Legacy"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: includes/class-listing.php:778
|
1201 |
msgctxt "listing status"
|
1202 |
msgid "Incomplete"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: includes/class-listing.php:779
|
1206 |
msgctxt "listing status"
|
1207 |
msgid "Pending Payment"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: includes/class-listing.php:780
|
1211 |
msgctxt "listing status"
|
1212 |
msgid "Complete"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
+
#: includes/class-listing.php:781
|
1216 |
msgctxt "listing status"
|
1217 |
msgid "Pending Upgrade"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: includes/class-listing.php:782
|
1221 |
msgctxt "listing status"
|
1222 |
msgid "Expired"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
+
#: includes/class-listing.php:783
|
1226 |
msgctxt "listing status"
|
1227 |
msgid "Pending Renewal"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: includes/class-listing.php:784
|
1231 |
msgctxt "listing status"
|
1232 |
msgid "Abandoned"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
+
#: includes/admin/class-admin-listings.php:446
|
1236 |
msgctxt "admin actions"
|
1237 |
msgid "Edit Listing"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: includes/admin/class-admin-listings.php:451
|
1241 |
msgctxt "admin actions"
|
1242 |
msgid "Delete Listing"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: includes/admin/class-admin-listings.php:462
|
1246 |
msgctxt "admin actions"
|
1247 |
msgid "View Payments"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: includes/admin/class-admin-listings.php:467
|
1251 |
msgctxt "admin actions"
|
1252 |
msgid "View Payment"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
+
#: includes/admin/class-admin-listings.php:605
|
1256 |
msgctxt "admin actions"
|
1257 |
msgid "Publish listings"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
+
#: includes/admin/class-admin-listings.php:606
|
1261 |
msgctxt "admin actions"
|
1262 |
msgid "Mark as \"Pending Review\""
|
1263 |
msgstr ""
|
1264 |
|
1265 |
+
#: includes/admin/class-admin-listings.php:607
|
1266 |
msgctxt "admin actions"
|
1267 |
msgid "Hide from directory (mark as \"Draft\")"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: includes/admin/class-admin-listings.php:609
|
1271 |
msgctxt "admin actions"
|
1272 |
msgid "Renew listings"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: includes/admin/class-admin-listings.php:610
|
1276 |
msgctxt "admin actions"
|
1277 |
msgid "Set listings as \"Expired\""
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: includes/admin/class-admin-listings.php:617
|
1281 |
msgctxt "admin actions"
|
1282 |
msgid "Send access keys"
|
1283 |
msgstr ""
|
5428 |
msgid "Listing expired"
|
5429 |
msgstr ""
|
5430 |
|
5431 |
+
#: includes/class-listing.php:516
|
5432 |
msgctxt "listing"
|
5433 |
msgid "(Unavailable Plan)"
|
5434 |
msgstr ""
|
5435 |
|
5436 |
+
#: includes/class-listing.php:673
|
5437 |
msgctxt "listing"
|
5438 |
msgid "Plan \"%s\" (recurring)"
|
5439 |
msgstr ""
|
5440 |
|
5441 |
+
#: includes/class-listing.php:675
|
5442 |
msgctxt "listing"
|
5443 |
msgid "Plan \"%s\""
|
5444 |
msgstr ""
|
7894 |
#: templates/admin/csv-import.tpl.php:116
|
7895 |
#: templates/admin/csv-import.tpl.php:142
|
7896 |
#: templates/admin/csv-import.tpl.php:153
|
7897 |
+
#: templates/admin/csv-import.tpl.php:199
|
7898 |
msgctxt "admin forms"
|
7899 |
msgid "required"
|
7900 |
msgstr ""
|
languages/WPBDM-es_ES.mo
CHANGED
Binary file
|
languages/WPBDM-es_ES.po
CHANGED
@@ -5,36 +5,36 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
-
"PO-Revision-Date: 2020-
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
12 |
"Language: es_ES\n"
|
13 |
"MIME-Version: 1.0\n"
|
14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
"Content-Transfer-Encoding: 8bit\n"
|
16 |
-
"X-Generator: Poedit 2.
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,-1,543\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
-
#: includes/admin/class-admin-listings.php:
|
22 |
msgid "Listing Information"
|
23 |
msgstr "Información de la publicación"
|
24 |
|
25 |
-
#: includes/admin/class-admin-listings.php:
|
26 |
msgid "Listing Timeline"
|
27 |
msgstr "Línea de Tiempo"
|
28 |
|
29 |
-
#: includes/admin/class-admin-listings.php:
|
30 |
msgid "Listing Reports"
|
31 |
msgstr "Reportes"
|
32 |
|
33 |
-
#: includes/admin/class-admin-listings.php:
|
34 |
msgid "Expires on"
|
35 |
msgstr "Expira en"
|
36 |
|
37 |
-
#: includes/admin/class-admin-listings.php:
|
38 |
msgid "Attributes"
|
39 |
msgstr "Atributos"
|
40 |
|
@@ -55,7 +55,7 @@ msgstr "Desinstalar Business Directory Plugin"
|
|
55 |
msgid "Uninstall"
|
56 |
msgstr "Desinstalar"
|
57 |
|
58 |
-
#: includes/admin/class-csv-import.php:
|
59 |
msgid "Listing imported by admin. Payment skipped."
|
60 |
msgstr "El listado fue importado por el administrador. No se realizó pago."
|
61 |
|
@@ -504,12 +504,12 @@ msgctxt "admin csv-import"
|
|
504 |
msgid "See an example CSV import file"
|
505 |
msgstr "Vea un ejemplo de un archivo CSV de importación"
|
506 |
|
507 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
508 |
msgctxt "admin csv-import"
|
509 |
msgid "Help"
|
510 |
msgstr "Ayuda"
|
511 |
|
512 |
-
#: includes/admin/class-csv-import.php:
|
513 |
msgctxt "admin csv-import"
|
514 |
msgid ""
|
515 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -518,32 +518,32 @@ msgstr ""
|
|
518 |
"No fue posible crear la categoría “<category-name>”. La operación falló con "
|
519 |
"el siguiente error: <error-message>."
|
520 |
|
521 |
-
#: includes/admin/class-csv-import.php:
|
522 |
msgctxt "admin csv-import"
|
523 |
msgid "Could not create listing category \"%s\""
|
524 |
msgstr "No se pudo crear la categoría \"%s\""
|
525 |
|
526 |
-
#: includes/admin/class-csv-import.php:
|
527 |
msgctxt "admin csv-import"
|
528 |
msgid "Username \"%s\" does not exist"
|
529 |
msgstr "El usuario \"%s\" no existe"
|
530 |
|
531 |
-
#: includes/admin/class-csv-import.php:
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "The string <string> couldn't be converted into a valid date."
|
534 |
msgstr "La cadena <string> no pudo ser interpretada como una fecha válida."
|
535 |
|
536 |
-
#: includes/admin/class-csv-import.php:
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
539 |
msgstr "No existe una comisión con ID = <fee-id>"
|
540 |
|
541 |
-
#: includes/admin/class-csv-import.php:
|
542 |
msgctxt "admin csv-import"
|
543 |
msgid "Missing required field: %s"
|
544 |
msgstr "Falta campo requerido: %s"
|
545 |
|
546 |
-
#: includes/admin/class-csv-import.php:
|
547 |
msgctxt "admin csv-import"
|
548 |
msgid "Listing category \"%s\" does not exist"
|
549 |
msgstr "La categoría \"%s\" no existe"
|
@@ -805,55 +805,65 @@ msgstr "Configuraciones de Importación"
|
|
805 |
|
806 |
#: templates/admin/csv-import.tpl.php:168
|
807 |
msgctxt "admin csv-import"
|
808 |
-
msgid "Post status of imported listings"
|
809 |
-
msgstr "Estado de los listados importados"
|
810 |
|
811 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
812 |
msgctxt "admin csv-import"
|
813 |
msgid "Missing categories handling"
|
814 |
msgstr "Manejo de categorías inexistentes"
|
815 |
|
816 |
-
#: templates/admin/csv-import.tpl.php:
|
817 |
msgctxt "admin csv-import"
|
818 |
msgid "Auto-create categories"
|
819 |
msgstr "Crear categorías automáticamente"
|
820 |
|
821 |
-
#: templates/admin/csv-import.tpl.php:
|
822 |
msgctxt "admin csv-import"
|
823 |
msgid "Generate errors when a category is not found"
|
824 |
msgstr "Generar errores cuando una categoría no exista"
|
825 |
|
826 |
-
#: templates/admin/csv-import.tpl.php:
|
827 |
msgctxt "admin csv-import"
|
828 |
msgid "Keep existing listing images?"
|
829 |
msgstr "Mantener imágenes existentes?"
|
830 |
|
831 |
-
#: templates/admin/csv-import.tpl.php:
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Keep existing images."
|
834 |
msgstr "Preservar imágenes existentes."
|
835 |
|
836 |
-
#: templates/admin/csv-import.tpl.php:
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Appends new images while keeping current ones."
|
839 |
msgstr "Adiciona nuevas imágenes mientras mantiene las existentes."
|
840 |
|
841 |
-
#: templates/admin/csv-import.tpl.php:
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Assign listings to a user?"
|
844 |
msgstr "Asignar listados a un usuario?"
|
845 |
|
846 |
-
#: templates/admin/csv-import.tpl.php:
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Assign listings to a user."
|
849 |
msgstr "Asignar listados a un usuario."
|
850 |
|
851 |
-
#: templates/admin/csv-import.tpl.php:
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Use a default user for listings?"
|
854 |
msgstr "¿Utilizar un usuario por defecto para los listados?"
|
855 |
|
856 |
-
#: templates/admin/csv-import.tpl.php:
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid ""
|
859 |
"Select a default user to be used if the username column is not present in "
|
@@ -862,12 +872,12 @@ msgstr ""
|
|
862 |
"Elija un usuario por defecto para utilizar si la columna \"username\" no "
|
863 |
"está presente en el archivo CSV."
|
864 |
|
865 |
-
#: templates/admin/csv-import.tpl.php:
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Default listing user"
|
868 |
msgstr "Usuario a usar por defecto"
|
869 |
|
870 |
-
#: templates/admin/csv-import.tpl.php:
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid ""
|
873 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -875,12 +885,12 @@ msgstr ""
|
|
875 |
"Este usuario será utilizado si la columna \"username\" no está presente en "
|
876 |
"el archivo CSV."
|
877 |
|
878 |
-
#: templates/admin/csv-import.tpl.php:
|
879 |
msgctxt "admin csv-import"
|
880 |
msgid "Number of listings imported on every cycle"
|
881 |
msgstr "Número de listados a importar en cada ciclo"
|
882 |
|
883 |
-
#: templates/admin/csv-import.tpl.php:
|
884 |
msgctxt "admin csv-import"
|
885 |
msgid ""
|
886 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -894,27 +904,27 @@ msgstr ""
|
|
894 |
"éxito en plataformas de alojamiento compartido y otros servidores con "
|
895 |
"recursos limitados."
|
896 |
|
897 |
-
#: templates/admin/csv-import.tpl.php:
|
898 |
msgctxt "admin csv-import"
|
899 |
msgid "Disable e-mail notifications during import?"
|
900 |
msgstr "Deshabilitar notificaciones de correo durante la importación?"
|
901 |
|
902 |
-
#: templates/admin/csv-import.tpl.php:
|
903 |
msgctxt "admin csv-import"
|
904 |
msgid "Disable e-mail notifications."
|
905 |
msgstr "Deshabilitar notificaciones de correo-e."
|
906 |
|
907 |
-
#: templates/admin/csv-import.tpl.php:
|
908 |
msgctxt "admin csv-import"
|
909 |
msgid "Test Import"
|
910 |
msgstr "Importación de Verificación"
|
911 |
|
912 |
-
#: templates/admin/csv-import.tpl.php:
|
913 |
msgctxt "admin csv-import"
|
914 |
msgid "Import Listings"
|
915 |
msgstr "Importar Listados"
|
916 |
|
917 |
-
#: templates/admin/csv-import.tpl.php:
|
918 |
msgctxt "admin csv-import"
|
919 |
msgid ""
|
920 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -928,32 +938,32 @@ msgstr ""
|
|
928 |
"archivo CSV de ejemplo\"</a> para ver cómo debe lucir un archivo de "
|
929 |
"importación válido."
|
930 |
|
931 |
-
#: templates/admin/csv-import.tpl.php:
|
932 |
msgctxt "admin csv-import"
|
933 |
msgid "Header name/label"
|
934 |
msgstr "Nombre de cabecera"
|
935 |
|
936 |
-
#: templates/admin/csv-import.tpl.php:
|
937 |
msgctxt "admin csv-import"
|
938 |
msgid "Field"
|
939 |
msgstr "Campo"
|
940 |
|
941 |
-
#: templates/admin/csv-import.tpl.php:
|
942 |
msgctxt "admin csv-import"
|
943 |
msgid "Type"
|
944 |
msgstr "Tipo"
|
945 |
|
946 |
-
#: templates/admin/csv-import.tpl.php:
|
947 |
msgctxt "admin csv-import"
|
948 |
msgid "Required?"
|
949 |
msgstr "Requerido?"
|
950 |
|
951 |
-
#: templates/admin/csv-import.tpl.php:
|
952 |
msgctxt "admin csv-import"
|
953 |
msgid "Multivalued?"
|
954 |
msgstr "Multivaluado?"
|
955 |
|
956 |
-
#: templates/admin/csv-import.tpl.php:
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid ""
|
959 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
@@ -962,19 +972,19 @@ msgstr ""
|
|
962 |
"ID del plan de pagos (entero) asociado al listado. Use esta columna cuando "
|
963 |
"agregue o actualice listados desde fuentes externas."
|
964 |
|
965 |
-
#: templates/admin/csv-import.tpl.php:
|
966 |
msgctxt "admin csv-import"
|
967 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
968 |
msgstr ""
|
969 |
"Lista de imágenes del listado separadas con punto y coma (deben encontrarse "
|
970 |
"en el archivo ZIP)"
|
971 |
|
972 |
-
#: templates/admin/csv-import.tpl.php:
|
973 |
msgctxt "admin csv-import"
|
974 |
msgid "Listing author's username"
|
975 |
msgstr "Autor del listado (nombre de usuario)"
|
976 |
|
977 |
-
#: templates/admin/csv-import.tpl.php:
|
978 |
msgctxt "admin csv-import"
|
979 |
msgid ""
|
980 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -982,7 +992,7 @@ msgstr ""
|
|
982 |
"ID de secuencia interno utilizado para permitir actualizaciones a los "
|
983 |
"listados desde fuentes externas."
|
984 |
|
985 |
-
#: templates/admin/csv-import.tpl.php:
|
986 |
msgctxt "admin csv-import"
|
987 |
msgid ""
|
988 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1001,12 +1011,12 @@ msgctxt "admin csv"
|
|
1001 |
msgid "Export"
|
1002 |
msgstr "Exportar"
|
1003 |
|
1004 |
-
#: includes/admin/class-admin-listings.php:
|
1005 |
msgctxt "admin category filter"
|
1006 |
msgid "All categories"
|
1007 |
msgstr "Todas las categorías"
|
1008 |
|
1009 |
-
#: includes/admin/class-admin-listings.php:
|
1010 |
msgctxt "admin listings"
|
1011 |
msgid ""
|
1012 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -1017,37 +1027,37 @@ msgstr ""
|
|
1017 |
"respectiva comisión) es requerida para determinar las características "
|
1018 |
"disponibles para el listado, así como gestionar las renovaciones."
|
1019 |
|
1020 |
-
#: includes/admin/class-admin-listings.php:
|
1021 |
msgctxt "admin listings"
|
1022 |
msgid "Never"
|
1023 |
msgstr "Nunca"
|
1024 |
|
1025 |
-
#: includes/admin/class-admin-listings.php:
|
1026 |
msgctxt "admin listings"
|
1027 |
msgid "Featured"
|
1028 |
msgstr "Destacado"
|
1029 |
|
1030 |
-
#: includes/admin/class-admin-listings.php:
|
1031 |
msgctxt "admin listings"
|
1032 |
msgid "Recurring"
|
1033 |
msgstr "Recurrente"
|
1034 |
|
1035 |
-
#: includes/admin/class-admin-listings.php:
|
1036 |
msgctxt "admin listings"
|
1037 |
msgid "Free"
|
1038 |
msgstr "Gratuito"
|
1039 |
|
1040 |
-
#: includes/admin/class-admin-listings.php:
|
1041 |
msgctxt "admin listings"
|
1042 |
msgid "Paid"
|
1043 |
msgstr "Pago"
|
1044 |
|
1045 |
-
#: includes/admin/class-admin-listings.php:
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Reported"
|
1048 |
msgstr "Reportado"
|
1049 |
|
1050 |
-
#: includes/admin/class-admin-listings.php:
|
1051 |
msgctxt "admin listings"
|
1052 |
msgid "Listing's payment history successfully deleted"
|
1053 |
msgstr "El historial de pagos del listado se eliminó correctamente"
|
@@ -1072,12 +1082,12 @@ msgctxt "admin listings"
|
|
1072 |
msgid "Clear listing reports."
|
1073 |
msgstr "Eliminar los reportes de este listado."
|
1074 |
|
1075 |
-
#: includes/admin/class-admin-listings.php:
|
1076 |
msgctxt "admin"
|
1077 |
msgid "Directory Listing Fields / Images"
|
1078 |
msgstr "Campos del Listado / Imágenes"
|
1079 |
|
1080 |
-
#: includes/admin/class-admin-listings.php:
|
1081 |
msgctxt "admin"
|
1082 |
msgid "Categories"
|
1083 |
msgstr "Categorías"
|
@@ -1273,107 +1283,107 @@ msgctxt "admin"
|
|
1273 |
msgid "Go to \"Manage Fees\""
|
1274 |
msgstr "Ir a \"Administrar Comisiones“"
|
1275 |
|
1276 |
-
#: includes/admin/class-admin-listings.php:
|
1277 |
msgctxt "listing attribute"
|
1278 |
msgid "No Fee Plan"
|
1279 |
msgstr "Sin Plan de Pago"
|
1280 |
|
1281 |
-
#: includes/admin/class-admin-listings.php:
|
1282 |
msgctxt "listing status"
|
1283 |
msgid "Reported"
|
1284 |
msgstr "Reportado"
|
1285 |
|
1286 |
-
#: includes/class-listing.php:
|
1287 |
msgctxt "listing status"
|
1288 |
msgid "Unknown"
|
1289 |
msgstr "Desconocido"
|
1290 |
|
1291 |
-
#: includes/class-listing.php:
|
1292 |
msgctxt "listing status"
|
1293 |
msgid "Legacy"
|
1294 |
msgstr "Antiguo"
|
1295 |
|
1296 |
-
#: includes/class-listing.php:
|
1297 |
msgctxt "listing status"
|
1298 |
msgid "Incomplete"
|
1299 |
msgstr "Incompleto"
|
1300 |
|
1301 |
-
#: includes/class-listing.php:
|
1302 |
msgctxt "listing status"
|
1303 |
msgid "Pending Payment"
|
1304 |
msgstr "Pendiente de pago"
|
1305 |
|
1306 |
-
#: includes/class-listing.php:
|
1307 |
msgctxt "listing status"
|
1308 |
msgid "Complete"
|
1309 |
msgstr "Completado"
|
1310 |
|
1311 |
-
#: includes/class-listing.php:
|
1312 |
msgctxt "listing status"
|
1313 |
msgid "Pending Upgrade"
|
1314 |
msgstr "Pendiente de mejora"
|
1315 |
|
1316 |
-
#: includes/class-listing.php:
|
1317 |
msgctxt "listing status"
|
1318 |
msgid "Expired"
|
1319 |
msgstr "Expirado"
|
1320 |
|
1321 |
-
#: includes/class-listing.php:
|
1322 |
msgctxt "listing status"
|
1323 |
msgid "Pending Renewal"
|
1324 |
msgstr "Pendientes de renovación"
|
1325 |
|
1326 |
-
#: includes/class-listing.php:
|
1327 |
msgctxt "listing status"
|
1328 |
msgid "Abandoned"
|
1329 |
msgstr "Abandonado"
|
1330 |
|
1331 |
-
#: includes/admin/class-admin-listings.php:
|
1332 |
msgctxt "admin actions"
|
1333 |
msgid "Edit Listing"
|
1334 |
msgstr "Editar Listado"
|
1335 |
|
1336 |
-
#: includes/admin/class-admin-listings.php:
|
1337 |
msgctxt "admin actions"
|
1338 |
msgid "Delete Listing"
|
1339 |
msgstr "Eliminar Listado"
|
1340 |
|
1341 |
-
#: includes/admin/class-admin-listings.php:
|
1342 |
msgctxt "admin actions"
|
1343 |
msgid "View Payments"
|
1344 |
msgstr "Ver Pagos"
|
1345 |
|
1346 |
-
#: includes/admin/class-admin-listings.php:
|
1347 |
msgctxt "admin actions"
|
1348 |
msgid "View Payment"
|
1349 |
msgstr "Ver Pago"
|
1350 |
|
1351 |
-
#: includes/admin/class-admin-listings.php:
|
1352 |
msgctxt "admin actions"
|
1353 |
msgid "Publish listings"
|
1354 |
msgstr "Publicar Listado"
|
1355 |
|
1356 |
-
#: includes/admin/class-admin-listings.php:
|
1357 |
msgctxt "admin actions"
|
1358 |
msgid "Mark as \"Pending Review\""
|
1359 |
msgstr "Marcar como “Pendiente de Revisión”"
|
1360 |
|
1361 |
-
#: includes/admin/class-admin-listings.php:
|
1362 |
msgctxt "admin actions"
|
1363 |
msgid "Hide from directory (mark as \"Draft\")"
|
1364 |
msgstr "No mostrar en el directorio (marcar como “Borrador”)"
|
1365 |
|
1366 |
-
#: includes/admin/class-admin-listings.php:
|
1367 |
msgctxt "admin actions"
|
1368 |
msgid "Renew listings"
|
1369 |
msgstr "Renovar listados"
|
1370 |
|
1371 |
-
#: includes/admin/class-admin-listings.php:
|
1372 |
msgctxt "admin actions"
|
1373 |
msgid "Set listings as \"Expired\""
|
1374 |
msgstr "Marcar listados como “Expirados”"
|
1375 |
|
1376 |
-
#: includes/admin/class-admin-listings.php:
|
1377 |
msgctxt "admin actions"
|
1378 |
msgid "Send access keys"
|
1379 |
msgstr "Enviar claves de acceso"
|
@@ -5544,12 +5554,12 @@ msgstr ""
|
|
5544 |
#: includes/admin/upgrades/migrations/migration-18_0.php:87
|
5545 |
msgctxt "installer"
|
5546 |
msgid "Migrating license information to new format..."
|
5547 |
-
msgstr "Migrando la información de las licencias al nuevo formato
|
5548 |
|
5549 |
#: includes/admin/upgrades/migrations/migration-18_0.php:196
|
5550 |
msgctxt "installer"
|
5551 |
msgid "Migrating email notices to new format..."
|
5552 |
-
msgstr "Migrando notificaciones de correo electrónico al nuevo formato
|
5553 |
|
5554 |
#: includes/admin/upgrades/migrations/migration-18_0.php:207
|
5555 |
msgctxt "installer"
|
@@ -5575,7 +5585,7 @@ msgstr ""
|
|
5575 |
#: includes/admin/upgrades/migrations/migration-18_0.php:391
|
5576 |
msgctxt "installer"
|
5577 |
msgid "Migrating listing information: %d items remaining..."
|
5578 |
-
msgstr "Migrando la información de los listados: %d listados pendientes
|
5579 |
|
5580 |
#: includes/admin/upgrades/migrations/migration-3_2.php:77
|
5581 |
msgctxt "installer"
|
@@ -5820,17 +5830,17 @@ msgctxt "listing"
|
|
5820 |
msgid "Listing expired"
|
5821 |
msgstr "El listado expiró"
|
5822 |
|
5823 |
-
#: includes/class-listing.php:
|
5824 |
msgctxt "listing"
|
5825 |
msgid "(Unavailable Plan)"
|
5826 |
msgstr "(Comisión no disponible)"
|
5827 |
|
5828 |
-
#: includes/class-listing.php:
|
5829 |
msgctxt "listing"
|
5830 |
msgid "Plan \"%s\" (recurring)"
|
5831 |
msgstr "Comisión “%s” (recurrente)"
|
5832 |
|
5833 |
-
#: includes/class-listing.php:
|
5834 |
msgctxt "listing"
|
5835 |
msgid "Plan \"%s\""
|
5836 |
msgstr "Comisión “%s”"
|
@@ -6896,7 +6906,7 @@ msgid ""
|
|
6896 |
msgstr ""
|
6897 |
"<b>Vista no disponible</b>, no existe un campo con la asociación "
|
6898 |
"“Categoría”. %s y cree un nuevo campo con dicha asociación, o asigne la "
|
6899 |
-
"asociación a un campo existente
|
6900 |
|
6901 |
#: includes/views/submit_listing.php:896
|
6902 |
msgctxt "templates"
|
@@ -7533,7 +7543,7 @@ msgid ""
|
|
7533 |
"Include this message if necessary."
|
7534 |
msgstr ""
|
7535 |
"Por favor contacte a su proveedor de hospedaje y solicite que actualicen su "
|
7536 |
-
"sistema. Incluya este mensaje si es necesario"
|
7537 |
|
7538 |
#: includes/licensing.php:451
|
7539 |
msgctxt "licensing"
|
@@ -8465,7 +8475,7 @@ msgstr "Buscar"
|
|
8465 |
#: templates/admin/csv-import.tpl.php:116
|
8466 |
#: templates/admin/csv-import.tpl.php:142
|
8467 |
#: templates/admin/csv-import.tpl.php:153
|
8468 |
-
#: templates/admin/csv-import.tpl.php:
|
8469 |
msgctxt "admin forms"
|
8470 |
msgid "required"
|
8471 |
msgstr "requerido"
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
+
"PO-Revision-Date: 2020-02-11 17:17-0500\n"
|
10 |
"Last-Translator: BD Team <support@businessdirectoryplugin.com>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
12 |
"Language: es_ES\n"
|
13 |
"MIME-Version: 1.0\n"
|
14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"X-Generator: Poedit 2.3\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,-1,543\n"
|
19 |
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
|
21 |
+
#: includes/admin/class-admin-listings.php:184
|
22 |
msgid "Listing Information"
|
23 |
msgstr "Información de la publicación"
|
24 |
|
25 |
+
#: includes/admin/class-admin-listings.php:192
|
26 |
msgid "Listing Timeline"
|
27 |
msgstr "Línea de Tiempo"
|
28 |
|
29 |
+
#: includes/admin/class-admin-listings.php:210
|
30 |
msgid "Listing Reports"
|
31 |
msgstr "Reportes"
|
32 |
|
33 |
+
#: includes/admin/class-admin-listings.php:251
|
34 |
msgid "Expires on"
|
35 |
msgstr "Expira en"
|
36 |
|
37 |
+
#: includes/admin/class-admin-listings.php:259
|
38 |
msgid "Attributes"
|
39 |
msgstr "Atributos"
|
40 |
|
55 |
msgid "Uninstall"
|
56 |
msgstr "Desinstalar"
|
57 |
|
58 |
+
#: includes/admin/class-csv-import.php:633
|
59 |
msgid "Listing imported by admin. Payment skipped."
|
60 |
msgstr "El listado fue importado por el administrador. No se realizó pago."
|
61 |
|
504 |
msgid "See an example CSV import file"
|
505 |
msgstr "Vea un ejemplo de un archivo CSV de importación"
|
506 |
|
507 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
508 |
msgctxt "admin csv-import"
|
509 |
msgid "Help"
|
510 |
msgstr "Ayuda"
|
511 |
|
512 |
+
#: includes/admin/class-csv-import.php:503
|
513 |
msgctxt "admin csv-import"
|
514 |
msgid ""
|
515 |
"Could not create listing category \"<category-name>\". The operation failed "
|
518 |
"No fue posible crear la categoría “<category-name>”. La operación falló con "
|
519 |
"el siguiente error: <error-message>."
|
520 |
|
521 |
+
#: includes/admin/class-csv-import.php:509
|
522 |
msgctxt "admin csv-import"
|
523 |
msgid "Could not create listing category \"%s\""
|
524 |
msgstr "No se pudo crear la categoría \"%s\""
|
525 |
|
526 |
+
#: includes/admin/class-csv-import.php:684
|
527 |
msgctxt "admin csv-import"
|
528 |
msgid "Username \"%s\" does not exist"
|
529 |
msgstr "El usuario \"%s\" no existe"
|
530 |
|
531 |
+
#: includes/admin/class-csv-import.php:710
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "The string <string> couldn't be converted into a valid date."
|
534 |
msgstr "La cadena <string> no pudo ser interpretada como una fecha válida."
|
535 |
|
536 |
+
#: includes/admin/class-csv-import.php:732
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
539 |
msgstr "No existe una comisión con ID = <fee-id>"
|
540 |
|
541 |
+
#: includes/admin/class-csv-import.php:755
|
542 |
msgctxt "admin csv-import"
|
543 |
msgid "Missing required field: %s"
|
544 |
msgstr "Falta campo requerido: %s"
|
545 |
|
546 |
+
#: includes/admin/class-csv-import.php:780
|
547 |
msgctxt "admin csv-import"
|
548 |
msgid "Listing category \"%s\" does not exist"
|
549 |
msgstr "La categoría \"%s\" no existe"
|
805 |
|
806 |
#: templates/admin/csv-import.tpl.php:168
|
807 |
msgctxt "admin csv-import"
|
808 |
+
msgid "Post status of new imported listings"
|
809 |
+
msgstr "Estado de los nuevos listados importados"
|
810 |
|
811 |
+
#: templates/admin/csv-import.tpl.php:183
|
812 |
+
msgctxt "admin csv-import"
|
813 |
+
msgid "Post status of existing imported listings"
|
814 |
+
msgstr "Estado de los listados importados existentes"
|
815 |
+
|
816 |
+
#: templates/admin/csv-import.tpl.php:187
|
817 |
+
msgctxt "admin csv-import"
|
818 |
+
msgid "Preserve existing status"
|
819 |
+
msgstr "Conservar estado del Listado"
|
820 |
+
|
821 |
+
#: templates/admin/csv-import.tpl.php:199
|
822 |
msgctxt "admin csv-import"
|
823 |
msgid "Missing categories handling"
|
824 |
msgstr "Manejo de categorías inexistentes"
|
825 |
|
826 |
+
#: templates/admin/csv-import.tpl.php:204
|
827 |
msgctxt "admin csv-import"
|
828 |
msgid "Auto-create categories"
|
829 |
msgstr "Crear categorías automáticamente"
|
830 |
|
831 |
+
#: templates/admin/csv-import.tpl.php:207
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Generate errors when a category is not found"
|
834 |
msgstr "Generar errores cuando una categoría no exista"
|
835 |
|
836 |
+
#: templates/admin/csv-import.tpl.php:212
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Keep existing listing images?"
|
839 |
msgstr "Mantener imágenes existentes?"
|
840 |
|
841 |
+
#: templates/admin/csv-import.tpl.php:217
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Keep existing images."
|
844 |
msgstr "Preservar imágenes existentes."
|
845 |
|
846 |
+
#: templates/admin/csv-import.tpl.php:218
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Appends new images while keeping current ones."
|
849 |
msgstr "Adiciona nuevas imágenes mientras mantiene las existentes."
|
850 |
|
851 |
+
#: templates/admin/csv-import.tpl.php:223
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Assign listings to a user?"
|
854 |
msgstr "Asignar listados a un usuario?"
|
855 |
|
856 |
+
#: templates/admin/csv-import.tpl.php:229
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid "Assign listings to a user."
|
859 |
msgstr "Asignar listados a un usuario."
|
860 |
|
861 |
+
#: templates/admin/csv-import.tpl.php:234
|
862 |
msgctxt "admin csv-import"
|
863 |
msgid "Use a default user for listings?"
|
864 |
msgstr "¿Utilizar un usuario por defecto para los listados?"
|
865 |
|
866 |
+
#: templates/admin/csv-import.tpl.php:240
|
867 |
msgctxt "admin csv-import"
|
868 |
msgid ""
|
869 |
"Select a default user to be used if the username column is not present in "
|
872 |
"Elija un usuario por defecto para utilizar si la columna \"username\" no "
|
873 |
"está presente en el archivo CSV."
|
874 |
|
875 |
+
#: templates/admin/csv-import.tpl.php:245
|
876 |
msgctxt "admin csv-import"
|
877 |
msgid "Default listing user"
|
878 |
msgstr "Usuario a usar por defecto"
|
879 |
|
880 |
+
#: templates/admin/csv-import.tpl.php:251
|
881 |
msgctxt "admin csv-import"
|
882 |
msgid ""
|
883 |
"This user will be used if the username column is not present in the CSV file."
|
885 |
"Este usuario será utilizado si la columna \"username\" no está presente en "
|
886 |
"el archivo CSV."
|
887 |
|
888 |
+
#: templates/admin/csv-import.tpl.php:256
|
889 |
msgctxt "admin csv-import"
|
890 |
msgid "Number of listings imported on every cycle"
|
891 |
msgstr "Número de listados a importar en cada ciclo"
|
892 |
|
893 |
+
#: templates/admin/csv-import.tpl.php:264
|
894 |
msgctxt "admin csv-import"
|
895 |
msgid ""
|
896 |
"If you are having trouble importing listings due to memory problems, try "
|
904 |
"éxito en plataformas de alojamiento compartido y otros servidores con "
|
905 |
"recursos limitados."
|
906 |
|
907 |
+
#: templates/admin/csv-import.tpl.php:269
|
908 |
msgctxt "admin csv-import"
|
909 |
msgid "Disable e-mail notifications during import?"
|
910 |
msgstr "Deshabilitar notificaciones de correo durante la importación?"
|
911 |
|
912 |
+
#: templates/admin/csv-import.tpl.php:274
|
913 |
msgctxt "admin csv-import"
|
914 |
msgid "Disable e-mail notifications."
|
915 |
msgstr "Deshabilitar notificaciones de correo-e."
|
916 |
|
917 |
+
#: templates/admin/csv-import.tpl.php:280
|
918 |
msgctxt "admin csv-import"
|
919 |
msgid "Test Import"
|
920 |
msgstr "Importación de Verificación"
|
921 |
|
922 |
+
#: templates/admin/csv-import.tpl.php:281
|
923 |
msgctxt "admin csv-import"
|
924 |
msgid "Import Listings"
|
925 |
msgstr "Importar Listados"
|
926 |
|
927 |
+
#: templates/admin/csv-import.tpl.php:289
|
928 |
msgctxt "admin csv-import"
|
929 |
msgid ""
|
930 |
"The following are the valid header names to be used in the CSV file. "
|
938 |
"archivo CSV de ejemplo\"</a> para ver cómo debe lucir un archivo de "
|
939 |
"importación válido."
|
940 |
|
941 |
+
#: templates/admin/csv-import.tpl.php:296
|
942 |
msgctxt "admin csv-import"
|
943 |
msgid "Header name/label"
|
944 |
msgstr "Nombre de cabecera"
|
945 |
|
946 |
+
#: templates/admin/csv-import.tpl.php:297
|
947 |
msgctxt "admin csv-import"
|
948 |
msgid "Field"
|
949 |
msgstr "Campo"
|
950 |
|
951 |
+
#: templates/admin/csv-import.tpl.php:298
|
952 |
msgctxt "admin csv-import"
|
953 |
msgid "Type"
|
954 |
msgstr "Tipo"
|
955 |
|
956 |
+
#: templates/admin/csv-import.tpl.php:299
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid "Required?"
|
959 |
msgstr "Requerido?"
|
960 |
|
961 |
+
#: templates/admin/csv-import.tpl.php:300
|
962 |
msgctxt "admin csv-import"
|
963 |
msgid "Multivalued?"
|
964 |
msgstr "Multivaluado?"
|
965 |
|
966 |
+
#: templates/admin/csv-import.tpl.php:322
|
967 |
msgctxt "admin csv-import"
|
968 |
msgid ""
|
969 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
972 |
"ID del plan de pagos (entero) asociado al listado. Use esta columna cuando "
|
973 |
"agregue o actualice listados desde fuentes externas."
|
974 |
|
975 |
+
#: templates/admin/csv-import.tpl.php:329
|
976 |
msgctxt "admin csv-import"
|
977 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
978 |
msgstr ""
|
979 |
"Lista de imágenes del listado separadas con punto y coma (deben encontrarse "
|
980 |
"en el archivo ZIP)"
|
981 |
|
982 |
+
#: templates/admin/csv-import.tpl.php:336
|
983 |
msgctxt "admin csv-import"
|
984 |
msgid "Listing author's username"
|
985 |
msgstr "Autor del listado (nombre de usuario)"
|
986 |
|
987 |
+
#: templates/admin/csv-import.tpl.php:343
|
988 |
msgctxt "admin csv-import"
|
989 |
msgid ""
|
990 |
"Internal Sequence ID used to allow listing updates from external sources."
|
992 |
"ID de secuencia interno utilizado para permitir actualizaciones a los "
|
993 |
"listados desde fuentes externas."
|
994 |
|
995 |
+
#: templates/admin/csv-import.tpl.php:350
|
996 |
msgctxt "admin csv-import"
|
997 |
msgid ""
|
998 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1011 |
msgid "Export"
|
1012 |
msgstr "Exportar"
|
1013 |
|
1014 |
+
#: includes/admin/class-admin-listings.php:62
|
1015 |
msgctxt "admin category filter"
|
1016 |
msgid "All categories"
|
1017 |
msgstr "Todas las categorías"
|
1018 |
|
1019 |
+
#: includes/admin/class-admin-listings.php:177
|
1020 |
msgctxt "admin listings"
|
1021 |
msgid ""
|
1022 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1027 |
"respectiva comisión) es requerida para determinar las características "
|
1028 |
"disponibles para el listado, así como gestionar las renovaciones."
|
1029 |
|
1030 |
+
#: includes/admin/class-admin-listings.php:296
|
1031 |
msgctxt "admin listings"
|
1032 |
msgid "Never"
|
1033 |
msgstr "Nunca"
|
1034 |
|
1035 |
+
#: includes/admin/class-admin-listings.php:322
|
1036 |
msgctxt "admin listings"
|
1037 |
msgid "Featured"
|
1038 |
msgstr "Destacado"
|
1039 |
|
1040 |
+
#: includes/admin/class-admin-listings.php:326
|
1041 |
msgctxt "admin listings"
|
1042 |
msgid "Recurring"
|
1043 |
msgstr "Recurrente"
|
1044 |
|
1045 |
+
#: includes/admin/class-admin-listings.php:330
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Free"
|
1048 |
msgstr "Gratuito"
|
1049 |
|
1050 |
+
#: includes/admin/class-admin-listings.php:332
|
1051 |
msgctxt "admin listings"
|
1052 |
msgid "Paid"
|
1053 |
msgstr "Pago"
|
1054 |
|
1055 |
+
#: includes/admin/class-admin-listings.php:337
|
1056 |
msgctxt "admin listings"
|
1057 |
msgid "Reported"
|
1058 |
msgstr "Reportado"
|
1059 |
|
1060 |
+
#: includes/admin/class-admin-listings.php:666
|
1061 |
msgctxt "admin listings"
|
1062 |
msgid "Listing's payment history successfully deleted"
|
1063 |
msgstr "El historial de pagos del listado se eliminó correctamente"
|
1082 |
msgid "Clear listing reports."
|
1083 |
msgstr "Eliminar los reportes de este listado."
|
1084 |
|
1085 |
+
#: includes/admin/class-admin-listings.php:200
|
1086 |
msgctxt "admin"
|
1087 |
msgid "Directory Listing Fields / Images"
|
1088 |
msgstr "Campos del Listado / Imágenes"
|
1089 |
|
1090 |
+
#: includes/admin/class-admin-listings.php:250
|
1091 |
msgctxt "admin"
|
1092 |
msgid "Categories"
|
1093 |
msgstr "Categorías"
|
1283 |
msgid "Go to \"Manage Fees\""
|
1284 |
msgstr "Ir a \"Administrar Comisiones“"
|
1285 |
|
1286 |
+
#: includes/admin/class-admin-listings.php:307
|
1287 |
msgctxt "listing attribute"
|
1288 |
msgid "No Fee Plan"
|
1289 |
msgstr "Sin Plan de Pago"
|
1290 |
|
1291 |
+
#: includes/admin/class-admin-listings.php:397
|
1292 |
msgctxt "listing status"
|
1293 |
msgid "Reported"
|
1294 |
msgstr "Reportado"
|
1295 |
|
1296 |
+
#: includes/class-listing.php:776
|
1297 |
msgctxt "listing status"
|
1298 |
msgid "Unknown"
|
1299 |
msgstr "Desconocido"
|
1300 |
|
1301 |
+
#: includes/class-listing.php:777
|
1302 |
msgctxt "listing status"
|
1303 |
msgid "Legacy"
|
1304 |
msgstr "Antiguo"
|
1305 |
|
1306 |
+
#: includes/class-listing.php:778
|
1307 |
msgctxt "listing status"
|
1308 |
msgid "Incomplete"
|
1309 |
msgstr "Incompleto"
|
1310 |
|
1311 |
+
#: includes/class-listing.php:779
|
1312 |
msgctxt "listing status"
|
1313 |
msgid "Pending Payment"
|
1314 |
msgstr "Pendiente de pago"
|
1315 |
|
1316 |
+
#: includes/class-listing.php:780
|
1317 |
msgctxt "listing status"
|
1318 |
msgid "Complete"
|
1319 |
msgstr "Completado"
|
1320 |
|
1321 |
+
#: includes/class-listing.php:781
|
1322 |
msgctxt "listing status"
|
1323 |
msgid "Pending Upgrade"
|
1324 |
msgstr "Pendiente de mejora"
|
1325 |
|
1326 |
+
#: includes/class-listing.php:782
|
1327 |
msgctxt "listing status"
|
1328 |
msgid "Expired"
|
1329 |
msgstr "Expirado"
|
1330 |
|
1331 |
+
#: includes/class-listing.php:783
|
1332 |
msgctxt "listing status"
|
1333 |
msgid "Pending Renewal"
|
1334 |
msgstr "Pendientes de renovación"
|
1335 |
|
1336 |
+
#: includes/class-listing.php:784
|
1337 |
msgctxt "listing status"
|
1338 |
msgid "Abandoned"
|
1339 |
msgstr "Abandonado"
|
1340 |
|
1341 |
+
#: includes/admin/class-admin-listings.php:446
|
1342 |
msgctxt "admin actions"
|
1343 |
msgid "Edit Listing"
|
1344 |
msgstr "Editar Listado"
|
1345 |
|
1346 |
+
#: includes/admin/class-admin-listings.php:451
|
1347 |
msgctxt "admin actions"
|
1348 |
msgid "Delete Listing"
|
1349 |
msgstr "Eliminar Listado"
|
1350 |
|
1351 |
+
#: includes/admin/class-admin-listings.php:462
|
1352 |
msgctxt "admin actions"
|
1353 |
msgid "View Payments"
|
1354 |
msgstr "Ver Pagos"
|
1355 |
|
1356 |
+
#: includes/admin/class-admin-listings.php:467
|
1357 |
msgctxt "admin actions"
|
1358 |
msgid "View Payment"
|
1359 |
msgstr "Ver Pago"
|
1360 |
|
1361 |
+
#: includes/admin/class-admin-listings.php:605
|
1362 |
msgctxt "admin actions"
|
1363 |
msgid "Publish listings"
|
1364 |
msgstr "Publicar Listado"
|
1365 |
|
1366 |
+
#: includes/admin/class-admin-listings.php:606
|
1367 |
msgctxt "admin actions"
|
1368 |
msgid "Mark as \"Pending Review\""
|
1369 |
msgstr "Marcar como “Pendiente de Revisión”"
|
1370 |
|
1371 |
+
#: includes/admin/class-admin-listings.php:607
|
1372 |
msgctxt "admin actions"
|
1373 |
msgid "Hide from directory (mark as \"Draft\")"
|
1374 |
msgstr "No mostrar en el directorio (marcar como “Borrador”)"
|
1375 |
|
1376 |
+
#: includes/admin/class-admin-listings.php:609
|
1377 |
msgctxt "admin actions"
|
1378 |
msgid "Renew listings"
|
1379 |
msgstr "Renovar listados"
|
1380 |
|
1381 |
+
#: includes/admin/class-admin-listings.php:610
|
1382 |
msgctxt "admin actions"
|
1383 |
msgid "Set listings as \"Expired\""
|
1384 |
msgstr "Marcar listados como “Expirados”"
|
1385 |
|
1386 |
+
#: includes/admin/class-admin-listings.php:617
|
1387 |
msgctxt "admin actions"
|
1388 |
msgid "Send access keys"
|
1389 |
msgstr "Enviar claves de acceso"
|
5554 |
#: includes/admin/upgrades/migrations/migration-18_0.php:87
|
5555 |
msgctxt "installer"
|
5556 |
msgid "Migrating license information to new format..."
|
5557 |
+
msgstr "Migrando la información de las licencias al nuevo formato..."
|
5558 |
|
5559 |
#: includes/admin/upgrades/migrations/migration-18_0.php:196
|
5560 |
msgctxt "installer"
|
5561 |
msgid "Migrating email notices to new format..."
|
5562 |
+
msgstr "Migrando notificaciones de correo electrónico al nuevo formato..."
|
5563 |
|
5564 |
#: includes/admin/upgrades/migrations/migration-18_0.php:207
|
5565 |
msgctxt "installer"
|
5585 |
#: includes/admin/upgrades/migrations/migration-18_0.php:391
|
5586 |
msgctxt "installer"
|
5587 |
msgid "Migrating listing information: %d items remaining..."
|
5588 |
+
msgstr "Migrando la información de los listados: %d listados pendientes..."
|
5589 |
|
5590 |
#: includes/admin/upgrades/migrations/migration-3_2.php:77
|
5591 |
msgctxt "installer"
|
5830 |
msgid "Listing expired"
|
5831 |
msgstr "El listado expiró"
|
5832 |
|
5833 |
+
#: includes/class-listing.php:516
|
5834 |
msgctxt "listing"
|
5835 |
msgid "(Unavailable Plan)"
|
5836 |
msgstr "(Comisión no disponible)"
|
5837 |
|
5838 |
+
#: includes/class-listing.php:673
|
5839 |
msgctxt "listing"
|
5840 |
msgid "Plan \"%s\" (recurring)"
|
5841 |
msgstr "Comisión “%s” (recurrente)"
|
5842 |
|
5843 |
+
#: includes/class-listing.php:675
|
5844 |
msgctxt "listing"
|
5845 |
msgid "Plan \"%s\""
|
5846 |
msgstr "Comisión “%s”"
|
6906 |
msgstr ""
|
6907 |
"<b>Vista no disponible</b>, no existe un campo con la asociación "
|
6908 |
"“Categoría”. %s y cree un nuevo campo con dicha asociación, o asigne la "
|
6909 |
+
"asociación a un campo existente"
|
6910 |
|
6911 |
#: includes/views/submit_listing.php:896
|
6912 |
msgctxt "templates"
|
7543 |
"Include this message if necessary."
|
7544 |
msgstr ""
|
7545 |
"Por favor contacte a su proveedor de hospedaje y solicite que actualicen su "
|
7546 |
+
"sistema. Incluya este mensaje si es necesario."
|
7547 |
|
7548 |
#: includes/licensing.php:451
|
7549 |
msgctxt "licensing"
|
8475 |
#: templates/admin/csv-import.tpl.php:116
|
8476 |
#: templates/admin/csv-import.tpl.php:142
|
8477 |
#: templates/admin/csv-import.tpl.php:153
|
8478 |
+
#: templates/admin/csv-import.tpl.php:199
|
8479 |
msgctxt "admin forms"
|
8480 |
msgid "required"
|
8481 |
msgstr "requerido"
|
languages/WPBDM-fr_FR.mo
CHANGED
Binary file
|
languages/WPBDM-fr_FR.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"PO-Revision-Date: 2017-11-13 00:48+0100\n"
|
10 |
"Last-Translator: Laurent Provin <lprovin@yahoo.fr>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
@@ -17,24 +17,24 @@ msgstr ""
|
|
17 |
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
18 |
"X-Poedit-SourceCharset: UTF-8\n"
|
19 |
|
20 |
-
#: includes/admin/class-admin-listings.php:
|
21 |
msgid "Listing Information"
|
22 |
msgstr "Information sur l'annonce"
|
23 |
|
24 |
-
#: includes/admin/class-admin-listings.php:
|
25 |
msgid "Listing Timeline"
|
26 |
msgstr "Titre de l'annonce"
|
27 |
|
28 |
-
#: includes/admin/class-admin-listings.php:
|
29 |
#, fuzzy
|
30 |
msgid "Listing Reports"
|
31 |
msgstr "Une annonce expire"
|
32 |
|
33 |
-
#: includes/admin/class-admin-listings.php:
|
34 |
msgid "Expires on"
|
35 |
msgstr "Expire le"
|
36 |
|
37 |
-
#: includes/admin/class-admin-listings.php:
|
38 |
msgid "Attributes"
|
39 |
msgstr "Attributs"
|
40 |
|
@@ -55,7 +55,7 @@ msgstr "Désinstaller le Plugin Annuaire Professionnel"
|
|
55 |
msgid "Uninstall"
|
56 |
msgstr "Désinstaller"
|
57 |
|
58 |
-
#: includes/admin/class-csv-import.php:
|
59 |
#, fuzzy
|
60 |
msgid "Listing imported by admin. Payment skipped."
|
61 |
msgstr "Annonce soumis par admin. Paiement sauté."
|
@@ -500,12 +500,12 @@ msgctxt "admin csv-import"
|
|
500 |
msgid "See an example CSV import file"
|
501 |
msgstr "Voir un exemple de fichier CSV importé"
|
502 |
|
503 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
504 |
msgctxt "admin csv-import"
|
505 |
msgid "Help"
|
506 |
msgstr "Aide"
|
507 |
|
508 |
-
#: includes/admin/class-csv-import.php:
|
509 |
msgctxt "admin csv-import"
|
510 |
msgid ""
|
511 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -514,32 +514,32 @@ msgstr ""
|
|
514 |
"Impossible de créer la catégorie d'inscription \"<category-name>\". "
|
515 |
"L'opération a échoué avec l'erreur suivante : <error-message>."
|
516 |
|
517 |
-
#: includes/admin/class-csv-import.php:
|
518 |
msgctxt "admin csv-import"
|
519 |
msgid "Could not create listing category \"%s\""
|
520 |
msgstr "Vous ne pouvez pas créer cette catégorie d'annonce \"%s\""
|
521 |
|
522 |
-
#: includes/admin/class-csv-import.php:
|
523 |
msgctxt "admin csv-import"
|
524 |
msgid "Username \"%s\" does not exist"
|
525 |
msgstr "Le nom d'utilisateur \"%s\" n'existe pas"
|
526 |
|
527 |
-
#: includes/admin/class-csv-import.php:
|
528 |
msgctxt "admin csv-import"
|
529 |
msgid "The string <string> couldn't be converted into a valid date."
|
530 |
msgstr "La chaîne <string> ne peut pas être convertie en une date valide."
|
531 |
|
532 |
-
#: includes/admin/class-csv-import.php:
|
533 |
msgctxt "admin csv-import"
|
534 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
535 |
msgstr "Il n'y a pas de plan de frais avec ID = <fee-id>"
|
536 |
|
537 |
-
#: includes/admin/class-csv-import.php:
|
538 |
msgctxt "admin csv-import"
|
539 |
msgid "Missing required field: %s"
|
540 |
msgstr "Absence d'un champ requis: %s"
|
541 |
|
542 |
-
#: includes/admin/class-csv-import.php:
|
543 |
msgctxt "admin csv-import"
|
544 |
msgid "Listing category \"%s\" does not exist"
|
545 |
msgstr "La catégorie d'annonce \"%s\" n'existe pas"
|
@@ -804,56 +804,69 @@ msgid "Import settings"
|
|
804 |
msgstr "Paramètres d'importation"
|
805 |
|
806 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
807 |
msgctxt "admin csv-import"
|
808 |
-
msgid "Post status of imported listings"
|
809 |
msgstr "Statut des messages des annonces importées"
|
810 |
|
811 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
812 |
msgctxt "admin csv-import"
|
813 |
msgid "Missing categories handling"
|
814 |
msgstr "Gestion des catégories manquantes"
|
815 |
|
816 |
-
#: templates/admin/csv-import.tpl.php:
|
817 |
msgctxt "admin csv-import"
|
818 |
msgid "Auto-create categories"
|
819 |
msgstr "Création automatique des catégories"
|
820 |
|
821 |
-
#: templates/admin/csv-import.tpl.php:
|
822 |
msgctxt "admin csv-import"
|
823 |
msgid "Generate errors when a category is not found"
|
824 |
msgstr "Génération d'erreurs quand une catégorie n'est pas trouvée"
|
825 |
|
826 |
-
#: templates/admin/csv-import.tpl.php:
|
827 |
msgctxt "admin csv-import"
|
828 |
msgid "Keep existing listing images?"
|
829 |
msgstr "Liste des images ?"
|
830 |
|
831 |
-
#: templates/admin/csv-import.tpl.php:
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Keep existing images."
|
834 |
msgstr "Liste des images."
|
835 |
|
836 |
-
#: templates/admin/csv-import.tpl.php:
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Appends new images while keeping current ones."
|
839 |
msgstr "Ajouts de nouvelles images tout en conservant celles existantes."
|
840 |
|
841 |
-
#: templates/admin/csv-import.tpl.php:
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Assign listings to a user?"
|
844 |
msgstr "Assigner des listes à un utilisateur ?"
|
845 |
|
846 |
-
#: templates/admin/csv-import.tpl.php:
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Assign listings to a user."
|
849 |
msgstr "Assigner des listes à un utilisateur."
|
850 |
|
851 |
-
#: templates/admin/csv-import.tpl.php:
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Use a default user for listings?"
|
854 |
msgstr "Utiliser l'image par défault pour les annonces sans images ?"
|
855 |
|
856 |
-
#: templates/admin/csv-import.tpl.php:
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid ""
|
859 |
"Select a default user to be used if the username column is not present in "
|
@@ -862,12 +875,12 @@ msgstr ""
|
|
862 |
"Cet utilisateur ne sera utilisé que si la colonne de nom d'utilisateur ne "
|
863 |
"figure pas dans le fichier CSV."
|
864 |
|
865 |
-
#: templates/admin/csv-import.tpl.php:
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Default listing user"
|
868 |
msgstr "Annonce par défault de l'utilisateur"
|
869 |
|
870 |
-
#: templates/admin/csv-import.tpl.php:
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid ""
|
873 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -875,13 +888,13 @@ msgstr ""
|
|
875 |
"Cet utilisateur ne sera utilisé que si la colonne de nom d'utilisateur ne "
|
876 |
"figure pas dans le fichier CSV."
|
877 |
|
878 |
-
#: templates/admin/csv-import.tpl.php:
|
879 |
#, fuzzy
|
880 |
msgctxt "admin csv-import"
|
881 |
msgid "Number of listings imported on every cycle"
|
882 |
msgstr "Nombre d'affichage d'annonce:"
|
883 |
|
884 |
-
#: templates/admin/csv-import.tpl.php:
|
885 |
msgctxt "admin csv-import"
|
886 |
msgid ""
|
887 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -890,27 +903,27 @@ msgid ""
|
|
890 |
"success on shared hosting platforms and other resource-constrained servers."
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: templates/admin/csv-import.tpl.php:
|
894 |
msgctxt "admin csv-import"
|
895 |
msgid "Disable e-mail notifications during import?"
|
896 |
msgstr "Désactiver les notifications par e-mail durant l'importation?"
|
897 |
|
898 |
-
#: templates/admin/csv-import.tpl.php:
|
899 |
msgctxt "admin csv-import"
|
900 |
msgid "Disable e-mail notifications."
|
901 |
msgstr "Désactiver les notifications par e-mail."
|
902 |
|
903 |
-
#: templates/admin/csv-import.tpl.php:
|
904 |
msgctxt "admin csv-import"
|
905 |
msgid "Test Import"
|
906 |
msgstr "Tester l'importation"
|
907 |
|
908 |
-
#: templates/admin/csv-import.tpl.php:
|
909 |
msgctxt "admin csv-import"
|
910 |
msgid "Import Listings"
|
911 |
msgstr "Importation des listes"
|
912 |
|
913 |
-
#: templates/admin/csv-import.tpl.php:
|
914 |
msgctxt "admin csv-import"
|
915 |
msgid ""
|
916 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -924,32 +937,32 @@ msgstr ""
|
|
924 |
"d'un fichier CSV d'importation \" </a> afin de voir à quoi un fichier "
|
925 |
"d'importation devrait ressembler."
|
926 |
|
927 |
-
#: templates/admin/csv-import.tpl.php:
|
928 |
msgctxt "admin csv-import"
|
929 |
msgid "Header name/label"
|
930 |
msgstr "Nom/Etiquette de l'en-tête"
|
931 |
|
932 |
-
#: templates/admin/csv-import.tpl.php:
|
933 |
msgctxt "admin csv-import"
|
934 |
msgid "Field"
|
935 |
msgstr "Champ"
|
936 |
|
937 |
-
#: templates/admin/csv-import.tpl.php:
|
938 |
msgctxt "admin csv-import"
|
939 |
msgid "Type"
|
940 |
msgstr "Type"
|
941 |
|
942 |
-
#: templates/admin/csv-import.tpl.php:
|
943 |
msgctxt "admin csv-import"
|
944 |
msgid "Required?"
|
945 |
msgstr "Requis ?"
|
946 |
|
947 |
-
#: templates/admin/csv-import.tpl.php:
|
948 |
msgctxt "admin csv-import"
|
949 |
msgid "Multivalued?"
|
950 |
msgstr "Valeurs multiples ?"
|
951 |
|
952 |
-
#: templates/admin/csv-import.tpl.php:
|
953 |
#, fuzzy
|
954 |
msgctxt "admin csv-import"
|
955 |
msgid ""
|
@@ -960,19 +973,19 @@ msgstr ""
|
|
960 |
"colonne lors de l'ajout ou la mise à jour annonces provenant de sources "
|
961 |
"externes."
|
962 |
|
963 |
-
#: templates/admin/csv-import.tpl.php:
|
964 |
msgctxt "admin csv-import"
|
965 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
966 |
msgstr ""
|
967 |
"Liste séparée de la cotation des images par un point-virgule (à partir du "
|
968 |
"fichier ZIP)"
|
969 |
|
970 |
-
#: templates/admin/csv-import.tpl.php:
|
971 |
msgctxt "admin csv-import"
|
972 |
msgid "Listing author's username"
|
973 |
msgstr "Nom d'utilisateur de l'auteur de l'annonce"
|
974 |
|
975 |
-
#: templates/admin/csv-import.tpl.php:
|
976 |
msgctxt "admin csv-import"
|
977 |
msgid ""
|
978 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -980,7 +993,7 @@ msgstr ""
|
|
980 |
"ID interne de séquence utilisé pour permettre l'annonce des mises à jour "
|
981 |
"provenant de sources externes."
|
982 |
|
983 |
-
#: templates/admin/csv-import.tpl.php:
|
984 |
msgctxt "admin csv-import"
|
985 |
msgid ""
|
986 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1000,12 +1013,12 @@ msgctxt "admin csv"
|
|
1000 |
msgid "Export"
|
1001 |
msgstr "Exportation CSV"
|
1002 |
|
1003 |
-
#: includes/admin/class-admin-listings.php:
|
1004 |
msgctxt "admin category filter"
|
1005 |
msgid "All categories"
|
1006 |
msgstr "Toutes catégories"
|
1007 |
|
1008 |
-
#: includes/admin/class-admin-listings.php:
|
1009 |
msgctxt "admin listings"
|
1010 |
msgid ""
|
1011 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -1016,37 +1029,37 @@ msgstr ""
|
|
1016 |
"les fonctionnalités disponibles pour cette annonce, ainsi que pour gérer les "
|
1017 |
"renouvellements."
|
1018 |
|
1019 |
-
#: includes/admin/class-admin-listings.php:
|
1020 |
msgctxt "admin listings"
|
1021 |
msgid "Never"
|
1022 |
msgstr "Jamais"
|
1023 |
|
1024 |
-
#: includes/admin/class-admin-listings.php:
|
1025 |
msgctxt "admin listings"
|
1026 |
msgid "Featured"
|
1027 |
msgstr "Statut sélectionné (Post-it)"
|
1028 |
|
1029 |
-
#: includes/admin/class-admin-listings.php:
|
1030 |
msgctxt "admin listings"
|
1031 |
msgid "Recurring"
|
1032 |
msgstr "(récurrent)"
|
1033 |
|
1034 |
-
#: includes/admin/class-admin-listings.php:
|
1035 |
msgctxt "admin listings"
|
1036 |
msgid "Free"
|
1037 |
msgstr "Gratuit"
|
1038 |
|
1039 |
-
#: includes/admin/class-admin-listings.php:
|
1040 |
msgctxt "admin listings"
|
1041 |
msgid "Paid"
|
1042 |
msgstr "Payé"
|
1043 |
|
1044 |
-
#: includes/admin/class-admin-listings.php:
|
1045 |
msgctxt "admin listings"
|
1046 |
msgid "Reported"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
-
#: includes/admin/class-admin-listings.php:
|
1050 |
msgctxt "admin listings"
|
1051 |
msgid "Listing's payment history successfully deleted"
|
1052 |
msgstr ""
|
@@ -1075,12 +1088,12 @@ msgctxt "admin listings"
|
|
1075 |
msgid "Clear listing reports."
|
1076 |
msgstr "Une annonce expire."
|
1077 |
|
1078 |
-
#: includes/admin/class-admin-listings.php:
|
1079 |
msgctxt "admin"
|
1080 |
msgid "Directory Listing Fields / Images"
|
1081 |
msgstr "Champs des annonces / Images"
|
1082 |
|
1083 |
-
#: includes/admin/class-admin-listings.php:
|
1084 |
msgctxt "admin"
|
1085 |
msgid "Categories"
|
1086 |
msgstr "Catégories"
|
@@ -1278,112 +1291,112 @@ msgctxt "admin"
|
|
1278 |
msgid "Go to \"Manage Fees\""
|
1279 |
msgstr "Aller à \"Gestion des Champs\""
|
1280 |
|
1281 |
-
#: includes/admin/class-admin-listings.php:
|
1282 |
#, fuzzy
|
1283 |
msgctxt "listing attribute"
|
1284 |
msgid "No Fee Plan"
|
1285 |
msgstr "Plan tarifaire"
|
1286 |
|
1287 |
-
#: includes/admin/class-admin-listings.php:
|
1288 |
msgctxt "listing status"
|
1289 |
msgid "Reported"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
-
#: includes/class-listing.php:
|
1293 |
msgctxt "listing status"
|
1294 |
msgid "Unknown"
|
1295 |
msgstr "Inconnu"
|
1296 |
|
1297 |
-
#: includes/class-listing.php:
|
1298 |
msgctxt "listing status"
|
1299 |
msgid "Legacy"
|
1300 |
msgstr "Don"
|
1301 |
|
1302 |
-
#: includes/class-listing.php:
|
1303 |
msgctxt "listing status"
|
1304 |
msgid "Incomplete"
|
1305 |
msgstr "Incomplet"
|
1306 |
|
1307 |
-
#: includes/class-listing.php:
|
1308 |
msgctxt "listing status"
|
1309 |
msgid "Pending Payment"
|
1310 |
msgstr "Paiement en attente"
|
1311 |
|
1312 |
-
#: includes/class-listing.php:
|
1313 |
msgctxt "listing status"
|
1314 |
msgid "Complete"
|
1315 |
msgstr "Complet"
|
1316 |
|
1317 |
-
#: includes/class-listing.php:
|
1318 |
msgctxt "listing status"
|
1319 |
msgid "Pending Upgrade"
|
1320 |
msgstr "En attente de mise à niveau"
|
1321 |
|
1322 |
-
#: includes/class-listing.php:
|
1323 |
msgctxt "listing status"
|
1324 |
msgid "Expired"
|
1325 |
msgstr "Expiré"
|
1326 |
|
1327 |
-
#: includes/class-listing.php:
|
1328 |
msgctxt "listing status"
|
1329 |
msgid "Pending Renewal"
|
1330 |
msgstr "Actives + En attente de renouvellement"
|
1331 |
|
1332 |
-
#: includes/class-listing.php:
|
1333 |
msgctxt "listing status"
|
1334 |
msgid "Abandoned"
|
1335 |
msgstr "Abandonné"
|
1336 |
|
1337 |
-
#: includes/admin/class-admin-listings.php:
|
1338 |
msgctxt "admin actions"
|
1339 |
msgid "Edit Listing"
|
1340 |
msgstr "Editer l'annonce"
|
1341 |
|
1342 |
-
#: includes/admin/class-admin-listings.php:
|
1343 |
msgctxt "admin actions"
|
1344 |
msgid "Delete Listing"
|
1345 |
msgstr "Annuler l'annonce"
|
1346 |
|
1347 |
-
#: includes/admin/class-admin-listings.php:
|
1348 |
msgctxt "admin actions"
|
1349 |
msgid "View Payments"
|
1350 |
msgstr "Voir les Paiements"
|
1351 |
|
1352 |
-
#: includes/admin/class-admin-listings.php:
|
1353 |
msgctxt "admin actions"
|
1354 |
msgid "View Payment"
|
1355 |
msgstr "Voir le Paiement"
|
1356 |
|
1357 |
-
#: includes/admin/class-admin-listings.php:
|
1358 |
#, fuzzy
|
1359 |
msgctxt "admin actions"
|
1360 |
msgid "Publish listings"
|
1361 |
msgstr "Publier l'annonce"
|
1362 |
|
1363 |
-
#: includes/admin/class-admin-listings.php:
|
1364 |
#, fuzzy
|
1365 |
msgctxt "admin actions"
|
1366 |
msgid "Mark as \"Pending Review\""
|
1367 |
msgstr "En attente"
|
1368 |
|
1369 |
-
#: includes/admin/class-admin-listings.php:
|
1370 |
msgctxt "admin actions"
|
1371 |
msgid "Hide from directory (mark as \"Draft\")"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
-
#: includes/admin/class-admin-listings.php:
|
1375 |
#, fuzzy
|
1376 |
msgctxt "admin actions"
|
1377 |
msgid "Renew listings"
|
1378 |
msgstr "Renouveler l'annonce"
|
1379 |
|
1380 |
-
#: includes/admin/class-admin-listings.php:
|
1381 |
#, fuzzy
|
1382 |
msgctxt "admin actions"
|
1383 |
msgid "Set listings as \"Expired\""
|
1384 |
msgstr "Envoyé lorsqu'une annonce (% s) est expirée."
|
1385 |
|
1386 |
-
#: includes/admin/class-admin-listings.php:
|
1387 |
#, fuzzy
|
1388 |
msgctxt "admin actions"
|
1389 |
msgid "Send access keys"
|
@@ -5856,18 +5869,18 @@ msgctxt "listing"
|
|
5856 |
msgid "Listing expired"
|
5857 |
msgstr "Une annonce expire"
|
5858 |
|
5859 |
-
#: includes/class-listing.php:
|
5860 |
msgctxt "listing"
|
5861 |
msgid "(Unavailable Plan)"
|
5862 |
msgstr "(Plan indisponible disponible)"
|
5863 |
|
5864 |
-
#: includes/class-listing.php:
|
5865 |
#, fuzzy
|
5866 |
msgctxt "listing"
|
5867 |
msgid "Plan \"%s\" (recurring)"
|
5868 |
msgstr "(récurrent)"
|
5869 |
|
5870 |
-
#: includes/class-listing.php:
|
5871 |
msgctxt "listing"
|
5872 |
msgid "Plan \"%s\""
|
5873 |
msgstr "Statut \"%s\""
|
@@ -8560,7 +8573,7 @@ msgstr "Rechercher"
|
|
8560 |
#: templates/admin/csv-import.tpl.php:116
|
8561 |
#: templates/admin/csv-import.tpl.php:142
|
8562 |
#: templates/admin/csv-import.tpl.php:153
|
8563 |
-
#: templates/admin/csv-import.tpl.php:
|
8564 |
msgctxt "admin forms"
|
8565 |
msgid "required"
|
8566 |
msgstr "requis"
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"PO-Revision-Date: 2017-11-13 00:48+0100\n"
|
10 |
"Last-Translator: Laurent Provin <lprovin@yahoo.fr>\n"
|
11 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
18 |
"X-Poedit-SourceCharset: UTF-8\n"
|
19 |
|
20 |
+
#: includes/admin/class-admin-listings.php:184
|
21 |
msgid "Listing Information"
|
22 |
msgstr "Information sur l'annonce"
|
23 |
|
24 |
+
#: includes/admin/class-admin-listings.php:192
|
25 |
msgid "Listing Timeline"
|
26 |
msgstr "Titre de l'annonce"
|
27 |
|
28 |
+
#: includes/admin/class-admin-listings.php:210
|
29 |
#, fuzzy
|
30 |
msgid "Listing Reports"
|
31 |
msgstr "Une annonce expire"
|
32 |
|
33 |
+
#: includes/admin/class-admin-listings.php:251
|
34 |
msgid "Expires on"
|
35 |
msgstr "Expire le"
|
36 |
|
37 |
+
#: includes/admin/class-admin-listings.php:259
|
38 |
msgid "Attributes"
|
39 |
msgstr "Attributs"
|
40 |
|
55 |
msgid "Uninstall"
|
56 |
msgstr "Désinstaller"
|
57 |
|
58 |
+
#: includes/admin/class-csv-import.php:633
|
59 |
#, fuzzy
|
60 |
msgid "Listing imported by admin. Payment skipped."
|
61 |
msgstr "Annonce soumis par admin. Paiement sauté."
|
500 |
msgid "See an example CSV import file"
|
501 |
msgstr "Voir un exemple de fichier CSV importé"
|
502 |
|
503 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
504 |
msgctxt "admin csv-import"
|
505 |
msgid "Help"
|
506 |
msgstr "Aide"
|
507 |
|
508 |
+
#: includes/admin/class-csv-import.php:503
|
509 |
msgctxt "admin csv-import"
|
510 |
msgid ""
|
511 |
"Could not create listing category \"<category-name>\". The operation failed "
|
514 |
"Impossible de créer la catégorie d'inscription \"<category-name>\". "
|
515 |
"L'opération a échoué avec l'erreur suivante : <error-message>."
|
516 |
|
517 |
+
#: includes/admin/class-csv-import.php:509
|
518 |
msgctxt "admin csv-import"
|
519 |
msgid "Could not create listing category \"%s\""
|
520 |
msgstr "Vous ne pouvez pas créer cette catégorie d'annonce \"%s\""
|
521 |
|
522 |
+
#: includes/admin/class-csv-import.php:684
|
523 |
msgctxt "admin csv-import"
|
524 |
msgid "Username \"%s\" does not exist"
|
525 |
msgstr "Le nom d'utilisateur \"%s\" n'existe pas"
|
526 |
|
527 |
+
#: includes/admin/class-csv-import.php:710
|
528 |
msgctxt "admin csv-import"
|
529 |
msgid "The string <string> couldn't be converted into a valid date."
|
530 |
msgstr "La chaîne <string> ne peut pas être convertie en une date valide."
|
531 |
|
532 |
+
#: includes/admin/class-csv-import.php:732
|
533 |
msgctxt "admin csv-import"
|
534 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
535 |
msgstr "Il n'y a pas de plan de frais avec ID = <fee-id>"
|
536 |
|
537 |
+
#: includes/admin/class-csv-import.php:755
|
538 |
msgctxt "admin csv-import"
|
539 |
msgid "Missing required field: %s"
|
540 |
msgstr "Absence d'un champ requis: %s"
|
541 |
|
542 |
+
#: includes/admin/class-csv-import.php:780
|
543 |
msgctxt "admin csv-import"
|
544 |
msgid "Listing category \"%s\" does not exist"
|
545 |
msgstr "La catégorie d'annonce \"%s\" n'existe pas"
|
804 |
msgstr "Paramètres d'importation"
|
805 |
|
806 |
#: templates/admin/csv-import.tpl.php:168
|
807 |
+
#, fuzzy
|
808 |
msgctxt "admin csv-import"
|
809 |
+
msgid "Post status of new imported listings"
|
810 |
msgstr "Statut des messages des annonces importées"
|
811 |
|
812 |
+
#: templates/admin/csv-import.tpl.php:183
|
813 |
+
#, fuzzy
|
814 |
+
msgctxt "admin csv-import"
|
815 |
+
msgid "Post status of existing imported listings"
|
816 |
+
msgstr "Statut des messages des annonces importées"
|
817 |
+
|
818 |
+
#: templates/admin/csv-import.tpl.php:187
|
819 |
+
#, fuzzy
|
820 |
+
msgctxt "admin csv-import"
|
821 |
+
msgid "Preserve existing status"
|
822 |
+
msgstr "Statut liste"
|
823 |
+
|
824 |
+
#: templates/admin/csv-import.tpl.php:199
|
825 |
msgctxt "admin csv-import"
|
826 |
msgid "Missing categories handling"
|
827 |
msgstr "Gestion des catégories manquantes"
|
828 |
|
829 |
+
#: templates/admin/csv-import.tpl.php:204
|
830 |
msgctxt "admin csv-import"
|
831 |
msgid "Auto-create categories"
|
832 |
msgstr "Création automatique des catégories"
|
833 |
|
834 |
+
#: templates/admin/csv-import.tpl.php:207
|
835 |
msgctxt "admin csv-import"
|
836 |
msgid "Generate errors when a category is not found"
|
837 |
msgstr "Génération d'erreurs quand une catégorie n'est pas trouvée"
|
838 |
|
839 |
+
#: templates/admin/csv-import.tpl.php:212
|
840 |
msgctxt "admin csv-import"
|
841 |
msgid "Keep existing listing images?"
|
842 |
msgstr "Liste des images ?"
|
843 |
|
844 |
+
#: templates/admin/csv-import.tpl.php:217
|
845 |
msgctxt "admin csv-import"
|
846 |
msgid "Keep existing images."
|
847 |
msgstr "Liste des images."
|
848 |
|
849 |
+
#: templates/admin/csv-import.tpl.php:218
|
850 |
msgctxt "admin csv-import"
|
851 |
msgid "Appends new images while keeping current ones."
|
852 |
msgstr "Ajouts de nouvelles images tout en conservant celles existantes."
|
853 |
|
854 |
+
#: templates/admin/csv-import.tpl.php:223
|
855 |
msgctxt "admin csv-import"
|
856 |
msgid "Assign listings to a user?"
|
857 |
msgstr "Assigner des listes à un utilisateur ?"
|
858 |
|
859 |
+
#: templates/admin/csv-import.tpl.php:229
|
860 |
msgctxt "admin csv-import"
|
861 |
msgid "Assign listings to a user."
|
862 |
msgstr "Assigner des listes à un utilisateur."
|
863 |
|
864 |
+
#: templates/admin/csv-import.tpl.php:234
|
865 |
msgctxt "admin csv-import"
|
866 |
msgid "Use a default user for listings?"
|
867 |
msgstr "Utiliser l'image par défault pour les annonces sans images ?"
|
868 |
|
869 |
+
#: templates/admin/csv-import.tpl.php:240
|
870 |
msgctxt "admin csv-import"
|
871 |
msgid ""
|
872 |
"Select a default user to be used if the username column is not present in "
|
875 |
"Cet utilisateur ne sera utilisé que si la colonne de nom d'utilisateur ne "
|
876 |
"figure pas dans le fichier CSV."
|
877 |
|
878 |
+
#: templates/admin/csv-import.tpl.php:245
|
879 |
msgctxt "admin csv-import"
|
880 |
msgid "Default listing user"
|
881 |
msgstr "Annonce par défault de l'utilisateur"
|
882 |
|
883 |
+
#: templates/admin/csv-import.tpl.php:251
|
884 |
msgctxt "admin csv-import"
|
885 |
msgid ""
|
886 |
"This user will be used if the username column is not present in the CSV file."
|
888 |
"Cet utilisateur ne sera utilisé que si la colonne de nom d'utilisateur ne "
|
889 |
"figure pas dans le fichier CSV."
|
890 |
|
891 |
+
#: templates/admin/csv-import.tpl.php:256
|
892 |
#, fuzzy
|
893 |
msgctxt "admin csv-import"
|
894 |
msgid "Number of listings imported on every cycle"
|
895 |
msgstr "Nombre d'affichage d'annonce:"
|
896 |
|
897 |
+
#: templates/admin/csv-import.tpl.php:264
|
898 |
msgctxt "admin csv-import"
|
899 |
msgid ""
|
900 |
"If you are having trouble importing listings due to memory problems, try "
|
903 |
"success on shared hosting platforms and other resource-constrained servers."
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: templates/admin/csv-import.tpl.php:269
|
907 |
msgctxt "admin csv-import"
|
908 |
msgid "Disable e-mail notifications during import?"
|
909 |
msgstr "Désactiver les notifications par e-mail durant l'importation?"
|
910 |
|
911 |
+
#: templates/admin/csv-import.tpl.php:274
|
912 |
msgctxt "admin csv-import"
|
913 |
msgid "Disable e-mail notifications."
|
914 |
msgstr "Désactiver les notifications par e-mail."
|
915 |
|
916 |
+
#: templates/admin/csv-import.tpl.php:280
|
917 |
msgctxt "admin csv-import"
|
918 |
msgid "Test Import"
|
919 |
msgstr "Tester l'importation"
|
920 |
|
921 |
+
#: templates/admin/csv-import.tpl.php:281
|
922 |
msgctxt "admin csv-import"
|
923 |
msgid "Import Listings"
|
924 |
msgstr "Importation des listes"
|
925 |
|
926 |
+
#: templates/admin/csv-import.tpl.php:289
|
927 |
msgctxt "admin csv-import"
|
928 |
msgid ""
|
929 |
"The following are the valid header names to be used in the CSV file. "
|
937 |
"d'un fichier CSV d'importation \" </a> afin de voir à quoi un fichier "
|
938 |
"d'importation devrait ressembler."
|
939 |
|
940 |
+
#: templates/admin/csv-import.tpl.php:296
|
941 |
msgctxt "admin csv-import"
|
942 |
msgid "Header name/label"
|
943 |
msgstr "Nom/Etiquette de l'en-tête"
|
944 |
|
945 |
+
#: templates/admin/csv-import.tpl.php:297
|
946 |
msgctxt "admin csv-import"
|
947 |
msgid "Field"
|
948 |
msgstr "Champ"
|
949 |
|
950 |
+
#: templates/admin/csv-import.tpl.php:298
|
951 |
msgctxt "admin csv-import"
|
952 |
msgid "Type"
|
953 |
msgstr "Type"
|
954 |
|
955 |
+
#: templates/admin/csv-import.tpl.php:299
|
956 |
msgctxt "admin csv-import"
|
957 |
msgid "Required?"
|
958 |
msgstr "Requis ?"
|
959 |
|
960 |
+
#: templates/admin/csv-import.tpl.php:300
|
961 |
msgctxt "admin csv-import"
|
962 |
msgid "Multivalued?"
|
963 |
msgstr "Valeurs multiples ?"
|
964 |
|
965 |
+
#: templates/admin/csv-import.tpl.php:322
|
966 |
#, fuzzy
|
967 |
msgctxt "admin csv-import"
|
968 |
msgid ""
|
973 |
"colonne lors de l'ajout ou la mise à jour annonces provenant de sources "
|
974 |
"externes."
|
975 |
|
976 |
+
#: templates/admin/csv-import.tpl.php:329
|
977 |
msgctxt "admin csv-import"
|
978 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
979 |
msgstr ""
|
980 |
"Liste séparée de la cotation des images par un point-virgule (à partir du "
|
981 |
"fichier ZIP)"
|
982 |
|
983 |
+
#: templates/admin/csv-import.tpl.php:336
|
984 |
msgctxt "admin csv-import"
|
985 |
msgid "Listing author's username"
|
986 |
msgstr "Nom d'utilisateur de l'auteur de l'annonce"
|
987 |
|
988 |
+
#: templates/admin/csv-import.tpl.php:343
|
989 |
msgctxt "admin csv-import"
|
990 |
msgid ""
|
991 |
"Internal Sequence ID used to allow listing updates from external sources."
|
993 |
"ID interne de séquence utilisé pour permettre l'annonce des mises à jour "
|
994 |
"provenant de sources externes."
|
995 |
|
996 |
+
#: templates/admin/csv-import.tpl.php:350
|
997 |
msgctxt "admin csv-import"
|
998 |
msgid ""
|
999 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1013 |
msgid "Export"
|
1014 |
msgstr "Exportation CSV"
|
1015 |
|
1016 |
+
#: includes/admin/class-admin-listings.php:62
|
1017 |
msgctxt "admin category filter"
|
1018 |
msgid "All categories"
|
1019 |
msgstr "Toutes catégories"
|
1020 |
|
1021 |
+
#: includes/admin/class-admin-listings.php:177
|
1022 |
msgctxt "admin listings"
|
1023 |
msgid ""
|
1024 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1029 |
"les fonctionnalités disponibles pour cette annonce, ainsi que pour gérer les "
|
1030 |
"renouvellements."
|
1031 |
|
1032 |
+
#: includes/admin/class-admin-listings.php:296
|
1033 |
msgctxt "admin listings"
|
1034 |
msgid "Never"
|
1035 |
msgstr "Jamais"
|
1036 |
|
1037 |
+
#: includes/admin/class-admin-listings.php:322
|
1038 |
msgctxt "admin listings"
|
1039 |
msgid "Featured"
|
1040 |
msgstr "Statut sélectionné (Post-it)"
|
1041 |
|
1042 |
+
#: includes/admin/class-admin-listings.php:326
|
1043 |
msgctxt "admin listings"
|
1044 |
msgid "Recurring"
|
1045 |
msgstr "(récurrent)"
|
1046 |
|
1047 |
+
#: includes/admin/class-admin-listings.php:330
|
1048 |
msgctxt "admin listings"
|
1049 |
msgid "Free"
|
1050 |
msgstr "Gratuit"
|
1051 |
|
1052 |
+
#: includes/admin/class-admin-listings.php:332
|
1053 |
msgctxt "admin listings"
|
1054 |
msgid "Paid"
|
1055 |
msgstr "Payé"
|
1056 |
|
1057 |
+
#: includes/admin/class-admin-listings.php:337
|
1058 |
msgctxt "admin listings"
|
1059 |
msgid "Reported"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
+
#: includes/admin/class-admin-listings.php:666
|
1063 |
msgctxt "admin listings"
|
1064 |
msgid "Listing's payment history successfully deleted"
|
1065 |
msgstr ""
|
1088 |
msgid "Clear listing reports."
|
1089 |
msgstr "Une annonce expire."
|
1090 |
|
1091 |
+
#: includes/admin/class-admin-listings.php:200
|
1092 |
msgctxt "admin"
|
1093 |
msgid "Directory Listing Fields / Images"
|
1094 |
msgstr "Champs des annonces / Images"
|
1095 |
|
1096 |
+
#: includes/admin/class-admin-listings.php:250
|
1097 |
msgctxt "admin"
|
1098 |
msgid "Categories"
|
1099 |
msgstr "Catégories"
|
1291 |
msgid "Go to \"Manage Fees\""
|
1292 |
msgstr "Aller à \"Gestion des Champs\""
|
1293 |
|
1294 |
+
#: includes/admin/class-admin-listings.php:307
|
1295 |
#, fuzzy
|
1296 |
msgctxt "listing attribute"
|
1297 |
msgid "No Fee Plan"
|
1298 |
msgstr "Plan tarifaire"
|
1299 |
|
1300 |
+
#: includes/admin/class-admin-listings.php:397
|
1301 |
msgctxt "listing status"
|
1302 |
msgid "Reported"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: includes/class-listing.php:776
|
1306 |
msgctxt "listing status"
|
1307 |
msgid "Unknown"
|
1308 |
msgstr "Inconnu"
|
1309 |
|
1310 |
+
#: includes/class-listing.php:777
|
1311 |
msgctxt "listing status"
|
1312 |
msgid "Legacy"
|
1313 |
msgstr "Don"
|
1314 |
|
1315 |
+
#: includes/class-listing.php:778
|
1316 |
msgctxt "listing status"
|
1317 |
msgid "Incomplete"
|
1318 |
msgstr "Incomplet"
|
1319 |
|
1320 |
+
#: includes/class-listing.php:779
|
1321 |
msgctxt "listing status"
|
1322 |
msgid "Pending Payment"
|
1323 |
msgstr "Paiement en attente"
|
1324 |
|
1325 |
+
#: includes/class-listing.php:780
|
1326 |
msgctxt "listing status"
|
1327 |
msgid "Complete"
|
1328 |
msgstr "Complet"
|
1329 |
|
1330 |
+
#: includes/class-listing.php:781
|
1331 |
msgctxt "listing status"
|
1332 |
msgid "Pending Upgrade"
|
1333 |
msgstr "En attente de mise à niveau"
|
1334 |
|
1335 |
+
#: includes/class-listing.php:782
|
1336 |
msgctxt "listing status"
|
1337 |
msgid "Expired"
|
1338 |
msgstr "Expiré"
|
1339 |
|
1340 |
+
#: includes/class-listing.php:783
|
1341 |
msgctxt "listing status"
|
1342 |
msgid "Pending Renewal"
|
1343 |
msgstr "Actives + En attente de renouvellement"
|
1344 |
|
1345 |
+
#: includes/class-listing.php:784
|
1346 |
msgctxt "listing status"
|
1347 |
msgid "Abandoned"
|
1348 |
msgstr "Abandonné"
|
1349 |
|
1350 |
+
#: includes/admin/class-admin-listings.php:446
|
1351 |
msgctxt "admin actions"
|
1352 |
msgid "Edit Listing"
|
1353 |
msgstr "Editer l'annonce"
|
1354 |
|
1355 |
+
#: includes/admin/class-admin-listings.php:451
|
1356 |
msgctxt "admin actions"
|
1357 |
msgid "Delete Listing"
|
1358 |
msgstr "Annuler l'annonce"
|
1359 |
|
1360 |
+
#: includes/admin/class-admin-listings.php:462
|
1361 |
msgctxt "admin actions"
|
1362 |
msgid "View Payments"
|
1363 |
msgstr "Voir les Paiements"
|
1364 |
|
1365 |
+
#: includes/admin/class-admin-listings.php:467
|
1366 |
msgctxt "admin actions"
|
1367 |
msgid "View Payment"
|
1368 |
msgstr "Voir le Paiement"
|
1369 |
|
1370 |
+
#: includes/admin/class-admin-listings.php:605
|
1371 |
#, fuzzy
|
1372 |
msgctxt "admin actions"
|
1373 |
msgid "Publish listings"
|
1374 |
msgstr "Publier l'annonce"
|
1375 |
|
1376 |
+
#: includes/admin/class-admin-listings.php:606
|
1377 |
#, fuzzy
|
1378 |
msgctxt "admin actions"
|
1379 |
msgid "Mark as \"Pending Review\""
|
1380 |
msgstr "En attente"
|
1381 |
|
1382 |
+
#: includes/admin/class-admin-listings.php:607
|
1383 |
msgctxt "admin actions"
|
1384 |
msgid "Hide from directory (mark as \"Draft\")"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
+
#: includes/admin/class-admin-listings.php:609
|
1388 |
#, fuzzy
|
1389 |
msgctxt "admin actions"
|
1390 |
msgid "Renew listings"
|
1391 |
msgstr "Renouveler l'annonce"
|
1392 |
|
1393 |
+
#: includes/admin/class-admin-listings.php:610
|
1394 |
#, fuzzy
|
1395 |
msgctxt "admin actions"
|
1396 |
msgid "Set listings as \"Expired\""
|
1397 |
msgstr "Envoyé lorsqu'une annonce (% s) est expirée."
|
1398 |
|
1399 |
+
#: includes/admin/class-admin-listings.php:617
|
1400 |
#, fuzzy
|
1401 |
msgctxt "admin actions"
|
1402 |
msgid "Send access keys"
|
5869 |
msgid "Listing expired"
|
5870 |
msgstr "Une annonce expire"
|
5871 |
|
5872 |
+
#: includes/class-listing.php:516
|
5873 |
msgctxt "listing"
|
5874 |
msgid "(Unavailable Plan)"
|
5875 |
msgstr "(Plan indisponible disponible)"
|
5876 |
|
5877 |
+
#: includes/class-listing.php:673
|
5878 |
#, fuzzy
|
5879 |
msgctxt "listing"
|
5880 |
msgid "Plan \"%s\" (recurring)"
|
5881 |
msgstr "(récurrent)"
|
5882 |
|
5883 |
+
#: includes/class-listing.php:675
|
5884 |
msgctxt "listing"
|
5885 |
msgid "Plan \"%s\""
|
5886 |
msgstr "Statut \"%s\""
|
8573 |
#: templates/admin/csv-import.tpl.php:116
|
8574 |
#: templates/admin/csv-import.tpl.php:142
|
8575 |
#: templates/admin/csv-import.tpl.php:153
|
8576 |
+
#: templates/admin/csv-import.tpl.php:199
|
8577 |
msgctxt "admin forms"
|
8578 |
msgid "required"
|
8579 |
msgstr "requis"
|
languages/WPBDM-it_IT.mo
CHANGED
Binary file
|
languages/WPBDM-it_IT.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Business Directory Plugin\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
-
"POT-Creation-Date: 2020-
|
7 |
"PO-Revision-Date: 2019-06-25 13:45-0500\n"
|
8 |
"Last-Translator: \n"
|
9 |
"Language-Team: \n"
|
@@ -23,23 +23,23 @@ msgstr ""
|
|
23 |
"X-Poedit-SearchPath-0: .\n"
|
24 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
25 |
|
26 |
-
#: includes/admin/class-admin-listings.php:
|
27 |
msgid "Listing Information"
|
28 |
msgstr "Informazioni sull'annuncio"
|
29 |
|
30 |
-
#: includes/admin/class-admin-listings.php:
|
31 |
msgid "Listing Timeline"
|
32 |
msgstr "Calendario degli annunci"
|
33 |
|
34 |
-
#: includes/admin/class-admin-listings.php:
|
35 |
msgid "Listing Reports"
|
36 |
msgstr "Reports Annuncio"
|
37 |
|
38 |
-
#: includes/admin/class-admin-listings.php:
|
39 |
msgid "Expires on"
|
40 |
msgstr "Scade il"
|
41 |
|
42 |
-
#: includes/admin/class-admin-listings.php:
|
43 |
msgid "Attributes"
|
44 |
msgstr "Attributi"
|
45 |
|
@@ -60,7 +60,7 @@ msgstr "Disinstallare Business Directory Plugin"
|
|
60 |
msgid "Uninstall"
|
61 |
msgstr "Disinstalla"
|
62 |
|
63 |
-
#: includes/admin/class-csv-import.php:
|
64 |
msgid "Listing imported by admin. Payment skipped."
|
65 |
msgstr "Elenco importato da admin. Pagamento saltato."
|
66 |
|
@@ -507,12 +507,12 @@ msgctxt "admin csv-import"
|
|
507 |
msgid "See an example CSV import file"
|
508 |
msgstr "Vedere un esempio di file di importazione CSV"
|
509 |
|
510 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
511 |
msgctxt "admin csv-import"
|
512 |
msgid "Help"
|
513 |
msgstr "Aiuto"
|
514 |
|
515 |
-
#: includes/admin/class-csv-import.php:
|
516 |
msgctxt "admin csv-import"
|
517 |
msgid ""
|
518 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -521,32 +521,32 @@ msgstr ""
|
|
521 |
"Impossibile creare la categoria di Annunci \"<category-name>\". L'operazione "
|
522 |
"non è riuscita per il seguente errore: <error-message>."
|
523 |
|
524 |
-
#: includes/admin/class-csv-import.php:
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "Could not create listing category \"%s\""
|
527 |
msgstr "Impossibile creare la categoria \"%s\""
|
528 |
|
529 |
-
#: includes/admin/class-csv-import.php:
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Username \"%s\" does not exist"
|
532 |
msgstr "Nome Utente \"%s\" non esiste"
|
533 |
|
534 |
-
#: includes/admin/class-csv-import.php:
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "The string <string> couldn't be converted into a valid date."
|
537 |
msgstr "La stringa <string>non poteva essere convertita in una data valida."
|
538 |
|
539 |
-
#: includes/admin/class-csv-import.php:
|
540 |
msgctxt "admin csv-import"
|
541 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
542 |
msgstr "Non esiste un piano tariffario con ID = <fee-id>"
|
543 |
|
544 |
-
#: includes/admin/class-csv-import.php:
|
545 |
msgctxt "admin csv-import"
|
546 |
msgid "Missing required field: %s"
|
547 |
msgstr "Campo obbligatorio mancante: %s"
|
548 |
|
549 |
-
#: includes/admin/class-csv-import.php:
|
550 |
msgctxt "admin csv-import"
|
551 |
msgid "Listing category \"%s\" does not exist"
|
552 |
msgstr "La categoria \"%s\" non esiste"
|
@@ -811,56 +811,69 @@ msgid "Import settings"
|
|
811 |
msgstr "Importa le impostazioni"
|
812 |
|
813 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
814 |
msgctxt "admin csv-import"
|
815 |
-
msgid "Post status of imported listings"
|
816 |
msgstr "Stato delle inserzioni importate"
|
817 |
|
818 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
819 |
msgctxt "admin csv-import"
|
820 |
msgid "Missing categories handling"
|
821 |
msgstr "Gestione delle categorie mancanti"
|
822 |
|
823 |
-
#: templates/admin/csv-import.tpl.php:
|
824 |
msgctxt "admin csv-import"
|
825 |
msgid "Auto-create categories"
|
826 |
msgstr "Creazione automatica delle categorie"
|
827 |
|
828 |
-
#: templates/admin/csv-import.tpl.php:
|
829 |
msgctxt "admin csv-import"
|
830 |
msgid "Generate errors when a category is not found"
|
831 |
msgstr "Generare errori quando una categoria non viene trovata"
|
832 |
|
833 |
-
#: templates/admin/csv-import.tpl.php:
|
834 |
msgctxt "admin csv-import"
|
835 |
msgid "Keep existing listing images?"
|
836 |
msgstr "Mantenere le immagini dell'elenco esistenti?"
|
837 |
|
838 |
-
#: templates/admin/csv-import.tpl.php:
|
839 |
msgctxt "admin csv-import"
|
840 |
msgid "Keep existing images."
|
841 |
msgstr "Conservare le immagini esistenti."
|
842 |
|
843 |
-
#: templates/admin/csv-import.tpl.php:
|
844 |
msgctxt "admin csv-import"
|
845 |
msgid "Appends new images while keeping current ones."
|
846 |
msgstr "Aggiunge nuove immagini mantenendo quelle attuali."
|
847 |
|
848 |
-
#: templates/admin/csv-import.tpl.php:
|
849 |
msgctxt "admin csv-import"
|
850 |
msgid "Assign listings to a user?"
|
851 |
msgstr "Assegna annunci a un utente?"
|
852 |
|
853 |
-
#: templates/admin/csv-import.tpl.php:
|
854 |
msgctxt "admin csv-import"
|
855 |
msgid "Assign listings to a user."
|
856 |
msgstr "Assegnare le inserzioni ad un utente."
|
857 |
|
858 |
-
#: templates/admin/csv-import.tpl.php:
|
859 |
msgctxt "admin csv-import"
|
860 |
msgid "Use a default user for listings?"
|
861 |
msgstr "Utilizzare un utente predefinito per gli elenchi?"
|
862 |
|
863 |
-
#: templates/admin/csv-import.tpl.php:
|
864 |
msgctxt "admin csv-import"
|
865 |
msgid ""
|
866 |
"Select a default user to be used if the username column is not present in "
|
@@ -869,12 +882,12 @@ msgstr ""
|
|
869 |
"Selezionare un utente predefinito da utilizzare se la colonna nome utente "
|
870 |
"non è presente nel file CSV."
|
871 |
|
872 |
-
#: templates/admin/csv-import.tpl.php:
|
873 |
msgctxt "admin csv-import"
|
874 |
msgid "Default listing user"
|
875 |
msgstr "Utente predefinito"
|
876 |
|
877 |
-
#: templates/admin/csv-import.tpl.php:
|
878 |
msgctxt "admin csv-import"
|
879 |
msgid ""
|
880 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -882,12 +895,12 @@ msgstr ""
|
|
882 |
"Questo utente verrà utilizzato se la colonna username non è presente nel "
|
883 |
"file CSV."
|
884 |
|
885 |
-
#: templates/admin/csv-import.tpl.php:
|
886 |
msgctxt "admin csv-import"
|
887 |
msgid "Number of listings imported on every cycle"
|
888 |
msgstr "Numero di elenchi importati per ogni ciclo"
|
889 |
|
890 |
-
#: templates/admin/csv-import.tpl.php:
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid ""
|
893 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -901,27 +914,27 @@ msgstr ""
|
|
901 |
"più lungo, ma aumenterà le possibilità di successo su piattaforme di hosting "
|
902 |
"condiviso e altri server con risorse limitate."
|
903 |
|
904 |
-
#: templates/admin/csv-import.tpl.php:
|
905 |
msgctxt "admin csv-import"
|
906 |
msgid "Disable e-mail notifications during import?"
|
907 |
msgstr "Disattiva le notifiche di posta elettronica durante l'importazione?"
|
908 |
|
909 |
-
#: templates/admin/csv-import.tpl.php:
|
910 |
msgctxt "admin csv-import"
|
911 |
msgid "Disable e-mail notifications."
|
912 |
msgstr "Disattiva le notifiche di posta elettronica."
|
913 |
|
914 |
-
#: templates/admin/csv-import.tpl.php:
|
915 |
msgctxt "admin csv-import"
|
916 |
msgid "Test Import"
|
917 |
msgstr "Test importazione"
|
918 |
|
919 |
-
#: templates/admin/csv-import.tpl.php:
|
920 |
msgctxt "admin csv-import"
|
921 |
msgid "Import Listings"
|
922 |
msgstr "Importa Annunci"
|
923 |
|
924 |
-
#: templates/admin/csv-import.tpl.php:
|
925 |
msgctxt "admin csv-import"
|
926 |
msgid ""
|
927 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -935,32 +948,32 @@ msgstr ""
|
|
935 |
"file di importazione CSV\"</a> Per vedere come un file di importazione deve "
|
936 |
"essere."
|
937 |
|
938 |
-
#: templates/admin/csv-import.tpl.php:
|
939 |
msgctxt "admin csv-import"
|
940 |
msgid "Header name/label"
|
941 |
msgstr "Nome intestazione / etichetta"
|
942 |
|
943 |
-
#: templates/admin/csv-import.tpl.php:
|
944 |
msgctxt "admin csv-import"
|
945 |
msgid "Field"
|
946 |
msgstr "Campo"
|
947 |
|
948 |
-
#: templates/admin/csv-import.tpl.php:
|
949 |
msgctxt "admin csv-import"
|
950 |
msgid "Type"
|
951 |
msgstr "Tipo"
|
952 |
|
953 |
-
#: templates/admin/csv-import.tpl.php:
|
954 |
msgctxt "admin csv-import"
|
955 |
msgid "Required?"
|
956 |
msgstr "Necessario?"
|
957 |
|
958 |
-
#: templates/admin/csv-import.tpl.php:
|
959 |
msgctxt "admin csv-import"
|
960 |
msgid "Multivalued?"
|
961 |
msgstr "Multivalore?"
|
962 |
|
963 |
-
#: templates/admin/csv-import.tpl.php:
|
964 |
msgctxt "admin csv-import"
|
965 |
msgid ""
|
966 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
@@ -969,17 +982,17 @@ msgstr ""
|
|
969 |
"Fee ID (numero intero) associato ad un elenco. Utilizzare questa colonna per "
|
970 |
"aggiungere o aggiornare gli elenchi da fonti esterne."
|
971 |
|
972 |
-
#: templates/admin/csv-import.tpl.php:
|
973 |
msgctxt "admin csv-import"
|
974 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
975 |
msgstr "Elenco separato di immagini (dal file ZIP)"
|
976 |
|
977 |
-
#: templates/admin/csv-import.tpl.php:
|
978 |
msgctxt "admin csv-import"
|
979 |
msgid "Listing author's username"
|
980 |
msgstr "Elenco degli utenti"
|
981 |
|
982 |
-
#: templates/admin/csv-import.tpl.php:
|
983 |
msgctxt "admin csv-import"
|
984 |
msgid ""
|
985 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -987,7 +1000,7 @@ msgstr ""
|
|
987 |
"ID di sequenza interna utilizzata per consentire l'elenco degli "
|
988 |
"aggiornamenti da fonti esterne."
|
989 |
|
990 |
-
#: templates/admin/csv-import.tpl.php:
|
991 |
msgctxt "admin csv-import"
|
992 |
msgid ""
|
993 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1006,12 +1019,12 @@ msgctxt "admin csv"
|
|
1006 |
msgid "Export"
|
1007 |
msgstr "Esporta"
|
1008 |
|
1009 |
-
#: includes/admin/class-admin-listings.php:
|
1010 |
msgctxt "admin category filter"
|
1011 |
msgid "All categories"
|
1012 |
msgstr "Tutte le categorie"
|
1013 |
|
1014 |
-
#: includes/admin/class-admin-listings.php:
|
1015 |
msgctxt "admin listings"
|
1016 |
msgid ""
|
1017 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -1022,37 +1035,37 @@ msgstr ""
|
|
1022 |
"fine di determinare le caratteristiche disponibili per questo elenco, così "
|
1023 |
"come la gestione dei rinnovi."
|
1024 |
|
1025 |
-
#: includes/admin/class-admin-listings.php:
|
1026 |
msgctxt "admin listings"
|
1027 |
msgid "Never"
|
1028 |
msgstr "Mai"
|
1029 |
|
1030 |
-
#: includes/admin/class-admin-listings.php:
|
1031 |
msgctxt "admin listings"
|
1032 |
msgid "Featured"
|
1033 |
msgstr "In evidenza"
|
1034 |
|
1035 |
-
#: includes/admin/class-admin-listings.php:
|
1036 |
msgctxt "admin listings"
|
1037 |
msgid "Recurring"
|
1038 |
msgstr "Ricorrente"
|
1039 |
|
1040 |
-
#: includes/admin/class-admin-listings.php:
|
1041 |
msgctxt "admin listings"
|
1042 |
msgid "Free"
|
1043 |
msgstr "Gratis"
|
1044 |
|
1045 |
-
#: includes/admin/class-admin-listings.php:
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Paid"
|
1048 |
msgstr "Pagato"
|
1049 |
|
1050 |
-
#: includes/admin/class-admin-listings.php:
|
1051 |
msgctxt "admin listings"
|
1052 |
msgid "Reported"
|
1053 |
msgstr "Segnalato"
|
1054 |
|
1055 |
-
#: includes/admin/class-admin-listings.php:
|
1056 |
msgctxt "admin listings"
|
1057 |
msgid "Listing's payment history successfully deleted"
|
1058 |
msgstr ""
|
@@ -1078,12 +1091,12 @@ msgctxt "admin listings"
|
|
1078 |
msgid "Clear listing reports."
|
1079 |
msgstr "Cancella le segnalazioni annuncio"
|
1080 |
|
1081 |
-
#: includes/admin/class-admin-listings.php:
|
1082 |
msgctxt "admin"
|
1083 |
msgid "Directory Listing Fields / Images"
|
1084 |
msgstr "Directory Annunci Campi / Immagini"
|
1085 |
|
1086 |
-
#: includes/admin/class-admin-listings.php:
|
1087 |
msgctxt "admin"
|
1088 |
msgid "Categories"
|
1089 |
msgstr "Categorie"
|
@@ -1277,107 +1290,107 @@ msgctxt "admin"
|
|
1277 |
msgid "Go to \"Manage Fees\""
|
1278 |
msgstr "Vai a \"Gestire i campi dei moduli\"."
|
1279 |
|
1280 |
-
#: includes/admin/class-admin-listings.php:
|
1281 |
msgctxt "listing attribute"
|
1282 |
msgid "No Fee Plan"
|
1283 |
msgstr "Nessun piano tariffario"
|
1284 |
|
1285 |
-
#: includes/admin/class-admin-listings.php:
|
1286 |
msgctxt "listing status"
|
1287 |
msgid "Reported"
|
1288 |
msgstr "Segnalato"
|
1289 |
|
1290 |
-
#: includes/class-listing.php:
|
1291 |
msgctxt "listing status"
|
1292 |
msgid "Unknown"
|
1293 |
msgstr "Sconosciuto"
|
1294 |
|
1295 |
-
#: includes/class-listing.php:
|
1296 |
msgctxt "listing status"
|
1297 |
msgid "Legacy"
|
1298 |
msgstr "Legacy"
|
1299 |
|
1300 |
-
#: includes/class-listing.php:
|
1301 |
msgctxt "listing status"
|
1302 |
msgid "Incomplete"
|
1303 |
msgstr "Incompleto"
|
1304 |
|
1305 |
-
#: includes/class-listing.php:
|
1306 |
msgctxt "listing status"
|
1307 |
msgid "Pending Payment"
|
1308 |
msgstr "Pagamento in attesa"
|
1309 |
|
1310 |
-
#: includes/class-listing.php:
|
1311 |
msgctxt "listing status"
|
1312 |
msgid "Complete"
|
1313 |
msgstr "Completato"
|
1314 |
|
1315 |
-
#: includes/class-listing.php:
|
1316 |
msgctxt "listing status"
|
1317 |
msgid "Pending Upgrade"
|
1318 |
msgstr "Aggiornamento in attesa"
|
1319 |
|
1320 |
-
#: includes/class-listing.php:
|
1321 |
msgctxt "listing status"
|
1322 |
msgid "Expired"
|
1323 |
msgstr "Scaduto"
|
1324 |
|
1325 |
-
#: includes/class-listing.php:
|
1326 |
msgctxt "listing status"
|
1327 |
msgid "Pending Renewal"
|
1328 |
msgstr "In attesa di rinnovo"
|
1329 |
|
1330 |
-
#: includes/class-listing.php:
|
1331 |
msgctxt "listing status"
|
1332 |
msgid "Abandoned"
|
1333 |
msgstr "Abbandonato"
|
1334 |
|
1335 |
-
#: includes/admin/class-admin-listings.php:
|
1336 |
msgctxt "admin actions"
|
1337 |
msgid "Edit Listing"
|
1338 |
msgstr "Modifica Annuncio"
|
1339 |
|
1340 |
-
#: includes/admin/class-admin-listings.php:
|
1341 |
msgctxt "admin actions"
|
1342 |
msgid "Delete Listing"
|
1343 |
msgstr "Elimina Annuncio"
|
1344 |
|
1345 |
-
#: includes/admin/class-admin-listings.php:
|
1346 |
msgctxt "admin actions"
|
1347 |
msgid "View Payments"
|
1348 |
msgstr "Visualizza Pagamenti"
|
1349 |
|
1350 |
-
#: includes/admin/class-admin-listings.php:
|
1351 |
msgctxt "admin actions"
|
1352 |
msgid "View Payment"
|
1353 |
msgstr "Visualizza pagamento"
|
1354 |
|
1355 |
-
#: includes/admin/class-admin-listings.php:
|
1356 |
msgctxt "admin actions"
|
1357 |
msgid "Publish listings"
|
1358 |
msgstr "Pubblicare gli annunci"
|
1359 |
|
1360 |
-
#: includes/admin/class-admin-listings.php:
|
1361 |
msgctxt "admin actions"
|
1362 |
msgid "Mark as \"Pending Review\""
|
1363 |
msgstr "Segnare come \"Recensione in sospeso\"."
|
1364 |
|
1365 |
-
#: includes/admin/class-admin-listings.php:
|
1366 |
msgctxt "admin actions"
|
1367 |
msgid "Hide from directory (mark as \"Draft\")"
|
1368 |
msgstr "Nascondi dall'elenco (contrassegnare come \"Bozza\")"
|
1369 |
|
1370 |
-
#: includes/admin/class-admin-listings.php:
|
1371 |
msgctxt "admin actions"
|
1372 |
msgid "Renew listings"
|
1373 |
msgstr "Rinnovare gli elenchi"
|
1374 |
|
1375 |
-
#: includes/admin/class-admin-listings.php:
|
1376 |
msgctxt "admin actions"
|
1377 |
msgid "Set listings as \"Expired\""
|
1378 |
msgstr "Set listings come \"Scaduto\"."
|
1379 |
|
1380 |
-
#: includes/admin/class-admin-listings.php:
|
1381 |
msgctxt "admin actions"
|
1382 |
msgid "Send access keys"
|
1383 |
msgstr "Inviare i tasti di accesso"
|
@@ -5844,17 +5857,17 @@ msgctxt "listing"
|
|
5844 |
msgid "Listing expired"
|
5845 |
msgstr "Annuncio scaduto"
|
5846 |
|
5847 |
-
#: includes/class-listing.php:
|
5848 |
msgctxt "listing"
|
5849 |
msgid "(Unavailable Plan)"
|
5850 |
msgstr "(Piano non disponibile)"
|
5851 |
|
5852 |
-
#: includes/class-listing.php:
|
5853 |
msgctxt "listing"
|
5854 |
msgid "Plan \"%s\" (recurring)"
|
5855 |
msgstr "Piano \"%s\" (ricorrente)"
|
5856 |
|
5857 |
-
#: includes/class-listing.php:
|
5858 |
msgctxt "listing"
|
5859 |
msgid "Plan \"%s\""
|
5860 |
msgstr "Piano \"%s\"."
|
@@ -8514,7 +8527,7 @@ msgstr "Cerca"
|
|
8514 |
#: templates/admin/csv-import.tpl.php:116
|
8515 |
#: templates/admin/csv-import.tpl.php:142
|
8516 |
#: templates/admin/csv-import.tpl.php:153
|
8517 |
-
#: templates/admin/csv-import.tpl.php:
|
8518 |
msgctxt "admin forms"
|
8519 |
msgid "required"
|
8520 |
msgstr "richiesto"
|
3 |
"Project-Id-Version: Business Directory Plugin\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
7 |
"PO-Revision-Date: 2019-06-25 13:45-0500\n"
|
8 |
"Last-Translator: \n"
|
9 |
"Language-Team: \n"
|
23 |
"X-Poedit-SearchPath-0: .\n"
|
24 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
25 |
|
26 |
+
#: includes/admin/class-admin-listings.php:184
|
27 |
msgid "Listing Information"
|
28 |
msgstr "Informazioni sull'annuncio"
|
29 |
|
30 |
+
#: includes/admin/class-admin-listings.php:192
|
31 |
msgid "Listing Timeline"
|
32 |
msgstr "Calendario degli annunci"
|
33 |
|
34 |
+
#: includes/admin/class-admin-listings.php:210
|
35 |
msgid "Listing Reports"
|
36 |
msgstr "Reports Annuncio"
|
37 |
|
38 |
+
#: includes/admin/class-admin-listings.php:251
|
39 |
msgid "Expires on"
|
40 |
msgstr "Scade il"
|
41 |
|
42 |
+
#: includes/admin/class-admin-listings.php:259
|
43 |
msgid "Attributes"
|
44 |
msgstr "Attributi"
|
45 |
|
60 |
msgid "Uninstall"
|
61 |
msgstr "Disinstalla"
|
62 |
|
63 |
+
#: includes/admin/class-csv-import.php:633
|
64 |
msgid "Listing imported by admin. Payment skipped."
|
65 |
msgstr "Elenco importato da admin. Pagamento saltato."
|
66 |
|
507 |
msgid "See an example CSV import file"
|
508 |
msgstr "Vedere un esempio di file di importazione CSV"
|
509 |
|
510 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
511 |
msgctxt "admin csv-import"
|
512 |
msgid "Help"
|
513 |
msgstr "Aiuto"
|
514 |
|
515 |
+
#: includes/admin/class-csv-import.php:503
|
516 |
msgctxt "admin csv-import"
|
517 |
msgid ""
|
518 |
"Could not create listing category \"<category-name>\". The operation failed "
|
521 |
"Impossibile creare la categoria di Annunci \"<category-name>\". L'operazione "
|
522 |
"non è riuscita per il seguente errore: <error-message>."
|
523 |
|
524 |
+
#: includes/admin/class-csv-import.php:509
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "Could not create listing category \"%s\""
|
527 |
msgstr "Impossibile creare la categoria \"%s\""
|
528 |
|
529 |
+
#: includes/admin/class-csv-import.php:684
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Username \"%s\" does not exist"
|
532 |
msgstr "Nome Utente \"%s\" non esiste"
|
533 |
|
534 |
+
#: includes/admin/class-csv-import.php:710
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "The string <string> couldn't be converted into a valid date."
|
537 |
msgstr "La stringa <string>non poteva essere convertita in una data valida."
|
538 |
|
539 |
+
#: includes/admin/class-csv-import.php:732
|
540 |
msgctxt "admin csv-import"
|
541 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
542 |
msgstr "Non esiste un piano tariffario con ID = <fee-id>"
|
543 |
|
544 |
+
#: includes/admin/class-csv-import.php:755
|
545 |
msgctxt "admin csv-import"
|
546 |
msgid "Missing required field: %s"
|
547 |
msgstr "Campo obbligatorio mancante: %s"
|
548 |
|
549 |
+
#: includes/admin/class-csv-import.php:780
|
550 |
msgctxt "admin csv-import"
|
551 |
msgid "Listing category \"%s\" does not exist"
|
552 |
msgstr "La categoria \"%s\" non esiste"
|
811 |
msgstr "Importa le impostazioni"
|
812 |
|
813 |
#: templates/admin/csv-import.tpl.php:168
|
814 |
+
#, fuzzy
|
815 |
msgctxt "admin csv-import"
|
816 |
+
msgid "Post status of new imported listings"
|
817 |
msgstr "Stato delle inserzioni importate"
|
818 |
|
819 |
+
#: templates/admin/csv-import.tpl.php:183
|
820 |
+
#, fuzzy
|
821 |
+
msgctxt "admin csv-import"
|
822 |
+
msgid "Post status of existing imported listings"
|
823 |
+
msgstr "Stato delle inserzioni importate"
|
824 |
+
|
825 |
+
#: templates/admin/csv-import.tpl.php:187
|
826 |
+
#, fuzzy
|
827 |
+
msgctxt "admin csv-import"
|
828 |
+
msgid "Preserve existing status"
|
829 |
+
msgstr "Stato Inserzione"
|
830 |
+
|
831 |
+
#: templates/admin/csv-import.tpl.php:199
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Missing categories handling"
|
834 |
msgstr "Gestione delle categorie mancanti"
|
835 |
|
836 |
+
#: templates/admin/csv-import.tpl.php:204
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Auto-create categories"
|
839 |
msgstr "Creazione automatica delle categorie"
|
840 |
|
841 |
+
#: templates/admin/csv-import.tpl.php:207
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Generate errors when a category is not found"
|
844 |
msgstr "Generare errori quando una categoria non viene trovata"
|
845 |
|
846 |
+
#: templates/admin/csv-import.tpl.php:212
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Keep existing listing images?"
|
849 |
msgstr "Mantenere le immagini dell'elenco esistenti?"
|
850 |
|
851 |
+
#: templates/admin/csv-import.tpl.php:217
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Keep existing images."
|
854 |
msgstr "Conservare le immagini esistenti."
|
855 |
|
856 |
+
#: templates/admin/csv-import.tpl.php:218
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid "Appends new images while keeping current ones."
|
859 |
msgstr "Aggiunge nuove immagini mantenendo quelle attuali."
|
860 |
|
861 |
+
#: templates/admin/csv-import.tpl.php:223
|
862 |
msgctxt "admin csv-import"
|
863 |
msgid "Assign listings to a user?"
|
864 |
msgstr "Assegna annunci a un utente?"
|
865 |
|
866 |
+
#: templates/admin/csv-import.tpl.php:229
|
867 |
msgctxt "admin csv-import"
|
868 |
msgid "Assign listings to a user."
|
869 |
msgstr "Assegnare le inserzioni ad un utente."
|
870 |
|
871 |
+
#: templates/admin/csv-import.tpl.php:234
|
872 |
msgctxt "admin csv-import"
|
873 |
msgid "Use a default user for listings?"
|
874 |
msgstr "Utilizzare un utente predefinito per gli elenchi?"
|
875 |
|
876 |
+
#: templates/admin/csv-import.tpl.php:240
|
877 |
msgctxt "admin csv-import"
|
878 |
msgid ""
|
879 |
"Select a default user to be used if the username column is not present in "
|
882 |
"Selezionare un utente predefinito da utilizzare se la colonna nome utente "
|
883 |
"non è presente nel file CSV."
|
884 |
|
885 |
+
#: templates/admin/csv-import.tpl.php:245
|
886 |
msgctxt "admin csv-import"
|
887 |
msgid "Default listing user"
|
888 |
msgstr "Utente predefinito"
|
889 |
|
890 |
+
#: templates/admin/csv-import.tpl.php:251
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid ""
|
893 |
"This user will be used if the username column is not present in the CSV file."
|
895 |
"Questo utente verrà utilizzato se la colonna username non è presente nel "
|
896 |
"file CSV."
|
897 |
|
898 |
+
#: templates/admin/csv-import.tpl.php:256
|
899 |
msgctxt "admin csv-import"
|
900 |
msgid "Number of listings imported on every cycle"
|
901 |
msgstr "Numero di elenchi importati per ogni ciclo"
|
902 |
|
903 |
+
#: templates/admin/csv-import.tpl.php:264
|
904 |
msgctxt "admin csv-import"
|
905 |
msgid ""
|
906 |
"If you are having trouble importing listings due to memory problems, try "
|
914 |
"più lungo, ma aumenterà le possibilità di successo su piattaforme di hosting "
|
915 |
"condiviso e altri server con risorse limitate."
|
916 |
|
917 |
+
#: templates/admin/csv-import.tpl.php:269
|
918 |
msgctxt "admin csv-import"
|
919 |
msgid "Disable e-mail notifications during import?"
|
920 |
msgstr "Disattiva le notifiche di posta elettronica durante l'importazione?"
|
921 |
|
922 |
+
#: templates/admin/csv-import.tpl.php:274
|
923 |
msgctxt "admin csv-import"
|
924 |
msgid "Disable e-mail notifications."
|
925 |
msgstr "Disattiva le notifiche di posta elettronica."
|
926 |
|
927 |
+
#: templates/admin/csv-import.tpl.php:280
|
928 |
msgctxt "admin csv-import"
|
929 |
msgid "Test Import"
|
930 |
msgstr "Test importazione"
|
931 |
|
932 |
+
#: templates/admin/csv-import.tpl.php:281
|
933 |
msgctxt "admin csv-import"
|
934 |
msgid "Import Listings"
|
935 |
msgstr "Importa Annunci"
|
936 |
|
937 |
+
#: templates/admin/csv-import.tpl.php:289
|
938 |
msgctxt "admin csv-import"
|
939 |
msgid ""
|
940 |
"The following are the valid header names to be used in the CSV file. "
|
948 |
"file di importazione CSV\"</a> Per vedere come un file di importazione deve "
|
949 |
"essere."
|
950 |
|
951 |
+
#: templates/admin/csv-import.tpl.php:296
|
952 |
msgctxt "admin csv-import"
|
953 |
msgid "Header name/label"
|
954 |
msgstr "Nome intestazione / etichetta"
|
955 |
|
956 |
+
#: templates/admin/csv-import.tpl.php:297
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid "Field"
|
959 |
msgstr "Campo"
|
960 |
|
961 |
+
#: templates/admin/csv-import.tpl.php:298
|
962 |
msgctxt "admin csv-import"
|
963 |
msgid "Type"
|
964 |
msgstr "Tipo"
|
965 |
|
966 |
+
#: templates/admin/csv-import.tpl.php:299
|
967 |
msgctxt "admin csv-import"
|
968 |
msgid "Required?"
|
969 |
msgstr "Necessario?"
|
970 |
|
971 |
+
#: templates/admin/csv-import.tpl.php:300
|
972 |
msgctxt "admin csv-import"
|
973 |
msgid "Multivalued?"
|
974 |
msgstr "Multivalore?"
|
975 |
|
976 |
+
#: templates/admin/csv-import.tpl.php:322
|
977 |
msgctxt "admin csv-import"
|
978 |
msgid ""
|
979 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
982 |
"Fee ID (numero intero) associato ad un elenco. Utilizzare questa colonna per "
|
983 |
"aggiungere o aggiornare gli elenchi da fonti esterne."
|
984 |
|
985 |
+
#: templates/admin/csv-import.tpl.php:329
|
986 |
msgctxt "admin csv-import"
|
987 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
988 |
msgstr "Elenco separato di immagini (dal file ZIP)"
|
989 |
|
990 |
+
#: templates/admin/csv-import.tpl.php:336
|
991 |
msgctxt "admin csv-import"
|
992 |
msgid "Listing author's username"
|
993 |
msgstr "Elenco degli utenti"
|
994 |
|
995 |
+
#: templates/admin/csv-import.tpl.php:343
|
996 |
msgctxt "admin csv-import"
|
997 |
msgid ""
|
998 |
"Internal Sequence ID used to allow listing updates from external sources."
|
1000 |
"ID di sequenza interna utilizzata per consentire l'elenco degli "
|
1001 |
"aggiornamenti da fonti esterne."
|
1002 |
|
1003 |
+
#: templates/admin/csv-import.tpl.php:350
|
1004 |
msgctxt "admin csv-import"
|
1005 |
msgid ""
|
1006 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1019 |
msgid "Export"
|
1020 |
msgstr "Esporta"
|
1021 |
|
1022 |
+
#: includes/admin/class-admin-listings.php:62
|
1023 |
msgctxt "admin category filter"
|
1024 |
msgid "All categories"
|
1025 |
msgstr "Tutte le categorie"
|
1026 |
|
1027 |
+
#: includes/admin/class-admin-listings.php:177
|
1028 |
msgctxt "admin listings"
|
1029 |
msgid ""
|
1030 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1035 |
"fine di determinare le caratteristiche disponibili per questo elenco, così "
|
1036 |
"come la gestione dei rinnovi."
|
1037 |
|
1038 |
+
#: includes/admin/class-admin-listings.php:296
|
1039 |
msgctxt "admin listings"
|
1040 |
msgid "Never"
|
1041 |
msgstr "Mai"
|
1042 |
|
1043 |
+
#: includes/admin/class-admin-listings.php:322
|
1044 |
msgctxt "admin listings"
|
1045 |
msgid "Featured"
|
1046 |
msgstr "In evidenza"
|
1047 |
|
1048 |
+
#: includes/admin/class-admin-listings.php:326
|
1049 |
msgctxt "admin listings"
|
1050 |
msgid "Recurring"
|
1051 |
msgstr "Ricorrente"
|
1052 |
|
1053 |
+
#: includes/admin/class-admin-listings.php:330
|
1054 |
msgctxt "admin listings"
|
1055 |
msgid "Free"
|
1056 |
msgstr "Gratis"
|
1057 |
|
1058 |
+
#: includes/admin/class-admin-listings.php:332
|
1059 |
msgctxt "admin listings"
|
1060 |
msgid "Paid"
|
1061 |
msgstr "Pagato"
|
1062 |
|
1063 |
+
#: includes/admin/class-admin-listings.php:337
|
1064 |
msgctxt "admin listings"
|
1065 |
msgid "Reported"
|
1066 |
msgstr "Segnalato"
|
1067 |
|
1068 |
+
#: includes/admin/class-admin-listings.php:666
|
1069 |
msgctxt "admin listings"
|
1070 |
msgid "Listing's payment history successfully deleted"
|
1071 |
msgstr ""
|
1091 |
msgid "Clear listing reports."
|
1092 |
msgstr "Cancella le segnalazioni annuncio"
|
1093 |
|
1094 |
+
#: includes/admin/class-admin-listings.php:200
|
1095 |
msgctxt "admin"
|
1096 |
msgid "Directory Listing Fields / Images"
|
1097 |
msgstr "Directory Annunci Campi / Immagini"
|
1098 |
|
1099 |
+
#: includes/admin/class-admin-listings.php:250
|
1100 |
msgctxt "admin"
|
1101 |
msgid "Categories"
|
1102 |
msgstr "Categorie"
|
1290 |
msgid "Go to \"Manage Fees\""
|
1291 |
msgstr "Vai a \"Gestire i campi dei moduli\"."
|
1292 |
|
1293 |
+
#: includes/admin/class-admin-listings.php:307
|
1294 |
msgctxt "listing attribute"
|
1295 |
msgid "No Fee Plan"
|
1296 |
msgstr "Nessun piano tariffario"
|
1297 |
|
1298 |
+
#: includes/admin/class-admin-listings.php:397
|
1299 |
msgctxt "listing status"
|
1300 |
msgid "Reported"
|
1301 |
msgstr "Segnalato"
|
1302 |
|
1303 |
+
#: includes/class-listing.php:776
|
1304 |
msgctxt "listing status"
|
1305 |
msgid "Unknown"
|
1306 |
msgstr "Sconosciuto"
|
1307 |
|
1308 |
+
#: includes/class-listing.php:777
|
1309 |
msgctxt "listing status"
|
1310 |
msgid "Legacy"
|
1311 |
msgstr "Legacy"
|
1312 |
|
1313 |
+
#: includes/class-listing.php:778
|
1314 |
msgctxt "listing status"
|
1315 |
msgid "Incomplete"
|
1316 |
msgstr "Incompleto"
|
1317 |
|
1318 |
+
#: includes/class-listing.php:779
|
1319 |
msgctxt "listing status"
|
1320 |
msgid "Pending Payment"
|
1321 |
msgstr "Pagamento in attesa"
|
1322 |
|
1323 |
+
#: includes/class-listing.php:780
|
1324 |
msgctxt "listing status"
|
1325 |
msgid "Complete"
|
1326 |
msgstr "Completato"
|
1327 |
|
1328 |
+
#: includes/class-listing.php:781
|
1329 |
msgctxt "listing status"
|
1330 |
msgid "Pending Upgrade"
|
1331 |
msgstr "Aggiornamento in attesa"
|
1332 |
|
1333 |
+
#: includes/class-listing.php:782
|
1334 |
msgctxt "listing status"
|
1335 |
msgid "Expired"
|
1336 |
msgstr "Scaduto"
|
1337 |
|
1338 |
+
#: includes/class-listing.php:783
|
1339 |
msgctxt "listing status"
|
1340 |
msgid "Pending Renewal"
|
1341 |
msgstr "In attesa di rinnovo"
|
1342 |
|
1343 |
+
#: includes/class-listing.php:784
|
1344 |
msgctxt "listing status"
|
1345 |
msgid "Abandoned"
|
1346 |
msgstr "Abbandonato"
|
1347 |
|
1348 |
+
#: includes/admin/class-admin-listings.php:446
|
1349 |
msgctxt "admin actions"
|
1350 |
msgid "Edit Listing"
|
1351 |
msgstr "Modifica Annuncio"
|
1352 |
|
1353 |
+
#: includes/admin/class-admin-listings.php:451
|
1354 |
msgctxt "admin actions"
|
1355 |
msgid "Delete Listing"
|
1356 |
msgstr "Elimina Annuncio"
|
1357 |
|
1358 |
+
#: includes/admin/class-admin-listings.php:462
|
1359 |
msgctxt "admin actions"
|
1360 |
msgid "View Payments"
|
1361 |
msgstr "Visualizza Pagamenti"
|
1362 |
|
1363 |
+
#: includes/admin/class-admin-listings.php:467
|
1364 |
msgctxt "admin actions"
|
1365 |
msgid "View Payment"
|
1366 |
msgstr "Visualizza pagamento"
|
1367 |
|
1368 |
+
#: includes/admin/class-admin-listings.php:605
|
1369 |
msgctxt "admin actions"
|
1370 |
msgid "Publish listings"
|
1371 |
msgstr "Pubblicare gli annunci"
|
1372 |
|
1373 |
+
#: includes/admin/class-admin-listings.php:606
|
1374 |
msgctxt "admin actions"
|
1375 |
msgid "Mark as \"Pending Review\""
|
1376 |
msgstr "Segnare come \"Recensione in sospeso\"."
|
1377 |
|
1378 |
+
#: includes/admin/class-admin-listings.php:607
|
1379 |
msgctxt "admin actions"
|
1380 |
msgid "Hide from directory (mark as \"Draft\")"
|
1381 |
msgstr "Nascondi dall'elenco (contrassegnare come \"Bozza\")"
|
1382 |
|
1383 |
+
#: includes/admin/class-admin-listings.php:609
|
1384 |
msgctxt "admin actions"
|
1385 |
msgid "Renew listings"
|
1386 |
msgstr "Rinnovare gli elenchi"
|
1387 |
|
1388 |
+
#: includes/admin/class-admin-listings.php:610
|
1389 |
msgctxt "admin actions"
|
1390 |
msgid "Set listings as \"Expired\""
|
1391 |
msgstr "Set listings come \"Scaduto\"."
|
1392 |
|
1393 |
+
#: includes/admin/class-admin-listings.php:617
|
1394 |
msgctxt "admin actions"
|
1395 |
msgid "Send access keys"
|
1396 |
msgstr "Inviare i tasti di accesso"
|
5857 |
msgid "Listing expired"
|
5858 |
msgstr "Annuncio scaduto"
|
5859 |
|
5860 |
+
#: includes/class-listing.php:516
|
5861 |
msgctxt "listing"
|
5862 |
msgid "(Unavailable Plan)"
|
5863 |
msgstr "(Piano non disponibile)"
|
5864 |
|
5865 |
+
#: includes/class-listing.php:673
|
5866 |
msgctxt "listing"
|
5867 |
msgid "Plan \"%s\" (recurring)"
|
5868 |
msgstr "Piano \"%s\" (ricorrente)"
|
5869 |
|
5870 |
+
#: includes/class-listing.php:675
|
5871 |
msgctxt "listing"
|
5872 |
msgid "Plan \"%s\""
|
5873 |
msgstr "Piano \"%s\"."
|
8527 |
#: templates/admin/csv-import.tpl.php:116
|
8528 |
#: templates/admin/csv-import.tpl.php:142
|
8529 |
#: templates/admin/csv-import.tpl.php:153
|
8530 |
+
#: templates/admin/csv-import.tpl.php:199
|
8531 |
msgctxt "admin forms"
|
8532 |
msgid "required"
|
8533 |
msgstr "richiesto"
|
languages/WPBDM-nl_NL.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
-
"POT-Creation-Date: 2020-
|
7 |
"PO-Revision-Date: 2017-07-04 12:37+0000\n"
|
8 |
"Last-Translator: admin <info@nederlofcentrum.nl>\n"
|
9 |
"Language-Team: Dutch\n"
|
@@ -14,26 +14,26 @@ msgstr ""
|
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
15 |
"X-Generator: Loco - https://localise.biz/\n"
|
16 |
|
17 |
-
#: includes/admin/class-admin-listings.php:
|
18 |
msgid "Listing Information"
|
19 |
msgstr "Registratie informatie"
|
20 |
|
21 |
-
#: includes/admin/class-admin-listings.php:
|
22 |
#, fuzzy
|
23 |
msgid "Listing Timeline"
|
24 |
msgstr "Registratie titel:"
|
25 |
|
26 |
-
#: includes/admin/class-admin-listings.php:
|
27 |
#, fuzzy
|
28 |
msgid "Listing Reports"
|
29 |
msgstr "Een registratie verloopt."
|
30 |
|
31 |
-
#: includes/admin/class-admin-listings.php:
|
32 |
#, fuzzy
|
33 |
msgid "Expires on"
|
34 |
msgstr "Verlopen"
|
35 |
|
36 |
-
#: includes/admin/class-admin-listings.php:
|
37 |
#, fuzzy
|
38 |
msgid "Attributes"
|
39 |
msgstr "Veld attributen"
|
@@ -53,7 +53,7 @@ msgstr "Business Directory instellingen"
|
|
53 |
msgid "Uninstall"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: includes/admin/class-csv-import.php:
|
57 |
msgid "Listing imported by admin. Payment skipped."
|
58 |
msgstr ""
|
59 |
|
@@ -476,44 +476,44 @@ msgctxt "admin csv-import"
|
|
476 |
msgid "See an example CSV import file"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
480 |
msgctxt "admin csv-import"
|
481 |
msgid "Help"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: includes/admin/class-csv-import.php:
|
485 |
msgctxt "admin csv-import"
|
486 |
msgid ""
|
487 |
"Could not create listing category \"<category-name>\". The operation failed "
|
488 |
"with the following error: <error-message>."
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: includes/admin/class-csv-import.php:
|
492 |
msgctxt "admin csv-import"
|
493 |
msgid "Could not create listing category \"%s\""
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: includes/admin/class-csv-import.php:
|
497 |
msgctxt "admin csv-import"
|
498 |
msgid "Username \"%s\" does not exist"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: includes/admin/class-csv-import.php:
|
502 |
msgctxt "admin csv-import"
|
503 |
msgid "The string <string> couldn't be converted into a valid date."
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: includes/admin/class-csv-import.php:
|
507 |
msgctxt "admin csv-import"
|
508 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: includes/admin/class-csv-import.php:
|
512 |
msgctxt "admin csv-import"
|
513 |
msgid "Missing required field: %s"
|
514 |
msgstr "Mist vereist veld: %s"
|
515 |
|
516 |
-
#: includes/admin/class-csv-import.php:
|
517 |
msgctxt "admin csv-import"
|
518 |
msgid "Listing category \"%s\" does not exist"
|
519 |
msgstr ""
|
@@ -762,80 +762,93 @@ msgid "Import settings"
|
|
762 |
msgstr ""
|
763 |
|
764 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
765 |
msgctxt "admin csv-import"
|
766 |
-
msgid "Post status of imported listings"
|
767 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
|
769 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
770 |
msgctxt "admin csv-import"
|
771 |
msgid "Missing categories handling"
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: templates/admin/csv-import.tpl.php:
|
775 |
msgctxt "admin csv-import"
|
776 |
msgid "Auto-create categories"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: templates/admin/csv-import.tpl.php:
|
780 |
msgctxt "admin csv-import"
|
781 |
msgid "Generate errors when a category is not found"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: templates/admin/csv-import.tpl.php:
|
785 |
msgctxt "admin csv-import"
|
786 |
msgid "Keep existing listing images?"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: templates/admin/csv-import.tpl.php:
|
790 |
msgctxt "admin csv-import"
|
791 |
msgid "Keep existing images."
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: templates/admin/csv-import.tpl.php:
|
795 |
msgctxt "admin csv-import"
|
796 |
msgid "Appends new images while keeping current ones."
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: templates/admin/csv-import.tpl.php:
|
800 |
msgctxt "admin csv-import"
|
801 |
msgid "Assign listings to a user?"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: templates/admin/csv-import.tpl.php:
|
805 |
msgctxt "admin csv-import"
|
806 |
msgid "Assign listings to a user."
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: templates/admin/csv-import.tpl.php:
|
810 |
msgctxt "admin csv-import"
|
811 |
msgid "Use a default user for listings?"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: templates/admin/csv-import.tpl.php:
|
815 |
msgctxt "admin csv-import"
|
816 |
msgid ""
|
817 |
"Select a default user to be used if the username column is not present in "
|
818 |
"the CSV file."
|
819 |
msgstr ""
|
820 |
|
821 |
-
#: templates/admin/csv-import.tpl.php:
|
822 |
msgctxt "admin csv-import"
|
823 |
msgid "Default listing user"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: templates/admin/csv-import.tpl.php:
|
827 |
msgctxt "admin csv-import"
|
828 |
msgid ""
|
829 |
"This user will be used if the username column is not present in the CSV file."
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: templates/admin/csv-import.tpl.php:
|
833 |
#, fuzzy
|
834 |
msgctxt "admin csv-import"
|
835 |
msgid "Number of listings imported on every cycle"
|
836 |
msgstr "Aantal registraties tonen:"
|
837 |
|
838 |
-
#: templates/admin/csv-import.tpl.php:
|
839 |
msgctxt "admin csv-import"
|
840 |
msgid ""
|
841 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -844,27 +857,27 @@ msgid ""
|
|
844 |
"success on shared hosting platforms and other resource-constrained servers."
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: templates/admin/csv-import.tpl.php:
|
848 |
msgctxt "admin csv-import"
|
849 |
msgid "Disable e-mail notifications during import?"
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: templates/admin/csv-import.tpl.php:
|
853 |
msgctxt "admin csv-import"
|
854 |
msgid "Disable e-mail notifications."
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: templates/admin/csv-import.tpl.php:
|
858 |
msgctxt "admin csv-import"
|
859 |
msgid "Test Import"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: templates/admin/csv-import.tpl.php:
|
863 |
msgctxt "admin csv-import"
|
864 |
msgid "Import Listings"
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: templates/admin/csv-import.tpl.php:
|
868 |
msgctxt "admin csv-import"
|
869 |
msgid ""
|
870 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -873,55 +886,55 @@ msgid ""
|
|
873 |
"how an import file should look like."
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: templates/admin/csv-import.tpl.php:
|
877 |
msgctxt "admin csv-import"
|
878 |
msgid "Header name/label"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: templates/admin/csv-import.tpl.php:
|
882 |
msgctxt "admin csv-import"
|
883 |
msgid "Field"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#: templates/admin/csv-import.tpl.php:
|
887 |
msgctxt "admin csv-import"
|
888 |
msgid "Type"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: templates/admin/csv-import.tpl.php:
|
892 |
msgctxt "admin csv-import"
|
893 |
msgid "Required?"
|
894 |
msgstr "Vereist?"
|
895 |
|
896 |
-
#: templates/admin/csv-import.tpl.php:
|
897 |
msgctxt "admin csv-import"
|
898 |
msgid "Multivalued?"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: templates/admin/csv-import.tpl.php:
|
902 |
msgctxt "admin csv-import"
|
903 |
msgid ""
|
904 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
905 |
"updating listings from external sources."
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: templates/admin/csv-import.tpl.php:
|
909 |
msgctxt "admin csv-import"
|
910 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: templates/admin/csv-import.tpl.php:
|
914 |
msgctxt "admin csv-import"
|
915 |
msgid "Listing author's username"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: templates/admin/csv-import.tpl.php:
|
919 |
msgctxt "admin csv-import"
|
920 |
msgid ""
|
921 |
"Internal Sequence ID used to allow listing updates from external sources."
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: templates/admin/csv-import.tpl.php:
|
925 |
msgctxt "admin csv-import"
|
926 |
msgid ""
|
927 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -938,12 +951,12 @@ msgctxt "admin csv"
|
|
938 |
msgid "Export"
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: includes/admin/class-admin-listings.php:
|
942 |
msgctxt "admin category filter"
|
943 |
msgid "All categories"
|
944 |
msgstr "Alle Categorieën"
|
945 |
|
946 |
-
#: includes/admin/class-admin-listings.php:
|
947 |
msgctxt "admin listings"
|
948 |
msgid ""
|
949 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -951,41 +964,41 @@ msgid ""
|
|
951 |
"renewals."
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: includes/admin/class-admin-listings.php:
|
955 |
#, fuzzy
|
956 |
msgctxt "admin listings"
|
957 |
msgid "Never"
|
958 |
msgstr "nooit"
|
959 |
|
960 |
-
#: includes/admin/class-admin-listings.php:
|
961 |
#, fuzzy
|
962 |
msgctxt "admin listings"
|
963 |
msgid "Featured"
|
964 |
msgstr "Aanbieding/sticky"
|
965 |
|
966 |
-
#: includes/admin/class-admin-listings.php:
|
967 |
msgctxt "admin listings"
|
968 |
msgid "Recurring"
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: includes/admin/class-admin-listings.php:
|
972 |
#, fuzzy
|
973 |
msgctxt "admin listings"
|
974 |
msgid "Free"
|
975 |
msgstr "Gratis"
|
976 |
|
977 |
-
#: includes/admin/class-admin-listings.php:
|
978 |
#, fuzzy
|
979 |
msgctxt "admin listings"
|
980 |
msgid "Paid"
|
981 |
msgstr "Betaald"
|
982 |
|
983 |
-
#: includes/admin/class-admin-listings.php:
|
984 |
msgctxt "admin listings"
|
985 |
msgid "Reported"
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: includes/admin/class-admin-listings.php:
|
989 |
msgctxt "admin listings"
|
990 |
msgid "Listing's payment history successfully deleted"
|
991 |
msgstr ""
|
@@ -1013,13 +1026,13 @@ msgctxt "admin listings"
|
|
1013 |
msgid "Clear listing reports."
|
1014 |
msgstr "Een registratie verloopt."
|
1015 |
|
1016 |
-
#: includes/admin/class-admin-listings.php:
|
1017 |
#, fuzzy
|
1018 |
msgctxt "admin"
|
1019 |
msgid "Directory Listing Fields / Images"
|
1020 |
msgstr "Registratie velden / images"
|
1021 |
|
1022 |
-
#: includes/admin/class-admin-listings.php:
|
1023 |
msgctxt "admin"
|
1024 |
msgid "Categories"
|
1025 |
msgstr "categorieën"
|
@@ -1199,119 +1212,119 @@ msgctxt "admin"
|
|
1199 |
msgid "Go to \"Manage Fees\""
|
1200 |
msgstr "Ga naar \"instellen formulier velden\""
|
1201 |
|
1202 |
-
#: includes/admin/class-admin-listings.php:
|
1203 |
msgctxt "listing attribute"
|
1204 |
msgid "No Fee Plan"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: includes/admin/class-admin-listings.php:
|
1208 |
msgctxt "listing status"
|
1209 |
msgid "Reported"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#: includes/class-listing.php:
|
1213 |
msgctxt "listing status"
|
1214 |
msgid "Unknown"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: includes/class-listing.php:
|
1218 |
msgctxt "listing status"
|
1219 |
msgid "Legacy"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: includes/class-listing.php:
|
1223 |
#, fuzzy
|
1224 |
msgctxt "listing status"
|
1225 |
msgid "Incomplete"
|
1226 |
msgstr "Afgerond"
|
1227 |
|
1228 |
-
#: includes/class-listing.php:
|
1229 |
#, fuzzy
|
1230 |
msgctxt "listing status"
|
1231 |
msgid "Pending Payment"
|
1232 |
msgstr "Wachtend op upgrade"
|
1233 |
|
1234 |
-
#: includes/class-listing.php:
|
1235 |
#, fuzzy
|
1236 |
msgctxt "listing status"
|
1237 |
msgid "Complete"
|
1238 |
msgstr "Afgerond"
|
1239 |
|
1240 |
-
#: includes/class-listing.php:
|
1241 |
#, fuzzy
|
1242 |
msgctxt "listing status"
|
1243 |
msgid "Pending Upgrade"
|
1244 |
msgstr "Wachtend op upgrade"
|
1245 |
|
1246 |
-
#: includes/class-listing.php:
|
1247 |
#, fuzzy
|
1248 |
msgctxt "listing status"
|
1249 |
msgid "Expired"
|
1250 |
msgstr "Verlopen"
|
1251 |
|
1252 |
-
#: includes/class-listing.php:
|
1253 |
#, fuzzy
|
1254 |
msgctxt "listing status"
|
1255 |
msgid "Pending Renewal"
|
1256 |
msgstr "Registratie vernieuwing"
|
1257 |
|
1258 |
-
#: includes/class-listing.php:
|
1259 |
msgctxt "listing status"
|
1260 |
msgid "Abandoned"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: includes/admin/class-admin-listings.php:
|
1264 |
msgctxt "admin actions"
|
1265 |
msgid "Edit Listing"
|
1266 |
msgstr "Registratie bewerken"
|
1267 |
|
1268 |
-
#: includes/admin/class-admin-listings.php:
|
1269 |
msgctxt "admin actions"
|
1270 |
msgid "Delete Listing"
|
1271 |
msgstr "Registratie verwijderen"
|
1272 |
|
1273 |
-
#: includes/admin/class-admin-listings.php:
|
1274 |
#, fuzzy
|
1275 |
msgctxt "admin actions"
|
1276 |
msgid "View Payments"
|
1277 |
msgstr "Betaling"
|
1278 |
|
1279 |
-
#: includes/admin/class-admin-listings.php:
|
1280 |
#, fuzzy
|
1281 |
msgctxt "admin actions"
|
1282 |
msgid "View Payment"
|
1283 |
msgstr "Betaling"
|
1284 |
|
1285 |
-
#: includes/admin/class-admin-listings.php:
|
1286 |
#, fuzzy
|
1287 |
msgctxt "admin actions"
|
1288 |
msgid "Publish listings"
|
1289 |
msgstr "Registratie publiceren"
|
1290 |
|
1291 |
-
#: includes/admin/class-admin-listings.php:
|
1292 |
#, fuzzy
|
1293 |
msgctxt "admin actions"
|
1294 |
msgid "Mark as \"Pending Review\""
|
1295 |
msgstr "In Afwachting"
|
1296 |
|
1297 |
-
#: includes/admin/class-admin-listings.php:
|
1298 |
msgctxt "admin actions"
|
1299 |
msgid "Hide from directory (mark as \"Draft\")"
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#: includes/admin/class-admin-listings.php:
|
1303 |
#, fuzzy
|
1304 |
msgctxt "admin actions"
|
1305 |
msgid "Renew listings"
|
1306 |
msgstr "Vernieuw registratie"
|
1307 |
|
1308 |
-
#: includes/admin/class-admin-listings.php:
|
1309 |
#, fuzzy
|
1310 |
msgctxt "admin actions"
|
1311 |
msgid "Set listings as \"Expired\""
|
1312 |
msgstr "Een registratie verloopt."
|
1313 |
|
1314 |
-
#: includes/admin/class-admin-listings.php:
|
1315 |
msgctxt "admin actions"
|
1316 |
msgid "Send access keys"
|
1317 |
msgstr ""
|
@@ -5757,17 +5770,17 @@ msgctxt "listing"
|
|
5757 |
msgid "Listing expired"
|
5758 |
msgstr "Een registratie verloopt."
|
5759 |
|
5760 |
-
#: includes/class-listing.php:
|
5761 |
msgctxt "listing"
|
5762 |
msgid "(Unavailable Plan)"
|
5763 |
msgstr ""
|
5764 |
|
5765 |
-
#: includes/class-listing.php:
|
5766 |
msgctxt "listing"
|
5767 |
msgid "Plan \"%s\" (recurring)"
|
5768 |
msgstr ""
|
5769 |
|
5770 |
-
#: includes/class-listing.php:
|
5771 |
msgctxt "listing"
|
5772 |
msgid "Plan \"%s\""
|
5773 |
msgstr ""
|
@@ -8319,7 +8332,7 @@ msgstr "Zoek"
|
|
8319 |
#: templates/admin/csv-import.tpl.php:116
|
8320 |
#: templates/admin/csv-import.tpl.php:142
|
8321 |
#: templates/admin/csv-import.tpl.php:153
|
8322 |
-
#: templates/admin/csv-import.tpl.php:
|
8323 |
msgctxt "admin forms"
|
8324 |
msgid "required"
|
8325 |
msgstr "vereist"
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
7 |
"PO-Revision-Date: 2017-07-04 12:37+0000\n"
|
8 |
"Last-Translator: admin <info@nederlofcentrum.nl>\n"
|
9 |
"Language-Team: Dutch\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1\n"
|
15 |
"X-Generator: Loco - https://localise.biz/\n"
|
16 |
|
17 |
+
#: includes/admin/class-admin-listings.php:184
|
18 |
msgid "Listing Information"
|
19 |
msgstr "Registratie informatie"
|
20 |
|
21 |
+
#: includes/admin/class-admin-listings.php:192
|
22 |
#, fuzzy
|
23 |
msgid "Listing Timeline"
|
24 |
msgstr "Registratie titel:"
|
25 |
|
26 |
+
#: includes/admin/class-admin-listings.php:210
|
27 |
#, fuzzy
|
28 |
msgid "Listing Reports"
|
29 |
msgstr "Een registratie verloopt."
|
30 |
|
31 |
+
#: includes/admin/class-admin-listings.php:251
|
32 |
#, fuzzy
|
33 |
msgid "Expires on"
|
34 |
msgstr "Verlopen"
|
35 |
|
36 |
+
#: includes/admin/class-admin-listings.php:259
|
37 |
#, fuzzy
|
38 |
msgid "Attributes"
|
39 |
msgstr "Veld attributen"
|
53 |
msgid "Uninstall"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: includes/admin/class-csv-import.php:633
|
57 |
msgid "Listing imported by admin. Payment skipped."
|
58 |
msgstr ""
|
59 |
|
476 |
msgid "See an example CSV import file"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
480 |
msgctxt "admin csv-import"
|
481 |
msgid "Help"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: includes/admin/class-csv-import.php:503
|
485 |
msgctxt "admin csv-import"
|
486 |
msgid ""
|
487 |
"Could not create listing category \"<category-name>\". The operation failed "
|
488 |
"with the following error: <error-message>."
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: includes/admin/class-csv-import.php:509
|
492 |
msgctxt "admin csv-import"
|
493 |
msgid "Could not create listing category \"%s\""
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: includes/admin/class-csv-import.php:684
|
497 |
msgctxt "admin csv-import"
|
498 |
msgid "Username \"%s\" does not exist"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: includes/admin/class-csv-import.php:710
|
502 |
msgctxt "admin csv-import"
|
503 |
msgid "The string <string> couldn't be converted into a valid date."
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: includes/admin/class-csv-import.php:732
|
507 |
msgctxt "admin csv-import"
|
508 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: includes/admin/class-csv-import.php:755
|
512 |
msgctxt "admin csv-import"
|
513 |
msgid "Missing required field: %s"
|
514 |
msgstr "Mist vereist veld: %s"
|
515 |
|
516 |
+
#: includes/admin/class-csv-import.php:780
|
517 |
msgctxt "admin csv-import"
|
518 |
msgid "Listing category \"%s\" does not exist"
|
519 |
msgstr ""
|
762 |
msgstr ""
|
763 |
|
764 |
#: templates/admin/csv-import.tpl.php:168
|
765 |
+
#, fuzzy
|
766 |
msgctxt "admin csv-import"
|
767 |
+
msgid "Post status of new imported listings"
|
768 |
+
msgstr "Status van verwijderde registraties"
|
769 |
+
|
770 |
+
#: templates/admin/csv-import.tpl.php:183
|
771 |
+
#, fuzzy
|
772 |
+
msgctxt "admin csv-import"
|
773 |
+
msgid "Post status of existing imported listings"
|
774 |
+
msgstr "Status van verwijderde registraties"
|
775 |
|
776 |
+
#: templates/admin/csv-import.tpl.php:187
|
777 |
+
#, fuzzy
|
778 |
+
msgctxt "admin csv-import"
|
779 |
+
msgid "Preserve existing status"
|
780 |
+
msgstr "Registraties"
|
781 |
+
|
782 |
+
#: templates/admin/csv-import.tpl.php:199
|
783 |
msgctxt "admin csv-import"
|
784 |
msgid "Missing categories handling"
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: templates/admin/csv-import.tpl.php:204
|
788 |
msgctxt "admin csv-import"
|
789 |
msgid "Auto-create categories"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: templates/admin/csv-import.tpl.php:207
|
793 |
msgctxt "admin csv-import"
|
794 |
msgid "Generate errors when a category is not found"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: templates/admin/csv-import.tpl.php:212
|
798 |
msgctxt "admin csv-import"
|
799 |
msgid "Keep existing listing images?"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: templates/admin/csv-import.tpl.php:217
|
803 |
msgctxt "admin csv-import"
|
804 |
msgid "Keep existing images."
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: templates/admin/csv-import.tpl.php:218
|
808 |
msgctxt "admin csv-import"
|
809 |
msgid "Appends new images while keeping current ones."
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: templates/admin/csv-import.tpl.php:223
|
813 |
msgctxt "admin csv-import"
|
814 |
msgid "Assign listings to a user?"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: templates/admin/csv-import.tpl.php:229
|
818 |
msgctxt "admin csv-import"
|
819 |
msgid "Assign listings to a user."
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: templates/admin/csv-import.tpl.php:234
|
823 |
msgctxt "admin csv-import"
|
824 |
msgid "Use a default user for listings?"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: templates/admin/csv-import.tpl.php:240
|
828 |
msgctxt "admin csv-import"
|
829 |
msgid ""
|
830 |
"Select a default user to be used if the username column is not present in "
|
831 |
"the CSV file."
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: templates/admin/csv-import.tpl.php:245
|
835 |
msgctxt "admin csv-import"
|
836 |
msgid "Default listing user"
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: templates/admin/csv-import.tpl.php:251
|
840 |
msgctxt "admin csv-import"
|
841 |
msgid ""
|
842 |
"This user will be used if the username column is not present in the CSV file."
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: templates/admin/csv-import.tpl.php:256
|
846 |
#, fuzzy
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Number of listings imported on every cycle"
|
849 |
msgstr "Aantal registraties tonen:"
|
850 |
|
851 |
+
#: templates/admin/csv-import.tpl.php:264
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid ""
|
854 |
"If you are having trouble importing listings due to memory problems, try "
|
857 |
"success on shared hosting platforms and other resource-constrained servers."
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: templates/admin/csv-import.tpl.php:269
|
861 |
msgctxt "admin csv-import"
|
862 |
msgid "Disable e-mail notifications during import?"
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: templates/admin/csv-import.tpl.php:274
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Disable e-mail notifications."
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: templates/admin/csv-import.tpl.php:280
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid "Test Import"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: templates/admin/csv-import.tpl.php:281
|
876 |
msgctxt "admin csv-import"
|
877 |
msgid "Import Listings"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: templates/admin/csv-import.tpl.php:289
|
881 |
msgctxt "admin csv-import"
|
882 |
msgid ""
|
883 |
"The following are the valid header names to be used in the CSV file. "
|
886 |
"how an import file should look like."
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: templates/admin/csv-import.tpl.php:296
|
890 |
msgctxt "admin csv-import"
|
891 |
msgid "Header name/label"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: templates/admin/csv-import.tpl.php:297
|
895 |
msgctxt "admin csv-import"
|
896 |
msgid "Field"
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: templates/admin/csv-import.tpl.php:298
|
900 |
msgctxt "admin csv-import"
|
901 |
msgid "Type"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: templates/admin/csv-import.tpl.php:299
|
905 |
msgctxt "admin csv-import"
|
906 |
msgid "Required?"
|
907 |
msgstr "Vereist?"
|
908 |
|
909 |
+
#: templates/admin/csv-import.tpl.php:300
|
910 |
msgctxt "admin csv-import"
|
911 |
msgid "Multivalued?"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: templates/admin/csv-import.tpl.php:322
|
915 |
msgctxt "admin csv-import"
|
916 |
msgid ""
|
917 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
918 |
"updating listings from external sources."
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: templates/admin/csv-import.tpl.php:329
|
922 |
msgctxt "admin csv-import"
|
923 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: templates/admin/csv-import.tpl.php:336
|
927 |
msgctxt "admin csv-import"
|
928 |
msgid "Listing author's username"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: templates/admin/csv-import.tpl.php:343
|
932 |
msgctxt "admin csv-import"
|
933 |
msgid ""
|
934 |
"Internal Sequence ID used to allow listing updates from external sources."
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: templates/admin/csv-import.tpl.php:350
|
938 |
msgctxt "admin csv-import"
|
939 |
msgid ""
|
940 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
951 |
msgid "Export"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: includes/admin/class-admin-listings.php:62
|
955 |
msgctxt "admin category filter"
|
956 |
msgid "All categories"
|
957 |
msgstr "Alle Categorieën"
|
958 |
|
959 |
+
#: includes/admin/class-admin-listings.php:177
|
960 |
msgctxt "admin listings"
|
961 |
msgid ""
|
962 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
964 |
"renewals."
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: includes/admin/class-admin-listings.php:296
|
968 |
#, fuzzy
|
969 |
msgctxt "admin listings"
|
970 |
msgid "Never"
|
971 |
msgstr "nooit"
|
972 |
|
973 |
+
#: includes/admin/class-admin-listings.php:322
|
974 |
#, fuzzy
|
975 |
msgctxt "admin listings"
|
976 |
msgid "Featured"
|
977 |
msgstr "Aanbieding/sticky"
|
978 |
|
979 |
+
#: includes/admin/class-admin-listings.php:326
|
980 |
msgctxt "admin listings"
|
981 |
msgid "Recurring"
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: includes/admin/class-admin-listings.php:330
|
985 |
#, fuzzy
|
986 |
msgctxt "admin listings"
|
987 |
msgid "Free"
|
988 |
msgstr "Gratis"
|
989 |
|
990 |
+
#: includes/admin/class-admin-listings.php:332
|
991 |
#, fuzzy
|
992 |
msgctxt "admin listings"
|
993 |
msgid "Paid"
|
994 |
msgstr "Betaald"
|
995 |
|
996 |
+
#: includes/admin/class-admin-listings.php:337
|
997 |
msgctxt "admin listings"
|
998 |
msgid "Reported"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: includes/admin/class-admin-listings.php:666
|
1002 |
msgctxt "admin listings"
|
1003 |
msgid "Listing's payment history successfully deleted"
|
1004 |
msgstr ""
|
1026 |
msgid "Clear listing reports."
|
1027 |
msgstr "Een registratie verloopt."
|
1028 |
|
1029 |
+
#: includes/admin/class-admin-listings.php:200
|
1030 |
#, fuzzy
|
1031 |
msgctxt "admin"
|
1032 |
msgid "Directory Listing Fields / Images"
|
1033 |
msgstr "Registratie velden / images"
|
1034 |
|
1035 |
+
#: includes/admin/class-admin-listings.php:250
|
1036 |
msgctxt "admin"
|
1037 |
msgid "Categories"
|
1038 |
msgstr "categorieën"
|
1212 |
msgid "Go to \"Manage Fees\""
|
1213 |
msgstr "Ga naar \"instellen formulier velden\""
|
1214 |
|
1215 |
+
#: includes/admin/class-admin-listings.php:307
|
1216 |
msgctxt "listing attribute"
|
1217 |
msgid "No Fee Plan"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: includes/admin/class-admin-listings.php:397
|
1221 |
msgctxt "listing status"
|
1222 |
msgid "Reported"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
+
#: includes/class-listing.php:776
|
1226 |
msgctxt "listing status"
|
1227 |
msgid "Unknown"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: includes/class-listing.php:777
|
1231 |
msgctxt "listing status"
|
1232 |
msgid "Legacy"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
+
#: includes/class-listing.php:778
|
1236 |
#, fuzzy
|
1237 |
msgctxt "listing status"
|
1238 |
msgid "Incomplete"
|
1239 |
msgstr "Afgerond"
|
1240 |
|
1241 |
+
#: includes/class-listing.php:779
|
1242 |
#, fuzzy
|
1243 |
msgctxt "listing status"
|
1244 |
msgid "Pending Payment"
|
1245 |
msgstr "Wachtend op upgrade"
|
1246 |
|
1247 |
+
#: includes/class-listing.php:780
|
1248 |
#, fuzzy
|
1249 |
msgctxt "listing status"
|
1250 |
msgid "Complete"
|
1251 |
msgstr "Afgerond"
|
1252 |
|
1253 |
+
#: includes/class-listing.php:781
|
1254 |
#, fuzzy
|
1255 |
msgctxt "listing status"
|
1256 |
msgid "Pending Upgrade"
|
1257 |
msgstr "Wachtend op upgrade"
|
1258 |
|
1259 |
+
#: includes/class-listing.php:782
|
1260 |
#, fuzzy
|
1261 |
msgctxt "listing status"
|
1262 |
msgid "Expired"
|
1263 |
msgstr "Verlopen"
|
1264 |
|
1265 |
+
#: includes/class-listing.php:783
|
1266 |
#, fuzzy
|
1267 |
msgctxt "listing status"
|
1268 |
msgid "Pending Renewal"
|
1269 |
msgstr "Registratie vernieuwing"
|
1270 |
|
1271 |
+
#: includes/class-listing.php:784
|
1272 |
msgctxt "listing status"
|
1273 |
msgid "Abandoned"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: includes/admin/class-admin-listings.php:446
|
1277 |
msgctxt "admin actions"
|
1278 |
msgid "Edit Listing"
|
1279 |
msgstr "Registratie bewerken"
|
1280 |
|
1281 |
+
#: includes/admin/class-admin-listings.php:451
|
1282 |
msgctxt "admin actions"
|
1283 |
msgid "Delete Listing"
|
1284 |
msgstr "Registratie verwijderen"
|
1285 |
|
1286 |
+
#: includes/admin/class-admin-listings.php:462
|
1287 |
#, fuzzy
|
1288 |
msgctxt "admin actions"
|
1289 |
msgid "View Payments"
|
1290 |
msgstr "Betaling"
|
1291 |
|
1292 |
+
#: includes/admin/class-admin-listings.php:467
|
1293 |
#, fuzzy
|
1294 |
msgctxt "admin actions"
|
1295 |
msgid "View Payment"
|
1296 |
msgstr "Betaling"
|
1297 |
|
1298 |
+
#: includes/admin/class-admin-listings.php:605
|
1299 |
#, fuzzy
|
1300 |
msgctxt "admin actions"
|
1301 |
msgid "Publish listings"
|
1302 |
msgstr "Registratie publiceren"
|
1303 |
|
1304 |
+
#: includes/admin/class-admin-listings.php:606
|
1305 |
#, fuzzy
|
1306 |
msgctxt "admin actions"
|
1307 |
msgid "Mark as \"Pending Review\""
|
1308 |
msgstr "In Afwachting"
|
1309 |
|
1310 |
+
#: includes/admin/class-admin-listings.php:607
|
1311 |
msgctxt "admin actions"
|
1312 |
msgid "Hide from directory (mark as \"Draft\")"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: includes/admin/class-admin-listings.php:609
|
1316 |
#, fuzzy
|
1317 |
msgctxt "admin actions"
|
1318 |
msgid "Renew listings"
|
1319 |
msgstr "Vernieuw registratie"
|
1320 |
|
1321 |
+
#: includes/admin/class-admin-listings.php:610
|
1322 |
#, fuzzy
|
1323 |
msgctxt "admin actions"
|
1324 |
msgid "Set listings as \"Expired\""
|
1325 |
msgstr "Een registratie verloopt."
|
1326 |
|
1327 |
+
#: includes/admin/class-admin-listings.php:617
|
1328 |
msgctxt "admin actions"
|
1329 |
msgid "Send access keys"
|
1330 |
msgstr ""
|
5770 |
msgid "Listing expired"
|
5771 |
msgstr "Een registratie verloopt."
|
5772 |
|
5773 |
+
#: includes/class-listing.php:516
|
5774 |
msgctxt "listing"
|
5775 |
msgid "(Unavailable Plan)"
|
5776 |
msgstr ""
|
5777 |
|
5778 |
+
#: includes/class-listing.php:673
|
5779 |
msgctxt "listing"
|
5780 |
msgid "Plan \"%s\" (recurring)"
|
5781 |
msgstr ""
|
5782 |
|
5783 |
+
#: includes/class-listing.php:675
|
5784 |
msgctxt "listing"
|
5785 |
msgid "Plan \"%s\""
|
5786 |
msgstr ""
|
8332 |
#: templates/admin/csv-import.tpl.php:116
|
8333 |
#: templates/admin/csv-import.tpl.php:142
|
8334 |
#: templates/admin/csv-import.tpl.php:153
|
8335 |
+
#: templates/admin/csv-import.tpl.php:199
|
8336 |
msgctxt "admin forms"
|
8337 |
msgid "required"
|
8338 |
msgstr "vereist"
|
languages/WPBDM-pl_PL.mo
CHANGED
Binary file
|
languages/WPBDM-pl_PL.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
-
"POT-Creation-Date: 2020-
|
7 |
"PO-Revision-Date: 2017-01-16 17:49-0500\n"
|
8 |
"Last-Translator: HomeSupport <admin@homesupport.pl>\n"
|
9 |
"Language-Team: HomeSupport\n"
|
@@ -21,30 +21,30 @@ msgstr ""
|
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
|
23 |
# @ WPBDM
|
24 |
-
#: includes/admin/class-admin-listings.php:
|
25 |
msgid "Listing Information"
|
26 |
msgstr "Informacje o firmie"
|
27 |
|
28 |
# @ WPBDM
|
29 |
-
#: includes/admin/class-admin-listings.php:
|
30 |
#, fuzzy
|
31 |
msgid "Listing Timeline"
|
32 |
msgstr "Nazwa Firmy:"
|
33 |
|
34 |
# @ WPBDM
|
35 |
-
#: includes/admin/class-admin-listings.php:
|
36 |
#, fuzzy
|
37 |
msgid "Listing Reports"
|
38 |
msgstr "Upłynął okres ważności oferty."
|
39 |
|
40 |
# @ WPBDM
|
41 |
-
#: includes/admin/class-admin-listings.php:
|
42 |
#, fuzzy
|
43 |
msgid "Expires on"
|
44 |
msgstr "Upłynął okres ważności "
|
45 |
|
46 |
# @ WPBDM
|
47 |
-
#: includes/admin/class-admin-listings.php:
|
48 |
#, fuzzy
|
49 |
msgid "Attributes"
|
50 |
msgstr "Atrybuty pola"
|
@@ -68,7 +68,7 @@ msgid "Uninstall"
|
|
68 |
msgstr "Odinstaluj "
|
69 |
|
70 |
# @ WPBDM
|
71 |
-
#: includes/admin/class-csv-import.php:
|
72 |
#, fuzzy
|
73 |
msgid "Listing imported by admin. Payment skipped."
|
74 |
msgstr "Prześlij ofertę"
|
@@ -587,12 +587,12 @@ msgid "See an example CSV import file"
|
|
587 |
msgstr "Zobacz przykład importowanego pliku CSV"
|
588 |
|
589 |
# @ WPBDM
|
590 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
591 |
msgctxt "admin csv-import"
|
592 |
msgid "Help"
|
593 |
msgstr "Pomoc"
|
594 |
|
595 |
-
#: includes/admin/class-csv-import.php:
|
596 |
msgctxt "admin csv-import"
|
597 |
msgid ""
|
598 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -600,35 +600,35 @@ msgid ""
|
|
600 |
msgstr ""
|
601 |
|
602 |
# @ WPBDM
|
603 |
-
#: includes/admin/class-csv-import.php:
|
604 |
msgctxt "admin csv-import"
|
605 |
msgid "Could not create listing category \"%s\""
|
606 |
msgstr "Nie można utworzyć kategorii ofert \"%s\""
|
607 |
|
608 |
# @ WPBDM
|
609 |
-
#: includes/admin/class-csv-import.php:
|
610 |
msgctxt "admin csv-import"
|
611 |
msgid "Username \"%s\" does not exist"
|
612 |
msgstr "Użytkownik \"%s\" nie istnieje"
|
613 |
|
614 |
-
#: includes/admin/class-csv-import.php:
|
615 |
msgctxt "admin csv-import"
|
616 |
msgid "The string <string> couldn't be converted into a valid date."
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: includes/admin/class-csv-import.php:
|
620 |
msgctxt "admin csv-import"
|
621 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
622 |
msgstr ""
|
623 |
|
624 |
# @ WPBDM
|
625 |
-
#: includes/admin/class-csv-import.php:
|
626 |
msgctxt "admin csv-import"
|
627 |
msgid "Missing required field: %s"
|
628 |
msgstr "Brak wymaganego pola: %s"
|
629 |
|
630 |
# @ WPBDM
|
631 |
-
#: includes/admin/class-csv-import.php:
|
632 |
msgctxt "admin csv-import"
|
633 |
msgid "Listing category \"%s\" does not exist"
|
634 |
msgstr "Kategoria \"%s\" nie istnieje"
|
@@ -933,64 +933,79 @@ msgstr "Ustawienia importu"
|
|
933 |
|
934 |
# @ WPBDM
|
935 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
936 |
msgctxt "admin csv-import"
|
937 |
-
msgid "Post status of imported listings"
|
938 |
msgstr "Status dla zaimportowanych plików"
|
939 |
|
940 |
# @ WPBDM
|
941 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
942 |
msgctxt "admin csv-import"
|
943 |
msgid "Missing categories handling"
|
944 |
msgstr "Brakująca obsługa kategorii "
|
945 |
|
946 |
# @ WPBDM
|
947 |
-
#: templates/admin/csv-import.tpl.php:
|
948 |
msgctxt "admin csv-import"
|
949 |
msgid "Auto-create categories"
|
950 |
msgstr "Automatyczne tworzenie kategorii"
|
951 |
|
952 |
# @ WPBDM
|
953 |
-
#: templates/admin/csv-import.tpl.php:
|
954 |
msgctxt "admin csv-import"
|
955 |
msgid "Generate errors when a category is not found"
|
956 |
msgstr "Generować błędy gdy kategorii nie znaleziono"
|
957 |
|
958 |
-
#: templates/admin/csv-import.tpl.php:
|
959 |
msgctxt "admin csv-import"
|
960 |
msgid "Keep existing listing images?"
|
961 |
msgstr ""
|
962 |
|
963 |
# @ WPBDM
|
964 |
-
#: templates/admin/csv-import.tpl.php:
|
965 |
msgctxt "admin csv-import"
|
966 |
msgid "Keep existing images."
|
967 |
msgstr "Obrazy"
|
968 |
|
969 |
-
#: templates/admin/csv-import.tpl.php:
|
970 |
msgctxt "admin csv-import"
|
971 |
msgid "Appends new images while keeping current ones."
|
972 |
msgstr ""
|
973 |
|
974 |
# @ WPBDM
|
975 |
-
#: templates/admin/csv-import.tpl.php:
|
976 |
msgctxt "admin csv-import"
|
977 |
msgid "Assign listings to a user?"
|
978 |
msgstr "Przypisać oferty do użytkownika?"
|
979 |
|
980 |
# @ WPBDM
|
981 |
-
#: templates/admin/csv-import.tpl.php:
|
982 |
msgctxt "admin csv-import"
|
983 |
msgid "Assign listings to a user."
|
984 |
msgstr "Przypisz oferty do użytkownika."
|
985 |
|
986 |
# @ WPBDM
|
987 |
-
#: templates/admin/csv-import.tpl.php:
|
988 |
msgctxt "admin csv-import"
|
989 |
msgid "Use a default user for listings?"
|
990 |
msgstr "Użyj domyślnego obrazu dla ofert, które nie posiadają żadnych obrazów?"
|
991 |
|
992 |
# @ WPBDM
|
993 |
-
#: templates/admin/csv-import.tpl.php:
|
994 |
msgctxt "admin csv-import"
|
995 |
msgid ""
|
996 |
"Select a default user to be used if the username column is not present in "
|
@@ -1000,13 +1015,13 @@ msgstr ""
|
|
1000 |
"obecny w pliku CSV."
|
1001 |
|
1002 |
# @ WPBDM
|
1003 |
-
#: templates/admin/csv-import.tpl.php:
|
1004 |
msgctxt "admin csv-import"
|
1005 |
msgid "Default listing user"
|
1006 |
msgstr "Domyślny użytkownik oferty"
|
1007 |
|
1008 |
# @ WPBDM
|
1009 |
-
#: templates/admin/csv-import.tpl.php:
|
1010 |
msgctxt "admin csv-import"
|
1011 |
msgid ""
|
1012 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -1015,13 +1030,13 @@ msgstr ""
|
|
1015 |
"obecny w pliku CSV."
|
1016 |
|
1017 |
# @ WPBDM
|
1018 |
-
#: templates/admin/csv-import.tpl.php:
|
1019 |
#, fuzzy
|
1020 |
msgctxt "admin csv-import"
|
1021 |
msgid "Number of listings imported on every cycle"
|
1022 |
msgstr "Liczba wyświetlanych ofert"
|
1023 |
|
1024 |
-
#: templates/admin/csv-import.tpl.php:
|
1025 |
msgctxt "admin csv-import"
|
1026 |
msgid ""
|
1027 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -1031,31 +1046,31 @@ msgid ""
|
|
1031 |
msgstr ""
|
1032 |
|
1033 |
# @ WPBDM
|
1034 |
-
#: templates/admin/csv-import.tpl.php:
|
1035 |
msgctxt "admin csv-import"
|
1036 |
msgid "Disable e-mail notifications during import?"
|
1037 |
msgstr "Wyłączyć powiadomienia e-mail podczas importu?"
|
1038 |
|
1039 |
# @ WPBDM
|
1040 |
-
#: templates/admin/csv-import.tpl.php:
|
1041 |
msgctxt "admin csv-import"
|
1042 |
msgid "Disable e-mail notifications."
|
1043 |
msgstr "Wyłącz powiadomienia e-mail."
|
1044 |
|
1045 |
# @ WPBDM
|
1046 |
-
#: templates/admin/csv-import.tpl.php:
|
1047 |
msgctxt "admin csv-import"
|
1048 |
msgid "Test Import"
|
1049 |
msgstr "Test importu"
|
1050 |
|
1051 |
# @ WPBDM
|
1052 |
-
#: templates/admin/csv-import.tpl.php:
|
1053 |
msgctxt "admin csv-import"
|
1054 |
msgid "Import Listings"
|
1055 |
msgstr "Import ofert"
|
1056 |
|
1057 |
# @ WPBDM
|
1058 |
-
#: templates/admin/csv-import.tpl.php:
|
1059 |
msgctxt "admin csv-import"
|
1060 |
msgid ""
|
1061 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -1069,37 +1084,37 @@ msgstr ""
|
|
1069 |
"\"</a> aby zobaczyć, jak powinien wyglądać plik importu."
|
1070 |
|
1071 |
# @ WPBDM
|
1072 |
-
#: templates/admin/csv-import.tpl.php:
|
1073 |
msgctxt "admin csv-import"
|
1074 |
msgid "Header name/label"
|
1075 |
msgstr "Nagłówek/Etykieta"
|
1076 |
|
1077 |
# @ WPBDM
|
1078 |
-
#: templates/admin/csv-import.tpl.php:
|
1079 |
msgctxt "admin csv-import"
|
1080 |
msgid "Field"
|
1081 |
msgstr "Pole"
|
1082 |
|
1083 |
# @ WPBDM
|
1084 |
-
#: templates/admin/csv-import.tpl.php:
|
1085 |
msgctxt "admin csv-import"
|
1086 |
msgid "Type"
|
1087 |
msgstr "Rodzaj"
|
1088 |
|
1089 |
# @ WPBDM
|
1090 |
-
#: templates/admin/csv-import.tpl.php:
|
1091 |
msgctxt "admin csv-import"
|
1092 |
msgid "Required?"
|
1093 |
msgstr "Wymagane?"
|
1094 |
|
1095 |
# @ WPBDM
|
1096 |
-
#: templates/admin/csv-import.tpl.php:
|
1097 |
msgctxt "admin csv-import"
|
1098 |
msgid "Multivalued?"
|
1099 |
msgstr "Wielowartościowe?"
|
1100 |
|
1101 |
# @ WPBDM
|
1102 |
-
#: templates/admin/csv-import.tpl.php:
|
1103 |
#, fuzzy
|
1104 |
msgctxt "admin csv-import"
|
1105 |
msgid ""
|
@@ -1110,19 +1125,19 @@ msgstr ""
|
|
1110 |
"podczas dodawania lub aktualizowania oferty ze źródeł zewnętrznych."
|
1111 |
|
1112 |
# @ WPBDM
|
1113 |
-
#: templates/admin/csv-import.tpl.php:
|
1114 |
msgctxt "admin csv-import"
|
1115 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
1116 |
msgstr "Lista rozdzielonych średnikami obrazów oferty (z pliku ZIP)"
|
1117 |
|
1118 |
# @ WPBDM
|
1119 |
-
#: templates/admin/csv-import.tpl.php:
|
1120 |
msgctxt "admin csv-import"
|
1121 |
msgid "Listing author's username"
|
1122 |
msgstr "Autor oferty - Nazwa Użytkownika"
|
1123 |
|
1124 |
# @ WPBDM
|
1125 |
-
#: templates/admin/csv-import.tpl.php:
|
1126 |
msgctxt "admin csv-import"
|
1127 |
msgid ""
|
1128 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -1131,7 +1146,7 @@ msgstr ""
|
|
1131 |
"ofercie aktualizacji ze źródeł zewnętrznych."
|
1132 |
|
1133 |
# @ WPBDM
|
1134 |
-
#: templates/admin/csv-import.tpl.php:
|
1135 |
msgctxt "admin csv-import"
|
1136 |
msgid ""
|
1137 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1155,12 +1170,12 @@ msgid "Export"
|
|
1155 |
msgstr "CSV Export"
|
1156 |
|
1157 |
# @ WPBDM
|
1158 |
-
#: includes/admin/class-admin-listings.php:
|
1159 |
msgctxt "admin category filter"
|
1160 |
msgid "All categories"
|
1161 |
msgstr "Wszystkie Kategorie"
|
1162 |
|
1163 |
-
#: includes/admin/class-admin-listings.php:
|
1164 |
msgctxt "admin listings"
|
1165 |
msgid ""
|
1166 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -1169,46 +1184,46 @@ msgid ""
|
|
1169 |
msgstr ""
|
1170 |
|
1171 |
# @ WPBDM
|
1172 |
-
#: includes/admin/class-admin-listings.php:
|
1173 |
#, fuzzy
|
1174 |
msgctxt "admin listings"
|
1175 |
msgid "Never"
|
1176 |
msgstr "nigdy"
|
1177 |
|
1178 |
# @ WPBDM
|
1179 |
-
#: includes/admin/class-admin-listings.php:
|
1180 |
#, fuzzy
|
1181 |
msgctxt "admin listings"
|
1182 |
msgid "Featured"
|
1183 |
msgstr "Status wyróżnienia (naklejka)"
|
1184 |
|
1185 |
# @ WPBDM
|
1186 |
-
#: includes/admin/class-admin-listings.php:
|
1187 |
#, fuzzy
|
1188 |
msgctxt "admin listings"
|
1189 |
msgid "Recurring"
|
1190 |
msgstr "(powtarzające się)"
|
1191 |
|
1192 |
# @ WPBDM
|
1193 |
-
#: includes/admin/class-admin-listings.php:
|
1194 |
#, fuzzy
|
1195 |
msgctxt "admin listings"
|
1196 |
msgid "Free"
|
1197 |
msgstr "Tryb Bezpłatny"
|
1198 |
|
1199 |
# @ WPBDM
|
1200 |
-
#: includes/admin/class-admin-listings.php:
|
1201 |
#, fuzzy
|
1202 |
msgctxt "admin listings"
|
1203 |
msgid "Paid"
|
1204 |
msgstr "Zapłacone"
|
1205 |
|
1206 |
-
#: includes/admin/class-admin-listings.php:
|
1207 |
msgctxt "admin listings"
|
1208 |
msgid "Reported"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: includes/admin/class-admin-listings.php:
|
1212 |
msgctxt "admin listings"
|
1213 |
msgid "Listing's payment history successfully deleted"
|
1214 |
msgstr ""
|
@@ -1240,14 +1255,14 @@ msgid "Clear listing reports."
|
|
1240 |
msgstr "Upłynął okres ważności oferty."
|
1241 |
|
1242 |
# @ WPBDM
|
1243 |
-
#: includes/admin/class-admin-listings.php:
|
1244 |
#, fuzzy
|
1245 |
msgctxt "admin"
|
1246 |
msgid "Directory Listing Fields / Images"
|
1247 |
msgstr "Pola/Obrazy"
|
1248 |
|
1249 |
# @ WPBDM
|
1250 |
-
#: includes/admin/class-admin-listings.php:
|
1251 |
msgctxt "admin"
|
1252 |
msgid "Categories"
|
1253 |
msgstr "Kategorie"
|
@@ -1468,136 +1483,136 @@ msgctxt "admin"
|
|
1468 |
msgid "Go to \"Manage Fees\""
|
1469 |
msgstr "Przejdź do \"Zarządzanie polami formularza\""
|
1470 |
|
1471 |
-
#: includes/admin/class-admin-listings.php:
|
1472 |
msgctxt "listing attribute"
|
1473 |
msgid "No Fee Plan"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
-
#: includes/admin/class-admin-listings.php:
|
1477 |
msgctxt "listing status"
|
1478 |
msgid "Reported"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
-
#: includes/class-listing.php:
|
1482 |
msgctxt "listing status"
|
1483 |
msgid "Unknown"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#: includes/class-listing.php:
|
1487 |
msgctxt "listing status"
|
1488 |
msgid "Legacy"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
# @ WPBDM
|
1492 |
-
#: includes/class-listing.php:
|
1493 |
#, fuzzy
|
1494 |
msgctxt "listing status"
|
1495 |
msgid "Incomplete"
|
1496 |
msgstr "Zakończona"
|
1497 |
|
1498 |
# @ WPBDM
|
1499 |
-
#: includes/class-listing.php:
|
1500 |
#, fuzzy
|
1501 |
msgctxt "listing status"
|
1502 |
msgid "Pending Payment"
|
1503 |
msgstr "Oczekujące na abonament"
|
1504 |
|
1505 |
# @ WPBDM
|
1506 |
-
#: includes/class-listing.php:
|
1507 |
#, fuzzy
|
1508 |
msgctxt "listing status"
|
1509 |
msgid "Complete"
|
1510 |
msgstr "Zakończona"
|
1511 |
|
1512 |
# @ WPBDM
|
1513 |
-
#: includes/class-listing.php:
|
1514 |
#, fuzzy
|
1515 |
msgctxt "listing status"
|
1516 |
msgid "Pending Upgrade"
|
1517 |
msgstr "Oferty oczekujące na zatwierdzenie"
|
1518 |
|
1519 |
# @ WPBDM
|
1520 |
-
#: includes/class-listing.php:
|
1521 |
#, fuzzy
|
1522 |
msgctxt "listing status"
|
1523 |
msgid "Expired"
|
1524 |
msgstr "Wygasłe"
|
1525 |
|
1526 |
# @ WPBDM
|
1527 |
-
#: includes/class-listing.php:
|
1528 |
#, fuzzy
|
1529 |
msgctxt "listing status"
|
1530 |
msgid "Pending Renewal"
|
1531 |
msgstr "Tylko aktywne i oczekujące na odświeżenie "
|
1532 |
|
1533 |
# @ WPBDM
|
1534 |
-
#: includes/class-listing.php:
|
1535 |
#, fuzzy
|
1536 |
msgctxt "listing status"
|
1537 |
msgid "Abandoned"
|
1538 |
msgstr "Porzucone"
|
1539 |
|
1540 |
# @ WPBDM
|
1541 |
-
#: includes/admin/class-admin-listings.php:
|
1542 |
msgctxt "admin actions"
|
1543 |
msgid "Edit Listing"
|
1544 |
msgstr "Edytuj Ofertę"
|
1545 |
|
1546 |
# @ WPBDM
|
1547 |
-
#: includes/admin/class-admin-listings.php:
|
1548 |
msgctxt "admin actions"
|
1549 |
msgid "Delete Listing"
|
1550 |
msgstr "Usuń Ofertę"
|
1551 |
|
1552 |
# @ WPBDM
|
1553 |
-
#: includes/admin/class-admin-listings.php:
|
1554 |
#, fuzzy
|
1555 |
msgctxt "admin actions"
|
1556 |
msgid "View Payments"
|
1557 |
msgstr "Płatność"
|
1558 |
|
1559 |
# @ WPBDM
|
1560 |
-
#: includes/admin/class-admin-listings.php:
|
1561 |
#, fuzzy
|
1562 |
msgctxt "admin actions"
|
1563 |
msgid "View Payment"
|
1564 |
msgstr "Płatność"
|
1565 |
|
1566 |
# @ WPBDM
|
1567 |
-
#: includes/admin/class-admin-listings.php:
|
1568 |
#, fuzzy
|
1569 |
msgctxt "admin actions"
|
1570 |
msgid "Publish listings"
|
1571 |
msgstr "Publikuj Ofertę"
|
1572 |
|
1573 |
# @ WPBDM
|
1574 |
-
#: includes/admin/class-admin-listings.php:
|
1575 |
#, fuzzy
|
1576 |
msgctxt "admin actions"
|
1577 |
msgid "Mark as \"Pending Review\""
|
1578 |
msgstr "Oczekujące"
|
1579 |
|
1580 |
-
#: includes/admin/class-admin-listings.php:
|
1581 |
msgctxt "admin actions"
|
1582 |
msgid "Hide from directory (mark as \"Draft\")"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
# @ WPBDM
|
1586 |
-
#: includes/admin/class-admin-listings.php:
|
1587 |
#, fuzzy
|
1588 |
msgctxt "admin actions"
|
1589 |
msgid "Renew listings"
|
1590 |
msgstr "Odnów Ofertę"
|
1591 |
|
1592 |
# @ WPBDM
|
1593 |
-
#: includes/admin/class-admin-listings.php:
|
1594 |
#, fuzzy
|
1595 |
msgctxt "admin actions"
|
1596 |
msgid "Set listings as \"Expired\""
|
1597 |
msgstr "Upłynął okres ważności oferty."
|
1598 |
|
1599 |
# @ WPBDM
|
1600 |
-
#: includes/admin/class-admin-listings.php:
|
1601 |
#, fuzzy
|
1602 |
msgctxt "admin actions"
|
1603 |
msgid "Send access keys"
|
@@ -6766,20 +6781,20 @@ msgid "Listing expired"
|
|
6766 |
msgstr "Upłynął okres ważności oferty."
|
6767 |
|
6768 |
# @ WPBDM
|
6769 |
-
#: includes/class-listing.php:
|
6770 |
#, fuzzy
|
6771 |
msgctxt "listing"
|
6772 |
msgid "(Unavailable Plan)"
|
6773 |
msgstr "(Abonament niedostępny)"
|
6774 |
|
6775 |
# @ WPBDM
|
6776 |
-
#: includes/class-listing.php:
|
6777 |
#, fuzzy
|
6778 |
msgctxt "listing"
|
6779 |
msgid "Plan \"%s\" (recurring)"
|
6780 |
msgstr "(powtarzające się)"
|
6781 |
|
6782 |
-
#: includes/class-listing.php:
|
6783 |
msgctxt "listing"
|
6784 |
msgid "Plan \"%s\""
|
6785 |
msgstr ""
|
@@ -9814,7 +9829,7 @@ msgstr "Szukaj..."
|
|
9814 |
#: templates/admin/csv-import.tpl.php:116
|
9815 |
#: templates/admin/csv-import.tpl.php:142
|
9816 |
#: templates/admin/csv-import.tpl.php:153
|
9817 |
-
#: templates/admin/csv-import.tpl.php:
|
9818 |
msgctxt "admin forms"
|
9819 |
msgid "required"
|
9820 |
msgstr "Wymagane"
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
7 |
"PO-Revision-Date: 2017-01-16 17:49-0500\n"
|
8 |
"Last-Translator: HomeSupport <admin@homesupport.pl>\n"
|
9 |
"Language-Team: HomeSupport\n"
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
|
23 |
# @ WPBDM
|
24 |
+
#: includes/admin/class-admin-listings.php:184
|
25 |
msgid "Listing Information"
|
26 |
msgstr "Informacje o firmie"
|
27 |
|
28 |
# @ WPBDM
|
29 |
+
#: includes/admin/class-admin-listings.php:192
|
30 |
#, fuzzy
|
31 |
msgid "Listing Timeline"
|
32 |
msgstr "Nazwa Firmy:"
|
33 |
|
34 |
# @ WPBDM
|
35 |
+
#: includes/admin/class-admin-listings.php:210
|
36 |
#, fuzzy
|
37 |
msgid "Listing Reports"
|
38 |
msgstr "Upłynął okres ważności oferty."
|
39 |
|
40 |
# @ WPBDM
|
41 |
+
#: includes/admin/class-admin-listings.php:251
|
42 |
#, fuzzy
|
43 |
msgid "Expires on"
|
44 |
msgstr "Upłynął okres ważności "
|
45 |
|
46 |
# @ WPBDM
|
47 |
+
#: includes/admin/class-admin-listings.php:259
|
48 |
#, fuzzy
|
49 |
msgid "Attributes"
|
50 |
msgstr "Atrybuty pola"
|
68 |
msgstr "Odinstaluj "
|
69 |
|
70 |
# @ WPBDM
|
71 |
+
#: includes/admin/class-csv-import.php:633
|
72 |
#, fuzzy
|
73 |
msgid "Listing imported by admin. Payment skipped."
|
74 |
msgstr "Prześlij ofertę"
|
587 |
msgstr "Zobacz przykład importowanego pliku CSV"
|
588 |
|
589 |
# @ WPBDM
|
590 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
591 |
msgctxt "admin csv-import"
|
592 |
msgid "Help"
|
593 |
msgstr "Pomoc"
|
594 |
|
595 |
+
#: includes/admin/class-csv-import.php:503
|
596 |
msgctxt "admin csv-import"
|
597 |
msgid ""
|
598 |
"Could not create listing category \"<category-name>\". The operation failed "
|
600 |
msgstr ""
|
601 |
|
602 |
# @ WPBDM
|
603 |
+
#: includes/admin/class-csv-import.php:509
|
604 |
msgctxt "admin csv-import"
|
605 |
msgid "Could not create listing category \"%s\""
|
606 |
msgstr "Nie można utworzyć kategorii ofert \"%s\""
|
607 |
|
608 |
# @ WPBDM
|
609 |
+
#: includes/admin/class-csv-import.php:684
|
610 |
msgctxt "admin csv-import"
|
611 |
msgid "Username \"%s\" does not exist"
|
612 |
msgstr "Użytkownik \"%s\" nie istnieje"
|
613 |
|
614 |
+
#: includes/admin/class-csv-import.php:710
|
615 |
msgctxt "admin csv-import"
|
616 |
msgid "The string <string> couldn't be converted into a valid date."
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: includes/admin/class-csv-import.php:732
|
620 |
msgctxt "admin csv-import"
|
621 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
622 |
msgstr ""
|
623 |
|
624 |
# @ WPBDM
|
625 |
+
#: includes/admin/class-csv-import.php:755
|
626 |
msgctxt "admin csv-import"
|
627 |
msgid "Missing required field: %s"
|
628 |
msgstr "Brak wymaganego pola: %s"
|
629 |
|
630 |
# @ WPBDM
|
631 |
+
#: includes/admin/class-csv-import.php:780
|
632 |
msgctxt "admin csv-import"
|
633 |
msgid "Listing category \"%s\" does not exist"
|
634 |
msgstr "Kategoria \"%s\" nie istnieje"
|
933 |
|
934 |
# @ WPBDM
|
935 |
#: templates/admin/csv-import.tpl.php:168
|
936 |
+
#, fuzzy
|
937 |
msgctxt "admin csv-import"
|
938 |
+
msgid "Post status of new imported listings"
|
939 |
msgstr "Status dla zaimportowanych plików"
|
940 |
|
941 |
# @ WPBDM
|
942 |
+
#: templates/admin/csv-import.tpl.php:183
|
943 |
+
#, fuzzy
|
944 |
+
msgctxt "admin csv-import"
|
945 |
+
msgid "Post status of existing imported listings"
|
946 |
+
msgstr "Status dla zaimportowanych plików"
|
947 |
+
|
948 |
+
# @ WPBDM
|
949 |
+
#: templates/admin/csv-import.tpl.php:187
|
950 |
+
#, fuzzy
|
951 |
+
msgctxt "admin csv-import"
|
952 |
+
msgid "Preserve existing status"
|
953 |
+
msgstr "Oferty"
|
954 |
+
|
955 |
+
# @ WPBDM
|
956 |
+
#: templates/admin/csv-import.tpl.php:199
|
957 |
msgctxt "admin csv-import"
|
958 |
msgid "Missing categories handling"
|
959 |
msgstr "Brakująca obsługa kategorii "
|
960 |
|
961 |
# @ WPBDM
|
962 |
+
#: templates/admin/csv-import.tpl.php:204
|
963 |
msgctxt "admin csv-import"
|
964 |
msgid "Auto-create categories"
|
965 |
msgstr "Automatyczne tworzenie kategorii"
|
966 |
|
967 |
# @ WPBDM
|
968 |
+
#: templates/admin/csv-import.tpl.php:207
|
969 |
msgctxt "admin csv-import"
|
970 |
msgid "Generate errors when a category is not found"
|
971 |
msgstr "Generować błędy gdy kategorii nie znaleziono"
|
972 |
|
973 |
+
#: templates/admin/csv-import.tpl.php:212
|
974 |
msgctxt "admin csv-import"
|
975 |
msgid "Keep existing listing images?"
|
976 |
msgstr ""
|
977 |
|
978 |
# @ WPBDM
|
979 |
+
#: templates/admin/csv-import.tpl.php:217
|
980 |
msgctxt "admin csv-import"
|
981 |
msgid "Keep existing images."
|
982 |
msgstr "Obrazy"
|
983 |
|
984 |
+
#: templates/admin/csv-import.tpl.php:218
|
985 |
msgctxt "admin csv-import"
|
986 |
msgid "Appends new images while keeping current ones."
|
987 |
msgstr ""
|
988 |
|
989 |
# @ WPBDM
|
990 |
+
#: templates/admin/csv-import.tpl.php:223
|
991 |
msgctxt "admin csv-import"
|
992 |
msgid "Assign listings to a user?"
|
993 |
msgstr "Przypisać oferty do użytkownika?"
|
994 |
|
995 |
# @ WPBDM
|
996 |
+
#: templates/admin/csv-import.tpl.php:229
|
997 |
msgctxt "admin csv-import"
|
998 |
msgid "Assign listings to a user."
|
999 |
msgstr "Przypisz oferty do użytkownika."
|
1000 |
|
1001 |
# @ WPBDM
|
1002 |
+
#: templates/admin/csv-import.tpl.php:234
|
1003 |
msgctxt "admin csv-import"
|
1004 |
msgid "Use a default user for listings?"
|
1005 |
msgstr "Użyj domyślnego obrazu dla ofert, które nie posiadają żadnych obrazów?"
|
1006 |
|
1007 |
# @ WPBDM
|
1008 |
+
#: templates/admin/csv-import.tpl.php:240
|
1009 |
msgctxt "admin csv-import"
|
1010 |
msgid ""
|
1011 |
"Select a default user to be used if the username column is not present in "
|
1015 |
"obecny w pliku CSV."
|
1016 |
|
1017 |
# @ WPBDM
|
1018 |
+
#: templates/admin/csv-import.tpl.php:245
|
1019 |
msgctxt "admin csv-import"
|
1020 |
msgid "Default listing user"
|
1021 |
msgstr "Domyślny użytkownik oferty"
|
1022 |
|
1023 |
# @ WPBDM
|
1024 |
+
#: templates/admin/csv-import.tpl.php:251
|
1025 |
msgctxt "admin csv-import"
|
1026 |
msgid ""
|
1027 |
"This user will be used if the username column is not present in the CSV file."
|
1030 |
"obecny w pliku CSV."
|
1031 |
|
1032 |
# @ WPBDM
|
1033 |
+
#: templates/admin/csv-import.tpl.php:256
|
1034 |
#, fuzzy
|
1035 |
msgctxt "admin csv-import"
|
1036 |
msgid "Number of listings imported on every cycle"
|
1037 |
msgstr "Liczba wyświetlanych ofert"
|
1038 |
|
1039 |
+
#: templates/admin/csv-import.tpl.php:264
|
1040 |
msgctxt "admin csv-import"
|
1041 |
msgid ""
|
1042 |
"If you are having trouble importing listings due to memory problems, try "
|
1046 |
msgstr ""
|
1047 |
|
1048 |
# @ WPBDM
|
1049 |
+
#: templates/admin/csv-import.tpl.php:269
|
1050 |
msgctxt "admin csv-import"
|
1051 |
msgid "Disable e-mail notifications during import?"
|
1052 |
msgstr "Wyłączyć powiadomienia e-mail podczas importu?"
|
1053 |
|
1054 |
# @ WPBDM
|
1055 |
+
#: templates/admin/csv-import.tpl.php:274
|
1056 |
msgctxt "admin csv-import"
|
1057 |
msgid "Disable e-mail notifications."
|
1058 |
msgstr "Wyłącz powiadomienia e-mail."
|
1059 |
|
1060 |
# @ WPBDM
|
1061 |
+
#: templates/admin/csv-import.tpl.php:280
|
1062 |
msgctxt "admin csv-import"
|
1063 |
msgid "Test Import"
|
1064 |
msgstr "Test importu"
|
1065 |
|
1066 |
# @ WPBDM
|
1067 |
+
#: templates/admin/csv-import.tpl.php:281
|
1068 |
msgctxt "admin csv-import"
|
1069 |
msgid "Import Listings"
|
1070 |
msgstr "Import ofert"
|
1071 |
|
1072 |
# @ WPBDM
|
1073 |
+
#: templates/admin/csv-import.tpl.php:289
|
1074 |
msgctxt "admin csv-import"
|
1075 |
msgid ""
|
1076 |
"The following are the valid header names to be used in the CSV file. "
|
1084 |
"\"</a> aby zobaczyć, jak powinien wyglądać plik importu."
|
1085 |
|
1086 |
# @ WPBDM
|
1087 |
+
#: templates/admin/csv-import.tpl.php:296
|
1088 |
msgctxt "admin csv-import"
|
1089 |
msgid "Header name/label"
|
1090 |
msgstr "Nagłówek/Etykieta"
|
1091 |
|
1092 |
# @ WPBDM
|
1093 |
+
#: templates/admin/csv-import.tpl.php:297
|
1094 |
msgctxt "admin csv-import"
|
1095 |
msgid "Field"
|
1096 |
msgstr "Pole"
|
1097 |
|
1098 |
# @ WPBDM
|
1099 |
+
#: templates/admin/csv-import.tpl.php:298
|
1100 |
msgctxt "admin csv-import"
|
1101 |
msgid "Type"
|
1102 |
msgstr "Rodzaj"
|
1103 |
|
1104 |
# @ WPBDM
|
1105 |
+
#: templates/admin/csv-import.tpl.php:299
|
1106 |
msgctxt "admin csv-import"
|
1107 |
msgid "Required?"
|
1108 |
msgstr "Wymagane?"
|
1109 |
|
1110 |
# @ WPBDM
|
1111 |
+
#: templates/admin/csv-import.tpl.php:300
|
1112 |
msgctxt "admin csv-import"
|
1113 |
msgid "Multivalued?"
|
1114 |
msgstr "Wielowartościowe?"
|
1115 |
|
1116 |
# @ WPBDM
|
1117 |
+
#: templates/admin/csv-import.tpl.php:322
|
1118 |
#, fuzzy
|
1119 |
msgctxt "admin csv-import"
|
1120 |
msgid ""
|
1125 |
"podczas dodawania lub aktualizowania oferty ze źródeł zewnętrznych."
|
1126 |
|
1127 |
# @ WPBDM
|
1128 |
+
#: templates/admin/csv-import.tpl.php:329
|
1129 |
msgctxt "admin csv-import"
|
1130 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
1131 |
msgstr "Lista rozdzielonych średnikami obrazów oferty (z pliku ZIP)"
|
1132 |
|
1133 |
# @ WPBDM
|
1134 |
+
#: templates/admin/csv-import.tpl.php:336
|
1135 |
msgctxt "admin csv-import"
|
1136 |
msgid "Listing author's username"
|
1137 |
msgstr "Autor oferty - Nazwa Użytkownika"
|
1138 |
|
1139 |
# @ WPBDM
|
1140 |
+
#: templates/admin/csv-import.tpl.php:343
|
1141 |
msgctxt "admin csv-import"
|
1142 |
msgid ""
|
1143 |
"Internal Sequence ID used to allow listing updates from external sources."
|
1146 |
"ofercie aktualizacji ze źródeł zewnętrznych."
|
1147 |
|
1148 |
# @ WPBDM
|
1149 |
+
#: templates/admin/csv-import.tpl.php:350
|
1150 |
msgctxt "admin csv-import"
|
1151 |
msgid ""
|
1152 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1170 |
msgstr "CSV Export"
|
1171 |
|
1172 |
# @ WPBDM
|
1173 |
+
#: includes/admin/class-admin-listings.php:62
|
1174 |
msgctxt "admin category filter"
|
1175 |
msgid "All categories"
|
1176 |
msgstr "Wszystkie Kategorie"
|
1177 |
|
1178 |
+
#: includes/admin/class-admin-listings.php:177
|
1179 |
msgctxt "admin listings"
|
1180 |
msgid ""
|
1181 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1184 |
msgstr ""
|
1185 |
|
1186 |
# @ WPBDM
|
1187 |
+
#: includes/admin/class-admin-listings.php:296
|
1188 |
#, fuzzy
|
1189 |
msgctxt "admin listings"
|
1190 |
msgid "Never"
|
1191 |
msgstr "nigdy"
|
1192 |
|
1193 |
# @ WPBDM
|
1194 |
+
#: includes/admin/class-admin-listings.php:322
|
1195 |
#, fuzzy
|
1196 |
msgctxt "admin listings"
|
1197 |
msgid "Featured"
|
1198 |
msgstr "Status wyróżnienia (naklejka)"
|
1199 |
|
1200 |
# @ WPBDM
|
1201 |
+
#: includes/admin/class-admin-listings.php:326
|
1202 |
#, fuzzy
|
1203 |
msgctxt "admin listings"
|
1204 |
msgid "Recurring"
|
1205 |
msgstr "(powtarzające się)"
|
1206 |
|
1207 |
# @ WPBDM
|
1208 |
+
#: includes/admin/class-admin-listings.php:330
|
1209 |
#, fuzzy
|
1210 |
msgctxt "admin listings"
|
1211 |
msgid "Free"
|
1212 |
msgstr "Tryb Bezpłatny"
|
1213 |
|
1214 |
# @ WPBDM
|
1215 |
+
#: includes/admin/class-admin-listings.php:332
|
1216 |
#, fuzzy
|
1217 |
msgctxt "admin listings"
|
1218 |
msgid "Paid"
|
1219 |
msgstr "Zapłacone"
|
1220 |
|
1221 |
+
#: includes/admin/class-admin-listings.php:337
|
1222 |
msgctxt "admin listings"
|
1223 |
msgid "Reported"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: includes/admin/class-admin-listings.php:666
|
1227 |
msgctxt "admin listings"
|
1228 |
msgid "Listing's payment history successfully deleted"
|
1229 |
msgstr ""
|
1255 |
msgstr "Upłynął okres ważności oferty."
|
1256 |
|
1257 |
# @ WPBDM
|
1258 |
+
#: includes/admin/class-admin-listings.php:200
|
1259 |
#, fuzzy
|
1260 |
msgctxt "admin"
|
1261 |
msgid "Directory Listing Fields / Images"
|
1262 |
msgstr "Pola/Obrazy"
|
1263 |
|
1264 |
# @ WPBDM
|
1265 |
+
#: includes/admin/class-admin-listings.php:250
|
1266 |
msgctxt "admin"
|
1267 |
msgid "Categories"
|
1268 |
msgstr "Kategorie"
|
1483 |
msgid "Go to \"Manage Fees\""
|
1484 |
msgstr "Przejdź do \"Zarządzanie polami formularza\""
|
1485 |
|
1486 |
+
#: includes/admin/class-admin-listings.php:307
|
1487 |
msgctxt "listing attribute"
|
1488 |
msgid "No Fee Plan"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: includes/admin/class-admin-listings.php:397
|
1492 |
msgctxt "listing status"
|
1493 |
msgid "Reported"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: includes/class-listing.php:776
|
1497 |
msgctxt "listing status"
|
1498 |
msgid "Unknown"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: includes/class-listing.php:777
|
1502 |
msgctxt "listing status"
|
1503 |
msgid "Legacy"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
# @ WPBDM
|
1507 |
+
#: includes/class-listing.php:778
|
1508 |
#, fuzzy
|
1509 |
msgctxt "listing status"
|
1510 |
msgid "Incomplete"
|
1511 |
msgstr "Zakończona"
|
1512 |
|
1513 |
# @ WPBDM
|
1514 |
+
#: includes/class-listing.php:779
|
1515 |
#, fuzzy
|
1516 |
msgctxt "listing status"
|
1517 |
msgid "Pending Payment"
|
1518 |
msgstr "Oczekujące na abonament"
|
1519 |
|
1520 |
# @ WPBDM
|
1521 |
+
#: includes/class-listing.php:780
|
1522 |
#, fuzzy
|
1523 |
msgctxt "listing status"
|
1524 |
msgid "Complete"
|
1525 |
msgstr "Zakończona"
|
1526 |
|
1527 |
# @ WPBDM
|
1528 |
+
#: includes/class-listing.php:781
|
1529 |
#, fuzzy
|
1530 |
msgctxt "listing status"
|
1531 |
msgid "Pending Upgrade"
|
1532 |
msgstr "Oferty oczekujące na zatwierdzenie"
|
1533 |
|
1534 |
# @ WPBDM
|
1535 |
+
#: includes/class-listing.php:782
|
1536 |
#, fuzzy
|
1537 |
msgctxt "listing status"
|
1538 |
msgid "Expired"
|
1539 |
msgstr "Wygasłe"
|
1540 |
|
1541 |
# @ WPBDM
|
1542 |
+
#: includes/class-listing.php:783
|
1543 |
#, fuzzy
|
1544 |
msgctxt "listing status"
|
1545 |
msgid "Pending Renewal"
|
1546 |
msgstr "Tylko aktywne i oczekujące na odświeżenie "
|
1547 |
|
1548 |
# @ WPBDM
|
1549 |
+
#: includes/class-listing.php:784
|
1550 |
#, fuzzy
|
1551 |
msgctxt "listing status"
|
1552 |
msgid "Abandoned"
|
1553 |
msgstr "Porzucone"
|
1554 |
|
1555 |
# @ WPBDM
|
1556 |
+
#: includes/admin/class-admin-listings.php:446
|
1557 |
msgctxt "admin actions"
|
1558 |
msgid "Edit Listing"
|
1559 |
msgstr "Edytuj Ofertę"
|
1560 |
|
1561 |
# @ WPBDM
|
1562 |
+
#: includes/admin/class-admin-listings.php:451
|
1563 |
msgctxt "admin actions"
|
1564 |
msgid "Delete Listing"
|
1565 |
msgstr "Usuń Ofertę"
|
1566 |
|
1567 |
# @ WPBDM
|
1568 |
+
#: includes/admin/class-admin-listings.php:462
|
1569 |
#, fuzzy
|
1570 |
msgctxt "admin actions"
|
1571 |
msgid "View Payments"
|
1572 |
msgstr "Płatność"
|
1573 |
|
1574 |
# @ WPBDM
|
1575 |
+
#: includes/admin/class-admin-listings.php:467
|
1576 |
#, fuzzy
|
1577 |
msgctxt "admin actions"
|
1578 |
msgid "View Payment"
|
1579 |
msgstr "Płatność"
|
1580 |
|
1581 |
# @ WPBDM
|
1582 |
+
#: includes/admin/class-admin-listings.php:605
|
1583 |
#, fuzzy
|
1584 |
msgctxt "admin actions"
|
1585 |
msgid "Publish listings"
|
1586 |
msgstr "Publikuj Ofertę"
|
1587 |
|
1588 |
# @ WPBDM
|
1589 |
+
#: includes/admin/class-admin-listings.php:606
|
1590 |
#, fuzzy
|
1591 |
msgctxt "admin actions"
|
1592 |
msgid "Mark as \"Pending Review\""
|
1593 |
msgstr "Oczekujące"
|
1594 |
|
1595 |
+
#: includes/admin/class-admin-listings.php:607
|
1596 |
msgctxt "admin actions"
|
1597 |
msgid "Hide from directory (mark as \"Draft\")"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
# @ WPBDM
|
1601 |
+
#: includes/admin/class-admin-listings.php:609
|
1602 |
#, fuzzy
|
1603 |
msgctxt "admin actions"
|
1604 |
msgid "Renew listings"
|
1605 |
msgstr "Odnów Ofertę"
|
1606 |
|
1607 |
# @ WPBDM
|
1608 |
+
#: includes/admin/class-admin-listings.php:610
|
1609 |
#, fuzzy
|
1610 |
msgctxt "admin actions"
|
1611 |
msgid "Set listings as \"Expired\""
|
1612 |
msgstr "Upłynął okres ważności oferty."
|
1613 |
|
1614 |
# @ WPBDM
|
1615 |
+
#: includes/admin/class-admin-listings.php:617
|
1616 |
#, fuzzy
|
1617 |
msgctxt "admin actions"
|
1618 |
msgid "Send access keys"
|
6781 |
msgstr "Upłynął okres ważności oferty."
|
6782 |
|
6783 |
# @ WPBDM
|
6784 |
+
#: includes/class-listing.php:516
|
6785 |
#, fuzzy
|
6786 |
msgctxt "listing"
|
6787 |
msgid "(Unavailable Plan)"
|
6788 |
msgstr "(Abonament niedostępny)"
|
6789 |
|
6790 |
# @ WPBDM
|
6791 |
+
#: includes/class-listing.php:673
|
6792 |
#, fuzzy
|
6793 |
msgctxt "listing"
|
6794 |
msgid "Plan \"%s\" (recurring)"
|
6795 |
msgstr "(powtarzające się)"
|
6796 |
|
6797 |
+
#: includes/class-listing.php:675
|
6798 |
msgctxt "listing"
|
6799 |
msgid "Plan \"%s\""
|
6800 |
msgstr ""
|
9829 |
#: templates/admin/csv-import.tpl.php:116
|
9830 |
#: templates/admin/csv-import.tpl.php:142
|
9831 |
#: templates/admin/csv-import.tpl.php:153
|
9832 |
+
#: templates/admin/csv-import.tpl.php:199
|
9833 |
msgctxt "admin forms"
|
9834 |
msgid "required"
|
9835 |
msgstr "Wymagane"
|
languages/WPBDM-ru_RU.mo
CHANGED
Binary file
|
languages/WPBDM-ru_RU.po
CHANGED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
-
"POT-Creation-Date: 2020-
|
7 |
"PO-Revision-Date: 2017-01-16 17:49-0500\n"
|
8 |
"Last-Translator: Mick Levin <mikhaillevin@hotmail.com>\n"
|
9 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
@@ -24,26 +24,26 @@ msgstr ""
|
|
24 |
"X-Loco-Target-Locale: ru_RU\n"
|
25 |
"X-Poedit-SearchPath-0: ../../plugins/business-directory-plugin\n"
|
26 |
|
27 |
-
#: includes/admin/class-admin-listings.php:
|
28 |
msgid "Listing Information"
|
29 |
msgstr "Информация о бизнесе"
|
30 |
|
31 |
-
#: includes/admin/class-admin-listings.php:
|
32 |
#, fuzzy
|
33 |
msgid "Listing Timeline"
|
34 |
msgstr "Название записи:"
|
35 |
|
36 |
-
#: includes/admin/class-admin-listings.php:
|
37 |
#, fuzzy
|
38 |
msgid "Listing Reports"
|
39 |
msgstr "Срок действия записи истёк"
|
40 |
|
41 |
-
#: includes/admin/class-admin-listings.php:
|
42 |
#, fuzzy
|
43 |
msgid "Expires on"
|
44 |
msgstr "Истекает"
|
45 |
|
46 |
-
#: includes/admin/class-admin-listings.php:
|
47 |
#, fuzzy
|
48 |
msgid "Attributes"
|
49 |
msgstr "Атрибуты"
|
@@ -64,7 +64,7 @@ msgstr "Удалить плагин Справочника Услуг"
|
|
64 |
msgid "Uninstall"
|
65 |
msgstr "Удалить"
|
66 |
|
67 |
-
#: includes/admin/class-csv-import.php:
|
68 |
msgid "Listing imported by admin. Payment skipped."
|
69 |
msgstr ""
|
70 |
|
@@ -516,44 +516,44 @@ msgctxt "admin csv-import"
|
|
516 |
msgid "See an example CSV import file"
|
517 |
msgstr "Посмотрите образец файла CSV для иморта"
|
518 |
|
519 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
520 |
msgctxt "admin csv-import"
|
521 |
msgid "Help"
|
522 |
msgstr "Подсказка"
|
523 |
|
524 |
-
#: includes/admin/class-csv-import.php:
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid ""
|
527 |
"Could not create listing category \"<category-name>\". The operation failed "
|
528 |
"with the following error: <error-message>."
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: includes/admin/class-csv-import.php:
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "Could not create listing category \"%s\""
|
534 |
msgstr "Не удалось создать рубрику \"%s\""
|
535 |
|
536 |
-
#: includes/admin/class-csv-import.php:
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid "Username \"%s\" does not exist"
|
539 |
msgstr "Имя учётной записи \"%s\" не существует"
|
540 |
|
541 |
-
#: includes/admin/class-csv-import.php:
|
542 |
msgctxt "admin csv-import"
|
543 |
msgid "The string <string> couldn't be converted into a valid date."
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: includes/admin/class-csv-import.php:
|
547 |
msgctxt "admin csv-import"
|
548 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: includes/admin/class-csv-import.php:
|
552 |
msgctxt "admin csv-import"
|
553 |
msgid "Missing required field: %s"
|
554 |
msgstr "Отсутствует обязательное поле: %s"
|
555 |
|
556 |
-
#: includes/admin/class-csv-import.php:
|
557 |
msgctxt "admin csv-import"
|
558 |
msgid "Listing category \"%s\" does not exist"
|
559 |
msgstr "Рубрика \"%s\" не существует"
|
@@ -815,57 +815,70 @@ msgid "Import settings"
|
|
815 |
msgstr "Настройки импорта"
|
816 |
|
817 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
818 |
msgctxt "admin csv-import"
|
819 |
-
msgid "Post status of imported listings"
|
820 |
msgstr "Статус записей по окончании импорта"
|
821 |
|
822 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
823 |
msgctxt "admin csv-import"
|
824 |
msgid "Missing categories handling"
|
825 |
msgstr "Обработка новых рубрик"
|
826 |
|
827 |
-
#: templates/admin/csv-import.tpl.php:
|
828 |
msgctxt "admin csv-import"
|
829 |
msgid "Auto-create categories"
|
830 |
msgstr "Автоматически создавать"
|
831 |
|
832 |
-
#: templates/admin/csv-import.tpl.php:
|
833 |
msgctxt "admin csv-import"
|
834 |
msgid "Generate errors when a category is not found"
|
835 |
msgstr "Выдавать ошибку \"рубрика не найдена\""
|
836 |
|
837 |
-
#: templates/admin/csv-import.tpl.php:
|
838 |
msgctxt "admin csv-import"
|
839 |
msgid "Keep existing listing images?"
|
840 |
msgstr "Существующие изображения?"
|
841 |
|
842 |
-
#: templates/admin/csv-import.tpl.php:
|
843 |
msgctxt "admin csv-import"
|
844 |
msgid "Keep existing images."
|
845 |
msgstr "Соранить."
|
846 |
|
847 |
-
#: templates/admin/csv-import.tpl.php:
|
848 |
msgctxt "admin csv-import"
|
849 |
msgid "Appends new images while keeping current ones."
|
850 |
msgstr "Будет добавлять новые изображения и не удалит существующие."
|
851 |
|
852 |
-
#: templates/admin/csv-import.tpl.php:
|
853 |
msgctxt "admin csv-import"
|
854 |
msgid "Assign listings to a user?"
|
855 |
msgstr "Автор?"
|
856 |
|
857 |
-
#: templates/admin/csv-import.tpl.php:
|
858 |
msgctxt "admin csv-import"
|
859 |
msgid "Assign listings to a user."
|
860 |
msgstr "Назначить новые записи существующему пользователю."
|
861 |
|
862 |
-
#: templates/admin/csv-import.tpl.php:
|
863 |
msgctxt "admin csv-import"
|
864 |
msgid "Use a default user for listings?"
|
865 |
msgstr ""
|
866 |
"Использовать изображение по-умолчанию, если ни одного не было загружено?"
|
867 |
|
868 |
-
#: templates/admin/csv-import.tpl.php:
|
869 |
msgctxt "admin csv-import"
|
870 |
msgid ""
|
871 |
"Select a default user to be used if the username column is not present in "
|
@@ -874,12 +887,12 @@ msgstr ""
|
|
874 |
"<br />Выберите зарегистрированного пользователя сайта, чтобы ему были "
|
875 |
"назначены новые записи, не имеющие имени пользователя в файле CSV."
|
876 |
|
877 |
-
#: templates/admin/csv-import.tpl.php:
|
878 |
msgctxt "admin csv-import"
|
879 |
msgid "Default listing user"
|
880 |
msgstr "Пользователь по-умолчанию для новых записей:"
|
881 |
|
882 |
-
#: templates/admin/csv-import.tpl.php:
|
883 |
msgctxt "admin csv-import"
|
884 |
msgid ""
|
885 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -887,13 +900,13 @@ msgstr ""
|
|
887 |
"<br />Выберите зарегистрированного пользователя сайта, чтобы ему были "
|
888 |
"назначены новые записи, не имеющие имени пользователя в файле CSV."
|
889 |
|
890 |
-
#: templates/admin/csv-import.tpl.php:
|
891 |
#, fuzzy
|
892 |
msgctxt "admin csv-import"
|
893 |
msgid "Number of listings imported on every cycle"
|
894 |
msgstr "Количество записей:"
|
895 |
|
896 |
-
#: templates/admin/csv-import.tpl.php:
|
897 |
msgctxt "admin csv-import"
|
898 |
msgid ""
|
899 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -902,27 +915,27 @@ msgid ""
|
|
902 |
"success on shared hosting platforms and other resource-constrained servers."
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: templates/admin/csv-import.tpl.php:
|
906 |
msgctxt "admin csv-import"
|
907 |
msgid "Disable e-mail notifications during import?"
|
908 |
msgstr "Оповещения по электронной почте:"
|
909 |
|
910 |
-
#: templates/admin/csv-import.tpl.php:
|
911 |
msgctxt "admin csv-import"
|
912 |
msgid "Disable e-mail notifications."
|
913 |
msgstr "Запретить оповещения пока производится импорт новых записей."
|
914 |
|
915 |
-
#: templates/admin/csv-import.tpl.php:
|
916 |
msgctxt "admin csv-import"
|
917 |
msgid "Test Import"
|
918 |
msgstr "Тест импорта"
|
919 |
|
920 |
-
#: templates/admin/csv-import.tpl.php:
|
921 |
msgctxt "admin csv-import"
|
922 |
msgid "Import Listings"
|
923 |
msgstr "Импортировать записи"
|
924 |
|
925 |
-
#: templates/admin/csv-import.tpl.php:
|
926 |
msgctxt "admin csv-import"
|
927 |
msgid ""
|
928 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -936,32 +949,32 @@ msgstr ""
|
|
936 |
"\">Образец файла CSV для импорта</a>\" чтобы узнать, как такой файл должен "
|
937 |
"выглядеть."
|
938 |
|
939 |
-
#: templates/admin/csv-import.tpl.php:
|
940 |
msgctxt "admin csv-import"
|
941 |
msgid "Header name/label"
|
942 |
msgstr "Имя или метка заголовка"
|
943 |
|
944 |
-
#: templates/admin/csv-import.tpl.php:
|
945 |
msgctxt "admin csv-import"
|
946 |
msgid "Field"
|
947 |
msgstr "Поле"
|
948 |
|
949 |
-
#: templates/admin/csv-import.tpl.php:
|
950 |
msgctxt "admin csv-import"
|
951 |
msgid "Type"
|
952 |
msgstr "Тип"
|
953 |
|
954 |
-
#: templates/admin/csv-import.tpl.php:
|
955 |
msgctxt "admin csv-import"
|
956 |
msgid "Required?"
|
957 |
msgstr "Обязательно?"
|
958 |
|
959 |
-
#: templates/admin/csv-import.tpl.php:
|
960 |
msgctxt "admin csv-import"
|
961 |
msgid "Multivalued?"
|
962 |
msgstr "Множественные значения?"
|
963 |
|
964 |
-
#: templates/admin/csv-import.tpl.php:
|
965 |
#, fuzzy
|
966 |
msgctxt "admin csv-import"
|
967 |
msgid ""
|
@@ -971,17 +984,17 @@ msgstr ""
|
|
971 |
"Дата окончания срока действия отформатирована как ГГГГ-ММ-ДД. Используйте "
|
972 |
"эту колонку при добавлении или изменении записей."
|
973 |
|
974 |
-
#: templates/admin/csv-import.tpl.php:
|
975 |
msgctxt "admin csv-import"
|
976 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
977 |
msgstr "Знак \"точка с запятой\" разделяет список изображений (в файле ZIP)"
|
978 |
|
979 |
-
#: templates/admin/csv-import.tpl.php:
|
980 |
msgctxt "admin csv-import"
|
981 |
msgid "Listing author's username"
|
982 |
msgstr "Учётная запись автора записи"
|
983 |
|
984 |
-
#: templates/admin/csv-import.tpl.php:
|
985 |
msgctxt "admin csv-import"
|
986 |
msgid ""
|
987 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -989,7 +1002,7 @@ msgstr ""
|
|
989 |
"Был использован внутренний последовательный номер, чтобы позволить загрузку "
|
990 |
"данных из справочника с другого сайта."
|
991 |
|
992 |
-
#: templates/admin/csv-import.tpl.php:
|
993 |
msgctxt "admin csv-import"
|
994 |
msgid ""
|
995 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -1010,12 +1023,12 @@ msgctxt "admin csv"
|
|
1010 |
msgid "Export"
|
1011 |
msgstr "Экспорт в CSV"
|
1012 |
|
1013 |
-
#: includes/admin/class-admin-listings.php:
|
1014 |
msgctxt "admin category filter"
|
1015 |
msgid "All categories"
|
1016 |
msgstr "Все рубрики"
|
1017 |
|
1018 |
-
#: includes/admin/class-admin-listings.php:
|
1019 |
msgctxt "admin listings"
|
1020 |
msgid ""
|
1021 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -1023,42 +1036,42 @@ msgid ""
|
|
1023 |
"renewals."
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: includes/admin/class-admin-listings.php:
|
1027 |
#, fuzzy
|
1028 |
msgctxt "admin listings"
|
1029 |
msgid "Never"
|
1030 |
msgstr "никогда"
|
1031 |
|
1032 |
-
#: includes/admin/class-admin-listings.php:
|
1033 |
#, fuzzy
|
1034 |
msgctxt "admin listings"
|
1035 |
msgid "Featured"
|
1036 |
msgstr "Статус \"Особая\""
|
1037 |
|
1038 |
-
#: includes/admin/class-admin-listings.php:
|
1039 |
#, fuzzy
|
1040 |
msgctxt "admin listings"
|
1041 |
msgid "Recurring"
|
1042 |
msgstr "(периодически)"
|
1043 |
|
1044 |
-
#: includes/admin/class-admin-listings.php:
|
1045 |
#, fuzzy
|
1046 |
msgctxt "admin listings"
|
1047 |
msgid "Free"
|
1048 |
msgstr "Бесплатно"
|
1049 |
|
1050 |
-
#: includes/admin/class-admin-listings.php:
|
1051 |
#, fuzzy
|
1052 |
msgctxt "admin listings"
|
1053 |
msgid "Paid"
|
1054 |
msgstr "Оплачено"
|
1055 |
|
1056 |
-
#: includes/admin/class-admin-listings.php:
|
1057 |
msgctxt "admin listings"
|
1058 |
msgid "Reported"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: includes/admin/class-admin-listings.php:
|
1062 |
msgctxt "admin listings"
|
1063 |
msgid "Listing's payment history successfully deleted"
|
1064 |
msgstr ""
|
@@ -1086,13 +1099,13 @@ msgctxt "admin listings"
|
|
1086 |
msgid "Clear listing reports."
|
1087 |
msgstr "Срок действия записи истёк"
|
1088 |
|
1089 |
-
#: includes/admin/class-admin-listings.php:
|
1090 |
#, fuzzy
|
1091 |
msgctxt "admin"
|
1092 |
msgid "Directory Listing Fields / Images"
|
1093 |
msgstr "Поля и Изображения записи"
|
1094 |
|
1095 |
-
#: includes/admin/class-admin-listings.php:
|
1096 |
msgctxt "admin"
|
1097 |
msgid "Categories"
|
1098 |
msgstr "Рубрики"
|
@@ -1292,120 +1305,120 @@ msgctxt "admin"
|
|
1292 |
msgid "Go to \"Manage Fees\""
|
1293 |
msgstr "Перейти в раздел \"Управление / Форма\""
|
1294 |
|
1295 |
-
#: includes/admin/class-admin-listings.php:
|
1296 |
msgctxt "listing attribute"
|
1297 |
msgid "No Fee Plan"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: includes/admin/class-admin-listings.php:
|
1301 |
msgctxt "listing status"
|
1302 |
msgid "Reported"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: includes/class-listing.php:
|
1306 |
msgctxt "listing status"
|
1307 |
msgid "Unknown"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
-
#: includes/class-listing.php:
|
1311 |
msgctxt "listing status"
|
1312 |
msgid "Legacy"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#: includes/class-listing.php:
|
1316 |
#, fuzzy
|
1317 |
msgctxt "listing status"
|
1318 |
msgid "Incomplete"
|
1319 |
msgstr "Завершено"
|
1320 |
|
1321 |
-
#: includes/class-listing.php:
|
1322 |
#, fuzzy
|
1323 |
msgctxt "listing status"
|
1324 |
msgid "Pending Payment"
|
1325 |
msgstr "Платёж был заброшен."
|
1326 |
|
1327 |
-
#: includes/class-listing.php:
|
1328 |
#, fuzzy
|
1329 |
msgctxt "listing status"
|
1330 |
msgid "Complete"
|
1331 |
msgstr "Завершено"
|
1332 |
|
1333 |
-
#: includes/class-listing.php:
|
1334 |
#, fuzzy
|
1335 |
msgctxt "listing status"
|
1336 |
msgid "Pending Upgrade"
|
1337 |
msgstr "Ожидается подтверждение"
|
1338 |
|
1339 |
-
#: includes/class-listing.php:
|
1340 |
#, fuzzy
|
1341 |
msgctxt "listing status"
|
1342 |
msgid "Expired"
|
1343 |
msgstr "Истекло"
|
1344 |
|
1345 |
-
#: includes/class-listing.php:
|
1346 |
#, fuzzy
|
1347 |
msgctxt "listing status"
|
1348 |
msgid "Pending Renewal"
|
1349 |
msgstr "Активные + ожидающие продление"
|
1350 |
|
1351 |
-
#: includes/class-listing.php:
|
1352 |
#, fuzzy
|
1353 |
msgctxt "listing status"
|
1354 |
msgid "Abandoned"
|
1355 |
msgstr "Заброшено"
|
1356 |
|
1357 |
-
#: includes/admin/class-admin-listings.php:
|
1358 |
msgctxt "admin actions"
|
1359 |
msgid "Edit Listing"
|
1360 |
msgstr "Изменить запись"
|
1361 |
|
1362 |
-
#: includes/admin/class-admin-listings.php:
|
1363 |
msgctxt "admin actions"
|
1364 |
msgid "Delete Listing"
|
1365 |
msgstr "Удалить запись"
|
1366 |
|
1367 |
-
#: includes/admin/class-admin-listings.php:
|
1368 |
#, fuzzy
|
1369 |
msgctxt "admin actions"
|
1370 |
msgid "View Payments"
|
1371 |
msgstr "Оплата"
|
1372 |
|
1373 |
-
#: includes/admin/class-admin-listings.php:
|
1374 |
#, fuzzy
|
1375 |
msgctxt "admin actions"
|
1376 |
msgid "View Payment"
|
1377 |
msgstr "Оплата"
|
1378 |
|
1379 |
-
#: includes/admin/class-admin-listings.php:
|
1380 |
#, fuzzy
|
1381 |
msgctxt "admin actions"
|
1382 |
msgid "Publish listings"
|
1383 |
msgstr "Опубликовать запись"
|
1384 |
|
1385 |
-
#: includes/admin/class-admin-listings.php:
|
1386 |
#, fuzzy
|
1387 |
msgctxt "admin actions"
|
1388 |
msgid "Mark as \"Pending Review\""
|
1389 |
msgstr "Ожидается"
|
1390 |
|
1391 |
-
#: includes/admin/class-admin-listings.php:
|
1392 |
msgctxt "admin actions"
|
1393 |
msgid "Hide from directory (mark as \"Draft\")"
|
1394 |
msgstr ""
|
1395 |
|
1396 |
-
#: includes/admin/class-admin-listings.php:
|
1397 |
#, fuzzy
|
1398 |
msgctxt "admin actions"
|
1399 |
msgid "Renew listings"
|
1400 |
msgstr "Продлить запись"
|
1401 |
|
1402 |
-
#: includes/admin/class-admin-listings.php:
|
1403 |
#, fuzzy
|
1404 |
msgctxt "admin actions"
|
1405 |
msgid "Set listings as \"Expired\""
|
1406 |
msgstr "Срок действия записи истёк"
|
1407 |
|
1408 |
-
#: includes/admin/class-admin-listings.php:
|
1409 |
#, fuzzy
|
1410 |
msgctxt "admin actions"
|
1411 |
msgid "Send access keys"
|
@@ -6036,19 +6049,19 @@ msgctxt "listing"
|
|
6036 |
msgid "Listing expired"
|
6037 |
msgstr "Срок действия записи истёк"
|
6038 |
|
6039 |
-
#: includes/class-listing.php:
|
6040 |
#, fuzzy
|
6041 |
msgctxt "listing"
|
6042 |
msgid "(Unavailable Plan)"
|
6043 |
msgstr "(Тариф недоступен)"
|
6044 |
|
6045 |
-
#: includes/class-listing.php:
|
6046 |
#, fuzzy
|
6047 |
msgctxt "listing"
|
6048 |
msgid "Plan \"%s\" (recurring)"
|
6049 |
msgstr "(периодически)"
|
6050 |
|
6051 |
-
#: includes/class-listing.php:
|
6052 |
msgctxt "listing"
|
6053 |
msgid "Plan \"%s\""
|
6054 |
msgstr ""
|
@@ -8724,7 +8737,7 @@ msgstr "Поиск"
|
|
8724 |
#: templates/admin/csv-import.tpl.php:116
|
8725 |
#: templates/admin/csv-import.tpl.php:142
|
8726 |
#: templates/admin/csv-import.tpl.php:153
|
8727 |
-
#: templates/admin/csv-import.tpl.php:
|
8728 |
msgctxt "admin forms"
|
8729 |
msgid "required"
|
8730 |
msgstr "обязательно"
|
3 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
5 |
"directory-plugin\n"
|
6 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
7 |
"PO-Revision-Date: 2017-01-16 17:49-0500\n"
|
8 |
"Last-Translator: Mick Levin <mikhaillevin@hotmail.com>\n"
|
9 |
"Language-Team: BD Team <support@businessdirectoryplugin.com>\n"
|
24 |
"X-Loco-Target-Locale: ru_RU\n"
|
25 |
"X-Poedit-SearchPath-0: ../../plugins/business-directory-plugin\n"
|
26 |
|
27 |
+
#: includes/admin/class-admin-listings.php:184
|
28 |
msgid "Listing Information"
|
29 |
msgstr "Информация о бизнесе"
|
30 |
|
31 |
+
#: includes/admin/class-admin-listings.php:192
|
32 |
#, fuzzy
|
33 |
msgid "Listing Timeline"
|
34 |
msgstr "Название записи:"
|
35 |
|
36 |
+
#: includes/admin/class-admin-listings.php:210
|
37 |
#, fuzzy
|
38 |
msgid "Listing Reports"
|
39 |
msgstr "Срок действия записи истёк"
|
40 |
|
41 |
+
#: includes/admin/class-admin-listings.php:251
|
42 |
#, fuzzy
|
43 |
msgid "Expires on"
|
44 |
msgstr "Истекает"
|
45 |
|
46 |
+
#: includes/admin/class-admin-listings.php:259
|
47 |
#, fuzzy
|
48 |
msgid "Attributes"
|
49 |
msgstr "Атрибуты"
|
64 |
msgid "Uninstall"
|
65 |
msgstr "Удалить"
|
66 |
|
67 |
+
#: includes/admin/class-csv-import.php:633
|
68 |
msgid "Listing imported by admin. Payment skipped."
|
69 |
msgstr ""
|
70 |
|
516 |
msgid "See an example CSV import file"
|
517 |
msgstr "Посмотрите образец файла CSV для иморта"
|
518 |
|
519 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
520 |
msgctxt "admin csv-import"
|
521 |
msgid "Help"
|
522 |
msgstr "Подсказка"
|
523 |
|
524 |
+
#: includes/admin/class-csv-import.php:503
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid ""
|
527 |
"Could not create listing category \"<category-name>\". The operation failed "
|
528 |
"with the following error: <error-message>."
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: includes/admin/class-csv-import.php:509
|
532 |
msgctxt "admin csv-import"
|
533 |
msgid "Could not create listing category \"%s\""
|
534 |
msgstr "Не удалось создать рубрику \"%s\""
|
535 |
|
536 |
+
#: includes/admin/class-csv-import.php:684
|
537 |
msgctxt "admin csv-import"
|
538 |
msgid "Username \"%s\" does not exist"
|
539 |
msgstr "Имя учётной записи \"%s\" не существует"
|
540 |
|
541 |
+
#: includes/admin/class-csv-import.php:710
|
542 |
msgctxt "admin csv-import"
|
543 |
msgid "The string <string> couldn't be converted into a valid date."
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: includes/admin/class-csv-import.php:732
|
547 |
msgctxt "admin csv-import"
|
548 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: includes/admin/class-csv-import.php:755
|
552 |
msgctxt "admin csv-import"
|
553 |
msgid "Missing required field: %s"
|
554 |
msgstr "Отсутствует обязательное поле: %s"
|
555 |
|
556 |
+
#: includes/admin/class-csv-import.php:780
|
557 |
msgctxt "admin csv-import"
|
558 |
msgid "Listing category \"%s\" does not exist"
|
559 |
msgstr "Рубрика \"%s\" не существует"
|
815 |
msgstr "Настройки импорта"
|
816 |
|
817 |
#: templates/admin/csv-import.tpl.php:168
|
818 |
+
#, fuzzy
|
819 |
msgctxt "admin csv-import"
|
820 |
+
msgid "Post status of new imported listings"
|
821 |
msgstr "Статус записей по окончании импорта"
|
822 |
|
823 |
+
#: templates/admin/csv-import.tpl.php:183
|
824 |
+
#, fuzzy
|
825 |
+
msgctxt "admin csv-import"
|
826 |
+
msgid "Post status of existing imported listings"
|
827 |
+
msgstr "Статус записей по окончании импорта"
|
828 |
+
|
829 |
+
#: templates/admin/csv-import.tpl.php:187
|
830 |
+
#, fuzzy
|
831 |
+
msgctxt "admin csv-import"
|
832 |
+
msgid "Preserve existing status"
|
833 |
+
msgstr "Записи"
|
834 |
+
|
835 |
+
#: templates/admin/csv-import.tpl.php:199
|
836 |
msgctxt "admin csv-import"
|
837 |
msgid "Missing categories handling"
|
838 |
msgstr "Обработка новых рубрик"
|
839 |
|
840 |
+
#: templates/admin/csv-import.tpl.php:204
|
841 |
msgctxt "admin csv-import"
|
842 |
msgid "Auto-create categories"
|
843 |
msgstr "Автоматически создавать"
|
844 |
|
845 |
+
#: templates/admin/csv-import.tpl.php:207
|
846 |
msgctxt "admin csv-import"
|
847 |
msgid "Generate errors when a category is not found"
|
848 |
msgstr "Выдавать ошибку \"рубрика не найдена\""
|
849 |
|
850 |
+
#: templates/admin/csv-import.tpl.php:212
|
851 |
msgctxt "admin csv-import"
|
852 |
msgid "Keep existing listing images?"
|
853 |
msgstr "Существующие изображения?"
|
854 |
|
855 |
+
#: templates/admin/csv-import.tpl.php:217
|
856 |
msgctxt "admin csv-import"
|
857 |
msgid "Keep existing images."
|
858 |
msgstr "Соранить."
|
859 |
|
860 |
+
#: templates/admin/csv-import.tpl.php:218
|
861 |
msgctxt "admin csv-import"
|
862 |
msgid "Appends new images while keeping current ones."
|
863 |
msgstr "Будет добавлять новые изображения и не удалит существующие."
|
864 |
|
865 |
+
#: templates/admin/csv-import.tpl.php:223
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Assign listings to a user?"
|
868 |
msgstr "Автор?"
|
869 |
|
870 |
+
#: templates/admin/csv-import.tpl.php:229
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid "Assign listings to a user."
|
873 |
msgstr "Назначить новые записи существующему пользователю."
|
874 |
|
875 |
+
#: templates/admin/csv-import.tpl.php:234
|
876 |
msgctxt "admin csv-import"
|
877 |
msgid "Use a default user for listings?"
|
878 |
msgstr ""
|
879 |
"Использовать изображение по-умолчанию, если ни одного не было загружено?"
|
880 |
|
881 |
+
#: templates/admin/csv-import.tpl.php:240
|
882 |
msgctxt "admin csv-import"
|
883 |
msgid ""
|
884 |
"Select a default user to be used if the username column is not present in "
|
887 |
"<br />Выберите зарегистрированного пользователя сайта, чтобы ему были "
|
888 |
"назначены новые записи, не имеющие имени пользователя в файле CSV."
|
889 |
|
890 |
+
#: templates/admin/csv-import.tpl.php:245
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid "Default listing user"
|
893 |
msgstr "Пользователь по-умолчанию для новых записей:"
|
894 |
|
895 |
+
#: templates/admin/csv-import.tpl.php:251
|
896 |
msgctxt "admin csv-import"
|
897 |
msgid ""
|
898 |
"This user will be used if the username column is not present in the CSV file."
|
900 |
"<br />Выберите зарегистрированного пользователя сайта, чтобы ему были "
|
901 |
"назначены новые записи, не имеющие имени пользователя в файле CSV."
|
902 |
|
903 |
+
#: templates/admin/csv-import.tpl.php:256
|
904 |
#, fuzzy
|
905 |
msgctxt "admin csv-import"
|
906 |
msgid "Number of listings imported on every cycle"
|
907 |
msgstr "Количество записей:"
|
908 |
|
909 |
+
#: templates/admin/csv-import.tpl.php:264
|
910 |
msgctxt "admin csv-import"
|
911 |
msgid ""
|
912 |
"If you are having trouble importing listings due to memory problems, try "
|
915 |
"success on shared hosting platforms and other resource-constrained servers."
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: templates/admin/csv-import.tpl.php:269
|
919 |
msgctxt "admin csv-import"
|
920 |
msgid "Disable e-mail notifications during import?"
|
921 |
msgstr "Оповещения по электронной почте:"
|
922 |
|
923 |
+
#: templates/admin/csv-import.tpl.php:274
|
924 |
msgctxt "admin csv-import"
|
925 |
msgid "Disable e-mail notifications."
|
926 |
msgstr "Запретить оповещения пока производится импорт новых записей."
|
927 |
|
928 |
+
#: templates/admin/csv-import.tpl.php:280
|
929 |
msgctxt "admin csv-import"
|
930 |
msgid "Test Import"
|
931 |
msgstr "Тест импорта"
|
932 |
|
933 |
+
#: templates/admin/csv-import.tpl.php:281
|
934 |
msgctxt "admin csv-import"
|
935 |
msgid "Import Listings"
|
936 |
msgstr "Импортировать записи"
|
937 |
|
938 |
+
#: templates/admin/csv-import.tpl.php:289
|
939 |
msgctxt "admin csv-import"
|
940 |
msgid ""
|
941 |
"The following are the valid header names to be used in the CSV file. "
|
949 |
"\">Образец файла CSV для импорта</a>\" чтобы узнать, как такой файл должен "
|
950 |
"выглядеть."
|
951 |
|
952 |
+
#: templates/admin/csv-import.tpl.php:296
|
953 |
msgctxt "admin csv-import"
|
954 |
msgid "Header name/label"
|
955 |
msgstr "Имя или метка заголовка"
|
956 |
|
957 |
+
#: templates/admin/csv-import.tpl.php:297
|
958 |
msgctxt "admin csv-import"
|
959 |
msgid "Field"
|
960 |
msgstr "Поле"
|
961 |
|
962 |
+
#: templates/admin/csv-import.tpl.php:298
|
963 |
msgctxt "admin csv-import"
|
964 |
msgid "Type"
|
965 |
msgstr "Тип"
|
966 |
|
967 |
+
#: templates/admin/csv-import.tpl.php:299
|
968 |
msgctxt "admin csv-import"
|
969 |
msgid "Required?"
|
970 |
msgstr "Обязательно?"
|
971 |
|
972 |
+
#: templates/admin/csv-import.tpl.php:300
|
973 |
msgctxt "admin csv-import"
|
974 |
msgid "Multivalued?"
|
975 |
msgstr "Множественные значения?"
|
976 |
|
977 |
+
#: templates/admin/csv-import.tpl.php:322
|
978 |
#, fuzzy
|
979 |
msgctxt "admin csv-import"
|
980 |
msgid ""
|
984 |
"Дата окончания срока действия отформатирована как ГГГГ-ММ-ДД. Используйте "
|
985 |
"эту колонку при добавлении или изменении записей."
|
986 |
|
987 |
+
#: templates/admin/csv-import.tpl.php:329
|
988 |
msgctxt "admin csv-import"
|
989 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
990 |
msgstr "Знак \"точка с запятой\" разделяет список изображений (в файле ZIP)"
|
991 |
|
992 |
+
#: templates/admin/csv-import.tpl.php:336
|
993 |
msgctxt "admin csv-import"
|
994 |
msgid "Listing author's username"
|
995 |
msgstr "Учётная запись автора записи"
|
996 |
|
997 |
+
#: templates/admin/csv-import.tpl.php:343
|
998 |
msgctxt "admin csv-import"
|
999 |
msgid ""
|
1000 |
"Internal Sequence ID used to allow listing updates from external sources."
|
1002 |
"Был использован внутренний последовательный номер, чтобы позволить загрузку "
|
1003 |
"данных из справочника с другого сайта."
|
1004 |
|
1005 |
+
#: templates/admin/csv-import.tpl.php:350
|
1006 |
msgctxt "admin csv-import"
|
1007 |
msgid ""
|
1008 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
1023 |
msgid "Export"
|
1024 |
msgstr "Экспорт в CSV"
|
1025 |
|
1026 |
+
#: includes/admin/class-admin-listings.php:62
|
1027 |
msgctxt "admin category filter"
|
1028 |
msgid "All categories"
|
1029 |
msgstr "Все рубрики"
|
1030 |
|
1031 |
+
#: includes/admin/class-admin-listings.php:177
|
1032 |
msgctxt "admin listings"
|
1033 |
msgid ""
|
1034 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1036 |
"renewals."
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: includes/admin/class-admin-listings.php:296
|
1040 |
#, fuzzy
|
1041 |
msgctxt "admin listings"
|
1042 |
msgid "Never"
|
1043 |
msgstr "никогда"
|
1044 |
|
1045 |
+
#: includes/admin/class-admin-listings.php:322
|
1046 |
#, fuzzy
|
1047 |
msgctxt "admin listings"
|
1048 |
msgid "Featured"
|
1049 |
msgstr "Статус \"Особая\""
|
1050 |
|
1051 |
+
#: includes/admin/class-admin-listings.php:326
|
1052 |
#, fuzzy
|
1053 |
msgctxt "admin listings"
|
1054 |
msgid "Recurring"
|
1055 |
msgstr "(периодически)"
|
1056 |
|
1057 |
+
#: includes/admin/class-admin-listings.php:330
|
1058 |
#, fuzzy
|
1059 |
msgctxt "admin listings"
|
1060 |
msgid "Free"
|
1061 |
msgstr "Бесплатно"
|
1062 |
|
1063 |
+
#: includes/admin/class-admin-listings.php:332
|
1064 |
#, fuzzy
|
1065 |
msgctxt "admin listings"
|
1066 |
msgid "Paid"
|
1067 |
msgstr "Оплачено"
|
1068 |
|
1069 |
+
#: includes/admin/class-admin-listings.php:337
|
1070 |
msgctxt "admin listings"
|
1071 |
msgid "Reported"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: includes/admin/class-admin-listings.php:666
|
1075 |
msgctxt "admin listings"
|
1076 |
msgid "Listing's payment history successfully deleted"
|
1077 |
msgstr ""
|
1099 |
msgid "Clear listing reports."
|
1100 |
msgstr "Срок действия записи истёк"
|
1101 |
|
1102 |
+
#: includes/admin/class-admin-listings.php:200
|
1103 |
#, fuzzy
|
1104 |
msgctxt "admin"
|
1105 |
msgid "Directory Listing Fields / Images"
|
1106 |
msgstr "Поля и Изображения записи"
|
1107 |
|
1108 |
+
#: includes/admin/class-admin-listings.php:250
|
1109 |
msgctxt "admin"
|
1110 |
msgid "Categories"
|
1111 |
msgstr "Рубрики"
|
1305 |
msgid "Go to \"Manage Fees\""
|
1306 |
msgstr "Перейти в раздел \"Управление / Форма\""
|
1307 |
|
1308 |
+
#: includes/admin/class-admin-listings.php:307
|
1309 |
msgctxt "listing attribute"
|
1310 |
msgid "No Fee Plan"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: includes/admin/class-admin-listings.php:397
|
1314 |
msgctxt "listing status"
|
1315 |
msgid "Reported"
|
1316 |
msgstr ""
|
1317 |
|
1318 |
+
#: includes/class-listing.php:776
|
1319 |
msgctxt "listing status"
|
1320 |
msgid "Unknown"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
+
#: includes/class-listing.php:777
|
1324 |
msgctxt "listing status"
|
1325 |
msgid "Legacy"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: includes/class-listing.php:778
|
1329 |
#, fuzzy
|
1330 |
msgctxt "listing status"
|
1331 |
msgid "Incomplete"
|
1332 |
msgstr "Завершено"
|
1333 |
|
1334 |
+
#: includes/class-listing.php:779
|
1335 |
#, fuzzy
|
1336 |
msgctxt "listing status"
|
1337 |
msgid "Pending Payment"
|
1338 |
msgstr "Платёж был заброшен."
|
1339 |
|
1340 |
+
#: includes/class-listing.php:780
|
1341 |
#, fuzzy
|
1342 |
msgctxt "listing status"
|
1343 |
msgid "Complete"
|
1344 |
msgstr "Завершено"
|
1345 |
|
1346 |
+
#: includes/class-listing.php:781
|
1347 |
#, fuzzy
|
1348 |
msgctxt "listing status"
|
1349 |
msgid "Pending Upgrade"
|
1350 |
msgstr "Ожидается подтверждение"
|
1351 |
|
1352 |
+
#: includes/class-listing.php:782
|
1353 |
#, fuzzy
|
1354 |
msgctxt "listing status"
|
1355 |
msgid "Expired"
|
1356 |
msgstr "Истекло"
|
1357 |
|
1358 |
+
#: includes/class-listing.php:783
|
1359 |
#, fuzzy
|
1360 |
msgctxt "listing status"
|
1361 |
msgid "Pending Renewal"
|
1362 |
msgstr "Активные + ожидающие продление"
|
1363 |
|
1364 |
+
#: includes/class-listing.php:784
|
1365 |
#, fuzzy
|
1366 |
msgctxt "listing status"
|
1367 |
msgid "Abandoned"
|
1368 |
msgstr "Заброшено"
|
1369 |
|
1370 |
+
#: includes/admin/class-admin-listings.php:446
|
1371 |
msgctxt "admin actions"
|
1372 |
msgid "Edit Listing"
|
1373 |
msgstr "Изменить запись"
|
1374 |
|
1375 |
+
#: includes/admin/class-admin-listings.php:451
|
1376 |
msgctxt "admin actions"
|
1377 |
msgid "Delete Listing"
|
1378 |
msgstr "Удалить запись"
|
1379 |
|
1380 |
+
#: includes/admin/class-admin-listings.php:462
|
1381 |
#, fuzzy
|
1382 |
msgctxt "admin actions"
|
1383 |
msgid "View Payments"
|
1384 |
msgstr "Оплата"
|
1385 |
|
1386 |
+
#: includes/admin/class-admin-listings.php:467
|
1387 |
#, fuzzy
|
1388 |
msgctxt "admin actions"
|
1389 |
msgid "View Payment"
|
1390 |
msgstr "Оплата"
|
1391 |
|
1392 |
+
#: includes/admin/class-admin-listings.php:605
|
1393 |
#, fuzzy
|
1394 |
msgctxt "admin actions"
|
1395 |
msgid "Publish listings"
|
1396 |
msgstr "Опубликовать запись"
|
1397 |
|
1398 |
+
#: includes/admin/class-admin-listings.php:606
|
1399 |
#, fuzzy
|
1400 |
msgctxt "admin actions"
|
1401 |
msgid "Mark as \"Pending Review\""
|
1402 |
msgstr "Ожидается"
|
1403 |
|
1404 |
+
#: includes/admin/class-admin-listings.php:607
|
1405 |
msgctxt "admin actions"
|
1406 |
msgid "Hide from directory (mark as \"Draft\")"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
+
#: includes/admin/class-admin-listings.php:609
|
1410 |
#, fuzzy
|
1411 |
msgctxt "admin actions"
|
1412 |
msgid "Renew listings"
|
1413 |
msgstr "Продлить запись"
|
1414 |
|
1415 |
+
#: includes/admin/class-admin-listings.php:610
|
1416 |
#, fuzzy
|
1417 |
msgctxt "admin actions"
|
1418 |
msgid "Set listings as \"Expired\""
|
1419 |
msgstr "Срок действия записи истёк"
|
1420 |
|
1421 |
+
#: includes/admin/class-admin-listings.php:617
|
1422 |
#, fuzzy
|
1423 |
msgctxt "admin actions"
|
1424 |
msgid "Send access keys"
|
6049 |
msgid "Listing expired"
|
6050 |
msgstr "Срок действия записи истёк"
|
6051 |
|
6052 |
+
#: includes/class-listing.php:516
|
6053 |
#, fuzzy
|
6054 |
msgctxt "listing"
|
6055 |
msgid "(Unavailable Plan)"
|
6056 |
msgstr "(Тариф недоступен)"
|
6057 |
|
6058 |
+
#: includes/class-listing.php:673
|
6059 |
#, fuzzy
|
6060 |
msgctxt "listing"
|
6061 |
msgid "Plan \"%s\" (recurring)"
|
6062 |
msgstr "(периодически)"
|
6063 |
|
6064 |
+
#: includes/class-listing.php:675
|
6065 |
msgctxt "listing"
|
6066 |
msgid "Plan \"%s\""
|
6067 |
msgstr ""
|
8737 |
#: templates/admin/csv-import.tpl.php:116
|
8738 |
#: templates/admin/csv-import.tpl.php:142
|
8739 |
#: templates/admin/csv-import.tpl.php:153
|
8740 |
+
#: templates/admin/csv-import.tpl.php:199
|
8741 |
msgctxt "admin forms"
|
8742 |
msgid "required"
|
8743 |
msgstr "обязательно"
|
languages/WPBDM-sv_SE.mo
CHANGED
Binary file
|
languages/WPBDM-sv_SE.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"PO-Revision-Date: 2017-12-03 21:20+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -16,24 +16,24 @@ msgstr ""
|
|
16 |
"X-Generator: Poedit 2.0.4\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
-
#: includes/admin/class-admin-listings.php:
|
20 |
msgid "Listing Information"
|
21 |
msgstr "Information om annons"
|
22 |
|
23 |
-
#: includes/admin/class-admin-listings.php:
|
24 |
msgid "Listing Timeline"
|
25 |
msgstr "Annonsens tidslinje:"
|
26 |
|
27 |
-
#: includes/admin/class-admin-listings.php:
|
28 |
#, fuzzy
|
29 |
msgid "Listing Reports"
|
30 |
msgstr "Annonsen förfallit."
|
31 |
|
32 |
-
#: includes/admin/class-admin-listings.php:
|
33 |
msgid "Expires on"
|
34 |
msgstr "Utgår den"
|
35 |
|
36 |
-
#: includes/admin/class-admin-listings.php:
|
37 |
msgid "Attributes"
|
38 |
msgstr "Attribut"
|
39 |
|
@@ -53,7 +53,7 @@ msgstr "Avinstallera tillägget Business Directory"
|
|
53 |
msgid "Uninstall"
|
54 |
msgstr "Avinstallera"
|
55 |
|
56 |
-
#: includes/admin/class-csv-import.php:
|
57 |
#, fuzzy
|
58 |
msgid "Listing imported by admin. Payment skipped."
|
59 |
msgstr "Notering skickas in av admin. Betalning hoppas över."
|
@@ -492,12 +492,12 @@ msgctxt "admin csv-import"
|
|
492 |
msgid "See an example CSV import file"
|
493 |
msgstr "Se ett exempel av en CSV importfil"
|
494 |
|
495 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
496 |
msgctxt "admin csv-import"
|
497 |
msgid "Help"
|
498 |
msgstr "Hjälp"
|
499 |
|
500 |
-
#: includes/admin/class-csv-import.php:
|
501 |
msgctxt "admin csv-import"
|
502 |
msgid ""
|
503 |
"Could not create listing category \"<category-name>\". The operation failed "
|
@@ -506,32 +506,32 @@ msgstr ""
|
|
506 |
"Kunde inte skapa annonskategori \"<category-name>\". Åtgärden misslyckades "
|
507 |
"på grund av följande fel: <error-message>"
|
508 |
|
509 |
-
#: includes/admin/class-csv-import.php:
|
510 |
msgctxt "admin csv-import"
|
511 |
msgid "Could not create listing category \"%s\""
|
512 |
msgstr "Det gick inte att skapa annonskategori \"%s\""
|
513 |
|
514 |
-
#: includes/admin/class-csv-import.php:
|
515 |
msgctxt "admin csv-import"
|
516 |
msgid "Username \"%s\" does not exist"
|
517 |
msgstr "Användarnamn \"%s\" existerar inte"
|
518 |
|
519 |
-
#: includes/admin/class-csv-import.php:
|
520 |
msgctxt "admin csv-import"
|
521 |
msgid "The string <string> couldn't be converted into a valid date."
|
522 |
msgstr "Tråden <string> kunde inte omvandlas till ett giltigt datum."
|
523 |
|
524 |
-
#: includes/admin/class-csv-import.php:
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
527 |
msgstr "Det finns ingen avgiftsplan med ID = <fee-id>"
|
528 |
|
529 |
-
#: includes/admin/class-csv-import.php:
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Missing required field: %s"
|
532 |
msgstr "Saknar det obligatoriska fältet %s"
|
533 |
|
534 |
-
#: includes/admin/class-csv-import.php:
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "Listing category \"%s\" does not exist"
|
537 |
msgstr "Annonskategorin \"%s\" existerar inte"
|
@@ -788,56 +788,69 @@ msgid "Import settings"
|
|
788 |
msgstr "Importera inställningar"
|
789 |
|
790 |
#: templates/admin/csv-import.tpl.php:168
|
|
|
791 |
msgctxt "admin csv-import"
|
792 |
-
msgid "Post status of imported listings"
|
793 |
msgstr "Status av importerade annonser"
|
794 |
|
795 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
796 |
msgctxt "admin csv-import"
|
797 |
msgid "Missing categories handling"
|
798 |
msgstr "Hantera saknade kategorier"
|
799 |
|
800 |
-
#: templates/admin/csv-import.tpl.php:
|
801 |
msgctxt "admin csv-import"
|
802 |
msgid "Auto-create categories"
|
803 |
msgstr "Autoskapa kategorier"
|
804 |
|
805 |
-
#: templates/admin/csv-import.tpl.php:
|
806 |
msgctxt "admin csv-import"
|
807 |
msgid "Generate errors when a category is not found"
|
808 |
msgstr "Generera fel när en kategori inte hittas"
|
809 |
|
810 |
-
#: templates/admin/csv-import.tpl.php:
|
811 |
msgctxt "admin csv-import"
|
812 |
msgid "Keep existing listing images?"
|
813 |
msgstr "Behålla befintliga annonsbilder?"
|
814 |
|
815 |
-
#: templates/admin/csv-import.tpl.php:
|
816 |
msgctxt "admin csv-import"
|
817 |
msgid "Keep existing images."
|
818 |
msgstr "Behåll befintliga bilder."
|
819 |
|
820 |
-
#: templates/admin/csv-import.tpl.php:
|
821 |
msgctxt "admin csv-import"
|
822 |
msgid "Appends new images while keeping current ones."
|
823 |
msgstr "Lägger till nya bilder och behåller de existerande."
|
824 |
|
825 |
-
#: templates/admin/csv-import.tpl.php:
|
826 |
msgctxt "admin csv-import"
|
827 |
msgid "Assign listings to a user?"
|
828 |
msgstr "Tilldela annons till användare?"
|
829 |
|
830 |
-
#: templates/admin/csv-import.tpl.php:
|
831 |
msgctxt "admin csv-import"
|
832 |
msgid "Assign listings to a user."
|
833 |
msgstr "Tilldela annons till användare."
|
834 |
|
835 |
-
#: templates/admin/csv-import.tpl.php:
|
836 |
msgctxt "admin csv-import"
|
837 |
msgid "Use a default user for listings?"
|
838 |
msgstr "Använd en standardanvändare för annonser?"
|
839 |
|
840 |
-
#: templates/admin/csv-import.tpl.php:
|
841 |
msgctxt "admin csv-import"
|
842 |
msgid ""
|
843 |
"Select a default user to be used if the username column is not present in "
|
@@ -846,12 +859,12 @@ msgstr ""
|
|
846 |
"Välj en standardanvändare som används om användarkolumnen inte finns i CSV-"
|
847 |
"filen."
|
848 |
|
849 |
-
#: templates/admin/csv-import.tpl.php:
|
850 |
msgctxt "admin csv-import"
|
851 |
msgid "Default listing user"
|
852 |
msgstr "standardanvändare"
|
853 |
|
854 |
-
#: templates/admin/csv-import.tpl.php:
|
855 |
msgctxt "admin csv-import"
|
856 |
msgid ""
|
857 |
"This user will be used if the username column is not present in the CSV file."
|
@@ -859,13 +872,13 @@ msgstr ""
|
|
859 |
"Denna användare kommer att användas om användarkolumnen inte finns i CSV-"
|
860 |
"filen."
|
861 |
|
862 |
-
#: templates/admin/csv-import.tpl.php:
|
863 |
#, fuzzy
|
864 |
msgctxt "admin csv-import"
|
865 |
msgid "Number of listings imported on every cycle"
|
866 |
msgstr "Antal annonser att visa:"
|
867 |
|
868 |
-
#: templates/admin/csv-import.tpl.php:
|
869 |
msgctxt "admin csv-import"
|
870 |
msgid ""
|
871 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -874,27 +887,27 @@ msgid ""
|
|
874 |
"success on shared hosting platforms and other resource-constrained servers."
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: templates/admin/csv-import.tpl.php:
|
878 |
msgctxt "admin csv-import"
|
879 |
msgid "Disable e-mail notifications during import?"
|
880 |
msgstr "Inaktivera e-postmeddelanden vid import?"
|
881 |
|
882 |
-
#: templates/admin/csv-import.tpl.php:
|
883 |
msgctxt "admin csv-import"
|
884 |
msgid "Disable e-mail notifications."
|
885 |
msgstr "Inaktivera e-postmeddelanden."
|
886 |
|
887 |
-
#: templates/admin/csv-import.tpl.php:
|
888 |
msgctxt "admin csv-import"
|
889 |
msgid "Test Import"
|
890 |
msgstr "Testimport"
|
891 |
|
892 |
-
#: templates/admin/csv-import.tpl.php:
|
893 |
msgctxt "admin csv-import"
|
894 |
msgid "Import Listings"
|
895 |
msgstr "Importera annonser"
|
896 |
|
897 |
-
#: templates/admin/csv-import.tpl.php:
|
898 |
msgctxt "admin csv-import"
|
899 |
msgid ""
|
900 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -907,32 +920,32 @@ msgstr ""
|
|
907 |
"Klicka <a href=\"%s\">\"Se ett exempel CSV-importfilen\"</a> för att se hur "
|
908 |
"en importfil ska se ut."
|
909 |
|
910 |
-
#: templates/admin/csv-import.tpl.php:
|
911 |
msgctxt "admin csv-import"
|
912 |
msgid "Header name/label"
|
913 |
msgstr "Rubriknamn / etikett"
|
914 |
|
915 |
-
#: templates/admin/csv-import.tpl.php:
|
916 |
msgctxt "admin csv-import"
|
917 |
msgid "Field"
|
918 |
msgstr "Fält"
|
919 |
|
920 |
-
#: templates/admin/csv-import.tpl.php:
|
921 |
msgctxt "admin csv-import"
|
922 |
msgid "Type"
|
923 |
msgstr "Typ"
|
924 |
|
925 |
-
#: templates/admin/csv-import.tpl.php:
|
926 |
msgctxt "admin csv-import"
|
927 |
msgid "Required?"
|
928 |
msgstr "Obligatoriskt?"
|
929 |
|
930 |
-
#: templates/admin/csv-import.tpl.php:
|
931 |
msgctxt "admin csv-import"
|
932 |
msgid "Multivalued?"
|
933 |
msgstr "Fler värden?"
|
934 |
|
935 |
-
#: templates/admin/csv-import.tpl.php:
|
936 |
#, fuzzy
|
937 |
msgctxt "admin csv-import"
|
938 |
msgid ""
|
@@ -942,17 +955,17 @@ msgstr ""
|
|
942 |
"Annonsens utgångsdatum formateras som ÅÅÅÅ-MM-DD. Använd den här kolumnen "
|
943 |
"när du lägger till eller uppdaterar listor från externa källor."
|
944 |
|
945 |
-
#: templates/admin/csv-import.tpl.php:
|
946 |
msgctxt "admin csv-import"
|
947 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
948 |
msgstr "Semikolonseparerad lista med annonsbilder (från ZIP-filen)."
|
949 |
|
950 |
-
#: templates/admin/csv-import.tpl.php:
|
951 |
msgctxt "admin csv-import"
|
952 |
msgid "Listing author's username"
|
953 |
msgstr "Annonsens författares användarnamn"
|
954 |
|
955 |
-
#: templates/admin/csv-import.tpl.php:
|
956 |
msgctxt "admin csv-import"
|
957 |
msgid ""
|
958 |
"Internal Sequence ID used to allow listing updates from external sources."
|
@@ -960,7 +973,7 @@ msgstr ""
|
|
960 |
"Intern sekvens ID som används för att tillåta notering uppdateringar från "
|
961 |
"externa källor."
|
962 |
|
963 |
-
#: templates/admin/csv-import.tpl.php:
|
964 |
msgctxt "admin csv-import"
|
965 |
msgid ""
|
966 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -979,12 +992,12 @@ msgctxt "admin csv"
|
|
979 |
msgid "Export"
|
980 |
msgstr "Exportera"
|
981 |
|
982 |
-
#: includes/admin/class-admin-listings.php:
|
983 |
msgctxt "admin category filter"
|
984 |
msgid "All categories"
|
985 |
msgstr "Alla kategorier"
|
986 |
|
987 |
-
#: includes/admin/class-admin-listings.php:
|
988 |
msgctxt "admin listings"
|
989 |
msgid ""
|
990 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -995,37 +1008,37 @@ msgstr ""
|
|
995 |
"respektive avgift) krävs för att fastställa funktionerna för denna annons, "
|
996 |
"likväl som för att hantera förnyelser."
|
997 |
|
998 |
-
#: includes/admin/class-admin-listings.php:
|
999 |
msgctxt "admin listings"
|
1000 |
msgid "Never"
|
1001 |
msgstr "Aldrig"
|
1002 |
|
1003 |
-
#: includes/admin/class-admin-listings.php:
|
1004 |
msgctxt "admin listings"
|
1005 |
msgid "Featured"
|
1006 |
msgstr "Utvald (fäst)"
|
1007 |
|
1008 |
-
#: includes/admin/class-admin-listings.php:
|
1009 |
msgctxt "admin listings"
|
1010 |
msgid "Recurring"
|
1011 |
msgstr "Återkommande"
|
1012 |
|
1013 |
-
#: includes/admin/class-admin-listings.php:
|
1014 |
msgctxt "admin listings"
|
1015 |
msgid "Free"
|
1016 |
msgstr "Gratis"
|
1017 |
|
1018 |
-
#: includes/admin/class-admin-listings.php:
|
1019 |
msgctxt "admin listings"
|
1020 |
msgid "Paid"
|
1021 |
msgstr "Betald"
|
1022 |
|
1023 |
-
#: includes/admin/class-admin-listings.php:
|
1024 |
msgctxt "admin listings"
|
1025 |
msgid "Reported"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: includes/admin/class-admin-listings.php:
|
1029 |
msgctxt "admin listings"
|
1030 |
msgid "Listing's payment history successfully deleted"
|
1031 |
msgstr ""
|
@@ -1054,12 +1067,12 @@ msgctxt "admin listings"
|
|
1054 |
msgid "Clear listing reports."
|
1055 |
msgstr "En annons förfaller."
|
1056 |
|
1057 |
-
#: includes/admin/class-admin-listings.php:
|
1058 |
msgctxt "admin"
|
1059 |
msgid "Directory Listing Fields / Images"
|
1060 |
msgstr "Annonsfält / bilder"
|
1061 |
|
1062 |
-
#: includes/admin/class-admin-listings.php:
|
1063 |
msgctxt "admin"
|
1064 |
msgid "Categories"
|
1065 |
msgstr "Kategorier"
|
@@ -1254,112 +1267,112 @@ msgctxt "admin"
|
|
1254 |
msgid "Go to \"Manage Fees\""
|
1255 |
msgstr "Gå till \"Hantera formulärfält\""
|
1256 |
|
1257 |
-
#: includes/admin/class-admin-listings.php:
|
1258 |
#, fuzzy
|
1259 |
msgctxt "listing attribute"
|
1260 |
msgid "No Fee Plan"
|
1261 |
msgstr "Avgiftsplan"
|
1262 |
|
1263 |
-
#: includes/admin/class-admin-listings.php:
|
1264 |
msgctxt "listing status"
|
1265 |
msgid "Reported"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
-
#: includes/class-listing.php:
|
1269 |
msgctxt "listing status"
|
1270 |
msgid "Unknown"
|
1271 |
msgstr "Okänd"
|
1272 |
|
1273 |
-
#: includes/class-listing.php:
|
1274 |
msgctxt "listing status"
|
1275 |
msgid "Legacy"
|
1276 |
msgstr "Legat"
|
1277 |
|
1278 |
-
#: includes/class-listing.php:
|
1279 |
msgctxt "listing status"
|
1280 |
msgid "Incomplete"
|
1281 |
msgstr "Ofullständig"
|
1282 |
|
1283 |
-
#: includes/class-listing.php:
|
1284 |
msgctxt "listing status"
|
1285 |
msgid "Pending Payment"
|
1286 |
msgstr "Väntar på betalning."
|
1287 |
|
1288 |
-
#: includes/class-listing.php:
|
1289 |
msgctxt "listing status"
|
1290 |
msgid "Complete"
|
1291 |
msgstr "Genomförd"
|
1292 |
|
1293 |
-
#: includes/class-listing.php:
|
1294 |
msgctxt "listing status"
|
1295 |
msgid "Pending Upgrade"
|
1296 |
msgstr "Väntar på uppgradering"
|
1297 |
|
1298 |
-
#: includes/class-listing.php:
|
1299 |
msgctxt "listing status"
|
1300 |
msgid "Expired"
|
1301 |
msgstr "Utgången"
|
1302 |
|
1303 |
-
#: includes/class-listing.php:
|
1304 |
msgctxt "listing status"
|
1305 |
msgid "Pending Renewal"
|
1306 |
msgstr "Inväntar förnyelse"
|
1307 |
|
1308 |
-
#: includes/class-listing.php:
|
1309 |
msgctxt "listing status"
|
1310 |
msgid "Abandoned"
|
1311 |
msgstr "Övergiven"
|
1312 |
|
1313 |
-
#: includes/admin/class-admin-listings.php:
|
1314 |
msgctxt "admin actions"
|
1315 |
msgid "Edit Listing"
|
1316 |
msgstr "Redigera annons"
|
1317 |
|
1318 |
-
#: includes/admin/class-admin-listings.php:
|
1319 |
msgctxt "admin actions"
|
1320 |
msgid "Delete Listing"
|
1321 |
msgstr "Ta bort annons"
|
1322 |
|
1323 |
-
#: includes/admin/class-admin-listings.php:
|
1324 |
msgctxt "admin actions"
|
1325 |
msgid "View Payments"
|
1326 |
msgstr "Visa betalningar"
|
1327 |
|
1328 |
-
#: includes/admin/class-admin-listings.php:
|
1329 |
msgctxt "admin actions"
|
1330 |
msgid "View Payment"
|
1331 |
msgstr "Visa betalning"
|
1332 |
|
1333 |
-
#: includes/admin/class-admin-listings.php:
|
1334 |
#, fuzzy
|
1335 |
msgctxt "admin actions"
|
1336 |
msgid "Publish listings"
|
1337 |
msgstr "Publicera annons"
|
1338 |
|
1339 |
-
#: includes/admin/class-admin-listings.php:
|
1340 |
#, fuzzy
|
1341 |
msgctxt "admin actions"
|
1342 |
msgid "Mark as \"Pending Review\""
|
1343 |
msgstr "Inväntar granskning"
|
1344 |
|
1345 |
-
#: includes/admin/class-admin-listings.php:
|
1346 |
msgctxt "admin actions"
|
1347 |
msgid "Hide from directory (mark as \"Draft\")"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: includes/admin/class-admin-listings.php:
|
1351 |
#, fuzzy
|
1352 |
msgctxt "admin actions"
|
1353 |
msgid "Renew listings"
|
1354 |
msgstr "Förnya annons"
|
1355 |
|
1356 |
-
#: includes/admin/class-admin-listings.php:
|
1357 |
#, fuzzy
|
1358 |
msgctxt "admin actions"
|
1359 |
msgid "Set listings as \"Expired\""
|
1360 |
msgstr "Skickas efter en annons (%s) har förfallit."
|
1361 |
|
1362 |
-
#: includes/admin/class-admin-listings.php:
|
1363 |
#, fuzzy
|
1364 |
msgctxt "admin actions"
|
1365 |
msgid "Send access keys"
|
@@ -5775,18 +5788,18 @@ msgctxt "listing"
|
|
5775 |
msgid "Listing expired"
|
5776 |
msgstr "Annonsen förfallit."
|
5777 |
|
5778 |
-
#: includes/class-listing.php:
|
5779 |
msgctxt "listing"
|
5780 |
msgid "(Unavailable Plan)"
|
5781 |
msgstr "(Avgiftsplan inte tillgänglig)"
|
5782 |
|
5783 |
-
#: includes/class-listing.php:
|
5784 |
#, fuzzy
|
5785 |
msgctxt "listing"
|
5786 |
msgid "Plan \"%s\" (recurring)"
|
5787 |
msgstr "(återkommande)"
|
5788 |
|
5789 |
-
#: includes/class-listing.php:
|
5790 |
msgctxt "listing"
|
5791 |
msgid "Plan \"%s\""
|
5792 |
msgstr "Plan ”%s”"
|
@@ -8426,7 +8439,7 @@ msgstr "Sök"
|
|
8426 |
#: templates/admin/csv-import.tpl.php:116
|
8427 |
#: templates/admin/csv-import.tpl.php:142
|
8428 |
#: templates/admin/csv-import.tpl.php:153
|
8429 |
-
#: templates/admin/csv-import.tpl.php:
|
8430 |
msgctxt "admin forms"
|
8431 |
msgid "required"
|
8432 |
msgstr "obligatoriskt"
|
5 |
"Project-Id-Version: Business Directory Plugin v5.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/business-"
|
7 |
"directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"PO-Revision-Date: 2017-12-03 21:20+0100\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
16 |
"X-Generator: Poedit 2.0.4\n"
|
17 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
18 |
|
19 |
+
#: includes/admin/class-admin-listings.php:184
|
20 |
msgid "Listing Information"
|
21 |
msgstr "Information om annons"
|
22 |
|
23 |
+
#: includes/admin/class-admin-listings.php:192
|
24 |
msgid "Listing Timeline"
|
25 |
msgstr "Annonsens tidslinje:"
|
26 |
|
27 |
+
#: includes/admin/class-admin-listings.php:210
|
28 |
#, fuzzy
|
29 |
msgid "Listing Reports"
|
30 |
msgstr "Annonsen förfallit."
|
31 |
|
32 |
+
#: includes/admin/class-admin-listings.php:251
|
33 |
msgid "Expires on"
|
34 |
msgstr "Utgår den"
|
35 |
|
36 |
+
#: includes/admin/class-admin-listings.php:259
|
37 |
msgid "Attributes"
|
38 |
msgstr "Attribut"
|
39 |
|
53 |
msgid "Uninstall"
|
54 |
msgstr "Avinstallera"
|
55 |
|
56 |
+
#: includes/admin/class-csv-import.php:633
|
57 |
#, fuzzy
|
58 |
msgid "Listing imported by admin. Payment skipped."
|
59 |
msgstr "Notering skickas in av admin. Betalning hoppas över."
|
492 |
msgid "See an example CSV import file"
|
493 |
msgstr "Se ett exempel av en CSV importfil"
|
494 |
|
495 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
496 |
msgctxt "admin csv-import"
|
497 |
msgid "Help"
|
498 |
msgstr "Hjälp"
|
499 |
|
500 |
+
#: includes/admin/class-csv-import.php:503
|
501 |
msgctxt "admin csv-import"
|
502 |
msgid ""
|
503 |
"Could not create listing category \"<category-name>\". The operation failed "
|
506 |
"Kunde inte skapa annonskategori \"<category-name>\". Åtgärden misslyckades "
|
507 |
"på grund av följande fel: <error-message>"
|
508 |
|
509 |
+
#: includes/admin/class-csv-import.php:509
|
510 |
msgctxt "admin csv-import"
|
511 |
msgid "Could not create listing category \"%s\""
|
512 |
msgstr "Det gick inte att skapa annonskategori \"%s\""
|
513 |
|
514 |
+
#: includes/admin/class-csv-import.php:684
|
515 |
msgctxt "admin csv-import"
|
516 |
msgid "Username \"%s\" does not exist"
|
517 |
msgstr "Användarnamn \"%s\" existerar inte"
|
518 |
|
519 |
+
#: includes/admin/class-csv-import.php:710
|
520 |
msgctxt "admin csv-import"
|
521 |
msgid "The string <string> couldn't be converted into a valid date."
|
522 |
msgstr "Tråden <string> kunde inte omvandlas till ett giltigt datum."
|
523 |
|
524 |
+
#: includes/admin/class-csv-import.php:732
|
525 |
msgctxt "admin csv-import"
|
526 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
527 |
msgstr "Det finns ingen avgiftsplan med ID = <fee-id>"
|
528 |
|
529 |
+
#: includes/admin/class-csv-import.php:755
|
530 |
msgctxt "admin csv-import"
|
531 |
msgid "Missing required field: %s"
|
532 |
msgstr "Saknar det obligatoriska fältet %s"
|
533 |
|
534 |
+
#: includes/admin/class-csv-import.php:780
|
535 |
msgctxt "admin csv-import"
|
536 |
msgid "Listing category \"%s\" does not exist"
|
537 |
msgstr "Annonskategorin \"%s\" existerar inte"
|
788 |
msgstr "Importera inställningar"
|
789 |
|
790 |
#: templates/admin/csv-import.tpl.php:168
|
791 |
+
#, fuzzy
|
792 |
msgctxt "admin csv-import"
|
793 |
+
msgid "Post status of new imported listings"
|
794 |
msgstr "Status av importerade annonser"
|
795 |
|
796 |
+
#: templates/admin/csv-import.tpl.php:183
|
797 |
+
#, fuzzy
|
798 |
+
msgctxt "admin csv-import"
|
799 |
+
msgid "Post status of existing imported listings"
|
800 |
+
msgstr "Status av importerade annonser"
|
801 |
+
|
802 |
+
#: templates/admin/csv-import.tpl.php:187
|
803 |
+
#, fuzzy
|
804 |
+
msgctxt "admin csv-import"
|
805 |
+
msgid "Preserve existing status"
|
806 |
+
msgstr "Annonsstatus"
|
807 |
+
|
808 |
+
#: templates/admin/csv-import.tpl.php:199
|
809 |
msgctxt "admin csv-import"
|
810 |
msgid "Missing categories handling"
|
811 |
msgstr "Hantera saknade kategorier"
|
812 |
|
813 |
+
#: templates/admin/csv-import.tpl.php:204
|
814 |
msgctxt "admin csv-import"
|
815 |
msgid "Auto-create categories"
|
816 |
msgstr "Autoskapa kategorier"
|
817 |
|
818 |
+
#: templates/admin/csv-import.tpl.php:207
|
819 |
msgctxt "admin csv-import"
|
820 |
msgid "Generate errors when a category is not found"
|
821 |
msgstr "Generera fel när en kategori inte hittas"
|
822 |
|
823 |
+
#: templates/admin/csv-import.tpl.php:212
|
824 |
msgctxt "admin csv-import"
|
825 |
msgid "Keep existing listing images?"
|
826 |
msgstr "Behålla befintliga annonsbilder?"
|
827 |
|
828 |
+
#: templates/admin/csv-import.tpl.php:217
|
829 |
msgctxt "admin csv-import"
|
830 |
msgid "Keep existing images."
|
831 |
msgstr "Behåll befintliga bilder."
|
832 |
|
833 |
+
#: templates/admin/csv-import.tpl.php:218
|
834 |
msgctxt "admin csv-import"
|
835 |
msgid "Appends new images while keeping current ones."
|
836 |
msgstr "Lägger till nya bilder och behåller de existerande."
|
837 |
|
838 |
+
#: templates/admin/csv-import.tpl.php:223
|
839 |
msgctxt "admin csv-import"
|
840 |
msgid "Assign listings to a user?"
|
841 |
msgstr "Tilldela annons till användare?"
|
842 |
|
843 |
+
#: templates/admin/csv-import.tpl.php:229
|
844 |
msgctxt "admin csv-import"
|
845 |
msgid "Assign listings to a user."
|
846 |
msgstr "Tilldela annons till användare."
|
847 |
|
848 |
+
#: templates/admin/csv-import.tpl.php:234
|
849 |
msgctxt "admin csv-import"
|
850 |
msgid "Use a default user for listings?"
|
851 |
msgstr "Använd en standardanvändare för annonser?"
|
852 |
|
853 |
+
#: templates/admin/csv-import.tpl.php:240
|
854 |
msgctxt "admin csv-import"
|
855 |
msgid ""
|
856 |
"Select a default user to be used if the username column is not present in "
|
859 |
"Välj en standardanvändare som används om användarkolumnen inte finns i CSV-"
|
860 |
"filen."
|
861 |
|
862 |
+
#: templates/admin/csv-import.tpl.php:245
|
863 |
msgctxt "admin csv-import"
|
864 |
msgid "Default listing user"
|
865 |
msgstr "standardanvändare"
|
866 |
|
867 |
+
#: templates/admin/csv-import.tpl.php:251
|
868 |
msgctxt "admin csv-import"
|
869 |
msgid ""
|
870 |
"This user will be used if the username column is not present in the CSV file."
|
872 |
"Denna användare kommer att användas om användarkolumnen inte finns i CSV-"
|
873 |
"filen."
|
874 |
|
875 |
+
#: templates/admin/csv-import.tpl.php:256
|
876 |
#, fuzzy
|
877 |
msgctxt "admin csv-import"
|
878 |
msgid "Number of listings imported on every cycle"
|
879 |
msgstr "Antal annonser att visa:"
|
880 |
|
881 |
+
#: templates/admin/csv-import.tpl.php:264
|
882 |
msgctxt "admin csv-import"
|
883 |
msgid ""
|
884 |
"If you are having trouble importing listings due to memory problems, try "
|
887 |
"success on shared hosting platforms and other resource-constrained servers."
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: templates/admin/csv-import.tpl.php:269
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid "Disable e-mail notifications during import?"
|
893 |
msgstr "Inaktivera e-postmeddelanden vid import?"
|
894 |
|
895 |
+
#: templates/admin/csv-import.tpl.php:274
|
896 |
msgctxt "admin csv-import"
|
897 |
msgid "Disable e-mail notifications."
|
898 |
msgstr "Inaktivera e-postmeddelanden."
|
899 |
|
900 |
+
#: templates/admin/csv-import.tpl.php:280
|
901 |
msgctxt "admin csv-import"
|
902 |
msgid "Test Import"
|
903 |
msgstr "Testimport"
|
904 |
|
905 |
+
#: templates/admin/csv-import.tpl.php:281
|
906 |
msgctxt "admin csv-import"
|
907 |
msgid "Import Listings"
|
908 |
msgstr "Importera annonser"
|
909 |
|
910 |
+
#: templates/admin/csv-import.tpl.php:289
|
911 |
msgctxt "admin csv-import"
|
912 |
msgid ""
|
913 |
"The following are the valid header names to be used in the CSV file. "
|
920 |
"Klicka <a href=\"%s\">\"Se ett exempel CSV-importfilen\"</a> för att se hur "
|
921 |
"en importfil ska se ut."
|
922 |
|
923 |
+
#: templates/admin/csv-import.tpl.php:296
|
924 |
msgctxt "admin csv-import"
|
925 |
msgid "Header name/label"
|
926 |
msgstr "Rubriknamn / etikett"
|
927 |
|
928 |
+
#: templates/admin/csv-import.tpl.php:297
|
929 |
msgctxt "admin csv-import"
|
930 |
msgid "Field"
|
931 |
msgstr "Fält"
|
932 |
|
933 |
+
#: templates/admin/csv-import.tpl.php:298
|
934 |
msgctxt "admin csv-import"
|
935 |
msgid "Type"
|
936 |
msgstr "Typ"
|
937 |
|
938 |
+
#: templates/admin/csv-import.tpl.php:299
|
939 |
msgctxt "admin csv-import"
|
940 |
msgid "Required?"
|
941 |
msgstr "Obligatoriskt?"
|
942 |
|
943 |
+
#: templates/admin/csv-import.tpl.php:300
|
944 |
msgctxt "admin csv-import"
|
945 |
msgid "Multivalued?"
|
946 |
msgstr "Fler värden?"
|
947 |
|
948 |
+
#: templates/admin/csv-import.tpl.php:322
|
949 |
#, fuzzy
|
950 |
msgctxt "admin csv-import"
|
951 |
msgid ""
|
955 |
"Annonsens utgångsdatum formateras som ÅÅÅÅ-MM-DD. Använd den här kolumnen "
|
956 |
"när du lägger till eller uppdaterar listor från externa källor."
|
957 |
|
958 |
+
#: templates/admin/csv-import.tpl.php:329
|
959 |
msgctxt "admin csv-import"
|
960 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
961 |
msgstr "Semikolonseparerad lista med annonsbilder (från ZIP-filen)."
|
962 |
|
963 |
+
#: templates/admin/csv-import.tpl.php:336
|
964 |
msgctxt "admin csv-import"
|
965 |
msgid "Listing author's username"
|
966 |
msgstr "Annonsens författares användarnamn"
|
967 |
|
968 |
+
#: templates/admin/csv-import.tpl.php:343
|
969 |
msgctxt "admin csv-import"
|
970 |
msgid ""
|
971 |
"Internal Sequence ID used to allow listing updates from external sources."
|
973 |
"Intern sekvens ID som används för att tillåta notering uppdateringar från "
|
974 |
"externa källor."
|
975 |
|
976 |
+
#: templates/admin/csv-import.tpl.php:350
|
977 |
msgctxt "admin csv-import"
|
978 |
msgid ""
|
979 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
992 |
msgid "Export"
|
993 |
msgstr "Exportera"
|
994 |
|
995 |
+
#: includes/admin/class-admin-listings.php:62
|
996 |
msgctxt "admin category filter"
|
997 |
msgid "All categories"
|
998 |
msgstr "Alla kategorier"
|
999 |
|
1000 |
+
#: includes/admin/class-admin-listings.php:177
|
1001 |
msgctxt "admin listings"
|
1002 |
msgid ""
|
1003 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
1008 |
"respektive avgift) krävs för att fastställa funktionerna för denna annons, "
|
1009 |
"likväl som för att hantera förnyelser."
|
1010 |
|
1011 |
+
#: includes/admin/class-admin-listings.php:296
|
1012 |
msgctxt "admin listings"
|
1013 |
msgid "Never"
|
1014 |
msgstr "Aldrig"
|
1015 |
|
1016 |
+
#: includes/admin/class-admin-listings.php:322
|
1017 |
msgctxt "admin listings"
|
1018 |
msgid "Featured"
|
1019 |
msgstr "Utvald (fäst)"
|
1020 |
|
1021 |
+
#: includes/admin/class-admin-listings.php:326
|
1022 |
msgctxt "admin listings"
|
1023 |
msgid "Recurring"
|
1024 |
msgstr "Återkommande"
|
1025 |
|
1026 |
+
#: includes/admin/class-admin-listings.php:330
|
1027 |
msgctxt "admin listings"
|
1028 |
msgid "Free"
|
1029 |
msgstr "Gratis"
|
1030 |
|
1031 |
+
#: includes/admin/class-admin-listings.php:332
|
1032 |
msgctxt "admin listings"
|
1033 |
msgid "Paid"
|
1034 |
msgstr "Betald"
|
1035 |
|
1036 |
+
#: includes/admin/class-admin-listings.php:337
|
1037 |
msgctxt "admin listings"
|
1038 |
msgid "Reported"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: includes/admin/class-admin-listings.php:666
|
1042 |
msgctxt "admin listings"
|
1043 |
msgid "Listing's payment history successfully deleted"
|
1044 |
msgstr ""
|
1067 |
msgid "Clear listing reports."
|
1068 |
msgstr "En annons förfaller."
|
1069 |
|
1070 |
+
#: includes/admin/class-admin-listings.php:200
|
1071 |
msgctxt "admin"
|
1072 |
msgid "Directory Listing Fields / Images"
|
1073 |
msgstr "Annonsfält / bilder"
|
1074 |
|
1075 |
+
#: includes/admin/class-admin-listings.php:250
|
1076 |
msgctxt "admin"
|
1077 |
msgid "Categories"
|
1078 |
msgstr "Kategorier"
|
1267 |
msgid "Go to \"Manage Fees\""
|
1268 |
msgstr "Gå till \"Hantera formulärfält\""
|
1269 |
|
1270 |
+
#: includes/admin/class-admin-listings.php:307
|
1271 |
#, fuzzy
|
1272 |
msgctxt "listing attribute"
|
1273 |
msgid "No Fee Plan"
|
1274 |
msgstr "Avgiftsplan"
|
1275 |
|
1276 |
+
#: includes/admin/class-admin-listings.php:397
|
1277 |
msgctxt "listing status"
|
1278 |
msgid "Reported"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: includes/class-listing.php:776
|
1282 |
msgctxt "listing status"
|
1283 |
msgid "Unknown"
|
1284 |
msgstr "Okänd"
|
1285 |
|
1286 |
+
#: includes/class-listing.php:777
|
1287 |
msgctxt "listing status"
|
1288 |
msgid "Legacy"
|
1289 |
msgstr "Legat"
|
1290 |
|
1291 |
+
#: includes/class-listing.php:778
|
1292 |
msgctxt "listing status"
|
1293 |
msgid "Incomplete"
|
1294 |
msgstr "Ofullständig"
|
1295 |
|
1296 |
+
#: includes/class-listing.php:779
|
1297 |
msgctxt "listing status"
|
1298 |
msgid "Pending Payment"
|
1299 |
msgstr "Väntar på betalning."
|
1300 |
|
1301 |
+
#: includes/class-listing.php:780
|
1302 |
msgctxt "listing status"
|
1303 |
msgid "Complete"
|
1304 |
msgstr "Genomförd"
|
1305 |
|
1306 |
+
#: includes/class-listing.php:781
|
1307 |
msgctxt "listing status"
|
1308 |
msgid "Pending Upgrade"
|
1309 |
msgstr "Väntar på uppgradering"
|
1310 |
|
1311 |
+
#: includes/class-listing.php:782
|
1312 |
msgctxt "listing status"
|
1313 |
msgid "Expired"
|
1314 |
msgstr "Utgången"
|
1315 |
|
1316 |
+
#: includes/class-listing.php:783
|
1317 |
msgctxt "listing status"
|
1318 |
msgid "Pending Renewal"
|
1319 |
msgstr "Inväntar förnyelse"
|
1320 |
|
1321 |
+
#: includes/class-listing.php:784
|
1322 |
msgctxt "listing status"
|
1323 |
msgid "Abandoned"
|
1324 |
msgstr "Övergiven"
|
1325 |
|
1326 |
+
#: includes/admin/class-admin-listings.php:446
|
1327 |
msgctxt "admin actions"
|
1328 |
msgid "Edit Listing"
|
1329 |
msgstr "Redigera annons"
|
1330 |
|
1331 |
+
#: includes/admin/class-admin-listings.php:451
|
1332 |
msgctxt "admin actions"
|
1333 |
msgid "Delete Listing"
|
1334 |
msgstr "Ta bort annons"
|
1335 |
|
1336 |
+
#: includes/admin/class-admin-listings.php:462
|
1337 |
msgctxt "admin actions"
|
1338 |
msgid "View Payments"
|
1339 |
msgstr "Visa betalningar"
|
1340 |
|
1341 |
+
#: includes/admin/class-admin-listings.php:467
|
1342 |
msgctxt "admin actions"
|
1343 |
msgid "View Payment"
|
1344 |
msgstr "Visa betalning"
|
1345 |
|
1346 |
+
#: includes/admin/class-admin-listings.php:605
|
1347 |
#, fuzzy
|
1348 |
msgctxt "admin actions"
|
1349 |
msgid "Publish listings"
|
1350 |
msgstr "Publicera annons"
|
1351 |
|
1352 |
+
#: includes/admin/class-admin-listings.php:606
|
1353 |
#, fuzzy
|
1354 |
msgctxt "admin actions"
|
1355 |
msgid "Mark as \"Pending Review\""
|
1356 |
msgstr "Inväntar granskning"
|
1357 |
|
1358 |
+
#: includes/admin/class-admin-listings.php:607
|
1359 |
msgctxt "admin actions"
|
1360 |
msgid "Hide from directory (mark as \"Draft\")"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: includes/admin/class-admin-listings.php:609
|
1364 |
#, fuzzy
|
1365 |
msgctxt "admin actions"
|
1366 |
msgid "Renew listings"
|
1367 |
msgstr "Förnya annons"
|
1368 |
|
1369 |
+
#: includes/admin/class-admin-listings.php:610
|
1370 |
#, fuzzy
|
1371 |
msgctxt "admin actions"
|
1372 |
msgid "Set listings as \"Expired\""
|
1373 |
msgstr "Skickas efter en annons (%s) har förfallit."
|
1374 |
|
1375 |
+
#: includes/admin/class-admin-listings.php:617
|
1376 |
#, fuzzy
|
1377 |
msgctxt "admin actions"
|
1378 |
msgid "Send access keys"
|
5788 |
msgid "Listing expired"
|
5789 |
msgstr "Annonsen förfallit."
|
5790 |
|
5791 |
+
#: includes/class-listing.php:516
|
5792 |
msgctxt "listing"
|
5793 |
msgid "(Unavailable Plan)"
|
5794 |
msgstr "(Avgiftsplan inte tillgänglig)"
|
5795 |
|
5796 |
+
#: includes/class-listing.php:673
|
5797 |
#, fuzzy
|
5798 |
msgctxt "listing"
|
5799 |
msgid "Plan \"%s\" (recurring)"
|
5800 |
msgstr "(återkommande)"
|
5801 |
|
5802 |
+
#: includes/class-listing.php:675
|
5803 |
msgctxt "listing"
|
5804 |
msgid "Plan \"%s\""
|
5805 |
msgstr "Plan ”%s”"
|
8439 |
#: templates/admin/csv-import.tpl.php:116
|
8440 |
#: templates/admin/csv-import.tpl.php:142
|
8441 |
#: templates/admin/csv-import.tpl.php:153
|
8442 |
+
#: templates/admin/csv-import.tpl.php:199
|
8443 |
msgctxt "admin forms"
|
8444 |
msgid "required"
|
8445 |
msgstr "obligatoriskt"
|
languages/WPBDM.pot
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
# This file is distributed under the GPLv2 or any later version.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Business Directory Plugin 5.
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/business-directory-plugin\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -14,23 +14,23 @@ msgstr ""
|
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
"X-Generator: grunt-wp-i18n1.0.1\n"
|
16 |
|
17 |
-
#: includes/admin/class-admin-listings.php:
|
18 |
msgid "Listing Information"
|
19 |
msgstr ""
|
20 |
|
21 |
-
#: includes/admin/class-admin-listings.php:
|
22 |
msgid "Listing Timeline"
|
23 |
msgstr ""
|
24 |
|
25 |
-
#: includes/admin/class-admin-listings.php:
|
26 |
msgid "Listing Reports"
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: includes/admin/class-admin-listings.php:
|
30 |
msgid "Expires on"
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: includes/admin/class-admin-listings.php:
|
34 |
msgid "Attributes"
|
35 |
msgstr ""
|
36 |
|
@@ -48,7 +48,7 @@ msgstr ""
|
|
48 |
msgid "Uninstall"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: includes/admin/class-csv-import.php:
|
52 |
msgid "Listing imported by admin. Payment skipped."
|
53 |
msgstr ""
|
54 |
|
@@ -455,44 +455,44 @@ msgctxt "admin csv-import"
|
|
455 |
msgid "See an example CSV import file"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:
|
459 |
msgctxt "admin csv-import"
|
460 |
msgid "Help"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: includes/admin/class-csv-import.php:
|
464 |
msgctxt "admin csv-import"
|
465 |
msgid ""
|
466 |
"Could not create listing category \"<category-name>\". The operation failed "
|
467 |
"with the following error: <error-message>."
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: includes/admin/class-csv-import.php:
|
471 |
msgctxt "admin csv-import"
|
472 |
msgid "Could not create listing category \"%s\""
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: includes/admin/class-csv-import.php:
|
476 |
msgctxt "admin csv-import"
|
477 |
msgid "Username \"%s\" does not exist"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: includes/admin/class-csv-import.php:
|
481 |
msgctxt "admin csv-import"
|
482 |
msgid "The string <string> couldn't be converted into a valid date."
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: includes/admin/class-csv-import.php:
|
486 |
msgctxt "admin csv-import"
|
487 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: includes/admin/class-csv-import.php:
|
491 |
msgctxt "admin csv-import"
|
492 |
msgid "Missing required field: %s"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: includes/admin/class-csv-import.php:
|
496 |
msgctxt "admin csv-import"
|
497 |
msgid "Listing category \"%s\" does not exist"
|
498 |
msgstr ""
|
@@ -742,79 +742,89 @@ msgstr ""
|
|
742 |
|
743 |
#: templates/admin/csv-import.tpl.php:168
|
744 |
msgctxt "admin csv-import"
|
745 |
-
msgid "Post status of imported listings"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: templates/admin/csv-import.tpl.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
msgctxt "admin csv-import"
|
750 |
msgid "Missing categories handling"
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: templates/admin/csv-import.tpl.php:
|
754 |
msgctxt "admin csv-import"
|
755 |
msgid "Auto-create categories"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: templates/admin/csv-import.tpl.php:
|
759 |
msgctxt "admin csv-import"
|
760 |
msgid "Generate errors when a category is not found"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: templates/admin/csv-import.tpl.php:
|
764 |
msgctxt "admin csv-import"
|
765 |
msgid "Keep existing listing images?"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: templates/admin/csv-import.tpl.php:
|
769 |
msgctxt "admin csv-import"
|
770 |
msgid "Keep existing images."
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: templates/admin/csv-import.tpl.php:
|
774 |
msgctxt "admin csv-import"
|
775 |
msgid "Appends new images while keeping current ones."
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: templates/admin/csv-import.tpl.php:
|
779 |
msgctxt "admin csv-import"
|
780 |
msgid "Assign listings to a user?"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: templates/admin/csv-import.tpl.php:
|
784 |
msgctxt "admin csv-import"
|
785 |
msgid "Assign listings to a user."
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: templates/admin/csv-import.tpl.php:
|
789 |
msgctxt "admin csv-import"
|
790 |
msgid "Use a default user for listings?"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: templates/admin/csv-import.tpl.php:
|
794 |
msgctxt "admin csv-import"
|
795 |
msgid ""
|
796 |
"Select a default user to be used if the username column is not present in "
|
797 |
"the CSV file."
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: templates/admin/csv-import.tpl.php:
|
801 |
msgctxt "admin csv-import"
|
802 |
msgid "Default listing user"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: templates/admin/csv-import.tpl.php:
|
806 |
msgctxt "admin csv-import"
|
807 |
msgid ""
|
808 |
"This user will be used if the username column is not present in the CSV "
|
809 |
"file."
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: templates/admin/csv-import.tpl.php:
|
813 |
msgctxt "admin csv-import"
|
814 |
msgid "Number of listings imported on every cycle"
|
815 |
msgstr ""
|
816 |
|
817 |
-
#: templates/admin/csv-import.tpl.php:
|
818 |
msgctxt "admin csv-import"
|
819 |
msgid ""
|
820 |
"If you are having trouble importing listings due to memory problems, try "
|
@@ -823,27 +833,27 @@ msgid ""
|
|
823 |
"success on shared hosting platforms and other resource-constrained servers."
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: templates/admin/csv-import.tpl.php:
|
827 |
msgctxt "admin csv-import"
|
828 |
msgid "Disable e-mail notifications during import?"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: templates/admin/csv-import.tpl.php:
|
832 |
msgctxt "admin csv-import"
|
833 |
msgid "Disable e-mail notifications."
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: templates/admin/csv-import.tpl.php:
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Test Import"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: templates/admin/csv-import.tpl.php:
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Import Listings"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: templates/admin/csv-import.tpl.php:
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid ""
|
849 |
"The following are the valid header names to be used in the CSV file. "
|
@@ -852,54 +862,54 @@ msgid ""
|
|
852 |
"see how an import file should look like."
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: templates/admin/csv-import.tpl.php:
|
856 |
msgctxt "admin csv-import"
|
857 |
msgid "Header name/label"
|
858 |
msgstr ""
|
859 |
|
860 |
-
#: templates/admin/csv-import.tpl.php:
|
861 |
msgctxt "admin csv-import"
|
862 |
msgid "Field"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: templates/admin/csv-import.tpl.php:
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Type"
|
868 |
msgstr ""
|
869 |
|
870 |
-
#: templates/admin/csv-import.tpl.php:
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid "Required?"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: templates/admin/csv-import.tpl.php:
|
876 |
msgctxt "admin csv-import"
|
877 |
msgid "Multivalued?"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: templates/admin/csv-import.tpl.php:
|
881 |
msgctxt "admin csv-import"
|
882 |
msgid ""
|
883 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
884 |
"updating listings from external sources."
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: templates/admin/csv-import.tpl.php:
|
888 |
msgctxt "admin csv-import"
|
889 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: templates/admin/csv-import.tpl.php:
|
893 |
msgctxt "admin csv-import"
|
894 |
msgid "Listing author's username"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: templates/admin/csv-import.tpl.php:
|
898 |
msgctxt "admin csv-import"
|
899 |
msgid "Internal Sequence ID used to allow listing updates from external sources."
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: templates/admin/csv-import.tpl.php:
|
903 |
msgctxt "admin csv-import"
|
904 |
msgid ""
|
905 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
@@ -916,12 +926,12 @@ msgctxt "admin csv"
|
|
916 |
msgid "Export"
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: includes/admin/class-admin-listings.php:
|
920 |
msgctxt "admin category filter"
|
921 |
msgid "All categories"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: includes/admin/class-admin-listings.php:
|
925 |
msgctxt "admin listings"
|
926 |
msgid ""
|
927 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
@@ -929,37 +939,37 @@ msgid ""
|
|
929 |
"renewals."
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: includes/admin/class-admin-listings.php:
|
933 |
msgctxt "admin listings"
|
934 |
msgid "Never"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: includes/admin/class-admin-listings.php:
|
938 |
msgctxt "admin listings"
|
939 |
msgid "Featured"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: includes/admin/class-admin-listings.php:
|
943 |
msgctxt "admin listings"
|
944 |
msgid "Recurring"
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: includes/admin/class-admin-listings.php:
|
948 |
msgctxt "admin listings"
|
949 |
msgid "Free"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: includes/admin/class-admin-listings.php:
|
953 |
msgctxt "admin listings"
|
954 |
msgid "Paid"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/admin/class-admin-listings.php:
|
958 |
msgctxt "admin listings"
|
959 |
msgid "Reported"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: includes/admin/class-admin-listings.php:
|
963 |
msgctxt "admin listings"
|
964 |
msgid "Listing's payment history successfully deleted"
|
965 |
msgstr ""
|
@@ -984,12 +994,12 @@ msgctxt "admin listings"
|
|
984 |
msgid "Clear listing reports."
|
985 |
msgstr ""
|
986 |
|
987 |
-
#: includes/admin/class-admin-listings.php:
|
988 |
msgctxt "admin"
|
989 |
msgid "Directory Listing Fields / Images"
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: includes/admin/class-admin-listings.php:
|
993 |
msgctxt "admin"
|
994 |
msgid "Categories"
|
995 |
msgstr ""
|
@@ -1164,107 +1174,107 @@ msgctxt "admin"
|
|
1164 |
msgid "Go to \"Manage Fees\""
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: includes/admin/class-admin-listings.php:
|
1168 |
msgctxt "listing attribute"
|
1169 |
msgid "No Fee Plan"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: includes/admin/class-admin-listings.php:
|
1173 |
msgctxt "listing status"
|
1174 |
msgid "Reported"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: includes/class-listing.php:
|
1178 |
msgctxt "listing status"
|
1179 |
msgid "Unknown"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: includes/class-listing.php:
|
1183 |
msgctxt "listing status"
|
1184 |
msgid "Legacy"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: includes/class-listing.php:
|
1188 |
msgctxt "listing status"
|
1189 |
msgid "Incomplete"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#: includes/class-listing.php:
|
1193 |
msgctxt "listing status"
|
1194 |
msgid "Pending Payment"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: includes/class-listing.php:
|
1198 |
msgctxt "listing status"
|
1199 |
msgid "Complete"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: includes/class-listing.php:
|
1203 |
msgctxt "listing status"
|
1204 |
msgid "Pending Upgrade"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: includes/class-listing.php:
|
1208 |
msgctxt "listing status"
|
1209 |
msgid "Expired"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#: includes/class-listing.php:
|
1213 |
msgctxt "listing status"
|
1214 |
msgid "Pending Renewal"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: includes/class-listing.php:
|
1218 |
msgctxt "listing status"
|
1219 |
msgid "Abandoned"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: includes/admin/class-admin-listings.php:
|
1223 |
msgctxt "admin actions"
|
1224 |
msgid "Edit Listing"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: includes/admin/class-admin-listings.php:
|
1228 |
msgctxt "admin actions"
|
1229 |
msgid "Delete Listing"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
-
#: includes/admin/class-admin-listings.php:
|
1233 |
msgctxt "admin actions"
|
1234 |
msgid "View Payments"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: includes/admin/class-admin-listings.php:
|
1238 |
msgctxt "admin actions"
|
1239 |
msgid "View Payment"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: includes/admin/class-admin-listings.php:
|
1243 |
msgctxt "admin actions"
|
1244 |
msgid "Publish listings"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: includes/admin/class-admin-listings.php:
|
1248 |
msgctxt "admin actions"
|
1249 |
msgid "Mark as \"Pending Review\""
|
1250 |
msgstr ""
|
1251 |
|
1252 |
-
#: includes/admin/class-admin-listings.php:
|
1253 |
msgctxt "admin actions"
|
1254 |
msgid "Hide from directory (mark as \"Draft\")"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: includes/admin/class-admin-listings.php:
|
1258 |
msgctxt "admin actions"
|
1259 |
msgid "Renew listings"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: includes/admin/class-admin-listings.php:
|
1263 |
msgctxt "admin actions"
|
1264 |
msgid "Set listings as \"Expired\""
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: includes/admin/class-admin-listings.php:
|
1268 |
msgctxt "admin actions"
|
1269 |
msgid "Send access keys"
|
1270 |
msgstr ""
|
@@ -5410,17 +5420,17 @@ msgctxt "listing"
|
|
5410 |
msgid "Listing expired"
|
5411 |
msgstr ""
|
5412 |
|
5413 |
-
#: includes/class-listing.php:
|
5414 |
msgctxt "listing"
|
5415 |
msgid "(Unavailable Plan)"
|
5416 |
msgstr ""
|
5417 |
|
5418 |
-
#: includes/class-listing.php:
|
5419 |
msgctxt "listing"
|
5420 |
msgid "Plan \"%s\" (recurring)"
|
5421 |
msgstr ""
|
5422 |
|
5423 |
-
#: includes/class-listing.php:
|
5424 |
msgctxt "listing"
|
5425 |
msgid "Plan \"%s\""
|
5426 |
msgstr ""
|
@@ -7873,7 +7883,7 @@ msgstr ""
|
|
7873 |
#: templates/admin/csv-import.tpl.php:116
|
7874 |
#: templates/admin/csv-import.tpl.php:142
|
7875 |
#: templates/admin/csv-import.tpl.php:153
|
7876 |
-
#: templates/admin/csv-import.tpl.php:
|
7877 |
msgctxt "admin forms"
|
7878 |
msgid "required"
|
7879 |
msgstr ""
|
2 |
# This file is distributed under the GPLv2 or any later version.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Business Directory Plugin 5.6dev1\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/business-directory-plugin\n"
|
8 |
+
"POT-Creation-Date: 2020-02-11 22:14:55+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
"X-Generator: grunt-wp-i18n1.0.1\n"
|
16 |
|
17 |
+
#: includes/admin/class-admin-listings.php:184
|
18 |
msgid "Listing Information"
|
19 |
msgstr ""
|
20 |
|
21 |
+
#: includes/admin/class-admin-listings.php:192
|
22 |
msgid "Listing Timeline"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: includes/admin/class-admin-listings.php:210
|
26 |
msgid "Listing Reports"
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: includes/admin/class-admin-listings.php:251
|
30 |
msgid "Expires on"
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: includes/admin/class-admin-listings.php:259
|
34 |
msgid "Attributes"
|
35 |
msgstr ""
|
36 |
|
48 |
msgid "Uninstall"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: includes/admin/class-csv-import.php:633
|
52 |
msgid "Listing imported by admin. Payment skipped."
|
53 |
msgstr ""
|
54 |
|
455 |
msgid "See an example CSV import file"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: includes/admin/class-admin-csv.php:39 templates/admin/csv-import.tpl.php:287
|
459 |
msgctxt "admin csv-import"
|
460 |
msgid "Help"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: includes/admin/class-csv-import.php:503
|
464 |
msgctxt "admin csv-import"
|
465 |
msgid ""
|
466 |
"Could not create listing category \"<category-name>\". The operation failed "
|
467 |
"with the following error: <error-message>."
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: includes/admin/class-csv-import.php:509
|
471 |
msgctxt "admin csv-import"
|
472 |
msgid "Could not create listing category \"%s\""
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: includes/admin/class-csv-import.php:684
|
476 |
msgctxt "admin csv-import"
|
477 |
msgid "Username \"%s\" does not exist"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: includes/admin/class-csv-import.php:710
|
481 |
msgctxt "admin csv-import"
|
482 |
msgid "The string <string> couldn't be converted into a valid date."
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: includes/admin/class-csv-import.php:732
|
486 |
msgctxt "admin csv-import"
|
487 |
msgid "There is no Fee Plan with ID = <fee-id>"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: includes/admin/class-csv-import.php:755
|
491 |
msgctxt "admin csv-import"
|
492 |
msgid "Missing required field: %s"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: includes/admin/class-csv-import.php:780
|
496 |
msgctxt "admin csv-import"
|
497 |
msgid "Listing category \"%s\" does not exist"
|
498 |
msgstr ""
|
742 |
|
743 |
#: templates/admin/csv-import.tpl.php:168
|
744 |
msgctxt "admin csv-import"
|
745 |
+
msgid "Post status of new imported listings"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: templates/admin/csv-import.tpl.php:183
|
749 |
+
msgctxt "admin csv-import"
|
750 |
+
msgid "Post status of existing imported listings"
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: templates/admin/csv-import.tpl.php:187
|
754 |
+
msgctxt "admin csv-import"
|
755 |
+
msgid "Preserve existing status"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: templates/admin/csv-import.tpl.php:199
|
759 |
msgctxt "admin csv-import"
|
760 |
msgid "Missing categories handling"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: templates/admin/csv-import.tpl.php:204
|
764 |
msgctxt "admin csv-import"
|
765 |
msgid "Auto-create categories"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: templates/admin/csv-import.tpl.php:207
|
769 |
msgctxt "admin csv-import"
|
770 |
msgid "Generate errors when a category is not found"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: templates/admin/csv-import.tpl.php:212
|
774 |
msgctxt "admin csv-import"
|
775 |
msgid "Keep existing listing images?"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: templates/admin/csv-import.tpl.php:217
|
779 |
msgctxt "admin csv-import"
|
780 |
msgid "Keep existing images."
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: templates/admin/csv-import.tpl.php:218
|
784 |
msgctxt "admin csv-import"
|
785 |
msgid "Appends new images while keeping current ones."
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: templates/admin/csv-import.tpl.php:223
|
789 |
msgctxt "admin csv-import"
|
790 |
msgid "Assign listings to a user?"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: templates/admin/csv-import.tpl.php:229
|
794 |
msgctxt "admin csv-import"
|
795 |
msgid "Assign listings to a user."
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: templates/admin/csv-import.tpl.php:234
|
799 |
msgctxt "admin csv-import"
|
800 |
msgid "Use a default user for listings?"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: templates/admin/csv-import.tpl.php:240
|
804 |
msgctxt "admin csv-import"
|
805 |
msgid ""
|
806 |
"Select a default user to be used if the username column is not present in "
|
807 |
"the CSV file."
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: templates/admin/csv-import.tpl.php:245
|
811 |
msgctxt "admin csv-import"
|
812 |
msgid "Default listing user"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: templates/admin/csv-import.tpl.php:251
|
816 |
msgctxt "admin csv-import"
|
817 |
msgid ""
|
818 |
"This user will be used if the username column is not present in the CSV "
|
819 |
"file."
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: templates/admin/csv-import.tpl.php:256
|
823 |
msgctxt "admin csv-import"
|
824 |
msgid "Number of listings imported on every cycle"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: templates/admin/csv-import.tpl.php:264
|
828 |
msgctxt "admin csv-import"
|
829 |
msgid ""
|
830 |
"If you are having trouble importing listings due to memory problems, try "
|
833 |
"success on shared hosting platforms and other resource-constrained servers."
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: templates/admin/csv-import.tpl.php:269
|
837 |
msgctxt "admin csv-import"
|
838 |
msgid "Disable e-mail notifications during import?"
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: templates/admin/csv-import.tpl.php:274
|
842 |
msgctxt "admin csv-import"
|
843 |
msgid "Disable e-mail notifications."
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: templates/admin/csv-import.tpl.php:280
|
847 |
msgctxt "admin csv-import"
|
848 |
msgid "Test Import"
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: templates/admin/csv-import.tpl.php:281
|
852 |
msgctxt "admin csv-import"
|
853 |
msgid "Import Listings"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: templates/admin/csv-import.tpl.php:289
|
857 |
msgctxt "admin csv-import"
|
858 |
msgid ""
|
859 |
"The following are the valid header names to be used in the CSV file. "
|
862 |
"see how an import file should look like."
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: templates/admin/csv-import.tpl.php:296
|
866 |
msgctxt "admin csv-import"
|
867 |
msgid "Header name/label"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: templates/admin/csv-import.tpl.php:297
|
871 |
msgctxt "admin csv-import"
|
872 |
msgid "Field"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: templates/admin/csv-import.tpl.php:298
|
876 |
msgctxt "admin csv-import"
|
877 |
msgid "Type"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: templates/admin/csv-import.tpl.php:299
|
881 |
msgctxt "admin csv-import"
|
882 |
msgid "Required?"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: templates/admin/csv-import.tpl.php:300
|
886 |
msgctxt "admin csv-import"
|
887 |
msgid "Multivalued?"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: templates/admin/csv-import.tpl.php:322
|
891 |
msgctxt "admin csv-import"
|
892 |
msgid ""
|
893 |
"Fee ID (integer) associated to a listing. Use this column when adding or "
|
894 |
"updating listings from external sources."
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: templates/admin/csv-import.tpl.php:329
|
898 |
msgctxt "admin csv-import"
|
899 |
msgid "Semicolon separated list of listing images (from the ZIP file)"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: templates/admin/csv-import.tpl.php:336
|
903 |
msgctxt "admin csv-import"
|
904 |
msgid "Listing author's username"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: templates/admin/csv-import.tpl.php:343
|
908 |
msgctxt "admin csv-import"
|
909 |
msgid "Internal Sequence ID used to allow listing updates from external sources."
|
910 |
msgstr ""
|
911 |
|
912 |
+
#: templates/admin/csv-import.tpl.php:350
|
913 |
msgctxt "admin csv-import"
|
914 |
msgid ""
|
915 |
"Date of listing expiration formatted as YYYY-MM-DD. Use this column when "
|
926 |
msgid "Export"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: includes/admin/class-admin-listings.php:62
|
930 |
msgctxt "admin category filter"
|
931 |
msgid "All categories"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: includes/admin/class-admin-listings.php:177
|
935 |
msgctxt "admin listings"
|
936 |
msgid ""
|
937 |
"This listing doesn't have a fee plan assigned. This is required in order to "
|
939 |
"renewals."
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: includes/admin/class-admin-listings.php:296
|
943 |
msgctxt "admin listings"
|
944 |
msgid "Never"
|
945 |
msgstr ""
|
946 |
|
947 |
+
#: includes/admin/class-admin-listings.php:322
|
948 |
msgctxt "admin listings"
|
949 |
msgid "Featured"
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: includes/admin/class-admin-listings.php:326
|
953 |
msgctxt "admin listings"
|
954 |
msgid "Recurring"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: includes/admin/class-admin-listings.php:330
|
958 |
msgctxt "admin listings"
|
959 |
msgid "Free"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: includes/admin/class-admin-listings.php:332
|
963 |
msgctxt "admin listings"
|
964 |
msgid "Paid"
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: includes/admin/class-admin-listings.php:337
|
968 |
msgctxt "admin listings"
|
969 |
msgid "Reported"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: includes/admin/class-admin-listings.php:666
|
973 |
msgctxt "admin listings"
|
974 |
msgid "Listing's payment history successfully deleted"
|
975 |
msgstr ""
|
994 |
msgid "Clear listing reports."
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: includes/admin/class-admin-listings.php:200
|
998 |
msgctxt "admin"
|
999 |
msgid "Directory Listing Fields / Images"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: includes/admin/class-admin-listings.php:250
|
1003 |
msgctxt "admin"
|
1004 |
msgid "Categories"
|
1005 |
msgstr ""
|
1174 |
msgid "Go to \"Manage Fees\""
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#: includes/admin/class-admin-listings.php:307
|
1178 |
msgctxt "listing attribute"
|
1179 |
msgid "No Fee Plan"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: includes/admin/class-admin-listings.php:397
|
1183 |
msgctxt "listing status"
|
1184 |
msgid "Reported"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: includes/class-listing.php:776
|
1188 |
msgctxt "listing status"
|
1189 |
msgid "Unknown"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
+
#: includes/class-listing.php:777
|
1193 |
msgctxt "listing status"
|
1194 |
msgid "Legacy"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: includes/class-listing.php:778
|
1198 |
msgctxt "listing status"
|
1199 |
msgid "Incomplete"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
+
#: includes/class-listing.php:779
|
1203 |
msgctxt "listing status"
|
1204 |
msgid "Pending Payment"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
+
#: includes/class-listing.php:780
|
1208 |
msgctxt "listing status"
|
1209 |
msgid "Complete"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: includes/class-listing.php:781
|
1213 |
msgctxt "listing status"
|
1214 |
msgid "Pending Upgrade"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: includes/class-listing.php:782
|
1218 |
msgctxt "listing status"
|
1219 |
msgid "Expired"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: includes/class-listing.php:783
|
1223 |
msgctxt "listing status"
|
1224 |
msgid "Pending Renewal"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
+
#: includes/class-listing.php:784
|
1228 |
msgctxt "listing status"
|
1229 |
msgid "Abandoned"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: includes/admin/class-admin-listings.php:446
|
1233 |
msgctxt "admin actions"
|
1234 |
msgid "Edit Listing"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: includes/admin/class-admin-listings.php:451
|
1238 |
msgctxt "admin actions"
|
1239 |
msgid "Delete Listing"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: includes/admin/class-admin-listings.php:462
|
1243 |
msgctxt "admin actions"
|
1244 |
msgid "View Payments"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: includes/admin/class-admin-listings.php:467
|
1248 |
msgctxt "admin actions"
|
1249 |
msgid "View Payment"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: includes/admin/class-admin-listings.php:605
|
1253 |
msgctxt "admin actions"
|
1254 |
msgid "Publish listings"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: includes/admin/class-admin-listings.php:606
|
1258 |
msgctxt "admin actions"
|
1259 |
msgid "Mark as \"Pending Review\""
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: includes/admin/class-admin-listings.php:607
|
1263 |
msgctxt "admin actions"
|
1264 |
msgid "Hide from directory (mark as \"Draft\")"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: includes/admin/class-admin-listings.php:609
|
1268 |
msgctxt "admin actions"
|
1269 |
msgid "Renew listings"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: includes/admin/class-admin-listings.php:610
|
1273 |
msgctxt "admin actions"
|
1274 |
msgid "Set listings as \"Expired\""
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: includes/admin/class-admin-listings.php:617
|
1278 |
msgctxt "admin actions"
|
1279 |
msgid "Send access keys"
|
1280 |
msgstr ""
|
5420 |
msgid "Listing expired"
|
5421 |
msgstr ""
|
5422 |
|
5423 |
+
#: includes/class-listing.php:516
|
5424 |
msgctxt "listing"
|
5425 |
msgid "(Unavailable Plan)"
|
5426 |
msgstr ""
|
5427 |
|
5428 |
+
#: includes/class-listing.php:673
|
5429 |
msgctxt "listing"
|
5430 |
msgid "Plan \"%s\" (recurring)"
|
5431 |
msgstr ""
|
5432 |
|
5433 |
+
#: includes/class-listing.php:675
|
5434 |
msgctxt "listing"
|
5435 |
msgid "Plan \"%s\""
|
5436 |
msgstr ""
|
7883 |
#: templates/admin/csv-import.tpl.php:116
|
7884 |
#: templates/admin/csv-import.tpl.php:142
|
7885 |
#: templates/admin/csv-import.tpl.php:153
|
7886 |
+
#: templates/admin/csv-import.tpl.php:199
|
7887 |
msgctxt "admin forms"
|
7888 |
msgid "required"
|
7889 |
msgstr ""
|
templates/admin/csv-import.tpl.php
CHANGED
@@ -165,12 +165,31 @@ echo str_replace(
|
|
165 |
<table class="form-table">
|
166 |
<tr class="form-required">
|
167 |
<th scope="row">
|
168 |
-
<label> <?php _ex('Post status of imported listings', 'admin csv-import', 'WPBDM'); ?></label>
|
169 |
</th>
|
170 |
<td>
|
171 |
<select name="settings[post-status]">
|
172 |
<?php foreach ( get_post_statuses() as $post_status => $post_status_label ): ?>
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
<?php endforeach; ?>
|
175 |
</select>
|
176 |
</td>
|
165 |
<table class="form-table">
|
166 |
<tr class="form-required">
|
167 |
<th scope="row">
|
168 |
+
<label> <?php _ex('Post status of new imported listings', 'admin csv-import', 'WPBDM'); ?></label>
|
169 |
</th>
|
170 |
<td>
|
171 |
<select name="settings[post-status]">
|
172 |
<?php foreach ( get_post_statuses() as $post_status => $post_status_label ): ?>
|
173 |
+
<?php if ( ! in_array( $post_status, array( 'publish', 'pending' ) ) ) : ?>
|
174 |
+
<?php continue; ?>
|
175 |
+
<?php endif; ?>
|
176 |
+
<option value="<?php echo $post_status; ?>" <?php echo _defaults_or( $defaults, 'post-status', 'publish' ) == $post_status ? 'selected="selected"' : ''; ?>><?php echo $post_status_label; ?></option>
|
177 |
+
<?php endforeach; ?>
|
178 |
+
</select>
|
179 |
+
</td>
|
180 |
+
</tr>
|
181 |
+
<tr class="form-required">
|
182 |
+
<th scope="row">
|
183 |
+
<label> <?php _ex('Post status of existing imported listings', 'admin csv-import', 'WPBDM'); ?></label>
|
184 |
+
</th>
|
185 |
+
<td>
|
186 |
+
<select name="settings[existing-post-status]">
|
187 |
+
<option value="preserve_status" <?php echo _defaults_or( $defaults, 'existing-post-status', 'preserve_status' ) == 'preserve_status' ? 'selected="selected"' : ''; ?>><?php _ex( 'Preserve existing status', 'admin csv-import', 'WPBDM' ); ?></option>
|
188 |
+
<?php foreach ( get_post_statuses() as $post_status => $post_status_label ): ?>
|
189 |
+
<?php if ( ! in_array( $post_status, array( 'publish', 'pending' ) ) ) : ?>
|
190 |
+
<?php continue; ?>
|
191 |
+
<?php endif; ?>
|
192 |
+
<option value="<?php echo $post_status; ?>" <?php echo _defaults_or( $defaults, 'existing-post-status', 'preserve_status' ) == $post_status ? 'selected="selected"' : ''; ?>><?php echo $post_status_label; ?></option>
|
193 |
<?php endforeach; ?>
|
194 |
</select>
|
195 |
</td>
|
vendors/jQuery-File-Upload-9.32.0/.jshintrc
DELETED
@@ -1,81 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
|
3 |
-
"camelcase" : true, // true: Identifiers must be in camelCase
|
4 |
-
"curly" : true, // true: Require {} for every new block or scope
|
5 |
-
"eqeqeq" : true, // true: Require triple equals (===) for comparison
|
6 |
-
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
|
7 |
-
"immed" : true, // true: Require immediate invocations to be wrapped in parens
|
8 |
-
// e.g. `(function () { } ());`
|
9 |
-
"indent" : 4, // {int} Number of spaces to use for indentation
|
10 |
-
"latedef" : true, // true: Require variables/functions to be defined before being used
|
11 |
-
"newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()`
|
12 |
-
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
|
13 |
-
"noempty" : true, // true: Prohibit use of empty blocks
|
14 |
-
"nonew" : true, // true: Prohibit use of constructors for side-effects (without assignment)
|
15 |
-
"plusplus" : false, // true: Prohibit use of `++` & `--`
|
16 |
-
"quotmark" : "single", // Quotation mark consistency:
|
17 |
-
// false : do nothing (default)
|
18 |
-
// true : ensure whatever is used is consistent
|
19 |
-
// "single" : require single quotes
|
20 |
-
// "double" : require double quotes
|
21 |
-
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
|
22 |
-
"unused" : true, // true: Require all defined variables be used
|
23 |
-
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
|
24 |
-
"trailing" : true, // true: Prohibit trailing whitespaces
|
25 |
-
"maxparams" : false, // {int} Max number of formal params allowed per function
|
26 |
-
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
|
27 |
-
"maxstatements" : false, // {int} Max number statements per function
|
28 |
-
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
|
29 |
-
"maxlen" : false, // {int} Max number of characters per line
|
30 |
-
|
31 |
-
// Relaxing
|
32 |
-
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
|
33 |
-
"boss" : false, // true: Tolerate assignments where comparisons would be expected
|
34 |
-
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
|
35 |
-
"eqnull" : false, // true: Tolerate use of `== null`
|
36 |
-
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
|
37 |
-
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
|
38 |
-
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
|
39 |
-
// (ex: `for each`, multiple try/catch, function expression…)
|
40 |
-
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
|
41 |
-
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
|
42 |
-
"funcscope" : false, // true: Tolerate defining variables inside control statements"
|
43 |
-
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
|
44 |
-
"iterator" : false, // true: Tolerate using the `__iterator__` property
|
45 |
-
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
|
46 |
-
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
|
47 |
-
"laxcomma" : false, // true: Tolerate comma-first style coding
|
48 |
-
"loopfunc" : false, // true: Tolerate functions being defined in loops
|
49 |
-
"multistr" : false, // true: Tolerate multi-line strings
|
50 |
-
"proto" : false, // true: Tolerate using the `__proto__` property
|
51 |
-
"scripturl" : false, // true: Tolerate script-targeted URLs
|
52 |
-
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
|
53 |
-
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
|
54 |
-
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
|
55 |
-
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
|
56 |
-
"validthis" : false, // true: Tolerate using this in a non-constructor function
|
57 |
-
|
58 |
-
// Environments
|
59 |
-
"browser" : false, // Web Browser (window, document, etc)
|
60 |
-
"couch" : false, // CouchDB
|
61 |
-
"devel" : false, // Development/debugging (alert, confirm, etc)
|
62 |
-
"dojo" : false, // Dojo Toolkit
|
63 |
-
"jquery" : false, // jQuery
|
64 |
-
"mootools" : false, // MooTools
|
65 |
-
"node" : false, // Node.js
|
66 |
-
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
|
67 |
-
"prototypejs" : false, // Prototype and Scriptaculous
|
68 |
-
"rhino" : false, // Rhino
|
69 |
-
"worker" : false, // Web Workers
|
70 |
-
"wsh" : false, // Windows Scripting Host
|
71 |
-
"yui" : false, // Yahoo User Interface
|
72 |
-
|
73 |
-
// Legacy
|
74 |
-
"nomen" : true, // true: Prohibit dangling `_` in variables
|
75 |
-
"onevar" : true, // true: Allow only one `var` statement per function
|
76 |
-
"passfail" : false, // true: Stop on first error
|
77 |
-
"white" : true, // true: Check against strict whitespace and indentation rules
|
78 |
-
|
79 |
-
// Custom Globals
|
80 |
-
"globals" : {} // additional predefined global variables
|
81 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/.npmignore
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
*
|
2 |
-
!css/jquery.fileupload-noscript.css
|
3 |
-
!css/jquery.fileupload-ui-noscript.css
|
4 |
-
!css/jquery.fileupload-ui.css
|
5 |
-
!css/jquery.fileupload.css
|
6 |
-
!img/loading.gif
|
7 |
-
!img/progressbar.gif
|
8 |
-
!js/cors/jquery.postmessage-transport.js
|
9 |
-
!js/cors/jquery.xdr-transport.js
|
10 |
-
!js/vendor/jquery.ui.widget.js
|
11 |
-
!js/jquery.fileupload-angular.js
|
12 |
-
!js/jquery.fileupload-audio.js
|
13 |
-
!js/jquery.fileupload-image.js
|
14 |
-
!js/jquery.fileupload-jquery-ui.js
|
15 |
-
!js/jquery.fileupload-process.js
|
16 |
-
!js/jquery.fileupload-ui.js
|
17 |
-
!js/jquery.fileupload-validate.js
|
18 |
-
!js/jquery.fileupload-video.js
|
19 |
-
!js/jquery.fileupload.js
|
20 |
-
!js/jquery.iframe-transport.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/CONTRIBUTING.md
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
Please follow these pull request guidelines:
|
2 |
-
|
3 |
-
1. Update your fork to the latest upstream version.
|
4 |
-
|
5 |
-
2. Follow the coding conventions of the original source files (indentation, spaces, brackets layout).
|
6 |
-
|
7 |
-
3. Code changes must pass JSHint validation with the `.jshintrc` settings of this project.
|
8 |
-
|
9 |
-
4. Code changes must pass the QUnit tests defined in the `test` folder.
|
10 |
-
|
11 |
-
5. New features should be covered by accompanying QUnit tests.
|
12 |
-
|
13 |
-
6. Keep your commits as atomic as possible, i.e. create a new commit for every single bug fix or feature added.
|
14 |
-
|
15 |
-
7. Always add meaningful commit messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/LICENSE.txt
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
MIT License
|
2 |
-
|
3 |
-
Copyright © 2010 Sebastian Tschan, https://blueimp.net
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/README.md
DELETED
@@ -1,117 +0,0 @@
|
|
1 |
-
# jQuery File Upload Plugin
|
2 |
-
|
3 |
-
## Description
|
4 |
-
File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery.
|
5 |
-
Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
|
6 |
-
|
7 |
-
## Demo
|
8 |
-
[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)
|
9 |
-
|
10 |
-
## ⚠️ Security Notice
|
11 |
-
Security related releases:
|
12 |
-
|
13 |
-
* [v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1) Mitigates some [Potential vulnerabilities with PHP+ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick).
|
14 |
-
* [v9.24.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.24.1) Fixes a [Remote code execution vulnerability in the PHP component](VULNERABILITIES.md#remote-code-execution-vulnerability-in-the-php-component).
|
15 |
-
* v[9.10.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/9.10.1) Fixes an [Open redirect vulnerability in the GAE components](VULNERABILITIES.md#open-redirect-vulnerability-in-the-gae-components).
|
16 |
-
* Commit [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a) (*fixed in all tagged releases*) Fixes a [Cross-site scripting vulnerability in the Iframe Transport](VULNERABILITIES.md#cross-site-scripting-vulnerability-in-the-iframe-transport).
|
17 |
-
|
18 |
-
Please read the [SECURITY](SECURITY.md) document for instructions on how to securely configure your Webserver for file uploads.
|
19 |
-
|
20 |
-
## Setup
|
21 |
-
* [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
|
22 |
-
* [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)
|
23 |
-
|
24 |
-
## Features
|
25 |
-
* **Multiple file upload:**
|
26 |
-
Allows to select multiple files at once and upload them simultaneously.
|
27 |
-
* **Drag & Drop support:**
|
28 |
-
Allows to upload files by dragging them from your desktop or file manager and dropping them on your browser window.
|
29 |
-
* **Upload progress bar:**
|
30 |
-
Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
|
31 |
-
* **Cancelable uploads:**
|
32 |
-
Individual file uploads can be canceled to stop the upload progress.
|
33 |
-
* **Resumable uploads:**
|
34 |
-
Aborted uploads can be resumed with browsers supporting the Blob API.
|
35 |
-
* **Chunked uploads:**
|
36 |
-
Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
|
37 |
-
* **Client-side image resizing:**
|
38 |
-
Images can be automatically resized on client-side with browsers supporting the required JS APIs.
|
39 |
-
* **Preview images, audio and video:**
|
40 |
-
A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
|
41 |
-
* **No browser plugins (e.g. Adobe Flash) required:**
|
42 |
-
The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
|
43 |
-
* **Graceful fallback for legacy browsers:**
|
44 |
-
Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
|
45 |
-
* **HTML file upload form fallback:**
|
46 |
-
Allows progressive enhancement by using a standard HTML file upload form as widget element.
|
47 |
-
* **Cross-site file uploads:**
|
48 |
-
Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
|
49 |
-
* **Multiple plugin instances:**
|
50 |
-
Allows to use multiple plugin instances on the same webpage.
|
51 |
-
* **Customizable and extensible:**
|
52 |
-
Provides an API to set individual options and define callback methods for various upload events.
|
53 |
-
* **Multipart and file contents stream uploads:**
|
54 |
-
Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload).
|
55 |
-
* **Compatible with any server-side application platform:**
|
56 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
|
57 |
-
|
58 |
-
## Requirements
|
59 |
-
|
60 |
-
### Mandatory requirements
|
61 |
-
* [jQuery](https://jquery.com/) v. 1.6+
|
62 |
-
* [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included): Required for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite.
|
63 |
-
* [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included): Required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
|
64 |
-
|
65 |
-
### Optional requirements
|
66 |
-
* [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.5.4+: Used to render the selected and uploaded files for the Basic Plus UI and jQuery UI versions.
|
67 |
-
* [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.13.0+: Required for the image previews and resizing functionality.
|
68 |
-
* [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.1.1+:Required for the image previews and resizing functionality.
|
69 |
-
* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.15.1+: Used to display the uploaded images in a lightbox.
|
70 |
-
* [Bootstrap](http://getbootstrap.com/) v. 3.2.0+
|
71 |
-
* [Glyphicons](http://glyphicons.com/)
|
72 |
-
|
73 |
-
The user interface of all versions, except the jQuery UI version, is built with [Bootstrap](http://getbootstrap.com/) and icons from [Glyphicons](http://glyphicons.com/).
|
74 |
-
|
75 |
-
### Cross-domain requirements
|
76 |
-
[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server.
|
77 |
-
|
78 |
-
The repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).
|
79 |
-
The XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the [Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files from the cross-domain demo file upload service.
|
80 |
-
|
81 |
-
### Custom Backends
|
82 |
-
|
83 |
-
You can add support for various backends by adhering to the specification [outlined here](https://github.com/blueimp/jQuery-File-Upload/wiki/JSON-Response).
|
84 |
-
|
85 |
-
## Browsers
|
86 |
-
|
87 |
-
### Desktop browsers
|
88 |
-
The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:
|
89 |
-
|
90 |
-
* Google Chrome
|
91 |
-
* Apple Safari 4.0+
|
92 |
-
* Mozilla Firefox 3.0+
|
93 |
-
* Opera 11.0+
|
94 |
-
* Microsoft Internet Explorer 6.0+
|
95 |
-
|
96 |
-
### Mobile browsers
|
97 |
-
The File Upload plugin has been tested with and supports the following mobile browsers:
|
98 |
-
|
99 |
-
* Apple Safari on iOS 6.0+
|
100 |
-
* Google Chrome on iOS 6.0+
|
101 |
-
* Google Chrome on Android 4.0+
|
102 |
-
* Default Browser on Android 2.3+
|
103 |
-
* Opera Mobile 12.0+
|
104 |
-
|
105 |
-
### Supported features
|
106 |
-
For a detailed overview of the features supported by each browser version, please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
|
107 |
-
|
108 |
-
## Contributing
|
109 |
-
**Bug fixes** and **new features** can be proposed using [pull requests](https://github.com/blueimp/jQuery-File-Upload/pulls).
|
110 |
-
Please read the [contribution guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before submitting a pull request.
|
111 |
-
|
112 |
-
## Support
|
113 |
-
This project is actively maintained, but there is no official support channel.
|
114 |
-
If you have a question that another developer might help you with, please post to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload) and tag your question with `blueimp jquery file upload`.
|
115 |
-
|
116 |
-
## License
|
117 |
-
Released under the [MIT license](https://opensource.org/licenses/MIT).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/VULNERABILITIES.md
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
# ⚠️ List of fixed vulnerabilities
|
2 |
-
|
3 |
-
## Potential vulnerabilities with PHP+ImageMagick
|
4 |
-
> Mitigated: 2018-10-25 (GMT)
|
5 |
-
|
6 |
-
The sample [PHP upload handler](server/php/UploadHandler.php) before [v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1) did not validate file signatures before invoking [ImageMagick](https://www.imagemagick.org/) (via [Imagick](http://php.net/manual/en/book.imagick.php)).
|
7 |
-
Verifying those [magic bytes](https://en.wikipedia.org/wiki/List_of_file_signatures) mitigates potential vulnerabilities when handling input files other than `GIF/JPEG/PNG`.
|
8 |
-
|
9 |
-
Please also configure ImageMagick to only enable the coders required for `GIF/JPEG/PNG` processing, e.g. with the sample [ImageMagick config](SECURITY.md#imagemagick-config).
|
10 |
-
|
11 |
-
**Further information:**
|
12 |
-
* Commit containing the mitigation: [fe44d34](https://github.com/blueimp/jQuery-File-Upload/commit/fe44d34be43be32c6b8d507932f318dababb25dd)
|
13 |
-
* [ImageTragick](https://imagetragick.com/)
|
14 |
-
* [CERT Vulnerability Note VU#332928](https://www.kb.cert.org/vuls/id/332928)
|
15 |
-
* [ImageMagick CVE entries](https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=imagemagick)
|
16 |
-
|
17 |
-
## Remote code execution vulnerability in the PHP component
|
18 |
-
> Fixed: 2018-10-23 (GMT)
|
19 |
-
|
20 |
-
The sample [PHP upload handler](server/php/UploadHandler.php) before [v9.24.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.24.1) allowed to upload all file types by default.
|
21 |
-
This opens up a remote code execution vulnerability, unless the server is configured to not execute (PHP) files in the upload directory (`server/php/files`).
|
22 |
-
|
23 |
-
The provided [.htaccess](server/php/files/.htaccess) file includes instructions for Apache to disable script execution, however [.htaccess support](https://httpd.apache.org/docs/current/howto/htaccess.html) is disabled by default since Apache `v2.3.9` via [AllowOverride Directive](https://httpd.apache.org/docs/current/mod/core.html#allowoverride).
|
24 |
-
|
25 |
-
**You are affected if you:**
|
26 |
-
1. A) Uploaded jQuery File Upload < `v9.24.1` on a Webserver that executes files with `.php` as part of the file extension (e.g. "example.php.png"), e.g. Apache with `mod_php` enabled and the following directive (*not a recommended configuration*):
|
27 |
-
```ApacheConf
|
28 |
-
AddHandler php5-script .php
|
29 |
-
```
|
30 |
-
B) Uploaded jQuery File Upload < `v9.22.1` on a Webserver that executes files with the file extension `.php`, e.g. Apache with `mod_php` enabled and the following directive:
|
31 |
-
```ApacheConf
|
32 |
-
<FilesMatch \.php$>
|
33 |
-
SetHandler application/x-httpd-php
|
34 |
-
</FilesMatch>
|
35 |
-
```
|
36 |
-
2. Did not actively configure your Webserver to not execute files in the upload directory (`server/php/files`).
|
37 |
-
3. Are running Apache `v2.3.9+` with the default `AllowOverride` Directive set to `None` or another Webserver with no `.htaccess` support.
|
38 |
-
|
39 |
-
**How to fix it:**
|
40 |
-
1. Upgrade to the latest version of jQuery File Upload.
|
41 |
-
2. Configure your Webserver to not execute files in the upload directory, e.g. with the [sample Apache configuration](SECURITY.md#apache-config)
|
42 |
-
|
43 |
-
**Further information:**
|
44 |
-
* Commits containing the security fix: [aeb47e5](https://github.com/blueimp/jQuery-File-Upload/commit/aeb47e51c67df8a504b7726595576c1c66b5dc2f), [ad4aefd](https://github.com/blueimp/jQuery-File-Upload/commit/ad4aefd96e4056deab6fea2690f0d8cf56bb2d7d)
|
45 |
-
* [Full disclosure post on Hacker News](https://news.ycombinator.com/item?id=18267309).
|
46 |
-
* [CVE-2018-9206](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9206)
|
47 |
-
* [OWASP - Unrestricted File Upload](https://www.owasp.org/index.php/Unrestricted_File_Upload)
|
48 |
-
|
49 |
-
## Open redirect vulnerability in the GAE components
|
50 |
-
> Fixed: 2015-06-12 (GMT)
|
51 |
-
|
52 |
-
The sample Google App Engine upload handlers before v[9.10.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/9.10.1) accepted any URL as redirect target, making it possible to use the Webserver's domain for phishing attacks.
|
53 |
-
|
54 |
-
**Further information:**
|
55 |
-
* Commit containing the security fix: [f74d2a8](https://github.com/blueimp/jQuery-File-Upload/commit/f74d2a8c3e3b1e8e336678d2899facd5bcdb589f)
|
56 |
-
* [OWASP - Unvalidated Redirects and Forwards Cheat Sheet](https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet)
|
57 |
-
|
58 |
-
## Cross-site scripting vulnerability in the Iframe Transport
|
59 |
-
> Fixed: 2012-08-09 (GMT)
|
60 |
-
|
61 |
-
The [redirect page](cors/result.html) for the [Iframe Transport](js/jquery.iframe-transport.js) before commit [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a) (*fixed in all tagged releases*) allowed executing arbitrary JavaScript in the context of the Webserver.
|
62 |
-
|
63 |
-
**Further information:**
|
64 |
-
* Commit containing the security fix: [4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a)
|
65 |
-
* [OWASP - Cross-site Scripting (XSS)](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/angularjs.html
DELETED
@@ -1,211 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin AngularJS Demo
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2013, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]>
|
18 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19 |
-
<![endif]-->
|
20 |
-
<meta charset="utf-8">
|
21 |
-
<title>jQuery File Upload Demo - AngularJS version</title>
|
22 |
-
<meta name="description" content="File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for AngularJS. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
|
23 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
24 |
-
<!-- Bootstrap styles -->
|
25 |
-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
26 |
-
<!-- Generic page styles -->
|
27 |
-
<link rel="stylesheet" href="css/style.css">
|
28 |
-
<!-- blueimp Gallery styles -->
|
29 |
-
<link rel="stylesheet" href="https://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
|
30 |
-
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
31 |
-
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
32 |
-
<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
|
33 |
-
<!-- CSS adjustments for browsers with JavaScript disabled -->
|
34 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
|
35 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
|
36 |
-
<style>
|
37 |
-
/* Hide Angular JS elements before initializing */
|
38 |
-
.ng-cloak {
|
39 |
-
display: none;
|
40 |
-
}
|
41 |
-
</style>
|
42 |
-
</head>
|
43 |
-
<body>
|
44 |
-
<div class="navbar navbar-default navbar-fixed-top">
|
45 |
-
<div class="container">
|
46 |
-
<div class="navbar-header">
|
47 |
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
|
48 |
-
<span class="icon-bar"></span>
|
49 |
-
<span class="icon-bar"></span>
|
50 |
-
<span class="icon-bar"></span>
|
51 |
-
</button>
|
52 |
-
<a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
|
53 |
-
</div>
|
54 |
-
<div class="navbar-collapse collapse">
|
55 |
-
<ul class="nav navbar-nav">
|
56 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
|
57 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
|
58 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
|
59 |
-
<li><a href="https://blueimp.net">© Sebastian Tschan</a></li>
|
60 |
-
</ul>
|
61 |
-
</div>
|
62 |
-
</div>
|
63 |
-
</div>
|
64 |
-
<div class="container">
|
65 |
-
<h1>jQuery File Upload Demo</h1>
|
66 |
-
<h2 class="lead">AngularJS version</h2>
|
67 |
-
<ul class="nav nav-tabs">
|
68 |
-
<li><a href="basic.html">Basic</a></li>
|
69 |
-
<li><a href="basic-plus.html">Basic Plus</a></li>
|
70 |
-
<li><a href="index.html">Basic Plus UI</a></li>
|
71 |
-
<li class="active"><a href="angularjs.html">AngularJS</a></li>
|
72 |
-
<li><a href="jquery-ui.html">jQuery UI</a></li>
|
73 |
-
</ul>
|
74 |
-
<br>
|
75 |
-
<blockquote>
|
76 |
-
<p>File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for AngularJS.<br>
|
77 |
-
Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
|
78 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
|
79 |
-
</blockquote>
|
80 |
-
<br>
|
81 |
-
<!-- The file upload form used as target for the file upload widget -->
|
82 |
-
<form id="fileupload" action="https://jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data" data-ng-app="demo" data-ng-controller="DemoFileUploadController" data-file-upload="options" data-ng-class="{'fileupload-processing': processing() || loadingFiles}">
|
83 |
-
<!-- Redirect browsers with JavaScript disabled to the origin page -->
|
84 |
-
<noscript><input type="hidden" name="redirect" value="https://blueimp.github.io/jQuery-File-Upload/"></noscript>
|
85 |
-
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
86 |
-
<div class="row fileupload-buttonbar">
|
87 |
-
<div class="col-lg-7">
|
88 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
89 |
-
<span class="btn btn-success fileinput-button" ng-class="{disabled: disabled}">
|
90 |
-
<i class="glyphicon glyphicon-plus"></i>
|
91 |
-
<span>Add files...</span>
|
92 |
-
<input type="file" name="files[]" multiple ng-disabled="disabled">
|
93 |
-
</span>
|
94 |
-
<button type="button" class="btn btn-primary start" data-ng-click="submit()">
|
95 |
-
<i class="glyphicon glyphicon-upload"></i>
|
96 |
-
<span>Start upload</span>
|
97 |
-
</button>
|
98 |
-
<button type="button" class="btn btn-warning cancel" data-ng-click="cancel()">
|
99 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
100 |
-
<span>Cancel upload</span>
|
101 |
-
</button>
|
102 |
-
<!-- The global file processing state -->
|
103 |
-
<span class="fileupload-process"></span>
|
104 |
-
</div>
|
105 |
-
<!-- The global progress state -->
|
106 |
-
<div class="col-lg-5 fade" data-ng-class="{in: active()}">
|
107 |
-
<!-- The global progress bar -->
|
108 |
-
<div class="progress progress-striped active" data-file-upload-progress="progress()"><div class="progress-bar progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
|
109 |
-
<!-- The extended global progress state -->
|
110 |
-
<div class="progress-extended"> </div>
|
111 |
-
</div>
|
112 |
-
</div>
|
113 |
-
<!-- The table listing the files available for upload/download -->
|
114 |
-
<table class="table table-striped files ng-cloak">
|
115 |
-
<tr data-ng-repeat="file in queue" data-ng-class="{'processing': file.$processing()}">
|
116 |
-
<td data-ng-switch data-on="!!file.thumbnailUrl">
|
117 |
-
<div class="preview" data-ng-switch-when="true">
|
118 |
-
<a data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}" data-gallery><img data-ng-src="{{file.thumbnailUrl}}" alt=""></a>
|
119 |
-
</div>
|
120 |
-
<div class="preview" data-ng-switch-default data-file-upload-preview="file"></div>
|
121 |
-
</td>
|
122 |
-
<td>
|
123 |
-
<p class="name" data-ng-switch data-on="!!file.url">
|
124 |
-
<span data-ng-switch-when="true" data-ng-switch data-on="!!file.thumbnailUrl">
|
125 |
-
<a data-ng-switch-when="true" data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}" data-gallery>{{file.name}}</a>
|
126 |
-
<a data-ng-switch-default data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}">{{file.name}}</a>
|
127 |
-
</span>
|
128 |
-
<span data-ng-switch-default>{{file.name}}</span>
|
129 |
-
</p>
|
130 |
-
<strong data-ng-show="file.error" class="error text-danger">{{file.error}}</strong>
|
131 |
-
</td>
|
132 |
-
<td>
|
133 |
-
<p class="size">{{file.size | formatFileSize}}</p>
|
134 |
-
<div class="progress progress-striped active fade" data-ng-class="{pending: 'in'}[file.$state()]" data-file-upload-progress="file.$progress()"><div class="progress-bar progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
|
135 |
-
</td>
|
136 |
-
<td>
|
137 |
-
<button type="button" class="btn btn-primary start" data-ng-click="file.$submit()" data-ng-hide="!file.$submit || options.autoUpload" data-ng-disabled="file.$state() == 'pending' || file.$state() == 'rejected'">
|
138 |
-
<i class="glyphicon glyphicon-upload"></i>
|
139 |
-
<span>Start</span>
|
140 |
-
</button>
|
141 |
-
<button type="button" class="btn btn-warning cancel" data-ng-click="file.$cancel()" data-ng-hide="!file.$cancel">
|
142 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
143 |
-
<span>Cancel</span>
|
144 |
-
</button>
|
145 |
-
<button data-ng-controller="FileDestroyController" type="button" class="btn btn-danger destroy" data-ng-click="file.$destroy()" data-ng-hide="!file.$destroy">
|
146 |
-
<i class="glyphicon glyphicon-trash"></i>
|
147 |
-
<span>Delete</span>
|
148 |
-
</button>
|
149 |
-
</td>
|
150 |
-
</tr>
|
151 |
-
</table>
|
152 |
-
</form>
|
153 |
-
<br>
|
154 |
-
<div class="panel panel-default">
|
155 |
-
<div class="panel-heading">
|
156 |
-
<h3 class="panel-title">Demo Notes</h3>
|
157 |
-
</div>
|
158 |
-
<div class="panel-body">
|
159 |
-
<ul>
|
160 |
-
<li>The maximum file size for uploads in this demo is <strong>999 KB</strong> (default file size is unlimited).</li>
|
161 |
-
<li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
|
162 |
-
<li>Uploaded files will be deleted automatically after <strong>5 minutes or less</strong> (demo files are stored in memory).</li>
|
163 |
-
<li>You can <strong>drag & drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
|
164 |
-
<li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
|
165 |
-
<li>Built with the <a href="http://getbootstrap.com/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
|
166 |
-
</ul>
|
167 |
-
</div>
|
168 |
-
</div>
|
169 |
-
</div>
|
170 |
-
<!-- The blueimp Gallery widget -->
|
171 |
-
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
|
172 |
-
<div class="slides"></div>
|
173 |
-
<h3 class="title"></h3>
|
174 |
-
<a class="prev">‹</a>
|
175 |
-
<a class="next">›</a>
|
176 |
-
<a class="close">×</a>
|
177 |
-
<a class="play-pause"></a>
|
178 |
-
<ol class="indicator"></ol>
|
179 |
-
</div>
|
180 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
181 |
-
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js" integrity="sha384-r6jjWwxAypHaESwS5an5J9dkfzwQuKVNV9FZM9B6fnt8PFuY0cVwLhV7BltCZhLy" crossorigin="anonymous"></script>
|
182 |
-
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
|
183 |
-
<script src="js/vendor/jquery.ui.widget.js"></script>
|
184 |
-
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
|
185 |
-
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
186 |
-
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
|
187 |
-
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
188 |
-
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
|
189 |
-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
190 |
-
<!-- blueimp Gallery script -->
|
191 |
-
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
|
192 |
-
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
193 |
-
<script src="js/jquery.iframe-transport.js"></script>
|
194 |
-
<!-- The basic File Upload plugin -->
|
195 |
-
<script src="js/jquery.fileupload.js"></script>
|
196 |
-
<!-- The File Upload processing plugin -->
|
197 |
-
<script src="js/jquery.fileupload-process.js"></script>
|
198 |
-
<!-- The File Upload image preview & resize plugin -->
|
199 |
-
<script src="js/jquery.fileupload-image.js"></script>
|
200 |
-
<!-- The File Upload audio preview plugin -->
|
201 |
-
<script src="js/jquery.fileupload-audio.js"></script>
|
202 |
-
<!-- The File Upload video preview plugin -->
|
203 |
-
<script src="js/jquery.fileupload-video.js"></script>
|
204 |
-
<!-- The File Upload validation plugin -->
|
205 |
-
<script src="js/jquery.fileupload-validate.js"></script>
|
206 |
-
<!-- The File Upload Angular JS module -->
|
207 |
-
<script src="js/jquery.fileupload-angular.js"></script>
|
208 |
-
<!-- The main application script -->
|
209 |
-
<script src="js/app.js"></script>
|
210 |
-
</body>
|
211 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/basic-plus.html
DELETED
@@ -1,226 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin Basic Plus Demo
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2013, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
|
18 |
-
<meta charset="utf-8">
|
19 |
-
<title>jQuery File Upload Demo - Basic Plus version</title>
|
20 |
-
<meta name="description" content="File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.">
|
21 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
22 |
-
<!-- Bootstrap styles -->
|
23 |
-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
24 |
-
<!-- Generic page styles -->
|
25 |
-
<link rel="stylesheet" href="css/style.css">
|
26 |
-
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
27 |
-
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
28 |
-
</head>
|
29 |
-
<body>
|
30 |
-
<div class="navbar navbar-default navbar-fixed-top">
|
31 |
-
<div class="container">
|
32 |
-
<div class="navbar-header">
|
33 |
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
|
34 |
-
<span class="icon-bar"></span>
|
35 |
-
<span class="icon-bar"></span>
|
36 |
-
<span class="icon-bar"></span>
|
37 |
-
</button>
|
38 |
-
<a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
|
39 |
-
</div>
|
40 |
-
<div class="navbar-collapse collapse">
|
41 |
-
<ul class="nav navbar-nav">
|
42 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
|
43 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
|
44 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
|
45 |
-
<li><a href="https://blueimp.net">© Sebastian Tschan</a></li>
|
46 |
-
</ul>
|
47 |
-
</div>
|
48 |
-
</div>
|
49 |
-
</div>
|
50 |
-
<div class="container">
|
51 |
-
<h1>jQuery File Upload Demo</h1>
|
52 |
-
<h2 class="lead">Basic Plus version</h2>
|
53 |
-
<ul class="nav nav-tabs">
|
54 |
-
<li><a href="basic.html">Basic</a></li>
|
55 |
-
<li class="active"><a href="basic-plus.html">Basic Plus</a></li>
|
56 |
-
<li><a href="index.html">Basic Plus UI</a></li>
|
57 |
-
<li><a href="angularjs.html">AngularJS</a></li>
|
58 |
-
<li><a href="jquery-ui.html">jQuery UI</a></li>
|
59 |
-
</ul>
|
60 |
-
<br>
|
61 |
-
<blockquote>
|
62 |
-
<p>File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery.<br>
|
63 |
-
Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
|
64 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
|
65 |
-
</blockquote>
|
66 |
-
<br>
|
67 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
68 |
-
<span class="btn btn-success fileinput-button">
|
69 |
-
<i class="glyphicon glyphicon-plus"></i>
|
70 |
-
<span>Add files...</span>
|
71 |
-
<!-- The file input field used as target for the file upload widget -->
|
72 |
-
<input id="fileupload" type="file" name="files[]" multiple>
|
73 |
-
</span>
|
74 |
-
<br>
|
75 |
-
<br>
|
76 |
-
<!-- The global progress bar -->
|
77 |
-
<div id="progress" class="progress">
|
78 |
-
<div class="progress-bar progress-bar-success"></div>
|
79 |
-
</div>
|
80 |
-
<!-- The container for the uploaded files -->
|
81 |
-
<div id="files" class="files"></div>
|
82 |
-
<br>
|
83 |
-
<div class="panel panel-default">
|
84 |
-
<div class="panel-heading">
|
85 |
-
<h3 class="panel-title">Demo Notes</h3>
|
86 |
-
</div>
|
87 |
-
<div class="panel-body">
|
88 |
-
<ul>
|
89 |
-
<li>The maximum file size for uploads in this demo is <strong>999 KB</strong> (default file size is unlimited).</li>
|
90 |
-
<li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
|
91 |
-
<li>Uploaded files will be deleted automatically after <strong>5 minutes or less</strong> (demo files are stored in memory).</li>
|
92 |
-
<li>You can <strong>drag & drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
|
93 |
-
<li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
|
94 |
-
<li>Built with the <a href="http://getbootstrap.com/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
|
95 |
-
</ul>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
-
</div>
|
99 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
100 |
-
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
|
101 |
-
<script src="js/vendor/jquery.ui.widget.js"></script>
|
102 |
-
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
|
103 |
-
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
104 |
-
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
|
105 |
-
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
106 |
-
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
|
107 |
-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
108 |
-
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
109 |
-
<script src="js/jquery.iframe-transport.js"></script>
|
110 |
-
<!-- The basic File Upload plugin -->
|
111 |
-
<script src="js/jquery.fileupload.js"></script>
|
112 |
-
<!-- The File Upload processing plugin -->
|
113 |
-
<script src="js/jquery.fileupload-process.js"></script>
|
114 |
-
<!-- The File Upload image preview & resize plugin -->
|
115 |
-
<script src="js/jquery.fileupload-image.js"></script>
|
116 |
-
<!-- The File Upload audio preview plugin -->
|
117 |
-
<script src="js/jquery.fileupload-audio.js"></script>
|
118 |
-
<!-- The File Upload video preview plugin -->
|
119 |
-
<script src="js/jquery.fileupload-video.js"></script>
|
120 |
-
<!-- The File Upload validation plugin -->
|
121 |
-
<script src="js/jquery.fileupload-validate.js"></script>
|
122 |
-
<script>
|
123 |
-
/*jslint unparam: true, regexp: true */
|
124 |
-
/*global window, $ */
|
125 |
-
$(function () {
|
126 |
-
'use strict';
|
127 |
-
// Change this to the location of your server-side upload handler:
|
128 |
-
var url = window.location.hostname === 'blueimp.github.io' ?
|
129 |
-
'//jquery-file-upload.appspot.com/' : 'server/php/',
|
130 |
-
uploadButton = $('<button/>')
|
131 |
-
.addClass('btn btn-primary')
|
132 |
-
.prop('disabled', true)
|
133 |
-
.text('Processing...')
|
134 |
-
.on('click', function () {
|
135 |
-
var $this = $(this),
|
136 |
-
data = $this.data();
|
137 |
-
$this
|
138 |
-
.off('click')
|
139 |
-
.text('Abort')
|
140 |
-
.on('click', function () {
|
141 |
-
$this.remove();
|
142 |
-
data.abort();
|
143 |
-
});
|
144 |
-
data.submit().always(function () {
|
145 |
-
$this.remove();
|
146 |
-
});
|
147 |
-
});
|
148 |
-
$('#fileupload').fileupload({
|
149 |
-
url: url,
|
150 |
-
dataType: 'json',
|
151 |
-
autoUpload: false,
|
152 |
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
153 |
-
maxFileSize: 999000,
|
154 |
-
// Enable image resizing, except for Android and Opera,
|
155 |
-
// which actually support image resizing, but fail to
|
156 |
-
// send Blob objects via XHR requests:
|
157 |
-
disableImageResize: /Android(?!.*Chrome)|Opera/
|
158 |
-
.test(window.navigator.userAgent),
|
159 |
-
previewMaxWidth: 100,
|
160 |
-
previewMaxHeight: 100,
|
161 |
-
previewCrop: true
|
162 |
-
}).on('fileuploadadd', function (e, data) {
|
163 |
-
data.context = $('<div/>').appendTo('#files');
|
164 |
-
$.each(data.files, function (index, file) {
|
165 |
-
var node = $('<p/>')
|
166 |
-
.append($('<span/>').text(file.name));
|
167 |
-
if (!index) {
|
168 |
-
node
|
169 |
-
.append('<br>')
|
170 |
-
.append(uploadButton.clone(true).data(data));
|
171 |
-
}
|
172 |
-
node.appendTo(data.context);
|
173 |
-
});
|
174 |
-
}).on('fileuploadprocessalways', function (e, data) {
|
175 |
-
var index = data.index,
|
176 |
-
file = data.files[index],
|
177 |
-
node = $(data.context.children()[index]);
|
178 |
-
if (file.preview) {
|
179 |
-
node
|
180 |
-
.prepend('<br>')
|
181 |
-
.prepend(file.preview);
|
182 |
-
}
|
183 |
-
if (file.error) {
|
184 |
-
node
|
185 |
-
.append('<br>')
|
186 |
-
.append($('<span class="text-danger"/>').text(file.error));
|
187 |
-
}
|
188 |
-
if (index + 1 === data.files.length) {
|
189 |
-
data.context.find('button')
|
190 |
-
.text('Upload')
|
191 |
-
.prop('disabled', !!data.files.error);
|
192 |
-
}
|
193 |
-
}).on('fileuploadprogressall', function (e, data) {
|
194 |
-
var progress = parseInt(data.loaded / data.total * 100, 10);
|
195 |
-
$('#progress .progress-bar').css(
|
196 |
-
'width',
|
197 |
-
progress + '%'
|
198 |
-
);
|
199 |
-
}).on('fileuploaddone', function (e, data) {
|
200 |
-
$.each(data.result.files, function (index, file) {
|
201 |
-
if (file.url) {
|
202 |
-
var link = $('<a>')
|
203 |
-
.attr('target', '_blank')
|
204 |
-
.prop('href', file.url);
|
205 |
-
$(data.context.children()[index])
|
206 |
-
.wrap(link);
|
207 |
-
} else if (file.error) {
|
208 |
-
var error = $('<span class="text-danger"/>').text(file.error);
|
209 |
-
$(data.context.children()[index])
|
210 |
-
.append('<br>')
|
211 |
-
.append(error);
|
212 |
-
}
|
213 |
-
});
|
214 |
-
}).on('fileuploadfail', function (e, data) {
|
215 |
-
$.each(data.files, function (index) {
|
216 |
-
var error = $('<span class="text-danger"/>').text('File upload failed.');
|
217 |
-
$(data.context.children()[index])
|
218 |
-
.append('<br>')
|
219 |
-
.append(error);
|
220 |
-
});
|
221 |
-
}).prop('disabled', !$.support.fileInput)
|
222 |
-
.parent().addClass($.support.fileInput ? undefined : 'disabled');
|
223 |
-
});
|
224 |
-
</script>
|
225 |
-
</body>
|
226 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/basic.html
DELETED
@@ -1,136 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin Basic Demo
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2013, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
|
18 |
-
<meta charset="utf-8">
|
19 |
-
<title>jQuery File Upload Demo - Basic version</title>
|
20 |
-
<meta name="description" content="File Upload widget with multiple file selection, drag&drop support and progress bar for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
|
21 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
22 |
-
<!-- Bootstrap styles -->
|
23 |
-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
24 |
-
<!-- Generic page styles -->
|
25 |
-
<link rel="stylesheet" href="css/style.css">
|
26 |
-
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
27 |
-
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
28 |
-
</head>
|
29 |
-
<body>
|
30 |
-
<div class="navbar navbar-default navbar-fixed-top">
|
31 |
-
<div class="container">
|
32 |
-
<div class="navbar-header">
|
33 |
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
|
34 |
-
<span class="icon-bar"></span>
|
35 |
-
<span class="icon-bar"></span>
|
36 |
-
<span class="icon-bar"></span>
|
37 |
-
</button>
|
38 |
-
<a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
|
39 |
-
</div>
|
40 |
-
<div class="navbar-collapse collapse">
|
41 |
-
<ul class="nav navbar-nav">
|
42 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
|
43 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
|
44 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
|
45 |
-
<li><a href="https://blueimp.net">© Sebastian Tschan</a></li>
|
46 |
-
</ul>
|
47 |
-
</div>
|
48 |
-
</div>
|
49 |
-
</div>
|
50 |
-
<div class="container">
|
51 |
-
<h1>jQuery File Upload Demo</h1>
|
52 |
-
<h2 class="lead">Basic version</h2>
|
53 |
-
<ul class="nav nav-tabs">
|
54 |
-
<li class="active"><a href="basic.html">Basic</a></li>
|
55 |
-
<li><a href="basic-plus.html">Basic Plus</a></li>
|
56 |
-
<li><a href="index.html">Basic Plus UI</a></li>
|
57 |
-
<li><a href="angularjs.html">AngularJS</a></li>
|
58 |
-
<li><a href="jquery-ui.html">jQuery UI</a></li>
|
59 |
-
</ul>
|
60 |
-
<br>
|
61 |
-
<blockquote>
|
62 |
-
<p>File Upload widget with multiple file selection, drag&drop support and progress bar for jQuery.<br>
|
63 |
-
Supports cross-domain, chunked and resumable file uploads.<br>
|
64 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
|
65 |
-
</blockquote>
|
66 |
-
<br>
|
67 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
68 |
-
<span class="btn btn-success fileinput-button">
|
69 |
-
<i class="glyphicon glyphicon-plus"></i>
|
70 |
-
<span>Select files...</span>
|
71 |
-
<!-- The file input field used as target for the file upload widget -->
|
72 |
-
<input id="fileupload" type="file" name="files[]" multiple>
|
73 |
-
</span>
|
74 |
-
<br>
|
75 |
-
<br>
|
76 |
-
<!-- The global progress bar -->
|
77 |
-
<div id="progress" class="progress">
|
78 |
-
<div class="progress-bar progress-bar-success"></div>
|
79 |
-
</div>
|
80 |
-
<!-- The container for the uploaded files -->
|
81 |
-
<div id="files" class="files"></div>
|
82 |
-
<br>
|
83 |
-
<div class="panel panel-default">
|
84 |
-
<div class="panel-heading">
|
85 |
-
<h3 class="panel-title">Demo Notes</h3>
|
86 |
-
</div>
|
87 |
-
<div class="panel-body">
|
88 |
-
<ul>
|
89 |
-
<li>The maximum file size for uploads in this demo is <strong>999 KB</strong> (default file size is unlimited).</li>
|
90 |
-
<li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
|
91 |
-
<li>Uploaded files will be deleted automatically after <strong>5 minutes or less</strong> (demo files are stored in memory).</li>
|
92 |
-
<li>You can <strong>drag & drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
|
93 |
-
<li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
|
94 |
-
<li>Built with the <a href="http://getbootstrap.com/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
|
95 |
-
</ul>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
-
</div>
|
99 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
100 |
-
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
|
101 |
-
<script src="js/vendor/jquery.ui.widget.js"></script>
|
102 |
-
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
103 |
-
<script src="js/jquery.iframe-transport.js"></script>
|
104 |
-
<!-- The basic File Upload plugin -->
|
105 |
-
<script src="js/jquery.fileupload.js"></script>
|
106 |
-
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
|
107 |
-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
108 |
-
<script>
|
109 |
-
/*jslint unparam: true */
|
110 |
-
/*global window, $ */
|
111 |
-
$(function () {
|
112 |
-
'use strict';
|
113 |
-
// Change this to the location of your server-side upload handler:
|
114 |
-
var url = window.location.hostname === 'blueimp.github.io' ?
|
115 |
-
'//jquery-file-upload.appspot.com/' : 'server/php/';
|
116 |
-
$('#fileupload').fileupload({
|
117 |
-
url: url,
|
118 |
-
dataType: 'json',
|
119 |
-
done: function (e, data) {
|
120 |
-
$.each(data.result.files, function (index, file) {
|
121 |
-
$('<p/>').text(file.name).appendTo('#files');
|
122 |
-
});
|
123 |
-
},
|
124 |
-
progressall: function (e, data) {
|
125 |
-
var progress = parseInt(data.loaded / data.total * 100, 10);
|
126 |
-
$('#progress .progress-bar').css(
|
127 |
-
'width',
|
128 |
-
progress + '%'
|
129 |
-
);
|
130 |
-
}
|
131 |
-
}).prop('disabled', !$.support.fileInput)
|
132 |
-
.parent().addClass($.support.fileInput ? undefined : 'disabled');
|
133 |
-
});
|
134 |
-
</script>
|
135 |
-
</body>
|
136 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/bower-version-update.js
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
#!/usr/bin/env node
|
2 |
-
|
3 |
-
'use strict';
|
4 |
-
|
5 |
-
var path = require('path');
|
6 |
-
var packageJSON = require(path.join(__dirname, 'package.json'));
|
7 |
-
var bowerFile = path.join(__dirname, 'bower.json');
|
8 |
-
var bowerJSON = require('bower-json').parse(
|
9 |
-
require(bowerFile),
|
10 |
-
{normalize: true}
|
11 |
-
);
|
12 |
-
bowerJSON.version = packageJSON.version;
|
13 |
-
require('fs').writeFileSync(
|
14 |
-
bowerFile,
|
15 |
-
JSON.stringify(bowerJSON, null, 2) + '\n'
|
16 |
-
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/bower.json
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "blueimp-file-upload",
|
3 |
-
"version": "9.32.0",
|
4 |
-
"title": "jQuery File Upload",
|
5 |
-
"description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images.",
|
6 |
-
"keywords": [
|
7 |
-
"jquery",
|
8 |
-
"file",
|
9 |
-
"upload",
|
10 |
-
"widget",
|
11 |
-
"multiple",
|
12 |
-
"selection",
|
13 |
-
"drag",
|
14 |
-
"drop",
|
15 |
-
"progress",
|
16 |
-
"preview",
|
17 |
-
"cross-domain",
|
18 |
-
"cross-site",
|
19 |
-
"chunk",
|
20 |
-
"resume",
|
21 |
-
"gae",
|
22 |
-
"go",
|
23 |
-
"python",
|
24 |
-
"php",
|
25 |
-
"bootstrap"
|
26 |
-
],
|
27 |
-
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
|
28 |
-
"author": {
|
29 |
-
"name": "Sebastian Tschan",
|
30 |
-
"url": "https://blueimp.net"
|
31 |
-
},
|
32 |
-
"maintainers": [
|
33 |
-
{
|
34 |
-
"name": "Sebastian Tschan",
|
35 |
-
"url": "https://blueimp.net"
|
36 |
-
}
|
37 |
-
],
|
38 |
-
"repository": {
|
39 |
-
"type": "git",
|
40 |
-
"url": "git://github.com/blueimp/jQuery-File-Upload.git"
|
41 |
-
},
|
42 |
-
"bugs": "https://github.com/blueimp/jQuery-File-Upload/issues",
|
43 |
-
"license": "MIT",
|
44 |
-
"dependencies": {
|
45 |
-
"jquery": ">=1.6",
|
46 |
-
"blueimp-tmpl": ">=2.5.4",
|
47 |
-
"blueimp-load-image": ">=1.13.0",
|
48 |
-
"blueimp-canvas-to-blob": ">=2.1.1"
|
49 |
-
},
|
50 |
-
"main": [
|
51 |
-
"js/jquery.fileupload.js"
|
52 |
-
],
|
53 |
-
"ignore": [
|
54 |
-
"/*.*",
|
55 |
-
"/cors",
|
56 |
-
"css/jquery-ui-demo-ie8.css",
|
57 |
-
"css/jquery-ui-demo.css",
|
58 |
-
"css/style.css",
|
59 |
-
"js/app.js",
|
60 |
-
"js/main.js",
|
61 |
-
"server",
|
62 |
-
"test"
|
63 |
-
]
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/cors/postmessage.html
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin postMessage API
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2011, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<meta charset="utf-8">
|
17 |
-
<title>jQuery File Upload Plugin postMessage API</title>
|
18 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
19 |
-
</head>
|
20 |
-
<body>
|
21 |
-
<script>
|
22 |
-
/*jslint unparam: true, regexp: true */
|
23 |
-
/*global $, Blob, FormData, location */
|
24 |
-
'use strict';
|
25 |
-
var origin = /^http:\/\/example.org/,
|
26 |
-
target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
|
27 |
-
$(window).on('message', function (e) {
|
28 |
-
e = e.originalEvent;
|
29 |
-
var s = e.data,
|
30 |
-
xhr = $.ajaxSettings.xhr(),
|
31 |
-
f;
|
32 |
-
if (!origin.test(e.origin)) {
|
33 |
-
throw new Error('Origin "' + e.origin + '" does not match ' + origin);
|
34 |
-
}
|
35 |
-
if (!target.test(e.data.url)) {
|
36 |
-
throw new Error('Target "' + e.data.url + '" does not match ' + target);
|
37 |
-
}
|
38 |
-
$(xhr.upload).on('progress', function (ev) {
|
39 |
-
ev = ev.originalEvent;
|
40 |
-
e.source.postMessage({
|
41 |
-
id: s.id,
|
42 |
-
type: ev.type,
|
43 |
-
timeStamp: ev.timeStamp,
|
44 |
-
lengthComputable: ev.lengthComputable,
|
45 |
-
loaded: ev.loaded,
|
46 |
-
total: ev.total
|
47 |
-
}, e.origin);
|
48 |
-
});
|
49 |
-
s.xhr = function () {
|
50 |
-
return xhr;
|
51 |
-
};
|
52 |
-
if (!(s.data instanceof Blob)) {
|
53 |
-
f = new FormData();
|
54 |
-
$.each(s.data, function (i, v) {
|
55 |
-
f.append(v.name, v.value);
|
56 |
-
});
|
57 |
-
s.data = f;
|
58 |
-
}
|
59 |
-
$.ajax(s).always(function (result, statusText, jqXHR) {
|
60 |
-
if (!jqXHR.done) {
|
61 |
-
jqXHR = result;
|
62 |
-
result = null;
|
63 |
-
}
|
64 |
-
e.source.postMessage({
|
65 |
-
id: s.id,
|
66 |
-
status: jqXHR.status,
|
67 |
-
statusText: statusText,
|
68 |
-
result: result,
|
69 |
-
headers: jqXHR.getAllResponseHeaders()
|
70 |
-
}, e.origin);
|
71 |
-
});
|
72 |
-
});
|
73 |
-
</script>
|
74 |
-
</body>
|
75 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/cors/result.html
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery Iframe Transport Plugin Redirect Page
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2010, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<meta charset="utf-8">
|
17 |
-
<title>jQuery Iframe Transport Plugin Redirect Page</title>
|
18 |
-
</head>
|
19 |
-
<body>
|
20 |
-
<script>
|
21 |
-
document.body.innerText=document.body.textContent=decodeURIComponent(window.location.search.slice(1));
|
22 |
-
</script>
|
23 |
-
</body>
|
24 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/css/jquery-ui-demo-ie8.css
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
/*
|
3 |
-
* jQuery File Upload Demo CSS Fixes for IE<9
|
4 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
5 |
-
*
|
6 |
-
* Copyright 2013, Sebastian Tschan
|
7 |
-
* https://blueimp.net
|
8 |
-
*
|
9 |
-
* Licensed under the MIT license:
|
10 |
-
* https://opensource.org/licenses/MIT
|
11 |
-
*/
|
12 |
-
|
13 |
-
.navigation {
|
14 |
-
list-style: none;
|
15 |
-
padding: 0;
|
16 |
-
margin: 1em 0;
|
17 |
-
}
|
18 |
-
.navigation li {
|
19 |
-
display: inline;
|
20 |
-
margin-right: 10px;
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/css/jquery-ui-demo.css
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
/*
|
3 |
-
* jQuery File Upload Demo CSS
|
4 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
5 |
-
*
|
6 |
-
* Copyright 2013, Sebastian Tschan
|
7 |
-
* https://blueimp.net
|
8 |
-
*
|
9 |
-
* Licensed under the MIT license:
|
10 |
-
* https://opensource.org/licenses/MIT
|
11 |
-
*/
|
12 |
-
|
13 |
-
body {
|
14 |
-
max-width: 750px;
|
15 |
-
margin: 0 auto;
|
16 |
-
padding: 1em;
|
17 |
-
font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif;
|
18 |
-
font-size: 1em;
|
19 |
-
line-height: 1.4em;
|
20 |
-
background: #222;
|
21 |
-
color: #fff;
|
22 |
-
-webkit-text-size-adjust: 100%;
|
23 |
-
-ms-text-size-adjust: 100%;
|
24 |
-
}
|
25 |
-
a {
|
26 |
-
color: orange;
|
27 |
-
text-decoration: none;
|
28 |
-
}
|
29 |
-
img {
|
30 |
-
border: 0;
|
31 |
-
vertical-align: middle;
|
32 |
-
}
|
33 |
-
h1 {
|
34 |
-
line-height: 1em;
|
35 |
-
}
|
36 |
-
blockquote {
|
37 |
-
padding: 0 0 0 15px;
|
38 |
-
margin: 0 0 20px;
|
39 |
-
border-left: 5px solid #eee;
|
40 |
-
}
|
41 |
-
table {
|
42 |
-
width: 100%;
|
43 |
-
margin: 10px 0;
|
44 |
-
}
|
45 |
-
|
46 |
-
.fileupload-progress {
|
47 |
-
margin: 10px 0;
|
48 |
-
}
|
49 |
-
.fileupload-progress .progress-extended {
|
50 |
-
margin-top: 5px;
|
51 |
-
}
|
52 |
-
.error {
|
53 |
-
color: red;
|
54 |
-
}
|
55 |
-
|
56 |
-
@media (min-width: 481px) {
|
57 |
-
.navigation {
|
58 |
-
list-style: none;
|
59 |
-
padding: 0;
|
60 |
-
}
|
61 |
-
.navigation li {
|
62 |
-
display: inline-block;
|
63 |
-
}
|
64 |
-
.navigation li:not(:first-child):before {
|
65 |
-
content: "| ";
|
66 |
-
}
|
67 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/css/style.css
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
/*
|
3 |
-
* jQuery File Upload Plugin CSS Example
|
4 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
5 |
-
*
|
6 |
-
* Copyright 2013, Sebastian Tschan
|
7 |
-
* https://blueimp.net
|
8 |
-
*
|
9 |
-
* Licensed under the MIT license:
|
10 |
-
* https://opensource.org/licenses/MIT
|
11 |
-
*/
|
12 |
-
|
13 |
-
body {
|
14 |
-
padding-top: 60px;
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/index.html
DELETED
@@ -1,259 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin Demo
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2010, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]>
|
18 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19 |
-
<![endif]-->
|
20 |
-
<meta charset="utf-8">
|
21 |
-
<title>jQuery File Upload Demo</title>
|
22 |
-
<meta name="description" content="File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
|
23 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
24 |
-
<!-- Bootstrap styles -->
|
25 |
-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
26 |
-
<!-- Generic page styles -->
|
27 |
-
<link rel="stylesheet" href="css/style.css">
|
28 |
-
<!-- blueimp Gallery styles -->
|
29 |
-
<link rel="stylesheet" href="https://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
|
30 |
-
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
31 |
-
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
32 |
-
<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
|
33 |
-
<!-- CSS adjustments for browsers with JavaScript disabled -->
|
34 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
|
35 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
|
36 |
-
</head>
|
37 |
-
<body>
|
38 |
-
<div class="navbar navbar-default navbar-fixed-top">
|
39 |
-
<div class="container">
|
40 |
-
<div class="navbar-header">
|
41 |
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
|
42 |
-
<span class="icon-bar"></span>
|
43 |
-
<span class="icon-bar"></span>
|
44 |
-
<span class="icon-bar"></span>
|
45 |
-
</button>
|
46 |
-
<a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
|
47 |
-
</div>
|
48 |
-
<div class="navbar-collapse collapse">
|
49 |
-
<ul class="nav navbar-nav">
|
50 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
|
51 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
|
52 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
|
53 |
-
<li><a href="https://blueimp.net">© Sebastian Tschan</a></li>
|
54 |
-
</ul>
|
55 |
-
</div>
|
56 |
-
</div>
|
57 |
-
</div>
|
58 |
-
<div class="container">
|
59 |
-
<h1>jQuery File Upload Demo</h1>
|
60 |
-
<h2 class="lead">Basic Plus UI version</h2>
|
61 |
-
<ul class="nav nav-tabs">
|
62 |
-
<li><a href="basic.html">Basic</a></li>
|
63 |
-
<li><a href="basic-plus.html">Basic Plus</a></li>
|
64 |
-
<li class="active"><a href="index.html">Basic Plus UI</a></li>
|
65 |
-
<li><a href="angularjs.html">AngularJS</a></li>
|
66 |
-
<li><a href="jquery-ui.html">jQuery UI</a></li>
|
67 |
-
</ul>
|
68 |
-
<br>
|
69 |
-
<blockquote>
|
70 |
-
<p>File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery.<br>
|
71 |
-
Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
|
72 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
|
73 |
-
</blockquote>
|
74 |
-
<br>
|
75 |
-
<!-- The file upload form used as target for the file upload widget -->
|
76 |
-
<form id="fileupload" action="https://jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
|
77 |
-
<!-- Redirect browsers with JavaScript disabled to the origin page -->
|
78 |
-
<noscript><input type="hidden" name="redirect" value="https://blueimp.github.io/jQuery-File-Upload/"></noscript>
|
79 |
-
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
80 |
-
<div class="row fileupload-buttonbar">
|
81 |
-
<div class="col-lg-7">
|
82 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
83 |
-
<span class="btn btn-success fileinput-button">
|
84 |
-
<i class="glyphicon glyphicon-plus"></i>
|
85 |
-
<span>Add files...</span>
|
86 |
-
<input type="file" name="files[]" multiple>
|
87 |
-
</span>
|
88 |
-
<button type="submit" class="btn btn-primary start">
|
89 |
-
<i class="glyphicon glyphicon-upload"></i>
|
90 |
-
<span>Start upload</span>
|
91 |
-
</button>
|
92 |
-
<button type="reset" class="btn btn-warning cancel">
|
93 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
94 |
-
<span>Cancel upload</span>
|
95 |
-
</button>
|
96 |
-
<button type="button" class="btn btn-danger delete">
|
97 |
-
<i class="glyphicon glyphicon-trash"></i>
|
98 |
-
<span>Delete</span>
|
99 |
-
</button>
|
100 |
-
<input type="checkbox" class="toggle">
|
101 |
-
<!-- The global file processing state -->
|
102 |
-
<span class="fileupload-process"></span>
|
103 |
-
</div>
|
104 |
-
<!-- The global progress state -->
|
105 |
-
<div class="col-lg-5 fileupload-progress fade">
|
106 |
-
<!-- The global progress bar -->
|
107 |
-
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
|
108 |
-
<div class="progress-bar progress-bar-success" style="width:0%;"></div>
|
109 |
-
</div>
|
110 |
-
<!-- The extended global progress state -->
|
111 |
-
<div class="progress-extended"> </div>
|
112 |
-
</div>
|
113 |
-
</div>
|
114 |
-
<!-- The table listing the files available for upload/download -->
|
115 |
-
<table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
|
116 |
-
</form>
|
117 |
-
<br>
|
118 |
-
<div class="panel panel-default">
|
119 |
-
<div class="panel-heading">
|
120 |
-
<h3 class="panel-title">Demo Notes</h3>
|
121 |
-
</div>
|
122 |
-
<div class="panel-body">
|
123 |
-
<ul>
|
124 |
-
<li>The maximum file size for uploads in this demo is <strong>999 KB</strong> (default file size is unlimited).</li>
|
125 |
-
<li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
|
126 |
-
<li>Uploaded files will be deleted automatically after <strong>5 minutes or less</strong> (demo files are stored in memory).</li>
|
127 |
-
<li>You can <strong>drag & drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
|
128 |
-
<li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
|
129 |
-
<li>Built with the <a href="http://getbootstrap.com/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
|
130 |
-
</ul>
|
131 |
-
</div>
|
132 |
-
</div>
|
133 |
-
</div>
|
134 |
-
<!-- The blueimp Gallery widget -->
|
135 |
-
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
|
136 |
-
<div class="slides"></div>
|
137 |
-
<h3 class="title"></h3>
|
138 |
-
<a class="prev">‹</a>
|
139 |
-
<a class="next">›</a>
|
140 |
-
<a class="close">×</a>
|
141 |
-
<a class="play-pause"></a>
|
142 |
-
<ol class="indicator"></ol>
|
143 |
-
</div>
|
144 |
-
<!-- The template to display files available for upload -->
|
145 |
-
<script id="template-upload" type="text/x-tmpl">
|
146 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
147 |
-
<tr class="template-upload fade">
|
148 |
-
<td>
|
149 |
-
<span class="preview"></span>
|
150 |
-
</td>
|
151 |
-
<td>
|
152 |
-
{% if (window.innerWidth > 480 || !o.options.loadImageFileTypes.test(file.type)) { %}
|
153 |
-
<p class="name">{%=file.name%}</p>
|
154 |
-
{% } %}
|
155 |
-
<strong class="error text-danger"></strong>
|
156 |
-
</td>
|
157 |
-
<td>
|
158 |
-
<p class="size">Processing...</p>
|
159 |
-
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
|
160 |
-
</td>
|
161 |
-
<td>
|
162 |
-
{% if (!i && !o.options.autoUpload) { %}
|
163 |
-
<button class="btn btn-primary start" disabled>
|
164 |
-
<i class="glyphicon glyphicon-upload"></i>
|
165 |
-
<span>Start</span>
|
166 |
-
</button>
|
167 |
-
{% } %}
|
168 |
-
{% if (!i) { %}
|
169 |
-
<button class="btn btn-warning cancel">
|
170 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
171 |
-
<span>Cancel</span>
|
172 |
-
</button>
|
173 |
-
{% } %}
|
174 |
-
</td>
|
175 |
-
</tr>
|
176 |
-
{% } %}
|
177 |
-
</script>
|
178 |
-
<!-- The template to display files available for download -->
|
179 |
-
<script id="template-download" type="text/x-tmpl">
|
180 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
181 |
-
<tr class="template-download fade">
|
182 |
-
<td>
|
183 |
-
<span class="preview">
|
184 |
-
{% if (file.thumbnailUrl) { %}
|
185 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
|
186 |
-
{% } %}
|
187 |
-
</span>
|
188 |
-
</td>
|
189 |
-
<td>
|
190 |
-
{% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
|
191 |
-
<p class="name">
|
192 |
-
{% if (file.url) { %}
|
193 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
|
194 |
-
{% } else { %}
|
195 |
-
<span>{%=file.name%}</span>
|
196 |
-
{% } %}
|
197 |
-
</p>
|
198 |
-
{% } %}
|
199 |
-
{% if (file.error) { %}
|
200 |
-
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
|
201 |
-
{% } %}
|
202 |
-
</td>
|
203 |
-
<td>
|
204 |
-
<span class="size">{%=o.formatFileSize(file.size)%}</span>
|
205 |
-
</td>
|
206 |
-
<td>
|
207 |
-
{% if (file.deleteUrl) { %}
|
208 |
-
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
|
209 |
-
<i class="glyphicon glyphicon-trash"></i>
|
210 |
-
<span>Delete</span>
|
211 |
-
</button>
|
212 |
-
<input type="checkbox" name="delete" value="1" class="toggle">
|
213 |
-
{% } else { %}
|
214 |
-
<button class="btn btn-warning cancel">
|
215 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
216 |
-
<span>Cancel</span>
|
217 |
-
</button>
|
218 |
-
{% } %}
|
219 |
-
</td>
|
220 |
-
</tr>
|
221 |
-
{% } %}
|
222 |
-
</script>
|
223 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
224 |
-
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
|
225 |
-
<script src="js/vendor/jquery.ui.widget.js"></script>
|
226 |
-
<!-- The Templates plugin is included to render the upload/download listings -->
|
227 |
-
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
|
228 |
-
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
|
229 |
-
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
230 |
-
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
|
231 |
-
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
232 |
-
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
|
233 |
-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
234 |
-
<!-- blueimp Gallery script -->
|
235 |
-
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
|
236 |
-
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
237 |
-
<script src="js/jquery.iframe-transport.js"></script>
|
238 |
-
<!-- The basic File Upload plugin -->
|
239 |
-
<script src="js/jquery.fileupload.js"></script>
|
240 |
-
<!-- The File Upload processing plugin -->
|
241 |
-
<script src="js/jquery.fileupload-process.js"></script>
|
242 |
-
<!-- The File Upload image preview & resize plugin -->
|
243 |
-
<script src="js/jquery.fileupload-image.js"></script>
|
244 |
-
<!-- The File Upload audio preview plugin -->
|
245 |
-
<script src="js/jquery.fileupload-audio.js"></script>
|
246 |
-
<!-- The File Upload video preview plugin -->
|
247 |
-
<script src="js/jquery.fileupload-video.js"></script>
|
248 |
-
<!-- The File Upload validation plugin -->
|
249 |
-
<script src="js/jquery.fileupload-validate.js"></script>
|
250 |
-
<!-- The File Upload user interface plugin -->
|
251 |
-
<script src="js/jquery.fileupload-ui.js"></script>
|
252 |
-
<!-- The main application script -->
|
253 |
-
<script src="js/main.js"></script>
|
254 |
-
<!-- The XDomainRequest Transport is included for cross-domain file deletion for IE 8 and IE 9 -->
|
255 |
-
<!--[if (gte IE 8)&(lt IE 10)]>
|
256 |
-
<script src="js/cors/jquery.xdr-transport.js"></script>
|
257 |
-
<![endif]-->
|
258 |
-
</body>
|
259 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/jquery-ui.html
DELETED
@@ -1,256 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin jQuery UI Demo
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2013, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]>
|
18 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19 |
-
<![endif]-->
|
20 |
-
<meta charset="utf-8">
|
21 |
-
<title>jQuery File Upload Demo - jQuery UI version</title>
|
22 |
-
<meta name="description" content="File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
|
23 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
24 |
-
<!-- jQuery UI styles -->
|
25 |
-
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/dark-hive/jquery-ui.css" integrity="sha384-ufZtQaOYGuy/CibAC5jmelOpBu3H78Js7HrXSLo4LGccHUrGGHXt+uaTcDbio3kI" crossorigin="anonymous">
|
26 |
-
<!-- Generic page styles -->
|
27 |
-
<link rel="stylesheet" href="css/style.css">
|
28 |
-
<!-- Demo styles -->
|
29 |
-
<link rel="stylesheet" href="css/jquery-ui-demo.css">
|
30 |
-
<!--[if lte IE 8]>
|
31 |
-
<link rel="stylesheet" href="css/jquery-ui-demo-ie8.css">
|
32 |
-
<![endif]-->
|
33 |
-
<style>
|
34 |
-
/* Adjust the jQuery UI widget font-size: */
|
35 |
-
.ui-widget {
|
36 |
-
font-size: 0.95em;
|
37 |
-
}
|
38 |
-
</style>
|
39 |
-
<!-- blueimp Gallery styles -->
|
40 |
-
<link rel="stylesheet" href="https://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
|
41 |
-
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
42 |
-
<link rel="stylesheet" href="css/jquery.fileupload.css">
|
43 |
-
<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
|
44 |
-
<!-- CSS adjustments for browsers with JavaScript disabled -->
|
45 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
|
46 |
-
<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
|
47 |
-
</head>
|
48 |
-
<body>
|
49 |
-
<ul class="navigation">
|
50 |
-
<li><h3><a href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a></h3></li>
|
51 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
|
52 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
|
53 |
-
<li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
|
54 |
-
<li><a href="https://blueimp.net">© blueimp.net</a></li>
|
55 |
-
</ul>
|
56 |
-
<h1>jQuery File Upload Demo</h1>
|
57 |
-
<h2>jQuery UI version</h2>
|
58 |
-
<form>
|
59 |
-
<label for="theme-switcher">Theme:</label>
|
60 |
-
<select id="theme-switcher" class="pull-right">
|
61 |
-
<option value="black-tie">Black Tie</option>
|
62 |
-
<option value="blitzer">Blitzer</option>
|
63 |
-
<option value="cupertino">Cupertino</option>
|
64 |
-
<option value="dark-hive" selected>Dark Hive</option>
|
65 |
-
<option value="dot-luv">Dot Luv</option>
|
66 |
-
<option value="eggplant">Eggplant</option>
|
67 |
-
<option value="excite-bike">Excite Bike</option>
|
68 |
-
<option value="flick">Flick</option>
|
69 |
-
<option value="hot-sneaks">Hot sneaks</option>
|
70 |
-
<option value="humanity">Humanity</option>
|
71 |
-
<option value="le-frog">Le Frog</option>
|
72 |
-
<option value="mint-choc">Mint Choc</option>
|
73 |
-
<option value="overcast">Overcast</option>
|
74 |
-
<option value="pepper-grinder">Pepper Grinder</option>
|
75 |
-
<option value="redmond">Redmond</option>
|
76 |
-
<option value="smoothness">Smoothness</option>
|
77 |
-
<option value="south-street">South Street</option>
|
78 |
-
<option value="start">Start</option>
|
79 |
-
<option value="sunny">Sunny</option>
|
80 |
-
<option value="swanky-purse">Swanky Purse</option>
|
81 |
-
<option value="trontastic">Trontastic</option>
|
82 |
-
<option value="ui-darkness">UI Darkness</option>
|
83 |
-
<option value="ui-lightness">UI Lightness</option>
|
84 |
-
<option value="vader">Vader</option>
|
85 |
-
</select>
|
86 |
-
</form>
|
87 |
-
<ul class="navigation">
|
88 |
-
<li><a href="basic.html">Basic</a></li>
|
89 |
-
<li><a href="basic-plus.html">Basic Plus</a></li>
|
90 |
-
<li><a href="index.html">Basic Plus UI</a></li>
|
91 |
-
<li><a href="angularjs.html">AngularJS</a></li>
|
92 |
-
<li class="active"><a href="jquery-ui.html">jQuery UI</a></li>
|
93 |
-
</ul>
|
94 |
-
<blockquote>
|
95 |
-
<p>File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery UI.<br>
|
96 |
-
Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
|
97 |
-
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
|
98 |
-
</blockquote>
|
99 |
-
<!-- The file upload form used as target for the file upload widget -->
|
100 |
-
<form id="fileupload" action="https://jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
|
101 |
-
<!-- Redirect browsers with JavaScript disabled to the origin page -->
|
102 |
-
<noscript><input type="hidden" name="redirect" value="https://blueimp.github.io/jQuery-File-Upload/"></noscript>
|
103 |
-
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
104 |
-
<div class="fileupload-buttonbar">
|
105 |
-
<div class="fileupload-buttons">
|
106 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
107 |
-
<span class="fileinput-button">
|
108 |
-
<span>Add files...</span>
|
109 |
-
<input type="file" name="files[]" multiple>
|
110 |
-
</span>
|
111 |
-
<button type="submit" class="start">Start upload</button>
|
112 |
-
<button type="reset" class="cancel">Cancel upload</button>
|
113 |
-
<button type="button" class="delete">Delete</button>
|
114 |
-
<input type="checkbox" class="toggle">
|
115 |
-
<!-- The global file processing state -->
|
116 |
-
<span class="fileupload-process"></span>
|
117 |
-
</div>
|
118 |
-
<!-- The global progress state -->
|
119 |
-
<div class="fileupload-progress fade" style="display:none">
|
120 |
-
<!-- The global progress bar -->
|
121 |
-
<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
|
122 |
-
<!-- The extended global progress state -->
|
123 |
-
<div class="progress-extended"> </div>
|
124 |
-
</div>
|
125 |
-
</div>
|
126 |
-
<!-- The table listing the files available for upload/download -->
|
127 |
-
<table role="presentation"><tbody class="files"></tbody></table>
|
128 |
-
</form>
|
129 |
-
<br>
|
130 |
-
<h3>Demo Notes</h3>
|
131 |
-
<ul>
|
132 |
-
<li>The maximum file size for uploads in this demo is <strong>999 KB</strong> (default file size is unlimited).</li>
|
133 |
-
<li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
|
134 |
-
<li>Uploaded files will be deleted automatically after <strong>5 minutes or less</strong> (demo files are stored in memory).</li>
|
135 |
-
<li>You can <strong>drag & drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
|
136 |
-
<li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
|
137 |
-
<li>Built with <a href="https://jqueryui.com">jQuery UI</a>.</li>
|
138 |
-
</ul>
|
139 |
-
<!-- The blueimp Gallery widget -->
|
140 |
-
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
|
141 |
-
<div class="slides"></div>
|
142 |
-
<h3 class="title"></h3>
|
143 |
-
<a class="prev">‹</a>
|
144 |
-
<a class="next">›</a>
|
145 |
-
<a class="close">×</a>
|
146 |
-
<a class="play-pause"></a>
|
147 |
-
<ol class="indicator"></ol>
|
148 |
-
</div>
|
149 |
-
<!-- The template to display files available for upload -->
|
150 |
-
<script id="template-upload" type="text/x-tmpl">
|
151 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
152 |
-
<tr class="template-upload fade">
|
153 |
-
<td>
|
154 |
-
<span class="preview"></span>
|
155 |
-
</td>
|
156 |
-
<td>
|
157 |
-
{% if (window.innerWidth > 480 || !o.options.loadImageFileTypes.test(file.type)) { %}
|
158 |
-
<p class="name">{%=file.name%}</p>
|
159 |
-
{% } %}
|
160 |
-
<strong class="error"></strong>
|
161 |
-
</td>
|
162 |
-
<td>
|
163 |
-
<p class="size">Processing...</p>
|
164 |
-
<div class="progress"></div>
|
165 |
-
</td>
|
166 |
-
<td>
|
167 |
-
{% if (!i && !o.options.autoUpload) { %}
|
168 |
-
<button class="start" disabled>Start</button>
|
169 |
-
{% } %}
|
170 |
-
{% if (!i) { %}
|
171 |
-
<button class="cancel">Cancel</button>
|
172 |
-
{% } %}
|
173 |
-
</td>
|
174 |
-
</tr>
|
175 |
-
{% } %}
|
176 |
-
</script>
|
177 |
-
<!-- The template to display files available for download -->
|
178 |
-
<script id="template-download" type="text/x-tmpl">
|
179 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
180 |
-
<tr class="template-download fade">
|
181 |
-
<td>
|
182 |
-
<span class="preview">
|
183 |
-
{% if (file.thumbnailUrl) { %}
|
184 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
|
185 |
-
{% } %}
|
186 |
-
</span>
|
187 |
-
</td>
|
188 |
-
<td>
|
189 |
-
{% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
|
190 |
-
<p class="name">
|
191 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
|
192 |
-
</p>
|
193 |
-
{% } %}
|
194 |
-
{% if (file.error) { %}
|
195 |
-
<div><span class="error">Error</span> {%=file.error%}</div>
|
196 |
-
{% } %}
|
197 |
-
</td>
|
198 |
-
<td>
|
199 |
-
<span class="size">{%=o.formatFileSize(file.size)%}</span>
|
200 |
-
</td>
|
201 |
-
<td>
|
202 |
-
<button class="delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>Delete</button>
|
203 |
-
<input type="checkbox" name="delete" value="1" class="toggle">
|
204 |
-
</td>
|
205 |
-
</tr>
|
206 |
-
{% } %}
|
207 |
-
</script>
|
208 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
|
209 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha384-Dziy8F2VlJQLMShA6FHWNul/veM9bCkRUaLqr199K94ntO5QUrLJBEbYegdSkkqX" crossorigin="anonymous"></script>
|
210 |
-
<!-- The Templates plugin is included to render the upload/download listings -->
|
211 |
-
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
|
212 |
-
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
|
213 |
-
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
214 |
-
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
|
215 |
-
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
216 |
-
<!-- blueimp Gallery script -->
|
217 |
-
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
|
218 |
-
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
219 |
-
<script src="js/jquery.iframe-transport.js"></script>
|
220 |
-
<!-- The basic File Upload plugin -->
|
221 |
-
<script src="js/jquery.fileupload.js"></script>
|
222 |
-
<!-- The File Upload processing plugin -->
|
223 |
-
<script src="js/jquery.fileupload-process.js"></script>
|
224 |
-
<!-- The File Upload image preview & resize plugin -->
|
225 |
-
<script src="js/jquery.fileupload-image.js"></script>
|
226 |
-
<!-- The File Upload audio preview plugin -->
|
227 |
-
<script src="js/jquery.fileupload-audio.js"></script>
|
228 |
-
<!-- The File Upload video preview plugin -->
|
229 |
-
<script src="js/jquery.fileupload-video.js"></script>
|
230 |
-
<!-- The File Upload validation plugin -->
|
231 |
-
<script src="js/jquery.fileupload-validate.js"></script>
|
232 |
-
<!-- The File Upload user interface plugin -->
|
233 |
-
<script src="js/jquery.fileupload-ui.js"></script>
|
234 |
-
<!-- The File Upload jQuery UI plugin -->
|
235 |
-
<script src="js/jquery.fileupload-jquery-ui.js"></script>
|
236 |
-
<!-- The main application script -->
|
237 |
-
<script src="js/main.js"></script>
|
238 |
-
<script>
|
239 |
-
// Initialize the jQuery UI theme switcher:
|
240 |
-
$('#theme-switcher').change(function () {
|
241 |
-
var theme = $('#theme');
|
242 |
-
theme.prop(
|
243 |
-
'href',
|
244 |
-
theme.prop('href').replace(
|
245 |
-
/[\w\-]+\/jquery-ui.css/,
|
246 |
-
$(this).val() + '/jquery-ui.css'
|
247 |
-
)
|
248 |
-
);
|
249 |
-
});
|
250 |
-
</script>
|
251 |
-
<!-- The XDomainRequest Transport is included for cross-domain file deletion for IE 8 and IE 9 -->
|
252 |
-
<!--[if (gte IE 8)&(lt IE 10)]>
|
253 |
-
<script src="js/cors/jquery.xdr-transport.js"></script>
|
254 |
-
<![endif]-->
|
255 |
-
</body>
|
256 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/app.js
DELETED
@@ -1,101 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Plugin Angular JS Example
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global window, angular */
|
14 |
-
|
15 |
-
;(function () {
|
16 |
-
'use strict';
|
17 |
-
|
18 |
-
var isOnGitHub = window.location.hostname === 'blueimp.github.io',
|
19 |
-
url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';
|
20 |
-
|
21 |
-
angular.module('demo', [
|
22 |
-
'blueimp.fileupload'
|
23 |
-
])
|
24 |
-
.config([
|
25 |
-
'$httpProvider', 'fileUploadProvider',
|
26 |
-
function ($httpProvider, fileUploadProvider) {
|
27 |
-
delete $httpProvider.defaults.headers.common['X-Requested-With'];
|
28 |
-
fileUploadProvider.defaults.redirect = window.location.href.replace(
|
29 |
-
/\/[^\/]*$/,
|
30 |
-
'/cors/result.html?%s'
|
31 |
-
);
|
32 |
-
if (isOnGitHub) {
|
33 |
-
// Demo settings:
|
34 |
-
angular.extend(fileUploadProvider.defaults, {
|
35 |
-
// Enable image resizing, except for Android and Opera,
|
36 |
-
// which actually support image resizing, but fail to
|
37 |
-
// send Blob objects via XHR requests:
|
38 |
-
disableImageResize: /Android(?!.*Chrome)|Opera/
|
39 |
-
.test(window.navigator.userAgent),
|
40 |
-
maxFileSize: 999000,
|
41 |
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
|
42 |
-
});
|
43 |
-
}
|
44 |
-
}
|
45 |
-
])
|
46 |
-
|
47 |
-
.controller('DemoFileUploadController', [
|
48 |
-
'$scope', '$http', '$filter', '$window',
|
49 |
-
function ($scope, $http) {
|
50 |
-
$scope.options = {
|
51 |
-
url: url
|
52 |
-
};
|
53 |
-
if (!isOnGitHub) {
|
54 |
-
$scope.loadingFiles = true;
|
55 |
-
$http.get(url)
|
56 |
-
.then(
|
57 |
-
function (response) {
|
58 |
-
$scope.loadingFiles = false;
|
59 |
-
$scope.queue = response.data.files || [];
|
60 |
-
},
|
61 |
-
function () {
|
62 |
-
$scope.loadingFiles = false;
|
63 |
-
}
|
64 |
-
);
|
65 |
-
}
|
66 |
-
}
|
67 |
-
])
|
68 |
-
|
69 |
-
.controller('FileDestroyController', [
|
70 |
-
'$scope', '$http',
|
71 |
-
function ($scope, $http) {
|
72 |
-
var file = $scope.file,
|
73 |
-
state;
|
74 |
-
if (file.url) {
|
75 |
-
file.$state = function () {
|
76 |
-
return state;
|
77 |
-
};
|
78 |
-
file.$destroy = function () {
|
79 |
-
state = 'pending';
|
80 |
-
return $http({
|
81 |
-
url: file.deleteUrl,
|
82 |
-
method: file.deleteType
|
83 |
-
}).then(
|
84 |
-
function () {
|
85 |
-
state = 'resolved';
|
86 |
-
$scope.clear(file);
|
87 |
-
},
|
88 |
-
function () {
|
89 |
-
state = 'rejected';
|
90 |
-
}
|
91 |
-
);
|
92 |
-
};
|
93 |
-
} else if (!file.$cancel && !file._index) {
|
94 |
-
file.$cancel = function () {
|
95 |
-
$scope.clear(file);
|
96 |
-
};
|
97 |
-
}
|
98 |
-
}
|
99 |
-
]);
|
100 |
-
|
101 |
-
}());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/cors/jquery.postmessage-transport.js
DELETED
@@ -1,126 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery postMessage Transport Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2011, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* global define, require, window, document */
|
13 |
-
|
14 |
-
;(function (factory) {
|
15 |
-
'use strict';
|
16 |
-
if (typeof define === 'function' && define.amd) {
|
17 |
-
// Register as an anonymous AMD module:
|
18 |
-
define(['jquery'], factory);
|
19 |
-
} else if (typeof exports === 'object') {
|
20 |
-
// Node/CommonJS:
|
21 |
-
factory(require('jquery'));
|
22 |
-
} else {
|
23 |
-
// Browser globals:
|
24 |
-
factory(window.jQuery);
|
25 |
-
}
|
26 |
-
}(function ($) {
|
27 |
-
'use strict';
|
28 |
-
|
29 |
-
var counter = 0,
|
30 |
-
names = [
|
31 |
-
'accepts',
|
32 |
-
'cache',
|
33 |
-
'contents',
|
34 |
-
'contentType',
|
35 |
-
'crossDomain',
|
36 |
-
'data',
|
37 |
-
'dataType',
|
38 |
-
'headers',
|
39 |
-
'ifModified',
|
40 |
-
'mimeType',
|
41 |
-
'password',
|
42 |
-
'processData',
|
43 |
-
'timeout',
|
44 |
-
'traditional',
|
45 |
-
'type',
|
46 |
-
'url',
|
47 |
-
'username'
|
48 |
-
],
|
49 |
-
convert = function (p) {
|
50 |
-
return p;
|
51 |
-
};
|
52 |
-
|
53 |
-
$.ajaxSetup({
|
54 |
-
converters: {
|
55 |
-
'postmessage text': convert,
|
56 |
-
'postmessage json': convert,
|
57 |
-
'postmessage html': convert
|
58 |
-
}
|
59 |
-
});
|
60 |
-
|
61 |
-
$.ajaxTransport('postmessage', function (options) {
|
62 |
-
if (options.postMessage && window.postMessage) {
|
63 |
-
var iframe,
|
64 |
-
loc = $('<a>').prop('href', options.postMessage)[0],
|
65 |
-
target = loc.protocol + '//' + loc.host,
|
66 |
-
xhrUpload = options.xhr().upload;
|
67 |
-
// IE always includes the port for the host property of a link
|
68 |
-
// element, but not in the location.host or origin property for the
|
69 |
-
// default http port 80 and https port 443, so we strip it:
|
70 |
-
if (/^(http:\/\/.+:80)|(https:\/\/.+:443)$/.test(target)) {
|
71 |
-
target = target.replace(/:(80|443)$/, '');
|
72 |
-
}
|
73 |
-
return {
|
74 |
-
send: function (_, completeCallback) {
|
75 |
-
counter += 1;
|
76 |
-
var message = {
|
77 |
-
id: 'postmessage-transport-' + counter
|
78 |
-
},
|
79 |
-
eventName = 'message.' + message.id;
|
80 |
-
iframe = $(
|
81 |
-
'<iframe style="display:none;" src="' +
|
82 |
-
options.postMessage + '" name="' +
|
83 |
-
message.id + '"></iframe>'
|
84 |
-
).bind('load', function () {
|
85 |
-
$.each(names, function (i, name) {
|
86 |
-
message[name] = options[name];
|
87 |
-
});
|
88 |
-
message.dataType = message.dataType.replace('postmessage ', '');
|
89 |
-
$(window).bind(eventName, function (e) {
|
90 |
-
e = e.originalEvent;
|
91 |
-
var data = e.data,
|
92 |
-
ev;
|
93 |
-
if (e.origin === target && data.id === message.id) {
|
94 |
-
if (data.type === 'progress') {
|
95 |
-
ev = document.createEvent('Event');
|
96 |
-
ev.initEvent(data.type, false, true);
|
97 |
-
$.extend(ev, data);
|
98 |
-
xhrUpload.dispatchEvent(ev);
|
99 |
-
} else {
|
100 |
-
completeCallback(
|
101 |
-
data.status,
|
102 |
-
data.statusText,
|
103 |
-
{postmessage: data.result},
|
104 |
-
data.headers
|
105 |
-
);
|
106 |
-
iframe.remove();
|
107 |
-
$(window).unbind(eventName);
|
108 |
-
}
|
109 |
-
}
|
110 |
-
});
|
111 |
-
iframe[0].contentWindow.postMessage(
|
112 |
-
message,
|
113 |
-
target
|
114 |
-
);
|
115 |
-
}).appendTo(document.body);
|
116 |
-
},
|
117 |
-
abort: function () {
|
118 |
-
if (iframe) {
|
119 |
-
iframe.remove();
|
120 |
-
}
|
121 |
-
}
|
122 |
-
};
|
123 |
-
}
|
124 |
-
});
|
125 |
-
|
126 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/cors/jquery.xdr-transport.js
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery XDomainRequest Transport Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2011, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*
|
11 |
-
* Based on Julian Aubourg's ajaxHooks xdr.js:
|
12 |
-
* https://github.com/jaubourg/ajaxHooks/
|
13 |
-
*/
|
14 |
-
|
15 |
-
/* global define, require, window, XDomainRequest */
|
16 |
-
|
17 |
-
;(function (factory) {
|
18 |
-
'use strict';
|
19 |
-
if (typeof define === 'function' && define.amd) {
|
20 |
-
// Register as an anonymous AMD module:
|
21 |
-
define(['jquery'], factory);
|
22 |
-
} else if (typeof exports === 'object') {
|
23 |
-
// Node/CommonJS:
|
24 |
-
factory(require('jquery'));
|
25 |
-
} else {
|
26 |
-
// Browser globals:
|
27 |
-
factory(window.jQuery);
|
28 |
-
}
|
29 |
-
}(function ($) {
|
30 |
-
'use strict';
|
31 |
-
if (window.XDomainRequest && !$.support.cors) {
|
32 |
-
$.ajaxTransport(function (s) {
|
33 |
-
if (s.crossDomain && s.async) {
|
34 |
-
if (s.timeout) {
|
35 |
-
s.xdrTimeout = s.timeout;
|
36 |
-
delete s.timeout;
|
37 |
-
}
|
38 |
-
var xdr;
|
39 |
-
return {
|
40 |
-
send: function (headers, completeCallback) {
|
41 |
-
var addParamChar = /\?/.test(s.url) ? '&' : '?';
|
42 |
-
function callback(status, statusText, responses, responseHeaders) {
|
43 |
-
xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
|
44 |
-
xdr = null;
|
45 |
-
completeCallback(status, statusText, responses, responseHeaders);
|
46 |
-
}
|
47 |
-
xdr = new XDomainRequest();
|
48 |
-
// XDomainRequest only supports GET and POST:
|
49 |
-
if (s.type === 'DELETE') {
|
50 |
-
s.url = s.url + addParamChar + '_method=DELETE';
|
51 |
-
s.type = 'POST';
|
52 |
-
} else if (s.type === 'PUT') {
|
53 |
-
s.url = s.url + addParamChar + '_method=PUT';
|
54 |
-
s.type = 'POST';
|
55 |
-
} else if (s.type === 'PATCH') {
|
56 |
-
s.url = s.url + addParamChar + '_method=PATCH';
|
57 |
-
s.type = 'POST';
|
58 |
-
}
|
59 |
-
xdr.open(s.type, s.url);
|
60 |
-
xdr.onload = function () {
|
61 |
-
callback(
|
62 |
-
200,
|
63 |
-
'OK',
|
64 |
-
{text: xdr.responseText},
|
65 |
-
'Content-Type: ' + xdr.contentType
|
66 |
-
);
|
67 |
-
};
|
68 |
-
xdr.onerror = function () {
|
69 |
-
callback(404, 'Not Found');
|
70 |
-
};
|
71 |
-
if (s.xdrTimeout) {
|
72 |
-
xdr.ontimeout = function () {
|
73 |
-
callback(0, 'timeout');
|
74 |
-
};
|
75 |
-
xdr.timeout = s.xdrTimeout;
|
76 |
-
}
|
77 |
-
xdr.send((s.hasContent && s.data) || null);
|
78 |
-
},
|
79 |
-
abort: function () {
|
80 |
-
if (xdr) {
|
81 |
-
xdr.onerror = $.noop();
|
82 |
-
xdr.abort();
|
83 |
-
}
|
84 |
-
}
|
85 |
-
};
|
86 |
-
}
|
87 |
-
});
|
88 |
-
}
|
89 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-angular.js
DELETED
@@ -1,438 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload AngularJS Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, angular, require */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'angular',
|
22 |
-
'./jquery.fileupload-image',
|
23 |
-
'./jquery.fileupload-audio',
|
24 |
-
'./jquery.fileupload-video',
|
25 |
-
'./jquery.fileupload-validate'
|
26 |
-
], factory);
|
27 |
-
} else if (typeof exports === 'object') {
|
28 |
-
// Node/CommonJS:
|
29 |
-
factory(
|
30 |
-
require('jquery'),
|
31 |
-
require('angular'),
|
32 |
-
require('./jquery.fileupload-image'),
|
33 |
-
require('./jquery.fileupload-audio'),
|
34 |
-
require('./jquery.fileupload-video'),
|
35 |
-
require('./jquery.fileupload-validate')
|
36 |
-
);
|
37 |
-
} else {
|
38 |
-
factory();
|
39 |
-
}
|
40 |
-
}(function () {
|
41 |
-
'use strict';
|
42 |
-
|
43 |
-
angular.module('blueimp.fileupload', [])
|
44 |
-
|
45 |
-
// The fileUpload service provides configuration options
|
46 |
-
// for the fileUpload directive and default handlers for
|
47 |
-
// File Upload events:
|
48 |
-
.provider('fileUpload', function () {
|
49 |
-
var scopeEvalAsync = function (expression) {
|
50 |
-
var scope = angular.element(this)
|
51 |
-
.fileupload('option', 'scope');
|
52 |
-
// Schedule a new $digest cycle if not already inside of one
|
53 |
-
// and evaluate the given expression:
|
54 |
-
scope.$evalAsync(expression);
|
55 |
-
},
|
56 |
-
addFileMethods = function (scope, data) {
|
57 |
-
var files = data.files,
|
58 |
-
file = files[0];
|
59 |
-
angular.forEach(files, function (file, index) {
|
60 |
-
file._index = index;
|
61 |
-
file.$state = function () {
|
62 |
-
return data.state();
|
63 |
-
};
|
64 |
-
file.$processing = function () {
|
65 |
-
return data.processing();
|
66 |
-
};
|
67 |
-
file.$progress = function () {
|
68 |
-
return data.progress();
|
69 |
-
};
|
70 |
-
file.$response = function () {
|
71 |
-
return data.response();
|
72 |
-
};
|
73 |
-
});
|
74 |
-
file.$submit = function () {
|
75 |
-
if (!file.error) {
|
76 |
-
return data.submit();
|
77 |
-
}
|
78 |
-
};
|
79 |
-
file.$cancel = function () {
|
80 |
-
return data.abort();
|
81 |
-
};
|
82 |
-
},
|
83 |
-
$config;
|
84 |
-
$config = this.defaults = {
|
85 |
-
handleResponse: function (e, data) {
|
86 |
-
var files = data.result && data.result.files;
|
87 |
-
if (files) {
|
88 |
-
data.scope.replace(data.files, files);
|
89 |
-
} else if (data.errorThrown ||
|
90 |
-
data.textStatus === 'error') {
|
91 |
-
data.files[0].error = data.errorThrown ||
|
92 |
-
data.textStatus;
|
93 |
-
}
|
94 |
-
},
|
95 |
-
add: function (e, data) {
|
96 |
-
if (e.isDefaultPrevented()) {
|
97 |
-
return false;
|
98 |
-
}
|
99 |
-
var scope = data.scope,
|
100 |
-
filesCopy = [];
|
101 |
-
angular.forEach(data.files, function (file) {
|
102 |
-
filesCopy.push(file);
|
103 |
-
});
|
104 |
-
scope.$parent.$applyAsync(function () {
|
105 |
-
addFileMethods(scope, data);
|
106 |
-
var method = scope.option('prependFiles') ?
|
107 |
-
'unshift' : 'push';
|
108 |
-
Array.prototype[method].apply(scope.queue, data.files);
|
109 |
-
});
|
110 |
-
data.process(function () {
|
111 |
-
return scope.process(data);
|
112 |
-
}).always(function () {
|
113 |
-
scope.$parent.$applyAsync(function () {
|
114 |
-
addFileMethods(scope, data);
|
115 |
-
scope.replace(filesCopy, data.files);
|
116 |
-
});
|
117 |
-
}).then(function () {
|
118 |
-
if ((scope.option('autoUpload') ||
|
119 |
-
data.autoUpload) &&
|
120 |
-
data.autoUpload !== false) {
|
121 |
-
data.submit();
|
122 |
-
}
|
123 |
-
});
|
124 |
-
},
|
125 |
-
done: function (e, data) {
|
126 |
-
if (e.isDefaultPrevented()) {
|
127 |
-
return false;
|
128 |
-
}
|
129 |
-
var that = this;
|
130 |
-
data.scope.$apply(function () {
|
131 |
-
data.handleResponse.call(that, e, data);
|
132 |
-
});
|
133 |
-
},
|
134 |
-
fail: function (e, data) {
|
135 |
-
if (e.isDefaultPrevented()) {
|
136 |
-
return false;
|
137 |
-
}
|
138 |
-
var that = this,
|
139 |
-
scope = data.scope;
|
140 |
-
if (data.errorThrown === 'abort') {
|
141 |
-
scope.clear(data.files);
|
142 |
-
return;
|
143 |
-
}
|
144 |
-
scope.$apply(function () {
|
145 |
-
data.handleResponse.call(that, e, data);
|
146 |
-
});
|
147 |
-
},
|
148 |
-
stop: scopeEvalAsync,
|
149 |
-
processstart: scopeEvalAsync,
|
150 |
-
processstop: scopeEvalAsync,
|
151 |
-
getNumberOfFiles: function () {
|
152 |
-
var scope = this.scope;
|
153 |
-
return scope.queue.length - scope.processing();
|
154 |
-
},
|
155 |
-
dataType: 'json',
|
156 |
-
autoUpload: false
|
157 |
-
};
|
158 |
-
this.$get = [
|
159 |
-
function () {
|
160 |
-
return {
|
161 |
-
defaults: $config
|
162 |
-
};
|
163 |
-
}
|
164 |
-
];
|
165 |
-
})
|
166 |
-
|
167 |
-
// Format byte numbers to readable presentations:
|
168 |
-
.provider('formatFileSizeFilter', function () {
|
169 |
-
var $config = {
|
170 |
-
// Byte units following the IEC format
|
171 |
-
// http://en.wikipedia.org/wiki/Kilobyte
|
172 |
-
units: [
|
173 |
-
{size: 1000000000, suffix: ' GB'},
|
174 |
-
{size: 1000000, suffix: ' MB'},
|
175 |
-
{size: 1000, suffix: ' KB'}
|
176 |
-
]
|
177 |
-
};
|
178 |
-
this.defaults = $config;
|
179 |
-
this.$get = function () {
|
180 |
-
return function (bytes) {
|
181 |
-
if (!angular.isNumber(bytes)) {
|
182 |
-
return '';
|
183 |
-
}
|
184 |
-
var unit = true,
|
185 |
-
i = 0,
|
186 |
-
prefix,
|
187 |
-
suffix;
|
188 |
-
while (unit) {
|
189 |
-
unit = $config.units[i];
|
190 |
-
prefix = unit.prefix || '';
|
191 |
-
suffix = unit.suffix || '';
|
192 |
-
if (i === $config.units.length - 1 || bytes >= unit.size) {
|
193 |
-
return prefix + (bytes / unit.size).toFixed(2) + suffix;
|
194 |
-
}
|
195 |
-
i += 1;
|
196 |
-
}
|
197 |
-
};
|
198 |
-
};
|
199 |
-
})
|
200 |
-
|
201 |
-
// The FileUploadController initializes the fileupload widget and
|
202 |
-
// provides scope methods to control the File Upload functionality:
|
203 |
-
.controller('FileUploadController', [
|
204 |
-
'$scope', '$element', '$attrs', '$window', 'fileUpload','$q',
|
205 |
-
function ($scope, $element, $attrs, $window, fileUpload, $q) {
|
206 |
-
var uploadMethods = {
|
207 |
-
progress: function () {
|
208 |
-
return $element.fileupload('progress');
|
209 |
-
},
|
210 |
-
active: function () {
|
211 |
-
return $element.fileupload('active');
|
212 |
-
},
|
213 |
-
option: function (option, data) {
|
214 |
-
if (arguments.length === 1) {
|
215 |
-
return $element.fileupload('option', option);
|
216 |
-
}
|
217 |
-
$element.fileupload('option', option, data);
|
218 |
-
},
|
219 |
-
add: function (data) {
|
220 |
-
return $element.fileupload('add', data);
|
221 |
-
},
|
222 |
-
send: function (data) {
|
223 |
-
return $element.fileupload('send', data);
|
224 |
-
},
|
225 |
-
process: function (data) {
|
226 |
-
return $element.fileupload('process', data);
|
227 |
-
},
|
228 |
-
processing: function (data) {
|
229 |
-
return $element.fileupload('processing', data);
|
230 |
-
}
|
231 |
-
};
|
232 |
-
$scope.disabled = !$window.jQuery.support.fileInput;
|
233 |
-
$scope.queue = $scope.queue || [];
|
234 |
-
$scope.clear = function (files) {
|
235 |
-
var queue = this.queue,
|
236 |
-
i = queue.length,
|
237 |
-
file = files,
|
238 |
-
length = 1;
|
239 |
-
if (angular.isArray(files)) {
|
240 |
-
file = files[0];
|
241 |
-
length = files.length;
|
242 |
-
}
|
243 |
-
while (i) {
|
244 |
-
i -= 1;
|
245 |
-
if (queue[i] === file) {
|
246 |
-
return queue.splice(i, length);
|
247 |
-
}
|
248 |
-
}
|
249 |
-
};
|
250 |
-
$scope.replace = function (oldFiles, newFiles) {
|
251 |
-
var queue = this.queue,
|
252 |
-
file = oldFiles[0],
|
253 |
-
i,
|
254 |
-
j;
|
255 |
-
for (i = 0; i < queue.length; i += 1) {
|
256 |
-
if (queue[i] === file) {
|
257 |
-
for (j = 0; j < newFiles.length; j += 1) {
|
258 |
-
queue[i + j] = newFiles[j];
|
259 |
-
}
|
260 |
-
return;
|
261 |
-
}
|
262 |
-
}
|
263 |
-
};
|
264 |
-
$scope.applyOnQueue = function (method) {
|
265 |
-
var list = this.queue.slice(0),
|
266 |
-
i,
|
267 |
-
file,
|
268 |
-
promises = [];
|
269 |
-
for (i = 0; i < list.length; i += 1) {
|
270 |
-
file = list[i];
|
271 |
-
if (file[method]) {
|
272 |
-
promises.push(file[method]());
|
273 |
-
}
|
274 |
-
}
|
275 |
-
return $q.all(promises);
|
276 |
-
};
|
277 |
-
$scope.submit = function () {
|
278 |
-
return this.applyOnQueue('$submit');
|
279 |
-
};
|
280 |
-
$scope.cancel = function () {
|
281 |
-
return this.applyOnQueue('$cancel');
|
282 |
-
};
|
283 |
-
// Add upload methods to the scope:
|
284 |
-
angular.extend($scope, uploadMethods);
|
285 |
-
// The fileupload widget will initialize with
|
286 |
-
// the options provided via "data-"-parameters,
|
287 |
-
// as well as those given via options object:
|
288 |
-
$element.fileupload(angular.extend(
|
289 |
-
{scope: $scope},
|
290 |
-
fileUpload.defaults
|
291 |
-
)).on('fileuploadadd', function (e, data) {
|
292 |
-
data.scope = $scope;
|
293 |
-
}).on('fileuploadfail', function (e, data) {
|
294 |
-
if (data.errorThrown === 'abort') {
|
295 |
-
return;
|
296 |
-
}
|
297 |
-
if (data.dataType &&
|
298 |
-
data.dataType.indexOf('json') === data.dataType.length - 4) {
|
299 |
-
try {
|
300 |
-
data.result = angular.fromJson(data.jqXHR.responseText);
|
301 |
-
} catch (ignore) {}
|
302 |
-
}
|
303 |
-
}).on([
|
304 |
-
'fileuploadadd',
|
305 |
-
'fileuploadsubmit',
|
306 |
-
'fileuploadsend',
|
307 |
-
'fileuploaddone',
|
308 |
-
'fileuploadfail',
|
309 |
-
'fileuploadalways',
|
310 |
-
'fileuploadprogress',
|
311 |
-
'fileuploadprogressall',
|
312 |
-
'fileuploadstart',
|
313 |
-
'fileuploadstop',
|
314 |
-
'fileuploadchange',
|
315 |
-
'fileuploadpaste',
|
316 |
-
'fileuploaddrop',
|
317 |
-
'fileuploaddragover',
|
318 |
-
'fileuploadchunkbeforesend',
|
319 |
-
'fileuploadchunksend',
|
320 |
-
'fileuploadchunkdone',
|
321 |
-
'fileuploadchunkfail',
|
322 |
-
'fileuploadchunkalways',
|
323 |
-
'fileuploadprocessstart',
|
324 |
-
'fileuploadprocess',
|
325 |
-
'fileuploadprocessdone',
|
326 |
-
'fileuploadprocessfail',
|
327 |
-
'fileuploadprocessalways',
|
328 |
-
'fileuploadprocessstop'
|
329 |
-
].join(' '), function (e, data) {
|
330 |
-
$scope.$parent.$applyAsync(function () {
|
331 |
-
if ($scope.$emit(e.type, data).defaultPrevented) {
|
332 |
-
e.preventDefault();
|
333 |
-
}
|
334 |
-
});
|
335 |
-
}).on('remove', function () {
|
336 |
-
// Remove upload methods from the scope,
|
337 |
-
// when the widget is removed:
|
338 |
-
var method;
|
339 |
-
for (method in uploadMethods) {
|
340 |
-
if (uploadMethods.hasOwnProperty(method)) {
|
341 |
-
delete $scope[method];
|
342 |
-
}
|
343 |
-
}
|
344 |
-
});
|
345 |
-
// Observe option changes:
|
346 |
-
$scope.$watch(
|
347 |
-
$attrs.fileUpload,
|
348 |
-
function (newOptions) {
|
349 |
-
if (newOptions) {
|
350 |
-
$element.fileupload('option', newOptions);
|
351 |
-
}
|
352 |
-
}
|
353 |
-
);
|
354 |
-
}
|
355 |
-
])
|
356 |
-
|
357 |
-
// Provide File Upload progress feedback:
|
358 |
-
.controller('FileUploadProgressController', [
|
359 |
-
'$scope', '$attrs', '$parse',
|
360 |
-
function ($scope, $attrs, $parse) {
|
361 |
-
var fn = $parse($attrs.fileUploadProgress),
|
362 |
-
update = function () {
|
363 |
-
var progress = fn($scope);
|
364 |
-
if (!progress || !progress.total) {
|
365 |
-
return;
|
366 |
-
}
|
367 |
-
$scope.num = Math.floor(
|
368 |
-
progress.loaded / progress.total * 100
|
369 |
-
);
|
370 |
-
};
|
371 |
-
update();
|
372 |
-
$scope.$watch(
|
373 |
-
$attrs.fileUploadProgress + '.loaded',
|
374 |
-
function (newValue, oldValue) {
|
375 |
-
if (newValue !== oldValue) {
|
376 |
-
update();
|
377 |
-
}
|
378 |
-
}
|
379 |
-
);
|
380 |
-
}
|
381 |
-
])
|
382 |
-
|
383 |
-
// Display File Upload previews:
|
384 |
-
.controller('FileUploadPreviewController', [
|
385 |
-
'$scope', '$element', '$attrs',
|
386 |
-
function ($scope, $element, $attrs) {
|
387 |
-
$scope.$watch(
|
388 |
-
$attrs.fileUploadPreview + '.preview',
|
389 |
-
function (preview) {
|
390 |
-
$element.empty();
|
391 |
-
if (preview) {
|
392 |
-
$element.append(preview);
|
393 |
-
}
|
394 |
-
}
|
395 |
-
);
|
396 |
-
}
|
397 |
-
])
|
398 |
-
|
399 |
-
.directive('fileUpload', function () {
|
400 |
-
return {
|
401 |
-
controller: 'FileUploadController',
|
402 |
-
scope: true
|
403 |
-
};
|
404 |
-
})
|
405 |
-
|
406 |
-
.directive('fileUploadProgress', function () {
|
407 |
-
return {
|
408 |
-
controller: 'FileUploadProgressController',
|
409 |
-
scope: true
|
410 |
-
};
|
411 |
-
})
|
412 |
-
|
413 |
-
.directive('fileUploadPreview', function () {
|
414 |
-
return {
|
415 |
-
controller: 'FileUploadPreviewController'
|
416 |
-
};
|
417 |
-
})
|
418 |
-
|
419 |
-
// Enhance the HTML5 download attribute to
|
420 |
-
// allow drag&drop of files to the desktop:
|
421 |
-
.directive('download', function () {
|
422 |
-
return function (scope, elm) {
|
423 |
-
elm.on('dragstart', function (e) {
|
424 |
-
try {
|
425 |
-
e.originalEvent.dataTransfer.setData(
|
426 |
-
'DownloadURL',
|
427 |
-
[
|
428 |
-
'application/octet-stream',
|
429 |
-
elm.prop('download'),
|
430 |
-
elm.prop('href')
|
431 |
-
].join(':')
|
432 |
-
);
|
433 |
-
} catch (ignore) {}
|
434 |
-
});
|
435 |
-
};
|
436 |
-
});
|
437 |
-
|
438 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-audio.js
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Audio Preview Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window, document */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'load-image',
|
22 |
-
'./jquery.fileupload-process'
|
23 |
-
], factory);
|
24 |
-
} else if (typeof exports === 'object') {
|
25 |
-
// Node/CommonJS:
|
26 |
-
factory(
|
27 |
-
require('jquery'),
|
28 |
-
require('blueimp-load-image/js/load-image'),
|
29 |
-
require('./jquery.fileupload-process')
|
30 |
-
);
|
31 |
-
} else {
|
32 |
-
// Browser globals:
|
33 |
-
factory(
|
34 |
-
window.jQuery,
|
35 |
-
window.loadImage
|
36 |
-
);
|
37 |
-
}
|
38 |
-
}(function ($, loadImage) {
|
39 |
-
'use strict';
|
40 |
-
|
41 |
-
// Prepend to the default processQueue:
|
42 |
-
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
43 |
-
{
|
44 |
-
action: 'loadAudio',
|
45 |
-
// Use the action as prefix for the "@" options:
|
46 |
-
prefix: true,
|
47 |
-
fileTypes: '@',
|
48 |
-
maxFileSize: '@',
|
49 |
-
disabled: '@disableAudioPreview'
|
50 |
-
},
|
51 |
-
{
|
52 |
-
action: 'setAudio',
|
53 |
-
name: '@audioPreviewName',
|
54 |
-
disabled: '@disableAudioPreview'
|
55 |
-
}
|
56 |
-
);
|
57 |
-
|
58 |
-
// The File Upload Audio Preview plugin extends the fileupload widget
|
59 |
-
// with audio preview functionality:
|
60 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
61 |
-
|
62 |
-
options: {
|
63 |
-
// The regular expression for the types of audio files to load,
|
64 |
-
// matched against the file type:
|
65 |
-
loadAudioFileTypes: /^audio\/.*$/
|
66 |
-
},
|
67 |
-
|
68 |
-
_audioElement: document.createElement('audio'),
|
69 |
-
|
70 |
-
processActions: {
|
71 |
-
|
72 |
-
// Loads the audio file given via data.files and data.index
|
73 |
-
// as audio element if the browser supports playing it.
|
74 |
-
// Accepts the options fileTypes (regular expression)
|
75 |
-
// and maxFileSize (integer) to limit the files to load:
|
76 |
-
loadAudio: function (data, options) {
|
77 |
-
if (options.disabled) {
|
78 |
-
return data;
|
79 |
-
}
|
80 |
-
var file = data.files[data.index],
|
81 |
-
url,
|
82 |
-
audio;
|
83 |
-
if (this._audioElement.canPlayType &&
|
84 |
-
this._audioElement.canPlayType(file.type) &&
|
85 |
-
($.type(options.maxFileSize) !== 'number' ||
|
86 |
-
file.size <= options.maxFileSize) &&
|
87 |
-
(!options.fileTypes ||
|
88 |
-
options.fileTypes.test(file.type))) {
|
89 |
-
url = loadImage.createObjectURL(file);
|
90 |
-
if (url) {
|
91 |
-
audio = this._audioElement.cloneNode(false);
|
92 |
-
audio.src = url;
|
93 |
-
audio.controls = true;
|
94 |
-
data.audio = audio;
|
95 |
-
return data;
|
96 |
-
}
|
97 |
-
}
|
98 |
-
return data;
|
99 |
-
},
|
100 |
-
|
101 |
-
// Sets the audio element as a property of the file object:
|
102 |
-
setAudio: function (data, options) {
|
103 |
-
if (data.audio && !options.disabled) {
|
104 |
-
data.files[data.index][options.name || 'preview'] = data.audio;
|
105 |
-
}
|
106 |
-
return data;
|
107 |
-
}
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
});
|
112 |
-
|
113 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-image.js
DELETED
@@ -1,326 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Image Preview & Resize Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window, Blob */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'load-image',
|
22 |
-
'load-image-meta',
|
23 |
-
'load-image-scale',
|
24 |
-
'load-image-exif',
|
25 |
-
'canvas-to-blob',
|
26 |
-
'./jquery.fileupload-process'
|
27 |
-
], factory);
|
28 |
-
} else if (typeof exports === 'object') {
|
29 |
-
// Node/CommonJS:
|
30 |
-
factory(
|
31 |
-
require('jquery'),
|
32 |
-
require('blueimp-load-image/js/load-image'),
|
33 |
-
require('blueimp-load-image/js/load-image-meta'),
|
34 |
-
require('blueimp-load-image/js/load-image-scale'),
|
35 |
-
require('blueimp-load-image/js/load-image-exif'),
|
36 |
-
require('blueimp-canvas-to-blob'),
|
37 |
-
require('./jquery.fileupload-process')
|
38 |
-
);
|
39 |
-
} else {
|
40 |
-
// Browser globals:
|
41 |
-
factory(
|
42 |
-
window.jQuery,
|
43 |
-
window.loadImage
|
44 |
-
);
|
45 |
-
}
|
46 |
-
}(function ($, loadImage) {
|
47 |
-
'use strict';
|
48 |
-
|
49 |
-
// Prepend to the default processQueue:
|
50 |
-
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
51 |
-
{
|
52 |
-
action: 'loadImageMetaData',
|
53 |
-
disableImageHead: '@',
|
54 |
-
disableExif: '@',
|
55 |
-
disableExifThumbnail: '@',
|
56 |
-
disableExifSub: '@',
|
57 |
-
disableExifGps: '@',
|
58 |
-
disabled: '@disableImageMetaDataLoad'
|
59 |
-
},
|
60 |
-
{
|
61 |
-
action: 'loadImage',
|
62 |
-
// Use the action as prefix for the "@" options:
|
63 |
-
prefix: true,
|
64 |
-
fileTypes: '@',
|
65 |
-
maxFileSize: '@',
|
66 |
-
noRevoke: '@',
|
67 |
-
disabled: '@disableImageLoad'
|
68 |
-
},
|
69 |
-
{
|
70 |
-
action: 'resizeImage',
|
71 |
-
// Use "image" as prefix for the "@" options:
|
72 |
-
prefix: 'image',
|
73 |
-
maxWidth: '@',
|
74 |
-
maxHeight: '@',
|
75 |
-
minWidth: '@',
|
76 |
-
minHeight: '@',
|
77 |
-
crop: '@',
|
78 |
-
orientation: '@',
|
79 |
-
forceResize: '@',
|
80 |
-
disabled: '@disableImageResize'
|
81 |
-
},
|
82 |
-
{
|
83 |
-
action: 'saveImage',
|
84 |
-
quality: '@imageQuality',
|
85 |
-
type: '@imageType',
|
86 |
-
disabled: '@disableImageResize'
|
87 |
-
},
|
88 |
-
{
|
89 |
-
action: 'saveImageMetaData',
|
90 |
-
disabled: '@disableImageMetaDataSave'
|
91 |
-
},
|
92 |
-
{
|
93 |
-
action: 'resizeImage',
|
94 |
-
// Use "preview" as prefix for the "@" options:
|
95 |
-
prefix: 'preview',
|
96 |
-
maxWidth: '@',
|
97 |
-
maxHeight: '@',
|
98 |
-
minWidth: '@',
|
99 |
-
minHeight: '@',
|
100 |
-
crop: '@',
|
101 |
-
orientation: '@',
|
102 |
-
thumbnail: '@',
|
103 |
-
canvas: '@',
|
104 |
-
disabled: '@disableImagePreview'
|
105 |
-
},
|
106 |
-
{
|
107 |
-
action: 'setImage',
|
108 |
-
name: '@imagePreviewName',
|
109 |
-
disabled: '@disableImagePreview'
|
110 |
-
},
|
111 |
-
{
|
112 |
-
action: 'deleteImageReferences',
|
113 |
-
disabled: '@disableImageReferencesDeletion'
|
114 |
-
}
|
115 |
-
);
|
116 |
-
|
117 |
-
// The File Upload Resize plugin extends the fileupload widget
|
118 |
-
// with image resize functionality:
|
119 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
120 |
-
|
121 |
-
options: {
|
122 |
-
// The regular expression for the types of images to load:
|
123 |
-
// matched against the file type:
|
124 |
-
loadImageFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/,
|
125 |
-
// The maximum file size of images to load:
|
126 |
-
loadImageMaxFileSize: 10000000, // 10MB
|
127 |
-
// The maximum width of resized images:
|
128 |
-
imageMaxWidth: 1920,
|
129 |
-
// The maximum height of resized images:
|
130 |
-
imageMaxHeight: 1080,
|
131 |
-
// Defines the image orientation (1-8) or takes the orientation
|
132 |
-
// value from Exif data if set to true:
|
133 |
-
imageOrientation: false,
|
134 |
-
// Define if resized images should be cropped or only scaled:
|
135 |
-
imageCrop: false,
|
136 |
-
// Disable the resize image functionality by default:
|
137 |
-
disableImageResize: true,
|
138 |
-
// The maximum width of the preview images:
|
139 |
-
previewMaxWidth: 80,
|
140 |
-
// The maximum height of the preview images:
|
141 |
-
previewMaxHeight: 80,
|
142 |
-
// Defines the preview orientation (1-8) or takes the orientation
|
143 |
-
// value from Exif data if set to true:
|
144 |
-
previewOrientation: true,
|
145 |
-
// Create the preview using the Exif data thumbnail:
|
146 |
-
previewThumbnail: true,
|
147 |
-
// Define if preview images should be cropped or only scaled:
|
148 |
-
previewCrop: false,
|
149 |
-
// Define if preview images should be resized as canvas elements:
|
150 |
-
previewCanvas: true
|
151 |
-
},
|
152 |
-
|
153 |
-
processActions: {
|
154 |
-
|
155 |
-
// Loads the image given via data.files and data.index
|
156 |
-
// as img element, if the browser supports the File API.
|
157 |
-
// Accepts the options fileTypes (regular expression)
|
158 |
-
// and maxFileSize (integer) to limit the files to load:
|
159 |
-
loadImage: function (data, options) {
|
160 |
-
if (options.disabled) {
|
161 |
-
return data;
|
162 |
-
}
|
163 |
-
var that = this,
|
164 |
-
file = data.files[data.index],
|
165 |
-
dfd = $.Deferred();
|
166 |
-
if (($.type(options.maxFileSize) === 'number' &&
|
167 |
-
file.size > options.maxFileSize) ||
|
168 |
-
(options.fileTypes &&
|
169 |
-
!options.fileTypes.test(file.type)) ||
|
170 |
-
!loadImage(
|
171 |
-
file,
|
172 |
-
function (img) {
|
173 |
-
if (img.src) {
|
174 |
-
data.img = img;
|
175 |
-
}
|
176 |
-
dfd.resolveWith(that, [data]);
|
177 |
-
},
|
178 |
-
options
|
179 |
-
)) {
|
180 |
-
return data;
|
181 |
-
}
|
182 |
-
return dfd.promise();
|
183 |
-
},
|
184 |
-
|
185 |
-
// Resizes the image given as data.canvas or data.img
|
186 |
-
// and updates data.canvas or data.img with the resized image.
|
187 |
-
// Also stores the resized image as preview property.
|
188 |
-
// Accepts the options maxWidth, maxHeight, minWidth,
|
189 |
-
// minHeight, canvas and crop:
|
190 |
-
resizeImage: function (data, options) {
|
191 |
-
if (options.disabled || !(data.canvas || data.img)) {
|
192 |
-
return data;
|
193 |
-
}
|
194 |
-
options = $.extend({canvas: true}, options);
|
195 |
-
var that = this,
|
196 |
-
dfd = $.Deferred(),
|
197 |
-
img = (options.canvas && data.canvas) || data.img,
|
198 |
-
resolve = function (newImg) {
|
199 |
-
if (newImg && (newImg.width !== img.width ||
|
200 |
-
newImg.height !== img.height ||
|
201 |
-
options.forceResize)) {
|
202 |
-
data[newImg.getContext ? 'canvas' : 'img'] = newImg;
|
203 |
-
}
|
204 |
-
data.preview = newImg;
|
205 |
-
dfd.resolveWith(that, [data]);
|
206 |
-
},
|
207 |
-
thumbnail;
|
208 |
-
if (data.exif) {
|
209 |
-
if (options.orientation === true) {
|
210 |
-
options.orientation = data.exif.get('Orientation');
|
211 |
-
}
|
212 |
-
if (options.thumbnail) {
|
213 |
-
thumbnail = data.exif.get('Thumbnail');
|
214 |
-
if (thumbnail) {
|
215 |
-
loadImage(thumbnail, resolve, options);
|
216 |
-
return dfd.promise();
|
217 |
-
}
|
218 |
-
}
|
219 |
-
// Prevent orienting the same image twice:
|
220 |
-
if (data.orientation) {
|
221 |
-
delete options.orientation;
|
222 |
-
} else {
|
223 |
-
data.orientation = options.orientation;
|
224 |
-
}
|
225 |
-
}
|
226 |
-
if (img) {
|
227 |
-
resolve(loadImage.scale(img, options));
|
228 |
-
return dfd.promise();
|
229 |
-
}
|
230 |
-
return data;
|
231 |
-
},
|
232 |
-
|
233 |
-
// Saves the processed image given as data.canvas
|
234 |
-
// inplace at data.index of data.files:
|
235 |
-
saveImage: function (data, options) {
|
236 |
-
if (!data.canvas || options.disabled) {
|
237 |
-
return data;
|
238 |
-
}
|
239 |
-
var that = this,
|
240 |
-
file = data.files[data.index],
|
241 |
-
dfd = $.Deferred();
|
242 |
-
if (data.canvas.toBlob) {
|
243 |
-
data.canvas.toBlob(
|
244 |
-
function (blob) {
|
245 |
-
if (!blob.name) {
|
246 |
-
if (file.type === blob.type) {
|
247 |
-
blob.name = file.name;
|
248 |
-
} else if (file.name) {
|
249 |
-
blob.name = file.name.replace(
|
250 |
-
/\.\w+$/,
|
251 |
-
'.' + blob.type.substr(6)
|
252 |
-
);
|
253 |
-
}
|
254 |
-
}
|
255 |
-
// Don't restore invalid meta data:
|
256 |
-
if (file.type !== blob.type) {
|
257 |
-
delete data.imageHead;
|
258 |
-
}
|
259 |
-
// Store the created blob at the position
|
260 |
-
// of the original file in the files list:
|
261 |
-
data.files[data.index] = blob;
|
262 |
-
dfd.resolveWith(that, [data]);
|
263 |
-
},
|
264 |
-
options.type || file.type,
|
265 |
-
options.quality
|
266 |
-
);
|
267 |
-
} else {
|
268 |
-
return data;
|
269 |
-
}
|
270 |
-
return dfd.promise();
|
271 |
-
},
|
272 |
-
|
273 |
-
loadImageMetaData: function (data, options) {
|
274 |
-
if (options.disabled) {
|
275 |
-
return data;
|
276 |
-
}
|
277 |
-
var that = this,
|
278 |
-
dfd = $.Deferred();
|
279 |
-
loadImage.parseMetaData(data.files[data.index], function (result) {
|
280 |
-
$.extend(data, result);
|
281 |
-
dfd.resolveWith(that, [data]);
|
282 |
-
}, options);
|
283 |
-
return dfd.promise();
|
284 |
-
},
|
285 |
-
|
286 |
-
saveImageMetaData: function (data, options) {
|
287 |
-
if (!(data.imageHead && data.canvas &&
|
288 |
-
data.canvas.toBlob && !options.disabled)) {
|
289 |
-
return data;
|
290 |
-
}
|
291 |
-
var file = data.files[data.index],
|
292 |
-
blob = new Blob([
|
293 |
-
data.imageHead,
|
294 |
-
// Resized images always have a head size of 20 bytes,
|
295 |
-
// including the JPEG marker and a minimal JFIF header:
|
296 |
-
this._blobSlice.call(file, 20)
|
297 |
-
], {type: file.type});
|
298 |
-
blob.name = file.name;
|
299 |
-
data.files[data.index] = blob;
|
300 |
-
return data;
|
301 |
-
},
|
302 |
-
|
303 |
-
// Sets the resized version of the image as a property of the
|
304 |
-
// file object, must be called after "saveImage":
|
305 |
-
setImage: function (data, options) {
|
306 |
-
if (data.preview && !options.disabled) {
|
307 |
-
data.files[data.index][options.name || 'preview'] = data.preview;
|
308 |
-
}
|
309 |
-
return data;
|
310 |
-
},
|
311 |
-
|
312 |
-
deleteImageReferences: function (data, options) {
|
313 |
-
if (!options.disabled) {
|
314 |
-
delete data.img;
|
315 |
-
delete data.canvas;
|
316 |
-
delete data.preview;
|
317 |
-
delete data.imageHead;
|
318 |
-
}
|
319 |
-
return data;
|
320 |
-
}
|
321 |
-
|
322 |
-
}
|
323 |
-
|
324 |
-
});
|
325 |
-
|
326 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-jquery-ui.js
DELETED
@@ -1,161 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload jQuery UI Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'./jquery.fileupload-ui'
|
22 |
-
], factory);
|
23 |
-
} else if (typeof exports === 'object') {
|
24 |
-
// Node/CommonJS:
|
25 |
-
factory(
|
26 |
-
require('jquery'),
|
27 |
-
require('./jquery.fileupload-ui')
|
28 |
-
);
|
29 |
-
} else {
|
30 |
-
// Browser globals:
|
31 |
-
factory(window.jQuery);
|
32 |
-
}
|
33 |
-
}(function ($) {
|
34 |
-
'use strict';
|
35 |
-
|
36 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
37 |
-
|
38 |
-
options: {
|
39 |
-
processdone: function (e, data) {
|
40 |
-
data.context.find('.start').button('enable');
|
41 |
-
},
|
42 |
-
progress: function (e, data) {
|
43 |
-
if (data.context) {
|
44 |
-
data.context.find('.progress').progressbar(
|
45 |
-
'option',
|
46 |
-
'value',
|
47 |
-
parseInt(data.loaded / data.total * 100, 10)
|
48 |
-
);
|
49 |
-
}
|
50 |
-
},
|
51 |
-
progressall: function (e, data) {
|
52 |
-
var $this = $(this);
|
53 |
-
$this.find('.fileupload-progress')
|
54 |
-
.find('.progress').progressbar(
|
55 |
-
'option',
|
56 |
-
'value',
|
57 |
-
parseInt(data.loaded / data.total * 100, 10)
|
58 |
-
).end()
|
59 |
-
.find('.progress-extended').each(function () {
|
60 |
-
$(this).html(
|
61 |
-
($this.data('blueimp-fileupload') ||
|
62 |
-
$this.data('fileupload'))
|
63 |
-
._renderExtendedProgress(data)
|
64 |
-
);
|
65 |
-
});
|
66 |
-
}
|
67 |
-
},
|
68 |
-
|
69 |
-
_renderUpload: function (func, files) {
|
70 |
-
var node = this._super(func, files),
|
71 |
-
showIconText = $(window).width() > 480;
|
72 |
-
node.find('.progress').empty().progressbar();
|
73 |
-
node.find('.start').button({
|
74 |
-
icons: {primary: 'ui-icon-circle-arrow-e'},
|
75 |
-
text: showIconText
|
76 |
-
});
|
77 |
-
node.find('.cancel').button({
|
78 |
-
icons: {primary: 'ui-icon-cancel'},
|
79 |
-
text: showIconText
|
80 |
-
});
|
81 |
-
if (node.hasClass('fade')) {
|
82 |
-
node.hide();
|
83 |
-
}
|
84 |
-
return node;
|
85 |
-
},
|
86 |
-
|
87 |
-
_renderDownload: function (func, files) {
|
88 |
-
var node = this._super(func, files),
|
89 |
-
showIconText = $(window).width() > 480;
|
90 |
-
node.find('.delete').button({
|
91 |
-
icons: {primary: 'ui-icon-trash'},
|
92 |
-
text: showIconText
|
93 |
-
});
|
94 |
-
if (node.hasClass('fade')) {
|
95 |
-
node.hide();
|
96 |
-
}
|
97 |
-
return node;
|
98 |
-
},
|
99 |
-
|
100 |
-
_startHandler: function (e) {
|
101 |
-
$(e.currentTarget).button('disable');
|
102 |
-
this._super(e);
|
103 |
-
},
|
104 |
-
|
105 |
-
_transition: function (node) {
|
106 |
-
var deferred = $.Deferred();
|
107 |
-
if (node.hasClass('fade')) {
|
108 |
-
node.fadeToggle(
|
109 |
-
this.options.transitionDuration,
|
110 |
-
this.options.transitionEasing,
|
111 |
-
function () {
|
112 |
-
deferred.resolveWith(node);
|
113 |
-
}
|
114 |
-
);
|
115 |
-
} else {
|
116 |
-
deferred.resolveWith(node);
|
117 |
-
}
|
118 |
-
return deferred;
|
119 |
-
},
|
120 |
-
|
121 |
-
_create: function () {
|
122 |
-
this._super();
|
123 |
-
this.element
|
124 |
-
.find('.fileupload-buttonbar')
|
125 |
-
.find('.fileinput-button').each(function () {
|
126 |
-
var input = $(this).find('input:file').detach();
|
127 |
-
$(this)
|
128 |
-
.button({icons: {primary: 'ui-icon-plusthick'}})
|
129 |
-
.append(input);
|
130 |
-
})
|
131 |
-
.end().find('.start')
|
132 |
-
.button({icons: {primary: 'ui-icon-circle-arrow-e'}})
|
133 |
-
.end().find('.cancel')
|
134 |
-
.button({icons: {primary: 'ui-icon-cancel'}})
|
135 |
-
.end().find('.delete')
|
136 |
-
.button({icons: {primary: 'ui-icon-trash'}})
|
137 |
-
.end().find('.progress').progressbar();
|
138 |
-
},
|
139 |
-
|
140 |
-
_destroy: function () {
|
141 |
-
this.element
|
142 |
-
.find('.fileupload-buttonbar')
|
143 |
-
.find('.fileinput-button').each(function () {
|
144 |
-
var input = $(this).find('input:file').detach();
|
145 |
-
$(this)
|
146 |
-
.button('destroy')
|
147 |
-
.append(input);
|
148 |
-
})
|
149 |
-
.end().find('.start')
|
150 |
-
.button('destroy')
|
151 |
-
.end().find('.cancel')
|
152 |
-
.button('destroy')
|
153 |
-
.end().find('.delete')
|
154 |
-
.button('destroy')
|
155 |
-
.end().find('.progress').progressbar('destroy');
|
156 |
-
this._super();
|
157 |
-
}
|
158 |
-
|
159 |
-
});
|
160 |
-
|
161 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-process.js
DELETED
@@ -1,178 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Processing Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2012, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'./jquery.fileupload'
|
22 |
-
], factory);
|
23 |
-
} else if (typeof exports === 'object') {
|
24 |
-
// Node/CommonJS:
|
25 |
-
factory(
|
26 |
-
require('jquery'),
|
27 |
-
require('./jquery.fileupload')
|
28 |
-
);
|
29 |
-
} else {
|
30 |
-
// Browser globals:
|
31 |
-
factory(
|
32 |
-
window.jQuery
|
33 |
-
);
|
34 |
-
}
|
35 |
-
}(function ($) {
|
36 |
-
'use strict';
|
37 |
-
|
38 |
-
var originalAdd = $.blueimp.fileupload.prototype.options.add;
|
39 |
-
|
40 |
-
// The File Upload Processing plugin extends the fileupload widget
|
41 |
-
// with file processing functionality:
|
42 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
43 |
-
|
44 |
-
options: {
|
45 |
-
// The list of processing actions:
|
46 |
-
processQueue: [
|
47 |
-
/*
|
48 |
-
{
|
49 |
-
action: 'log',
|
50 |
-
type: 'debug'
|
51 |
-
}
|
52 |
-
*/
|
53 |
-
],
|
54 |
-
add: function (e, data) {
|
55 |
-
var $this = $(this);
|
56 |
-
data.process(function () {
|
57 |
-
return $this.fileupload('process', data);
|
58 |
-
});
|
59 |
-
originalAdd.call(this, e, data);
|
60 |
-
}
|
61 |
-
},
|
62 |
-
|
63 |
-
processActions: {
|
64 |
-
/*
|
65 |
-
log: function (data, options) {
|
66 |
-
console[options.type](
|
67 |
-
'Processing "' + data.files[data.index].name + '"'
|
68 |
-
);
|
69 |
-
}
|
70 |
-
*/
|
71 |
-
},
|
72 |
-
|
73 |
-
_processFile: function (data, originalData) {
|
74 |
-
var that = this,
|
75 |
-
dfd = $.Deferred().resolveWith(that, [data]),
|
76 |
-
chain = dfd.promise();
|
77 |
-
this._trigger('process', null, data);
|
78 |
-
$.each(data.processQueue, function (i, settings) {
|
79 |
-
var func = function (data) {
|
80 |
-
if (originalData.errorThrown) {
|
81 |
-
return $.Deferred()
|
82 |
-
.rejectWith(that, [originalData]).promise();
|
83 |
-
}
|
84 |
-
return that.processActions[settings.action].call(
|
85 |
-
that,
|
86 |
-
data,
|
87 |
-
settings
|
88 |
-
);
|
89 |
-
};
|
90 |
-
chain = chain.then(func, settings.always && func);
|
91 |
-
});
|
92 |
-
chain
|
93 |
-
.done(function () {
|
94 |
-
that._trigger('processdone', null, data);
|
95 |
-
that._trigger('processalways', null, data);
|
96 |
-
})
|
97 |
-
.fail(function () {
|
98 |
-
that._trigger('processfail', null, data);
|
99 |
-
that._trigger('processalways', null, data);
|
100 |
-
});
|
101 |
-
return chain;
|
102 |
-
},
|
103 |
-
|
104 |
-
// Replaces the settings of each processQueue item that
|
105 |
-
// are strings starting with an "@", using the remaining
|
106 |
-
// substring as key for the option map,
|
107 |
-
// e.g. "@autoUpload" is replaced with options.autoUpload:
|
108 |
-
_transformProcessQueue: function (options) {
|
109 |
-
var processQueue = [];
|
110 |
-
$.each(options.processQueue, function () {
|
111 |
-
var settings = {},
|
112 |
-
action = this.action,
|
113 |
-
prefix = this.prefix === true ? action : this.prefix;
|
114 |
-
$.each(this, function (key, value) {
|
115 |
-
if ($.type(value) === 'string' &&
|
116 |
-
value.charAt(0) === '@') {
|
117 |
-
settings[key] = options[
|
118 |
-
value.slice(1) || (prefix ? prefix +
|
119 |
-
key.charAt(0).toUpperCase() + key.slice(1) : key)
|
120 |
-
];
|
121 |
-
} else {
|
122 |
-
settings[key] = value;
|
123 |
-
}
|
124 |
-
|
125 |
-
});
|
126 |
-
processQueue.push(settings);
|
127 |
-
});
|
128 |
-
options.processQueue = processQueue;
|
129 |
-
},
|
130 |
-
|
131 |
-
// Returns the number of files currently in the processsing queue:
|
132 |
-
processing: function () {
|
133 |
-
return this._processing;
|
134 |
-
},
|
135 |
-
|
136 |
-
// Processes the files given as files property of the data parameter,
|
137 |
-
// returns a Promise object that allows to bind callbacks:
|
138 |
-
process: function (data) {
|
139 |
-
var that = this,
|
140 |
-
options = $.extend({}, this.options, data);
|
141 |
-
if (options.processQueue && options.processQueue.length) {
|
142 |
-
this._transformProcessQueue(options);
|
143 |
-
if (this._processing === 0) {
|
144 |
-
this._trigger('processstart');
|
145 |
-
}
|
146 |
-
$.each(data.files, function (index) {
|
147 |
-
var opts = index ? $.extend({}, options) : options,
|
148 |
-
func = function () {
|
149 |
-
if (data.errorThrown) {
|
150 |
-
return $.Deferred()
|
151 |
-
.rejectWith(that, [data]).promise();
|
152 |
-
}
|
153 |
-
return that._processFile(opts, data);
|
154 |
-
};
|
155 |
-
opts.index = index;
|
156 |
-
that._processing += 1;
|
157 |
-
that._processingQueue = that._processingQueue.then(func, func)
|
158 |
-
.always(function () {
|
159 |
-
that._processing -= 1;
|
160 |
-
if (that._processing === 0) {
|
161 |
-
that._trigger('processstop');
|
162 |
-
}
|
163 |
-
});
|
164 |
-
});
|
165 |
-
}
|
166 |
-
return this._processingQueue;
|
167 |
-
},
|
168 |
-
|
169 |
-
_create: function () {
|
170 |
-
this._super();
|
171 |
-
this._processing = 0;
|
172 |
-
this._processingQueue = $.Deferred().resolveWith(this)
|
173 |
-
.promise();
|
174 |
-
}
|
175 |
-
|
176 |
-
});
|
177 |
-
|
178 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-ui.js
DELETED
@@ -1,714 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload User Interface Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2010, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'blueimp-tmpl',
|
22 |
-
'./jquery.fileupload-image',
|
23 |
-
'./jquery.fileupload-audio',
|
24 |
-
'./jquery.fileupload-video',
|
25 |
-
'./jquery.fileupload-validate'
|
26 |
-
], factory);
|
27 |
-
} else if (typeof exports === 'object') {
|
28 |
-
// Node/CommonJS:
|
29 |
-
factory(
|
30 |
-
require('jquery'),
|
31 |
-
require('blueimp-tmpl'),
|
32 |
-
require('./jquery.fileupload-image'),
|
33 |
-
require('./jquery.fileupload-audio'),
|
34 |
-
require('./jquery.fileupload-video'),
|
35 |
-
require('./jquery.fileupload-validate')
|
36 |
-
);
|
37 |
-
} else {
|
38 |
-
// Browser globals:
|
39 |
-
factory(
|
40 |
-
window.jQuery,
|
41 |
-
window.tmpl
|
42 |
-
);
|
43 |
-
}
|
44 |
-
}(function ($, tmpl) {
|
45 |
-
'use strict';
|
46 |
-
|
47 |
-
$.blueimp.fileupload.prototype._specialOptions.push(
|
48 |
-
'filesContainer',
|
49 |
-
'uploadTemplateId',
|
50 |
-
'downloadTemplateId'
|
51 |
-
);
|
52 |
-
|
53 |
-
// The UI version extends the file upload widget
|
54 |
-
// and adds complete user interface interaction:
|
55 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
56 |
-
|
57 |
-
options: {
|
58 |
-
// By default, files added to the widget are uploaded as soon
|
59 |
-
// as the user clicks on the start buttons. To enable automatic
|
60 |
-
// uploads, set the following option to true:
|
61 |
-
autoUpload: false,
|
62 |
-
// The ID of the upload template:
|
63 |
-
uploadTemplateId: 'template-upload',
|
64 |
-
// The ID of the download template:
|
65 |
-
downloadTemplateId: 'template-download',
|
66 |
-
// The container for the list of files. If undefined, it is set to
|
67 |
-
// an element with class "files" inside of the widget element:
|
68 |
-
filesContainer: undefined,
|
69 |
-
// By default, files are appended to the files container.
|
70 |
-
// Set the following option to true, to prepend files instead:
|
71 |
-
prependFiles: false,
|
72 |
-
// The expected data type of the upload response, sets the dataType
|
73 |
-
// option of the $.ajax upload requests:
|
74 |
-
dataType: 'json',
|
75 |
-
|
76 |
-
// Error and info messages:
|
77 |
-
messages: {
|
78 |
-
unknownError: 'Unknown error'
|
79 |
-
},
|
80 |
-
|
81 |
-
// Function returning the current number of files,
|
82 |
-
// used by the maxNumberOfFiles validation:
|
83 |
-
getNumberOfFiles: function () {
|
84 |
-
return this.filesContainer.children()
|
85 |
-
.not('.processing').length;
|
86 |
-
},
|
87 |
-
|
88 |
-
// Callback to retrieve the list of files from the server response:
|
89 |
-
getFilesFromResponse: function (data) {
|
90 |
-
if (data.result && $.isArray(data.result.files)) {
|
91 |
-
return data.result.files;
|
92 |
-
}
|
93 |
-
return [];
|
94 |
-
},
|
95 |
-
|
96 |
-
// The add callback is invoked as soon as files are added to the fileupload
|
97 |
-
// widget (via file input selection, drag & drop or add API call).
|
98 |
-
// See the basic file upload widget for more information:
|
99 |
-
add: function (e, data) {
|
100 |
-
if (e.isDefaultPrevented()) {
|
101 |
-
return false;
|
102 |
-
}
|
103 |
-
var $this = $(this),
|
104 |
-
that = $this.data('blueimp-fileupload') ||
|
105 |
-
$this.data('fileupload'),
|
106 |
-
options = that.options;
|
107 |
-
data.context = that._renderUpload(data.files)
|
108 |
-
.data('data', data)
|
109 |
-
.addClass('processing');
|
110 |
-
options.filesContainer[
|
111 |
-
options.prependFiles ? 'prepend' : 'append'
|
112 |
-
](data.context);
|
113 |
-
that._forceReflow(data.context);
|
114 |
-
that._transition(data.context);
|
115 |
-
data.process(function () {
|
116 |
-
return $this.fileupload('process', data);
|
117 |
-
}).always(function () {
|
118 |
-
data.context.each(function (index) {
|
119 |
-
$(this).find('.size').text(
|
120 |
-
that._formatFileSize(data.files[index].size)
|
121 |
-
);
|
122 |
-
}).removeClass('processing');
|
123 |
-
that._renderPreviews(data);
|
124 |
-
}).done(function () {
|
125 |
-
data.context.find('.start').prop('disabled', false);
|
126 |
-
if ((that._trigger('added', e, data) !== false) &&
|
127 |
-
(options.autoUpload || data.autoUpload) &&
|
128 |
-
data.autoUpload !== false) {
|
129 |
-
data.submit();
|
130 |
-
}
|
131 |
-
}).fail(function () {
|
132 |
-
if (data.files.error) {
|
133 |
-
data.context.each(function (index) {
|
134 |
-
var error = data.files[index].error;
|
135 |
-
if (error) {
|
136 |
-
$(this).find('.error').text(error);
|
137 |
-
}
|
138 |
-
});
|
139 |
-
}
|
140 |
-
});
|
141 |
-
},
|
142 |
-
// Callback for the start of each file upload request:
|
143 |
-
send: function (e, data) {
|
144 |
-
if (e.isDefaultPrevented()) {
|
145 |
-
return false;
|
146 |
-
}
|
147 |
-
var that = $(this).data('blueimp-fileupload') ||
|
148 |
-
$(this).data('fileupload');
|
149 |
-
if (data.context && data.dataType &&
|
150 |
-
data.dataType.substr(0, 6) === 'iframe') {
|
151 |
-
// Iframe Transport does not support progress events.
|
152 |
-
// In lack of an indeterminate progress bar, we set
|
153 |
-
// the progress to 100%, showing the full animated bar:
|
154 |
-
data.context
|
155 |
-
.find('.progress').addClass(
|
156 |
-
!$.support.transition && 'progress-animated'
|
157 |
-
)
|
158 |
-
.attr('aria-valuenow', 100)
|
159 |
-
.children().first().css(
|
160 |
-
'width',
|
161 |
-
'100%'
|
162 |
-
);
|
163 |
-
}
|
164 |
-
return that._trigger('sent', e, data);
|
165 |
-
},
|
166 |
-
// Callback for successful uploads:
|
167 |
-
done: function (e, data) {
|
168 |
-
if (e.isDefaultPrevented()) {
|
169 |
-
return false;
|
170 |
-
}
|
171 |
-
var that = $(this).data('blueimp-fileupload') ||
|
172 |
-
$(this).data('fileupload'),
|
173 |
-
getFilesFromResponse = data.getFilesFromResponse ||
|
174 |
-
that.options.getFilesFromResponse,
|
175 |
-
files = getFilesFromResponse(data),
|
176 |
-
template,
|
177 |
-
deferred;
|
178 |
-
if (data.context) {
|
179 |
-
data.context.each(function (index) {
|
180 |
-
var file = files[index] ||
|
181 |
-
{error: 'Empty file upload result'};
|
182 |
-
deferred = that._addFinishedDeferreds();
|
183 |
-
that._transition($(this)).done(
|
184 |
-
function () {
|
185 |
-
var node = $(this);
|
186 |
-
template = that._renderDownload([file])
|
187 |
-
.replaceAll(node);
|
188 |
-
that._forceReflow(template);
|
189 |
-
that._transition(template).done(
|
190 |
-
function () {
|
191 |
-
data.context = $(this);
|
192 |
-
that._trigger('completed', e, data);
|
193 |
-
that._trigger('finished', e, data);
|
194 |
-
deferred.resolve();
|
195 |
-
}
|
196 |
-
);
|
197 |
-
}
|
198 |
-
);
|
199 |
-
});
|
200 |
-
} else {
|
201 |
-
template = that._renderDownload(files)[
|
202 |
-
that.options.prependFiles ? 'prependTo' : 'appendTo'
|
203 |
-
](that.options.filesContainer);
|
204 |
-
that._forceReflow(template);
|
205 |
-
deferred = that._addFinishedDeferreds();
|
206 |
-
that._transition(template).done(
|
207 |
-
function () {
|
208 |
-
data.context = $(this);
|
209 |
-
that._trigger('completed', e, data);
|
210 |
-
that._trigger('finished', e, data);
|
211 |
-
deferred.resolve();
|
212 |
-
}
|
213 |
-
);
|
214 |
-
}
|
215 |
-
},
|
216 |
-
// Callback for failed (abort or error) uploads:
|
217 |
-
fail: function (e, data) {
|
218 |
-
if (e.isDefaultPrevented()) {
|
219 |
-
return false;
|
220 |
-
}
|
221 |
-
var that = $(this).data('blueimp-fileupload') ||
|
222 |
-
$(this).data('fileupload'),
|
223 |
-
template,
|
224 |
-
deferred;
|
225 |
-
if (data.context) {
|
226 |
-
data.context.each(function (index) {
|
227 |
-
if (data.errorThrown !== 'abort') {
|
228 |
-
var file = data.files[index];
|
229 |
-
file.error = file.error || data.errorThrown ||
|
230 |
-
data.i18n('unknownError');
|
231 |
-
deferred = that._addFinishedDeferreds();
|
232 |
-
that._transition($(this)).done(
|
233 |
-
function () {
|
234 |
-
var node = $(this);
|
235 |
-
template = that._renderDownload([file])
|
236 |
-
.replaceAll(node);
|
237 |
-
that._forceReflow(template);
|
238 |
-
that._transition(template).done(
|
239 |
-
function () {
|
240 |
-
data.context = $(this);
|
241 |
-
that._trigger('failed', e, data);
|
242 |
-
that._trigger('finished', e, data);
|
243 |
-
deferred.resolve();
|
244 |
-
}
|
245 |
-
);
|
246 |
-
}
|
247 |
-
);
|
248 |
-
} else {
|
249 |
-
deferred = that._addFinishedDeferreds();
|
250 |
-
that._transition($(this)).done(
|
251 |
-
function () {
|
252 |
-
$(this).remove();
|
253 |
-
that._trigger('failed', e, data);
|
254 |
-
that._trigger('finished', e, data);
|
255 |
-
deferred.resolve();
|
256 |
-
}
|
257 |
-
);
|
258 |
-
}
|
259 |
-
});
|
260 |
-
} else if (data.errorThrown !== 'abort') {
|
261 |
-
data.context = that._renderUpload(data.files)[
|
262 |
-
that.options.prependFiles ? 'prependTo' : 'appendTo'
|
263 |
-
](that.options.filesContainer)
|
264 |
-
.data('data', data);
|
265 |
-
that._forceReflow(data.context);
|
266 |
-
deferred = that._addFinishedDeferreds();
|
267 |
-
that._transition(data.context).done(
|
268 |
-
function () {
|
269 |
-
data.context = $(this);
|
270 |
-
that._trigger('failed', e, data);
|
271 |
-
that._trigger('finished', e, data);
|
272 |
-
deferred.resolve();
|
273 |
-
}
|
274 |
-
);
|
275 |
-
} else {
|
276 |
-
that._trigger('failed', e, data);
|
277 |
-
that._trigger('finished', e, data);
|
278 |
-
that._addFinishedDeferreds().resolve();
|
279 |
-
}
|
280 |
-
},
|
281 |
-
// Callback for upload progress events:
|
282 |
-
progress: function (e, data) {
|
283 |
-
if (e.isDefaultPrevented()) {
|
284 |
-
return false;
|
285 |
-
}
|
286 |
-
var progress = Math.floor(data.loaded / data.total * 100);
|
287 |
-
if (data.context) {
|
288 |
-
data.context.each(function () {
|
289 |
-
$(this).find('.progress')
|
290 |
-
.attr('aria-valuenow', progress)
|
291 |
-
.children().first().css(
|
292 |
-
'width',
|
293 |
-
progress + '%'
|
294 |
-
);
|
295 |
-
});
|
296 |
-
}
|
297 |
-
},
|
298 |
-
// Callback for global upload progress events:
|
299 |
-
progressall: function (e, data) {
|
300 |
-
if (e.isDefaultPrevented()) {
|
301 |
-
return false;
|
302 |
-
}
|
303 |
-
var $this = $(this),
|
304 |
-
progress = Math.floor(data.loaded / data.total * 100),
|
305 |
-
globalProgressNode = $this.find('.fileupload-progress'),
|
306 |
-
extendedProgressNode = globalProgressNode
|
307 |
-
.find('.progress-extended');
|
308 |
-
if (extendedProgressNode.length) {
|
309 |
-
extendedProgressNode.html(
|
310 |
-
($this.data('blueimp-fileupload') || $this.data('fileupload'))
|
311 |
-
._renderExtendedProgress(data)
|
312 |
-
);
|
313 |
-
}
|
314 |
-
globalProgressNode
|
315 |
-
.find('.progress')
|
316 |
-
.attr('aria-valuenow', progress)
|
317 |
-
.children().first().css(
|
318 |
-
'width',
|
319 |
-
progress + '%'
|
320 |
-
);
|
321 |
-
},
|
322 |
-
// Callback for uploads start, equivalent to the global ajaxStart event:
|
323 |
-
start: function (e) {
|
324 |
-
if (e.isDefaultPrevented()) {
|
325 |
-
return false;
|
326 |
-
}
|
327 |
-
var that = $(this).data('blueimp-fileupload') ||
|
328 |
-
$(this).data('fileupload');
|
329 |
-
that._resetFinishedDeferreds();
|
330 |
-
that._transition($(this).find('.fileupload-progress')).done(
|
331 |
-
function () {
|
332 |
-
that._trigger('started', e);
|
333 |
-
}
|
334 |
-
);
|
335 |
-
},
|
336 |
-
// Callback for uploads stop, equivalent to the global ajaxStop event:
|
337 |
-
stop: function (e) {
|
338 |
-
if (e.isDefaultPrevented()) {
|
339 |
-
return false;
|
340 |
-
}
|
341 |
-
var that = $(this).data('blueimp-fileupload') ||
|
342 |
-
$(this).data('fileupload'),
|
343 |
-
deferred = that._addFinishedDeferreds();
|
344 |
-
$.when.apply($, that._getFinishedDeferreds())
|
345 |
-
.done(function () {
|
346 |
-
that._trigger('stopped', e);
|
347 |
-
});
|
348 |
-
that._transition($(this).find('.fileupload-progress')).done(
|
349 |
-
function () {
|
350 |
-
$(this).find('.progress')
|
351 |
-
.attr('aria-valuenow', '0')
|
352 |
-
.children().first().css('width', '0%');
|
353 |
-
$(this).find('.progress-extended').html(' ');
|
354 |
-
deferred.resolve();
|
355 |
-
}
|
356 |
-
);
|
357 |
-
},
|
358 |
-
processstart: function (e) {
|
359 |
-
if (e.isDefaultPrevented()) {
|
360 |
-
return false;
|
361 |
-
}
|
362 |
-
$(this).addClass('fileupload-processing');
|
363 |
-
},
|
364 |
-
processstop: function (e) {
|
365 |
-
if (e.isDefaultPrevented()) {
|
366 |
-
return false;
|
367 |
-
}
|
368 |
-
$(this).removeClass('fileupload-processing');
|
369 |
-
},
|
370 |
-
// Callback for file deletion:
|
371 |
-
destroy: function (e, data) {
|
372 |
-
if (e.isDefaultPrevented()) {
|
373 |
-
return false;
|
374 |
-
}
|
375 |
-
var that = $(this).data('blueimp-fileupload') ||
|
376 |
-
$(this).data('fileupload'),
|
377 |
-
removeNode = function () {
|
378 |
-
that._transition(data.context).done(
|
379 |
-
function () {
|
380 |
-
$(this).remove();
|
381 |
-
that._trigger('destroyed', e, data);
|
382 |
-
}
|
383 |
-
);
|
384 |
-
};
|
385 |
-
if (data.url) {
|
386 |
-
data.dataType = data.dataType || that.options.dataType;
|
387 |
-
$.ajax(data).done(removeNode).fail(function () {
|
388 |
-
that._trigger('destroyfailed', e, data);
|
389 |
-
});
|
390 |
-
} else {
|
391 |
-
removeNode();
|
392 |
-
}
|
393 |
-
}
|
394 |
-
},
|
395 |
-
|
396 |
-
_resetFinishedDeferreds: function () {
|
397 |
-
this._finishedUploads = [];
|
398 |
-
},
|
399 |
-
|
400 |
-
_addFinishedDeferreds: function (deferred) {
|
401 |
-
if (!deferred) {
|
402 |
-
deferred = $.Deferred();
|
403 |
-
}
|
404 |
-
this._finishedUploads.push(deferred);
|
405 |
-
return deferred;
|
406 |
-
},
|
407 |
-
|
408 |
-
_getFinishedDeferreds: function () {
|
409 |
-
return this._finishedUploads;
|
410 |
-
},
|
411 |
-
|
412 |
-
// Link handler, that allows to download files
|
413 |
-
// by drag & drop of the links to the desktop:
|
414 |
-
_enableDragToDesktop: function () {
|
415 |
-
var link = $(this),
|
416 |
-
url = link.prop('href'),
|
417 |
-
name = link.prop('download'),
|
418 |
-
type = 'application/octet-stream';
|
419 |
-
link.bind('dragstart', function (e) {
|
420 |
-
try {
|
421 |
-
e.originalEvent.dataTransfer.setData(
|
422 |
-
'DownloadURL',
|
423 |
-
[type, name, url].join(':')
|
424 |
-
);
|
425 |
-
} catch (ignore) {}
|
426 |
-
});
|
427 |
-
},
|
428 |
-
|
429 |
-
_formatFileSize: function (bytes) {
|
430 |
-
if (typeof bytes !== 'number') {
|
431 |
-
return '';
|
432 |
-
}
|
433 |
-
if (bytes >= 1000000000) {
|
434 |
-
return (bytes / 1000000000).toFixed(2) + ' GB';
|
435 |
-
}
|
436 |
-
if (bytes >= 1000000) {
|
437 |
-
return (bytes / 1000000).toFixed(2) + ' MB';
|
438 |
-
}
|
439 |
-
return (bytes / 1000).toFixed(2) + ' KB';
|
440 |
-
},
|
441 |
-
|
442 |
-
_formatBitrate: function (bits) {
|
443 |
-
if (typeof bits !== 'number') {
|
444 |
-
return '';
|
445 |
-
}
|
446 |
-
if (bits >= 1000000000) {
|
447 |
-
return (bits / 1000000000).toFixed(2) + ' Gbit/s';
|
448 |
-
}
|
449 |
-
if (bits >= 1000000) {
|
450 |
-
return (bits / 1000000).toFixed(2) + ' Mbit/s';
|
451 |
-
}
|
452 |
-
if (bits >= 1000) {
|
453 |
-
return (bits / 1000).toFixed(2) + ' kbit/s';
|
454 |
-
}
|
455 |
-
return bits.toFixed(2) + ' bit/s';
|
456 |
-
},
|
457 |
-
|
458 |
-
_formatTime: function (seconds) {
|
459 |
-
var date = new Date(seconds * 1000),
|
460 |
-
days = Math.floor(seconds / 86400);
|
461 |
-
days = days ? days + 'd ' : '';
|
462 |
-
return days +
|
463 |
-
('0' + date.getUTCHours()).slice(-2) + ':' +
|
464 |
-
('0' + date.getUTCMinutes()).slice(-2) + ':' +
|
465 |
-
('0' + date.getUTCSeconds()).slice(-2);
|
466 |
-
},
|
467 |
-
|
468 |
-
_formatPercentage: function (floatValue) {
|
469 |
-
return (floatValue * 100).toFixed(2) + ' %';
|
470 |
-
},
|
471 |
-
|
472 |
-
_renderExtendedProgress: function (data) {
|
473 |
-
return this._formatBitrate(data.bitrate) + ' | ' +
|
474 |
-
this._formatTime(
|
475 |
-
(data.total - data.loaded) * 8 / data.bitrate
|
476 |
-
) + ' | ' +
|
477 |
-
this._formatPercentage(
|
478 |
-
data.loaded / data.total
|
479 |
-
) + ' | ' +
|
480 |
-
this._formatFileSize(data.loaded) + ' / ' +
|
481 |
-
this._formatFileSize(data.total);
|
482 |
-
},
|
483 |
-
|
484 |
-
_renderTemplate: function (func, files) {
|
485 |
-
if (!func) {
|
486 |
-
return $();
|
487 |
-
}
|
488 |
-
var result = func({
|
489 |
-
files: files,
|
490 |
-
formatFileSize: this._formatFileSize,
|
491 |
-
options: this.options
|
492 |
-
});
|
493 |
-
if (result instanceof $) {
|
494 |
-
return result;
|
495 |
-
}
|
496 |
-
return $(this.options.templatesContainer).html(result).children();
|
497 |
-
},
|
498 |
-
|
499 |
-
_renderPreviews: function (data) {
|
500 |
-
data.context.find('.preview').each(function (index, elm) {
|
501 |
-
$(elm).append(data.files[index].preview);
|
502 |
-
});
|
503 |
-
},
|
504 |
-
|
505 |
-
_renderUpload: function (files) {
|
506 |
-
return this._renderTemplate(
|
507 |
-
this.options.uploadTemplate,
|
508 |
-
files
|
509 |
-
);
|
510 |
-
},
|
511 |
-
|
512 |
-
_renderDownload: function (files) {
|
513 |
-
return this._renderTemplate(
|
514 |
-
this.options.downloadTemplate,
|
515 |
-
files
|
516 |
-
).find('a[download]').each(this._enableDragToDesktop).end();
|
517 |
-
},
|
518 |
-
|
519 |
-
_startHandler: function (e) {
|
520 |
-
e.preventDefault();
|
521 |
-
var button = $(e.currentTarget),
|
522 |
-
template = button.closest('.template-upload'),
|
523 |
-
data = template.data('data');
|
524 |
-
button.prop('disabled', true);
|
525 |
-
if (data && data.submit) {
|
526 |
-
data.submit();
|
527 |
-
}
|
528 |
-
},
|
529 |
-
|
530 |
-
_cancelHandler: function (e) {
|
531 |
-
e.preventDefault();
|
532 |
-
var template = $(e.currentTarget)
|
533 |
-
.closest('.template-upload,.template-download'),
|
534 |
-
data = template.data('data') || {};
|
535 |
-
data.context = data.context || template;
|
536 |
-
if (data.abort) {
|
537 |
-
data.abort();
|
538 |
-
} else {
|
539 |
-
data.errorThrown = 'abort';
|
540 |
-
this._trigger('fail', e, data);
|
541 |
-
}
|
542 |
-
},
|
543 |
-
|
544 |
-
_deleteHandler: function (e) {
|
545 |
-
e.preventDefault();
|
546 |
-
var button = $(e.currentTarget);
|
547 |
-
this._trigger('destroy', e, $.extend({
|
548 |
-
context: button.closest('.template-download'),
|
549 |
-
type: 'DELETE'
|
550 |
-
}, button.data()));
|
551 |
-
},
|
552 |
-
|
553 |
-
_forceReflow: function (node) {
|
554 |
-
return $.support.transition && node.length &&
|
555 |
-
node[0].offsetWidth;
|
556 |
-
},
|
557 |
-
|
558 |
-
_transition: function (node) {
|
559 |
-
var dfd = $.Deferred();
|
560 |
-
if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {
|
561 |
-
node.bind(
|
562 |
-
$.support.transition.end,
|
563 |
-
function (e) {
|
564 |
-
// Make sure we don't respond to other transitions events
|
565 |
-
// in the container element, e.g. from button elements:
|
566 |
-
if (e.target === node[0]) {
|
567 |
-
node.unbind($.support.transition.end);
|
568 |
-
dfd.resolveWith(node);
|
569 |
-
}
|
570 |
-
}
|
571 |
-
).toggleClass('in');
|
572 |
-
} else {
|
573 |
-
node.toggleClass('in');
|
574 |
-
dfd.resolveWith(node);
|
575 |
-
}
|
576 |
-
return dfd;
|
577 |
-
},
|
578 |
-
|
579 |
-
_initButtonBarEventHandlers: function () {
|
580 |
-
var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
|
581 |
-
filesList = this.options.filesContainer;
|
582 |
-
this._on(fileUploadButtonBar.find('.start'), {
|
583 |
-
click: function (e) {
|
584 |
-
e.preventDefault();
|
585 |
-
filesList.find('.start').click();
|
586 |
-
}
|
587 |
-
});
|
588 |
-
this._on(fileUploadButtonBar.find('.cancel'), {
|
589 |
-
click: function (e) {
|
590 |
-
e.preventDefault();
|
591 |
-
filesList.find('.cancel').click();
|
592 |
-
}
|
593 |
-
});
|
594 |
-
this._on(fileUploadButtonBar.find('.delete'), {
|
595 |
-
click: function (e) {
|
596 |
-
e.preventDefault();
|
597 |
-
filesList.find('.toggle:checked')
|
598 |
-
.closest('.template-download')
|
599 |
-
.find('.delete').click();
|
600 |
-
fileUploadButtonBar.find('.toggle')
|
601 |
-
.prop('checked', false);
|
602 |
-
}
|
603 |
-
});
|
604 |
-
this._on(fileUploadButtonBar.find('.toggle'), {
|
605 |
-
change: function (e) {
|
606 |
-
filesList.find('.toggle').prop(
|
607 |
-
'checked',
|
608 |
-
$(e.currentTarget).is(':checked')
|
609 |
-
);
|
610 |
-
}
|
611 |
-
});
|
612 |
-
},
|
613 |
-
|
614 |
-
_destroyButtonBarEventHandlers: function () {
|
615 |
-
this._off(
|
616 |
-
this.element.find('.fileupload-buttonbar')
|
617 |
-
.find('.start, .cancel, .delete'),
|
618 |
-
'click'
|
619 |
-
);
|
620 |
-
this._off(
|
621 |
-
this.element.find('.fileupload-buttonbar .toggle'),
|
622 |
-
'change.'
|
623 |
-
);
|
624 |
-
},
|
625 |
-
|
626 |
-
_initEventHandlers: function () {
|
627 |
-
this._super();
|
628 |
-
this._on(this.options.filesContainer, {
|
629 |
-
'click .start': this._startHandler,
|
630 |
-
'click .cancel': this._cancelHandler,
|
631 |
-
'click .delete': this._deleteHandler
|
632 |
-
});
|
633 |
-
this._initButtonBarEventHandlers();
|
634 |
-
},
|
635 |
-
|
636 |
-
_destroyEventHandlers: function () {
|
637 |
-
this._destroyButtonBarEventHandlers();
|
638 |
-
this._off(this.options.filesContainer, 'click');
|
639 |
-
this._super();
|
640 |
-
},
|
641 |
-
|
642 |
-
_enableFileInputButton: function () {
|
643 |
-
this.element.find('.fileinput-button input')
|
644 |
-
.prop('disabled', false)
|
645 |
-
.parent().removeClass('disabled');
|
646 |
-
},
|
647 |
-
|
648 |
-
_disableFileInputButton: function () {
|
649 |
-
this.element.find('.fileinput-button input')
|
650 |
-
.prop('disabled', true)
|
651 |
-
.parent().addClass('disabled');
|
652 |
-
},
|
653 |
-
|
654 |
-
_initTemplates: function () {
|
655 |
-
var options = this.options;
|
656 |
-
options.templatesContainer = this.document[0].createElement(
|
657 |
-
options.filesContainer.prop('nodeName')
|
658 |
-
);
|
659 |
-
if (tmpl) {
|
660 |
-
if (options.uploadTemplateId) {
|
661 |
-
options.uploadTemplate = tmpl(options.uploadTemplateId);
|
662 |
-
}
|
663 |
-
if (options.downloadTemplateId) {
|
664 |
-
options.downloadTemplate = tmpl(options.downloadTemplateId);
|
665 |
-
}
|
666 |
-
}
|
667 |
-
},
|
668 |
-
|
669 |
-
_initFilesContainer: function () {
|
670 |
-
var options = this.options;
|
671 |
-
if (options.filesContainer === undefined) {
|
672 |
-
options.filesContainer = this.element.find('.files');
|
673 |
-
} else if (!(options.filesContainer instanceof $)) {
|
674 |
-
options.filesContainer = $(options.filesContainer);
|
675 |
-
}
|
676 |
-
},
|
677 |
-
|
678 |
-
_initSpecialOptions: function () {
|
679 |
-
this._super();
|
680 |
-
this._initFilesContainer();
|
681 |
-
this._initTemplates();
|
682 |
-
},
|
683 |
-
|
684 |
-
_create: function () {
|
685 |
-
this._super();
|
686 |
-
this._resetFinishedDeferreds();
|
687 |
-
if (!$.support.fileInput) {
|
688 |
-
this._disableFileInputButton();
|
689 |
-
}
|
690 |
-
},
|
691 |
-
|
692 |
-
enable: function () {
|
693 |
-
var wasDisabled = false;
|
694 |
-
if (this.options.disabled) {
|
695 |
-
wasDisabled = true;
|
696 |
-
}
|
697 |
-
this._super();
|
698 |
-
if (wasDisabled) {
|
699 |
-
this.element.find('input, button').prop('disabled', false);
|
700 |
-
this._enableFileInputButton();
|
701 |
-
}
|
702 |
-
},
|
703 |
-
|
704 |
-
disable: function () {
|
705 |
-
if (!this.options.disabled) {
|
706 |
-
this.element.find('input, button').prop('disabled', true);
|
707 |
-
this._disableFileInputButton();
|
708 |
-
}
|
709 |
-
this._super();
|
710 |
-
}
|
711 |
-
|
712 |
-
});
|
713 |
-
|
714 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-validate.js
DELETED
@@ -1,125 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Validation Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* global define, require, window */
|
13 |
-
|
14 |
-
;(function (factory) {
|
15 |
-
'use strict';
|
16 |
-
if (typeof define === 'function' && define.amd) {
|
17 |
-
// Register as an anonymous AMD module:
|
18 |
-
define([
|
19 |
-
'jquery',
|
20 |
-
'./jquery.fileupload-process'
|
21 |
-
], factory);
|
22 |
-
} else if (typeof exports === 'object') {
|
23 |
-
// Node/CommonJS:
|
24 |
-
factory(
|
25 |
-
require('jquery'),
|
26 |
-
require('./jquery.fileupload-process')
|
27 |
-
);
|
28 |
-
} else {
|
29 |
-
// Browser globals:
|
30 |
-
factory(
|
31 |
-
window.jQuery
|
32 |
-
);
|
33 |
-
}
|
34 |
-
}(function ($) {
|
35 |
-
'use strict';
|
36 |
-
|
37 |
-
// Append to the default processQueue:
|
38 |
-
$.blueimp.fileupload.prototype.options.processQueue.push(
|
39 |
-
{
|
40 |
-
action: 'validate',
|
41 |
-
// Always trigger this action,
|
42 |
-
// even if the previous action was rejected:
|
43 |
-
always: true,
|
44 |
-
// Options taken from the global options map:
|
45 |
-
acceptFileTypes: '@',
|
46 |
-
maxFileSize: '@',
|
47 |
-
minFileSize: '@',
|
48 |
-
maxNumberOfFiles: '@',
|
49 |
-
disabled: '@disableValidation'
|
50 |
-
}
|
51 |
-
);
|
52 |
-
|
53 |
-
// The File Upload Validation plugin extends the fileupload widget
|
54 |
-
// with file validation functionality:
|
55 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
56 |
-
|
57 |
-
options: {
|
58 |
-
/*
|
59 |
-
// The regular expression for allowed file types, matches
|
60 |
-
// against either file type or file name:
|
61 |
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
62 |
-
// The maximum allowed file size in bytes:
|
63 |
-
maxFileSize: 10000000, // 10 MB
|
64 |
-
// The minimum allowed file size in bytes:
|
65 |
-
minFileSize: undefined, // No minimal file size
|
66 |
-
// The limit of files to be uploaded:
|
67 |
-
maxNumberOfFiles: 10,
|
68 |
-
*/
|
69 |
-
|
70 |
-
// Function returning the current number of files,
|
71 |
-
// has to be overriden for maxNumberOfFiles validation:
|
72 |
-
getNumberOfFiles: $.noop,
|
73 |
-
|
74 |
-
// Error and info messages:
|
75 |
-
messages: {
|
76 |
-
maxNumberOfFiles: 'Maximum number of files exceeded',
|
77 |
-
acceptFileTypes: 'File type not allowed',
|
78 |
-
maxFileSize: 'File is too large',
|
79 |
-
minFileSize: 'File is too small'
|
80 |
-
}
|
81 |
-
},
|
82 |
-
|
83 |
-
processActions: {
|
84 |
-
|
85 |
-
validate: function (data, options) {
|
86 |
-
if (options.disabled) {
|
87 |
-
return data;
|
88 |
-
}
|
89 |
-
var dfd = $.Deferred(),
|
90 |
-
settings = this.options,
|
91 |
-
file = data.files[data.index],
|
92 |
-
fileSize;
|
93 |
-
if (options.minFileSize || options.maxFileSize) {
|
94 |
-
fileSize = file.size;
|
95 |
-
}
|
96 |
-
if ($.type(options.maxNumberOfFiles) === 'number' &&
|
97 |
-
(settings.getNumberOfFiles() || 0) + data.files.length >
|
98 |
-
options.maxNumberOfFiles) {
|
99 |
-
file.error = settings.i18n('maxNumberOfFiles');
|
100 |
-
} else if (options.acceptFileTypes &&
|
101 |
-
!(options.acceptFileTypes.test(file.type) ||
|
102 |
-
options.acceptFileTypes.test(file.name))) {
|
103 |
-
file.error = settings.i18n('acceptFileTypes');
|
104 |
-
} else if (fileSize > options.maxFileSize) {
|
105 |
-
file.error = settings.i18n('maxFileSize');
|
106 |
-
} else if ($.type(fileSize) === 'number' &&
|
107 |
-
fileSize < options.minFileSize) {
|
108 |
-
file.error = settings.i18n('minFileSize');
|
109 |
-
} else {
|
110 |
-
delete file.error;
|
111 |
-
}
|
112 |
-
if (file.error || data.files.error) {
|
113 |
-
data.files.error = true;
|
114 |
-
dfd.rejectWith(this, [data]);
|
115 |
-
} else {
|
116 |
-
dfd.resolveWith(this, [data]);
|
117 |
-
}
|
118 |
-
return dfd.promise();
|
119 |
-
}
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
-
});
|
124 |
-
|
125 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload-video.js
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Video Preview Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2013, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window, document */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'load-image',
|
22 |
-
'./jquery.fileupload-process'
|
23 |
-
], factory);
|
24 |
-
} else if (typeof exports === 'object') {
|
25 |
-
// Node/CommonJS:
|
26 |
-
factory(
|
27 |
-
require('jquery'),
|
28 |
-
require('blueimp-load-image/js/load-image'),
|
29 |
-
require('./jquery.fileupload-process')
|
30 |
-
);
|
31 |
-
} else {
|
32 |
-
// Browser globals:
|
33 |
-
factory(
|
34 |
-
window.jQuery,
|
35 |
-
window.loadImage
|
36 |
-
);
|
37 |
-
}
|
38 |
-
}(function ($, loadImage) {
|
39 |
-
'use strict';
|
40 |
-
|
41 |
-
// Prepend to the default processQueue:
|
42 |
-
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
43 |
-
{
|
44 |
-
action: 'loadVideo',
|
45 |
-
// Use the action as prefix for the "@" options:
|
46 |
-
prefix: true,
|
47 |
-
fileTypes: '@',
|
48 |
-
maxFileSize: '@',
|
49 |
-
disabled: '@disableVideoPreview'
|
50 |
-
},
|
51 |
-
{
|
52 |
-
action: 'setVideo',
|
53 |
-
name: '@videoPreviewName',
|
54 |
-
disabled: '@disableVideoPreview'
|
55 |
-
}
|
56 |
-
);
|
57 |
-
|
58 |
-
// The File Upload Video Preview plugin extends the fileupload widget
|
59 |
-
// with video preview functionality:
|
60 |
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
61 |
-
|
62 |
-
options: {
|
63 |
-
// The regular expression for the types of video files to load,
|
64 |
-
// matched against the file type:
|
65 |
-
loadVideoFileTypes: /^video\/.*$/
|
66 |
-
},
|
67 |
-
|
68 |
-
_videoElement: document.createElement('video'),
|
69 |
-
|
70 |
-
processActions: {
|
71 |
-
|
72 |
-
// Loads the video file given via data.files and data.index
|
73 |
-
// as video element if the browser supports playing it.
|
74 |
-
// Accepts the options fileTypes (regular expression)
|
75 |
-
// and maxFileSize (integer) to limit the files to load:
|
76 |
-
loadVideo: function (data, options) {
|
77 |
-
if (options.disabled) {
|
78 |
-
return data;
|
79 |
-
}
|
80 |
-
var file = data.files[data.index],
|
81 |
-
url,
|
82 |
-
video;
|
83 |
-
if (this._videoElement.canPlayType &&
|
84 |
-
this._videoElement.canPlayType(file.type) &&
|
85 |
-
($.type(options.maxFileSize) !== 'number' ||
|
86 |
-
file.size <= options.maxFileSize) &&
|
87 |
-
(!options.fileTypes ||
|
88 |
-
options.fileTypes.test(file.type))) {
|
89 |
-
url = loadImage.createObjectURL(file);
|
90 |
-
if (url) {
|
91 |
-
video = this._videoElement.cloneNode(false);
|
92 |
-
video.src = url;
|
93 |
-
video.controls = true;
|
94 |
-
data.video = video;
|
95 |
-
return data;
|
96 |
-
}
|
97 |
-
}
|
98 |
-
return data;
|
99 |
-
},
|
100 |
-
|
101 |
-
// Sets the video element as a property of the file object:
|
102 |
-
setVideo: function (data, options) {
|
103 |
-
if (data.video && !options.disabled) {
|
104 |
-
data.files[data.index][options.name || 'preview'] = data.video;
|
105 |
-
}
|
106 |
-
return data;
|
107 |
-
}
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
});
|
112 |
-
|
113 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.fileupload.js
DELETED
@@ -1,1535 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2010, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* jshint nomen:false */
|
13 |
-
/* global define, require, window, document, location, Blob, FormData */
|
14 |
-
|
15 |
-
;(function (factory) {
|
16 |
-
'use strict';
|
17 |
-
if (typeof define === 'function' && define.amd) {
|
18 |
-
// Register as an anonymous AMD module:
|
19 |
-
define([
|
20 |
-
'jquery',
|
21 |
-
'jquery-ui/ui/widget'
|
22 |
-
], factory);
|
23 |
-
} else if (typeof exports === 'object') {
|
24 |
-
// Node/CommonJS:
|
25 |
-
factory(
|
26 |
-
require('jquery'),
|
27 |
-
require('./vendor/jquery.ui.widget')
|
28 |
-
);
|
29 |
-
} else {
|
30 |
-
// Browser globals:
|
31 |
-
factory(window.jQuery);
|
32 |
-
}
|
33 |
-
}(function ($) {
|
34 |
-
'use strict';
|
35 |
-
|
36 |
-
// Detect file input support, based on
|
37 |
-
// http://viljamis.com/blog/2012/file-upload-support-on-mobile/
|
38 |
-
$.support.fileInput = !(new RegExp(
|
39 |
-
// Handle devices which give false positives for the feature detection:
|
40 |
-
'(Android (1\\.[0156]|2\\.[01]))' +
|
41 |
-
'|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
|
42 |
-
'|(w(eb)?OSBrowser)|(webOS)' +
|
43 |
-
'|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
|
44 |
-
).test(window.navigator.userAgent) ||
|
45 |
-
// Feature detection for all other devices:
|
46 |
-
$('<input type="file"/>').prop('disabled'));
|
47 |
-
|
48 |
-
// The FileReader API is not actually used, but works as feature detection,
|
49 |
-
// as some Safari versions (5?) support XHR file uploads via the FormData API,
|
50 |
-
// but not non-multipart XHR file uploads.
|
51 |
-
// window.XMLHttpRequestUpload is not available on IE10, so we check for
|
52 |
-
// window.ProgressEvent instead to detect XHR2 file upload capability:
|
53 |
-
$.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);
|
54 |
-
$.support.xhrFormDataFileUpload = !!window.FormData;
|
55 |
-
|
56 |
-
// Detect support for Blob slicing (required for chunked uploads):
|
57 |
-
$.support.blobSlice = window.Blob && (Blob.prototype.slice ||
|
58 |
-
Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
|
59 |
-
|
60 |
-
// Helper function to create drag handlers for dragover/dragenter/dragleave:
|
61 |
-
function getDragHandler(type) {
|
62 |
-
var isDragOver = type === 'dragover';
|
63 |
-
return function (e) {
|
64 |
-
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
|
65 |
-
var dataTransfer = e.dataTransfer;
|
66 |
-
if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
|
67 |
-
this._trigger(
|
68 |
-
type,
|
69 |
-
$.Event(type, {delegatedEvent: e})
|
70 |
-
) !== false) {
|
71 |
-
e.preventDefault();
|
72 |
-
if (isDragOver) {
|
73 |
-
dataTransfer.dropEffect = 'copy';
|
74 |
-
}
|
75 |
-
}
|
76 |
-
};
|
77 |
-
}
|
78 |
-
|
79 |
-
// The fileupload widget listens for change events on file input fields defined
|
80 |
-
// via fileInput setting and paste or drop events of the given dropZone.
|
81 |
-
// In addition to the default jQuery Widget methods, the fileupload widget
|
82 |
-
// exposes the "add" and "send" methods, to add or directly send files using
|
83 |
-
// the fileupload API.
|
84 |
-
// By default, files added via file input selection, paste, drag & drop or
|
85 |
-
// "add" method are uploaded immediately, but it is possible to override
|
86 |
-
// the "add" callback option to queue file uploads.
|
87 |
-
$.widget('blueimp.fileupload', {
|
88 |
-
|
89 |
-
options: {
|
90 |
-
// The drop target element(s), by the default the complete document.
|
91 |
-
// Set to null to disable drag & drop support:
|
92 |
-
dropZone: $(document),
|
93 |
-
// The paste target element(s), by the default undefined.
|
94 |
-
// Set to a DOM node or jQuery object to enable file pasting:
|
95 |
-
pasteZone: undefined,
|
96 |
-
// The file input field(s), that are listened to for change events.
|
97 |
-
// If undefined, it is set to the file input fields inside
|
98 |
-
// of the widget element on plugin initialization.
|
99 |
-
// Set to null to disable the change listener.
|
100 |
-
fileInput: undefined,
|
101 |
-
// By default, the file input field is replaced with a clone after
|
102 |
-
// each input field change event. This is required for iframe transport
|
103 |
-
// queues and allows change events to be fired for the same file
|
104 |
-
// selection, but can be disabled by setting the following option to false:
|
105 |
-
replaceFileInput: true,
|
106 |
-
// The parameter name for the file form data (the request argument name).
|
107 |
-
// If undefined or empty, the name property of the file input field is
|
108 |
-
// used, or "files[]" if the file input name property is also empty,
|
109 |
-
// can be a string or an array of strings:
|
110 |
-
paramName: undefined,
|
111 |
-
// By default, each file of a selection is uploaded using an individual
|
112 |
-
// request for XHR type uploads. Set to false to upload file
|
113 |
-
// selections in one request each:
|
114 |
-
singleFileUploads: true,
|
115 |
-
// To limit the number of files uploaded with one XHR request,
|
116 |
-
// set the following option to an integer greater than 0:
|
117 |
-
limitMultiFileUploads: undefined,
|
118 |
-
// The following option limits the number of files uploaded with one
|
119 |
-
// XHR request to keep the request size under or equal to the defined
|
120 |
-
// limit in bytes:
|
121 |
-
limitMultiFileUploadSize: undefined,
|
122 |
-
// Multipart file uploads add a number of bytes to each uploaded file,
|
123 |
-
// therefore the following option adds an overhead for each file used
|
124 |
-
// in the limitMultiFileUploadSize configuration:
|
125 |
-
limitMultiFileUploadSizeOverhead: 512,
|
126 |
-
// Set the following option to true to issue all file upload requests
|
127 |
-
// in a sequential order:
|
128 |
-
sequentialUploads: false,
|
129 |
-
// To limit the number of concurrent uploads,
|
130 |
-
// set the following option to an integer greater than 0:
|
131 |
-
limitConcurrentUploads: undefined,
|
132 |
-
// Set the following option to true to force iframe transport uploads:
|
133 |
-
forceIframeTransport: false,
|
134 |
-
// Set the following option to the location of a redirect url on the
|
135 |
-
// origin server, for cross-domain iframe transport uploads:
|
136 |
-
redirect: undefined,
|
137 |
-
// The parameter name for the redirect url, sent as part of the form
|
138 |
-
// data and set to 'redirect' if this option is empty:
|
139 |
-
redirectParamName: undefined,
|
140 |
-
// Set the following option to the location of a postMessage window,
|
141 |
-
// to enable postMessage transport uploads:
|
142 |
-
postMessage: undefined,
|
143 |
-
// By default, XHR file uploads are sent as multipart/form-data.
|
144 |
-
// The iframe transport is always using multipart/form-data.
|
145 |
-
// Set to false to enable non-multipart XHR uploads:
|
146 |
-
multipart: true,
|
147 |
-
// To upload large files in smaller chunks, set the following option
|
148 |
-
// to a preferred maximum chunk size. If set to 0, null or undefined,
|
149 |
-
// or the browser does not support the required Blob API, files will
|
150 |
-
// be uploaded as a whole.
|
151 |
-
maxChunkSize: undefined,
|
152 |
-
// When a non-multipart upload or a chunked multipart upload has been
|
153 |
-
// aborted, this option can be used to resume the upload by setting
|
154 |
-
// it to the size of the already uploaded bytes. This option is most
|
155 |
-
// useful when modifying the options object inside of the "add" or
|
156 |
-
// "send" callbacks, as the options are cloned for each file upload.
|
157 |
-
uploadedBytes: undefined,
|
158 |
-
// By default, failed (abort or error) file uploads are removed from the
|
159 |
-
// global progress calculation. Set the following option to false to
|
160 |
-
// prevent recalculating the global progress data:
|
161 |
-
recalculateProgress: true,
|
162 |
-
// Interval in milliseconds to calculate and trigger progress events:
|
163 |
-
progressInterval: 100,
|
164 |
-
// Interval in milliseconds to calculate progress bitrate:
|
165 |
-
bitrateInterval: 500,
|
166 |
-
// By default, uploads are started automatically when adding files:
|
167 |
-
autoUpload: true,
|
168 |
-
// By default, duplicate file names are expected to be handled on
|
169 |
-
// the server-side. If this is not possible (e.g. when uploading
|
170 |
-
// files directly to Amazon S3), the following option can be set to
|
171 |
-
// an empty object or an object mapping existing filenames, e.g.:
|
172 |
-
// { "image.jpg": true, "image (1).jpg": true }
|
173 |
-
// If it is set, all files will be uploaded with unique filenames,
|
174 |
-
// adding increasing number suffixes if necessary, e.g.:
|
175 |
-
// "image (2).jpg"
|
176 |
-
uniqueFilenames: undefined,
|
177 |
-
|
178 |
-
// Error and info messages:
|
179 |
-
messages: {
|
180 |
-
uploadedBytes: 'Uploaded bytes exceed file size'
|
181 |
-
},
|
182 |
-
|
183 |
-
// Translation function, gets the message key to be translated
|
184 |
-
// and an object with context specific data as arguments:
|
185 |
-
i18n: function (message, context) {
|
186 |
-
message = this.messages[message] || message.toString();
|
187 |
-
if (context) {
|
188 |
-
$.each(context, function (key, value) {
|
189 |
-
message = message.replace('{' + key + '}', value);
|
190 |
-
});
|
191 |
-
}
|
192 |
-
return message;
|
193 |
-
},
|
194 |
-
|
195 |
-
// Additional form data to be sent along with the file uploads can be set
|
196 |
-
// using this option, which accepts an array of objects with name and
|
197 |
-
// value properties, a function returning such an array, a FormData
|
198 |
-
// object (for XHR file uploads), or a simple object.
|
199 |
-
// The form of the first fileInput is given as parameter to the function:
|
200 |
-
formData: function (form) {
|
201 |
-
return form.serializeArray();
|
202 |
-
},
|
203 |
-
|
204 |
-
// The add callback is invoked as soon as files are added to the fileupload
|
205 |
-
// widget (via file input selection, drag & drop, paste or add API call).
|
206 |
-
// If the singleFileUploads option is enabled, this callback will be
|
207 |
-
// called once for each file in the selection for XHR file uploads, else
|
208 |
-
// once for each file selection.
|
209 |
-
//
|
210 |
-
// The upload starts when the submit method is invoked on the data parameter.
|
211 |
-
// The data object contains a files property holding the added files
|
212 |
-
// and allows you to override plugin options as well as define ajax settings.
|
213 |
-
//
|
214 |
-
// Listeners for this callback can also be bound the following way:
|
215 |
-
// .bind('fileuploadadd', func);
|
216 |
-
//
|
217 |
-
// data.submit() returns a Promise object and allows to attach additional
|
218 |
-
// handlers using jQuery's Deferred callbacks:
|
219 |
-
// data.submit().done(func).fail(func).always(func);
|
220 |
-
add: function (e, data) {
|
221 |
-
if (e.isDefaultPrevented()) {
|
222 |
-
return false;
|
223 |
-
}
|
224 |
-
if (data.autoUpload || (data.autoUpload !== false &&
|
225 |
-
$(this).fileupload('option', 'autoUpload'))) {
|
226 |
-
data.process().done(function () {
|
227 |
-
data.submit();
|
228 |
-
});
|
229 |
-
}
|
230 |
-
},
|
231 |
-
|
232 |
-
// Other callbacks:
|
233 |
-
|
234 |
-
// Callback for the submit event of each file upload:
|
235 |
-
// submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
|
236 |
-
|
237 |
-
// Callback for the start of each file upload request:
|
238 |
-
// send: function (e, data) {}, // .bind('fileuploadsend', func);
|
239 |
-
|
240 |
-
// Callback for successful uploads:
|
241 |
-
// done: function (e, data) {}, // .bind('fileuploaddone', func);
|
242 |
-
|
243 |
-
// Callback for failed (abort or error) uploads:
|
244 |
-
// fail: function (e, data) {}, // .bind('fileuploadfail', func);
|
245 |
-
|
246 |
-
// Callback for completed (success, abort or error) requests:
|
247 |
-
// always: function (e, data) {}, // .bind('fileuploadalways', func);
|
248 |
-
|
249 |
-
// Callback for upload progress events:
|
250 |
-
// progress: function (e, data) {}, // .bind('fileuploadprogress', func);
|
251 |
-
|
252 |
-
// Callback for global upload progress events:
|
253 |
-
// progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
|
254 |
-
|
255 |
-
// Callback for uploads start, equivalent to the global ajaxStart event:
|
256 |
-
// start: function (e) {}, // .bind('fileuploadstart', func);
|
257 |
-
|
258 |
-
// Callback for uploads stop, equivalent to the global ajaxStop event:
|
259 |
-
// stop: function (e) {}, // .bind('fileuploadstop', func);
|
260 |
-
|
261 |
-
// Callback for change events of the fileInput(s):
|
262 |
-
// change: function (e, data) {}, // .bind('fileuploadchange', func);
|
263 |
-
|
264 |
-
// Callback for paste events to the pasteZone(s):
|
265 |
-
// paste: function (e, data) {}, // .bind('fileuploadpaste', func);
|
266 |
-
|
267 |
-
// Callback for drop events of the dropZone(s):
|
268 |
-
// drop: function (e, data) {}, // .bind('fileuploaddrop', func);
|
269 |
-
|
270 |
-
// Callback for dragover events of the dropZone(s):
|
271 |
-
// dragover: function (e) {}, // .bind('fileuploaddragover', func);
|
272 |
-
|
273 |
-
// Callback before the start of each chunk upload request (before form data initialization):
|
274 |
-
// chunkbeforesend: function (e, data) {}, // .bind('fileuploadchunkbeforesend', func);
|
275 |
-
|
276 |
-
// Callback for the start of each chunk upload request:
|
277 |
-
// chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
|
278 |
-
|
279 |
-
// Callback for successful chunk uploads:
|
280 |
-
// chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
|
281 |
-
|
282 |
-
// Callback for failed (abort or error) chunk uploads:
|
283 |
-
// chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
|
284 |
-
|
285 |
-
// Callback for completed (success, abort or error) chunk upload requests:
|
286 |
-
// chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
|
287 |
-
|
288 |
-
// The plugin options are used as settings object for the ajax calls.
|
289 |
-
// The following are jQuery ajax settings required for the file uploads:
|
290 |
-
processData: false,
|
291 |
-
contentType: false,
|
292 |
-
cache: false,
|
293 |
-
timeout: 0
|
294 |
-
},
|
295 |
-
|
296 |
-
// A list of options that require reinitializing event listeners and/or
|
297 |
-
// special initialization code:
|
298 |
-
_specialOptions: [
|
299 |
-
'fileInput',
|
300 |
-
'dropZone',
|
301 |
-
'pasteZone',
|
302 |
-
'multipart',
|
303 |
-
'forceIframeTransport'
|
304 |
-
],
|
305 |
-
|
306 |
-
_blobSlice: $.support.blobSlice && function () {
|
307 |
-
var slice = this.slice || this.webkitSlice || this.mozSlice;
|
308 |
-
return slice.apply(this, arguments);
|
309 |
-
},
|
310 |
-
|
311 |
-
_BitrateTimer: function () {
|
312 |
-
this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());
|
313 |
-
this.loaded = 0;
|
314 |
-
this.bitrate = 0;
|
315 |
-
this.getBitrate = function (now, loaded, interval) {
|
316 |
-
var timeDiff = now - this.timestamp;
|
317 |
-
if (!this.bitrate || !interval || timeDiff > interval) {
|
318 |
-
this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
|
319 |
-
this.loaded = loaded;
|
320 |
-
this.timestamp = now;
|
321 |
-
}
|
322 |
-
return this.bitrate;
|
323 |
-
};
|
324 |
-
},
|
325 |
-
|
326 |
-
_isXHRUpload: function (options) {
|
327 |
-
return !options.forceIframeTransport &&
|
328 |
-
((!options.multipart && $.support.xhrFileUpload) ||
|
329 |
-
$.support.xhrFormDataFileUpload);
|
330 |
-
},
|
331 |
-
|
332 |
-
_getFormData: function (options) {
|
333 |
-
var formData;
|
334 |
-
if ($.type(options.formData) === 'function') {
|
335 |
-
return options.formData(options.form);
|
336 |
-
}
|
337 |
-
if ($.isArray(options.formData)) {
|
338 |
-
return options.formData;
|
339 |
-
}
|
340 |
-
if ($.type(options.formData) === 'object') {
|
341 |
-
formData = [];
|
342 |
-
$.each(options.formData, function (name, value) {
|
343 |
-
formData.push({name: name, value: value});
|
344 |
-
});
|
345 |
-
return formData;
|
346 |
-
}
|
347 |
-
return [];
|
348 |
-
},
|
349 |
-
|
350 |
-
_getTotal: function (files) {
|
351 |
-
var total = 0;
|
352 |
-
$.each(files, function (index, file) {
|
353 |
-
total += file.size || 1;
|
354 |
-
});
|
355 |
-
return total;
|
356 |
-
},
|
357 |
-
|
358 |
-
_initProgressObject: function (obj) {
|
359 |
-
var progress = {
|
360 |
-
loaded: 0,
|
361 |
-
total: 0,
|
362 |
-
bitrate: 0
|
363 |
-
};
|
364 |
-
if (obj._progress) {
|
365 |
-
$.extend(obj._progress, progress);
|
366 |
-
} else {
|
367 |
-
obj._progress = progress;
|
368 |
-
}
|
369 |
-
},
|
370 |
-
|
371 |
-
_initResponseObject: function (obj) {
|
372 |
-
var prop;
|
373 |
-
if (obj._response) {
|
374 |
-
for (prop in obj._response) {
|
375 |
-
if (obj._response.hasOwnProperty(prop)) {
|
376 |
-
delete obj._response[prop];
|
377 |
-
}
|
378 |
-
}
|
379 |
-
} else {
|
380 |
-
obj._response = {};
|
381 |
-
}
|
382 |
-
},
|
383 |
-
|
384 |
-
_onProgress: function (e, data) {
|
385 |
-
if (e.lengthComputable) {
|
386 |
-
var now = ((Date.now) ? Date.now() : (new Date()).getTime()),
|
387 |
-
loaded;
|
388 |
-
if (data._time && data.progressInterval &&
|
389 |
-
(now - data._time < data.progressInterval) &&
|
390 |
-
e.loaded !== e.total) {
|
391 |
-
return;
|
392 |
-
}
|
393 |
-
data._time = now;
|
394 |
-
loaded = Math.floor(
|
395 |
-
e.loaded / e.total * (data.chunkSize || data._progress.total)
|
396 |
-
) + (data.uploadedBytes || 0);
|
397 |
-
// Add the difference from the previously loaded state
|
398 |
-
// to the global loaded counter:
|
399 |
-
this._progress.loaded += (loaded - data._progress.loaded);
|
400 |
-
this._progress.bitrate = this._bitrateTimer.getBitrate(
|
401 |
-
now,
|
402 |
-
this._progress.loaded,
|
403 |
-
data.bitrateInterval
|
404 |
-
);
|
405 |
-
data._progress.loaded = data.loaded = loaded;
|
406 |
-
data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
|
407 |
-
now,
|
408 |
-
loaded,
|
409 |
-
data.bitrateInterval
|
410 |
-
);
|
411 |
-
// Trigger a custom progress event with a total data property set
|
412 |
-
// to the file size(s) of the current upload and a loaded data
|
413 |
-
// property calculated accordingly:
|
414 |
-
this._trigger(
|
415 |
-
'progress',
|
416 |
-
$.Event('progress', {delegatedEvent: e}),
|
417 |
-
data
|
418 |
-
);
|
419 |
-
// Trigger a global progress event for all current file uploads,
|
420 |
-
// including ajax calls queued for sequential file uploads:
|
421 |
-
this._trigger(
|
422 |
-
'progressall',
|
423 |
-
$.Event('progressall', {delegatedEvent: e}),
|
424 |
-
this._progress
|
425 |
-
);
|
426 |
-
}
|
427 |
-
},
|
428 |
-
|
429 |
-
_initProgressListener: function (options) {
|
430 |
-
var that = this,
|
431 |
-
xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
|
432 |
-
// Accesss to the native XHR object is required to add event listeners
|
433 |
-
// for the upload progress event:
|
434 |
-
if (xhr.upload) {
|
435 |
-
$(xhr.upload).bind('progress', function (e) {
|
436 |
-
var oe = e.originalEvent;
|
437 |
-
// Make sure the progress event properties get copied over:
|
438 |
-
e.lengthComputable = oe.lengthComputable;
|
439 |
-
e.loaded = oe.loaded;
|
440 |
-
e.total = oe.total;
|
441 |
-
that._onProgress(e, options);
|
442 |
-
});
|
443 |
-
options.xhr = function () {
|
444 |
-
return xhr;
|
445 |
-
};
|
446 |
-
}
|
447 |
-
},
|
448 |
-
|
449 |
-
_deinitProgressListener: function (options) {
|
450 |
-
var xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
|
451 |
-
if (xhr.upload) {
|
452 |
-
$(xhr.upload).unbind('progress');
|
453 |
-
}
|
454 |
-
},
|
455 |
-
|
456 |
-
_isInstanceOf: function (type, obj) {
|
457 |
-
// Cross-frame instanceof check
|
458 |
-
return Object.prototype.toString.call(obj) === '[object ' + type + ']';
|
459 |
-
},
|
460 |
-
|
461 |
-
_getUniqueFilename: function (name, map) {
|
462 |
-
name = String(name);
|
463 |
-
if (map[name]) {
|
464 |
-
name = name.replace(
|
465 |
-
/(?: \(([\d]+)\))?(\.[^.]+)?$/,
|
466 |
-
function (_, p1, p2) {
|
467 |
-
var index = p1 ? Number(p1) + 1 : 1;
|
468 |
-
var ext = p2 || '';
|
469 |
-
return ' (' + index + ')' + ext;
|
470 |
-
}
|
471 |
-
);
|
472 |
-
return this._getUniqueFilename(name, map);
|
473 |
-
}
|
474 |
-
map[name] = true;
|
475 |
-
return name;
|
476 |
-
},
|
477 |
-
|
478 |
-
_initXHRData: function (options) {
|
479 |
-
var that = this,
|
480 |
-
formData,
|
481 |
-
file = options.files[0],
|
482 |
-
// Ignore non-multipart setting if not supported:
|
483 |
-
multipart = options.multipart || !$.support.xhrFileUpload,
|
484 |
-
paramName = $.type(options.paramName) === 'array' ?
|
485 |
-
options.paramName[0] : options.paramName;
|
486 |
-
options.headers = $.extend({}, options.headers);
|
487 |
-
if (options.contentRange) {
|
488 |
-
options.headers['Content-Range'] = options.contentRange;
|
489 |
-
}
|
490 |
-
if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
|
491 |
-
options.headers['Content-Disposition'] = 'attachment; filename="' +
|
492 |
-
encodeURI(file.uploadName || file.name) + '"';
|
493 |
-
}
|
494 |
-
if (!multipart) {
|
495 |
-
options.contentType = file.type || 'application/octet-stream';
|
496 |
-
options.data = options.blob || file;
|
497 |
-
} else if ($.support.xhrFormDataFileUpload) {
|
498 |
-
if (options.postMessage) {
|
499 |
-
// window.postMessage does not allow sending FormData
|
500 |
-
// objects, so we just add the File/Blob objects to
|
501 |
-
// the formData array and let the postMessage window
|
502 |
-
// create the FormData object out of this array:
|
503 |
-
formData = this._getFormData(options);
|
504 |
-
if (options.blob) {
|
505 |
-
formData.push({
|
506 |
-
name: paramName,
|
507 |
-
value: options.blob
|
508 |
-
});
|
509 |
-
} else {
|
510 |
-
$.each(options.files, function (index, file) {
|
511 |
-
formData.push({
|
512 |
-
name: ($.type(options.paramName) === 'array' &&
|
513 |
-
options.paramName[index]) || paramName,
|
514 |
-
value: file
|
515 |
-
});
|
516 |
-
});
|
517 |
-
}
|
518 |
-
} else {
|
519 |
-
if (that._isInstanceOf('FormData', options.formData)) {
|
520 |
-
formData = options.formData;
|
521 |
-
} else {
|
522 |
-
formData = new FormData();
|
523 |
-
$.each(this._getFormData(options), function (index, field) {
|
524 |
-
formData.append(field.name, field.value);
|
525 |
-
});
|
526 |
-
}
|
527 |
-
if (options.blob) {
|
528 |
-
formData.append(
|
529 |
-
paramName,
|
530 |
-
options.blob,
|
531 |
-
file.uploadName || file.name
|
532 |
-
);
|
533 |
-
} else {
|
534 |
-
$.each(options.files, function (index, file) {
|
535 |
-
// This check allows the tests to run with
|
536 |
-
// dummy objects:
|
537 |
-
if (that._isInstanceOf('File', file) ||
|
538 |
-
that._isInstanceOf('Blob', file)) {
|
539 |
-
var fileName = file.uploadName || file.name;
|
540 |
-
if (options.uniqueFilenames) {
|
541 |
-
fileName = that._getUniqueFilename(
|
542 |
-
fileName,
|
543 |
-
options.uniqueFilenames
|
544 |
-
);
|
545 |
-
}
|
546 |
-
formData.append(
|
547 |
-
($.type(options.paramName) === 'array' &&
|
548 |
-
options.paramName[index]) || paramName,
|
549 |
-
file,
|
550 |
-
fileName
|
551 |
-
);
|
552 |
-
}
|
553 |
-
});
|
554 |
-
}
|
555 |
-
}
|
556 |
-
options.data = formData;
|
557 |
-
}
|
558 |
-
// Blob reference is not needed anymore, free memory:
|
559 |
-
options.blob = null;
|
560 |
-
},
|
561 |
-
|
562 |
-
_initIframeSettings: function (options) {
|
563 |
-
var targetHost = $('<a></a>').prop('href', options.url).prop('host');
|
564 |
-
// Setting the dataType to iframe enables the iframe transport:
|
565 |
-
options.dataType = 'iframe ' + (options.dataType || '');
|
566 |
-
// The iframe transport accepts a serialized array as form data:
|
567 |
-
options.formData = this._getFormData(options);
|
568 |
-
// Add redirect url to form data on cross-domain uploads:
|
569 |
-
if (options.redirect && targetHost && targetHost !== location.host) {
|
570 |
-
options.formData.push({
|
571 |
-
name: options.redirectParamName || 'redirect',
|
572 |
-
value: options.redirect
|
573 |
-
});
|
574 |
-
}
|
575 |
-
},
|
576 |
-
|
577 |
-
_initDataSettings: function (options) {
|
578 |
-
if (this._isXHRUpload(options)) {
|
579 |
-
if (!this._chunkedUpload(options, true)) {
|
580 |
-
if (!options.data) {
|
581 |
-
this._initXHRData(options);
|
582 |
-
}
|
583 |
-
this._initProgressListener(options);
|
584 |
-
}
|
585 |
-
if (options.postMessage) {
|
586 |
-
// Setting the dataType to postmessage enables the
|
587 |
-
// postMessage transport:
|
588 |
-
options.dataType = 'postmessage ' + (options.dataType || '');
|
589 |
-
}
|
590 |
-
} else {
|
591 |
-
this._initIframeSettings(options);
|
592 |
-
}
|
593 |
-
},
|
594 |
-
|
595 |
-
_getParamName: function (options) {
|
596 |
-
var fileInput = $(options.fileInput),
|
597 |
-
paramName = options.paramName;
|
598 |
-
if (!paramName) {
|
599 |
-
paramName = [];
|
600 |
-
fileInput.each(function () {
|
601 |
-
var input = $(this),
|
602 |
-
name = input.prop('name') || 'files[]',
|
603 |
-
i = (input.prop('files') || [1]).length;
|
604 |
-
while (i) {
|
605 |
-
paramName.push(name);
|
606 |
-
i -= 1;
|
607 |
-
}
|
608 |
-
});
|
609 |
-
if (!paramName.length) {
|
610 |
-
paramName = [fileInput.prop('name') || 'files[]'];
|
611 |
-
}
|
612 |
-
} else if (!$.isArray(paramName)) {
|
613 |
-
paramName = [paramName];
|
614 |
-
}
|
615 |
-
return paramName;
|
616 |
-
},
|
617 |
-
|
618 |
-
_initFormSettings: function (options) {
|
619 |
-
// Retrieve missing options from the input field and the
|
620 |
-
// associated form, if available:
|
621 |
-
if (!options.form || !options.form.length) {
|
622 |
-
options.form = $(options.fileInput.prop('form'));
|
623 |
-
// If the given file input doesn't have an associated form,
|
624 |
-
// use the default widget file input's form:
|
625 |
-
if (!options.form.length) {
|
626 |
-
options.form = $(this.options.fileInput.prop('form'));
|
627 |
-
}
|
628 |
-
}
|
629 |
-
options.paramName = this._getParamName(options);
|
630 |
-
if (!options.url) {
|
631 |
-
options.url = options.form.prop('action') || location.href;
|
632 |
-
}
|
633 |
-
// The HTTP request method must be "POST" or "PUT":
|
634 |
-
options.type = (options.type ||
|
635 |
-
($.type(options.form.prop('method')) === 'string' &&
|
636 |
-
options.form.prop('method')) || ''
|
637 |
-
).toUpperCase();
|
638 |
-
if (options.type !== 'POST' && options.type !== 'PUT' &&
|
639 |
-
options.type !== 'PATCH') {
|
640 |
-
options.type = 'POST';
|
641 |
-
}
|
642 |
-
if (!options.formAcceptCharset) {
|
643 |
-
options.formAcceptCharset = options.form.attr('accept-charset');
|
644 |
-
}
|
645 |
-
},
|
646 |
-
|
647 |
-
_getAJAXSettings: function (data) {
|
648 |
-
var options = $.extend({}, this.options, data);
|
649 |
-
this._initFormSettings(options);
|
650 |
-
this._initDataSettings(options);
|
651 |
-
return options;
|
652 |
-
},
|
653 |
-
|
654 |
-
// jQuery 1.6 doesn't provide .state(),
|
655 |
-
// while jQuery 1.8+ removed .isRejected() and .isResolved():
|
656 |
-
_getDeferredState: function (deferred) {
|
657 |
-
if (deferred.state) {
|
658 |
-
return deferred.state();
|
659 |
-
}
|
660 |
-
if (deferred.isResolved()) {
|
661 |
-
return 'resolved';
|
662 |
-
}
|
663 |
-
if (deferred.isRejected()) {
|
664 |
-
return 'rejected';
|
665 |
-
}
|
666 |
-
return 'pending';
|
667 |
-
},
|
668 |
-
|
669 |
-
// Maps jqXHR callbacks to the equivalent
|
670 |
-
// methods of the given Promise object:
|
671 |
-
_enhancePromise: function (promise) {
|
672 |
-
promise.success = promise.done;
|
673 |
-
promise.error = promise.fail;
|
674 |
-
promise.complete = promise.always;
|
675 |
-
return promise;
|
676 |
-
},
|
677 |
-
|
678 |
-
// Creates and returns a Promise object enhanced with
|
679 |
-
// the jqXHR methods abort, success, error and complete:
|
680 |
-
_getXHRPromise: function (resolveOrReject, context, args) {
|
681 |
-
var dfd = $.Deferred(),
|
682 |
-
promise = dfd.promise();
|
683 |
-
context = context || this.options.context || promise;
|
684 |
-
if (resolveOrReject === true) {
|
685 |
-
dfd.resolveWith(context, args);
|
686 |
-
} else if (resolveOrReject === false) {
|
687 |
-
dfd.rejectWith(context, args);
|
688 |
-
}
|
689 |
-
promise.abort = dfd.promise;
|
690 |
-
return this._enhancePromise(promise);
|
691 |
-
},
|
692 |
-
|
693 |
-
// Adds convenience methods to the data callback argument:
|
694 |
-
_addConvenienceMethods: function (e, data) {
|
695 |
-
var that = this,
|
696 |
-
getPromise = function (args) {
|
697 |
-
return $.Deferred().resolveWith(that, args).promise();
|
698 |
-
};
|
699 |
-
data.process = function (resolveFunc, rejectFunc) {
|
700 |
-
if (resolveFunc || rejectFunc) {
|
701 |
-
data._processQueue = this._processQueue =
|
702 |
-
(this._processQueue || getPromise([this])).then(
|
703 |
-
function () {
|
704 |
-
if (data.errorThrown) {
|
705 |
-
return $.Deferred()
|
706 |
-
.rejectWith(that, [data]).promise();
|
707 |
-
}
|
708 |
-
return getPromise(arguments);
|
709 |
-
}
|
710 |
-
).then(resolveFunc, rejectFunc);
|
711 |
-
}
|
712 |
-
return this._processQueue || getPromise([this]);
|
713 |
-
};
|
714 |
-
data.submit = function () {
|
715 |
-
if (this.state() !== 'pending') {
|
716 |
-
data.jqXHR = this.jqXHR =
|
717 |
-
(that._trigger(
|
718 |
-
'submit',
|
719 |
-
$.Event('submit', {delegatedEvent: e}),
|
720 |
-
this
|
721 |
-
) !== false) && that._onSend(e, this);
|
722 |
-
}
|
723 |
-
return this.jqXHR || that._getXHRPromise();
|
724 |
-
};
|
725 |
-
data.abort = function () {
|
726 |
-
if (this.jqXHR) {
|
727 |
-
return this.jqXHR.abort();
|
728 |
-
}
|
729 |
-
this.errorThrown = 'abort';
|
730 |
-
that._trigger('fail', null, this);
|
731 |
-
return that._getXHRPromise(false);
|
732 |
-
};
|
733 |
-
data.state = function () {
|
734 |
-
if (this.jqXHR) {
|
735 |
-
return that._getDeferredState(this.jqXHR);
|
736 |
-
}
|
737 |
-
if (this._processQueue) {
|
738 |
-
return that._getDeferredState(this._processQueue);
|
739 |
-
}
|
740 |
-
};
|
741 |
-
data.processing = function () {
|
742 |
-
return !this.jqXHR && this._processQueue && that
|
743 |
-
._getDeferredState(this._processQueue) === 'pending';
|
744 |
-
};
|
745 |
-
data.progress = function () {
|
746 |
-
return this._progress;
|
747 |
-
};
|
748 |
-
data.response = function () {
|
749 |
-
return this._response;
|
750 |
-
};
|
751 |
-
},
|
752 |
-
|
753 |
-
// Parses the Range header from the server response
|
754 |
-
// and returns the uploaded bytes:
|
755 |
-
_getUploadedBytes: function (jqXHR) {
|
756 |
-
var range = jqXHR.getResponseHeader('Range'),
|
757 |
-
parts = range && range.split('-'),
|
758 |
-
upperBytesPos = parts && parts.length > 1 &&
|
759 |
-
parseInt(parts[1], 10);
|
760 |
-
return upperBytesPos && upperBytesPos + 1;
|
761 |
-
},
|
762 |
-
|
763 |
-
// Uploads a file in multiple, sequential requests
|
764 |
-
// by splitting the file up in multiple blob chunks.
|
765 |
-
// If the second parameter is true, only tests if the file
|
766 |
-
// should be uploaded in chunks, but does not invoke any
|
767 |
-
// upload requests:
|
768 |
-
_chunkedUpload: function (options, testOnly) {
|
769 |
-
options.uploadedBytes = options.uploadedBytes || 0;
|
770 |
-
var that = this,
|
771 |
-
file = options.files[0],
|
772 |
-
fs = file.size,
|
773 |
-
ub = options.uploadedBytes,
|
774 |
-
mcs = options.maxChunkSize || fs,
|
775 |
-
slice = this._blobSlice,
|
776 |
-
dfd = $.Deferred(),
|
777 |
-
promise = dfd.promise(),
|
778 |
-
jqXHR,
|
779 |
-
upload;
|
780 |
-
if (!(this._isXHRUpload(options) && slice && (ub || ($.type(mcs) === 'function' ? mcs(options) : mcs) < fs)) ||
|
781 |
-
options.data) {
|
782 |
-
return false;
|
783 |
-
}
|
784 |
-
if (testOnly) {
|
785 |
-
return true;
|
786 |
-
}
|
787 |
-
if (ub >= fs) {
|
788 |
-
file.error = options.i18n('uploadedBytes');
|
789 |
-
return this._getXHRPromise(
|
790 |
-
false,
|
791 |
-
options.context,
|
792 |
-
[null, 'error', file.error]
|
793 |
-
);
|
794 |
-
}
|
795 |
-
// The chunk upload method:
|
796 |
-
upload = function () {
|
797 |
-
// Clone the options object for each chunk upload:
|
798 |
-
var o = $.extend({}, options),
|
799 |
-
currentLoaded = o._progress.loaded;
|
800 |
-
o.blob = slice.call(
|
801 |
-
file,
|
802 |
-
ub,
|
803 |
-
ub + ($.type(mcs) === 'function' ? mcs(o) : mcs),
|
804 |
-
file.type
|
805 |
-
);
|
806 |
-
// Store the current chunk size, as the blob itself
|
807 |
-
// will be dereferenced after data processing:
|
808 |
-
o.chunkSize = o.blob.size;
|
809 |
-
// Expose the chunk bytes position range:
|
810 |
-
o.contentRange = 'bytes ' + ub + '-' +
|
811 |
-
(ub + o.chunkSize - 1) + '/' + fs;
|
812 |
-
// Trigger chunkbeforesend to allow form data to be updated for this chunk
|
813 |
-
that._trigger('chunkbeforesend', null, o);
|
814 |
-
// Process the upload data (the blob and potential form data):
|
815 |
-
that._initXHRData(o);
|
816 |
-
// Add progress listeners for this chunk upload:
|
817 |
-
that._initProgressListener(o);
|
818 |
-
jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
|
819 |
-
that._getXHRPromise(false, o.context))
|
820 |
-
.done(function (result, textStatus, jqXHR) {
|
821 |
-
ub = that._getUploadedBytes(jqXHR) ||
|
822 |
-
(ub + o.chunkSize);
|
823 |
-
// Create a progress event if no final progress event
|
824 |
-
// with loaded equaling total has been triggered
|
825 |
-
// for this chunk:
|
826 |
-
if (currentLoaded + o.chunkSize - o._progress.loaded) {
|
827 |
-
that._onProgress($.Event('progress', {
|
828 |
-
lengthComputable: true,
|
829 |
-
loaded: ub - o.uploadedBytes,
|
830 |
-
total: ub - o.uploadedBytes
|
831 |
-
}), o);
|
832 |
-
}
|
833 |
-
options.uploadedBytes = o.uploadedBytes = ub;
|
834 |
-
o.result = result;
|
835 |
-
o.textStatus = textStatus;
|
836 |
-
o.jqXHR = jqXHR;
|
837 |
-
that._trigger('chunkdone', null, o);
|
838 |
-
that._trigger('chunkalways', null, o);
|
839 |
-
if (ub < fs) {
|
840 |
-
// File upload not yet complete,
|
841 |
-
// continue with the next chunk:
|
842 |
-
upload();
|
843 |
-
} else {
|
844 |
-
dfd.resolveWith(
|
845 |
-
o.context,
|
846 |
-
[result, textStatus, jqXHR]
|
847 |
-
);
|
848 |
-
}
|
849 |
-
})
|
850 |
-
.fail(function (jqXHR, textStatus, errorThrown) {
|
851 |
-
o.jqXHR = jqXHR;
|
852 |
-
o.textStatus = textStatus;
|
853 |
-
o.errorThrown = errorThrown;
|
854 |
-
that._trigger('chunkfail', null, o);
|
855 |
-
that._trigger('chunkalways', null, o);
|
856 |
-
dfd.rejectWith(
|
857 |
-
o.context,
|
858 |
-
[jqXHR, textStatus, errorThrown]
|
859 |
-
);
|
860 |
-
})
|
861 |
-
.always(function () {
|
862 |
-
that._deinitProgressListener(o);
|
863 |
-
});
|
864 |
-
};
|
865 |
-
this._enhancePromise(promise);
|
866 |
-
promise.abort = function () {
|
867 |
-
return jqXHR.abort();
|
868 |
-
};
|
869 |
-
upload();
|
870 |
-
return promise;
|
871 |
-
},
|
872 |
-
|
873 |
-
_beforeSend: function (e, data) {
|
874 |
-
if (this._active === 0) {
|
875 |
-
// the start callback is triggered when an upload starts
|
876 |
-
// and no other uploads are currently running,
|
877 |
-
// equivalent to the global ajaxStart event:
|
878 |
-
this._trigger('start');
|
879 |
-
// Set timer for global bitrate progress calculation:
|
880 |
-
this._bitrateTimer = new this._BitrateTimer();
|
881 |
-
// Reset the global progress values:
|
882 |
-
this._progress.loaded = this._progress.total = 0;
|
883 |
-
this._progress.bitrate = 0;
|
884 |
-
}
|
885 |
-
// Make sure the container objects for the .response() and
|
886 |
-
// .progress() methods on the data object are available
|
887 |
-
// and reset to their initial state:
|
888 |
-
this._initResponseObject(data);
|
889 |
-
this._initProgressObject(data);
|
890 |
-
data._progress.loaded = data.loaded = data.uploadedBytes || 0;
|
891 |
-
data._progress.total = data.total = this._getTotal(data.files) || 1;
|
892 |
-
data._progress.bitrate = data.bitrate = 0;
|
893 |
-
this._active += 1;
|
894 |
-
// Initialize the global progress values:
|
895 |
-
this._progress.loaded += data.loaded;
|
896 |
-
this._progress.total += data.total;
|
897 |
-
},
|
898 |
-
|
899 |
-
_onDone: function (result, textStatus, jqXHR, options) {
|
900 |
-
var total = options._progress.total,
|
901 |
-
response = options._response;
|
902 |
-
if (options._progress.loaded < total) {
|
903 |
-
// Create a progress event if no final progress event
|
904 |
-
// with loaded equaling total has been triggered:
|
905 |
-
this._onProgress($.Event('progress', {
|
906 |
-
lengthComputable: true,
|
907 |
-
loaded: total,
|
908 |
-
total: total
|
909 |
-
}), options);
|
910 |
-
}
|
911 |
-
response.result = options.result = result;
|
912 |
-
response.textStatus = options.textStatus = textStatus;
|
913 |
-
response.jqXHR = options.jqXHR = jqXHR;
|
914 |
-
this._trigger('done', null, options);
|
915 |
-
},
|
916 |
-
|
917 |
-
_onFail: function (jqXHR, textStatus, errorThrown, options) {
|
918 |
-
var response = options._response;
|
919 |
-
if (options.recalculateProgress) {
|
920 |
-
// Remove the failed (error or abort) file upload from
|
921 |
-
// the global progress calculation:
|
922 |
-
this._progress.loaded -= options._progress.loaded;
|
923 |
-
this._progress.total -= options._progress.total;
|
924 |
-
}
|
925 |
-
response.jqXHR = options.jqXHR = jqXHR;
|
926 |
-
response.textStatus = options.textStatus = textStatus;
|
927 |
-
response.errorThrown = options.errorThrown = errorThrown;
|
928 |
-
this._trigger('fail', null, options);
|
929 |
-
},
|
930 |
-
|
931 |
-
_onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
|
932 |
-
// jqXHRorResult, textStatus and jqXHRorError are added to the
|
933 |
-
// options object via done and fail callbacks
|
934 |
-
this._trigger('always', null, options);
|
935 |
-
},
|
936 |
-
|
937 |
-
_onSend: function (e, data) {
|
938 |
-
if (!data.submit) {
|
939 |
-
this._addConvenienceMethods(e, data);
|
940 |
-
}
|
941 |
-
var that = this,
|
942 |
-
jqXHR,
|
943 |
-
aborted,
|
944 |
-
slot,
|
945 |
-
pipe,
|
946 |
-
options = that._getAJAXSettings(data),
|
947 |
-
send = function () {
|
948 |
-
that._sending += 1;
|
949 |
-
// Set timer for bitrate progress calculation:
|
950 |
-
options._bitrateTimer = new that._BitrateTimer();
|
951 |
-
jqXHR = jqXHR || (
|
952 |
-
((aborted || that._trigger(
|
953 |
-
'send',
|
954 |
-
$.Event('send', {delegatedEvent: e}),
|
955 |
-
options
|
956 |
-
) === false) &&
|
957 |
-
that._getXHRPromise(false, options.context, aborted)) ||
|
958 |
-
that._chunkedUpload(options) || $.ajax(options)
|
959 |
-
).done(function (result, textStatus, jqXHR) {
|
960 |
-
that._onDone(result, textStatus, jqXHR, options);
|
961 |
-
}).fail(function (jqXHR, textStatus, errorThrown) {
|
962 |
-
that._onFail(jqXHR, textStatus, errorThrown, options);
|
963 |
-
}).always(function (jqXHRorResult, textStatus, jqXHRorError) {
|
964 |
-
that._deinitProgressListener(options);
|
965 |
-
that._onAlways(
|
966 |
-
jqXHRorResult,
|
967 |
-
textStatus,
|
968 |
-
jqXHRorError,
|
969 |
-
options
|
970 |
-
);
|
971 |
-
that._sending -= 1;
|
972 |
-
that._active -= 1;
|
973 |
-
if (options.limitConcurrentUploads &&
|
974 |
-
options.limitConcurrentUploads > that._sending) {
|
975 |
-
// Start the next queued upload,
|
976 |
-
// that has not been aborted:
|
977 |
-
var nextSlot = that._slots.shift();
|
978 |
-
while (nextSlot) {
|
979 |
-
if (that._getDeferredState(nextSlot) === 'pending') {
|
980 |
-
nextSlot.resolve();
|
981 |
-
break;
|
982 |
-
}
|
983 |
-
nextSlot = that._slots.shift();
|
984 |
-
}
|
985 |
-
}
|
986 |
-
if (that._active === 0) {
|
987 |
-
// The stop callback is triggered when all uploads have
|
988 |
-
// been completed, equivalent to the global ajaxStop event:
|
989 |
-
that._trigger('stop');
|
990 |
-
}
|
991 |
-
});
|
992 |
-
return jqXHR;
|
993 |
-
};
|
994 |
-
this._beforeSend(e, options);
|
995 |
-
if (this.options.sequentialUploads ||
|
996 |
-
(this.options.limitConcurrentUploads &&
|
997 |
-
this.options.limitConcurrentUploads <= this._sending)) {
|
998 |
-
if (this.options.limitConcurrentUploads > 1) {
|
999 |
-
slot = $.Deferred();
|
1000 |
-
this._slots.push(slot);
|
1001 |
-
pipe = slot.then(send);
|
1002 |
-
} else {
|
1003 |
-
this._sequence = this._sequence.then(send, send);
|
1004 |
-
pipe = this._sequence;
|
1005 |
-
}
|
1006 |
-
// Return the piped Promise object, enhanced with an abort method,
|
1007 |
-
// which is delegated to the jqXHR object of the current upload,
|
1008 |
-
// and jqXHR callbacks mapped to the equivalent Promise methods:
|
1009 |
-
pipe.abort = function () {
|
1010 |
-
aborted = [undefined, 'abort', 'abort'];
|
1011 |
-
if (!jqXHR) {
|
1012 |
-
if (slot) {
|
1013 |
-
slot.rejectWith(options.context, aborted);
|
1014 |
-
}
|
1015 |
-
return send();
|
1016 |
-
}
|
1017 |
-
return jqXHR.abort();
|
1018 |
-
};
|
1019 |
-
return this._enhancePromise(pipe);
|
1020 |
-
}
|
1021 |
-
return send();
|
1022 |
-
},
|
1023 |
-
|
1024 |
-
_onAdd: function (e, data) {
|
1025 |
-
var that = this,
|
1026 |
-
result = true,
|
1027 |
-
options = $.extend({}, this.options, data),
|
1028 |
-
files = data.files,
|
1029 |
-
filesLength = files.length,
|
1030 |
-
limit = options.limitMultiFileUploads,
|
1031 |
-
limitSize = options.limitMultiFileUploadSize,
|
1032 |
-
overhead = options.limitMultiFileUploadSizeOverhead,
|
1033 |
-
batchSize = 0,
|
1034 |
-
paramName = this._getParamName(options),
|
1035 |
-
paramNameSet,
|
1036 |
-
paramNameSlice,
|
1037 |
-
fileSet,
|
1038 |
-
i,
|
1039 |
-
j = 0;
|
1040 |
-
if (!filesLength) {
|
1041 |
-
return false;
|
1042 |
-
}
|
1043 |
-
if (limitSize && files[0].size === undefined) {
|
1044 |
-
limitSize = undefined;
|
1045 |
-
}
|
1046 |
-
if (!(options.singleFileUploads || limit || limitSize) ||
|
1047 |
-
!this._isXHRUpload(options)) {
|
1048 |
-
fileSet = [files];
|
1049 |
-
paramNameSet = [paramName];
|
1050 |
-
} else if (!(options.singleFileUploads || limitSize) && limit) {
|
1051 |
-
fileSet = [];
|
1052 |
-
paramNameSet = [];
|
1053 |
-
for (i = 0; i < filesLength; i += limit) {
|
1054 |
-
fileSet.push(files.slice(i, i + limit));
|
1055 |
-
paramNameSlice = paramName.slice(i, i + limit);
|
1056 |
-
if (!paramNameSlice.length) {
|
1057 |
-
paramNameSlice = paramName;
|
1058 |
-
}
|
1059 |
-
paramNameSet.push(paramNameSlice);
|
1060 |
-
}
|
1061 |
-
} else if (!options.singleFileUploads && limitSize) {
|
1062 |
-
fileSet = [];
|
1063 |
-
paramNameSet = [];
|
1064 |
-
for (i = 0; i < filesLength; i = i + 1) {
|
1065 |
-
batchSize += files[i].size + overhead;
|
1066 |
-
if (i + 1 === filesLength ||
|
1067 |
-
((batchSize + files[i + 1].size + overhead) > limitSize) ||
|
1068 |
-
(limit && i + 1 - j >= limit)) {
|
1069 |
-
fileSet.push(files.slice(j, i + 1));
|
1070 |
-
paramNameSlice = paramName.slice(j, i + 1);
|
1071 |
-
if (!paramNameSlice.length) {
|
1072 |
-
paramNameSlice = paramName;
|
1073 |
-
}
|
1074 |
-
paramNameSet.push(paramNameSlice);
|
1075 |
-
j = i + 1;
|
1076 |
-
batchSize = 0;
|
1077 |
-
}
|
1078 |
-
}
|
1079 |
-
} else {
|
1080 |
-
paramNameSet = paramName;
|
1081 |
-
}
|
1082 |
-
data.originalFiles = files;
|
1083 |
-
$.each(fileSet || files, function (index, element) {
|
1084 |
-
var newData = $.extend({}, data);
|
1085 |
-
newData.files = fileSet ? element : [element];
|
1086 |
-
newData.paramName = paramNameSet[index];
|
1087 |
-
that._initResponseObject(newData);
|
1088 |
-
that._initProgressObject(newData);
|
1089 |
-
that._addConvenienceMethods(e, newData);
|
1090 |
-
result = that._trigger(
|
1091 |
-
'add',
|
1092 |
-
$.Event('add', {delegatedEvent: e}),
|
1093 |
-
newData
|
1094 |
-
);
|
1095 |
-
return result;
|
1096 |
-
});
|
1097 |
-
return result;
|
1098 |
-
},
|
1099 |
-
|
1100 |
-
_replaceFileInput: function (data) {
|
1101 |
-
var input = data.fileInput,
|
1102 |
-
inputClone = input.clone(true),
|
1103 |
-
restoreFocus = input.is(document.activeElement);
|
1104 |
-
// Add a reference for the new cloned file input to the data argument:
|
1105 |
-
data.fileInputClone = inputClone;
|
1106 |
-
$('<form></form>').append(inputClone)[0].reset();
|
1107 |
-
// Detaching allows to insert the fileInput on another form
|
1108 |
-
// without loosing the file input value:
|
1109 |
-
input.after(inputClone).detach();
|
1110 |
-
// If the fileInput had focus before it was detached,
|
1111 |
-
// restore focus to the inputClone.
|
1112 |
-
if (restoreFocus) {
|
1113 |
-
inputClone.focus();
|
1114 |
-
}
|
1115 |
-
// Avoid memory leaks with the detached file input:
|
1116 |
-
$.cleanData(input.unbind('remove'));
|
1117 |
-
// Replace the original file input element in the fileInput
|
1118 |
-
// elements set with the clone, which has been copied including
|
1119 |
-
// event handlers:
|
1120 |
-
this.options.fileInput = this.options.fileInput.map(function (i, el) {
|
1121 |
-
if (el === input[0]) {
|
1122 |
-
return inputClone[0];
|
1123 |
-
}
|
1124 |
-
return el;
|
1125 |
-
});
|
1126 |
-
// If the widget has been initialized on the file input itself,
|
1127 |
-
// override this.element with the file input clone:
|
1128 |
-
if (input[0] === this.element[0]) {
|
1129 |
-
this.element = inputClone;
|
1130 |
-
}
|
1131 |
-
},
|
1132 |
-
|
1133 |
-
_handleFileTreeEntry: function (entry, path) {
|
1134 |
-
var that = this,
|
1135 |
-
dfd = $.Deferred(),
|
1136 |
-
entries = [],
|
1137 |
-
dirReader,
|
1138 |
-
errorHandler = function (e) {
|
1139 |
-
if (e && !e.entry) {
|
1140 |
-
e.entry = entry;
|
1141 |
-
}
|
1142 |
-
// Since $.when returns immediately if one
|
1143 |
-
// Deferred is rejected, we use resolve instead.
|
1144 |
-
// This allows valid files and invalid items
|
1145 |
-
// to be returned together in one set:
|
1146 |
-
dfd.resolve([e]);
|
1147 |
-
},
|
1148 |
-
successHandler = function (entries) {
|
1149 |
-
that._handleFileTreeEntries(
|
1150 |
-
entries,
|
1151 |
-
path + entry.name + '/'
|
1152 |
-
).done(function (files) {
|
1153 |
-
dfd.resolve(files);
|
1154 |
-
}).fail(errorHandler);
|
1155 |
-
},
|
1156 |
-
readEntries = function () {
|
1157 |
-
dirReader.readEntries(function (results) {
|
1158 |
-
if (!results.length) {
|
1159 |
-
successHandler(entries);
|
1160 |
-
} else {
|
1161 |
-
entries = entries.concat(results);
|
1162 |
-
readEntries();
|
1163 |
-
}
|
1164 |
-
}, errorHandler);
|
1165 |
-
};
|
1166 |
-
path = path || '';
|
1167 |
-
if (entry.isFile) {
|
1168 |
-
if (entry._file) {
|
1169 |
-
// Workaround for Chrome bug #149735
|
1170 |
-
entry._file.relativePath = path;
|
1171 |
-
dfd.resolve(entry._file);
|
1172 |
-
} else {
|
1173 |
-
entry.file(function (file) {
|
1174 |
-
file.relativePath = path;
|
1175 |
-
dfd.resolve(file);
|
1176 |
-
}, errorHandler);
|
1177 |
-
}
|
1178 |
-
} else if (entry.isDirectory) {
|
1179 |
-
dirReader = entry.createReader();
|
1180 |
-
readEntries();
|
1181 |
-
} else {
|
1182 |
-
// Return an empty list for file system items
|
1183 |
-
// other than files or directories:
|
1184 |
-
dfd.resolve([]);
|
1185 |
-
}
|
1186 |
-
return dfd.promise();
|
1187 |
-
},
|
1188 |
-
|
1189 |
-
_handleFileTreeEntries: function (entries, path) {
|
1190 |
-
var that = this;
|
1191 |
-
return $.when.apply(
|
1192 |
-
$,
|
1193 |
-
$.map(entries, function (entry) {
|
1194 |
-
return that._handleFileTreeEntry(entry, path);
|
1195 |
-
})
|
1196 |
-
).then(function () {
|
1197 |
-
return Array.prototype.concat.apply(
|
1198 |
-
[],
|
1199 |
-
arguments
|
1200 |
-
);
|
1201 |
-
});
|
1202 |
-
},
|
1203 |
-
|
1204 |
-
_getDroppedFiles: function (dataTransfer) {
|
1205 |
-
dataTransfer = dataTransfer || {};
|
1206 |
-
var items = dataTransfer.items;
|
1207 |
-
if (items && items.length && (items[0].webkitGetAsEntry ||
|
1208 |
-
items[0].getAsEntry)) {
|
1209 |
-
return this._handleFileTreeEntries(
|
1210 |
-
$.map(items, function (item) {
|
1211 |
-
var entry;
|
1212 |
-
if (item.webkitGetAsEntry) {
|
1213 |
-
entry = item.webkitGetAsEntry();
|
1214 |
-
if (entry) {
|
1215 |
-
// Workaround for Chrome bug #149735:
|
1216 |
-
entry._file = item.getAsFile();
|
1217 |
-
}
|
1218 |
-
return entry;
|
1219 |
-
}
|
1220 |
-
return item.getAsEntry();
|
1221 |
-
})
|
1222 |
-
);
|
1223 |
-
}
|
1224 |
-
return $.Deferred().resolve(
|
1225 |
-
$.makeArray(dataTransfer.files)
|
1226 |
-
).promise();
|
1227 |
-
},
|
1228 |
-
|
1229 |
-
_getSingleFileInputFiles: function (fileInput) {
|
1230 |
-
fileInput = $(fileInput);
|
1231 |
-
var entries = fileInput.prop('webkitEntries') ||
|
1232 |
-
fileInput.prop('entries'),
|
1233 |
-
files,
|
1234 |
-
value;
|
1235 |
-
if (entries && entries.length) {
|
1236 |
-
return this._handleFileTreeEntries(entries);
|
1237 |
-
}
|
1238 |
-
files = $.makeArray(fileInput.prop('files'));
|
1239 |
-
if (!files.length) {
|
1240 |
-
value = fileInput.prop('value');
|
1241 |
-
if (!value) {
|
1242 |
-
return $.Deferred().resolve([]).promise();
|
1243 |
-
}
|
1244 |
-
// If the files property is not available, the browser does not
|
1245 |
-
// support the File API and we add a pseudo File object with
|
1246 |
-
// the input value as name with path information removed:
|
1247 |
-
files = [{name: value.replace(/^.*\\/, '')}];
|
1248 |
-
} else if (files[0].name === undefined && files[0].fileName) {
|
1249 |
-
// File normalization for Safari 4 and Firefox 3:
|
1250 |
-
$.each(files, function (index, file) {
|
1251 |
-
file.name = file.fileName;
|
1252 |
-
file.size = file.fileSize;
|
1253 |
-
});
|
1254 |
-
}
|
1255 |
-
return $.Deferred().resolve(files).promise();
|
1256 |
-
},
|
1257 |
-
|
1258 |
-
_getFileInputFiles: function (fileInput) {
|
1259 |
-
if (!(fileInput instanceof $) || fileInput.length === 1) {
|
1260 |
-
return this._getSingleFileInputFiles(fileInput);
|
1261 |
-
}
|
1262 |
-
return $.when.apply(
|
1263 |
-
$,
|
1264 |
-
$.map(fileInput, this._getSingleFileInputFiles)
|
1265 |
-
).then(function () {
|
1266 |
-
return Array.prototype.concat.apply(
|
1267 |
-
[],
|
1268 |
-
arguments
|
1269 |
-
);
|
1270 |
-
});
|
1271 |
-
},
|
1272 |
-
|
1273 |
-
_onChange: function (e) {
|
1274 |
-
var that = this,
|
1275 |
-
data = {
|
1276 |
-
fileInput: $(e.target),
|
1277 |
-
form: $(e.target.form)
|
1278 |
-
};
|
1279 |
-
this._getFileInputFiles(data.fileInput).always(function (files) {
|
1280 |
-
data.files = files;
|
1281 |
-
if (that.options.replaceFileInput) {
|
1282 |
-
that._replaceFileInput(data);
|
1283 |
-
}
|
1284 |
-
if (that._trigger(
|
1285 |
-
'change',
|
1286 |
-
$.Event('change', {delegatedEvent: e}),
|
1287 |
-
data
|
1288 |
-
) !== false) {
|
1289 |
-
that._onAdd(e, data);
|
1290 |
-
}
|
1291 |
-
});
|
1292 |
-
},
|
1293 |
-
|
1294 |
-
_onPaste: function (e) {
|
1295 |
-
var items = e.originalEvent && e.originalEvent.clipboardData &&
|
1296 |
-
e.originalEvent.clipboardData.items,
|
1297 |
-
data = {files: []};
|
1298 |
-
if (items && items.length) {
|
1299 |
-
$.each(items, function (index, item) {
|
1300 |
-
var file = item.getAsFile && item.getAsFile();
|
1301 |
-
if (file) {
|
1302 |
-
data.files.push(file);
|
1303 |
-
}
|
1304 |
-
});
|
1305 |
-
if (this._trigger(
|
1306 |
-
'paste',
|
1307 |
-
$.Event('paste', {delegatedEvent: e}),
|
1308 |
-
data
|
1309 |
-
) !== false) {
|
1310 |
-
this._onAdd(e, data);
|
1311 |
-
}
|
1312 |
-
}
|
1313 |
-
},
|
1314 |
-
|
1315 |
-
_onDrop: function (e) {
|
1316 |
-
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
|
1317 |
-
var that = this,
|
1318 |
-
dataTransfer = e.dataTransfer,
|
1319 |
-
data = {};
|
1320 |
-
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
|
1321 |
-
e.preventDefault();
|
1322 |
-
this._getDroppedFiles(dataTransfer).always(function (files) {
|
1323 |
-
data.files = files;
|
1324 |
-
if (that._trigger(
|
1325 |
-
'drop',
|
1326 |
-
$.Event('drop', {delegatedEvent: e}),
|
1327 |
-
data
|
1328 |
-
) !== false) {
|
1329 |
-
that._onAdd(e, data);
|
1330 |
-
}
|
1331 |
-
});
|
1332 |
-
}
|
1333 |
-
},
|
1334 |
-
|
1335 |
-
_onDragOver: getDragHandler('dragover'),
|
1336 |
-
|
1337 |
-
_onDragEnter: getDragHandler('dragenter'),
|
1338 |
-
|
1339 |
-
_onDragLeave: getDragHandler('dragleave'),
|
1340 |
-
|
1341 |
-
_initEventHandlers: function () {
|
1342 |
-
if (this._isXHRUpload(this.options)) {
|
1343 |
-
this._on(this.options.dropZone, {
|
1344 |
-
dragover: this._onDragOver,
|
1345 |
-
drop: this._onDrop,
|
1346 |
-
// event.preventDefault() on dragenter is required for IE10+:
|
1347 |
-
dragenter: this._onDragEnter,
|
1348 |
-
// dragleave is not required, but added for completeness:
|
1349 |
-
dragleave: this._onDragLeave
|
1350 |
-
});
|
1351 |
-
this._on(this.options.pasteZone, {
|
1352 |
-
paste: this._onPaste
|
1353 |
-
});
|
1354 |
-
}
|
1355 |
-
if ($.support.fileInput) {
|
1356 |
-
this._on(this.options.fileInput, {
|
1357 |
-
change: this._onChange
|
1358 |
-
});
|
1359 |
-
}
|
1360 |
-
},
|
1361 |
-
|
1362 |
-
_destroyEventHandlers: function () {
|
1363 |
-
this._off(this.options.dropZone, 'dragenter dragleave dragover drop');
|
1364 |
-
this._off(this.options.pasteZone, 'paste');
|
1365 |
-
this._off(this.options.fileInput, 'change');
|
1366 |
-
},
|
1367 |
-
|
1368 |
-
_destroy: function () {
|
1369 |
-
this._destroyEventHandlers();
|
1370 |
-
},
|
1371 |
-
|
1372 |
-
_setOption: function (key, value) {
|
1373 |
-
var reinit = $.inArray(key, this._specialOptions) !== -1;
|
1374 |
-
if (reinit) {
|
1375 |
-
this._destroyEventHandlers();
|
1376 |
-
}
|
1377 |
-
this._super(key, value);
|
1378 |
-
if (reinit) {
|
1379 |
-
this._initSpecialOptions();
|
1380 |
-
this._initEventHandlers();
|
1381 |
-
}
|
1382 |
-
},
|
1383 |
-
|
1384 |
-
_initSpecialOptions: function () {
|
1385 |
-
var options = this.options;
|
1386 |
-
if (options.fileInput === undefined) {
|
1387 |
-
options.fileInput = this.element.is('input[type="file"]') ?
|
1388 |
-
this.element : this.element.find('input[type="file"]');
|
1389 |
-
} else if (!(options.fileInput instanceof $)) {
|
1390 |
-
options.fileInput = $(options.fileInput);
|
1391 |
-
}
|
1392 |
-
if (!(options.dropZone instanceof $)) {
|
1393 |
-
options.dropZone = $(options.dropZone);
|
1394 |
-
}
|
1395 |
-
if (!(options.pasteZone instanceof $)) {
|
1396 |
-
options.pasteZone = $(options.pasteZone);
|
1397 |
-
}
|
1398 |
-
},
|
1399 |
-
|
1400 |
-
_getRegExp: function (str) {
|
1401 |
-
var parts = str.split('/'),
|
1402 |
-
modifiers = parts.pop();
|
1403 |
-
parts.shift();
|
1404 |
-
return new RegExp(parts.join('/'), modifiers);
|
1405 |
-
},
|
1406 |
-
|
1407 |
-
_isRegExpOption: function (key, value) {
|
1408 |
-
return key !== 'url' && $.type(value) === 'string' &&
|
1409 |
-
/^\/.*\/[igm]{0,3}$/.test(value);
|
1410 |
-
},
|
1411 |
-
|
1412 |
-
_initDataAttributes: function () {
|
1413 |
-
var that = this,
|
1414 |
-
options = this.options,
|
1415 |
-
data = this.element.data();
|
1416 |
-
// Initialize options set via HTML5 data-attributes:
|
1417 |
-
$.each(
|
1418 |
-
this.element[0].attributes,
|
1419 |
-
function (index, attr) {
|
1420 |
-
var key = attr.name.toLowerCase(),
|
1421 |
-
value;
|
1422 |
-
if (/^data-/.test(key)) {
|
1423 |
-
// Convert hyphen-ated key to camelCase:
|
1424 |
-
key = key.slice(5).replace(/-[a-z]/g, function (str) {
|
1425 |
-
return str.charAt(1).toUpperCase();
|
1426 |
-
});
|
1427 |
-
value = data[key];
|
1428 |
-
if (that._isRegExpOption(key, value)) {
|
1429 |
-
value = that._getRegExp(value);
|
1430 |
-
}
|
1431 |
-
options[key] = value;
|
1432 |
-
}
|
1433 |
-
}
|
1434 |
-
);
|
1435 |
-
},
|
1436 |
-
|
1437 |
-
_create: function () {
|
1438 |
-
this._initDataAttributes();
|
1439 |
-
this._initSpecialOptions();
|
1440 |
-
this._slots = [];
|
1441 |
-
this._sequence = this._getXHRPromise(true);
|
1442 |
-
this._sending = this._active = 0;
|
1443 |
-
this._initProgressObject(this);
|
1444 |
-
this._initEventHandlers();
|
1445 |
-
},
|
1446 |
-
|
1447 |
-
// This method is exposed to the widget API and allows to query
|
1448 |
-
// the number of active uploads:
|
1449 |
-
active: function () {
|
1450 |
-
return this._active;
|
1451 |
-
},
|
1452 |
-
|
1453 |
-
// This method is exposed to the widget API and allows to query
|
1454 |
-
// the widget upload progress.
|
1455 |
-
// It returns an object with loaded, total and bitrate properties
|
1456 |
-
// for the running uploads:
|
1457 |
-
progress: function () {
|
1458 |
-
return this._progress;
|
1459 |
-
},
|
1460 |
-
|
1461 |
-
// This method is exposed to the widget API and allows adding files
|
1462 |
-
// using the fileupload API. The data parameter accepts an object which
|
1463 |
-
// must have a files property and can contain additional options:
|
1464 |
-
// .fileupload('add', {files: filesList});
|
1465 |
-
add: function (data) {
|
1466 |
-
var that = this;
|
1467 |
-
if (!data || this.options.disabled) {
|
1468 |
-
return;
|
1469 |
-
}
|
1470 |
-
if (data.fileInput && !data.files) {
|
1471 |
-
this._getFileInputFiles(data.fileInput).always(function (files) {
|
1472 |
-
data.files = files;
|
1473 |
-
that._onAdd(null, data);
|
1474 |
-
});
|
1475 |
-
} else {
|
1476 |
-
data.files = $.makeArray(data.files);
|
1477 |
-
this._onAdd(null, data);
|
1478 |
-
}
|
1479 |
-
},
|
1480 |
-
|
1481 |
-
// This method is exposed to the widget API and allows sending files
|
1482 |
-
// using the fileupload API. The data parameter accepts an object which
|
1483 |
-
// must have a files or fileInput property and can contain additional options:
|
1484 |
-
// .fileupload('send', {files: filesList});
|
1485 |
-
// The method returns a Promise object for the file upload call.
|
1486 |
-
send: function (data) {
|
1487 |
-
if (data && !this.options.disabled) {
|
1488 |
-
if (data.fileInput && !data.files) {
|
1489 |
-
var that = this,
|
1490 |
-
dfd = $.Deferred(),
|
1491 |
-
promise = dfd.promise(),
|
1492 |
-
jqXHR,
|
1493 |
-
aborted;
|
1494 |
-
promise.abort = function () {
|
1495 |
-
aborted = true;
|
1496 |
-
if (jqXHR) {
|
1497 |
-
return jqXHR.abort();
|
1498 |
-
}
|
1499 |
-
dfd.reject(null, 'abort', 'abort');
|
1500 |
-
return promise;
|
1501 |
-
};
|
1502 |
-
this._getFileInputFiles(data.fileInput).always(
|
1503 |
-
function (files) {
|
1504 |
-
if (aborted) {
|
1505 |
-
return;
|
1506 |
-
}
|
1507 |
-
if (!files.length) {
|
1508 |
-
dfd.reject();
|
1509 |
-
return;
|
1510 |
-
}
|
1511 |
-
data.files = files;
|
1512 |
-
jqXHR = that._onSend(null, data);
|
1513 |
-
jqXHR.then(
|
1514 |
-
function (result, textStatus, jqXHR) {
|
1515 |
-
dfd.resolve(result, textStatus, jqXHR);
|
1516 |
-
},
|
1517 |
-
function (jqXHR, textStatus, errorThrown) {
|
1518 |
-
dfd.reject(jqXHR, textStatus, errorThrown);
|
1519 |
-
}
|
1520 |
-
);
|
1521 |
-
}
|
1522 |
-
);
|
1523 |
-
return this._enhancePromise(promise);
|
1524 |
-
}
|
1525 |
-
data.files = $.makeArray(data.files);
|
1526 |
-
if (data.files.length) {
|
1527 |
-
return this._onSend(null, data);
|
1528 |
-
}
|
1529 |
-
}
|
1530 |
-
return this._getXHRPromise(false, data && data.context);
|
1531 |
-
}
|
1532 |
-
|
1533 |
-
});
|
1534 |
-
|
1535 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/jquery.iframe-transport.js
DELETED
@@ -1,224 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery Iframe Transport Plugin
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2011, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* global define, require, window, document, JSON */
|
13 |
-
|
14 |
-
;(function (factory) {
|
15 |
-
'use strict';
|
16 |
-
if (typeof define === 'function' && define.amd) {
|
17 |
-
// Register as an anonymous AMD module:
|
18 |
-
define(['jquery'], factory);
|
19 |
-
} else if (typeof exports === 'object') {
|
20 |
-
// Node/CommonJS:
|
21 |
-
factory(require('jquery'));
|
22 |
-
} else {
|
23 |
-
// Browser globals:
|
24 |
-
factory(window.jQuery);
|
25 |
-
}
|
26 |
-
}(function ($) {
|
27 |
-
'use strict';
|
28 |
-
|
29 |
-
// Helper variable to create unique names for the transport iframes:
|
30 |
-
var counter = 0,
|
31 |
-
jsonAPI = $,
|
32 |
-
jsonParse = 'parseJSON';
|
33 |
-
|
34 |
-
if ('JSON' in window && 'parse' in JSON) {
|
35 |
-
jsonAPI = JSON;
|
36 |
-
jsonParse = 'parse';
|
37 |
-
}
|
38 |
-
|
39 |
-
// The iframe transport accepts four additional options:
|
40 |
-
// options.fileInput: a jQuery collection of file input fields
|
41 |
-
// options.paramName: the parameter name for the file form data,
|
42 |
-
// overrides the name property of the file input field(s),
|
43 |
-
// can be a string or an array of strings.
|
44 |
-
// options.formData: an array of objects with name and value properties,
|
45 |
-
// equivalent to the return data of .serializeArray(), e.g.:
|
46 |
-
// [{name: 'a', value: 1}, {name: 'b', value: 2}]
|
47 |
-
// options.initialIframeSrc: the URL of the initial iframe src,
|
48 |
-
// by default set to "javascript:false;"
|
49 |
-
$.ajaxTransport('iframe', function (options) {
|
50 |
-
if (options.async) {
|
51 |
-
// javascript:false as initial iframe src
|
52 |
-
// prevents warning popups on HTTPS in IE6:
|
53 |
-
/*jshint scripturl: true */
|
54 |
-
var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
|
55 |
-
/*jshint scripturl: false */
|
56 |
-
form,
|
57 |
-
iframe,
|
58 |
-
addParamChar;
|
59 |
-
return {
|
60 |
-
send: function (_, completeCallback) {
|
61 |
-
form = $('<form style="display:none;"></form>');
|
62 |
-
form.attr('accept-charset', options.formAcceptCharset);
|
63 |
-
addParamChar = /\?/.test(options.url) ? '&' : '?';
|
64 |
-
// XDomainRequest only supports GET and POST:
|
65 |
-
if (options.type === 'DELETE') {
|
66 |
-
options.url = options.url + addParamChar + '_method=DELETE';
|
67 |
-
options.type = 'POST';
|
68 |
-
} else if (options.type === 'PUT') {
|
69 |
-
options.url = options.url + addParamChar + '_method=PUT';
|
70 |
-
options.type = 'POST';
|
71 |
-
} else if (options.type === 'PATCH') {
|
72 |
-
options.url = options.url + addParamChar + '_method=PATCH';
|
73 |
-
options.type = 'POST';
|
74 |
-
}
|
75 |
-
// IE versions below IE8 cannot set the name property of
|
76 |
-
// elements that have already been added to the DOM,
|
77 |
-
// so we set the name along with the iframe HTML markup:
|
78 |
-
counter += 1;
|
79 |
-
iframe = $(
|
80 |
-
'<iframe src="' + initialIframeSrc +
|
81 |
-
'" name="iframe-transport-' + counter + '"></iframe>'
|
82 |
-
).bind('load', function () {
|
83 |
-
var fileInputClones,
|
84 |
-
paramNames = $.isArray(options.paramName) ?
|
85 |
-
options.paramName : [options.paramName];
|
86 |
-
iframe
|
87 |
-
.unbind('load')
|
88 |
-
.bind('load', function () {
|
89 |
-
var response;
|
90 |
-
// Wrap in a try/catch block to catch exceptions thrown
|
91 |
-
// when trying to access cross-domain iframe contents:
|
92 |
-
try {
|
93 |
-
response = iframe.contents();
|
94 |
-
// Google Chrome and Firefox do not throw an
|
95 |
-
// exception when calling iframe.contents() on
|
96 |
-
// cross-domain requests, so we unify the response:
|
97 |
-
if (!response.length || !response[0].firstChild) {
|
98 |
-
throw new Error();
|
99 |
-
}
|
100 |
-
} catch (e) {
|
101 |
-
response = undefined;
|
102 |
-
}
|
103 |
-
// The complete callback returns the
|
104 |
-
// iframe content document as response object:
|
105 |
-
completeCallback(
|
106 |
-
200,
|
107 |
-
'success',
|
108 |
-
{'iframe': response}
|
109 |
-
);
|
110 |
-
// Fix for IE endless progress bar activity bug
|
111 |
-
// (happens on form submits to iframe targets):
|
112 |
-
$('<iframe src="' + initialIframeSrc + '"></iframe>')
|
113 |
-
.appendTo(form);
|
114 |
-
window.setTimeout(function () {
|
115 |
-
// Removing the form in a setTimeout call
|
116 |
-
// allows Chrome's developer tools to display
|
117 |
-
// the response result
|
118 |
-
form.remove();
|
119 |
-
}, 0);
|
120 |
-
});
|
121 |
-
form
|
122 |
-
.prop('target', iframe.prop('name'))
|
123 |
-
.prop('action', options.url)
|
124 |
-
.prop('method', options.type);
|
125 |
-
if (options.formData) {
|
126 |
-
$.each(options.formData, function (index, field) {
|
127 |
-
$('<input type="hidden"/>')
|
128 |
-
.prop('name', field.name)
|
129 |
-
.val(field.value)
|
130 |
-
.appendTo(form);
|
131 |
-
});
|
132 |
-
}
|
133 |
-
if (options.fileInput && options.fileInput.length &&
|
134 |
-
options.type === 'POST') {
|
135 |
-
fileInputClones = options.fileInput.clone();
|
136 |
-
// Insert a clone for each file input field:
|
137 |
-
options.fileInput.after(function (index) {
|
138 |
-
return fileInputClones[index];
|
139 |
-
});
|
140 |
-
if (options.paramName) {
|
141 |
-
options.fileInput.each(function (index) {
|
142 |
-
$(this).prop(
|
143 |
-
'name',
|
144 |
-
paramNames[index] || options.paramName
|
145 |
-
);
|
146 |
-
});
|
147 |
-
}
|
148 |
-
// Appending the file input fields to the hidden form
|
149 |
-
// removes them from their original location:
|
150 |
-
form
|
151 |
-
.append(options.fileInput)
|
152 |
-
.prop('enctype', 'multipart/form-data')
|
153 |
-
// enctype must be set as encoding for IE:
|
154 |
-
.prop('encoding', 'multipart/form-data');
|
155 |
-
// Remove the HTML5 form attribute from the input(s):
|
156 |
-
options.fileInput.removeAttr('form');
|
157 |
-
}
|
158 |
-
form.submit();
|
159 |
-
// Insert the file input fields at their original location
|
160 |
-
// by replacing the clones with the originals:
|
161 |
-
if (fileInputClones && fileInputClones.length) {
|
162 |
-
options.fileInput.each(function (index, input) {
|
163 |
-
var clone = $(fileInputClones[index]);
|
164 |
-
// Restore the original name and form properties:
|
165 |
-
$(input)
|
166 |
-
.prop('name', clone.prop('name'))
|
167 |
-
.attr('form', clone.attr('form'));
|
168 |
-
clone.replaceWith(input);
|
169 |
-
});
|
170 |
-
}
|
171 |
-
});
|
172 |
-
form.append(iframe).appendTo(document.body);
|
173 |
-
},
|
174 |
-
abort: function () {
|
175 |
-
if (iframe) {
|
176 |
-
// javascript:false as iframe src aborts the request
|
177 |
-
// and prevents warning popups on HTTPS in IE6.
|
178 |
-
// concat is used to avoid the "Script URL" JSLint error:
|
179 |
-
iframe
|
180 |
-
.unbind('load')
|
181 |
-
.prop('src', initialIframeSrc);
|
182 |
-
}
|
183 |
-
if (form) {
|
184 |
-
form.remove();
|
185 |
-
}
|
186 |
-
}
|
187 |
-
};
|
188 |
-
}
|
189 |
-
});
|
190 |
-
|
191 |
-
// The iframe transport returns the iframe content document as response.
|
192 |
-
// The following adds converters from iframe to text, json, html, xml
|
193 |
-
// and script.
|
194 |
-
// Please note that the Content-Type for JSON responses has to be text/plain
|
195 |
-
// or text/html, if the browser doesn't include application/json in the
|
196 |
-
// Accept header, else IE will show a download dialog.
|
197 |
-
// The Content-Type for XML responses on the other hand has to be always
|
198 |
-
// application/xml or text/xml, so IE properly parses the XML response.
|
199 |
-
// See also
|
200 |
-
// https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
|
201 |
-
$.ajaxSetup({
|
202 |
-
converters: {
|
203 |
-
'iframe text': function (iframe) {
|
204 |
-
return iframe && $(iframe[0].body).text();
|
205 |
-
},
|
206 |
-
'iframe json': function (iframe) {
|
207 |
-
return iframe && jsonAPI[jsonParse]($(iframe[0].body).text());
|
208 |
-
},
|
209 |
-
'iframe html': function (iframe) {
|
210 |
-
return iframe && $(iframe[0].body).html();
|
211 |
-
},
|
212 |
-
'iframe xml': function (iframe) {
|
213 |
-
var xmlDoc = iframe && iframe[0];
|
214 |
-
return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
|
215 |
-
$.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
|
216 |
-
$(xmlDoc.body).html());
|
217 |
-
},
|
218 |
-
'iframe script': function (iframe) {
|
219 |
-
return iframe && $.globalEval($(iframe[0].body).text());
|
220 |
-
}
|
221 |
-
}
|
222 |
-
});
|
223 |
-
|
224 |
-
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/js/main.js
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Plugin JS Example
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2010, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* global $, window */
|
13 |
-
|
14 |
-
$(function () {
|
15 |
-
'use strict';
|
16 |
-
|
17 |
-
// Initialize the jQuery File Upload widget:
|
18 |
-
$('#fileupload').fileupload({
|
19 |
-
// Uncomment the following to send cross-domain cookies:
|
20 |
-
//xhrFields: {withCredentials: true},
|
21 |
-
url: 'server/php/'
|
22 |
-
});
|
23 |
-
|
24 |
-
// Enable iframe cross-domain access via redirect option:
|
25 |
-
$('#fileupload').fileupload(
|
26 |
-
'option',
|
27 |
-
'redirect',
|
28 |
-
window.location.href.replace(
|
29 |
-
/\/[^\/]*$/,
|
30 |
-
'/cors/result.html?%s'
|
31 |
-
)
|
32 |
-
);
|
33 |
-
|
34 |
-
if (window.location.hostname === 'blueimp.github.io') {
|
35 |
-
// Demo settings:
|
36 |
-
$('#fileupload').fileupload('option', {
|
37 |
-
url: '//jquery-file-upload.appspot.com/',
|
38 |
-
// Enable image resizing, except for Android and Opera,
|
39 |
-
// which actually support image resizing, but fail to
|
40 |
-
// send Blob objects via XHR requests:
|
41 |
-
disableImageResize: /Android(?!.*Chrome)|Opera/
|
42 |
-
.test(window.navigator.userAgent),
|
43 |
-
maxFileSize: 999000,
|
44 |
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
|
45 |
-
});
|
46 |
-
// Upload server status check for browsers with CORS support:
|
47 |
-
if ($.support.cors) {
|
48 |
-
$.ajax({
|
49 |
-
url: '//jquery-file-upload.appspot.com/',
|
50 |
-
type: 'HEAD'
|
51 |
-
}).fail(function () {
|
52 |
-
$('<div class="alert alert-danger"/>')
|
53 |
-
.text('Upload server currently unavailable - ' +
|
54 |
-
new Date())
|
55 |
-
.appendTo('#fileupload');
|
56 |
-
});
|
57 |
-
}
|
58 |
-
} else {
|
59 |
-
// Load existing files:
|
60 |
-
$('#fileupload').addClass('fileupload-processing');
|
61 |
-
$.ajax({
|
62 |
-
// Uncomment the following to send cross-domain cookies:
|
63 |
-
//xhrFields: {withCredentials: true},
|
64 |
-
url: $('#fileupload').fileupload('option', 'url'),
|
65 |
-
dataType: 'json',
|
66 |
-
context: $('#fileupload')[0]
|
67 |
-
}).always(function () {
|
68 |
-
$(this).removeClass('fileupload-processing');
|
69 |
-
}).done(function (result) {
|
70 |
-
$(this).fileupload('option', 'done')
|
71 |
-
.call(this, $.Event('done'), {result: result});
|
72 |
-
});
|
73 |
-
}
|
74 |
-
|
75 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/package.json
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "blueimp-file-upload",
|
3 |
-
"version": "9.32.0",
|
4 |
-
"title": "jQuery File Upload",
|
5 |
-
"description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
|
6 |
-
"keywords": [
|
7 |
-
"jquery",
|
8 |
-
"file",
|
9 |
-
"upload",
|
10 |
-
"widget",
|
11 |
-
"multiple",
|
12 |
-
"selection",
|
13 |
-
"drag",
|
14 |
-
"drop",
|
15 |
-
"progress",
|
16 |
-
"preview",
|
17 |
-
"cross-domain",
|
18 |
-
"cross-site",
|
19 |
-
"chunk",
|
20 |
-
"resume",
|
21 |
-
"gae",
|
22 |
-
"go",
|
23 |
-
"python",
|
24 |
-
"php",
|
25 |
-
"bootstrap"
|
26 |
-
],
|
27 |
-
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
|
28 |
-
"author": {
|
29 |
-
"name": "Sebastian Tschan",
|
30 |
-
"url": "https://blueimp.net"
|
31 |
-
},
|
32 |
-
"repository": {
|
33 |
-
"type": "git",
|
34 |
-
"url": "git://github.com/blueimp/jQuery-File-Upload.git"
|
35 |
-
},
|
36 |
-
"license": "MIT",
|
37 |
-
"optionalDependencies": {
|
38 |
-
"blueimp-canvas-to-blob": "3.5.0",
|
39 |
-
"blueimp-load-image": "2.12.2",
|
40 |
-
"blueimp-tmpl": "3.6.0"
|
41 |
-
},
|
42 |
-
"devDependencies": {
|
43 |
-
"bower-json": "0.8.1",
|
44 |
-
"jshint": "2.9.3"
|
45 |
-
},
|
46 |
-
"scripts": {
|
47 |
-
"bower-version-update": "./bower-version-update.js",
|
48 |
-
"lint": "jshint *.js js/*.js js/cors/*.js",
|
49 |
-
"test": "npm run lint",
|
50 |
-
"preversion": "npm test",
|
51 |
-
"version": "npm run bower-version-update && git add bower.json",
|
52 |
-
"postversion": "git push --tags origin master && npm publish"
|
53 |
-
},
|
54 |
-
"main": "js/jquery.fileupload.js"
|
55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/server/php/docker-compose.yml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
version: '2.3'
|
2 |
-
services:
|
3 |
-
apache:
|
4 |
-
build: ./
|
5 |
-
network_mode: bridge
|
6 |
-
ports:
|
7 |
-
- "80:80"
|
8 |
-
volumes:
|
9 |
-
- "../../:/var/www/html"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/test/index.html
DELETED
@@ -1,172 +0,0 @@
|
|
1 |
-
<!DOCTYPE HTML>
|
2 |
-
<!--
|
3 |
-
/*
|
4 |
-
* jQuery File Upload Plugin Test
|
5 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
-
*
|
7 |
-
* Copyright 2010, Sebastian Tschan
|
8 |
-
* https://blueimp.net
|
9 |
-
*
|
10 |
-
* Licensed under the MIT license:
|
11 |
-
* https://opensource.org/licenses/MIT
|
12 |
-
*/
|
13 |
-
-->
|
14 |
-
<html lang="en">
|
15 |
-
<head>
|
16 |
-
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
-
<!--[if IE]>
|
18 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19 |
-
<![endif]-->
|
20 |
-
<meta charset="utf-8">
|
21 |
-
<title>jQuery File Upload Plugin Test</title>
|
22 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
23 |
-
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.23.1.css" integrity="sha384-RW07PgMHO3eNYL7ddFK/okEi1rjvSeJ3Ck/TxGUHkmzSlGmw4R9/KGJYUD3OicMd" crossorigin="anonymous">
|
24 |
-
</head>
|
25 |
-
<body>
|
26 |
-
<h1 id="qunit-header">jQuery File Upload Plugin Test</h1>
|
27 |
-
<h2 id="qunit-banner"></h2>
|
28 |
-
<div id="qunit-testrunner-toolbar"></div>
|
29 |
-
<h2 id="qunit-userAgent"></h2>
|
30 |
-
<ol id="qunit-tests"></ol>
|
31 |
-
<div id="qunit-fixture">
|
32 |
-
<!-- The file upload form used as target for the file upload widget -->
|
33 |
-
<form id="fileupload" action="../server/php/" method="POST" enctype="multipart/form-data">
|
34 |
-
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
35 |
-
<div class="row fileupload-buttonbar">
|
36 |
-
<div class="col-lg-7">
|
37 |
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
38 |
-
<span class="btn btn-success fileinput-button">
|
39 |
-
<i class="icon-plus icon-white"></i>
|
40 |
-
<span>Add files...</span>
|
41 |
-
<input type="file" name="files[]" multiple>
|
42 |
-
</span>
|
43 |
-
<button type="submit" class="btn btn-primary start">
|
44 |
-
<i class="icon-upload icon-white"></i>
|
45 |
-
<span>Start upload</span>
|
46 |
-
</button>
|
47 |
-
<button type="reset" class="btn btn-warning cancel">
|
48 |
-
<i class="icon-ban-circle icon-white"></i>
|
49 |
-
<span>Cancel upload</span>
|
50 |
-
</button>
|
51 |
-
<button type="button" class="btn btn-danger delete">
|
52 |
-
<i class="icon-trash icon-white"></i>
|
53 |
-
<span>Delete</span>
|
54 |
-
</button>
|
55 |
-
<input type="checkbox" class="toggle">
|
56 |
-
<!-- The global file processing state -->
|
57 |
-
<span class="fileupload-process"></span>
|
58 |
-
</div>
|
59 |
-
<!-- The global progress state -->
|
60 |
-
<div class="col-lg-5 fileupload-progress">
|
61 |
-
<!-- The global progress bar -->
|
62 |
-
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
|
63 |
-
<div class="progress-bar progress-bar-success" style="width:0%;"></div>
|
64 |
-
</div>
|
65 |
-
<!-- The extended global progress state -->
|
66 |
-
<div class="progress-extended"> </div>
|
67 |
-
</div>
|
68 |
-
</div>
|
69 |
-
<!-- The table listing the files available for upload/download -->
|
70 |
-
<table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
|
71 |
-
</form>
|
72 |
-
</div>
|
73 |
-
<!-- The template to display files available for upload -->
|
74 |
-
<script id="template-upload" type="text/x-tmpl">
|
75 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
76 |
-
<tr class="template-upload">
|
77 |
-
<td>
|
78 |
-
<span class="preview"></span>
|
79 |
-
</td>
|
80 |
-
<td>
|
81 |
-
<p class="name">{%=file.name%}</p>
|
82 |
-
<strong class="error text-danger"></strong>
|
83 |
-
</td>
|
84 |
-
<td>
|
85 |
-
<p class="size">Processing...</p>
|
86 |
-
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
|
87 |
-
</td>
|
88 |
-
<td>
|
89 |
-
{% if (!i && !o.options.autoUpload) { %}
|
90 |
-
<button class="btn btn-primary start" disabled>
|
91 |
-
<i class="glyphicon glyphicon-upload"></i>
|
92 |
-
<span>Start</span>
|
93 |
-
</button>
|
94 |
-
{% } %}
|
95 |
-
{% if (!i) { %}
|
96 |
-
<button class="btn btn-warning cancel">
|
97 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
98 |
-
<span>Cancel</span>
|
99 |
-
</button>
|
100 |
-
{% } %}
|
101 |
-
</td>
|
102 |
-
</tr>
|
103 |
-
{% } %}
|
104 |
-
</script>
|
105 |
-
<!-- The template to display files available for download -->
|
106 |
-
<script id="template-download" type="text/x-tmpl">
|
107 |
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
108 |
-
<tr class="template-download">
|
109 |
-
<td>
|
110 |
-
<span class="preview">
|
111 |
-
{% if (file.thumbnailUrl) { %}
|
112 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
|
113 |
-
{% } %}
|
114 |
-
</span>
|
115 |
-
</td>
|
116 |
-
<td>
|
117 |
-
<p class="name">
|
118 |
-
{% if (file.url) { %}
|
119 |
-
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
|
120 |
-
{% } else { %}
|
121 |
-
<span>{%=file.name%}</span>
|
122 |
-
{% } %}
|
123 |
-
</p>
|
124 |
-
{% if (file.error) { %}
|
125 |
-
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
|
126 |
-
{% } %}
|
127 |
-
</td>
|
128 |
-
<td>
|
129 |
-
<span class="size">{%=o.formatFileSize(file.size)%}</span>
|
130 |
-
</td>
|
131 |
-
<td>
|
132 |
-
{% if (file.deleteUrl) { %}
|
133 |
-
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
|
134 |
-
<i class="glyphicon glyphicon-trash"></i>
|
135 |
-
<span>Delete</span>
|
136 |
-
</button>
|
137 |
-
<input type="checkbox" name="delete" value="1" class="toggle">
|
138 |
-
{% } else { %}
|
139 |
-
<button class="btn btn-warning cancel">
|
140 |
-
<i class="glyphicon glyphicon-ban-circle"></i>
|
141 |
-
<span>Cancel</span>
|
142 |
-
</button>
|
143 |
-
{% } %}
|
144 |
-
</td>
|
145 |
-
</tr>
|
146 |
-
{% } %}
|
147 |
-
</script>
|
148 |
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ" crossorigin="anonymous"></script>
|
149 |
-
<script src="../js/vendor/jquery.ui.widget.js"></script>
|
150 |
-
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
|
151 |
-
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
152 |
-
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
153 |
-
<script src="../js/jquery.iframe-transport.js"></script>
|
154 |
-
<script src="../js/jquery.fileupload.js"></script>
|
155 |
-
<script>
|
156 |
-
/* global window, $ */
|
157 |
-
window.testBasicWidget = $.blueimp.fileupload;
|
158 |
-
</script>
|
159 |
-
<script src="../js/jquery.fileupload-process.js"></script>
|
160 |
-
<script src="../js/jquery.fileupload-image.js"></script>
|
161 |
-
<script src="../js/jquery.fileupload-audio.js"></script>
|
162 |
-
<script src="../js/jquery.fileupload-video.js"></script>
|
163 |
-
<script src="../js/jquery.fileupload-validate.js"></script>
|
164 |
-
<script src="../js/jquery.fileupload-ui.js"></script>
|
165 |
-
<script>
|
166 |
-
/* global window, $ */
|
167 |
-
window.testUIWidget = $.blueimp.fileupload;
|
168 |
-
</script>
|
169 |
-
<script src="https://code.jquery.com/qunit/qunit-1.23.1.js" integrity="sha384-FJbPWND3tHbuhP8PhCp3Kn0bEtCxaIq+sfkmiJ+Su0jchKFnVbPQTTyPiuwqbkXa" crossorigin="anonymous"></script>
|
170 |
-
<script src="test.js"></script>
|
171 |
-
</body>
|
172 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/jQuery-File-Upload-9.32.0/test/test.js
DELETED
@@ -1,1292 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery File Upload Plugin Test
|
3 |
-
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
-
*
|
5 |
-
* Copyright 2010, Sebastian Tschan
|
6 |
-
* https://blueimp.net
|
7 |
-
*
|
8 |
-
* Licensed under the MIT license:
|
9 |
-
* https://opensource.org/licenses/MIT
|
10 |
-
*/
|
11 |
-
|
12 |
-
/* global $, QUnit, window, document, expect, module, test, asyncTest, start, ok, strictEqual, notStrictEqual */
|
13 |
-
|
14 |
-
$(function () {
|
15 |
-
// jshint nomen:false
|
16 |
-
'use strict';
|
17 |
-
|
18 |
-
QUnit.done = function () {
|
19 |
-
// Delete all uploaded files:
|
20 |
-
var url = $('#fileupload').prop('action');
|
21 |
-
$.getJSON(url, function (result) {
|
22 |
-
$.each(result.files, function (index, file) {
|
23 |
-
$.ajax({
|
24 |
-
url: url + '?file=' + encodeURIComponent(file.name),
|
25 |
-
type: 'DELETE'
|
26 |
-
});
|
27 |
-
});
|
28 |
-
});
|
29 |
-
};
|
30 |
-
|
31 |
-
var lifecycle = {
|
32 |
-
setup: function () {
|
33 |
-
// Set the .fileupload method to the basic widget method:
|
34 |
-
$.widget('blueimp.fileupload', window.testBasicWidget, {});
|
35 |
-
},
|
36 |
-
teardown: function () {
|
37 |
-
// Remove all remaining event listeners:
|
38 |
-
$(document).unbind();
|
39 |
-
}
|
40 |
-
},
|
41 |
-
lifecycleUI = {
|
42 |
-
setup: function () {
|
43 |
-
// Set the .fileupload method to the UI widget method:
|
44 |
-
$.widget('blueimp.fileupload', window.testUIWidget, {});
|
45 |
-
},
|
46 |
-
teardown: function () {
|
47 |
-
// Remove all remaining event listeners:
|
48 |
-
$(document).unbind();
|
49 |
-
}
|
50 |
-
};
|
51 |
-
|
52 |
-
module('Initialization', lifecycle);
|
53 |
-
|
54 |
-
test('Widget initialization', function () {
|
55 |
-
var fu = $('#fileupload').fileupload();
|
56 |
-
ok(fu.data('blueimp-fileupload') || fu.data('fileupload'));
|
57 |
-
});
|
58 |
-
|
59 |
-
test('Data attribute options', function () {
|
60 |
-
$('#fileupload').attr('data-url', 'http://example.org');
|
61 |
-
$('#fileupload').fileupload();
|
62 |
-
strictEqual(
|
63 |
-
$('#fileupload').fileupload('option', 'url'),
|
64 |
-
'http://example.org'
|
65 |
-
);
|
66 |
-
});
|
67 |
-
|
68 |
-
test('File input initialization', function () {
|
69 |
-
var fu = $('#fileupload').fileupload();
|
70 |
-
ok(
|
71 |
-
fu.fileupload('option', 'fileInput').length,
|
72 |
-
'File input field inside of the widget'
|
73 |
-
);
|
74 |
-
ok(
|
75 |
-
fu.fileupload('option', 'fileInput').length,
|
76 |
-
'Widget element as file input field'
|
77 |
-
);
|
78 |
-
});
|
79 |
-
|
80 |
-
test('Drop zone initialization', function () {
|
81 |
-
ok($('#fileupload').fileupload()
|
82 |
-
.fileupload('option', 'dropZone').length);
|
83 |
-
});
|
84 |
-
|
85 |
-
test('Paste zone initialization', function () {
|
86 |
-
ok($('#fileupload').fileupload({pasteZone: document})
|
87 |
-
.fileupload('option', 'pasteZone').length);
|
88 |
-
});
|
89 |
-
|
90 |
-
test('Event listeners initialization', function () {
|
91 |
-
expect(
|
92 |
-
$.support.xhrFormDataFileUpload ? 4 : 1
|
93 |
-
);
|
94 |
-
var eo = {
|
95 |
-
originalEvent: {
|
96 |
-
dataTransfer: {files: [{}], types: ['Files']},
|
97 |
-
clipboardData: {items: [{}]}
|
98 |
-
}
|
99 |
-
},
|
100 |
-
fu = $('#fileupload').fileupload({
|
101 |
-
pasteZone: document,
|
102 |
-
dragover: function () {
|
103 |
-
ok(true, 'Triggers dragover callback');
|
104 |
-
return false;
|
105 |
-
},
|
106 |
-
drop: function () {
|
107 |
-
ok(true, 'Triggers drop callback');
|
108 |
-
return false;
|
109 |
-
},
|
110 |
-
paste: function () {
|
111 |
-
ok(true, 'Triggers paste callback');
|
112 |
-
return false;
|
113 |
-
},
|
114 |
-
change: function () {
|
115 |
-
ok(true, 'Triggers change callback');
|
116 |
-
return false;
|
117 |
-
}
|
118 |
-
}),
|
119 |
-
fileInput = fu.fileupload('option', 'fileInput'),
|
120 |
-
dropZone = fu.fileupload('option', 'dropZone'),
|
121 |
-
pasteZone = fu.fileupload('option', 'pasteZone');
|
122 |
-
fileInput.trigger($.Event('change', eo));
|
123 |
-
dropZone.trigger($.Event('dragover', eo));
|
124 |
-
dropZone.trigger($.Event('drop', eo));
|
125 |
-
pasteZone.trigger($.Event('paste', eo));
|
126 |
-
});
|
127 |
-
|
128 |
-
module('API', lifecycle);
|
129 |
-
|
130 |
-
test('destroy', function () {
|
131 |
-
expect(4);
|
132 |
-
var eo = {
|
133 |
-
originalEvent: {
|
134 |
-
dataTransfer: {files: [{}], types: ['Files']},
|
135 |
-
clipboardData: {items: [{}]}
|
136 |
-
}
|
137 |
-
},
|
138 |
-
options = {
|
139 |
-
pasteZone: document,
|
140 |
-
dragover: function () {
|
141 |
-
ok(true, 'Triggers dragover callback');
|
142 |
-
return false;
|
143 |
-
},
|
144 |
-
drop: function () {
|
145 |
-
ok(true, 'Triggers drop callback');
|
146 |
-
return false;
|
147 |
-
},
|
148 |
-
paste: function () {
|
149 |
-
ok(true, 'Triggers paste callback');
|
150 |
-
return false;
|
151 |
-
},
|
152 |
-
change: function () {
|
153 |
-
ok(true, 'Triggers change callback');
|
154 |
-
return false;
|
155 |
-
}
|
156 |
-
},
|
157 |
-
fu = $('#fileupload').fileupload(options),
|
158 |
-
fileInput = fu.fileupload('option', 'fileInput'),
|
159 |
-
dropZone = fu.fileupload('option', 'dropZone'),
|
160 |
-
pasteZone = fu.fileupload('option', 'pasteZone');
|
161 |
-
dropZone.bind('dragover', options.dragover);
|
162 |
-
dropZone.bind('drop', options.drop);
|
163 |
-
pasteZone.bind('paste', options.paste);
|
164 |
-
fileInput.bind('change', options.change);
|
165 |
-
fu.fileupload('destroy');
|
166 |
-
fileInput.trigger($.Event('change', eo));
|
167 |
-
dropZone.trigger($.Event('dragover', eo));
|
168 |
-
dropZone.trigger($.Event('drop', eo));
|
169 |
-
pasteZone.trigger($.Event('paste', eo));
|
170 |
-
});
|
171 |
-
|
172 |
-
test('disable/enable', function () {
|
173 |
-
expect(
|
174 |
-
$.support.xhrFormDataFileUpload ? 4 : 1
|
175 |
-
);
|
176 |
-
var eo = {
|
177 |
-
originalEvent: {
|
178 |
-
dataTransfer: {files: [{}], types: ['Files']},
|
179 |
-
clipboardData: {items: [{}]}
|
180 |
-
}
|
181 |
-
},
|
182 |
-
fu = $('#fileupload').fileupload({
|
183 |
-
pasteZone: document,
|
184 |
-
dragover: function () {
|
185 |
-
ok(true, 'Triggers dragover callback');
|
186 |
-
return false;
|
187 |
-
},
|
188 |
-
drop: function () {
|
189 |
-
ok(true, 'Triggers drop callback');
|
190 |
-
return false;
|
191 |
-
},
|
192 |
-
paste: function () {
|
193 |
-
ok(true, 'Triggers paste callback');
|
194 |
-
return false;
|
195 |
-
},
|
196 |
-
change: function () {
|
197 |
-
ok(true, 'Triggers change callback');
|
198 |
-
return false;
|
199 |
-
}
|
200 |
-
}),
|
201 |
-
fileInput = fu.fileupload('option', 'fileInput'),
|
202 |
-
dropZone = fu.fileupload('option', 'dropZone'),
|
203 |
-
pasteZone = fu.fileupload('option', 'pasteZone');
|
204 |
-
fu.fileupload('disable');
|
205 |
-
fileInput.trigger($.Event('change', eo));
|
206 |
-
dropZone.trigger($.Event('dragover', eo));
|
207 |
-
dropZone.trigger($.Event('drop', eo));
|
208 |
-
pasteZone.trigger($.Event('paste', eo));
|
209 |
-
fu.fileupload('enable');
|
210 |
-
fileInput.trigger($.Event('change', eo));
|
211 |
-
dropZone.trigger($.Event('dragover', eo));
|
212 |
-
dropZone.trigger($.Event('drop', eo));
|
213 |
-
pasteZone.trigger($.Event('paste', eo));
|
214 |
-
});
|
215 |
-
|
216 |
-
test('option', function () {
|
217 |
-
expect(
|
218 |
-
$.support.xhrFormDataFileUpload ? 10 : 7
|
219 |
-
);
|
220 |
-
var eo = {
|
221 |
-
originalEvent: {
|
222 |
-
dataTransfer: {files: [{}], types: ['Files']},
|
223 |
-
clipboardData: {items: [{}]}
|
224 |
-
}
|
225 |
-
},
|
226 |
-
fu = $('#fileupload').fileupload({
|
227 |
-
pasteZone: document,
|
228 |
-
dragover: function () {
|
229 |
-
ok(true, 'Triggers dragover callback');
|
230 |
-
return false;
|
231 |
-
},
|
232 |
-
drop: function () {
|
233 |
-
ok(true, 'Triggers drop callback');
|
234 |
-
return false;
|
235 |
-
},
|
236 |
-
paste: function () {
|
237 |
-
ok(true, 'Triggers paste callback');
|
238 |
-
return false;
|
239 |
-
},
|
240 |
-
change: function () {
|
241 |
-
ok(true, 'Triggers change callback');
|
242 |
-
return false;
|
243 |
-
}
|
244 |
-
}),
|
245 |
-
fileInput = fu.fileupload('option', 'fileInput'),
|
246 |
-
dropZone = fu.fileupload('option', 'dropZone'),
|
247 |
-
pasteZone = fu.fileupload('option', 'pasteZone');
|
248 |
-
fu.fileupload('option', 'fileInput', null);
|
249 |
-
fu.fileupload('option', 'dropZone', null);
|
250 |
-
fu.fileupload('option', 'pasteZone', null);
|
251 |
-
fileInput.trigger($.Event('change', eo));
|
252 |
-
dropZone.trigger($.Event('dragover', eo));
|
253 |
-
dropZone.trigger($.Event('drop', eo));
|
254 |
-
pasteZone.trigger($.Event('paste', eo));
|
255 |
-
fu.fileupload('option', 'dropZone', 'body');
|
256 |
-
strictEqual(
|
257 |
-
fu.fileupload('option', 'dropZone')[0],
|
258 |
-
document.body,
|
259 |
-
'Allow a query string as parameter for the dropZone option'
|
260 |
-
);
|
261 |
-
fu.fileupload('option', 'dropZone', document);
|
262 |
-
strictEqual(
|
263 |
-
fu.fileupload('option', 'dropZone')[0],
|
264 |
-
document,
|
265 |
-
'Allow a document element as parameter for the dropZone option'
|
266 |
-
);
|
267 |
-
fu.fileupload('option', 'pasteZone', 'body');
|
268 |
-
strictEqual(
|
269 |
-
fu.fileupload('option', 'pasteZone')[0],
|
270 |
-
document.body,
|
271 |
-
'Allow a query string as parameter for the pasteZone option'
|
272 |
-
);
|
273 |
-
fu.fileupload('option', 'pasteZone', document);
|
274 |
-
strictEqual(
|
275 |
-
fu.fileupload('option', 'pasteZone')[0],
|
276 |
-
document,
|
277 |
-
'Allow a document element as parameter for the pasteZone option'
|
278 |
-
);
|
279 |
-
fu.fileupload('option', 'fileInput', ':file');
|
280 |
-
strictEqual(
|
281 |
-
fu.fileupload('option', 'fileInput')[0],
|
282 |
-
$(':file')[0],
|
283 |
-
'Allow a query string as parameter for the fileInput option'
|
284 |
-
);
|
285 |
-
fu.fileupload('option', 'fileInput', $(':file')[0]);
|
286 |
-
strictEqual(
|
287 |
-
fu.fileupload('option', 'fileInput')[0],
|
288 |
-
$(':file')[0],
|
289 |
-
'Allow a document element as parameter for the fileInput option'
|
290 |
-
);
|
291 |
-
fu.fileupload('option', 'fileInput', fileInput);
|
292 |
-
fu.fileupload('option', 'dropZone', dropZone);
|
293 |
-
fu.fileupload('option', 'pasteZone', pasteZone);
|
294 |
-
fileInput.trigger($.Event('change', eo));
|
295 |
-
dropZone.trigger($.Event('dragover', eo));
|
296 |
-
dropZone.trigger($.Event('drop', eo));
|
297 |
-
pasteZone.trigger($.Event('paste', eo));
|
298 |
-
});
|
299 |
-
|
300 |
-
asyncTest('add', function () {
|
301 |
-
expect(2);
|
302 |
-
var param = {files: [{name: 'test'}]};
|
303 |
-
$('#fileupload').fileupload({
|
304 |
-
add: function (e, data) {
|
305 |
-
strictEqual(
|
306 |
-
data.files[0].name,
|
307 |
-
param.files[0].name,
|
308 |
-
'Triggers add callback'
|
309 |
-
);
|
310 |
-
}
|
311 |
-
}).fileupload('add', param).fileupload(
|
312 |
-
'option',
|
313 |
-
'add',
|
314 |
-
function (e, data) {
|
315 |
-
data.submit().complete(function () {
|
316 |
-
ok(true, 'data.submit() Returns a jqXHR object');
|
317 |
-
start();
|
318 |
-
});
|
319 |
-
}
|
320 |
-
).fileupload('add', param);
|
321 |
-
});
|
322 |
-
|
323 |
-
asyncTest('send', function () {
|
324 |
-
expect(3);
|
325 |
-
var param = {files: [{name: 'test'}]};
|
326 |
-
$('#fileupload').fileupload({
|
327 |
-
send: function (e, data) {
|
328 |
-
strictEqual(
|
329 |
-
data.files[0].name,
|
330 |
-
'test',
|
331 |
-
'Triggers send callback'
|
332 |
-
);
|
333 |
-
}
|
334 |
-
}).fileupload('send', param).fail(function () {
|
335 |
-
ok(true, 'Allows to abort the request');
|
336 |
-
}).complete(function () {
|
337 |
-
ok(true, 'Returns a jqXHR object');
|
338 |
-
start();
|
339 |
-
}).abort();
|
340 |
-
});
|
341 |
-
|
342 |
-
module('Callbacks', lifecycle);
|
343 |
-
|
344 |
-
asyncTest('add', function () {
|
345 |
-
expect(1);
|
346 |
-
var param = {files: [{name: 'test'}]};
|
347 |
-
$('#fileupload').fileupload({
|
348 |
-
add: function () {
|
349 |
-
ok(true, 'Triggers add callback');
|
350 |
-
start();
|
351 |
-
}
|
352 |
-
}).fileupload('add', param);
|
353 |
-
});
|
354 |
-
|
355 |
-
asyncTest('submit', function () {
|
356 |
-
expect(1);
|
357 |
-
var param = {files: [{name: 'test'}]};
|
358 |
-
$('#fileupload').fileupload({
|
359 |
-
submit: function () {
|
360 |
-
ok(true, 'Triggers submit callback');
|
361 |
-
start();
|
362 |
-
return false;
|
363 |
-
}
|
364 |
-
}).fileupload('add', param);
|
365 |
-
});
|
366 |
-
|
367 |
-
asyncTest('send', function () {
|
368 |
-
expect(1);
|
369 |
-
var param = {files: [{name: 'test'}]};
|
370 |
-
$('#fileupload').fileupload({
|
371 |
-
send: function () {
|
372 |
-
ok(true, 'Triggers send callback');
|
373 |
-
start();
|
374 |
-
return false;
|
375 |
-
}
|
376 |
-
}).fileupload('send', param);
|
377 |
-
});
|
378 |
-
|
379 |
-
asyncTest('done', function () {
|
380 |
-
expect(1);
|
381 |
-
var param = {files: [{name: 'test'}]};
|
382 |
-
$('#fileupload').fileupload({
|
383 |
-
done: function () {
|
384 |
-
ok(true, 'Triggers done callback');
|
385 |
-
start();
|
386 |
-
}
|
387 |
-
}).fileupload('send', param);
|
388 |
-
});
|
389 |
-
|
390 |
-
asyncTest('fail', function () {
|
391 |
-
expect(1);
|
392 |
-
var param = {files: [{name: 'test'}]},
|
393 |
-
fu = $('#fileupload').fileupload({
|
394 |
-
url: '404',
|
395 |
-
fail: function () {
|
396 |
-
ok(true, 'Triggers fail callback');
|
397 |
-
start();
|
398 |
-
}
|
399 |
-
});
|
400 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
401 |
-
._isXHRUpload = function () {
|
402 |
-
return true;
|
403 |
-
};
|
404 |
-
fu.fileupload('send', param);
|
405 |
-
});
|
406 |
-
|
407 |
-
asyncTest('always', function () {
|
408 |
-
expect(2);
|
409 |
-
var param = {files: [{name: 'test'}]},
|
410 |
-
counter = 0,
|
411 |
-
fu = $('#fileupload').fileupload({
|
412 |
-
always: function () {
|
413 |
-
ok(true, 'Triggers always callback');
|
414 |
-
if (counter === 1) {
|
415 |
-
start();
|
416 |
-
} else {
|
417 |
-
counter += 1;
|
418 |
-
}
|
419 |
-
}
|
420 |
-
});
|
421 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
422 |
-
._isXHRUpload = function () {
|
423 |
-
return true;
|
424 |
-
};
|
425 |
-
fu.fileupload('add', param).fileupload(
|
426 |
-
'option',
|
427 |
-
'url',
|
428 |
-
'404'
|
429 |
-
).fileupload('add', param);
|
430 |
-
});
|
431 |
-
|
432 |
-
asyncTest('progress', function () {
|
433 |
-
expect(1);
|
434 |
-
var param = {files: [{name: 'test'}]},
|
435 |
-
counter = 0;
|
436 |
-
$('#fileupload').fileupload({
|
437 |
-
forceIframeTransport: true,
|
438 |
-
progress: function () {
|
439 |
-
ok(true, 'Triggers progress callback');
|
440 |
-
if (counter === 0) {
|
441 |
-
start();
|
442 |
-
} else {
|
443 |
-
counter += 1;
|
444 |
-
}
|
445 |
-
}
|
446 |
-
}).fileupload('send', param);
|
447 |
-
});
|
448 |
-
|
449 |
-
asyncTest('progressall', function () {
|
450 |
-
expect(1);
|
451 |
-
var param = {files: [{name: 'test'}]},
|
452 |
-
counter = 0;
|
453 |
-
$('#fileupload').fileupload({
|
454 |
-
forceIframeTransport: true,
|
455 |
-
progressall: function () {
|
456 |
-
ok(true, 'Triggers progressall callback');
|
457 |
-
if (counter === 0) {
|
458 |
-
start();
|
459 |
-
} else {
|
460 |
-
counter += 1;
|
461 |
-
}
|
462 |
-
}
|
463 |
-
}).fileupload('send', param);
|
464 |
-
});
|
465 |
-
|
466 |
-
asyncTest('start', function () {
|
467 |
-
expect(1);
|
468 |
-
var param = {files: [{name: '1'}, {name: '2'}]},
|
469 |
-
active = 0;
|
470 |
-
$('#fileupload').fileupload({
|
471 |
-
send: function () {
|
472 |
-
active += 1;
|
473 |
-
},
|
474 |
-
start: function () {
|
475 |
-
ok(!active, 'Triggers start callback before uploads');
|
476 |
-
start();
|
477 |
-
}
|
478 |
-
}).fileupload('send', param);
|
479 |
-
});
|
480 |
-
|
481 |
-
asyncTest('stop', function () {
|
482 |
-
expect(1);
|
483 |
-
var param = {files: [{name: '1'}, {name: '2'}]},
|
484 |
-
active = 0;
|
485 |
-
$('#fileupload').fileupload({
|
486 |
-
send: function () {
|
487 |
-
active += 1;
|
488 |
-
},
|
489 |
-
always: function () {
|
490 |
-
active -= 1;
|
491 |
-
},
|
492 |
-
stop: function () {
|
493 |
-
ok(!active, 'Triggers stop callback after uploads');
|
494 |
-
start();
|
495 |
-
}
|
496 |
-
}).fileupload('send', param);
|
497 |
-
});
|
498 |
-
|
499 |
-
test('change', function () {
|
500 |
-
var fu = $('#fileupload').fileupload(),
|
501 |
-
fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'),
|
502 |
-
fileInput = fu.fileupload('option', 'fileInput');
|
503 |
-
expect(2);
|
504 |
-
fu.fileupload({
|
505 |
-
change: function (e, data) {
|
506 |
-
ok(true, 'Triggers change callback');
|
507 |
-
strictEqual(
|
508 |
-
data.files.length,
|
509 |
-
0,
|
510 |
-
'Returns empty files list'
|
511 |
-
);
|
512 |
-
},
|
513 |
-
add: $.noop
|
514 |
-
});
|
515 |
-
fuo._onChange({
|
516 |
-
data: {fileupload: fuo},
|
517 |
-
target: fileInput[0]
|
518 |
-
});
|
519 |
-
});
|
520 |
-
|
521 |
-
test('paste', function () {
|
522 |
-
var fu = $('#fileupload').fileupload(),
|
523 |
-
fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
|
524 |
-
expect(1);
|
525 |
-
fu.fileupload({
|
526 |
-
paste: function () {
|
527 |
-
ok(true, 'Triggers paste callback');
|
528 |
-
},
|
529 |
-
add: $.noop
|
530 |
-
});
|
531 |
-
fuo._onPaste({
|
532 |
-
data: {fileupload: fuo},
|
533 |
-
originalEvent: {
|
534 |
-
dataTransfer: {files: [{}]},
|
535 |
-
clipboardData: {items: [{}]}
|
536 |
-
},
|
537 |
-
preventDefault: $.noop
|
538 |
-
});
|
539 |
-
});
|
540 |
-
|
541 |
-
test('drop', function () {
|
542 |
-
var fu = $('#fileupload').fileupload(),
|
543 |
-
fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
|
544 |
-
expect(1);
|
545 |
-
fu.fileupload({
|
546 |
-
drop: function () {
|
547 |
-
ok(true, 'Triggers drop callback');
|
548 |
-
},
|
549 |
-
add: $.noop
|
550 |
-
});
|
551 |
-
fuo._onDrop({
|
552 |
-
data: {fileupload: fuo},
|
553 |
-
originalEvent: {
|
554 |
-
dataTransfer: {files: [{}]},
|
555 |
-
clipboardData: {items: [{}]}
|
556 |
-
},
|
557 |
-
preventDefault: $.noop
|
558 |
-
});
|
559 |
-
});
|
560 |
-
|
561 |
-
test('dragover', function () {
|
562 |
-
var fu = $('#fileupload').fileupload(),
|
563 |
-
fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
|
564 |
-
expect(1);
|
565 |
-
fu.fileupload({
|
566 |
-
dragover: function () {
|
567 |
-
ok(true, 'Triggers dragover callback');
|
568 |
-
},
|
569 |
-
add: $.noop
|
570 |
-
});
|
571 |
-
fuo._onDragOver({
|
572 |
-
data: {fileupload: fuo},
|
573 |
-
originalEvent: {dataTransfer: {types: ['Files']}},
|
574 |
-
preventDefault: $.noop
|
575 |
-
});
|
576 |
-
});
|
577 |
-
|
578 |
-
module('Options', lifecycle);
|
579 |
-
|
580 |
-
test('paramName', function () {
|
581 |
-
expect(1);
|
582 |
-
var param = {files: [{name: 'test'}]};
|
583 |
-
$('#fileupload').fileupload({
|
584 |
-
paramName: null,
|
585 |
-
send: function (e, data) {
|
586 |
-
strictEqual(
|
587 |
-
data.paramName[0],
|
588 |
-
data.fileInput.prop('name'),
|
589 |
-
'Takes paramName from file input field if not set'
|
590 |
-
);
|
591 |
-
return false;
|
592 |
-
}
|
593 |
-
}).fileupload('send', param);
|
594 |
-
});
|
595 |
-
|
596 |
-
test('url', function () {
|
597 |
-
expect(1);
|
598 |
-
var param = {files: [{name: 'test'}]};
|
599 |
-
$('#fileupload').fileupload({
|
600 |
-
url: null,
|
601 |
-
send: function (e, data) {
|
602 |
-
strictEqual(
|
603 |
-
data.url,
|
604 |
-
$(data.fileInput.prop('form')).prop('action'),
|
605 |
-
'Takes url from form action if not set'
|
606 |
-
);
|
607 |
-
return false;
|
608 |
-
}
|
609 |
-
}).fileupload('send', param);
|
610 |
-
});
|
611 |
-
|
612 |
-
test('type', function () {
|
613 |
-
expect(2);
|
614 |
-
var param = {files: [{name: 'test'}]};
|
615 |
-
$('#fileupload').fileupload({
|
616 |
-
type: null,
|
617 |
-
send: function (e, data) {
|
618 |
-
strictEqual(
|
619 |
-
data.type,
|
620 |
-
'POST',
|
621 |
-
'Request type is "POST" if not set to "PUT"'
|
622 |
-
);
|
623 |
-
return false;
|
624 |
-
}
|
625 |
-
}).fileupload('send', param);
|
626 |
-
$('#fileupload').fileupload({
|
627 |
-
type: 'PUT',
|
628 |
-
send: function (e, data) {
|
629 |
-
strictEqual(
|
630 |
-
data.type,
|
631 |
-
'PUT',
|
632 |
-
'Request type is "PUT" if set to "PUT"'
|
633 |
-
);
|
634 |
-
return false;
|
635 |
-
}
|
636 |
-
}).fileupload('send', param);
|
637 |
-
});
|
638 |
-
|
639 |
-
test('replaceFileInput', function () {
|
640 |
-
var fu = $('#fileupload').fileupload(),
|
641 |
-
fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'),
|
642 |
-
fileInput = fu.fileupload('option', 'fileInput'),
|
643 |
-
fileInputElement = fileInput[0];
|
644 |
-
expect(2);
|
645 |
-
fu.fileupload({
|
646 |
-
replaceFileInput: false,
|
647 |
-
change: function () {
|
648 |
-
strictEqual(
|
649 |
-
fu.fileupload('option', 'fileInput')[0],
|
650 |
-
fileInputElement,
|
651 |
-
'Keeps file input with replaceFileInput: false'
|
652 |
-
);
|
653 |
-
},
|
654 |
-
add: $.noop
|
655 |
-
});
|
656 |
-
fuo._onChange({
|
657 |
-
data: {fileupload: fuo},
|
658 |
-
target: fileInput[0]
|
659 |
-
});
|
660 |
-
fu.fileupload({
|
661 |
-
replaceFileInput: true,
|
662 |
-
change: function () {
|
663 |
-
notStrictEqual(
|
664 |
-
fu.fileupload('option', 'fileInput')[0],
|
665 |
-
fileInputElement,
|
666 |
-
'Replaces file input with replaceFileInput: true'
|
667 |
-
);
|
668 |
-
},
|
669 |
-
add: $.noop
|
670 |
-
});
|
671 |
-
fuo._onChange({
|
672 |
-
data: {fileupload: fuo},
|
673 |
-
target: fileInput[0]
|
674 |
-
});
|
675 |
-
});
|
676 |
-
|
677 |
-
asyncTest('forceIframeTransport', function () {
|
678 |
-
expect(1);
|
679 |
-
var param = {files: [{name: 'test'}]};
|
680 |
-
$('#fileupload').fileupload({
|
681 |
-
forceIframeTransport: true,
|
682 |
-
done: function (e, data) {
|
683 |
-
strictEqual(
|
684 |
-
data.dataType.substr(0, 6),
|
685 |
-
'iframe',
|
686 |
-
'Iframe Transport is used'
|
687 |
-
);
|
688 |
-
start();
|
689 |
-
}
|
690 |
-
}).fileupload('send', param);
|
691 |
-
});
|
692 |
-
|
693 |
-
test('singleFileUploads', function () {
|
694 |
-
expect(3);
|
695 |
-
var fu = $('#fileupload').fileupload(),
|
696 |
-
param = {files: [{name: '1'}, {name: '2'}]},
|
697 |
-
index = 1;
|
698 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
699 |
-
._isXHRUpload = function () {
|
700 |
-
return true;
|
701 |
-
};
|
702 |
-
$('#fileupload').fileupload({
|
703 |
-
singleFileUploads: true,
|
704 |
-
add: function () {
|
705 |
-
ok(true, 'Triggers callback number ' + index.toString());
|
706 |
-
index += 1;
|
707 |
-
}
|
708 |
-
}).fileupload('add', param).fileupload(
|
709 |
-
'option',
|
710 |
-
'singleFileUploads',
|
711 |
-
false
|
712 |
-
).fileupload('add', param);
|
713 |
-
});
|
714 |
-
|
715 |
-
test('limitMultiFileUploads', function () {
|
716 |
-
expect(3);
|
717 |
-
var fu = $('#fileupload').fileupload(),
|
718 |
-
param = {files: [
|
719 |
-
{name: '1'},
|
720 |
-
{name: '2'},
|
721 |
-
{name: '3'},
|
722 |
-
{name: '4'},
|
723 |
-
{name: '5'}
|
724 |
-
]},
|
725 |
-
index = 1;
|
726 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
727 |
-
._isXHRUpload = function () {
|
728 |
-
return true;
|
729 |
-
};
|
730 |
-
$('#fileupload').fileupload({
|
731 |
-
singleFileUploads: false,
|
732 |
-
limitMultiFileUploads: 2,
|
733 |
-
add: function () {
|
734 |
-
ok(true, 'Triggers callback number ' + index.toString());
|
735 |
-
index += 1;
|
736 |
-
}
|
737 |
-
}).fileupload('add', param);
|
738 |
-
});
|
739 |
-
|
740 |
-
test('limitMultiFileUploadSize', function () {
|
741 |
-
expect(7);
|
742 |
-
var fu = $('#fileupload').fileupload(),
|
743 |
-
param = {files: [
|
744 |
-
{name: '1-1', size: 100000},
|
745 |
-
{name: '1-2', size: 40000},
|
746 |
-
{name: '2-1', size: 100000},
|
747 |
-
{name: '3-1', size: 50000},
|
748 |
-
{name: '3-2', size: 40000},
|
749 |
-
{name: '4-1', size: 45000} // New request due to limitMultiFileUploads
|
750 |
-
]},
|
751 |
-
param2 = {files: [
|
752 |
-
{name: '5-1'},
|
753 |
-
{name: '5-2'},
|
754 |
-
{name: '6-1'},
|
755 |
-
{name: '6-2'},
|
756 |
-
{name: '7-1'}
|
757 |
-
]},
|
758 |
-
index = 1;
|
759 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
760 |
-
._isXHRUpload = function () {
|
761 |
-
return true;
|
762 |
-
};
|
763 |
-
$('#fileupload').fileupload({
|
764 |
-
singleFileUploads: false,
|
765 |
-
limitMultiFileUploads: 2,
|
766 |
-
limitMultiFileUploadSize: 150000,
|
767 |
-
limitMultiFileUploadSizeOverhead: 5000,
|
768 |
-
add: function () {
|
769 |
-
ok(true, 'Triggers callback number ' + index.toString());
|
770 |
-
index += 1;
|
771 |
-
}
|
772 |
-
}).fileupload('add', param).fileupload('add', param2);
|
773 |
-
});
|
774 |
-
|
775 |
-
asyncTest('sequentialUploads', function () {
|
776 |
-
expect(6);
|
777 |
-
var param = {files: [
|
778 |
-
{name: '1'},
|
779 |
-
{name: '2'},
|
780 |
-
{name: '3'},
|
781 |
-
{name: '4'},
|
782 |
-
{name: '5'},
|
783 |
-
{name: '6'}
|
784 |
-
]},
|
785 |
-
addIndex = 0,
|
786 |
-
sendIndex = 0,
|
787 |
-
loadIndex = 0,
|
788 |
-
fu = $('#fileupload').fileupload({
|
789 |
-
sequentialUploads: true,
|
790 |
-
add: function (e, data) {
|
791 |
-
addIndex += 1;
|
792 |
-
if (addIndex === 4) {
|
793 |
-
data.submit().abort();
|
794 |
-
} else {
|
795 |
-
data.submit();
|
796 |
-
}
|
797 |
-
},
|
798 |
-
send: function () {
|
799 |
-
sendIndex += 1;
|
800 |
-
},
|
801 |
-
done: function () {
|
802 |
-
loadIndex += 1;
|
803 |
-
strictEqual(sendIndex, loadIndex, 'upload in order');
|
804 |
-
},
|
805 |
-
fail: function (e, data) {
|
806 |
-
strictEqual(data.errorThrown, 'abort', 'upload aborted');
|
807 |
-
},
|
808 |
-
stop: function () {
|
809 |
-
start();
|
810 |
-
}
|
811 |
-
});
|
812 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
813 |
-
._isXHRUpload = function () {
|
814 |
-
return true;
|
815 |
-
};
|
816 |
-
fu.fileupload('add', param);
|
817 |
-
});
|
818 |
-
|
819 |
-
asyncTest('limitConcurrentUploads', function () {
|
820 |
-
expect(12);
|
821 |
-
var param = {files: [
|
822 |
-
{name: '1'},
|
823 |
-
{name: '2'},
|
824 |
-
{name: '3'},
|
825 |
-
{name: '4'},
|
826 |
-
{name: '5'},
|
827 |
-
{name: '6'},
|
828 |
-
{name: '7'},
|
829 |
-
{name: '8'},
|
830 |
-
{name: '9'},
|
831 |
-
{name: '10'},
|
832 |
-
{name: '11'},
|
833 |
-
{name: '12'}
|
834 |
-
]},
|
835 |
-
addIndex = 0,
|
836 |
-
sendIndex = 0,
|
837 |
-
loadIndex = 0,
|
838 |
-
fu = $('#fileupload').fileupload({
|
839 |
-
limitConcurrentUploads: 3,
|
840 |
-
add: function (e, data) {
|
841 |
-
addIndex += 1;
|
842 |
-
if (addIndex === 4) {
|
843 |
-
data.submit().abort();
|
844 |
-
} else {
|
845 |
-
data.submit();
|
846 |
-
}
|
847 |
-
},
|
848 |
-
send: function () {
|
849 |
-
sendIndex += 1;
|
850 |
-
},
|
851 |
-
done: function () {
|
852 |
-
loadIndex += 1;
|
853 |
-
ok(sendIndex - loadIndex < 3);
|
854 |
-
},
|
855 |
-
fail: function (e, data) {
|
856 |
-
strictEqual(data.errorThrown, 'abort', 'upload aborted');
|
857 |
-
},
|
858 |
-
stop: function () {
|
859 |
-
start();
|
860 |
-
}
|
861 |
-
});
|
862 |
-
(fu.data('blueimp-fileupload') || fu.data('fileupload'))
|
863 |
-
._isXHRUpload = function () {
|
864 |
-
return true;
|
865 |
-
};
|
866 |
-
fu.fileupload('add', param);
|
867 |
-
});
|
868 |
-
|
869 |
-
if ($.support.xhrFileUpload) {
|
870 |
-
asyncTest('multipart', function () {
|
871 |
-
expect(2);
|
872 |
-
var param = {files: [{
|
873 |
-
name: 'test.png',
|
874 |
-
size: 123,
|
875 |
-
type: 'image/png'
|
876 |
-
}]},
|
877 |
-
fu = $('#fileupload').fileupload({
|
878 |
-
multipart: false,
|
879 |
-
always: function (e, data) {
|
880 |
-
strictEqual(
|
881 |
-
data.contentType,
|
882 |
-
param.files[0].type,
|
883 |
-
'non-multipart upload sets file type as contentType'
|
884 |
-
);
|
885 |
-
strictEqual(
|
886 |
-
data.headers['Content-Disposition'],
|
887 |
-
'attachment; filename="' + param.files[0].name + '"',
|
888 |
-
'non-multipart upload sets Content-Disposition header'
|
889 |
-
);
|
890 |
-
start();
|
891 |
-
}
|
892 |
-
});
|
893 |
-
fu.fileupload('send', param);
|
894 |
-
});
|
895 |
-
}
|
896 |
-
|
897 |
-
module('UI Initialization', lifecycleUI);
|
898 |
-
|
899 |
-
test('Widget initialization', function () {
|
900 |
-
var fu = $('#fileupload').fileupload();
|
901 |
-
ok(fu.data('blueimp-fileupload') || fu.data('fileupload'));
|
902 |
-
ok(
|
903 |
-
$('#fileupload').fileupload('option', 'uploadTemplate').length,
|
904 |
-
'Initialized upload template'
|
905 |
-
);
|
906 |
-
ok(
|
907 |
-
$('#fileupload').fileupload('option', 'downloadTemplate').length,
|
908 |
-
'Initialized download template'
|
909 |
-
);
|
910 |
-
});
|
911 |
-
|
912 |
-
test('Buttonbar event listeners', function () {
|
913 |
-
var buttonbar = $('#fileupload .fileupload-buttonbar'),
|
914 |
-
files = [{name: 'test'}];
|
915 |
-
expect(4);
|
916 |
-
$('#fileupload').fileupload({
|
917 |
-
send: function () {
|
918 |
-
ok(true, 'Started file upload via global start button');
|
919 |
-
},
|
920 |
-
fail: function (e, data) {
|
921 |
-
ok(true, 'Canceled file upload via global cancel button');
|
922 |
-
data.context.remove();
|
923 |
-
},
|
924 |
-
destroy: function () {
|
925 |
-
ok(true, 'Delete action called via global delete button');
|
926 |
-
}
|
927 |
-
});
|
928 |
-
$('#fileupload').fileupload('add', {files: files});
|
929 |
-
buttonbar.find('.cancel').click();
|
930 |
-
$('#fileupload').fileupload('add', {files: files});
|
931 |
-
buttonbar.find('.start').click();
|
932 |
-
buttonbar.find('.cancel').click();
|
933 |
-
files[0].deleteUrl = 'http://example.org/banana.jpg';
|
934 |
-
($('#fileupload').data('blueimp-fileupload') ||
|
935 |
-
$('#fileupload').data('fileupload'))
|
936 |
-
._renderDownload(files)
|
937 |
-
.appendTo($('#fileupload .files')).show()
|
938 |
-
.find('.toggle').click();
|
939 |
-
buttonbar.find('.delete').click();
|
940 |
-
});
|
941 |
-
|
942 |
-
module('UI API', lifecycleUI);
|
943 |
-
|
944 |
-
test('destroy', function () {
|
945 |
-
var buttonbar = $('#fileupload .fileupload-buttonbar'),
|
946 |
-
files = [{name: 'test'}];
|
947 |
-
expect(1);
|
948 |
-
$('#fileupload').fileupload({
|
949 |
-
send: function () {
|
950 |
-
ok(true, 'This test should not run');
|
951 |
-
return false;
|
952 |
-
}
|
953 |
-
})
|
954 |
-
.fileupload('add', {files: files})
|
955 |
-
.fileupload('destroy');
|
956 |
-
buttonbar.find('.start').click(function () {
|
957 |
-
ok(true, 'Clicked global start button');
|
958 |
-
return false;
|
959 |
-
}).click();
|
960 |
-
});
|
961 |
-
|
962 |
-
test('disable/enable', function () {
|
963 |
-
var buttonbar = $('#fileupload .fileupload-buttonbar');
|
964 |
-
$('#fileupload').fileupload();
|
965 |
-
$('#fileupload').fileupload('disable');
|
966 |
-
strictEqual(
|
967 |
-
buttonbar.find('input[type=file], button').not(':disabled').length,
|
968 |
-
0,
|
969 |
-
'Disables the buttonbar buttons'
|
970 |
-
);
|
971 |
-
$('#fileupload').fileupload('enable');
|
972 |
-
strictEqual(
|
973 |
-
buttonbar.find('input[type=file], button').not(':disabled').length,
|
974 |
-
4,
|
975 |
-
'Enables the buttonbar buttons'
|
976 |
-
);
|
977 |
-
});
|
978 |
-
|
979 |
-
module('UI Callbacks', lifecycleUI);
|
980 |
-
|
981 |
-
test('destroy', function () {
|
982 |
-
expect(3);
|
983 |
-
$('#fileupload').fileupload({
|
984 |
-
destroy: function (e, data) {
|
985 |
-
ok(true, 'Triggers destroy callback');
|
986 |
-
strictEqual(
|
987 |
-
data.url,
|
988 |
-
'test',
|
989 |
-
'Passes over deletion url parameter'
|
990 |
-
);
|
991 |
-
strictEqual(
|
992 |
-
data.type,
|
993 |
-
'DELETE',
|
994 |
-
'Passes over deletion request type parameter'
|
995 |
-
);
|
996 |
-
}
|
997 |
-
});
|
998 |
-
($('#fileupload').data('blueimp-fileupload') ||
|
999 |
-
$('#fileupload').data('fileupload'))
|
1000 |
-
._renderDownload([{
|
1001 |
-
name: 'test',
|
1002 |
-
deleteUrl: 'test',
|
1003 |
-
deleteType: 'DELETE'
|
1004 |
-
}])
|
1005 |
-
.appendTo($('#fileupload .files'))
|
1006 |
-
.show()
|
1007 |
-
.find('.toggle').click();
|
1008 |
-
$('#fileupload .fileupload-buttonbar .delete').click();
|
1009 |
-
});
|
1010 |
-
|
1011 |
-
asyncTest('added', function () {
|
1012 |
-
expect(1);
|
1013 |
-
var param = {files: [{name: 'test'}]};
|
1014 |
-
$('#fileupload').fileupload({
|
1015 |
-
added: function (e, data) {
|
1016 |
-
start();
|
1017 |
-
strictEqual(
|
1018 |
-
data.files[0].name,
|
1019 |
-
param.files[0].name,
|
1020 |
-
'Triggers added callback'
|
1021 |
-
);
|
1022 |
-
},
|
1023 |
-
send: function () {
|
1024 |
-
return false;
|
1025 |
-
}
|
1026 |
-
}).fileupload('add', param);
|
1027 |
-
});
|
1028 |
-
|
1029 |
-
asyncTest('started', function () {
|
1030 |
-
expect(1);
|
1031 |
-
var param = {files: [{name: 'test'}]};
|
1032 |
-
$('#fileupload').fileupload({
|
1033 |
-
started: function () {
|
1034 |
-
start();
|
1035 |
-
ok('Triggers started callback');
|
1036 |
-
return false;
|
1037 |
-
},
|
1038 |
-
sent: function () {
|
1039 |
-
return false;
|
1040 |
-
}
|
1041 |
-
}).fileupload('send', param);
|
1042 |
-
});
|
1043 |
-
|
1044 |
-
asyncTest('sent', function () {
|
1045 |
-
expect(1);
|
1046 |
-
var param = {files: [{name: 'test'}]};
|
1047 |
-
$('#fileupload').fileupload({
|
1048 |
-
sent: function (e, data) {
|
1049 |
-
start();
|
1050 |
-
strictEqual(
|
1051 |
-
data.files[0].name,
|
1052 |
-
param.files[0].name,
|
1053 |
-
'Triggers sent callback'
|
1054 |
-
);
|
1055 |
-
return false;
|
1056 |
-
}
|
1057 |
-
}).fileupload('send', param);
|
1058 |
-
});
|
1059 |
-
|
1060 |
-
asyncTest('completed', function () {
|
1061 |
-
expect(1);
|
1062 |
-
var param = {files: [{name: 'test'}]};
|
1063 |
-
$('#fileupload').fileupload({
|
1064 |
-
completed: function () {
|
1065 |
-
start();
|
1066 |
-
ok('Triggers completed callback');
|
1067 |
-
return false;
|
1068 |
-
}
|
1069 |
-
}).fileupload('send', param);
|
1070 |
-
});
|
1071 |
-
|
1072 |
-
asyncTest('failed', function () {
|
1073 |
-
expect(1);
|
1074 |
-
var param = {files: [{name: 'test'}]};
|
1075 |
-
$('#fileupload').fileupload({
|
1076 |
-
failed: function () {
|
1077 |
-
start();
|
1078 |
-
ok('Triggers failed callback');
|
1079 |
-
return false;
|
1080 |
-
}
|
1081 |
-
}).fileupload('send', param).abort();
|
1082 |
-
});
|
1083 |
-
|
1084 |
-
asyncTest('stopped', function () {
|
1085 |
-
expect(1);
|
1086 |
-
var param = {files: [{name: 'test'}]};
|
1087 |
-
$('#fileupload').fileupload({
|
1088 |
-
stopped: function () {
|
1089 |
-
start();
|
1090 |
-
ok('Triggers stopped callback');
|
1091 |
-
return false;
|
1092 |
-
}
|
1093 |
-
}).fileupload('send', param);
|
1094 |
-
});
|
1095 |
-
|
1096 |
-
asyncTest('destroyed', function () {
|
1097 |
-
expect(1);
|
1098 |
-
$('#fileupload').fileupload({
|
1099 |
-
dataType: 'html',
|
1100 |
-
destroyed: function () {
|
1101 |
-
start();
|
1102 |
-
ok(true, 'Triggers destroyed callback');
|
1103 |
-
}
|
1104 |
-
});
|
1105 |
-
($('#fileupload').data('blueimp-fileupload') ||
|
1106 |
-
$('#fileupload').data('fileupload'))
|
1107 |
-
._renderDownload([{
|
1108 |
-
name: 'test',
|
1109 |
-
deleteUrl: '.',
|
1110 |
-
deleteType: 'GET'
|
1111 |
-
}])
|
1112 |
-
.appendTo($('#fileupload .files'))
|
1113 |
-
.show()
|
1114 |
-
.find('.toggle').click();
|
1115 |
-
$('#fileupload .fileupload-buttonbar .delete').click();
|
1116 |
-
});
|
1117 |
-
|
1118 |
-
module('UI Options', lifecycleUI);
|
1119 |
-
|
1120 |
-
test('autoUpload', function () {
|
1121 |
-
expect(1);
|
1122 |
-
$('#fileupload')
|
1123 |
-
.fileupload({
|
1124 |
-
autoUpload: true,
|
1125 |
-
send: function () {
|
1126 |
-
ok(true, 'Started file upload automatically');
|
1127 |
-
return false;
|
1128 |
-
}
|
1129 |
-
})
|
1130 |
-
.fileupload('add', {files: [{name: 'test'}]})
|
1131 |
-
.fileupload('option', 'autoUpload', false)
|
1132 |
-
.fileupload('add', {files: [{name: 'test'}]});
|
1133 |
-
});
|
1134 |
-
|
1135 |
-
test('maxNumberOfFiles', function () {
|
1136 |
-
expect(3);
|
1137 |
-
var addIndex = 0,
|
1138 |
-
sendIndex = 0;
|
1139 |
-
$('#fileupload')
|
1140 |
-
.fileupload({
|
1141 |
-
autoUpload: true,
|
1142 |
-
maxNumberOfFiles: 3,
|
1143 |
-
singleFileUploads: false,
|
1144 |
-
send: function () {
|
1145 |
-
strictEqual(
|
1146 |
-
sendIndex += 1,
|
1147 |
-
addIndex
|
1148 |
-
);
|
1149 |
-
},
|
1150 |
-
progress: $.noop,
|
1151 |
-
progressall: $.noop,
|
1152 |
-
done: $.noop,
|
1153 |
-
stop: $.noop
|
1154 |
-
})
|
1155 |
-
.fileupload('add', {files: [{name: (addIndex += 1)}]})
|
1156 |
-
.fileupload('add', {files: [{name: (addIndex += 1)}]})
|
1157 |
-
.fileupload('add', {files: [{name: (addIndex += 1)}]})
|
1158 |
-
.fileupload('add', {files: [{name: 'test'}]});
|
1159 |
-
});
|
1160 |
-
|
1161 |
-
test('maxFileSize', function () {
|
1162 |
-
expect(2);
|
1163 |
-
var addIndex = 0,
|
1164 |
-
sendIndex = 0;
|
1165 |
-
$('#fileupload')
|
1166 |
-
.fileupload({
|
1167 |
-
autoUpload: true,
|
1168 |
-
maxFileSize: 1000,
|
1169 |
-
send: function () {
|
1170 |
-
strictEqual(
|
1171 |
-
sendIndex += 1,
|
1172 |
-
addIndex
|
1173 |
-
);
|
1174 |
-
return false;
|
1175 |
-
}
|
1176 |
-
})
|
1177 |
-
.fileupload('add', {files: [{
|
1178 |
-
name: (addIndex += 1)
|
1179 |
-
}]})
|
1180 |
-
.fileupload('add', {files: [{
|
1181 |
-
name: (addIndex += 1),
|
1182 |
-
size: 999
|
1183 |
-
}]})
|
1184 |
-
.fileupload('add', {files: [{
|
1185 |
-
name: 'test',
|
1186 |
-
size: 1001
|
1187 |
-
}]})
|
1188 |
-
.fileupload({
|
1189 |
-
send: function (e, data) {
|
1190 |
-
ok(
|
1191 |
-
!$.blueimp.fileupload.prototype.options
|
1192 |
-
.send.call(this, e, data)
|
1193 |
-
);
|
1194 |
-
return false;
|
1195 |
-
}
|
1196 |
-
});
|
1197 |
-
});
|
1198 |
-
|
1199 |
-
test('minFileSize', function () {
|
1200 |
-
expect(2);
|
1201 |
-
var addIndex = 0,
|
1202 |
-
sendIndex = 0;
|
1203 |
-
$('#fileupload')
|
1204 |
-
.fileupload({
|
1205 |
-
autoUpload: true,
|
1206 |
-
minFileSize: 1000,
|
1207 |
-
send: function () {
|
1208 |
-
strictEqual(
|
1209 |
-
sendIndex += 1,
|
1210 |
-
addIndex
|
1211 |
-
);
|
1212 |
-
return false;
|
1213 |
-
}
|
1214 |
-
})
|
1215 |
-
.fileupload('add', {files: [{
|
1216 |
-
name: (addIndex += 1)
|
1217 |
-
}]})
|
1218 |
-
.fileupload('add', {files: [{
|
1219 |
-
name: (addIndex += 1),
|
1220 |
-
size: 1001
|
1221 |
-
}]})
|
1222 |
-
.fileupload('add', {files: [{
|
1223 |
-
name: 'test',
|
1224 |
-
size: 999
|
1225 |
-
}]})
|
1226 |
-
.fileupload({
|
1227 |
-
send: function (e, data) {
|
1228 |
-
ok(
|
1229 |
-
!$.blueimp.fileupload.prototype.options
|
1230 |
-
.send.call(this, e, data)
|
1231 |
-
);
|
1232 |
-
return false;
|
1233 |
-
}
|
1234 |
-
});
|
1235 |
-
});
|
1236 |
-
|
1237 |
-
test('acceptFileTypes', function () {
|
1238 |
-
expect(2);
|
1239 |
-
var addIndex = 0,
|
1240 |
-
sendIndex = 0;
|
1241 |
-
$('#fileupload')
|
1242 |
-
.fileupload({
|
1243 |
-
autoUpload: true,
|
1244 |
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
1245 |
-
disableImageMetaDataLoad: true,
|
1246 |
-
send: function () {
|
1247 |
-
strictEqual(
|
1248 |
-
sendIndex += 1,
|
1249 |
-
addIndex
|
1250 |
-
);
|
1251 |
-
return false;
|
1252 |
-
}
|
1253 |
-
})
|
1254 |
-
.fileupload('add', {files: [{
|
1255 |
-
name: (addIndex += 1) + '.jpg'
|
1256 |
-
}]})
|
1257 |
-
.fileupload('add', {files: [{
|
1258 |
-
name: (addIndex += 1),
|
1259 |
-
type: 'image/jpeg'
|
1260 |
-
}]})
|
1261 |
-
.fileupload('add', {files: [{
|
1262 |
-
name: 'test.txt',
|
1263 |
-
type: 'text/plain'
|
1264 |
-
}]})
|
1265 |
-
.fileupload({
|
1266 |
-
send: function (e, data) {
|
1267 |
-
ok(
|
1268 |
-
!$.blueimp.fileupload.prototype.options
|
1269 |
-
.send.call(this, e, data)
|
1270 |
-
);
|
1271 |
-
return false;
|
1272 |
-
}
|
1273 |
-
});
|
1274 |
-
});
|
1275 |
-
|
1276 |
-
test('acceptFileTypes as HTML5 data attribute', function () {
|
1277 |
-
expect(2);
|
1278 |
-
var regExp = /(\.|\/)(gif|jpe?g|png)$/i;
|
1279 |
-
$('#fileupload')
|
1280 |
-
.attr('data-accept-file-types', regExp.toString())
|
1281 |
-
.fileupload();
|
1282 |
-
strictEqual(
|
1283 |
-
$.type($('#fileupload').fileupload('option', 'acceptFileTypes')),
|
1284 |
-
$.type(regExp)
|
1285 |
-
);
|
1286 |
-
strictEqual(
|
1287 |
-
$('#fileupload').fileupload('option', 'acceptFileTypes').toString(),
|
1288 |
-
regExp.toString()
|
1289 |
-
);
|
1290 |
-
});
|
1291 |
-
|
1292 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/.gitignore
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
-
.DS_Store
|
2 |
*.pyc
|
|
|
3 |
node_modules
|
|
|
1 |
*.pyc
|
2 |
+
.env
|
3 |
node_modules
|
vendors/jQuery-File-Upload/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright © 2010 Sebastian Tschan, https://blueimp.net
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6 |
+
this software and associated documentation files (the "Software"), to deal in
|
7 |
+
the Software without restriction, including without limitation the rights to
|
8 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9 |
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10 |
+
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, FITNESS
|
17 |
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18 |
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20 |
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
vendors/jQuery-File-Upload/README.md
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# jQuery File Upload
|
2 |
+
|
3 |
+
## Contents
|
4 |
+
|
5 |
+
- [Description](#description)
|
6 |
+
- [Demo](#demo)
|
7 |
+
- [Features](#features)
|
8 |
+
- [Security](#security)
|
9 |
+
- [Setup](#setup)
|
10 |
+
- [Requirements](#requirements)
|
11 |
+
- [Mandatory requirements](#mandatory-requirements)
|
12 |
+
- [Optional requirements](#optional-requirements)
|
13 |
+
- [Cross-domain requirements](#cross-domain-requirements)
|
14 |
+
- [Browsers](#browsers)
|
15 |
+
- [Desktop browsers](#desktop-browsers)
|
16 |
+
- [Mobile browsers](#mobile-browsers)
|
17 |
+
- [Extended browser support information](#extended-browser-support-information)
|
18 |
+
- [Testing](#testing)
|
19 |
+
- [Support](#support)
|
20 |
+
- [License](#license)
|
21 |
+
|
22 |
+
## Description
|
23 |
+
|
24 |
+
> File Upload widget with multiple file selection, drag&drop support,
|
25 |
+
> progress bars, validation and preview images, audio and video for jQuery.
|
26 |
+
> Supports cross-domain, chunked and resumable file uploads and client-side
|
27 |
+
> image resizing.
|
28 |
+
> Works with any server-side platform (PHP, Python, Ruby on Rails, Java,
|
29 |
+
> Node.js, Go etc.) that supports standard HTML form file uploads.
|
30 |
+
|
31 |
+
## Demo
|
32 |
+
|
33 |
+
[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)
|
34 |
+
|
35 |
+
## Features
|
36 |
+
|
37 |
+
- **Multiple file upload:**
|
38 |
+
Allows to select multiple files at once and upload them simultaneously.
|
39 |
+
- **Drag & Drop support:**
|
40 |
+
Allows to upload files by dragging them from your desktop or file manager and
|
41 |
+
dropping them on your browser window.
|
42 |
+
- **Upload progress bar:**
|
43 |
+
Shows a progress bar indicating the upload progress for individual files and
|
44 |
+
for all uploads combined.
|
45 |
+
- **Cancelable uploads:**
|
46 |
+
Individual file uploads can be canceled to stop the upload progress.
|
47 |
+
- **Resumable uploads:**
|
48 |
+
Aborted uploads can be resumed with browsers supporting the Blob API.
|
49 |
+
- **Chunked uploads:**
|
50 |
+
Large files can be uploaded in smaller chunks with browsers supporting the
|
51 |
+
Blob API.
|
52 |
+
- **Client-side image resizing:**
|
53 |
+
Images can be automatically resized on client-side with browsers supporting
|
54 |
+
the required JS APIs.
|
55 |
+
- **Preview images, audio and video:**
|
56 |
+
A preview of image, audio and video files can be displayed before uploading
|
57 |
+
with browsers supporting the required APIs.
|
58 |
+
- **No browser plugins (e.g. Adobe Flash) required:**
|
59 |
+
The implementation is based on open standards like HTML5 and JavaScript and
|
60 |
+
requires no additional browser plugins.
|
61 |
+
- **Graceful fallback for legacy browsers:**
|
62 |
+
Uploads files via XMLHttpRequests if supported and uses iframes as fallback
|
63 |
+
for legacy browsers.
|
64 |
+
- **HTML file upload form fallback:**
|
65 |
+
Allows progressive enhancement by using a standard HTML file upload form as
|
66 |
+
widget element.
|
67 |
+
- **Cross-site file uploads:**
|
68 |
+
Supports uploading files to a different domain with cross-site XMLHttpRequests
|
69 |
+
or iframe redirects.
|
70 |
+
- **Multiple plugin instances:**
|
71 |
+
Allows to use multiple plugin instances on the same webpage.
|
72 |
+
- **Customizable and extensible:**
|
73 |
+
Provides an API to set individual options and define callback methods for
|
74 |
+
various upload events.
|
75 |
+
- **Multipart and file contents stream uploads:**
|
76 |
+
Files can be uploaded as standard "multipart/form-data" or file contents
|
77 |
+
stream (HTTP PUT file upload).
|
78 |
+
- **Compatible with any server-side application platform:**
|
79 |
+
Works with any server-side platform (PHP, Python, Ruby on Rails, Java,
|
80 |
+
Node.js, Go etc.) that supports standard HTML form file uploads.
|
81 |
+
|
82 |
+
## Security
|
83 |
+
|
84 |
+
⚠️ Please read the [VULNERABILITIES](VULNERABILITIES.md) document for a list of
|
85 |
+
fixed vulnerabilities
|
86 |
+
|
87 |
+
Please also read the [SECURITY](SECURITY.md) document for instructions on how to
|
88 |
+
securely configure your Webserver for file uploads.
|
89 |
+
|
90 |
+
## Setup
|
91 |
+
|
92 |
+
jQuery File Upload can be installed via [NPM](https://www.npmjs.com/):
|
93 |
+
|
94 |
+
```sh
|
95 |
+
npm install blueimp-file-upload
|
96 |
+
```
|
97 |
+
|
98 |
+
This allows you to include [jquery.fileupload.js](js/jquery.fileupload.js) and
|
99 |
+
its extensions via `node_modules`, e.g:
|
100 |
+
|
101 |
+
```html
|
102 |
+
<script src="node_modules/blueimp-file-upload/js/jquery.fileupload.js"></script>
|
103 |
+
```
|
104 |
+
|
105 |
+
The widget can then be initialized on a file upload form the following way:
|
106 |
+
|
107 |
+
```js
|
108 |
+
$('#fileupload').fileupload();
|
109 |
+
```
|
110 |
+
|
111 |
+
For further information, please refer to the following guides:
|
112 |
+
|
113 |
+
- [Main documentation page](https://github.com/blueimp/jQuery-File-Upload/wiki)
|
114 |
+
- [List of all available Options](https://github.com/blueimp/jQuery-File-Upload/wiki/Options)
|
115 |
+
- [The plugin API](https://github.com/blueimp/jQuery-File-Upload/wiki/API)
|
116 |
+
- [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
|
117 |
+
- [How to use only the basic plugin.](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)
|
118 |
+
|
119 |
+
## Requirements
|
120 |
+
|
121 |
+
### Mandatory requirements
|
122 |
+
|
123 |
+
- [jQuery](https://jquery.com/) v1.6+
|
124 |
+
- [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v1.9+
|
125 |
+
(included): Required for the basic File Upload plugin, but very lightweight
|
126 |
+
without any other dependencies from the jQuery UI suite.
|
127 |
+
- [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)
|
128 |
+
(included): Required for
|
129 |
+
[browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
|
130 |
+
|
131 |
+
### Optional requirements
|
132 |
+
|
133 |
+
- [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates)
|
134 |
+
v3+: Used to render the selected and uploaded files for the Basic Plus UI and
|
135 |
+
jQuery UI versions.
|
136 |
+
- [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image)
|
137 |
+
v2+: Required for the image previews and resizing functionality.
|
138 |
+
- [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob)
|
139 |
+
v3+:Required for the image previews and resizing functionality.
|
140 |
+
- [blueimp Gallery](https://github.com/blueimp/Gallery) v2+: Used to display the
|
141 |
+
uploaded images in a lightbox.
|
142 |
+
- [Bootstrap](https://getbootstrap.com/) v3+: Used for the demo design.
|
143 |
+
- [Glyphicons](https://glyphicons.com/) Icon set used by Bootstrap.
|
144 |
+
|
145 |
+
### Cross-domain requirements
|
146 |
+
|
147 |
+
[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads)
|
148 |
+
using the
|
149 |
+
[Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)
|
150 |
+
require a redirect back to the origin server to retrieve the upload results. The
|
151 |
+
[example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js)
|
152 |
+
makes use of
|
153 |
+
[result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html)
|
154 |
+
as a static redirect page for the origin server.
|
155 |
+
|
156 |
+
The repository also includes the
|
157 |
+
[jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js),
|
158 |
+
which enables limited cross-domain AJAX requests in Microsoft Internet Explorer
|
159 |
+
8 and 9 (IE 10 supports cross-domain XHR requests).
|
160 |
+
The XDomainRequest object allows GET and POST requests only and doesn't support
|
161 |
+
file uploads. It is used on the
|
162 |
+
[Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files
|
163 |
+
from the cross-domain demo file upload service.
|
164 |
+
|
165 |
+
## Browsers
|
166 |
+
|
167 |
+
### Desktop browsers
|
168 |
+
|
169 |
+
The File Upload plugin is regularly tested with the latest browser versions and
|
170 |
+
supports the following minimal versions:
|
171 |
+
|
172 |
+
- Google Chrome
|
173 |
+
- Apple Safari 4.0+
|
174 |
+
- Mozilla Firefox 3.0+
|
175 |
+
- Opera 11.0+
|
176 |
+
- Microsoft Internet Explorer 6.0+
|
177 |
+
|
178 |
+
### Mobile browsers
|
179 |
+
|
180 |
+
The File Upload plugin has been tested with and supports the following mobile
|
181 |
+
browsers:
|
182 |
+
|
183 |
+
- Apple Safari on iOS 6.0+
|
184 |
+
- Google Chrome on iOS 6.0+
|
185 |
+
- Google Chrome on Android 4.0+
|
186 |
+
- Default Browser on Android 2.3+
|
187 |
+
- Opera Mobile 12.0+
|
188 |
+
|
189 |
+
### Extended browser support information
|
190 |
+
|
191 |
+
For a detailed overview of the features supported by each browser version and
|
192 |
+
known operating system / browser bugs, please have a look at the
|
193 |
+
[Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
|
194 |
+
|
195 |
+
## Testing
|
196 |
+
|
197 |
+
The project comes with three sets of tests:
|
198 |
+
|
199 |
+
1. Code linting using [ESLint](https://eslint.org/).
|
200 |
+
2. Unit tests using [Mocha](https://mochajs.org/).
|
201 |
+
3. End-to-end tests using [blueimp/wdio](https://github.com/blueimp/wdio).
|
202 |
+
|
203 |
+
To run the tests, follow these steps:
|
204 |
+
|
205 |
+
1. Start [Docker](https://docs.docker.com/).
|
206 |
+
2. Install development dependencies:
|
207 |
+
```sh
|
208 |
+
npm install
|
209 |
+
```
|
210 |
+
3. Run the tests:
|
211 |
+
```sh
|
212 |
+
npm test
|
213 |
+
```
|
214 |
+
|
215 |
+
## Support
|
216 |
+
|
217 |
+
This project is actively maintained, but there is no official support channel.
|
218 |
+
If you have a question that another developer might help you with, please post
|
219 |
+
to
|
220 |
+
[Stack Overflow](https://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload)
|
221 |
+
and tag your question with `blueimp jquery file upload`.
|
222 |
+
|
223 |
+
## License
|
224 |
+
|
225 |
+
Released under the [MIT license](https://opensource.org/licenses/MIT).
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/SECURITY.md
RENAMED
@@ -1,68 +1,133 @@
|
|
1 |
# File Upload Security
|
2 |
-
For an in-depth understanding of the potential security risks of providing file uploads and possible mitigations, please refer to the [OWASP - Unrestricted File Upload](https://www.owasp.org/index.php/Unrestricted_File_Upload) documentation.
|
3 |
|
4 |
-
|
5 |
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
-
|
9 |
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
## Purpose of this project
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
15 |
|
16 |
To make this very clear, there is **no user authentication** by default:
|
17 |
-
* **everyone can upload files**
|
18 |
-
* **everyone can delete uploaded files**
|
19 |
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
-
It is also up to you to configure your Webserver to securely serve the uploaded
|
|
|
|
|
23 |
|
24 |
## Mitigations against file upload risks
|
25 |
|
26 |
### Prevent code execution on the server
|
27 |
-
To prevent execution of scripts or binaries on server-side, the upload directory must be configured to not execute files in the upload directory (e.g. `server/php/files` as the default for the PHP upload handler) and only treat uploaded files as static content.
|
28 |
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
Limiting file uploads to a whitelist of safe file types (e.g. image files) also
|
|
|
33 |
|
34 |
### Prevent code execution in the browser
|
35 |
-
|
36 |
-
|
|
|
37 |
|
38 |
```
|
39 |
Content-Type: application/octet-stream
|
40 |
X-Content-Type-Options: nosniff
|
41 |
```
|
42 |
|
43 |
-
The `Content-Type: application/octet-stream` header instructs browsers to
|
|
|
|
|
44 |
|
45 |
-
The `X-Content-Type-Options: nosniff` header prevents browsers to try to detect
|
|
|
46 |
|
47 |
-
For known safe files, the content-type header can be adjusted using a
|
|
|
48 |
|
49 |
### Prevent distribution of malware
|
50 |
-
To prevent attackers from uploading and distributing malware (e.g. computer viruses), it is recommended to limit file uploads only to a whitelist of safe file types.
|
51 |
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
-
It does not protect at all from exploiting vulnerabilities in image display
|
|
|
|
|
55 |
|
56 |
## Secure file upload serving configurations
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
59 |
|
60 |
> Always test your own setup and make sure that it is secure!
|
61 |
|
62 |
-
e.g. try uploading PHP scripts (as "example.php", "example.php.png" and
|
|
|
63 |
|
64 |
### Apache config
|
65 |
-
|
|
|
|
|
66 |
|
67 |
```ApacheConf
|
68 |
<Directory "/path/to/project/server/php/files">
|
@@ -91,7 +156,9 @@ Add the following directive to the Apache config, replacing the directory path w
|
|
91 |
```
|
92 |
|
93 |
### NGINX config
|
94 |
-
|
|
|
|
|
95 |
|
96 |
```Nginx
|
97 |
location ^~ /path/to/project/server/php/files {
|
@@ -113,13 +180,22 @@ location ^~ /path/to/project/server/php/files {
|
|
113 |
```
|
114 |
|
115 |
## Secure image processing configurations
|
116 |
-
The following configuration mitigates [potential image processing vulnerabilities with ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick) by limiting the attack vectors to a small subset of image types (`GIF/JPEG/PNG`).
|
117 |
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
## ImageMagick config
|
121 |
-
|
122 |
-
|
|
|
|
|
|
|
123 |
|
124 |
```xml
|
125 |
<?xml version="1.0" encoding="UTF-8"?>
|
1 |
# File Upload Security
|
|
|
2 |
|
3 |
+
## Contents
|
4 |
|
5 |
+
- [Introduction](#introduction)
|
6 |
+
- [Purpose of this project](#purpose-of-this-project)
|
7 |
+
- [Mitigations against file upload risks](#mitigations-against-file-upload-risks)
|
8 |
+
- [Prevent code execution on the server](#prevent-code-execution-on-the-server)
|
9 |
+
- [Prevent code execution in the browser](#prevent-code-execution-in-the-browser)
|
10 |
+
- [Prevent distribution of malware](#prevent-distribution-of-malware)
|
11 |
+
- [Secure file upload serving configurations](#secure-file-upload-serving-configurations)
|
12 |
+
- [Apache config](#apache-config)
|
13 |
+
- [NGINX config](#nginx-config)
|
14 |
+
- [Secure image processing configurations](#secure-image-processing-configurations)
|
15 |
+
- [ImageMagick config](#imagemagick-config)
|
16 |
|
17 |
+
## Introduction
|
18 |
|
19 |
+
For an in-depth understanding of the potential security risks of providing file
|
20 |
+
uploads and possible mitigations, please refer to the
|
21 |
+
[OWASP - Unrestricted File Upload](https://www.owasp.org/index.php/Unrestricted_File_Upload)
|
22 |
+
documentation.
|
23 |
+
|
24 |
+
To securely setup the project to serve uploaded files, please refer to the
|
25 |
+
sample
|
26 |
+
[Secure file upload serving configurations](#secure-file-upload-serving-configurations).
|
27 |
+
|
28 |
+
To mitigate potential vulnerabilities in image processing libraries, please
|
29 |
+
refer to the
|
30 |
+
[Secure image processing configurations](#secure-image-processing-configurations).
|
31 |
+
|
32 |
+
By default, all sample upload handlers allow only upload of image files, which
|
33 |
+
mitigates some attack vectors, but should not be relied on as the only
|
34 |
+
protection.
|
35 |
+
|
36 |
+
Please also have a look at the
|
37 |
+
[list of fixed vulnerabilities](VULNERABILITIES.md) in jQuery File Upload, which
|
38 |
+
relates mostly to the sample server-side upload handlers and how they have been
|
39 |
+
configured.
|
40 |
|
41 |
## Purpose of this project
|
42 |
+
|
43 |
+
Please note that this project is not a complete file management product, but
|
44 |
+
foremost a client-side file upload library for [jQuery](https://jquery.com/).
|
45 |
+
The server-side sample upload handlers are just examples to demonstrate the
|
46 |
+
client-side file upload functionality.
|
47 |
|
48 |
To make this very clear, there is **no user authentication** by default:
|
|
|
|
|
49 |
|
50 |
+
- **everyone can upload files**
|
51 |
+
- **everyone can delete uploaded files**
|
52 |
+
|
53 |
+
In some cases this can be acceptable, but for most projects you will want to
|
54 |
+
extend the sample upload handlers to integrate user authentication, or implement
|
55 |
+
your own.
|
56 |
|
57 |
+
It is also up to you to configure your Webserver to securely serve the uploaded
|
58 |
+
files, e.g. using the
|
59 |
+
[sample server configurations](#secure-file-upload-serving-configurations).
|
60 |
|
61 |
## Mitigations against file upload risks
|
62 |
|
63 |
### Prevent code execution on the server
|
|
|
64 |
|
65 |
+
To prevent execution of scripts or binaries on server-side, the upload directory
|
66 |
+
must be configured to not execute files in the upload directory (e.g.
|
67 |
+
`server/php/files` as the default for the PHP upload handler) and only treat
|
68 |
+
uploaded files as static content.
|
69 |
+
|
70 |
+
The recommended way to do this is to configure the upload directory path to
|
71 |
+
point outside of the web application root.
|
72 |
+
Then the Webserver can be configured to serve files from the upload directory
|
73 |
+
with their default static files handler only.
|
74 |
|
75 |
+
Limiting file uploads to a whitelist of safe file types (e.g. image files) also
|
76 |
+
mitigates this issue, but should not be the only protection.
|
77 |
|
78 |
### Prevent code execution in the browser
|
79 |
+
|
80 |
+
To prevent execution of scripts on client-side, the following headers must be
|
81 |
+
sent when delivering generic uploaded files to the client:
|
82 |
|
83 |
```
|
84 |
Content-Type: application/octet-stream
|
85 |
X-Content-Type-Options: nosniff
|
86 |
```
|
87 |
|
88 |
+
The `Content-Type: application/octet-stream` header instructs browsers to
|
89 |
+
display a download dialog instead of parsing it and possibly executing script
|
90 |
+
content e.g. in HTML files.
|
91 |
|
92 |
+
The `X-Content-Type-Options: nosniff` header prevents browsers to try to detect
|
93 |
+
the file mime type despite the given content-type header.
|
94 |
|
95 |
+
For known safe files, the content-type header can be adjusted using a
|
96 |
+
**whitelist**, e.g. sending `Content-Type: image/png` for PNG files.
|
97 |
|
98 |
### Prevent distribution of malware
|
|
|
99 |
|
100 |
+
To prevent attackers from uploading and distributing malware (e.g. computer
|
101 |
+
viruses), it is recommended to limit file uploads only to a whitelist of safe
|
102 |
+
file types.
|
103 |
+
|
104 |
+
Please note that the detection of file types in the sample file upload handlers
|
105 |
+
is based on the file extension and not the actual file content. This makes it
|
106 |
+
still possible for attackers to upload malware by giving their files an image
|
107 |
+
file extension, but should prevent automatic execution on client computers when
|
108 |
+
opening those files.
|
109 |
|
110 |
+
It does not protect at all from exploiting vulnerabilities in image display
|
111 |
+
programs, nor from users renaming file extensions to inadvertently execute the
|
112 |
+
contained malicious code.
|
113 |
|
114 |
## Secure file upload serving configurations
|
115 |
+
|
116 |
+
The following configurations serve uploaded files as static files with the
|
117 |
+
proper headers as
|
118 |
+
[mitigation against file upload risks](#mitigations-against-file-upload-risks).
|
119 |
+
Please do not simply copy&paste these configurations, but make sure you
|
120 |
+
understand what they are doing and that you have implemented them correctly.
|
121 |
|
122 |
> Always test your own setup and make sure that it is secure!
|
123 |
|
124 |
+
e.g. try uploading PHP scripts (as "example.php", "example.php.png" and
|
125 |
+
"example.png") to see if they get executed by your Webserver.
|
126 |
|
127 |
### Apache config
|
128 |
+
|
129 |
+
Add the following directive to the Apache config, replacing the directory path
|
130 |
+
with the absolute path to the upload directory:
|
131 |
|
132 |
```ApacheConf
|
133 |
<Directory "/path/to/project/server/php/files">
|
156 |
```
|
157 |
|
158 |
### NGINX config
|
159 |
+
|
160 |
+
Add the following directive to the NGINX config, replacing the directory path
|
161 |
+
with the absolute path to the upload directory:
|
162 |
|
163 |
```Nginx
|
164 |
location ^~ /path/to/project/server/php/files {
|
180 |
```
|
181 |
|
182 |
## Secure image processing configurations
|
|
|
183 |
|
184 |
+
The following configuration mitigates
|
185 |
+
[potential image processing vulnerabilities with ImageMagick](VULNERABILITIES.md#potential-vulnerabilities-with-php-imagemagick)
|
186 |
+
by limiting the attack vectors to a small subset of image types
|
187 |
+
(`GIF/JPEG/PNG`).
|
188 |
+
|
189 |
+
Please also consider using alternative, safer image processing libraries like
|
190 |
+
[libvips](https://github.com/libvips/libvips) or
|
191 |
+
[imageflow](https://github.com/imazen/imageflow).
|
192 |
|
193 |
## ImageMagick config
|
194 |
+
|
195 |
+
It is recommended to disable all non-required ImageMagick coders via
|
196 |
+
[policy.xml](https://wiki.debian.org/imagemagick/security).
|
197 |
+
To do so, locate the ImageMagick `policy.xml` configuration file and add the
|
198 |
+
following policies:
|
199 |
|
200 |
```xml
|
201 |
<?xml version="1.0" encoding="UTF-8"?>
|
vendors/jQuery-File-Upload/VULNERABILITIES.md
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# List of fixed vulnerabilities
|
2 |
+
|
3 |
+
## Contents
|
4 |
+
|
5 |
+
- [Potential vulnerabilities with PHP+ImageMagick](#potential-vulnerabilities-with-phpimagemagick)
|
6 |
+
- [Remote code execution vulnerability in the PHP component](#remote-code-execution-vulnerability-in-the-php-component)
|
7 |
+
- [Open redirect vulnerability in the GAE components](#open-redirect-vulnerability-in-the-gae-components)
|
8 |
+
- [Cross-site scripting vulnerability in the Iframe Transport](#cross-site-scripting-vulnerability-in-the-iframe-transport)
|
9 |
+
|
10 |
+
## Potential vulnerabilities with PHP+ImageMagick
|
11 |
+
|
12 |
+
> Mitigated: 2018-10-25 (GMT)
|
13 |
+
|
14 |
+
The sample [PHP upload handler](server/php/UploadHandler.php) before
|
15 |
+
[v9.25.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.25.1)
|
16 |
+
did not validate file signatures before invoking
|
17 |
+
[ImageMagick](https://www.imagemagick.org/) (via
|
18 |
+
[Imagick](https://php.net/manual/en/book.imagick.php)).
|
19 |
+
Verifying those
|
20 |
+
[magic bytes](https://en.wikipedia.org/wiki/List_of_file_signatures) mitigates
|
21 |
+
potential vulnerabilities when handling input files other than `GIF/JPEG/PNG`.
|
22 |
+
|
23 |
+
Please also configure ImageMagick to only enable the coders required for
|
24 |
+
`GIF/JPEG/PNG` processing, e.g. with the sample
|
25 |
+
[ImageMagick config](SECURITY.md#imagemagick-config).
|
26 |
+
|
27 |
+
**Further information:**
|
28 |
+
|
29 |
+
- Commit containing the mitigation:
|
30 |
+
[fe44d34](https://github.com/blueimp/jQuery-File-Upload/commit/fe44d34be43be32c6b8d507932f318dababb25dd)
|
31 |
+
- [ImageTragick](https://imagetragick.com/)
|
32 |
+
- [CERT Vulnerability Note VU#332928](https://www.kb.cert.org/vuls/id/332928)
|
33 |
+
- [ImageMagick CVE entries](https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=imagemagick)
|
34 |
+
|
35 |
+
## Remote code execution vulnerability in the PHP component
|
36 |
+
|
37 |
+
> Fixed: 2018-10-23 (GMT)
|
38 |
+
|
39 |
+
The sample [PHP upload handler](server/php/UploadHandler.php) before
|
40 |
+
[v9.24.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.24.1)
|
41 |
+
allowed to upload all file types by default.
|
42 |
+
This opens up a remote code execution vulnerability, unless the server is
|
43 |
+
configured to not execute (PHP) files in the upload directory
|
44 |
+
(`server/php/files`).
|
45 |
+
|
46 |
+
The provided [.htaccess](server/php/files/.htaccess) file includes instructions
|
47 |
+
for Apache to disable script execution, however
|
48 |
+
[.htaccess support](https://httpd.apache.org/docs/current/howto/htaccess.html)
|
49 |
+
is disabled by default since Apache `v2.3.9` via
|
50 |
+
[AllowOverride Directive](https://httpd.apache.org/docs/current/mod/core.html#allowoverride).
|
51 |
+
|
52 |
+
**You are affected if you:**
|
53 |
+
|
54 |
+
1. A) Uploaded jQuery File Upload < `v9.24.1` on a Webserver that executes files
|
55 |
+
with `.php` as part of the file extension (e.g. "example.php.png"), e.g.
|
56 |
+
Apache with `mod_php` enabled and the following directive (_not a recommended
|
57 |
+
configuration_):
|
58 |
+
```ApacheConf
|
59 |
+
AddHandler php5-script .php
|
60 |
+
```
|
61 |
+
B) Uploaded jQuery File Upload < `v9.22.1` on a Webserver that executes files
|
62 |
+
with the file extension `.php`, e.g. Apache with `mod_php` enabled and the
|
63 |
+
following directive:
|
64 |
+
```ApacheConf
|
65 |
+
<FilesMatch \.php$>
|
66 |
+
SetHandler application/x-httpd-php
|
67 |
+
</FilesMatch>
|
68 |
+
```
|
69 |
+
2. Did not actively configure your Webserver to not execute files in the upload
|
70 |
+
directory (`server/php/files`).
|
71 |
+
3. Are running Apache `v2.3.9+` with the default `AllowOverride` Directive set
|
72 |
+
to `None` or another Webserver with no `.htaccess` support.
|
73 |
+
|
74 |
+
**How to fix it:**
|
75 |
+
|
76 |
+
1. Upgrade to the latest version of jQuery File Upload.
|
77 |
+
2. Configure your Webserver to not execute files in the upload directory, e.g.
|
78 |
+
with the [sample Apache configuration](SECURITY.md#apache-config)
|
79 |
+
|
80 |
+
**Further information:**
|
81 |
+
|
82 |
+
- Commits containing the security fix:
|
83 |
+
[aeb47e5](https://github.com/blueimp/jQuery-File-Upload/commit/aeb47e51c67df8a504b7726595576c1c66b5dc2f),
|
84 |
+
[ad4aefd](https://github.com/blueimp/jQuery-File-Upload/commit/ad4aefd96e4056deab6fea2690f0d8cf56bb2d7d)
|
85 |
+
- [Full disclosure post on Hacker News](https://news.ycombinator.com/item?id=18267309).
|
86 |
+
- [CVE-2018-9206](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9206)
|
87 |
+
- [OWASP - Unrestricted File Upload](https://www.owasp.org/index.php/Unrestricted_File_Upload)
|
88 |
+
|
89 |
+
## Open redirect vulnerability in the GAE components
|
90 |
+
|
91 |
+
> Fixed: 2015-06-12 (GMT)
|
92 |
+
|
93 |
+
The sample Google App Engine upload handlers before
|
94 |
+
v[9.10.1](https://github.com/blueimp/jQuery-File-Upload/releases/tag/9.10.1)
|
95 |
+
accepted any URL as redirect target, making it possible to use the Webserver's
|
96 |
+
domain for phishing attacks.
|
97 |
+
|
98 |
+
**Further information:**
|
99 |
+
|
100 |
+
- Commit containing the security fix:
|
101 |
+
[f74d2a8](https://github.com/blueimp/jQuery-File-Upload/commit/f74d2a8c3e3b1e8e336678d2899facd5bcdb589f)
|
102 |
+
- [OWASP - Unvalidated Redirects and Forwards Cheat Sheet](https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet)
|
103 |
+
|
104 |
+
## Cross-site scripting vulnerability in the Iframe Transport
|
105 |
+
|
106 |
+
> Fixed: 2012-08-09 (GMT)
|
107 |
+
|
108 |
+
The [redirect page](cors/result.html) for the
|
109 |
+
[Iframe Transport](js/jquery.iframe-transport.js) before commit
|
110 |
+
[4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a)
|
111 |
+
(_fixed in all tagged releases_) allowed executing arbitrary JavaScript in the
|
112 |
+
context of the Webserver.
|
113 |
+
|
114 |
+
**Further information:**
|
115 |
+
|
116 |
+
- Commit containing the security fix:
|
117 |
+
[4175032](https://github.com/blueimp/jQuery-File-Upload/commit/41750323a464e848856dc4c5c940663498beb74a)
|
118 |
+
- [OWASP - Cross-site Scripting (XSS)](<https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)>)
|
vendors/jQuery-File-Upload/cors/postmessage.html
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<!--
|
3 |
+
/*
|
4 |
+
* jQuery File Upload Plugin postMessage API
|
5 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
+
*
|
7 |
+
* Copyright 2011, Sebastian Tschan
|
8 |
+
* https://blueimp.net
|
9 |
+
*
|
10 |
+
* Licensed under the MIT license:
|
11 |
+
* https://opensource.org/licenses/MIT
|
12 |
+
*/
|
13 |
+
-->
|
14 |
+
<html lang="en">
|
15 |
+
<head>
|
16 |
+
<meta charset="utf-8" />
|
17 |
+
<title>jQuery File Upload Plugin postMessage API</title>
|
18 |
+
<script
|
19 |
+
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
|
20 |
+
integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f"
|
21 |
+
crossorigin="anonymous"
|
22 |
+
></script>
|
23 |
+
</head>
|
24 |
+
<body>
|
25 |
+
<script>
|
26 |
+
'use strict';
|
27 |
+
var origin = /^https:\/\/example.org/,
|
28 |
+
target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
|
29 |
+
$(window).on('message', function(e) {
|
30 |
+
e = e.originalEvent;
|
31 |
+
var s = e.data,
|
32 |
+
xhr = $.ajaxSettings.xhr(),
|
33 |
+
f;
|
34 |
+
if (!origin.test(e.origin)) {
|
35 |
+
throw new Error('Origin "' + e.origin + '" does not match ' + origin);
|
36 |
+
}
|
37 |
+
if (!target.test(e.data.url)) {
|
38 |
+
throw new Error(
|
39 |
+
'Target "' + e.data.url + '" does not match ' + target
|
40 |
+
);
|
41 |
+
}
|
42 |
+
$(xhr.upload).on('progress', function(ev) {
|
43 |
+
ev = ev.originalEvent;
|
44 |
+
e.source.postMessage(
|
45 |
+
{
|
46 |
+
id: s.id,
|
47 |
+
type: ev.type,
|
48 |
+
timeStamp: ev.timeStamp,
|
49 |
+
lengthComputable: ev.lengthComputable,
|
50 |
+
loaded: ev.loaded,
|
51 |
+
total: ev.total
|
52 |
+
},
|
53 |
+
e.origin
|
54 |
+
);
|
55 |
+
});
|
56 |
+
s.xhr = function() {
|
57 |
+
return xhr;
|
58 |
+
};
|
59 |
+
if (!(s.data instanceof Blob)) {
|
60 |
+
f = new FormData();
|
61 |
+
$.each(s.data, function(i, v) {
|
62 |
+
f.append(v.name, v.value);
|
63 |
+
});
|
64 |
+
s.data = f;
|
65 |
+
}
|
66 |
+
$.ajax(s).always(function(result, statusText, jqXHR) {
|
67 |
+
if (!jqXHR.done) {
|
68 |
+
jqXHR = result;
|
69 |
+
result = null;
|
70 |
+
}
|
71 |
+
e.source.postMessage(
|
72 |
+
{
|
73 |
+
id: s.id,
|
74 |
+
status: jqXHR.status,
|
75 |
+
statusText: statusText,
|
76 |
+
result: result,
|
77 |
+
headers: jqXHR.getAllResponseHeaders()
|
78 |
+
},
|
79 |
+
e.origin
|
80 |
+
);
|
81 |
+
});
|
82 |
+
});
|
83 |
+
</script>
|
84 |
+
</body>
|
85 |
+
</html>
|
vendors/jQuery-File-Upload/cors/result.html
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<!--
|
3 |
+
/*
|
4 |
+
* jQuery Iframe Transport Plugin Redirect Page
|
5 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
+
*
|
7 |
+
* Copyright 2010, Sebastian Tschan
|
8 |
+
* https://blueimp.net
|
9 |
+
*
|
10 |
+
* Licensed under the MIT license:
|
11 |
+
* https://opensource.org/licenses/MIT
|
12 |
+
*/
|
13 |
+
-->
|
14 |
+
<html lang="en">
|
15 |
+
<head>
|
16 |
+
<meta charset="utf-8" />
|
17 |
+
<title>jQuery Iframe Transport Plugin Redirect Page</title>
|
18 |
+
</head>
|
19 |
+
<body>
|
20 |
+
<script>
|
21 |
+
document.body.innerText = document.body.textContent = decodeURIComponent(
|
22 |
+
window.location.search.slice(1)
|
23 |
+
);
|
24 |
+
</script>
|
25 |
+
</body>
|
26 |
+
</html>
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-noscript.css
RENAMED
File without changes
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-ui-noscript.css
RENAMED
File without changes
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload-ui.css
RENAMED
@@ -10,13 +10,9 @@
|
|
10 |
* https://opensource.org/licenses/MIT
|
11 |
*/
|
12 |
|
13 |
-
.fileupload-buttonbar .btn,
|
14 |
-
.fileupload-buttonbar .toggle {
|
15 |
-
margin-bottom: 5px;
|
16 |
-
}
|
17 |
.progress-animated .progress-bar,
|
18 |
.progress-animated .bar {
|
19 |
-
background: url(
|
20 |
filter: none;
|
21 |
}
|
22 |
.fileupload-process {
|
@@ -28,15 +24,23 @@
|
|
28 |
display: block;
|
29 |
width: 32px;
|
30 |
height: 32px;
|
31 |
-
background: url(
|
32 |
background-size: contain;
|
33 |
}
|
34 |
.files audio,
|
35 |
.files video {
|
36 |
max-width: 300px;
|
37 |
}
|
|
|
|
|
|
|
|
|
38 |
|
39 |
@media (max-width: 767px) {
|
|
|
|
|
|
|
|
|
40 |
.fileupload-buttonbar .toggle,
|
41 |
.files .toggle,
|
42 |
.files .btn span {
|
10 |
* https://opensource.org/licenses/MIT
|
11 |
*/
|
12 |
|
|
|
|
|
|
|
|
|
13 |
.progress-animated .progress-bar,
|
14 |
.progress-animated .bar {
|
15 |
+
background: url('../img/progressbar.gif') !important;
|
16 |
filter: none;
|
17 |
}
|
18 |
.fileupload-process {
|
24 |
display: block;
|
25 |
width: 32px;
|
26 |
height: 32px;
|
27 |
+
background: url('../img/loading.gif') center no-repeat;
|
28 |
background-size: contain;
|
29 |
}
|
30 |
.files audio,
|
31 |
.files video {
|
32 |
max-width: 300px;
|
33 |
}
|
34 |
+
.toggle[type='checkbox'] {
|
35 |
+
transform: scale(2);
|
36 |
+
margin-left: 10px;
|
37 |
+
}
|
38 |
|
39 |
@media (max-width: 767px) {
|
40 |
+
.fileupload-buttonbar .btn {
|
41 |
+
margin-bottom: 5px;
|
42 |
+
}
|
43 |
+
.fileupload-buttonbar .delete,
|
44 |
.fileupload-buttonbar .toggle,
|
45 |
.files .toggle,
|
46 |
.files .btn span {
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/css/jquery.fileupload.css
RENAMED
File without changes
|
vendors/jQuery-File-Upload/docker-compose.yml
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3.7'
|
2 |
+
services:
|
3 |
+
example:
|
4 |
+
build: server/php
|
5 |
+
ports:
|
6 |
+
- 127.0.0.1:80:80
|
7 |
+
- ${SERVER_HOST:-127.0.0.1}:${SERVER_PORT-}:80
|
8 |
+
volumes:
|
9 |
+
- .:/var/www/html
|
10 |
+
mocha:
|
11 |
+
image: blueimp/mocha-chrome
|
12 |
+
command: http://example/test
|
13 |
+
environment:
|
14 |
+
- WAIT_FOR_HOSTS=example:80
|
15 |
+
depends_on:
|
16 |
+
- example
|
17 |
+
chromedriver:
|
18 |
+
image: blueimp/chromedriver
|
19 |
+
init: true
|
20 |
+
tmpfs: /tmp
|
21 |
+
environment:
|
22 |
+
- DISABLE_X11=false
|
23 |
+
- ENABLE_VNC=true
|
24 |
+
- EXPOSE_X11=true
|
25 |
+
volumes:
|
26 |
+
- ./wdio/assets:/home/webdriver/assets:ro
|
27 |
+
ports:
|
28 |
+
- 127.0.0.1:5900:5900
|
29 |
+
geckodriver:
|
30 |
+
image: blueimp/geckodriver
|
31 |
+
init: true
|
32 |
+
tmpfs: /tmp
|
33 |
+
shm_size: 2g
|
34 |
+
environment:
|
35 |
+
- DISABLE_X11=false
|
36 |
+
- ENABLE_VNC=true
|
37 |
+
- EXPOSE_X11=true
|
38 |
+
volumes:
|
39 |
+
- ./wdio/assets:/home/webdriver/assets:ro
|
40 |
+
ports:
|
41 |
+
- 127.0.0.1:5901:5900
|
42 |
+
wdio:
|
43 |
+
image: blueimp/wdio
|
44 |
+
init: true
|
45 |
+
read_only: true
|
46 |
+
tmpfs:
|
47 |
+
- /tmp
|
48 |
+
environment:
|
49 |
+
- WAIT_FOR_HOSTS= chromedriver:4444 geckodriver:4444 example:80
|
50 |
+
- WINDOWS_HOST
|
51 |
+
- MACOS_ASSETS_DIR=$PWD/wdio/assets/
|
52 |
+
- WINDOWS_ASSETS_DIR
|
53 |
+
volumes:
|
54 |
+
- ./wdio:/opt:ro
|
55 |
+
- ./wdio/reports:/opt/reports
|
56 |
+
depends_on:
|
57 |
+
- chromedriver
|
58 |
+
- geckodriver
|
59 |
+
- example
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/img/loading.gif
RENAMED
File without changes
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/img/progressbar.gif
RENAMED
File without changes
|
vendors/jQuery-File-Upload/index.html
ADDED
@@ -0,0 +1,368 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<!--
|
3 |
+
/*
|
4 |
+
* jQuery File Upload Demo
|
5 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
6 |
+
*
|
7 |
+
* Copyright 2010, Sebastian Tschan
|
8 |
+
* https://blueimp.net
|
9 |
+
*
|
10 |
+
* Licensed under the MIT license:
|
11 |
+
* https://opensource.org/licenses/MIT
|
12 |
+
*/
|
13 |
+
-->
|
14 |
+
<html lang="en">
|
15 |
+
<head>
|
16 |
+
<!-- Force latest IE rendering engine or ChromeFrame if installed -->
|
17 |
+
<!--[if IE]>
|
18 |
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
19 |
+
<![endif]-->
|
20 |
+
<meta charset="utf-8" />
|
21 |
+
<title>jQuery File Upload Demo</title>
|
22 |
+
<meta
|
23 |
+
name="description"
|
24 |
+
content="File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads."
|
25 |
+
/>
|
26 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
27 |
+
<!-- Bootstrap styles -->
|
28 |
+
<link
|
29 |
+
rel="stylesheet"
|
30 |
+
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
|
31 |
+
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
|
32 |
+
crossorigin="anonymous"
|
33 |
+
/>
|
34 |
+
<!-- Generic page styles -->
|
35 |
+
<style>
|
36 |
+
body {
|
37 |
+
padding-top: 60px;
|
38 |
+
}
|
39 |
+
@media (max-width: 767px) {
|
40 |
+
.description {
|
41 |
+
display: none;
|
42 |
+
}
|
43 |
+
}
|
44 |
+
</style>
|
45 |
+
<!-- blueimp Gallery styles -->
|
46 |
+
<link
|
47 |
+
rel="stylesheet"
|
48 |
+
href="https://blueimp.github.io/Gallery/css/blueimp-gallery.min.css"
|
49 |
+
/>
|
50 |
+
<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
|
51 |
+
<link rel="stylesheet" href="css/jquery.fileupload.css" />
|
52 |
+
<link rel="stylesheet" href="css/jquery.fileupload-ui.css" />
|
53 |
+
<!-- CSS adjustments for browsers with JavaScript disabled -->
|
54 |
+
<noscript
|
55 |
+
><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"
|
56 |
+
/></noscript>
|
57 |
+
<noscript
|
58 |
+
><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"
|
59 |
+
/></noscript>
|
60 |
+
</head>
|
61 |
+
<body>
|
62 |
+
<div class="navbar navbar-default navbar-fixed-top">
|
63 |
+
<div class="container">
|
64 |
+
<div class="navbar-header">
|
65 |
+
<button
|
66 |
+
type="button"
|
67 |
+
class="navbar-toggle"
|
68 |
+
data-toggle="collapse"
|
69 |
+
data-target=".navbar-fixed-top .navbar-collapse"
|
70 |
+
>
|
71 |
+
<span class="icon-bar"></span>
|
72 |
+
<span class="icon-bar"></span>
|
73 |
+
<span class="icon-bar"></span>
|
74 |
+
</button>
|
75 |
+
<a
|
76 |
+
class="navbar-brand"
|
77 |
+
href="https://github.com/blueimp/jQuery-File-Upload"
|
78 |
+
>jQuery File Upload</a
|
79 |
+
>
|
80 |
+
</div>
|
81 |
+
<div class="navbar-collapse collapse">
|
82 |
+
<ul class="nav navbar-nav">
|
83 |
+
<li>
|
84 |
+
<a href="https://github.com/blueimp/jQuery-File-Upload/tags"
|
85 |
+
>Download</a
|
86 |
+
>
|
87 |
+
</li>
|
88 |
+
<li>
|
89 |
+
<a href="https://github.com/blueimp/jQuery-File-Upload"
|
90 |
+
>Source Code</a
|
91 |
+
>
|
92 |
+
</li>
|
93 |
+
<li>
|
94 |
+
<a href="https://github.com/blueimp/jQuery-File-Upload/wiki"
|
95 |
+
>Documentation</a
|
96 |
+
>
|
97 |
+
</li>
|
98 |
+
<li><a href="https://blueimp.net">© Sebastian Tschan</a></li>
|
99 |
+
</ul>
|
100 |
+
</div>
|
101 |
+
</div>
|
102 |
+
</div>
|
103 |
+
<div class="container">
|
104 |
+
<h1>jQuery File Upload Demo</h1>
|
105 |
+
<blockquote class="description">
|
106 |
+
<p>
|
107 |
+
File Upload widget with multiple file selection, drag&drop
|
108 |
+
support, progress bars, validation and preview images, audio and video
|
109 |
+
for jQuery.<br />
|
110 |
+
Supports cross-domain, chunked and resumable file uploads and
|
111 |
+
client-side image resizing.<br />
|
112 |
+
Works with any server-side platform (PHP, Python, Ruby on Rails, Java,
|
113 |
+
Node.js, Go etc.) that supports standard HTML form file uploads.
|
114 |
+
</p>
|
115 |
+
</blockquote>
|
116 |
+
<!-- The file upload form used as target for the file upload widget -->
|
117 |
+
<form
|
118 |
+
id="fileupload"
|
119 |
+
action="https://jquery-file-upload.appspot.com/"
|
120 |
+
method="POST"
|
121 |
+
enctype="multipart/form-data"
|
122 |
+
>
|
123 |
+
<!-- Redirect browsers with JavaScript disabled to the origin page -->
|
124 |
+
<noscript
|
125 |
+
><input
|
126 |
+
type="hidden"
|
127 |
+
name="redirect"
|
128 |
+
value="https://blueimp.github.io/jQuery-File-Upload/"
|
129 |
+
/></noscript>
|
130 |
+
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
131 |
+
<div class="row fileupload-buttonbar">
|
132 |
+
<div class="col-lg-7">
|
133 |
+
<!-- The fileinput-button span is used to style the file input field as button -->
|
134 |
+
<span class="btn btn-success fileinput-button">
|
135 |
+
<i class="glyphicon glyphicon-plus"></i>
|
136 |
+
<span>Add files...</span>
|
137 |
+
<input type="file" name="files[]" multiple />
|
138 |
+
</span>
|
139 |
+
<button type="submit" class="btn btn-primary start">
|
140 |
+
<i class="glyphicon glyphicon-upload"></i>
|
141 |
+
<span>Start upload</span>
|
142 |
+
</button>
|
143 |
+
<button type="reset" class="btn btn-warning cancel">
|
144 |
+
<i class="glyphicon glyphicon-ban-circle"></i>
|
145 |
+
<span>Cancel upload</span>
|
146 |
+
</button>
|
147 |
+
<button type="button" class="btn btn-danger delete">
|
148 |
+
<i class="glyphicon glyphicon-trash"></i>
|
149 |
+
<span>Delete selected</span>
|
150 |
+
</button>
|
151 |
+
<input type="checkbox" class="toggle" />
|
152 |
+
<!-- The global file processing state -->
|
153 |
+
<span class="fileupload-process"></span>
|
154 |
+
</div>
|
155 |
+
<!-- The global progress state -->
|
156 |
+
<div class="col-lg-5 fileupload-progress fade">
|
157 |
+
<!-- The global progress bar -->
|
158 |
+
<div
|
159 |
+
class="progress progress-striped active"
|
160 |
+
role="progressbar"
|
161 |
+
aria-valuemin="0"
|
162 |
+
aria-valuemax="100"
|
163 |
+
>
|
164 |
+
<div
|
165 |
+
class="progress-bar progress-bar-success"
|
166 |
+
style="width:0%;"
|
167 |
+
></div>
|
168 |
+
</div>
|
169 |
+
<!-- The extended global progress state -->
|
170 |
+
<div class="progress-extended"> </div>
|
171 |
+
</div>
|
172 |
+
</div>
|
173 |
+
<!-- The table listing the files available for upload/download -->
|
174 |
+
<table role="presentation" class="table table-striped">
|
175 |
+
<tbody class="files"></tbody>
|
176 |
+
</table>
|
177 |
+
</form>
|
178 |
+
<div class="panel panel-default">
|
179 |
+
<div class="panel-heading">
|
180 |
+
<h3 class="panel-title">Demo Notes</h3>
|
181 |
+
</div>
|
182 |
+
<div class="panel-body">
|
183 |
+
<ul>
|
184 |
+
<li>
|
185 |
+
The maximum file size for uploads in this demo is
|
186 |
+
<strong>999 KB</strong> (default file size is unlimited).
|
187 |
+
</li>
|
188 |
+
<li>
|
189 |
+
Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in
|
190 |
+
this demo (by default there is no file type restriction).
|
191 |
+
</li>
|
192 |
+
<li>
|
193 |
+
Uploaded files will be deleted automatically after
|
194 |
+
<strong>5 minutes or less</strong> (demo files are stored in
|
195 |
+
memory).
|
196 |
+
</li>
|
197 |
+
<li>
|
198 |
+
You can <strong>drag & drop</strong> files from your desktop
|
199 |
+
on this webpage (see
|
200 |
+
<a
|
201 |
+
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support"
|
202 |
+
>Browser support</a
|
203 |
+
>).
|
204 |
+
</li>
|
205 |
+
<li>
|
206 |
+
Please refer to the
|
207 |
+
<a href="https://github.com/blueimp/jQuery-File-Upload"
|
208 |
+
>project website</a
|
209 |
+
>
|
210 |
+
and
|
211 |
+
<a href="https://github.com/blueimp/jQuery-File-Upload/wiki"
|
212 |
+
>documentation</a
|
213 |
+
>
|
214 |
+
for more information.
|
215 |
+
</li>
|
216 |
+
<li>
|
217 |
+
Built with the
|
218 |
+
<a href="https://getbootstrap.com/">Bootstrap</a> CSS framework
|
219 |
+
and Icons from <a href="https://glyphicons.com/">Glyphicons</a>.
|
220 |
+
</li>
|
221 |
+
</ul>
|
222 |
+
</div>
|
223 |
+
</div>
|
224 |
+
</div>
|
225 |
+
<!-- The blueimp Gallery widget -->
|
226 |
+
<div
|
227 |
+
id="blueimp-gallery"
|
228 |
+
class="blueimp-gallery blueimp-gallery-controls"
|
229 |
+
data-filter=":even"
|
230 |
+
>
|
231 |
+
<div class="slides"></div>
|
232 |
+
<h3 class="title"></h3>
|
233 |
+
<a class="prev">‹</a>
|
234 |
+
<a class="next">›</a>
|
235 |
+
<a class="close">×</a>
|
236 |
+
<a class="play-pause"></a>
|
237 |
+
<ol class="indicator"></ol>
|
238 |
+
</div>
|
239 |
+
<!-- The template to display files available for upload -->
|
240 |
+
<script id="template-upload" type="text/x-tmpl">
|
241 |
+
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
242 |
+
<tr class="template-upload fade">
|
243 |
+
<td>
|
244 |
+
<span class="preview"></span>
|
245 |
+
</td>
|
246 |
+
<td>
|
247 |
+
{% if (window.innerWidth > 480 || !o.options.loadImageFileTypes.test(file.type)) { %}
|
248 |
+
<p class="name">{%=file.name%}</p>
|
249 |
+
{% } %}
|
250 |
+
<strong class="error text-danger"></strong>
|
251 |
+
</td>
|
252 |
+
<td>
|
253 |
+
<p class="size">Processing...</p>
|
254 |
+
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
|
255 |
+
</td>
|
256 |
+
<td>
|
257 |
+
{% if (!o.options.autoUpload && o.options.edit && o.options.loadImageFileTypes.test(file.type)) { %}
|
258 |
+
<button class="btn btn-success edit" data-index="{%=i%}" disabled>
|
259 |
+
<i class="glyphicon glyphicon-edit"></i>
|
260 |
+
<span>Edit</span>
|
261 |
+
</button>
|
262 |
+
{% } %}
|
263 |
+
{% if (!i && !o.options.autoUpload) { %}
|
264 |
+
<button class="btn btn-primary start" disabled>
|
265 |
+
<i class="glyphicon glyphicon-upload"></i>
|
266 |
+
<span>Start</span>
|
267 |
+
</button>
|
268 |
+
{% } %}
|
269 |
+
{% if (!i) { %}
|
270 |
+
<button class="btn btn-warning cancel">
|
271 |
+
<i class="glyphicon glyphicon-ban-circle"></i>
|
272 |
+
<span>Cancel</span>
|
273 |
+
</button>
|
274 |
+
{% } %}
|
275 |
+
</td>
|
276 |
+
</tr>
|
277 |
+
{% } %}
|
278 |
+
</script>
|
279 |
+
<!-- The template to display files available for download -->
|
280 |
+
<script id="template-download" type="text/x-tmpl">
|
281 |
+
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
282 |
+
<tr class="template-download fade">
|
283 |
+
<td>
|
284 |
+
<span class="preview">
|
285 |
+
{% if (file.thumbnailUrl) { %}
|
286 |
+
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
|
287 |
+
{% } %}
|
288 |
+
</span>
|
289 |
+
</td>
|
290 |
+
<td>
|
291 |
+
{% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
|
292 |
+
<p class="name">
|
293 |
+
{% if (file.url) { %}
|
294 |
+
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
|
295 |
+
{% } else { %}
|
296 |
+
<span>{%=file.name%}</span>
|
297 |
+
{% } %}
|
298 |
+
</p>
|
299 |
+
{% } %}
|
300 |
+
{% if (file.error) { %}
|
301 |
+
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
|
302 |
+
{% } %}
|
303 |
+
</td>
|
304 |
+
<td>
|
305 |
+
<span class="size">{%=o.formatFileSize(file.size)%}</span>
|
306 |
+
</td>
|
307 |
+
<td>
|
308 |
+
{% if (file.deleteUrl) { %}
|
309 |
+
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
|
310 |
+
<i class="glyphicon glyphicon-trash"></i>
|
311 |
+
<span>Delete</span>
|
312 |
+
</button>
|
313 |
+
<input type="checkbox" name="delete" value="1" class="toggle">
|
314 |
+
{% } else { %}
|
315 |
+
<button class="btn btn-warning cancel">
|
316 |
+
<i class="glyphicon glyphicon-ban-circle"></i>
|
317 |
+
<span>Cancel</span>
|
318 |
+
</button>
|
319 |
+
{% } %}
|
320 |
+
</td>
|
321 |
+
</tr>
|
322 |
+
{% } %}
|
323 |
+
</script>
|
324 |
+
<script
|
325 |
+
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
|
326 |
+
integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f"
|
327 |
+
crossorigin="anonymous"
|
328 |
+
></script>
|
329 |
+
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
|
330 |
+
<script src="js/vendor/jquery.ui.widget.js"></script>
|
331 |
+
<!-- The Templates plugin is included to render the upload/download listings -->
|
332 |
+
<script src="https://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
|
333 |
+
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
|
334 |
+
<script src="https://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
|
335 |
+
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
|
336 |
+
<script src="https://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
|
337 |
+
<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
|
338 |
+
<script
|
339 |
+
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
|
340 |
+
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
|
341 |
+
crossorigin="anonymous"
|
342 |
+
></script>
|
343 |
+
<!-- blueimp Gallery script -->
|
344 |
+
<script src="https://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
|
345 |
+
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
|
346 |
+
<script src="js/jquery.iframe-transport.js"></script>
|
347 |
+
<!-- The basic File Upload plugin -->
|
348 |
+
<script src="js/jquery.fileupload.js"></script>
|
349 |
+
<!-- The File Upload processing plugin -->
|
350 |
+
<script src="js/jquery.fileupload-process.js"></script>
|
351 |
+
<!-- The File Upload image preview & resize plugin -->
|
352 |
+
<script src="js/jquery.fileupload-image.js"></script>
|
353 |
+
<!-- The File Upload audio preview plugin -->
|
354 |
+
<script src="js/jquery.fileupload-audio.js"></script>
|
355 |
+
<!-- The File Upload video preview plugin -->
|
356 |
+
<script src="js/jquery.fileupload-video.js"></script>
|
357 |
+
<!-- The File Upload validation plugin -->
|
358 |
+
<script src="js/jquery.fileupload-validate.js"></script>
|
359 |
+
<!-- The File Upload user interface plugin -->
|
360 |
+
<script src="js/jquery.fileupload-ui.js"></script>
|
361 |
+
<!-- The main application script -->
|
362 |
+
<script src="js/demo.js"></script>
|
363 |
+
<!-- The XDomainRequest Transport is included for cross-domain file deletion for IE 8 and IE 9 -->
|
364 |
+
<!--[if (gte IE 8)&(lt IE 10)]>
|
365 |
+
<script src="js/cors/jquery.xdr-transport.js"></script>
|
366 |
+
<![endif]-->
|
367 |
+
</body>
|
368 |
+
</html>
|
vendors/jQuery-File-Upload/js/cors/jquery.postmessage-transport.js
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery postMessage Transport Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2011, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(require('jquery'));
|
22 |
+
} else {
|
23 |
+
// Browser globals:
|
24 |
+
factory(window.jQuery);
|
25 |
+
}
|
26 |
+
})(function($) {
|
27 |
+
'use strict';
|
28 |
+
|
29 |
+
var counter = 0,
|
30 |
+
names = [
|
31 |
+
'accepts',
|
32 |
+
'cache',
|
33 |
+
'contents',
|
34 |
+
'contentType',
|
35 |
+
'crossDomain',
|
36 |
+
'data',
|
37 |
+
'dataType',
|
38 |
+
'headers',
|
39 |
+
'ifModified',
|
40 |
+
'mimeType',
|
41 |
+
'password',
|
42 |
+
'processData',
|
43 |
+
'timeout',
|
44 |
+
'traditional',
|
45 |
+
'type',
|
46 |
+
'url',
|
47 |
+
'username'
|
48 |
+
],
|
49 |
+
convert = function(p) {
|
50 |
+
return p;
|
51 |
+
};
|
52 |
+
|
53 |
+
$.ajaxSetup({
|
54 |
+
converters: {
|
55 |
+
'postmessage text': convert,
|
56 |
+
'postmessage json': convert,
|
57 |
+
'postmessage html': convert
|
58 |
+
}
|
59 |
+
});
|
60 |
+
|
61 |
+
$.ajaxTransport('postmessage', function(options) {
|
62 |
+
if (options.postMessage && window.postMessage) {
|
63 |
+
var iframe,
|
64 |
+
loc = $('<a>').prop('href', options.postMessage)[0],
|
65 |
+
target = loc.protocol + '//' + loc.host,
|
66 |
+
xhrUpload = options.xhr().upload;
|
67 |
+
// IE always includes the port for the host property of a link
|
68 |
+
// element, but not in the location.host or origin property for the
|
69 |
+
// default http port 80 and https port 443, so we strip it:
|
70 |
+
if (/^(http:\/\/.+:80)|(https:\/\/.+:443)$/.test(target)) {
|
71 |
+
target = target.replace(/:(80|443)$/, '');
|
72 |
+
}
|
73 |
+
return {
|
74 |
+
send: function(_, completeCallback) {
|
75 |
+
counter += 1;
|
76 |
+
var message = {
|
77 |
+
id: 'postmessage-transport-' + counter
|
78 |
+
},
|
79 |
+
eventName = 'message.' + message.id;
|
80 |
+
iframe = $(
|
81 |
+
'<iframe style="display:none;" src="' +
|
82 |
+
options.postMessage +
|
83 |
+
'" name="' +
|
84 |
+
message.id +
|
85 |
+
'"></iframe>'
|
86 |
+
)
|
87 |
+
.bind('load', function() {
|
88 |
+
$.each(names, function(i, name) {
|
89 |
+
message[name] = options[name];
|
90 |
+
});
|
91 |
+
message.dataType = message.dataType.replace('postmessage ', '');
|
92 |
+
$(window).bind(eventName, function(event) {
|
93 |
+
var e = event.originalEvent;
|
94 |
+
var data = e.data;
|
95 |
+
var ev;
|
96 |
+
if (e.origin === target && data.id === message.id) {
|
97 |
+
if (data.type === 'progress') {
|
98 |
+
ev = document.createEvent('Event');
|
99 |
+
ev.initEvent(data.type, false, true);
|
100 |
+
$.extend(ev, data);
|
101 |
+
xhrUpload.dispatchEvent(ev);
|
102 |
+
} else {
|
103 |
+
completeCallback(
|
104 |
+
data.status,
|
105 |
+
data.statusText,
|
106 |
+
{ postmessage: data.result },
|
107 |
+
data.headers
|
108 |
+
);
|
109 |
+
iframe.remove();
|
110 |
+
$(window).unbind(eventName);
|
111 |
+
}
|
112 |
+
}
|
113 |
+
});
|
114 |
+
iframe[0].contentWindow.postMessage(message, target);
|
115 |
+
})
|
116 |
+
.appendTo(document.body);
|
117 |
+
},
|
118 |
+
abort: function() {
|
119 |
+
if (iframe) {
|
120 |
+
iframe.remove();
|
121 |
+
}
|
122 |
+
}
|
123 |
+
};
|
124 |
+
}
|
125 |
+
});
|
126 |
+
});
|
vendors/jQuery-File-Upload/js/cors/jquery.xdr-transport.js
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery XDomainRequest Transport Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2011, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*
|
11 |
+
* Based on Julian Aubourg's ajaxHooks xdr.js:
|
12 |
+
* https://github.com/jaubourg/ajaxHooks/
|
13 |
+
*/
|
14 |
+
|
15 |
+
/* global define, require, XDomainRequest */
|
16 |
+
|
17 |
+
(function(factory) {
|
18 |
+
'use strict';
|
19 |
+
if (typeof define === 'function' && define.amd) {
|
20 |
+
// Register as an anonymous AMD module:
|
21 |
+
define(['jquery'], factory);
|
22 |
+
} else if (typeof exports === 'object') {
|
23 |
+
// Node/CommonJS:
|
24 |
+
factory(require('jquery'));
|
25 |
+
} else {
|
26 |
+
// Browser globals:
|
27 |
+
factory(window.jQuery);
|
28 |
+
}
|
29 |
+
})(function($) {
|
30 |
+
'use strict';
|
31 |
+
if (window.XDomainRequest && !$.support.cors) {
|
32 |
+
$.ajaxTransport(function(s) {
|
33 |
+
if (s.crossDomain && s.async) {
|
34 |
+
if (s.timeout) {
|
35 |
+
s.xdrTimeout = s.timeout;
|
36 |
+
delete s.timeout;
|
37 |
+
}
|
38 |
+
var xdr;
|
39 |
+
return {
|
40 |
+
send: function(headers, completeCallback) {
|
41 |
+
var addParamChar = /\?/.test(s.url) ? '&' : '?';
|
42 |
+
/**
|
43 |
+
* Callback wrapper function
|
44 |
+
*
|
45 |
+
* @param {number} status HTTP status code
|
46 |
+
* @param {string} statusText HTTP status text
|
47 |
+
* @param {object} [responses] Content-type specific responses
|
48 |
+
* @param {string} [responseHeaders] Response headers string
|
49 |
+
*/
|
50 |
+
function callback(status, statusText, responses, responseHeaders) {
|
51 |
+
xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
|
52 |
+
xdr = null;
|
53 |
+
completeCallback(status, statusText, responses, responseHeaders);
|
54 |
+
}
|
55 |
+
xdr = new XDomainRequest();
|
56 |
+
// XDomainRequest only supports GET and POST:
|
57 |
+
if (s.type === 'DELETE') {
|
58 |
+
s.url = s.url + addParamChar + '_method=DELETE';
|
59 |
+
s.type = 'POST';
|
60 |
+
} else if (s.type === 'PUT') {
|
61 |
+
s.url = s.url + addParamChar + '_method=PUT';
|
62 |
+
s.type = 'POST';
|
63 |
+
} else if (s.type === 'PATCH') {
|
64 |
+
s.url = s.url + addParamChar + '_method=PATCH';
|
65 |
+
s.type = 'POST';
|
66 |
+
}
|
67 |
+
xdr.open(s.type, s.url);
|
68 |
+
xdr.onload = function() {
|
69 |
+
callback(
|
70 |
+
200,
|
71 |
+
'OK',
|
72 |
+
{ text: xdr.responseText },
|
73 |
+
'Content-Type: ' + xdr.contentType
|
74 |
+
);
|
75 |
+
};
|
76 |
+
xdr.onerror = function() {
|
77 |
+
callback(404, 'Not Found');
|
78 |
+
};
|
79 |
+
if (s.xdrTimeout) {
|
80 |
+
xdr.ontimeout = function() {
|
81 |
+
callback(0, 'timeout');
|
82 |
+
};
|
83 |
+
xdr.timeout = s.xdrTimeout;
|
84 |
+
}
|
85 |
+
xdr.send((s.hasContent && s.data) || null);
|
86 |
+
},
|
87 |
+
abort: function() {
|
88 |
+
if (xdr) {
|
89 |
+
xdr.onerror = $.noop();
|
90 |
+
xdr.abort();
|
91 |
+
}
|
92 |
+
}
|
93 |
+
};
|
94 |
+
}
|
95 |
+
});
|
96 |
+
}
|
97 |
+
});
|
vendors/jQuery-File-Upload/js/demo.js
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Demo
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2010, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global $ */
|
13 |
+
|
14 |
+
$(function() {
|
15 |
+
'use strict';
|
16 |
+
|
17 |
+
// Initialize the jQuery File Upload widget:
|
18 |
+
$('#fileupload').fileupload({
|
19 |
+
// Uncomment the following to send cross-domain cookies:
|
20 |
+
//xhrFields: {withCredentials: true},
|
21 |
+
url: 'server/php/'
|
22 |
+
});
|
23 |
+
|
24 |
+
// Enable iframe cross-domain access via redirect option:
|
25 |
+
$('#fileupload').fileupload(
|
26 |
+
'option',
|
27 |
+
'redirect',
|
28 |
+
window.location.href.replace(/\/[^/]*$/, '/cors/result.html?%s')
|
29 |
+
);
|
30 |
+
|
31 |
+
if (window.location.hostname === 'blueimp.github.io') {
|
32 |
+
// Demo settings:
|
33 |
+
$('#fileupload').fileupload('option', {
|
34 |
+
url: '//jquery-file-upload.appspot.com/',
|
35 |
+
// Enable image resizing, except for Android and Opera,
|
36 |
+
// which actually support image resizing, but fail to
|
37 |
+
// send Blob objects via XHR requests:
|
38 |
+
disableImageResize: /Android(?!.*Chrome)|Opera/.test(
|
39 |
+
window.navigator.userAgent
|
40 |
+
),
|
41 |
+
maxFileSize: 999000,
|
42 |
+
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
|
43 |
+
});
|
44 |
+
// Upload server status check for browsers with CORS support:
|
45 |
+
if ($.support.cors) {
|
46 |
+
$.ajax({
|
47 |
+
url: '//jquery-file-upload.appspot.com/',
|
48 |
+
type: 'HEAD'
|
49 |
+
}).fail(function() {
|
50 |
+
$('<div class="alert alert-danger"/>')
|
51 |
+
.text('Upload server currently unavailable - ' + new Date())
|
52 |
+
.appendTo('#fileupload');
|
53 |
+
});
|
54 |
+
}
|
55 |
+
} else {
|
56 |
+
// Load existing files:
|
57 |
+
$('#fileupload').addClass('fileupload-processing');
|
58 |
+
$.ajax({
|
59 |
+
// Uncomment the following to send cross-domain cookies:
|
60 |
+
//xhrFields: {withCredentials: true},
|
61 |
+
url: $('#fileupload').fileupload('option', 'url'),
|
62 |
+
dataType: 'json',
|
63 |
+
context: $('#fileupload')[0]
|
64 |
+
})
|
65 |
+
.always(function() {
|
66 |
+
$(this).removeClass('fileupload-processing');
|
67 |
+
})
|
68 |
+
.done(function(result) {
|
69 |
+
$(this)
|
70 |
+
.fileupload('option', 'done')
|
71 |
+
// eslint-disable-next-line new-cap
|
72 |
+
.call(this, $.Event('done'), { result: result });
|
73 |
+
});
|
74 |
+
}
|
75 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-audio.js
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Audio Preview Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2013, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery', 'load-image', './jquery.fileupload-process'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(
|
22 |
+
require('jquery'),
|
23 |
+
require('blueimp-load-image/js/load-image'),
|
24 |
+
require('./jquery.fileupload-process')
|
25 |
+
);
|
26 |
+
} else {
|
27 |
+
// Browser globals:
|
28 |
+
factory(window.jQuery, window.loadImage);
|
29 |
+
}
|
30 |
+
})(function($, loadImage) {
|
31 |
+
'use strict';
|
32 |
+
|
33 |
+
// Prepend to the default processQueue:
|
34 |
+
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
35 |
+
{
|
36 |
+
action: 'loadAudio',
|
37 |
+
// Use the action as prefix for the "@" options:
|
38 |
+
prefix: true,
|
39 |
+
fileTypes: '@',
|
40 |
+
maxFileSize: '@',
|
41 |
+
disabled: '@disableAudioPreview'
|
42 |
+
},
|
43 |
+
{
|
44 |
+
action: 'setAudio',
|
45 |
+
name: '@audioPreviewName',
|
46 |
+
disabled: '@disableAudioPreview'
|
47 |
+
}
|
48 |
+
);
|
49 |
+
|
50 |
+
// The File Upload Audio Preview plugin extends the fileupload widget
|
51 |
+
// with audio preview functionality:
|
52 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
53 |
+
options: {
|
54 |
+
// The regular expression for the types of audio files to load,
|
55 |
+
// matched against the file type:
|
56 |
+
loadAudioFileTypes: /^audio\/.*$/
|
57 |
+
},
|
58 |
+
|
59 |
+
_audioElement: document.createElement('audio'),
|
60 |
+
|
61 |
+
processActions: {
|
62 |
+
// Loads the audio file given via data.files and data.index
|
63 |
+
// as audio element if the browser supports playing it.
|
64 |
+
// Accepts the options fileTypes (regular expression)
|
65 |
+
// and maxFileSize (integer) to limit the files to load:
|
66 |
+
loadAudio: function(data, options) {
|
67 |
+
if (options.disabled) {
|
68 |
+
return data;
|
69 |
+
}
|
70 |
+
var file = data.files[data.index],
|
71 |
+
url,
|
72 |
+
audio;
|
73 |
+
if (
|
74 |
+
this._audioElement.canPlayType &&
|
75 |
+
this._audioElement.canPlayType(file.type) &&
|
76 |
+
($.type(options.maxFileSize) !== 'number' ||
|
77 |
+
file.size <= options.maxFileSize) &&
|
78 |
+
(!options.fileTypes || options.fileTypes.test(file.type))
|
79 |
+
) {
|
80 |
+
url = loadImage.createObjectURL(file);
|
81 |
+
if (url) {
|
82 |
+
audio = this._audioElement.cloneNode(false);
|
83 |
+
audio.src = url;
|
84 |
+
audio.controls = true;
|
85 |
+
data.audio = audio;
|
86 |
+
return data;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
return data;
|
90 |
+
},
|
91 |
+
|
92 |
+
// Sets the audio element as a property of the file object:
|
93 |
+
setAudio: function(data, options) {
|
94 |
+
if (data.audio && !options.disabled) {
|
95 |
+
data.files[data.index][options.name || 'preview'] = data.audio;
|
96 |
+
}
|
97 |
+
return data;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
});
|
101 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-image.js
ADDED
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Image Preview & Resize Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2013, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define([
|
19 |
+
'jquery',
|
20 |
+
'load-image',
|
21 |
+
'load-image-meta',
|
22 |
+
'load-image-scale',
|
23 |
+
'load-image-exif',
|
24 |
+
'canvas-to-blob',
|
25 |
+
'./jquery.fileupload-process'
|
26 |
+
], factory);
|
27 |
+
} else if (typeof exports === 'object') {
|
28 |
+
// Node/CommonJS:
|
29 |
+
factory(
|
30 |
+
require('jquery'),
|
31 |
+
require('blueimp-load-image/js/load-image'),
|
32 |
+
require('blueimp-load-image/js/load-image-meta'),
|
33 |
+
require('blueimp-load-image/js/load-image-scale'),
|
34 |
+
require('blueimp-load-image/js/load-image-exif'),
|
35 |
+
require('blueimp-canvas-to-blob'),
|
36 |
+
require('./jquery.fileupload-process')
|
37 |
+
);
|
38 |
+
} else {
|
39 |
+
// Browser globals:
|
40 |
+
factory(window.jQuery, window.loadImage);
|
41 |
+
}
|
42 |
+
})(function($, loadImage) {
|
43 |
+
'use strict';
|
44 |
+
|
45 |
+
// Prepend to the default processQueue:
|
46 |
+
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
47 |
+
{
|
48 |
+
action: 'loadImageMetaData',
|
49 |
+
disableImageHead: '@',
|
50 |
+
disableExif: '@',
|
51 |
+
disableExifThumbnail: '@',
|
52 |
+
disableExifSub: '@',
|
53 |
+
disableExifGps: '@',
|
54 |
+
disabled: '@disableImageMetaDataLoad'
|
55 |
+
},
|
56 |
+
{
|
57 |
+
action: 'loadImage',
|
58 |
+
// Use the action as prefix for the "@" options:
|
59 |
+
prefix: true,
|
60 |
+
fileTypes: '@',
|
61 |
+
maxFileSize: '@',
|
62 |
+
noRevoke: '@',
|
63 |
+
disabled: '@disableImageLoad'
|
64 |
+
},
|
65 |
+
{
|
66 |
+
action: 'resizeImage',
|
67 |
+
// Use "image" as prefix for the "@" options:
|
68 |
+
prefix: 'image',
|
69 |
+
maxWidth: '@',
|
70 |
+
maxHeight: '@',
|
71 |
+
minWidth: '@',
|
72 |
+
minHeight: '@',
|
73 |
+
crop: '@',
|
74 |
+
orientation: '@',
|
75 |
+
forceResize: '@',
|
76 |
+
disabled: '@disableImageResize'
|
77 |
+
},
|
78 |
+
{
|
79 |
+
action: 'saveImage',
|
80 |
+
quality: '@imageQuality',
|
81 |
+
type: '@imageType',
|
82 |
+
disabled: '@disableImageResize'
|
83 |
+
},
|
84 |
+
{
|
85 |
+
action: 'saveImageMetaData',
|
86 |
+
disabled: '@disableImageMetaDataSave'
|
87 |
+
},
|
88 |
+
{
|
89 |
+
action: 'resizeImage',
|
90 |
+
// Use "preview" as prefix for the "@" options:
|
91 |
+
prefix: 'preview',
|
92 |
+
maxWidth: '@',
|
93 |
+
maxHeight: '@',
|
94 |
+
minWidth: '@',
|
95 |
+
minHeight: '@',
|
96 |
+
crop: '@',
|
97 |
+
orientation: '@',
|
98 |
+
thumbnail: '@',
|
99 |
+
canvas: '@',
|
100 |
+
disabled: '@disableImagePreview'
|
101 |
+
},
|
102 |
+
{
|
103 |
+
action: 'setImage',
|
104 |
+
name: '@imagePreviewName',
|
105 |
+
disabled: '@disableImagePreview'
|
106 |
+
},
|
107 |
+
{
|
108 |
+
action: 'deleteImageReferences',
|
109 |
+
disabled: '@disableImageReferencesDeletion'
|
110 |
+
}
|
111 |
+
);
|
112 |
+
|
113 |
+
// The File Upload Resize plugin extends the fileupload widget
|
114 |
+
// with image resize functionality:
|
115 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
116 |
+
options: {
|
117 |
+
// The regular expression for the types of images to load:
|
118 |
+
// matched against the file type:
|
119 |
+
loadImageFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/,
|
120 |
+
// The maximum file size of images to load:
|
121 |
+
loadImageMaxFileSize: 10000000, // 10MB
|
122 |
+
// The maximum width of resized images:
|
123 |
+
imageMaxWidth: 1920,
|
124 |
+
// The maximum height of resized images:
|
125 |
+
imageMaxHeight: 1080,
|
126 |
+
// Defines the image orientation (1-8) or takes the orientation
|
127 |
+
// value from Exif data if set to true:
|
128 |
+
imageOrientation: false,
|
129 |
+
// Define if resized images should be cropped or only scaled:
|
130 |
+
imageCrop: false,
|
131 |
+
// Disable the resize image functionality by default:
|
132 |
+
disableImageResize: true,
|
133 |
+
// The maximum width of the preview images:
|
134 |
+
previewMaxWidth: 80,
|
135 |
+
// The maximum height of the preview images:
|
136 |
+
previewMaxHeight: 80,
|
137 |
+
// Defines the preview orientation (1-8) or takes the orientation
|
138 |
+
// value from Exif data if set to true:
|
139 |
+
previewOrientation: true,
|
140 |
+
// Create the preview using the Exif data thumbnail:
|
141 |
+
previewThumbnail: true,
|
142 |
+
// Define if preview images should be cropped or only scaled:
|
143 |
+
previewCrop: false,
|
144 |
+
// Define if preview images should be resized as canvas elements:
|
145 |
+
previewCanvas: true
|
146 |
+
},
|
147 |
+
|
148 |
+
processActions: {
|
149 |
+
// Loads the image given via data.files and data.index
|
150 |
+
// as img element, if the browser supports the File API.
|
151 |
+
// Accepts the options fileTypes (regular expression)
|
152 |
+
// and maxFileSize (integer) to limit the files to load:
|
153 |
+
loadImage: function(data, options) {
|
154 |
+
if (options.disabled) {
|
155 |
+
return data;
|
156 |
+
}
|
157 |
+
var that = this,
|
158 |
+
file = data.files[data.index],
|
159 |
+
// eslint-disable-next-line new-cap
|
160 |
+
dfd = $.Deferred();
|
161 |
+
if (
|
162 |
+
($.type(options.maxFileSize) === 'number' &&
|
163 |
+
file.size > options.maxFileSize) ||
|
164 |
+
(options.fileTypes && !options.fileTypes.test(file.type)) ||
|
165 |
+
!loadImage(
|
166 |
+
file,
|
167 |
+
function(img) {
|
168 |
+
if (img.src) {
|
169 |
+
data.img = img;
|
170 |
+
}
|
171 |
+
dfd.resolveWith(that, [data]);
|
172 |
+
},
|
173 |
+
options
|
174 |
+
)
|
175 |
+
) {
|
176 |
+
return data;
|
177 |
+
}
|
178 |
+
return dfd.promise();
|
179 |
+
},
|
180 |
+
|
181 |
+
// Resizes the image given as data.canvas or data.img
|
182 |
+
// and updates data.canvas or data.img with the resized image.
|
183 |
+
// Also stores the resized image as preview property.
|
184 |
+
// Accepts the options maxWidth, maxHeight, minWidth,
|
185 |
+
// minHeight, canvas and crop:
|
186 |
+
resizeImage: function(data, options) {
|
187 |
+
if (options.disabled || !(data.canvas || data.img)) {
|
188 |
+
return data;
|
189 |
+
}
|
190 |
+
// eslint-disable-next-line no-param-reassign
|
191 |
+
options = $.extend({ canvas: true }, options);
|
192 |
+
var that = this,
|
193 |
+
// eslint-disable-next-line new-cap
|
194 |
+
dfd = $.Deferred(),
|
195 |
+
img = (options.canvas && data.canvas) || data.img,
|
196 |
+
resolve = function(newImg) {
|
197 |
+
if (
|
198 |
+
newImg &&
|
199 |
+
(newImg.width !== img.width ||
|
200 |
+
newImg.height !== img.height ||
|
201 |
+
options.forceResize)
|
202 |
+
) {
|
203 |
+
data[newImg.getContext ? 'canvas' : 'img'] = newImg;
|
204 |
+
}
|
205 |
+
data.preview = newImg;
|
206 |
+
dfd.resolveWith(that, [data]);
|
207 |
+
},
|
208 |
+
thumbnail;
|
209 |
+
if (data.exif) {
|
210 |
+
if (options.orientation === true) {
|
211 |
+
options.orientation = data.exif.get('Orientation');
|
212 |
+
}
|
213 |
+
if (options.thumbnail) {
|
214 |
+
thumbnail = data.exif.get('Thumbnail');
|
215 |
+
if (thumbnail) {
|
216 |
+
loadImage(thumbnail, resolve, options);
|
217 |
+
return dfd.promise();
|
218 |
+
}
|
219 |
+
}
|
220 |
+
// Prevent orienting the same image twice:
|
221 |
+
if (data.orientation) {
|
222 |
+
delete options.orientation;
|
223 |
+
} else {
|
224 |
+
data.orientation = options.orientation;
|
225 |
+
}
|
226 |
+
}
|
227 |
+
if (img) {
|
228 |
+
resolve(loadImage.scale(img, options));
|
229 |
+
return dfd.promise();
|
230 |
+
}
|
231 |
+
return data;
|
232 |
+
},
|
233 |
+
|
234 |
+
// Saves the processed image given as data.canvas
|
235 |
+
// inplace at data.index of data.files:
|
236 |
+
saveImage: function(data, options) {
|
237 |
+
if (!data.canvas || options.disabled) {
|
238 |
+
return data;
|
239 |
+
}
|
240 |
+
var that = this,
|
241 |
+
file = data.files[data.index],
|
242 |
+
// eslint-disable-next-line new-cap
|
243 |
+
dfd = $.Deferred();
|
244 |
+
if (data.canvas.toBlob) {
|
245 |
+
data.canvas.toBlob(
|
246 |
+
function(blob) {
|
247 |
+
if (!blob.name) {
|
248 |
+
if (file.type === blob.type) {
|
249 |
+
blob.name = file.name;
|
250 |
+
} else if (file.name) {
|
251 |
+
blob.name = file.name.replace(
|
252 |
+
/\.\w+$/,
|
253 |
+
'.' + blob.type.substr(6)
|
254 |
+
);
|
255 |
+
}
|
256 |
+
}
|
257 |
+
// Don't restore invalid meta data:
|
258 |
+
if (file.type !== blob.type) {
|
259 |
+
delete data.imageHead;
|
260 |
+
}
|
261 |
+
// Store the created blob at the position
|
262 |
+
// of the original file in the files list:
|
263 |
+
data.files[data.index] = blob;
|
264 |
+
dfd.resolveWith(that, [data]);
|
265 |
+
},
|
266 |
+
options.type || file.type,
|
267 |
+
options.quality
|
268 |
+
);
|
269 |
+
} else {
|
270 |
+
return data;
|
271 |
+
}
|
272 |
+
return dfd.promise();
|
273 |
+
},
|
274 |
+
|
275 |
+
loadImageMetaData: function(data, options) {
|
276 |
+
if (options.disabled) {
|
277 |
+
return data;
|
278 |
+
}
|
279 |
+
var that = this,
|
280 |
+
// eslint-disable-next-line new-cap
|
281 |
+
dfd = $.Deferred();
|
282 |
+
loadImage.parseMetaData(
|
283 |
+
data.files[data.index],
|
284 |
+
function(result) {
|
285 |
+
$.extend(data, result);
|
286 |
+
dfd.resolveWith(that, [data]);
|
287 |
+
},
|
288 |
+
options
|
289 |
+
);
|
290 |
+
return dfd.promise();
|
291 |
+
},
|
292 |
+
|
293 |
+
saveImageMetaData: function(data, options) {
|
294 |
+
if (
|
295 |
+
!(
|
296 |
+
data.imageHead &&
|
297 |
+
data.canvas &&
|
298 |
+
data.canvas.toBlob &&
|
299 |
+
!options.disabled
|
300 |
+
)
|
301 |
+
) {
|
302 |
+
return data;
|
303 |
+
}
|
304 |
+
var file = data.files[data.index],
|
305 |
+
blob = new Blob(
|
306 |
+
[
|
307 |
+
data.imageHead,
|
308 |
+
// Resized images always have a head size of 20 bytes,
|
309 |
+
// including the JPEG marker and a minimal JFIF header:
|
310 |
+
this._blobSlice.call(file, 20)
|
311 |
+
],
|
312 |
+
{ type: file.type }
|
313 |
+
);
|
314 |
+
blob.name = file.name;
|
315 |
+
data.files[data.index] = blob;
|
316 |
+
return data;
|
317 |
+
},
|
318 |
+
|
319 |
+
// Sets the resized version of the image as a property of the
|
320 |
+
// file object, must be called after "saveImage":
|
321 |
+
setImage: function(data, options) {
|
322 |
+
if (data.preview && !options.disabled) {
|
323 |
+
data.files[data.index][options.name || 'preview'] = data.preview;
|
324 |
+
}
|
325 |
+
return data;
|
326 |
+
},
|
327 |
+
|
328 |
+
deleteImageReferences: function(data, options) {
|
329 |
+
if (!options.disabled) {
|
330 |
+
delete data.img;
|
331 |
+
delete data.canvas;
|
332 |
+
delete data.preview;
|
333 |
+
delete data.imageHead;
|
334 |
+
}
|
335 |
+
return data;
|
336 |
+
}
|
337 |
+
}
|
338 |
+
});
|
339 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-process.js
ADDED
@@ -0,0 +1,175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Processing Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2012, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery', './jquery.fileupload'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(require('jquery'), require('./jquery.fileupload'));
|
22 |
+
} else {
|
23 |
+
// Browser globals:
|
24 |
+
factory(window.jQuery);
|
25 |
+
}
|
26 |
+
})(function($) {
|
27 |
+
'use strict';
|
28 |
+
|
29 |
+
var originalAdd = $.blueimp.fileupload.prototype.options.add;
|
30 |
+
|
31 |
+
// The File Upload Processing plugin extends the fileupload widget
|
32 |
+
// with file processing functionality:
|
33 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
34 |
+
options: {
|
35 |
+
// The list of processing actions:
|
36 |
+
processQueue: [
|
37 |
+
/*
|
38 |
+
{
|
39 |
+
action: 'log',
|
40 |
+
type: 'debug'
|
41 |
+
}
|
42 |
+
*/
|
43 |
+
],
|
44 |
+
add: function(e, data) {
|
45 |
+
var $this = $(this);
|
46 |
+
data.process(function() {
|
47 |
+
return $this.fileupload('process', data);
|
48 |
+
});
|
49 |
+
originalAdd.call(this, e, data);
|
50 |
+
}
|
51 |
+
},
|
52 |
+
|
53 |
+
processActions: {
|
54 |
+
/*
|
55 |
+
log: function (data, options) {
|
56 |
+
console[options.type](
|
57 |
+
'Processing "' + data.files[data.index].name + '"'
|
58 |
+
);
|
59 |
+
}
|
60 |
+
*/
|
61 |
+
},
|
62 |
+
|
63 |
+
_processFile: function(data, originalData) {
|
64 |
+
var that = this,
|
65 |
+
// eslint-disable-next-line new-cap
|
66 |
+
dfd = $.Deferred().resolveWith(that, [data]),
|
67 |
+
chain = dfd.promise();
|
68 |
+
this._trigger('process', null, data);
|
69 |
+
$.each(data.processQueue, function(i, settings) {
|
70 |
+
var func = function(data) {
|
71 |
+
if (originalData.errorThrown) {
|
72 |
+
// eslint-disable-next-line new-cap
|
73 |
+
return $.Deferred()
|
74 |
+
.rejectWith(that, [originalData])
|
75 |
+
.promise();
|
76 |
+
}
|
77 |
+
return that.processActions[settings.action].call(
|
78 |
+
that,
|
79 |
+
data,
|
80 |
+
settings
|
81 |
+
);
|
82 |
+
};
|
83 |
+
chain = chain.then(func, settings.always && func);
|
84 |
+
});
|
85 |
+
chain
|
86 |
+
.done(function() {
|
87 |
+
that._trigger('processdone', null, data);
|
88 |
+
that._trigger('processalways', null, data);
|
89 |
+
})
|
90 |
+
.fail(function() {
|
91 |
+
that._trigger('processfail', null, data);
|
92 |
+
that._trigger('processalways', null, data);
|
93 |
+
});
|
94 |
+
return chain;
|
95 |
+
},
|
96 |
+
|
97 |
+
// Replaces the settings of each processQueue item that
|
98 |
+
// are strings starting with an "@", using the remaining
|
99 |
+
// substring as key for the option map,
|
100 |
+
// e.g. "@autoUpload" is replaced with options.autoUpload:
|
101 |
+
_transformProcessQueue: function(options) {
|
102 |
+
var processQueue = [];
|
103 |
+
$.each(options.processQueue, function() {
|
104 |
+
var settings = {},
|
105 |
+
action = this.action,
|
106 |
+
prefix = this.prefix === true ? action : this.prefix;
|
107 |
+
$.each(this, function(key, value) {
|
108 |
+
if ($.type(value) === 'string' && value.charAt(0) === '@') {
|
109 |
+
settings[key] =
|
110 |
+
options[
|
111 |
+
value.slice(1) ||
|
112 |
+
(prefix
|
113 |
+
? prefix + key.charAt(0).toUpperCase() + key.slice(1)
|
114 |
+
: key)
|
115 |
+
];
|
116 |
+
} else {
|
117 |
+
settings[key] = value;
|
118 |
+
}
|
119 |
+
});
|
120 |
+
processQueue.push(settings);
|
121 |
+
});
|
122 |
+
options.processQueue = processQueue;
|
123 |
+
},
|
124 |
+
|
125 |
+
// Returns the number of files currently in the processsing queue:
|
126 |
+
processing: function() {
|
127 |
+
return this._processing;
|
128 |
+
},
|
129 |
+
|
130 |
+
// Processes the files given as files property of the data parameter,
|
131 |
+
// returns a Promise object that allows to bind callbacks:
|
132 |
+
process: function(data) {
|
133 |
+
var that = this,
|
134 |
+
options = $.extend({}, this.options, data);
|
135 |
+
if (options.processQueue && options.processQueue.length) {
|
136 |
+
this._transformProcessQueue(options);
|
137 |
+
if (this._processing === 0) {
|
138 |
+
this._trigger('processstart');
|
139 |
+
}
|
140 |
+
$.each(data.files, function(index) {
|
141 |
+
var opts = index ? $.extend({}, options) : options,
|
142 |
+
func = function() {
|
143 |
+
if (data.errorThrown) {
|
144 |
+
// eslint-disable-next-line new-cap
|
145 |
+
return $.Deferred()
|
146 |
+
.rejectWith(that, [data])
|
147 |
+
.promise();
|
148 |
+
}
|
149 |
+
return that._processFile(opts, data);
|
150 |
+
};
|
151 |
+
opts.index = index;
|
152 |
+
that._processing += 1;
|
153 |
+
that._processingQueue = that._processingQueue
|
154 |
+
.then(func, func)
|
155 |
+
.always(function() {
|
156 |
+
that._processing -= 1;
|
157 |
+
if (that._processing === 0) {
|
158 |
+
that._trigger('processstop');
|
159 |
+
}
|
160 |
+
});
|
161 |
+
});
|
162 |
+
}
|
163 |
+
return this._processingQueue;
|
164 |
+
},
|
165 |
+
|
166 |
+
_create: function() {
|
167 |
+
this._super();
|
168 |
+
this._processing = 0;
|
169 |
+
// eslint-disable-next-line new-cap
|
170 |
+
this._processingQueue = $.Deferred()
|
171 |
+
.resolveWith(this)
|
172 |
+
.promise();
|
173 |
+
}
|
174 |
+
});
|
175 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-ui.js
ADDED
@@ -0,0 +1,763 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload User Interface Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2010, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define([
|
19 |
+
'jquery',
|
20 |
+
'blueimp-tmpl',
|
21 |
+
'./jquery.fileupload-image',
|
22 |
+
'./jquery.fileupload-audio',
|
23 |
+
'./jquery.fileupload-video',
|
24 |
+
'./jquery.fileupload-validate'
|
25 |
+
], factory);
|
26 |
+
} else if (typeof exports === 'object') {
|
27 |
+
// Node/CommonJS:
|
28 |
+
factory(
|
29 |
+
require('jquery'),
|
30 |
+
require('blueimp-tmpl'),
|
31 |
+
require('./jquery.fileupload-image'),
|
32 |
+
require('./jquery.fileupload-audio'),
|
33 |
+
require('./jquery.fileupload-video'),
|
34 |
+
require('./jquery.fileupload-validate')
|
35 |
+
);
|
36 |
+
} else {
|
37 |
+
// Browser globals:
|
38 |
+
factory(window.jQuery, window.tmpl);
|
39 |
+
}
|
40 |
+
})(function($, tmpl) {
|
41 |
+
'use strict';
|
42 |
+
|
43 |
+
$.blueimp.fileupload.prototype._specialOptions.push(
|
44 |
+
'filesContainer',
|
45 |
+
'uploadTemplateId',
|
46 |
+
'downloadTemplateId'
|
47 |
+
);
|
48 |
+
|
49 |
+
// The UI version extends the file upload widget
|
50 |
+
// and adds complete user interface interaction:
|
51 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
52 |
+
options: {
|
53 |
+
// By default, files added to the widget are uploaded as soon
|
54 |
+
// as the user clicks on the start buttons. To enable automatic
|
55 |
+
// uploads, set the following option to true:
|
56 |
+
autoUpload: false,
|
57 |
+
// The class to show/hide UI elements:
|
58 |
+
showElementClass: 'in',
|
59 |
+
// The ID of the upload template:
|
60 |
+
uploadTemplateId: 'template-upload',
|
61 |
+
// The ID of the download template:
|
62 |
+
downloadTemplateId: 'template-download',
|
63 |
+
// The container for the list of files. If undefined, it is set to
|
64 |
+
// an element with class "files" inside of the widget element:
|
65 |
+
filesContainer: undefined,
|
66 |
+
// By default, files are appended to the files container.
|
67 |
+
// Set the following option to true, to prepend files instead:
|
68 |
+
prependFiles: false,
|
69 |
+
// The expected data type of the upload response, sets the dataType
|
70 |
+
// option of the $.ajax upload requests:
|
71 |
+
dataType: 'json',
|
72 |
+
|
73 |
+
// Error and info messages:
|
74 |
+
messages: {
|
75 |
+
unknownError: 'Unknown error'
|
76 |
+
},
|
77 |
+
|
78 |
+
// Function returning the current number of files,
|
79 |
+
// used by the maxNumberOfFiles validation:
|
80 |
+
getNumberOfFiles: function() {
|
81 |
+
return this.filesContainer.children().not('.processing').length;
|
82 |
+
},
|
83 |
+
|
84 |
+
// Callback to retrieve the list of files from the server response:
|
85 |
+
getFilesFromResponse: function(data) {
|
86 |
+
if (data.result && $.isArray(data.result.files)) {
|
87 |
+
return data.result.files;
|
88 |
+
}
|
89 |
+
return [];
|
90 |
+
},
|
91 |
+
|
92 |
+
// The add callback is invoked as soon as files are added to the fileupload
|
93 |
+
// widget (via file input selection, drag & drop or add API call).
|
94 |
+
// See the basic file upload widget for more information:
|
95 |
+
add: function(e, data) {
|
96 |
+
if (e.isDefaultPrevented()) {
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
var $this = $(this),
|
100 |
+
that = $this.data('blueimp-fileupload') || $this.data('fileupload'),
|
101 |
+
options = that.options;
|
102 |
+
data.context = that
|
103 |
+
._renderUpload(data.files)
|
104 |
+
.data('data', data)
|
105 |
+
.addClass('processing');
|
106 |
+
options.filesContainer[options.prependFiles ? 'prepend' : 'append'](
|
107 |
+
data.context
|
108 |
+
);
|
109 |
+
that._forceReflow(data.context);
|
110 |
+
that._transition(data.context);
|
111 |
+
data
|
112 |
+
.process(function() {
|
113 |
+
return $this.fileupload('process', data);
|
114 |
+
})
|
115 |
+
.always(function() {
|
116 |
+
data.context
|
117 |
+
.each(function(index) {
|
118 |
+
$(this)
|
119 |
+
.find('.size')
|
120 |
+
.text(that._formatFileSize(data.files[index].size));
|
121 |
+
})
|
122 |
+
.removeClass('processing');
|
123 |
+
that._renderPreviews(data);
|
124 |
+
})
|
125 |
+
.done(function() {
|
126 |
+
data.context.find('.edit,.start').prop('disabled', false);
|
127 |
+
if (
|
128 |
+
that._trigger('added', e, data) !== false &&
|
129 |
+
(options.autoUpload || data.autoUpload) &&
|
130 |
+
data.autoUpload !== false
|
131 |
+
) {
|
132 |
+
data.submit();
|
133 |
+
}
|
134 |
+
})
|
135 |
+
.fail(function() {
|
136 |
+
if (data.files.error) {
|
137 |
+
data.context.each(function(index) {
|
138 |
+
var error = data.files[index].error;
|
139 |
+
if (error) {
|
140 |
+
$(this)
|
141 |
+
.find('.error')
|
142 |
+
.text(error);
|
143 |
+
}
|
144 |
+
});
|
145 |
+
}
|
146 |
+
});
|
147 |
+
},
|
148 |
+
// Callback for the start of each file upload request:
|
149 |
+
send: function(e, data) {
|
150 |
+
if (e.isDefaultPrevented()) {
|
151 |
+
return false;
|
152 |
+
}
|
153 |
+
var that =
|
154 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload');
|
155 |
+
if (
|
156 |
+
data.context &&
|
157 |
+
data.dataType &&
|
158 |
+
data.dataType.substr(0, 6) === 'iframe'
|
159 |
+
) {
|
160 |
+
// Iframe Transport does not support progress events.
|
161 |
+
// In lack of an indeterminate progress bar, we set
|
162 |
+
// the progress to 100%, showing the full animated bar:
|
163 |
+
data.context
|
164 |
+
.find('.progress')
|
165 |
+
.addClass(!$.support.transition && 'progress-animated')
|
166 |
+
.attr('aria-valuenow', 100)
|
167 |
+
.children()
|
168 |
+
.first()
|
169 |
+
.css('width', '100%');
|
170 |
+
}
|
171 |
+
return that._trigger('sent', e, data);
|
172 |
+
},
|
173 |
+
// Callback for successful uploads:
|
174 |
+
done: function(e, data) {
|
175 |
+
if (e.isDefaultPrevented()) {
|
176 |
+
return false;
|
177 |
+
}
|
178 |
+
var that =
|
179 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload'),
|
180 |
+
getFilesFromResponse =
|
181 |
+
data.getFilesFromResponse || that.options.getFilesFromResponse,
|
182 |
+
files = getFilesFromResponse(data),
|
183 |
+
template,
|
184 |
+
deferred;
|
185 |
+
if (data.context) {
|
186 |
+
data.context.each(function(index) {
|
187 |
+
var file = files[index] || { error: 'Empty file upload result' };
|
188 |
+
deferred = that._addFinishedDeferreds();
|
189 |
+
that._transition($(this)).done(function() {
|
190 |
+
var node = $(this);
|
191 |
+
template = that._renderDownload([file]).replaceAll(node);
|
192 |
+
that._forceReflow(template);
|
193 |
+
that._transition(template).done(function() {
|
194 |
+
data.context = $(this);
|
195 |
+
that._trigger('completed', e, data);
|
196 |
+
that._trigger('finished', e, data);
|
197 |
+
deferred.resolve();
|
198 |
+
});
|
199 |
+
});
|
200 |
+
});
|
201 |
+
} else {
|
202 |
+
template = that
|
203 |
+
._renderDownload(files)
|
204 |
+
[that.options.prependFiles ? 'prependTo' : 'appendTo'](
|
205 |
+
that.options.filesContainer
|
206 |
+
);
|
207 |
+
that._forceReflow(template);
|
208 |
+
deferred = that._addFinishedDeferreds();
|
209 |
+
that._transition(template).done(function() {
|
210 |
+
data.context = $(this);
|
211 |
+
that._trigger('completed', e, data);
|
212 |
+
that._trigger('finished', e, data);
|
213 |
+
deferred.resolve();
|
214 |
+
});
|
215 |
+
}
|
216 |
+
},
|
217 |
+
// Callback for failed (abort or error) uploads:
|
218 |
+
fail: function(e, data) {
|
219 |
+
if (e.isDefaultPrevented()) {
|
220 |
+
return false;
|
221 |
+
}
|
222 |
+
var that =
|
223 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload'),
|
224 |
+
template,
|
225 |
+
deferred;
|
226 |
+
if (data.context) {
|
227 |
+
data.context.each(function(index) {
|
228 |
+
if (data.errorThrown !== 'abort') {
|
229 |
+
var file = data.files[index];
|
230 |
+
file.error =
|
231 |
+
file.error || data.errorThrown || data.i18n('unknownError');
|
232 |
+
deferred = that._addFinishedDeferreds();
|
233 |
+
that._transition($(this)).done(function() {
|
234 |
+
var node = $(this);
|
235 |
+
template = that._renderDownload([file]).replaceAll(node);
|
236 |
+
that._forceReflow(template);
|
237 |
+
that._transition(template).done(function() {
|
238 |
+
data.context = $(this);
|
239 |
+
that._trigger('failed', e, data);
|
240 |
+
that._trigger('finished', e, data);
|
241 |
+
deferred.resolve();
|
242 |
+
});
|
243 |
+
});
|
244 |
+
} else {
|
245 |
+
deferred = that._addFinishedDeferreds();
|
246 |
+
that._transition($(this)).done(function() {
|
247 |
+
$(this).remove();
|
248 |
+
that._trigger('failed', e, data);
|
249 |
+
that._trigger('finished', e, data);
|
250 |
+
deferred.resolve();
|
251 |
+
});
|
252 |
+
}
|
253 |
+
});
|
254 |
+
} else if (data.errorThrown !== 'abort') {
|
255 |
+
data.context = that
|
256 |
+
._renderUpload(data.files)
|
257 |
+
[that.options.prependFiles ? 'prependTo' : 'appendTo'](
|
258 |
+
that.options.filesContainer
|
259 |
+
)
|
260 |
+
.data('data', data);
|
261 |
+
that._forceReflow(data.context);
|
262 |
+
deferred = that._addFinishedDeferreds();
|
263 |
+
that._transition(data.context).done(function() {
|
264 |
+
data.context = $(this);
|
265 |
+
that._trigger('failed', e, data);
|
266 |
+
that._trigger('finished', e, data);
|
267 |
+
deferred.resolve();
|
268 |
+
});
|
269 |
+
} else {
|
270 |
+
that._trigger('failed', e, data);
|
271 |
+
that._trigger('finished', e, data);
|
272 |
+
that._addFinishedDeferreds().resolve();
|
273 |
+
}
|
274 |
+
},
|
275 |
+
// Callback for upload progress events:
|
276 |
+
progress: function(e, data) {
|
277 |
+
if (e.isDefaultPrevented()) {
|
278 |
+
return false;
|
279 |
+
}
|
280 |
+
var progress = Math.floor((data.loaded / data.total) * 100);
|
281 |
+
if (data.context) {
|
282 |
+
data.context.each(function() {
|
283 |
+
$(this)
|
284 |
+
.find('.progress')
|
285 |
+
.attr('aria-valuenow', progress)
|
286 |
+
.children()
|
287 |
+
.first()
|
288 |
+
.css('width', progress + '%');
|
289 |
+
});
|
290 |
+
}
|
291 |
+
},
|
292 |
+
// Callback for global upload progress events:
|
293 |
+
progressall: function(e, data) {
|
294 |
+
if (e.isDefaultPrevented()) {
|
295 |
+
return false;
|
296 |
+
}
|
297 |
+
var $this = $(this),
|
298 |
+
progress = Math.floor((data.loaded / data.total) * 100),
|
299 |
+
globalProgressNode = $this.find('.fileupload-progress'),
|
300 |
+
extendedProgressNode = globalProgressNode.find('.progress-extended');
|
301 |
+
if (extendedProgressNode.length) {
|
302 |
+
extendedProgressNode.html(
|
303 |
+
(
|
304 |
+
$this.data('blueimp-fileupload') || $this.data('fileupload')
|
305 |
+
)._renderExtendedProgress(data)
|
306 |
+
);
|
307 |
+
}
|
308 |
+
globalProgressNode
|
309 |
+
.find('.progress')
|
310 |
+
.attr('aria-valuenow', progress)
|
311 |
+
.children()
|
312 |
+
.first()
|
313 |
+
.css('width', progress + '%');
|
314 |
+
},
|
315 |
+
// Callback for uploads start, equivalent to the global ajaxStart event:
|
316 |
+
start: function(e) {
|
317 |
+
if (e.isDefaultPrevented()) {
|
318 |
+
return false;
|
319 |
+
}
|
320 |
+
var that =
|
321 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload');
|
322 |
+
that._resetFinishedDeferreds();
|
323 |
+
that._transition($(this).find('.fileupload-progress')).done(function() {
|
324 |
+
that._trigger('started', e);
|
325 |
+
});
|
326 |
+
},
|
327 |
+
// Callback for uploads stop, equivalent to the global ajaxStop event:
|
328 |
+
stop: function(e) {
|
329 |
+
if (e.isDefaultPrevented()) {
|
330 |
+
return false;
|
331 |
+
}
|
332 |
+
var that =
|
333 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload'),
|
334 |
+
deferred = that._addFinishedDeferreds();
|
335 |
+
$.when.apply($, that._getFinishedDeferreds()).done(function() {
|
336 |
+
that._trigger('stopped', e);
|
337 |
+
});
|
338 |
+
that._transition($(this).find('.fileupload-progress')).done(function() {
|
339 |
+
$(this)
|
340 |
+
.find('.progress')
|
341 |
+
.attr('aria-valuenow', '0')
|
342 |
+
.children()
|
343 |
+
.first()
|
344 |
+
.css('width', '0%');
|
345 |
+
$(this)
|
346 |
+
.find('.progress-extended')
|
347 |
+
.html(' ');
|
348 |
+
deferred.resolve();
|
349 |
+
});
|
350 |
+
},
|
351 |
+
processstart: function(e) {
|
352 |
+
if (e.isDefaultPrevented()) {
|
353 |
+
return false;
|
354 |
+
}
|
355 |
+
$(this).addClass('fileupload-processing');
|
356 |
+
},
|
357 |
+
processstop: function(e) {
|
358 |
+
if (e.isDefaultPrevented()) {
|
359 |
+
return false;
|
360 |
+
}
|
361 |
+
$(this).removeClass('fileupload-processing');
|
362 |
+
},
|
363 |
+
// Callback for file deletion:
|
364 |
+
destroy: function(e, data) {
|
365 |
+
if (e.isDefaultPrevented()) {
|
366 |
+
return false;
|
367 |
+
}
|
368 |
+
var that =
|
369 |
+
$(this).data('blueimp-fileupload') || $(this).data('fileupload'),
|
370 |
+
removeNode = function() {
|
371 |
+
that._transition(data.context).done(function() {
|
372 |
+
$(this).remove();
|
373 |
+
that._trigger('destroyed', e, data);
|
374 |
+
});
|
375 |
+
};
|
376 |
+
if (data.url) {
|
377 |
+
data.dataType = data.dataType || that.options.dataType;
|
378 |
+
$.ajax(data)
|
379 |
+
.done(removeNode)
|
380 |
+
.fail(function() {
|
381 |
+
that._trigger('destroyfailed', e, data);
|
382 |
+
});
|
383 |
+
} else {
|
384 |
+
removeNode();
|
385 |
+
}
|
386 |
+
}
|
387 |
+
},
|
388 |
+
|
389 |
+
_resetFinishedDeferreds: function() {
|
390 |
+
this._finishedUploads = [];
|
391 |
+
},
|
392 |
+
|
393 |
+
_addFinishedDeferreds: function(deferred) {
|
394 |
+
// eslint-disable-next-line new-cap
|
395 |
+
var promise = deferred || $.Deferred();
|
396 |
+
this._finishedUploads.push(promise);
|
397 |
+
return promise;
|
398 |
+
},
|
399 |
+
|
400 |
+
_getFinishedDeferreds: function() {
|
401 |
+
return this._finishedUploads;
|
402 |
+
},
|
403 |
+
|
404 |
+
// Link handler, that allows to download files
|
405 |
+
// by drag & drop of the links to the desktop:
|
406 |
+
_enableDragToDesktop: function() {
|
407 |
+
var link = $(this),
|
408 |
+
url = link.prop('href'),
|
409 |
+
name = link.prop('download'),
|
410 |
+
type = 'application/octet-stream';
|
411 |
+
link.bind('dragstart', function(e) {
|
412 |
+
try {
|
413 |
+
e.originalEvent.dataTransfer.setData(
|
414 |
+
'DownloadURL',
|
415 |
+
[type, name, url].join(':')
|
416 |
+
);
|
417 |
+
} catch (ignore) {
|
418 |
+
// Ignore exceptions
|
419 |
+
}
|
420 |
+
});
|
421 |
+
},
|
422 |
+
|
423 |
+
_formatFileSize: function(bytes) {
|
424 |
+
if (typeof bytes !== 'number') {
|
425 |
+
return '';
|
426 |
+
}
|
427 |
+
if (bytes >= 1000000000) {
|
428 |
+
return (bytes / 1000000000).toFixed(2) + ' GB';
|
429 |
+
}
|
430 |
+
if (bytes >= 1000000) {
|
431 |
+
return (bytes / 1000000).toFixed(2) + ' MB';
|
432 |
+
}
|
433 |
+
return (bytes / 1000).toFixed(2) + ' KB';
|
434 |
+
},
|
435 |
+
|
436 |
+
_formatBitrate: function(bits) {
|
437 |
+
if (typeof bits !== 'number') {
|
438 |
+
return '';
|
439 |
+
}
|
440 |
+
if (bits >= 1000000000) {
|
441 |
+
return (bits / 1000000000).toFixed(2) + ' Gbit/s';
|
442 |
+
}
|
443 |
+
if (bits >= 1000000) {
|
444 |
+
return (bits / 1000000).toFixed(2) + ' Mbit/s';
|
445 |
+
}
|
446 |
+
if (bits >= 1000) {
|
447 |
+
return (bits / 1000).toFixed(2) + ' kbit/s';
|
448 |
+
}
|
449 |
+
return bits.toFixed(2) + ' bit/s';
|
450 |
+
},
|
451 |
+
|
452 |
+
_formatTime: function(seconds) {
|
453 |
+
var date = new Date(seconds * 1000),
|
454 |
+
days = Math.floor(seconds / 86400);
|
455 |
+
days = days ? days + 'd ' : '';
|
456 |
+
return (
|
457 |
+
days +
|
458 |
+
('0' + date.getUTCHours()).slice(-2) +
|
459 |
+
':' +
|
460 |
+
('0' + date.getUTCMinutes()).slice(-2) +
|
461 |
+
':' +
|
462 |
+
('0' + date.getUTCSeconds()).slice(-2)
|
463 |
+
);
|
464 |
+
},
|
465 |
+
|
466 |
+
_formatPercentage: function(floatValue) {
|
467 |
+
return (floatValue * 100).toFixed(2) + ' %';
|
468 |
+
},
|
469 |
+
|
470 |
+
_renderExtendedProgress: function(data) {
|
471 |
+
return (
|
472 |
+
this._formatBitrate(data.bitrate) +
|
473 |
+
' | ' +
|
474 |
+
this._formatTime(((data.total - data.loaded) * 8) / data.bitrate) +
|
475 |
+
' | ' +
|
476 |
+
this._formatPercentage(data.loaded / data.total) +
|
477 |
+
' | ' +
|
478 |
+
this._formatFileSize(data.loaded) +
|
479 |
+
' / ' +
|
480 |
+
this._formatFileSize(data.total)
|
481 |
+
);
|
482 |
+
},
|
483 |
+
|
484 |
+
_renderTemplate: function(func, files) {
|
485 |
+
if (!func) {
|
486 |
+
return $();
|
487 |
+
}
|
488 |
+
var result = func({
|
489 |
+
files: files,
|
490 |
+
formatFileSize: this._formatFileSize,
|
491 |
+
options: this.options
|
492 |
+
});
|
493 |
+
if (result instanceof $) {
|
494 |
+
return result;
|
495 |
+
}
|
496 |
+
return $(this.options.templatesContainer)
|
497 |
+
.html(result)
|
498 |
+
.children();
|
499 |
+
},
|
500 |
+
|
501 |
+
_renderPreviews: function(data) {
|
502 |
+
data.context.find('.preview').each(function(index, elm) {
|
503 |
+
$(elm)
|
504 |
+
.empty()
|
505 |
+
.append(data.files[index].preview);
|
506 |
+
});
|
507 |
+
},
|
508 |
+
|
509 |
+
_renderUpload: function(files) {
|
510 |
+
return this._renderTemplate(this.options.uploadTemplate, files);
|
511 |
+
},
|
512 |
+
|
513 |
+
_renderDownload: function(files) {
|
514 |
+
return this._renderTemplate(this.options.downloadTemplate, files)
|
515 |
+
.find('a[download]')
|
516 |
+
.each(this._enableDragToDesktop)
|
517 |
+
.end();
|
518 |
+
},
|
519 |
+
|
520 |
+
_editHandler: function(e) {
|
521 |
+
e.preventDefault();
|
522 |
+
if (!this.options.edit) return;
|
523 |
+
var that = this,
|
524 |
+
button = $(e.currentTarget),
|
525 |
+
template = button.closest('.template-upload'),
|
526 |
+
data = template.data('data'),
|
527 |
+
index = button.data().index;
|
528 |
+
this.options.edit(data.files[index]).then(function(file) {
|
529 |
+
if (!file) return;
|
530 |
+
data.files[index] = file;
|
531 |
+
data.context.addClass('processing');
|
532 |
+
template.find('.edit,.start').prop('disabled', true);
|
533 |
+
$(that.element)
|
534 |
+
.fileupload('process', data)
|
535 |
+
.always(function() {
|
536 |
+
template
|
537 |
+
.find('.size')
|
538 |
+
.text(that._formatFileSize(data.files[index].size));
|
539 |
+
data.context.removeClass('processing');
|
540 |
+
that._renderPreviews(data);
|
541 |
+
})
|
542 |
+
.done(function() {
|
543 |
+
template.find('.edit,.start').prop('disabled', false);
|
544 |
+
})
|
545 |
+
.fail(function() {
|
546 |
+
template.find('.edit').prop('disabled', false);
|
547 |
+
var error = data.files[index].error;
|
548 |
+
if (error) {
|
549 |
+
template.find('.error').text(error);
|
550 |
+
}
|
551 |
+
});
|
552 |
+
});
|
553 |
+
},
|
554 |
+
|
555 |
+
_startHandler: function(e) {
|
556 |
+
e.preventDefault();
|
557 |
+
var button = $(e.currentTarget),
|
558 |
+
template = button.closest('.template-upload'),
|
559 |
+
data = template.data('data');
|
560 |
+
button.prop('disabled', true);
|
561 |
+
if (data && data.submit) {
|
562 |
+
data.submit();
|
563 |
+
}
|
564 |
+
},
|
565 |
+
|
566 |
+
_cancelHandler: function(e) {
|
567 |
+
e.preventDefault();
|
568 |
+
var template = $(e.currentTarget).closest(
|
569 |
+
'.template-upload,.template-download'
|
570 |
+
),
|
571 |
+
data = template.data('data') || {};
|
572 |
+
data.context = data.context || template;
|
573 |
+
if (data.abort) {
|
574 |
+
data.abort();
|
575 |
+
} else {
|
576 |
+
data.errorThrown = 'abort';
|
577 |
+
this._trigger('fail', e, data);
|
578 |
+
}
|
579 |
+
},
|
580 |
+
|
581 |
+
_deleteHandler: function(e) {
|
582 |
+
e.preventDefault();
|
583 |
+
var button = $(e.currentTarget);
|
584 |
+
this._trigger(
|
585 |
+
'destroy',
|
586 |
+
e,
|
587 |
+
$.extend(
|
588 |
+
{
|
589 |
+
context: button.closest('.template-download'),
|
590 |
+
type: 'DELETE'
|
591 |
+
},
|
592 |
+
button.data()
|
593 |
+
)
|
594 |
+
);
|
595 |
+
},
|
596 |
+
|
597 |
+
_forceReflow: function(node) {
|
598 |
+
return $.support.transition && node.length && node[0].offsetWidth;
|
599 |
+
},
|
600 |
+
|
601 |
+
_transition: function(node) {
|
602 |
+
// eslint-disable-next-line new-cap
|
603 |
+
var dfd = $.Deferred();
|
604 |
+
if (
|
605 |
+
$.support.transition &&
|
606 |
+
node.hasClass('fade') &&
|
607 |
+
node.is(':visible')
|
608 |
+
) {
|
609 |
+
var transitionEndHandler = function(e) {
|
610 |
+
// Make sure we don't respond to other transition events
|
611 |
+
// in the container element, e.g. from button elements:
|
612 |
+
if (e.target === node[0]) {
|
613 |
+
node.unbind($.support.transition.end, transitionEndHandler);
|
614 |
+
dfd.resolveWith(node);
|
615 |
+
}
|
616 |
+
};
|
617 |
+
node
|
618 |
+
.bind($.support.transition.end, transitionEndHandler)
|
619 |
+
.toggleClass(this.options.showElementClass);
|
620 |
+
} else {
|
621 |
+
node.toggleClass(this.options.showElementClass);
|
622 |
+
dfd.resolveWith(node);
|
623 |
+
}
|
624 |
+
return dfd;
|
625 |
+
},
|
626 |
+
|
627 |
+
_initButtonBarEventHandlers: function() {
|
628 |
+
var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
|
629 |
+
filesList = this.options.filesContainer;
|
630 |
+
this._on(fileUploadButtonBar.find('.start'), {
|
631 |
+
click: function(e) {
|
632 |
+
e.preventDefault();
|
633 |
+
filesList.find('.start').click();
|
634 |
+
}
|
635 |
+
});
|
636 |
+
this._on(fileUploadButtonBar.find('.cancel'), {
|
637 |
+
click: function(e) {
|
638 |
+
e.preventDefault();
|
639 |
+
filesList.find('.cancel').click();
|
640 |
+
}
|
641 |
+
});
|
642 |
+
this._on(fileUploadButtonBar.find('.delete'), {
|
643 |
+
click: function(e) {
|
644 |
+
e.preventDefault();
|
645 |
+
filesList
|
646 |
+
.find('.toggle:checked')
|
647 |
+
.closest('.template-download')
|
648 |
+
.find('.delete')
|
649 |
+
.click();
|
650 |
+
fileUploadButtonBar.find('.toggle').prop('checked', false);
|
651 |
+
}
|
652 |
+
});
|
653 |
+
this._on(fileUploadButtonBar.find('.toggle'), {
|
654 |
+
change: function(e) {
|
655 |
+
filesList
|
656 |
+
.find('.toggle')
|
657 |
+
.prop('checked', $(e.currentTarget).is(':checked'));
|
658 |
+
}
|
659 |
+
});
|
660 |
+
},
|
661 |
+
|
662 |
+
_destroyButtonBarEventHandlers: function() {
|
663 |
+
this._off(
|
664 |
+
this.element
|
665 |
+
.find('.fileupload-buttonbar')
|
666 |
+
.find('.start, .cancel, .delete'),
|
667 |
+
'click'
|
668 |
+
);
|
669 |
+
this._off(this.element.find('.fileupload-buttonbar .toggle'), 'change.');
|
670 |
+
},
|
671 |
+
|
672 |
+
_initEventHandlers: function() {
|
673 |
+
this._super();
|
674 |
+
this._on(this.options.filesContainer, {
|
675 |
+
'click .edit': this._editHandler,
|
676 |
+
'click .start': this._startHandler,
|
677 |
+
'click .cancel': this._cancelHandler,
|
678 |
+
'click .delete': this._deleteHandler
|
679 |
+
});
|
680 |
+
this._initButtonBarEventHandlers();
|
681 |
+
},
|
682 |
+
|
683 |
+
_destroyEventHandlers: function() {
|
684 |
+
this._destroyButtonBarEventHandlers();
|
685 |
+
this._off(this.options.filesContainer, 'click');
|
686 |
+
this._super();
|
687 |
+
},
|
688 |
+
|
689 |
+
_enableFileInputButton: function() {
|
690 |
+
this.element
|
691 |
+
.find('.fileinput-button input')
|
692 |
+
.prop('disabled', false)
|
693 |
+
.parent()
|
694 |
+
.removeClass('disabled');
|
695 |
+
},
|
696 |
+
|
697 |
+
_disableFileInputButton: function() {
|
698 |
+
this.element
|
699 |
+
.find('.fileinput-button input')
|
700 |
+
.prop('disabled', true)
|
701 |
+
.parent()
|
702 |
+
.addClass('disabled');
|
703 |
+
},
|
704 |
+
|
705 |
+
_initTemplates: function() {
|
706 |
+
var options = this.options;
|
707 |
+
options.templatesContainer = this.document[0].createElement(
|
708 |
+
options.filesContainer.prop('nodeName')
|
709 |
+
);
|
710 |
+
if (tmpl) {
|
711 |
+
if (options.uploadTemplateId) {
|
712 |
+
options.uploadTemplate = tmpl(options.uploadTemplateId);
|
713 |
+
}
|
714 |
+
if (options.downloadTemplateId) {
|
715 |
+
options.downloadTemplate = tmpl(options.downloadTemplateId);
|
716 |
+
}
|
717 |
+
}
|
718 |
+
},
|
719 |
+
|
720 |
+
_initFilesContainer: function() {
|
721 |
+
var options = this.options;
|
722 |
+
if (options.filesContainer === undefined) {
|
723 |
+
options.filesContainer = this.element.find('.files');
|
724 |
+
} else if (!(options.filesContainer instanceof $)) {
|
725 |
+
options.filesContainer = $(options.filesContainer);
|
726 |
+
}
|
727 |
+
},
|
728 |
+
|
729 |
+
_initSpecialOptions: function() {
|
730 |
+
this._super();
|
731 |
+
this._initFilesContainer();
|
732 |
+
this._initTemplates();
|
733 |
+
},
|
734 |
+
|
735 |
+
_create: function() {
|
736 |
+
this._super();
|
737 |
+
this._resetFinishedDeferreds();
|
738 |
+
if (!$.support.fileInput) {
|
739 |
+
this._disableFileInputButton();
|
740 |
+
}
|
741 |
+
},
|
742 |
+
|
743 |
+
enable: function() {
|
744 |
+
var wasDisabled = false;
|
745 |
+
if (this.options.disabled) {
|
746 |
+
wasDisabled = true;
|
747 |
+
}
|
748 |
+
this._super();
|
749 |
+
if (wasDisabled) {
|
750 |
+
this.element.find('input, button').prop('disabled', false);
|
751 |
+
this._enableFileInputButton();
|
752 |
+
}
|
753 |
+
},
|
754 |
+
|
755 |
+
disable: function() {
|
756 |
+
if (!this.options.disabled) {
|
757 |
+
this.element.find('input, button').prop('disabled', true);
|
758 |
+
this._disableFileInputButton();
|
759 |
+
}
|
760 |
+
this._super();
|
761 |
+
}
|
762 |
+
});
|
763 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-validate.js
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Validation Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2013, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery', './jquery.fileupload-process'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(require('jquery'), require('./jquery.fileupload-process'));
|
22 |
+
} else {
|
23 |
+
// Browser globals:
|
24 |
+
factory(window.jQuery);
|
25 |
+
}
|
26 |
+
})(function($) {
|
27 |
+
'use strict';
|
28 |
+
|
29 |
+
// Append to the default processQueue:
|
30 |
+
$.blueimp.fileupload.prototype.options.processQueue.push({
|
31 |
+
action: 'validate',
|
32 |
+
// Always trigger this action,
|
33 |
+
// even if the previous action was rejected:
|
34 |
+
always: true,
|
35 |
+
// Options taken from the global options map:
|
36 |
+
acceptFileTypes: '@',
|
37 |
+
maxFileSize: '@',
|
38 |
+
minFileSize: '@',
|
39 |
+
maxNumberOfFiles: '@',
|
40 |
+
disabled: '@disableValidation'
|
41 |
+
});
|
42 |
+
|
43 |
+
// The File Upload Validation plugin extends the fileupload widget
|
44 |
+
// with file validation functionality:
|
45 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
46 |
+
options: {
|
47 |
+
/*
|
48 |
+
// The regular expression for allowed file types, matches
|
49 |
+
// against either file type or file name:
|
50 |
+
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
51 |
+
// The maximum allowed file size in bytes:
|
52 |
+
maxFileSize: 10000000, // 10 MB
|
53 |
+
// The minimum allowed file size in bytes:
|
54 |
+
minFileSize: undefined, // No minimal file size
|
55 |
+
// The limit of files to be uploaded:
|
56 |
+
maxNumberOfFiles: 10,
|
57 |
+
*/
|
58 |
+
|
59 |
+
// Function returning the current number of files,
|
60 |
+
// has to be overriden for maxNumberOfFiles validation:
|
61 |
+
getNumberOfFiles: $.noop,
|
62 |
+
|
63 |
+
// Error and info messages:
|
64 |
+
messages: {
|
65 |
+
maxNumberOfFiles: 'Maximum number of files exceeded',
|
66 |
+
acceptFileTypes: 'File type not allowed',
|
67 |
+
maxFileSize: 'File is too large',
|
68 |
+
minFileSize: 'File is too small'
|
69 |
+
}
|
70 |
+
},
|
71 |
+
|
72 |
+
processActions: {
|
73 |
+
validate: function(data, options) {
|
74 |
+
if (options.disabled) {
|
75 |
+
return data;
|
76 |
+
}
|
77 |
+
// eslint-disable-next-line new-cap
|
78 |
+
var dfd = $.Deferred(),
|
79 |
+
settings = this.options,
|
80 |
+
file = data.files[data.index],
|
81 |
+
fileSize;
|
82 |
+
if (options.minFileSize || options.maxFileSize) {
|
83 |
+
fileSize = file.size;
|
84 |
+
}
|
85 |
+
if (
|
86 |
+
$.type(options.maxNumberOfFiles) === 'number' &&
|
87 |
+
(settings.getNumberOfFiles() || 0) + data.files.length >
|
88 |
+
options.maxNumberOfFiles
|
89 |
+
) {
|
90 |
+
file.error = settings.i18n('maxNumberOfFiles');
|
91 |
+
} else if (
|
92 |
+
options.acceptFileTypes &&
|
93 |
+
!(
|
94 |
+
options.acceptFileTypes.test(file.type) ||
|
95 |
+
options.acceptFileTypes.test(file.name)
|
96 |
+
)
|
97 |
+
) {
|
98 |
+
file.error = settings.i18n('acceptFileTypes');
|
99 |
+
} else if (fileSize > options.maxFileSize) {
|
100 |
+
file.error = settings.i18n('maxFileSize');
|
101 |
+
} else if (
|
102 |
+
$.type(fileSize) === 'number' &&
|
103 |
+
fileSize < options.minFileSize
|
104 |
+
) {
|
105 |
+
file.error = settings.i18n('minFileSize');
|
106 |
+
} else {
|
107 |
+
delete file.error;
|
108 |
+
}
|
109 |
+
if (file.error || data.files.error) {
|
110 |
+
data.files.error = true;
|
111 |
+
dfd.rejectWith(this, [data]);
|
112 |
+
} else {
|
113 |
+
dfd.resolveWith(this, [data]);
|
114 |
+
}
|
115 |
+
return dfd.promise();
|
116 |
+
}
|
117 |
+
}
|
118 |
+
});
|
119 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload-video.js
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Video Preview Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2013, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery', 'load-image', './jquery.fileupload-process'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(
|
22 |
+
require('jquery'),
|
23 |
+
require('blueimp-load-image/js/load-image'),
|
24 |
+
require('./jquery.fileupload-process')
|
25 |
+
);
|
26 |
+
} else {
|
27 |
+
// Browser globals:
|
28 |
+
factory(window.jQuery, window.loadImage);
|
29 |
+
}
|
30 |
+
})(function($, loadImage) {
|
31 |
+
'use strict';
|
32 |
+
|
33 |
+
// Prepend to the default processQueue:
|
34 |
+
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
35 |
+
{
|
36 |
+
action: 'loadVideo',
|
37 |
+
// Use the action as prefix for the "@" options:
|
38 |
+
prefix: true,
|
39 |
+
fileTypes: '@',
|
40 |
+
maxFileSize: '@',
|
41 |
+
disabled: '@disableVideoPreview'
|
42 |
+
},
|
43 |
+
{
|
44 |
+
action: 'setVideo',
|
45 |
+
name: '@videoPreviewName',
|
46 |
+
disabled: '@disableVideoPreview'
|
47 |
+
}
|
48 |
+
);
|
49 |
+
|
50 |
+
// The File Upload Video Preview plugin extends the fileupload widget
|
51 |
+
// with video preview functionality:
|
52 |
+
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
53 |
+
options: {
|
54 |
+
// The regular expression for the types of video files to load,
|
55 |
+
// matched against the file type:
|
56 |
+
loadVideoFileTypes: /^video\/.*$/
|
57 |
+
},
|
58 |
+
|
59 |
+
_videoElement: document.createElement('video'),
|
60 |
+
|
61 |
+
processActions: {
|
62 |
+
// Loads the video file given via data.files and data.index
|
63 |
+
// as video element if the browser supports playing it.
|
64 |
+
// Accepts the options fileTypes (regular expression)
|
65 |
+
// and maxFileSize (integer) to limit the files to load:
|
66 |
+
loadVideo: function(data, options) {
|
67 |
+
if (options.disabled) {
|
68 |
+
return data;
|
69 |
+
}
|
70 |
+
var file = data.files[data.index],
|
71 |
+
url,
|
72 |
+
video;
|
73 |
+
if (
|
74 |
+
this._videoElement.canPlayType &&
|
75 |
+
this._videoElement.canPlayType(file.type) &&
|
76 |
+
($.type(options.maxFileSize) !== 'number' ||
|
77 |
+
file.size <= options.maxFileSize) &&
|
78 |
+
(!options.fileTypes || options.fileTypes.test(file.type))
|
79 |
+
) {
|
80 |
+
url = loadImage.createObjectURL(file);
|
81 |
+
if (url) {
|
82 |
+
video = this._videoElement.cloneNode(false);
|
83 |
+
video.src = url;
|
84 |
+
video.controls = true;
|
85 |
+
data.video = video;
|
86 |
+
return data;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
return data;
|
90 |
+
},
|
91 |
+
|
92 |
+
// Sets the video element as a property of the file object:
|
93 |
+
setVideo: function(data, options) {
|
94 |
+
if (data.video && !options.disabled) {
|
95 |
+
data.files[data.index][options.name || 'preview'] = data.video;
|
96 |
+
}
|
97 |
+
return data;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
});
|
101 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.fileupload.js
ADDED
@@ -0,0 +1,1611 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery File Upload Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2010, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
/* eslint-disable new-cap */
|
14 |
+
|
15 |
+
(function(factory) {
|
16 |
+
'use strict';
|
17 |
+
if (typeof define === 'function' && define.amd) {
|
18 |
+
// Register as an anonymous AMD module:
|
19 |
+
define(['jquery', 'jquery-ui/ui/widget'], factory);
|
20 |
+
} else if (typeof exports === 'object') {
|
21 |
+
// Node/CommonJS:
|
22 |
+
factory(require('jquery'), require('./vendor/jquery.ui.widget'));
|
23 |
+
} else {
|
24 |
+
// Browser globals:
|
25 |
+
factory(window.jQuery);
|
26 |
+
}
|
27 |
+
})(function($) {
|
28 |
+
'use strict';
|
29 |
+
|
30 |
+
// Detect file input support, based on
|
31 |
+
// https://viljamis.com/2012/file-upload-support-on-mobile/
|
32 |
+
$.support.fileInput = !(
|
33 |
+
new RegExp(
|
34 |
+
// Handle devices which give false positives for the feature detection:
|
35 |
+
'(Android (1\\.[0156]|2\\.[01]))' +
|
36 |
+
'|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
|
37 |
+
'|(w(eb)?OSBrowser)|(webOS)' +
|
38 |
+
'|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
|
39 |
+
).test(window.navigator.userAgent) ||
|
40 |
+
// Feature detection for all other devices:
|
41 |
+
$('<input type="file"/>').prop('disabled')
|
42 |
+
);
|
43 |
+
|
44 |
+
// The FileReader API is not actually used, but works as feature detection,
|
45 |
+
// as some Safari versions (5?) support XHR file uploads via the FormData API,
|
46 |
+
// but not non-multipart XHR file uploads.
|
47 |
+
// window.XMLHttpRequestUpload is not available on IE10, so we check for
|
48 |
+
// window.ProgressEvent instead to detect XHR2 file upload capability:
|
49 |
+
$.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);
|
50 |
+
$.support.xhrFormDataFileUpload = !!window.FormData;
|
51 |
+
|
52 |
+
// Detect support for Blob slicing (required for chunked uploads):
|
53 |
+
$.support.blobSlice =
|
54 |
+
window.Blob &&
|
55 |
+
(Blob.prototype.slice ||
|
56 |
+
Blob.prototype.webkitSlice ||
|
57 |
+
Blob.prototype.mozSlice);
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Helper function to create drag handlers for dragover/dragenter/dragleave
|
61 |
+
*
|
62 |
+
* @param {string} type Event type
|
63 |
+
* @returns {Function} Drag handler
|
64 |
+
*/
|
65 |
+
function getDragHandler(type) {
|
66 |
+
var isDragOver = type === 'dragover';
|
67 |
+
return function(e) {
|
68 |
+
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
|
69 |
+
var dataTransfer = e.dataTransfer;
|
70 |
+
if (
|
71 |
+
dataTransfer &&
|
72 |
+
$.inArray('Files', dataTransfer.types) !== -1 &&
|
73 |
+
this._trigger(type, $.Event(type, { delegatedEvent: e })) !== false
|
74 |
+
) {
|
75 |
+
e.preventDefault();
|
76 |
+
if (isDragOver) {
|
77 |
+
dataTransfer.dropEffect = 'copy';
|
78 |
+
}
|
79 |
+
}
|
80 |
+
};
|
81 |
+
}
|
82 |
+
|
83 |
+
// The fileupload widget listens for change events on file input fields defined
|
84 |
+
// via fileInput setting and paste or drop events of the given dropZone.
|
85 |
+
// In addition to the default jQuery Widget methods, the fileupload widget
|
86 |
+
// exposes the "add" and "send" methods, to add or directly send files using
|
87 |
+
// the fileupload API.
|
88 |
+
// By default, files added via file input selection, paste, drag & drop or
|
89 |
+
// "add" method are uploaded immediately, but it is possible to override
|
90 |
+
// the "add" callback option to queue file uploads.
|
91 |
+
$.widget('blueimp.fileupload', {
|
92 |
+
options: {
|
93 |
+
// The drop target element(s), by the default the complete document.
|
94 |
+
// Set to null to disable drag & drop support:
|
95 |
+
dropZone: $(document),
|
96 |
+
// The paste target element(s), by the default undefined.
|
97 |
+
// Set to a DOM node or jQuery object to enable file pasting:
|
98 |
+
pasteZone: undefined,
|
99 |
+
// The file input field(s), that are listened to for change events.
|
100 |
+
// If undefined, it is set to the file input fields inside
|
101 |
+
// of the widget element on plugin initialization.
|
102 |
+
// Set to null to disable the change listener.
|
103 |
+
fileInput: undefined,
|
104 |
+
// By default, the file input field is replaced with a clone after
|
105 |
+
// each input field change event. This is required for iframe transport
|
106 |
+
// queues and allows change events to be fired for the same file
|
107 |
+
// selection, but can be disabled by setting the following option to false:
|
108 |
+
replaceFileInput: true,
|
109 |
+
// The parameter name for the file form data (the request argument name).
|
110 |
+
// If undefined or empty, the name property of the file input field is
|
111 |
+
// used, or "files[]" if the file input name property is also empty,
|
112 |
+
// can be a string or an array of strings:
|
113 |
+
paramName: undefined,
|
114 |
+
// By default, each file of a selection is uploaded using an individual
|
115 |
+
// request for XHR type uploads. Set to false to upload file
|
116 |
+
// selections in one request each:
|
117 |
+
singleFileUploads: true,
|
118 |
+
// To limit the number of files uploaded with one XHR request,
|
119 |
+
// set the following option to an integer greater than 0:
|
120 |
+
limitMultiFileUploads: undefined,
|
121 |
+
// The following option limits the number of files uploaded with one
|
122 |
+
// XHR request to keep the request size under or equal to the defined
|
123 |
+
// limit in bytes:
|
124 |
+
limitMultiFileUploadSize: undefined,
|
125 |
+
// Multipart file uploads add a number of bytes to each uploaded file,
|
126 |
+
// therefore the following option adds an overhead for each file used
|
127 |
+
// in the limitMultiFileUploadSize configuration:
|
128 |
+
limitMultiFileUploadSizeOverhead: 512,
|
129 |
+
// Set the following option to true to issue all file upload requests
|
130 |
+
// in a sequential order:
|
131 |
+
sequentialUploads: false,
|
132 |
+
// To limit the number of concurrent uploads,
|
133 |
+
// set the following option to an integer greater than 0:
|
134 |
+
limitConcurrentUploads: undefined,
|
135 |
+
// Set the following option to true to force iframe transport uploads:
|
136 |
+
forceIframeTransport: false,
|
137 |
+
// Set the following option to the location of a redirect url on the
|
138 |
+
// origin server, for cross-domain iframe transport uploads:
|
139 |
+
redirect: undefined,
|
140 |
+
// The parameter name for the redirect url, sent as part of the form
|
141 |
+
// data and set to 'redirect' if this option is empty:
|
142 |
+
redirectParamName: undefined,
|
143 |
+
// Set the following option to the location of a postMessage window,
|
144 |
+
// to enable postMessage transport uploads:
|
145 |
+
postMessage: undefined,
|
146 |
+
// By default, XHR file uploads are sent as multipart/form-data.
|
147 |
+
// The iframe transport is always using multipart/form-data.
|
148 |
+
// Set to false to enable non-multipart XHR uploads:
|
149 |
+
multipart: true,
|
150 |
+
// To upload large files in smaller chunks, set the following option
|
151 |
+
// to a preferred maximum chunk size. If set to 0, null or undefined,
|
152 |
+
// or the browser does not support the required Blob API, files will
|
153 |
+
// be uploaded as a whole.
|
154 |
+
maxChunkSize: undefined,
|
155 |
+
// When a non-multipart upload or a chunked multipart upload has been
|
156 |
+
// aborted, this option can be used to resume the upload by setting
|
157 |
+
// it to the size of the already uploaded bytes. This option is most
|
158 |
+
// useful when modifying the options object inside of the "add" or
|
159 |
+
// "send" callbacks, as the options are cloned for each file upload.
|
160 |
+
uploadedBytes: undefined,
|
161 |
+
// By default, failed (abort or error) file uploads are removed from the
|
162 |
+
// global progress calculation. Set the following option to false to
|
163 |
+
// prevent recalculating the global progress data:
|
164 |
+
recalculateProgress: true,
|
165 |
+
// Interval in milliseconds to calculate and trigger progress events:
|
166 |
+
progressInterval: 100,
|
167 |
+
// Interval in milliseconds to calculate progress bitrate:
|
168 |
+
bitrateInterval: 500,
|
169 |
+
// By default, uploads are started automatically when adding files:
|
170 |
+
autoUpload: true,
|
171 |
+
// By default, duplicate file names are expected to be handled on
|
172 |
+
// the server-side. If this is not possible (e.g. when uploading
|
173 |
+
// files directly to Amazon S3), the following option can be set to
|
174 |
+
// an empty object or an object mapping existing filenames, e.g.:
|
175 |
+
// { "image.jpg": true, "image (1).jpg": true }
|
176 |
+
// If it is set, all files will be uploaded with unique filenames,
|
177 |
+
// adding increasing number suffixes if necessary, e.g.:
|
178 |
+
// "image (2).jpg"
|
179 |
+
uniqueFilenames: undefined,
|
180 |
+
|
181 |
+
// Error and info messages:
|
182 |
+
messages: {
|
183 |
+
uploadedBytes: 'Uploaded bytes exceed file size'
|
184 |
+
},
|
185 |
+
|
186 |
+
// Translation function, gets the message key to be translated
|
187 |
+
// and an object with context specific data as arguments:
|
188 |
+
i18n: function(message, context) {
|
189 |
+
// eslint-disable-next-line no-param-reassign
|
190 |
+
message = this.messages[message] || message.toString();
|
191 |
+
if (context) {
|
192 |
+
$.each(context, function(key, value) {
|
193 |
+
// eslint-disable-next-line no-param-reassign
|
194 |
+
message = message.replace('{' + key + '}', value);
|
195 |
+
});
|
196 |
+
}
|
197 |
+
return message;
|
198 |
+
},
|
199 |
+
|
200 |
+
// Additional form data to be sent along with the file uploads can be set
|
201 |
+
// using this option, which accepts an array of objects with name and
|
202 |
+
// value properties, a function returning such an array, a FormData
|
203 |
+
// object (for XHR file uploads), or a simple object.
|
204 |
+
// The form of the first fileInput is given as parameter to the function:
|
205 |
+
formData: function(form) {
|
206 |
+
return form.serializeArray();
|
207 |
+
},
|
208 |
+
|
209 |
+
// The add callback is invoked as soon as files are added to the fileupload
|
210 |
+
// widget (via file input selection, drag & drop, paste or add API call).
|
211 |
+
// If the singleFileUploads option is enabled, this callback will be
|
212 |
+
// called once for each file in the selection for XHR file uploads, else
|
213 |
+
// once for each file selection.
|
214 |
+
//
|
215 |
+
// The upload starts when the submit method is invoked on the data parameter.
|
216 |
+
// The data object contains a files property holding the added files
|
217 |
+
// and allows you to override plugin options as well as define ajax settings.
|
218 |
+
//
|
219 |
+
// Listeners for this callback can also be bound the following way:
|
220 |
+
// .bind('fileuploadadd', func);
|
221 |
+
//
|
222 |
+
// data.submit() returns a Promise object and allows to attach additional
|
223 |
+
// handlers using jQuery's Deferred callbacks:
|
224 |
+
// data.submit().done(func).fail(func).always(func);
|
225 |
+
add: function(e, data) {
|
226 |
+
if (e.isDefaultPrevented()) {
|
227 |
+
return false;
|
228 |
+
}
|
229 |
+
if (
|
230 |
+
data.autoUpload ||
|
231 |
+
(data.autoUpload !== false &&
|
232 |
+
$(this).fileupload('option', 'autoUpload'))
|
233 |
+
) {
|
234 |
+
data.process().done(function() {
|
235 |
+
data.submit();
|
236 |
+
});
|
237 |
+
}
|
238 |
+
},
|
239 |
+
|
240 |
+
// Other callbacks:
|
241 |
+
|
242 |
+
// Callback for the submit event of each file upload:
|
243 |
+
// submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
|
244 |
+
|
245 |
+
// Callback for the start of each file upload request:
|
246 |
+
// send: function (e, data) {}, // .bind('fileuploadsend', func);
|
247 |
+
|
248 |
+
// Callback for successful uploads:
|
249 |
+
// done: function (e, data) {}, // .bind('fileuploaddone', func);
|
250 |
+
|
251 |
+
// Callback for failed (abort or error) uploads:
|
252 |
+
// fail: function (e, data) {}, // .bind('fileuploadfail', func);
|
253 |
+
|
254 |
+
// Callback for completed (success, abort or error) requests:
|
255 |
+
// always: function (e, data) {}, // .bind('fileuploadalways', func);
|
256 |
+
|
257 |
+
// Callback for upload progress events:
|
258 |
+
// progress: function (e, data) {}, // .bind('fileuploadprogress', func);
|
259 |
+
|
260 |
+
// Callback for global upload progress events:
|
261 |
+
// progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
|
262 |
+
|
263 |
+
// Callback for uploads start, equivalent to the global ajaxStart event:
|
264 |
+
// start: function (e) {}, // .bind('fileuploadstart', func);
|
265 |
+
|
266 |
+
// Callback for uploads stop, equivalent to the global ajaxStop event:
|
267 |
+
// stop: function (e) {}, // .bind('fileuploadstop', func);
|
268 |
+
|
269 |
+
// Callback for change events of the fileInput(s):
|
270 |
+
// change: function (e, data) {}, // .bind('fileuploadchange', func);
|
271 |
+
|
272 |
+
// Callback for paste events to the pasteZone(s):
|
273 |
+
// paste: function (e, data) {}, // .bind('fileuploadpaste', func);
|
274 |
+
|
275 |
+
// Callback for drop events of the dropZone(s):
|
276 |
+
// drop: function (e, data) {}, // .bind('fileuploaddrop', func);
|
277 |
+
|
278 |
+
// Callback for dragover events of the dropZone(s):
|
279 |
+
// dragover: function (e) {}, // .bind('fileuploaddragover', func);
|
280 |
+
|
281 |
+
// Callback before the start of each chunk upload request (before form data initialization):
|
282 |
+
// chunkbeforesend: function (e, data) {}, // .bind('fileuploadchunkbeforesend', func);
|
283 |
+
|
284 |
+
// Callback for the start of each chunk upload request:
|
285 |
+
// chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
|
286 |
+
|
287 |
+
// Callback for successful chunk uploads:
|
288 |
+
// chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
|
289 |
+
|
290 |
+
// Callback for failed (abort or error) chunk uploads:
|
291 |
+
// chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
|
292 |
+
|
293 |
+
// Callback for completed (success, abort or error) chunk upload requests:
|
294 |
+
// chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
|
295 |
+
|
296 |
+
// The plugin options are used as settings object for the ajax calls.
|
297 |
+
// The following are jQuery ajax settings required for the file uploads:
|
298 |
+
processData: false,
|
299 |
+
contentType: false,
|
300 |
+
cache: false,
|
301 |
+
timeout: 0
|
302 |
+
},
|
303 |
+
|
304 |
+
// A list of options that require reinitializing event listeners and/or
|
305 |
+
// special initialization code:
|
306 |
+
_specialOptions: [
|
307 |
+
'fileInput',
|
308 |
+
'dropZone',
|
309 |
+
'pasteZone',
|
310 |
+
'multipart',
|
311 |
+
'forceIframeTransport'
|
312 |
+
],
|
313 |
+
|
314 |
+
_blobSlice:
|
315 |
+
$.support.blobSlice &&
|
316 |
+
function() {
|
317 |
+
var slice = this.slice || this.webkitSlice || this.mozSlice;
|
318 |
+
return slice.apply(this, arguments);
|
319 |
+
},
|
320 |
+
|
321 |
+
_BitrateTimer: function() {
|
322 |
+
this.timestamp = Date.now ? Date.now() : new Date().getTime();
|
323 |
+
this.loaded = 0;
|
324 |
+
this.bitrate = 0;
|
325 |
+
this.getBitrate = function(now, loaded, interval) {
|
326 |
+
var timeDiff = now - this.timestamp;
|
327 |
+
if (!this.bitrate || !interval || timeDiff > interval) {
|
328 |
+
this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
|
329 |
+
this.loaded = loaded;
|
330 |
+
this.timestamp = now;
|
331 |
+
}
|
332 |
+
return this.bitrate;
|
333 |
+
};
|
334 |
+
},
|
335 |
+
|
336 |
+
_isXHRUpload: function(options) {
|
337 |
+
return (
|
338 |
+
!options.forceIframeTransport &&
|
339 |
+
((!options.multipart && $.support.xhrFileUpload) ||
|
340 |
+
$.support.xhrFormDataFileUpload)
|
341 |
+
);
|
342 |
+
},
|
343 |
+
|
344 |
+
_getFormData: function(options) {
|
345 |
+
var formData;
|
346 |
+
if ($.type(options.formData) === 'function') {
|
347 |
+
return options.formData(options.form);
|
348 |
+
}
|
349 |
+
if ($.isArray(options.formData)) {
|
350 |
+
return options.formData;
|
351 |
+
}
|
352 |
+
if ($.type(options.formData) === 'object') {
|
353 |
+
formData = [];
|
354 |
+
$.each(options.formData, function(name, value) {
|
355 |
+
formData.push({ name: name, value: value });
|
356 |
+
});
|
357 |
+
return formData;
|
358 |
+
}
|
359 |
+
return [];
|
360 |
+
},
|
361 |
+
|
362 |
+
_getTotal: function(files) {
|
363 |
+
var total = 0;
|
364 |
+
$.each(files, function(index, file) {
|
365 |
+
total += file.size || 1;
|
366 |
+
});
|
367 |
+
return total;
|
368 |
+
},
|
369 |
+
|
370 |
+
_initProgressObject: function(obj) {
|
371 |
+
var progress = {
|
372 |
+
loaded: 0,
|
373 |
+
total: 0,
|
374 |
+
bitrate: 0
|
375 |
+
};
|
376 |
+
if (obj._progress) {
|
377 |
+
$.extend(obj._progress, progress);
|
378 |
+
} else {
|
379 |
+
obj._progress = progress;
|
380 |
+
}
|
381 |
+
},
|
382 |
+
|
383 |
+
_initResponseObject: function(obj) {
|
384 |
+
var prop;
|
385 |
+
if (obj._response) {
|
386 |
+
for (prop in obj._response) {
|
387 |
+
if (Object.prototype.hasOwnProperty.call(obj._response, prop)) {
|
388 |
+
delete obj._response[prop];
|
389 |
+
}
|
390 |
+
}
|
391 |
+
} else {
|
392 |
+
obj._response = {};
|
393 |
+
}
|
394 |
+
},
|
395 |
+
|
396 |
+
_onProgress: function(e, data) {
|
397 |
+
if (e.lengthComputable) {
|
398 |
+
var now = Date.now ? Date.now() : new Date().getTime(),
|
399 |
+
loaded;
|
400 |
+
if (
|
401 |
+
data._time &&
|
402 |
+
data.progressInterval &&
|
403 |
+
now - data._time < data.progressInterval &&
|
404 |
+
e.loaded !== e.total
|
405 |
+
) {
|
406 |
+
return;
|
407 |
+
}
|
408 |
+
data._time = now;
|
409 |
+
loaded =
|
410 |
+
Math.floor(
|
411 |
+
(e.loaded / e.total) * (data.chunkSize || data._progress.total)
|
412 |
+
) + (data.uploadedBytes || 0);
|
413 |
+
// Add the difference from the previously loaded state
|
414 |
+
// to the global loaded counter:
|
415 |
+
this._progress.loaded += loaded - data._progress.loaded;
|
416 |
+
this._progress.bitrate = this._bitrateTimer.getBitrate(
|
417 |
+
now,
|
418 |
+
this._progress.loaded,
|
419 |
+
data.bitrateInterval
|
420 |
+
);
|
421 |
+
data._progress.loaded = data.loaded = loaded;
|
422 |
+
data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
|
423 |
+
now,
|
424 |
+
loaded,
|
425 |
+
data.bitrateInterval
|
426 |
+
);
|
427 |
+
// Trigger a custom progress event with a total data property set
|
428 |
+
// to the file size(s) of the current upload and a loaded data
|
429 |
+
// property calculated accordingly:
|
430 |
+
this._trigger(
|
431 |
+
'progress',
|
432 |
+
$.Event('progress', { delegatedEvent: e }),
|
433 |
+
data
|
434 |
+
);
|
435 |
+
// Trigger a global progress event for all current file uploads,
|
436 |
+
// including ajax calls queued for sequential file uploads:
|
437 |
+
this._trigger(
|
438 |
+
'progressall',
|
439 |
+
$.Event('progressall', { delegatedEvent: e }),
|
440 |
+
this._progress
|
441 |
+
);
|
442 |
+
}
|
443 |
+
},
|
444 |
+
|
445 |
+
_initProgressListener: function(options) {
|
446 |
+
var that = this,
|
447 |
+
xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
|
448 |
+
// Accesss to the native XHR object is required to add event listeners
|
449 |
+
// for the upload progress event:
|
450 |
+
if (xhr.upload) {
|
451 |
+
$(xhr.upload).bind('progress', function(e) {
|
452 |
+
var oe = e.originalEvent;
|
453 |
+
// Make sure the progress event properties get copied over:
|
454 |
+
e.lengthComputable = oe.lengthComputable;
|
455 |
+
e.loaded = oe.loaded;
|
456 |
+
e.total = oe.total;
|
457 |
+
that._onProgress(e, options);
|
458 |
+
});
|
459 |
+
options.xhr = function() {
|
460 |
+
return xhr;
|
461 |
+
};
|
462 |
+
}
|
463 |
+
},
|
464 |
+
|
465 |
+
_deinitProgressListener: function(options) {
|
466 |
+
var xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
|
467 |
+
if (xhr.upload) {
|
468 |
+
$(xhr.upload).unbind('progress');
|
469 |
+
}
|
470 |
+
},
|
471 |
+
|
472 |
+
_isInstanceOf: function(type, obj) {
|
473 |
+
// Cross-frame instanceof check
|
474 |
+
return Object.prototype.toString.call(obj) === '[object ' + type + ']';
|
475 |
+
},
|
476 |
+
|
477 |
+
_getUniqueFilename: function(name, map) {
|
478 |
+
// eslint-disable-next-line no-param-reassign
|
479 |
+
name = String(name);
|
480 |
+
if (map[name]) {
|
481 |
+
// eslint-disable-next-line no-param-reassign
|
482 |
+
name = name.replace(/(?: \(([\d]+)\))?(\.[^.]+)?$/, function(
|
483 |
+
_,
|
484 |
+
p1,
|
485 |
+
p2
|
486 |
+
) {
|
487 |
+
var index = p1 ? Number(p1) + 1 : 1;
|
488 |
+
var ext = p2 || '';
|
489 |
+
return ' (' + index + ')' + ext;
|
490 |
+
});
|
491 |
+
return this._getUniqueFilename(name, map);
|
492 |
+
}
|
493 |
+
map[name] = true;
|
494 |
+
return name;
|
495 |
+
},
|
496 |
+
|
497 |
+
_initXHRData: function(options) {
|
498 |
+
var that = this,
|
499 |
+
formData,
|
500 |
+
file = options.files[0],
|
501 |
+
// Ignore non-multipart setting if not supported:
|
502 |
+
multipart = options.multipart || !$.support.xhrFileUpload,
|
503 |
+
paramName =
|
504 |
+
$.type(options.paramName) === 'array'
|
505 |
+
? options.paramName[0]
|
506 |
+
: options.paramName;
|
507 |
+
options.headers = $.extend({}, options.headers);
|
508 |
+
if (options.contentRange) {
|
509 |
+
options.headers['Content-Range'] = options.contentRange;
|
510 |
+
}
|
511 |
+
if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
|
512 |
+
options.headers['Content-Disposition'] =
|
513 |
+
'attachment; filename="' +
|
514 |
+
encodeURI(file.uploadName || file.name) +
|
515 |
+
'"';
|
516 |
+
}
|
517 |
+
if (!multipart) {
|
518 |
+
options.contentType = file.type || 'application/octet-stream';
|
519 |
+
options.data = options.blob || file;
|
520 |
+
} else if ($.support.xhrFormDataFileUpload) {
|
521 |
+
if (options.postMessage) {
|
522 |
+
// window.postMessage does not allow sending FormData
|
523 |
+
// objects, so we just add the File/Blob objects to
|
524 |
+
// the formData array and let the postMessage window
|
525 |
+
// create the FormData object out of this array:
|
526 |
+
formData = this._getFormData(options);
|
527 |
+
if (options.blob) {
|
528 |
+
formData.push({
|
529 |
+
name: paramName,
|
530 |
+
value: options.blob
|
531 |
+
});
|
532 |
+
} else {
|
533 |
+
$.each(options.files, function(index, file) {
|
534 |
+
formData.push({
|
535 |
+
name:
|
536 |
+
($.type(options.paramName) === 'array' &&
|
537 |
+
options.paramName[index]) ||
|
538 |
+
paramName,
|
539 |
+
value: file
|
540 |
+
});
|
541 |
+
});
|
542 |
+
}
|
543 |
+
} else {
|
544 |
+
if (that._isInstanceOf('FormData', options.formData)) {
|
545 |
+
formData = options.formData;
|
546 |
+
} else {
|
547 |
+
formData = new FormData();
|
548 |
+
$.each(this._getFormData(options), function(index, field) {
|
549 |
+
formData.append(field.name, field.value);
|
550 |
+
});
|
551 |
+
}
|
552 |
+
if (options.blob) {
|
553 |
+
formData.append(
|
554 |
+
paramName,
|
555 |
+
options.blob,
|
556 |
+
file.uploadName || file.name
|
557 |
+
);
|
558 |
+
} else {
|
559 |
+
$.each(options.files, function(index, file) {
|
560 |
+
// This check allows the tests to run with
|
561 |
+
// dummy objects:
|
562 |
+
if (
|
563 |
+
that._isInstanceOf('File', file) ||
|
564 |
+
that._isInstanceOf('Blob', file)
|
565 |
+
) {
|
566 |
+
var fileName = file.uploadName || file.name;
|
567 |
+
if (options.uniqueFilenames) {
|
568 |
+
fileName = that._getUniqueFilename(
|
569 |
+
fileName,
|
570 |
+
options.uniqueFilenames
|
571 |
+
);
|
572 |
+
}
|
573 |
+
formData.append(
|
574 |
+
($.type(options.paramName) === 'array' &&
|
575 |
+
options.paramName[index]) ||
|
576 |
+
paramName,
|
577 |
+
file,
|
578 |
+
fileName
|
579 |
+
);
|
580 |
+
}
|
581 |
+
});
|
582 |
+
}
|
583 |
+
}
|
584 |
+
options.data = formData;
|
585 |
+
}
|
586 |
+
// Blob reference is not needed anymore, free memory:
|
587 |
+
options.blob = null;
|
588 |
+
},
|
589 |
+
|
590 |
+
_initIframeSettings: function(options) {
|
591 |
+
var targetHost = $('<a></a>')
|
592 |
+
.prop('href', options.url)
|
593 |
+
.prop('host');
|
594 |
+
// Setting the dataType to iframe enables the iframe transport:
|
595 |
+
options.dataType = 'iframe ' + (options.dataType || '');
|
596 |
+
// The iframe transport accepts a serialized array as form data:
|
597 |
+
options.formData = this._getFormData(options);
|
598 |
+
// Add redirect url to form data on cross-domain uploads:
|
599 |
+
if (options.redirect && targetHost && targetHost !== location.host) {
|
600 |
+
options.formData.push({
|
601 |
+
name: options.redirectParamName || 'redirect',
|
602 |
+
value: options.redirect
|
603 |
+
});
|
604 |
+
}
|
605 |
+
},
|
606 |
+
|
607 |
+
_initDataSettings: function(options) {
|
608 |
+
if (this._isXHRUpload(options)) {
|
609 |
+
if (!this._chunkedUpload(options, true)) {
|
610 |
+
if (!options.data) {
|
611 |
+
this._initXHRData(options);
|
612 |
+
}
|
613 |
+
this._initProgressListener(options);
|
614 |
+
}
|
615 |
+
if (options.postMessage) {
|
616 |
+
// Setting the dataType to postmessage enables the
|
617 |
+
// postMessage transport:
|
618 |
+
options.dataType = 'postmessage ' + (options.dataType || '');
|
619 |
+
}
|
620 |
+
} else {
|
621 |
+
this._initIframeSettings(options);
|
622 |
+
}
|
623 |
+
},
|
624 |
+
|
625 |
+
_getParamName: function(options) {
|
626 |
+
var fileInput = $(options.fileInput),
|
627 |
+
paramName = options.paramName;
|
628 |
+
if (!paramName) {
|
629 |
+
paramName = [];
|
630 |
+
fileInput.each(function() {
|
631 |
+
var input = $(this),
|
632 |
+
name = input.prop('name') || 'files[]',
|
633 |
+
i = (input.prop('files') || [1]).length;
|
634 |
+
while (i) {
|
635 |
+
paramName.push(name);
|
636 |
+
i -= 1;
|
637 |
+
}
|
638 |
+
});
|
639 |
+
if (!paramName.length) {
|
640 |
+
paramName = [fileInput.prop('name') || 'files[]'];
|
641 |
+
}
|
642 |
+
} else if (!$.isArray(paramName)) {
|
643 |
+
paramName = [paramName];
|
644 |
+
}
|
645 |
+
return paramName;
|
646 |
+
},
|
647 |
+
|
648 |
+
_initFormSettings: function(options) {
|
649 |
+
// Retrieve missing options from the input field and the
|
650 |
+
// associated form, if available:
|
651 |
+
if (!options.form || !options.form.length) {
|
652 |
+
options.form = $(options.fileInput.prop('form'));
|
653 |
+
// If the given file input doesn't have an associated form,
|
654 |
+
// use the default widget file input's form:
|
655 |
+
if (!options.form.length) {
|
656 |
+
options.form = $(this.options.fileInput.prop('form'));
|
657 |
+
}
|
658 |
+
}
|
659 |
+
options.paramName = this._getParamName(options);
|
660 |
+
if (!options.url) {
|
661 |
+
options.url = options.form.prop('action') || location.href;
|
662 |
+
}
|
663 |
+
// The HTTP request method must be "POST" or "PUT":
|
664 |
+
options.type = (
|
665 |
+
options.type ||
|
666 |
+
($.type(options.form.prop('method')) === 'string' &&
|
667 |
+
options.form.prop('method')) ||
|
668 |
+
''
|
669 |
+
).toUpperCase();
|
670 |
+
if (
|
671 |
+
options.type !== 'POST' &&
|
672 |
+
options.type !== 'PUT' &&
|
673 |
+
options.type !== 'PATCH'
|
674 |
+
) {
|
675 |
+
options.type = 'POST';
|
676 |
+
}
|
677 |
+
if (!options.formAcceptCharset) {
|
678 |
+
options.formAcceptCharset = options.form.attr('accept-charset');
|
679 |
+
}
|
680 |
+
},
|
681 |
+
|
682 |
+
_getAJAXSettings: function(data) {
|
683 |
+
var options = $.extend({}, this.options, data);
|
684 |
+
this._initFormSettings(options);
|
685 |
+
this._initDataSettings(options);
|
686 |
+
return options;
|
687 |
+
},
|
688 |
+
|
689 |
+
// jQuery 1.6 doesn't provide .state(),
|
690 |
+
// while jQuery 1.8+ removed .isRejected() and .isResolved():
|
691 |
+
_getDeferredState: function(deferred) {
|
692 |
+
if (deferred.state) {
|
693 |
+
return deferred.state();
|
694 |
+
}
|
695 |
+
if (deferred.isResolved()) {
|
696 |
+
return 'resolved';
|
697 |
+
}
|
698 |
+
if (deferred.isRejected()) {
|
699 |
+
return 'rejected';
|
700 |
+
}
|
701 |
+
return 'pending';
|
702 |
+
},
|
703 |
+
|
704 |
+
// Maps jqXHR callbacks to the equivalent
|
705 |
+
// methods of the given Promise object:
|
706 |
+
_enhancePromise: function(promise) {
|
707 |
+
promise.success = promise.done;
|
708 |
+
promise.error = promise.fail;
|
709 |
+
promise.complete = promise.always;
|
710 |
+
return promise;
|
711 |
+
},
|
712 |
+
|
713 |
+
// Creates and returns a Promise object enhanced with
|
714 |
+
// the jqXHR methods abort, success, error and complete:
|
715 |
+
_getXHRPromise: function(resolveOrReject, context, args) {
|
716 |
+
var dfd = $.Deferred(),
|
717 |
+
promise = dfd.promise();
|
718 |
+
// eslint-disable-next-line no-param-reassign
|
719 |
+
context = context || this.options.context || promise;
|
720 |
+
if (resolveOrReject === true) {
|
721 |
+
dfd.resolveWith(context, args);
|
722 |
+
} else if (resolveOrReject === false) {
|
723 |
+
dfd.rejectWith(context, args);
|
724 |
+
}
|
725 |
+
promise.abort = dfd.promise;
|
726 |
+
return this._enhancePromise(promise);
|
727 |
+
},
|
728 |
+
|
729 |
+
// Adds convenience methods to the data callback argument:
|
730 |
+
_addConvenienceMethods: function(e, data) {
|
731 |
+
var that = this,
|
732 |
+
getPromise = function(args) {
|
733 |
+
return $.Deferred()
|
734 |
+
.resolveWith(that, args)
|
735 |
+
.promise();
|
736 |
+
};
|
737 |
+
data.process = function(resolveFunc, rejectFunc) {
|
738 |
+
if (resolveFunc || rejectFunc) {
|
739 |
+
data._processQueue = this._processQueue = (
|
740 |
+
this._processQueue || getPromise([this])
|
741 |
+
)
|
742 |
+
.then(function() {
|
743 |
+
if (data.errorThrown) {
|
744 |
+
return $.Deferred()
|
745 |
+
.rejectWith(that, [data])
|
746 |
+
.promise();
|
747 |
+
}
|
748 |
+
return getPromise(arguments);
|
749 |
+
})
|
750 |
+
.then(resolveFunc, rejectFunc);
|
751 |
+
}
|
752 |
+
return this._processQueue || getPromise([this]);
|
753 |
+
};
|
754 |
+
data.submit = function() {
|
755 |
+
if (this.state() !== 'pending') {
|
756 |
+
data.jqXHR = this.jqXHR =
|
757 |
+
that._trigger(
|
758 |
+
'submit',
|
759 |
+
$.Event('submit', { delegatedEvent: e }),
|
760 |
+
this
|
761 |
+
) !== false && that._onSend(e, this);
|
762 |
+
}
|
763 |
+
return this.jqXHR || that._getXHRPromise();
|
764 |
+
};
|
765 |
+
data.abort = function() {
|
766 |
+
if (this.jqXHR) {
|
767 |
+
return this.jqXHR.abort();
|
768 |
+
}
|
769 |
+
this.errorThrown = 'abort';
|
770 |
+
that._trigger('fail', null, this);
|
771 |
+
return that._getXHRPromise(false);
|
772 |
+
};
|
773 |
+
data.state = function() {
|
774 |
+
if (this.jqXHR) {
|
775 |
+
return that._getDeferredState(this.jqXHR);
|
776 |
+
}
|
777 |
+
if (this._processQueue) {
|
778 |
+
return that._getDeferredState(this._processQueue);
|
779 |
+
}
|
780 |
+
};
|
781 |
+
data.processing = function() {
|
782 |
+
return (
|
783 |
+
!this.jqXHR &&
|
784 |
+
this._processQueue &&
|
785 |
+
that._getDeferredState(this._processQueue) === 'pending'
|
786 |
+
);
|
787 |
+
};
|
788 |
+
data.progress = function() {
|
789 |
+
return this._progress;
|
790 |
+
};
|
791 |
+
data.response = function() {
|
792 |
+
return this._response;
|
793 |
+
};
|
794 |
+
},
|
795 |
+
|
796 |
+
// Parses the Range header from the server response
|
797 |
+
// and returns the uploaded bytes:
|
798 |
+
_getUploadedBytes: function(jqXHR) {
|
799 |
+
var range = jqXHR.getResponseHeader('Range'),
|
800 |
+
parts = range && range.split('-'),
|
801 |
+
upperBytesPos = parts && parts.length > 1 && parseInt(parts[1], 10);
|
802 |
+
return upperBytesPos && upperBytesPos + 1;
|
803 |
+
},
|
804 |
+
|
805 |
+
// Uploads a file in multiple, sequential requests
|
806 |
+
// by splitting the file up in multiple blob chunks.
|
807 |
+
// If the second parameter is true, only tests if the file
|
808 |
+
// should be uploaded in chunks, but does not invoke any
|
809 |
+
// upload requests:
|
810 |
+
_chunkedUpload: function(options, testOnly) {
|
811 |
+
options.uploadedBytes = options.uploadedBytes || 0;
|
812 |
+
var that = this,
|
813 |
+
file = options.files[0],
|
814 |
+
fs = file.size,
|
815 |
+
ub = options.uploadedBytes,
|
816 |
+
mcs = options.maxChunkSize || fs,
|
817 |
+
slice = this._blobSlice,
|
818 |
+
dfd = $.Deferred(),
|
819 |
+
promise = dfd.promise(),
|
820 |
+
jqXHR,
|
821 |
+
upload;
|
822 |
+
if (
|
823 |
+
!(
|
824 |
+
this._isXHRUpload(options) &&
|
825 |
+
slice &&
|
826 |
+
(ub || ($.type(mcs) === 'function' ? mcs(options) : mcs) < fs)
|
827 |
+
) ||
|
828 |
+
options.data
|
829 |
+
) {
|
830 |
+
return false;
|
831 |
+
}
|
832 |
+
if (testOnly) {
|
833 |
+
return true;
|
834 |
+
}
|
835 |
+
if (ub >= fs) {
|
836 |
+
file.error = options.i18n('uploadedBytes');
|
837 |
+
return this._getXHRPromise(false, options.context, [
|
838 |
+
null,
|
839 |
+
'error',
|
840 |
+
file.error
|
841 |
+
]);
|
842 |
+
}
|
843 |
+
// The chunk upload method:
|
844 |
+
upload = function() {
|
845 |
+
// Clone the options object for each chunk upload:
|
846 |
+
var o = $.extend({}, options),
|
847 |
+
currentLoaded = o._progress.loaded;
|
848 |
+
o.blob = slice.call(
|
849 |
+
file,
|
850 |
+
ub,
|
851 |
+
ub + ($.type(mcs) === 'function' ? mcs(o) : mcs),
|
852 |
+
file.type
|
853 |
+
);
|
854 |
+
// Store the current chunk size, as the blob itself
|
855 |
+
// will be dereferenced after data processing:
|
856 |
+
o.chunkSize = o.blob.size;
|
857 |
+
// Expose the chunk bytes position range:
|
858 |
+
o.contentRange =
|
859 |
+
'bytes ' + ub + '-' + (ub + o.chunkSize - 1) + '/' + fs;
|
860 |
+
// Trigger chunkbeforesend to allow form data to be updated for this chunk
|
861 |
+
that._trigger('chunkbeforesend', null, o);
|
862 |
+
// Process the upload data (the blob and potential form data):
|
863 |
+
that._initXHRData(o);
|
864 |
+
// Add progress listeners for this chunk upload:
|
865 |
+
that._initProgressListener(o);
|
866 |
+
jqXHR = (
|
867 |
+
(that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
|
868 |
+
that._getXHRPromise(false, o.context)
|
869 |
+
)
|
870 |
+
.done(function(result, textStatus, jqXHR) {
|
871 |
+
ub = that._getUploadedBytes(jqXHR) || ub + o.chunkSize;
|
872 |
+
// Create a progress event if no final progress event
|
873 |
+
// with loaded equaling total has been triggered
|
874 |
+
// for this chunk:
|
875 |
+
if (currentLoaded + o.chunkSize - o._progress.loaded) {
|
876 |
+
that._onProgress(
|
877 |
+
$.Event('progress', {
|
878 |
+
lengthComputable: true,
|
879 |
+
loaded: ub - o.uploadedBytes,
|
880 |
+
total: ub - o.uploadedBytes
|
881 |
+
}),
|
882 |
+
o
|
883 |
+
);
|
884 |
+
}
|
885 |
+
options.uploadedBytes = o.uploadedBytes = ub;
|
886 |
+
o.result = result;
|
887 |
+
o.textStatus = textStatus;
|
888 |
+
o.jqXHR = jqXHR;
|
889 |
+
that._trigger('chunkdone', null, o);
|
890 |
+
that._trigger('chunkalways', null, o);
|
891 |
+
if (ub < fs) {
|
892 |
+
// File upload not yet complete,
|
893 |
+
// continue with the next chunk:
|
894 |
+
upload();
|
895 |
+
} else {
|
896 |
+
dfd.resolveWith(o.context, [result, textStatus, jqXHR]);
|
897 |
+
}
|
898 |
+
})
|
899 |
+
.fail(function(jqXHR, textStatus, errorThrown) {
|
900 |
+
o.jqXHR = jqXHR;
|
901 |
+
o.textStatus = textStatus;
|
902 |
+
o.errorThrown = errorThrown;
|
903 |
+
that._trigger('chunkfail', null, o);
|
904 |
+
that._trigger('chunkalways', null, o);
|
905 |
+
dfd.rejectWith(o.context, [jqXHR, textStatus, errorThrown]);
|
906 |
+
})
|
907 |
+
.always(function() {
|
908 |
+
that._deinitProgressListener(o);
|
909 |
+
});
|
910 |
+
};
|
911 |
+
this._enhancePromise(promise);
|
912 |
+
promise.abort = function() {
|
913 |
+
return jqXHR.abort();
|
914 |
+
};
|
915 |
+
upload();
|
916 |
+
return promise;
|
917 |
+
},
|
918 |
+
|
919 |
+
_beforeSend: function(e, data) {
|
920 |
+
if (this._active === 0) {
|
921 |
+
// the start callback is triggered when an upload starts
|
922 |
+
// and no other uploads are currently running,
|
923 |
+
// equivalent to the global ajaxStart event:
|
924 |
+
this._trigger('start');
|
925 |
+
// Set timer for global bitrate progress calculation:
|
926 |
+
this._bitrateTimer = new this._BitrateTimer();
|
927 |
+
// Reset the global progress values:
|
928 |
+
this._progress.loaded = this._progress.total = 0;
|
929 |
+
this._progress.bitrate = 0;
|
930 |
+
}
|
931 |
+
// Make sure the container objects for the .response() and
|
932 |
+
// .progress() methods on the data object are available
|
933 |
+
// and reset to their initial state:
|
934 |
+
this._initResponseObject(data);
|
935 |
+
this._initProgressObject(data);
|
936 |
+
data._progress.loaded = data.loaded = data.uploadedBytes || 0;
|
937 |
+
data._progress.total = data.total = this._getTotal(data.files) || 1;
|
938 |
+
data._progress.bitrate = data.bitrate = 0;
|
939 |
+
this._active += 1;
|
940 |
+
// Initialize the global progress values:
|
941 |
+
this._progress.loaded += data.loaded;
|
942 |
+
this._progress.total += data.total;
|
943 |
+
},
|
944 |
+
|
945 |
+
_onDone: function(result, textStatus, jqXHR, options) {
|
946 |
+
var total = options._progress.total,
|
947 |
+
response = options._response;
|
948 |
+
if (options._progress.loaded < total) {
|
949 |
+
// Create a progress event if no final progress event
|
950 |
+
// with loaded equaling total has been triggered:
|
951 |
+
this._onProgress(
|
952 |
+
$.Event('progress', {
|
953 |
+
lengthComputable: true,
|
954 |
+
loaded: total,
|
955 |
+
total: total
|
956 |
+
}),
|
957 |
+
options
|
958 |
+
);
|
959 |
+
}
|
960 |
+
response.result = options.result = result;
|
961 |
+
response.textStatus = options.textStatus = textStatus;
|
962 |
+
response.jqXHR = options.jqXHR = jqXHR;
|
963 |
+
this._trigger('done', null, options);
|
964 |
+
},
|
965 |
+
|
966 |
+
_onFail: function(jqXHR, textStatus, errorThrown, options) {
|
967 |
+
var response = options._response;
|
968 |
+
if (options.recalculateProgress) {
|
969 |
+
// Remove the failed (error or abort) file upload from
|
970 |
+
// the global progress calculation:
|
971 |
+
this._progress.loaded -= options._progress.loaded;
|
972 |
+
this._progress.total -= options._progress.total;
|
973 |
+
}
|
974 |
+
response.jqXHR = options.jqXHR = jqXHR;
|
975 |
+
response.textStatus = options.textStatus = textStatus;
|
976 |
+
response.errorThrown = options.errorThrown = errorThrown;
|
977 |
+
this._trigger('fail', null, options);
|
978 |
+
},
|
979 |
+
|
980 |
+
_onAlways: function(jqXHRorResult, textStatus, jqXHRorError, options) {
|
981 |
+
// jqXHRorResult, textStatus and jqXHRorError are added to the
|
982 |
+
// options object via done and fail callbacks
|
983 |
+
this._trigger('always', null, options);
|
984 |
+
},
|
985 |
+
|
986 |
+
_onSend: function(e, data) {
|
987 |
+
if (!data.submit) {
|
988 |
+
this._addConvenienceMethods(e, data);
|
989 |
+
}
|
990 |
+
var that = this,
|
991 |
+
jqXHR,
|
992 |
+
aborted,
|
993 |
+
slot,
|
994 |
+
pipe,
|
995 |
+
options = that._getAJAXSettings(data),
|
996 |
+
send = function() {
|
997 |
+
that._sending += 1;
|
998 |
+
// Set timer for bitrate progress calculation:
|
999 |
+
options._bitrateTimer = new that._BitrateTimer();
|
1000 |
+
jqXHR =
|
1001 |
+
jqXHR ||
|
1002 |
+
(
|
1003 |
+
((aborted ||
|
1004 |
+
that._trigger(
|
1005 |
+
'send',
|
1006 |
+
$.Event('send', { delegatedEvent: e }),
|
1007 |
+
options
|
1008 |
+
) === false) &&
|
1009 |
+
that._getXHRPromise(false, options.context, aborted)) ||
|
1010 |
+
that._chunkedUpload(options) ||
|
1011 |
+
$.ajax(options)
|
1012 |
+
)
|
1013 |
+
.done(function(result, textStatus, jqXHR) {
|
1014 |
+
that._onDone(result, textStatus, jqXHR, options);
|
1015 |
+
})
|
1016 |
+
.fail(function(jqXHR, textStatus, errorThrown) {
|
1017 |
+
that._onFail(jqXHR, textStatus, errorThrown, options);
|
1018 |
+
})
|
1019 |
+
.always(function(jqXHRorResult, textStatus, jqXHRorError) {
|
1020 |
+
that._deinitProgressListener(options);
|
1021 |
+
that._onAlways(
|
1022 |
+
jqXHRorResult,
|
1023 |
+
textStatus,
|
1024 |
+
jqXHRorError,
|
1025 |
+
options
|
1026 |
+
);
|
1027 |
+
that._sending -= 1;
|
1028 |
+
that._active -= 1;
|
1029 |
+
if (
|
1030 |
+
options.limitConcurrentUploads &&
|
1031 |
+
options.limitConcurrentUploads > that._sending
|
1032 |
+
) {
|
1033 |
+
// Start the next queued upload,
|
1034 |
+
// that has not been aborted:
|
1035 |
+
var nextSlot = that._slots.shift();
|
1036 |
+
while (nextSlot) {
|
1037 |
+
if (that._getDeferredState(nextSlot) === 'pending') {
|
1038 |
+
nextSlot.resolve();
|
1039 |
+
break;
|
1040 |
+
}
|
1041 |
+
nextSlot = that._slots.shift();
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
if (that._active === 0) {
|
1045 |
+
// The stop callback is triggered when all uploads have
|
1046 |
+
// been completed, equivalent to the global ajaxStop event:
|
1047 |
+
that._trigger('stop');
|
1048 |
+
}
|
1049 |
+
});
|
1050 |
+
return jqXHR;
|
1051 |
+
};
|
1052 |
+
this._beforeSend(e, options);
|
1053 |
+
if (
|
1054 |
+
this.options.sequentialUploads ||
|
1055 |
+
(this.options.limitConcurrentUploads &&
|
1056 |
+
this.options.limitConcurrentUploads <= this._sending)
|
1057 |
+
) {
|
1058 |
+
if (this.options.limitConcurrentUploads > 1) {
|
1059 |
+
slot = $.Deferred();
|
1060 |
+
this._slots.push(slot);
|
1061 |
+
pipe = slot.then(send);
|
1062 |
+
} else {
|
1063 |
+
this._sequence = this._sequence.then(send, send);
|
1064 |
+
pipe = this._sequence;
|
1065 |
+
}
|
1066 |
+
// Return the piped Promise object, enhanced with an abort method,
|
1067 |
+
// which is delegated to the jqXHR object of the current upload,
|
1068 |
+
// and jqXHR callbacks mapped to the equivalent Promise methods:
|
1069 |
+
pipe.abort = function() {
|
1070 |
+
aborted = [undefined, 'abort', 'abort'];
|
1071 |
+
if (!jqXHR) {
|
1072 |
+
if (slot) {
|
1073 |
+
slot.rejectWith(options.context, aborted);
|
1074 |
+
}
|
1075 |
+
return send();
|
1076 |
+
}
|
1077 |
+
return jqXHR.abort();
|
1078 |
+
};
|
1079 |
+
return this._enhancePromise(pipe);
|
1080 |
+
}
|
1081 |
+
return send();
|
1082 |
+
},
|
1083 |
+
|
1084 |
+
_onAdd: function(e, data) {
|
1085 |
+
var that = this,
|
1086 |
+
result = true,
|
1087 |
+
options = $.extend({}, this.options, data),
|
1088 |
+
files = data.files,
|
1089 |
+
filesLength = files.length,
|
1090 |
+
limit = options.limitMultiFileUploads,
|
1091 |
+
limitSize = options.limitMultiFileUploadSize,
|
1092 |
+
overhead = options.limitMultiFileUploadSizeOverhead,
|
1093 |
+
batchSize = 0,
|
1094 |
+
paramName = this._getParamName(options),
|
1095 |
+
paramNameSet,
|
1096 |
+
paramNameSlice,
|
1097 |
+
fileSet,
|
1098 |
+
i,
|
1099 |
+
j = 0;
|
1100 |
+
if (!filesLength) {
|
1101 |
+
return false;
|
1102 |
+
}
|
1103 |
+
if (limitSize && files[0].size === undefined) {
|
1104 |
+
limitSize = undefined;
|
1105 |
+
}
|
1106 |
+
if (
|
1107 |
+
!(options.singleFileUploads || limit || limitSize) ||
|
1108 |
+
!this._isXHRUpload(options)
|
1109 |
+
) {
|
1110 |
+
fileSet = [files];
|
1111 |
+
paramNameSet = [paramName];
|
1112 |
+
} else if (!(options.singleFileUploads || limitSize) && limit) {
|
1113 |
+
fileSet = [];
|
1114 |
+
paramNameSet = [];
|
1115 |
+
for (i = 0; i < filesLength; i += limit) {
|
1116 |
+
fileSet.push(files.slice(i, i + limit));
|
1117 |
+
paramNameSlice = paramName.slice(i, i + limit);
|
1118 |
+
if (!paramNameSlice.length) {
|
1119 |
+
paramNameSlice = paramName;
|
1120 |
+
}
|
1121 |
+
paramNameSet.push(paramNameSlice);
|
1122 |
+
}
|
1123 |
+
} else if (!options.singleFileUploads && limitSize) {
|
1124 |
+
fileSet = [];
|
1125 |
+
paramNameSet = [];
|
1126 |
+
for (i = 0; i < filesLength; i = i + 1) {
|
1127 |
+
batchSize += files[i].size + overhead;
|
1128 |
+
if (
|
1129 |
+
i + 1 === filesLength ||
|
1130 |
+
batchSize + files[i + 1].size + overhead > limitSize ||
|
1131 |
+
(limit && i + 1 - j >= limit)
|
1132 |
+
) {
|
1133 |
+
fileSet.push(files.slice(j, i + 1));
|
1134 |
+
paramNameSlice = paramName.slice(j, i + 1);
|
1135 |
+
if (!paramNameSlice.length) {
|
1136 |
+
paramNameSlice = paramName;
|
1137 |
+
}
|
1138 |
+
paramNameSet.push(paramNameSlice);
|
1139 |
+
j = i + 1;
|
1140 |
+
batchSize = 0;
|
1141 |
+
}
|
1142 |
+
}
|
1143 |
+
} else {
|
1144 |
+
paramNameSet = paramName;
|
1145 |
+
}
|
1146 |
+
data.originalFiles = files;
|
1147 |
+
$.each(fileSet || files, function(index, element) {
|
1148 |
+
var newData = $.extend({}, data);
|
1149 |
+
newData.files = fileSet ? element : [element];
|
1150 |
+
newData.paramName = paramNameSet[index];
|
1151 |
+
that._initResponseObject(newData);
|
1152 |
+
that._initProgressObject(newData);
|
1153 |
+
that._addConvenienceMethods(e, newData);
|
1154 |
+
result = that._trigger(
|
1155 |
+
'add',
|
1156 |
+
$.Event('add', { delegatedEvent: e }),
|
1157 |
+
newData
|
1158 |
+
);
|
1159 |
+
return result;
|
1160 |
+
});
|
1161 |
+
return result;
|
1162 |
+
},
|
1163 |
+
|
1164 |
+
_replaceFileInput: function(data) {
|
1165 |
+
var input = data.fileInput,
|
1166 |
+
inputClone = input.clone(true),
|
1167 |
+
restoreFocus = input.is(document.activeElement);
|
1168 |
+
// Add a reference for the new cloned file input to the data argument:
|
1169 |
+
data.fileInputClone = inputClone;
|
1170 |
+
$('<form></form>')
|
1171 |
+
.append(inputClone)[0]
|
1172 |
+
.reset();
|
1173 |
+
// Detaching allows to insert the fileInput on another form
|
1174 |
+
// without loosing the file input value:
|
1175 |
+
input.after(inputClone).detach();
|
1176 |
+
// If the fileInput had focus before it was detached,
|
1177 |
+
// restore focus to the inputClone.
|
1178 |
+
if (restoreFocus) {
|
1179 |
+
inputClone.focus();
|
1180 |
+
}
|
1181 |
+
// Avoid memory leaks with the detached file input:
|
1182 |
+
$.cleanData(input.unbind('remove'));
|
1183 |
+
// Replace the original file input element in the fileInput
|
1184 |
+
// elements set with the clone, which has been copied including
|
1185 |
+
// event handlers:
|
1186 |
+
this.options.fileInput = this.options.fileInput.map(function(i, el) {
|
1187 |
+
if (el === input[0]) {
|
1188 |
+
return inputClone[0];
|
1189 |
+
}
|
1190 |
+
return el;
|
1191 |
+
});
|
1192 |
+
// If the widget has been initialized on the file input itself,
|
1193 |
+
// override this.element with the file input clone:
|
1194 |
+
if (input[0] === this.element[0]) {
|
1195 |
+
this.element = inputClone;
|
1196 |
+
}
|
1197 |
+
},
|
1198 |
+
|
1199 |
+
_handleFileTreeEntry: function(entry, path) {
|
1200 |
+
var that = this,
|
1201 |
+
dfd = $.Deferred(),
|
1202 |
+
entries = [],
|
1203 |
+
dirReader,
|
1204 |
+
errorHandler = function(e) {
|
1205 |
+
if (e && !e.entry) {
|
1206 |
+
e.entry = entry;
|
1207 |
+
}
|
1208 |
+
// Since $.when returns immediately if one
|
1209 |
+
// Deferred is rejected, we use resolve instead.
|
1210 |
+
// This allows valid files and invalid items
|
1211 |
+
// to be returned together in one set:
|
1212 |
+
dfd.resolve([e]);
|
1213 |
+
},
|
1214 |
+
successHandler = function(entries) {
|
1215 |
+
that
|
1216 |
+
._handleFileTreeEntries(entries, path + entry.name + '/')
|
1217 |
+
.done(function(files) {
|
1218 |
+
dfd.resolve(files);
|
1219 |
+
})
|
1220 |
+
.fail(errorHandler);
|
1221 |
+
},
|
1222 |
+
readEntries = function() {
|
1223 |
+
dirReader.readEntries(function(results) {
|
1224 |
+
if (!results.length) {
|
1225 |
+
successHandler(entries);
|
1226 |
+
} else {
|
1227 |
+
entries = entries.concat(results);
|
1228 |
+
readEntries();
|
1229 |
+
}
|
1230 |
+
}, errorHandler);
|
1231 |
+
};
|
1232 |
+
// eslint-disable-next-line no-param-reassign
|
1233 |
+
path = path || '';
|
1234 |
+
if (entry.isFile) {
|
1235 |
+
if (entry._file) {
|
1236 |
+
// Workaround for Chrome bug #149735
|
1237 |
+
entry._file.relativePath = path;
|
1238 |
+
dfd.resolve(entry._file);
|
1239 |
+
} else {
|
1240 |
+
entry.file(function(file) {
|
1241 |
+
file.relativePath = path;
|
1242 |
+
dfd.resolve(file);
|
1243 |
+
}, errorHandler);
|
1244 |
+
}
|
1245 |
+
} else if (entry.isDirectory) {
|
1246 |
+
dirReader = entry.createReader();
|
1247 |
+
readEntries();
|
1248 |
+
} else {
|
1249 |
+
// Return an empty list for file system items
|
1250 |
+
// other than files or directories:
|
1251 |
+
dfd.resolve([]);
|
1252 |
+
}
|
1253 |
+
return dfd.promise();
|
1254 |
+
},
|
1255 |
+
|
1256 |
+
_handleFileTreeEntries: function(entries, path) {
|
1257 |
+
var that = this;
|
1258 |
+
return $.when
|
1259 |
+
.apply(
|
1260 |
+
$,
|
1261 |
+
$.map(entries, function(entry) {
|
1262 |
+
return that._handleFileTreeEntry(entry, path);
|
1263 |
+
})
|
1264 |
+
)
|
1265 |
+
.then(function() {
|
1266 |
+
return Array.prototype.concat.apply([], arguments);
|
1267 |
+
});
|
1268 |
+
},
|
1269 |
+
|
1270 |
+
_getDroppedFiles: function(dataTransfer) {
|
1271 |
+
// eslint-disable-next-line no-param-reassign
|
1272 |
+
dataTransfer = dataTransfer || {};
|
1273 |
+
var items = dataTransfer.items;
|
1274 |
+
if (
|
1275 |
+
items &&
|
1276 |
+
items.length &&
|
1277 |
+
(items[0].webkitGetAsEntry || items[0].getAsEntry)
|
1278 |
+
) {
|
1279 |
+
return this._handleFileTreeEntries(
|
1280 |
+
$.map(items, function(item) {
|
1281 |
+
var entry;
|
1282 |
+
if (item.webkitGetAsEntry) {
|
1283 |
+
entry = item.webkitGetAsEntry();
|
1284 |
+
if (entry) {
|
1285 |
+
// Workaround for Chrome bug #149735:
|
1286 |
+
entry._file = item.getAsFile();
|
1287 |
+
}
|
1288 |
+
return entry;
|
1289 |
+
}
|
1290 |
+
return item.getAsEntry();
|
1291 |
+
})
|
1292 |
+
);
|
1293 |
+
}
|
1294 |
+
return $.Deferred()
|
1295 |
+
.resolve($.makeArray(dataTransfer.files))
|
1296 |
+
.promise();
|
1297 |
+
},
|
1298 |
+
|
1299 |
+
_getSingleFileInputFiles: function(fileInput) {
|
1300 |
+
// eslint-disable-next-line no-param-reassign
|
1301 |
+
fileInput = $(fileInput);
|
1302 |
+
var entries =
|
1303 |
+
fileInput.prop('webkitEntries') || fileInput.prop('entries'),
|
1304 |
+
files,
|
1305 |
+
value;
|
1306 |
+
if (entries && entries.length) {
|
1307 |
+
return this._handleFileTreeEntries(entries);
|
1308 |
+
}
|
1309 |
+
files = $.makeArray(fileInput.prop('files'));
|
1310 |
+
if (!files.length) {
|
1311 |
+
value = fileInput.prop('value');
|
1312 |
+
if (!value) {
|
1313 |
+
return $.Deferred()
|
1314 |
+
.resolve([])
|
1315 |
+
.promise();
|
1316 |
+
}
|
1317 |
+
// If the files property is not available, the browser does not
|
1318 |
+
// support the File API and we add a pseudo File object with
|
1319 |
+
// the input value as name with path information removed:
|
1320 |
+
files = [{ name: value.replace(/^.*\\/, '') }];
|
1321 |
+
} else if (files[0].name === undefined && files[0].fileName) {
|
1322 |
+
// File normalization for Safari 4 and Firefox 3:
|
1323 |
+
$.each(files, function(index, file) {
|
1324 |
+
file.name = file.fileName;
|
1325 |
+
file.size = file.fileSize;
|
1326 |
+
});
|
1327 |
+
}
|
1328 |
+
return $.Deferred()
|
1329 |
+
.resolve(files)
|
1330 |
+
.promise();
|
1331 |
+
},
|
1332 |
+
|
1333 |
+
_getFileInputFiles: function(fileInput) {
|
1334 |
+
if (!(fileInput instanceof $) || fileInput.length === 1) {
|
1335 |
+
return this._getSingleFileInputFiles(fileInput);
|
1336 |
+
}
|
1337 |
+
return $.when
|
1338 |
+
.apply($, $.map(fileInput, this._getSingleFileInputFiles))
|
1339 |
+
.then(function() {
|
1340 |
+
return Array.prototype.concat.apply([], arguments);
|
1341 |
+
});
|
1342 |
+
},
|
1343 |
+
|
1344 |
+
_onChange: function(e) {
|
1345 |
+
var that = this,
|
1346 |
+
data = {
|
1347 |
+
fileInput: $(e.target),
|
1348 |
+
form: $(e.target.form)
|
1349 |
+
};
|
1350 |
+
this._getFileInputFiles(data.fileInput).always(function(files) {
|
1351 |
+
data.files = files;
|
1352 |
+
if (that.options.replaceFileInput) {
|
1353 |
+
that._replaceFileInput(data);
|
1354 |
+
}
|
1355 |
+
if (
|
1356 |
+
that._trigger(
|
1357 |
+
'change',
|
1358 |
+
$.Event('change', { delegatedEvent: e }),
|
1359 |
+
data
|
1360 |
+
) !== false
|
1361 |
+
) {
|
1362 |
+
that._onAdd(e, data);
|
1363 |
+
}
|
1364 |
+
});
|
1365 |
+
},
|
1366 |
+
|
1367 |
+
_onPaste: function(e) {
|
1368 |
+
var items =
|
1369 |
+
e.originalEvent &&
|
1370 |
+
e.originalEvent.clipboardData &&
|
1371 |
+
e.originalEvent.clipboardData.items,
|
1372 |
+
data = { files: [] };
|
1373 |
+
if (items && items.length) {
|
1374 |
+
$.each(items, function(index, item) {
|
1375 |
+
var file = item.getAsFile && item.getAsFile();
|
1376 |
+
if (file) {
|
1377 |
+
data.files.push(file);
|
1378 |
+
}
|
1379 |
+
});
|
1380 |
+
if (
|
1381 |
+
this._trigger(
|
1382 |
+
'paste',
|
1383 |
+
$.Event('paste', { delegatedEvent: e }),
|
1384 |
+
data
|
1385 |
+
) !== false
|
1386 |
+
) {
|
1387 |
+
this._onAdd(e, data);
|
1388 |
+
}
|
1389 |
+
}
|
1390 |
+
},
|
1391 |
+
|
1392 |
+
_onDrop: function(e) {
|
1393 |
+
e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
|
1394 |
+
var that = this,
|
1395 |
+
dataTransfer = e.dataTransfer,
|
1396 |
+
data = {};
|
1397 |
+
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
|
1398 |
+
e.preventDefault();
|
1399 |
+
this._getDroppedFiles(dataTransfer).always(function(files) {
|
1400 |
+
data.files = files;
|
1401 |
+
if (
|
1402 |
+
that._trigger(
|
1403 |
+
'drop',
|
1404 |
+
$.Event('drop', { delegatedEvent: e }),
|
1405 |
+
data
|
1406 |
+
) !== false
|
1407 |
+
) {
|
1408 |
+
that._onAdd(e, data);
|
1409 |
+
}
|
1410 |
+
});
|
1411 |
+
}
|
1412 |
+
},
|
1413 |
+
|
1414 |
+
_onDragOver: getDragHandler('dragover'),
|
1415 |
+
|
1416 |
+
_onDragEnter: getDragHandler('dragenter'),
|
1417 |
+
|
1418 |
+
_onDragLeave: getDragHandler('dragleave'),
|
1419 |
+
|
1420 |
+
_initEventHandlers: function() {
|
1421 |
+
if (this._isXHRUpload(this.options)) {
|
1422 |
+
this._on(this.options.dropZone, {
|
1423 |
+
dragover: this._onDragOver,
|
1424 |
+
drop: this._onDrop,
|
1425 |
+
// event.preventDefault() on dragenter is required for IE10+:
|
1426 |
+
dragenter: this._onDragEnter,
|
1427 |
+
// dragleave is not required, but added for completeness:
|
1428 |
+
dragleave: this._onDragLeave
|
1429 |
+
});
|
1430 |
+
this._on(this.options.pasteZone, {
|
1431 |
+
paste: this._onPaste
|
1432 |
+
});
|
1433 |
+
}
|
1434 |
+
if ($.support.fileInput) {
|
1435 |
+
this._on(this.options.fileInput, {
|
1436 |
+
change: this._onChange
|
1437 |
+
});
|
1438 |
+
}
|
1439 |
+
},
|
1440 |
+
|
1441 |
+
_destroyEventHandlers: function() {
|
1442 |
+
this._off(this.options.dropZone, 'dragenter dragleave dragover drop');
|
1443 |
+
this._off(this.options.pasteZone, 'paste');
|
1444 |
+
this._off(this.options.fileInput, 'change');
|
1445 |
+
},
|
1446 |
+
|
1447 |
+
_destroy: function() {
|
1448 |
+
this._destroyEventHandlers();
|
1449 |
+
},
|
1450 |
+
|
1451 |
+
_setOption: function(key, value) {
|
1452 |
+
var reinit = $.inArray(key, this._specialOptions) !== -1;
|
1453 |
+
if (reinit) {
|
1454 |
+
this._destroyEventHandlers();
|
1455 |
+
}
|
1456 |
+
this._super(key, value);
|
1457 |
+
if (reinit) {
|
1458 |
+
this._initSpecialOptions();
|
1459 |
+
this._initEventHandlers();
|
1460 |
+
}
|
1461 |
+
},
|
1462 |
+
|
1463 |
+
_initSpecialOptions: function() {
|
1464 |
+
var options = this.options;
|
1465 |
+
if (options.fileInput === undefined) {
|
1466 |
+
options.fileInput = this.element.is('input[type="file"]')
|
1467 |
+
? this.element
|
1468 |
+
: this.element.find('input[type="file"]');
|
1469 |
+
} else if (!(options.fileInput instanceof $)) {
|
1470 |
+
options.fileInput = $(options.fileInput);
|
1471 |
+
}
|
1472 |
+
if (!(options.dropZone instanceof $)) {
|
1473 |
+
options.dropZone = $(options.dropZone);
|
1474 |
+
}
|
1475 |
+
if (!(options.pasteZone instanceof $)) {
|
1476 |
+
options.pasteZone = $(options.pasteZone);
|
1477 |
+
}
|
1478 |
+
},
|
1479 |
+
|
1480 |
+
_getRegExp: function(str) {
|
1481 |
+
var parts = str.split('/'),
|
1482 |
+
modifiers = parts.pop();
|
1483 |
+
parts.shift();
|
1484 |
+
return new RegExp(parts.join('/'), modifiers);
|
1485 |
+
},
|
1486 |
+
|
1487 |
+
_isRegExpOption: function(key, value) {
|
1488 |
+
return (
|
1489 |
+
key !== 'url' &&
|
1490 |
+
$.type(value) === 'string' &&
|
1491 |
+
/^\/.*\/[igm]{0,3}$/.test(value)
|
1492 |
+
);
|
1493 |
+
},
|
1494 |
+
|
1495 |
+
_initDataAttributes: function() {
|
1496 |
+
var that = this,
|
1497 |
+
options = this.options,
|
1498 |
+
data = this.element.data();
|
1499 |
+
// Initialize options set via HTML5 data-attributes:
|
1500 |
+
$.each(this.element[0].attributes, function(index, attr) {
|
1501 |
+
var key = attr.name.toLowerCase(),
|
1502 |
+
value;
|
1503 |
+
if (/^data-/.test(key)) {
|
1504 |
+
// Convert hyphen-ated key to camelCase:
|
1505 |
+
key = key.slice(5).replace(/-[a-z]/g, function(str) {
|
1506 |
+
return str.charAt(1).toUpperCase();
|
1507 |
+
});
|
1508 |
+
value = data[key];
|
1509 |
+
if (that._isRegExpOption(key, value)) {
|
1510 |
+
value = that._getRegExp(value);
|
1511 |
+
}
|
1512 |
+
options[key] = value;
|
1513 |
+
}
|
1514 |
+
});
|
1515 |
+
},
|
1516 |
+
|
1517 |
+
_create: function() {
|
1518 |
+
this._initDataAttributes();
|
1519 |
+
this._initSpecialOptions();
|
1520 |
+
this._slots = [];
|
1521 |
+
this._sequence = this._getXHRPromise(true);
|
1522 |
+
this._sending = this._active = 0;
|
1523 |
+
this._initProgressObject(this);
|
1524 |
+
this._initEventHandlers();
|
1525 |
+
},
|
1526 |
+
|
1527 |
+
// This method is exposed to the widget API and allows to query
|
1528 |
+
// the number of active uploads:
|
1529 |
+
active: function() {
|
1530 |
+
return this._active;
|
1531 |
+
},
|
1532 |
+
|
1533 |
+
// This method is exposed to the widget API and allows to query
|
1534 |
+
// the widget upload progress.
|
1535 |
+
// It returns an object with loaded, total and bitrate properties
|
1536 |
+
// for the running uploads:
|
1537 |
+
progress: function() {
|
1538 |
+
return this._progress;
|
1539 |
+
},
|
1540 |
+
|
1541 |
+
// This method is exposed to the widget API and allows adding files
|
1542 |
+
// using the fileupload API. The data parameter accepts an object which
|
1543 |
+
// must have a files property and can contain additional options:
|
1544 |
+
// .fileupload('add', {files: filesList});
|
1545 |
+
add: function(data) {
|
1546 |
+
var that = this;
|
1547 |
+
if (!data || this.options.disabled) {
|
1548 |
+
return;
|
1549 |
+
}
|
1550 |
+
if (data.fileInput && !data.files) {
|
1551 |
+
this._getFileInputFiles(data.fileInput).always(function(files) {
|
1552 |
+
data.files = files;
|
1553 |
+
that._onAdd(null, data);
|
1554 |
+
});
|
1555 |
+
} else {
|
1556 |
+
data.files = $.makeArray(data.files);
|
1557 |
+
this._onAdd(null, data);
|
1558 |
+
}
|
1559 |
+
},
|
1560 |
+
|
1561 |
+
// This method is exposed to the widget API and allows sending files
|
1562 |
+
// using the fileupload API. The data parameter accepts an object which
|
1563 |
+
// must have a files or fileInput property and can contain additional options:
|
1564 |
+
// .fileupload('send', {files: filesList});
|
1565 |
+
// The method returns a Promise object for the file upload call.
|
1566 |
+
send: function(data) {
|
1567 |
+
if (data && !this.options.disabled) {
|
1568 |
+
if (data.fileInput && !data.files) {
|
1569 |
+
var that = this,
|
1570 |
+
dfd = $.Deferred(),
|
1571 |
+
promise = dfd.promise(),
|
1572 |
+
jqXHR,
|
1573 |
+
aborted;
|
1574 |
+
promise.abort = function() {
|
1575 |
+
aborted = true;
|
1576 |
+
if (jqXHR) {
|
1577 |
+
return jqXHR.abort();
|
1578 |
+
}
|
1579 |
+
dfd.reject(null, 'abort', 'abort');
|
1580 |
+
return promise;
|
1581 |
+
};
|
1582 |
+
this._getFileInputFiles(data.fileInput).always(function(files) {
|
1583 |
+
if (aborted) {
|
1584 |
+
return;
|
1585 |
+
}
|
1586 |
+
if (!files.length) {
|
1587 |
+
dfd.reject();
|
1588 |
+
return;
|
1589 |
+
}
|
1590 |
+
data.files = files;
|
1591 |
+
jqXHR = that._onSend(null, data);
|
1592 |
+
jqXHR.then(
|
1593 |
+
function(result, textStatus, jqXHR) {
|
1594 |
+
dfd.resolve(result, textStatus, jqXHR);
|
1595 |
+
},
|
1596 |
+
function(jqXHR, textStatus, errorThrown) {
|
1597 |
+
dfd.reject(jqXHR, textStatus, errorThrown);
|
1598 |
+
}
|
1599 |
+
);
|
1600 |
+
});
|
1601 |
+
return this._enhancePromise(promise);
|
1602 |
+
}
|
1603 |
+
data.files = $.makeArray(data.files);
|
1604 |
+
if (data.files.length) {
|
1605 |
+
return this._onSend(null, data);
|
1606 |
+
}
|
1607 |
+
}
|
1608 |
+
return this._getXHRPromise(false, data && data.context);
|
1609 |
+
}
|
1610 |
+
});
|
1611 |
+
});
|
vendors/jQuery-File-Upload/js/jquery.iframe-transport.js
ADDED
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery Iframe Transport Plugin
|
3 |
+
* https://github.com/blueimp/jQuery-File-Upload
|
4 |
+
*
|
5 |
+
* Copyright 2011, Sebastian Tschan
|
6 |
+
* https://blueimp.net
|
7 |
+
*
|
8 |
+
* Licensed under the MIT license:
|
9 |
+
* https://opensource.org/licenses/MIT
|
10 |
+
*/
|
11 |
+
|
12 |
+
/* global define, require */
|
13 |
+
|
14 |
+
(function(factory) {
|
15 |
+
'use strict';
|
16 |
+
if (typeof define === 'function' && define.amd) {
|
17 |
+
// Register as an anonymous AMD module:
|
18 |
+
define(['jquery'], factory);
|
19 |
+
} else if (typeof exports === 'object') {
|
20 |
+
// Node/CommonJS:
|
21 |
+
factory(require('jquery'));
|
22 |
+
} else {
|
23 |
+
// Browser globals:
|
24 |
+
factory(window.jQuery);
|
25 |
+
}
|
26 |
+
})(function($) {
|
27 |
+
'use strict';
|
28 |
+
|
29 |
+
// Helper variable to create unique names for the transport iframes:
|
30 |
+
var counter = 0,
|
31 |
+
jsonAPI = $,
|
32 |
+
jsonParse = 'parseJSON';
|
33 |
+
|
34 |
+
if ('JSON' in window && 'parse' in JSON) {
|
35 |
+
jsonAPI = JSON;
|
36 |
+
jsonParse = 'parse';
|
37 |
+
}
|
38 |
+
|
39 |
+
// The iframe transport accepts four additional options:
|
40 |
+
// options.fileInput: a jQuery collection of file input fields
|
41 |
+
// options.paramName: the parameter name for the file form data,
|
42 |
+
// overrides the name property of the file input field(s),
|
43 |
+
// can be a string or an array of strings.
|
44 |
+
// options.formData: an array of objects with name and value properties,
|
45 |
+
// equivalent to the return data of .serializeArray(), e.g.:
|
46 |
+
// [{name: 'a', value: 1}, {name: 'b', value: 2}]
|
47 |
+
// options.initialIframeSrc: the URL of the initial iframe src,
|
48 |
+
// by default set to "javascript:false;"
|
49 |
+
$.ajaxTransport('iframe', function(options) {
|
50 |
+
if (options.async) {
|
51 |
+
// javascript:false as initial iframe src
|
52 |
+
// prevents warning popups on HTTPS in IE6:
|
53 |
+
// eslint-disable-next-line no-script-url
|
54 |
+
var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
|
55 |
+
form,
|
56 |
+
iframe,
|
57 |
+
addParamChar;
|
58 |
+
return {
|
59 |
+
send: function(_, completeCallback) {
|
60 |
+
form = $('<form style="display:none;"></form>');
|
61 |
+
form.attr('accept-charset', options.formAcceptCharset);
|
62 |
+
addParamChar = /\?/.test(options.url) ? '&' : '?';
|
63 |
+
// XDomainRequest only supports GET and POST:
|
64 |
+
if (options.type === 'DELETE') {
|
65 |
+
options.url = options.url + addParamChar + '_method=DELETE';
|
66 |
+
options.type = 'POST';
|
67 |
+
} else if (options.type === 'PUT') {
|
68 |
+
options.url = options.url + addParamChar + '_method=PUT';
|
69 |
+
options.type = 'POST';
|
70 |
+
} else if (options.type === 'PATCH') {
|
71 |
+
options.url = options.url + addParamChar + '_method=PATCH';
|
72 |
+
options.type = 'POST';
|
73 |
+
}
|
74 |
+
// IE versions below IE8 cannot set the name property of
|
75 |
+
// elements that have already been added to the DOM,
|
76 |
+
// so we set the name along with the iframe HTML markup:
|
77 |
+
counter += 1;
|
78 |
+
iframe = $(
|
79 |
+
'<iframe src="' +
|
80 |
+
initialIframeSrc +
|
81 |
+
'" name="iframe-transport-' +
|
82 |
+
counter +
|
83 |
+
'"></iframe>'
|
84 |
+
).bind('load', function() {
|
85 |
+
var fileInputClones,
|
86 |
+
paramNames = $.isArray(options.paramName)
|
87 |
+
? options.paramName
|
88 |
+
: [options.paramName];
|
89 |
+
iframe.unbind('load').bind('load', function() {
|
90 |
+
var response;
|
91 |
+
// Wrap in a try/catch block to catch exceptions thrown
|
92 |
+
// when trying to access cross-domain iframe contents:
|
93 |
+
try {
|
94 |
+
response = iframe.contents();
|
95 |
+
// Google Chrome and Firefox do not throw an
|
96 |
+
// exception when calling iframe.contents() on
|
97 |
+
// cross-domain requests, so we unify the response:
|
98 |
+
if (!response.length || !response[0].firstChild) {
|
99 |
+
throw new Error();
|
100 |
+
}
|
101 |
+
} catch (e) {
|
102 |
+
response = undefined;
|
103 |
+
}
|
104 |
+
// The complete callback returns the
|
105 |
+
// iframe content document as response object:
|
106 |
+
completeCallback(200, 'success', { iframe: response });
|
107 |
+
// Fix for IE endless progress bar activity bug
|
108 |
+
// (happens on form submits to iframe targets):
|
109 |
+
$('<iframe src="' + initialIframeSrc + '"></iframe>').appendTo(
|
110 |
+
form
|
111 |
+
);
|
112 |
+
window.setTimeout(function() {
|
113 |
+
// Removing the form in a setTimeout call
|
114 |
+
// allows Chrome's developer tools to display
|
115 |
+
// the response result
|
116 |
+
form.remove();
|
117 |
+
}, 0);
|
118 |
+
});
|
119 |
+
form
|
120 |
+
.prop('target', iframe.prop('name'))
|
121 |
+
.prop('action', options.url)
|
122 |
+
.prop('method', options.type);
|
123 |
+
if (options.formData) {
|
124 |
+
$.each(options.formData, function(index, field) {
|
125 |
+
$('<input type="hidden"/>')
|
126 |
+
.prop('name', field.name)
|
127 |
+
.val(field.value)
|
128 |
+
.appendTo(form);
|
129 |
+
});
|
130 |
+
}
|
131 |
+
if (
|
132 |
+
options.fileInput &&
|
133 |
+
options.fileInput.length &&
|
134 |
+
options.type === 'POST'
|
135 |
+
) {
|
136 |
+
fileInputClones = options.fileInput.clone();
|
137 |
+
// Insert a clone for each file input field:
|
138 |
+
options.fileInput.after(function(index) {
|
139 |
+
return fileInputClones[index];
|
140 |
+
});
|
141 |
+
if (options.paramName) {
|
142 |
+
options.fileInput.each(function(index) {
|
143 |
+
$(this).prop('name', paramNames[index] || options.paramName);
|
144 |
+
});
|
145 |
+
}
|
146 |
+
// Appending the file input fields to the hidden form
|
147 |
+
// removes them from their original location:
|
148 |
+
form
|
149 |
+
.append(options.fileInput)
|
150 |
+
.prop('enctype', 'multipart/form-data')
|
151 |
+
// enctype must be set as encoding for IE:
|
152 |
+
.prop('encoding', 'multipart/form-data');
|
153 |
+
// Remove the HTML5 form attribute from the input(s):
|
154 |
+
options.fileInput.removeAttr('form');
|
155 |
+
}
|
156 |
+
form.submit();
|
157 |
+
// Insert the file input fields at their original location
|
158 |
+
// by replacing the clones with the originals:
|
159 |
+
if (fileInputClones && fileInputClones.length) {
|
160 |
+
options.fileInput.each(function(index, input) {
|
161 |
+
var clone = $(fileInputClones[index]);
|
162 |
+
// Restore the original name and form properties:
|
163 |
+
$(input)
|
164 |
+
.prop('name', clone.prop('name'))
|
165 |
+
.attr('form', clone.attr('form'));
|
166 |
+
clone.replaceWith(input);
|
167 |
+
});
|
168 |
+
}
|
169 |
+
});
|
170 |
+
form.append(iframe).appendTo(document.body);
|
171 |
+
},
|
172 |
+
abort: function() {
|
173 |
+
if (iframe) {
|
174 |
+
// javascript:false as iframe src aborts the request
|
175 |
+
// and prevents warning popups on HTTPS in IE6.
|
176 |
+
iframe.unbind('load').prop('src', initialIframeSrc);
|
177 |
+
}
|
178 |
+
if (form) {
|
179 |
+
form.remove();
|
180 |
+
}
|
181 |
+
}
|
182 |
+
};
|
183 |
+
}
|
184 |
+
});
|
185 |
+
|
186 |
+
// The iframe transport returns the iframe content document as response.
|
187 |
+
// The following adds converters from iframe to text, json, html, xml
|
188 |
+
// and script.
|
189 |
+
// Please note that the Content-Type for JSON responses has to be text/plain
|
190 |
+
// or text/html, if the browser doesn't include application/json in the
|
191 |
+
// Accept header, else IE will show a download dialog.
|
192 |
+
// The Content-Type for XML responses on the other hand has to be always
|
193 |
+
// application/xml or text/xml, so IE properly parses the XML response.
|
194 |
+
// See also
|
195 |
+
// https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
|
196 |
+
$.ajaxSetup({
|
197 |
+
converters: {
|
198 |
+
'iframe text': function(iframe) {
|
199 |
+
return iframe && $(iframe[0].body).text();
|
200 |
+
},
|
201 |
+
'iframe json': function(iframe) {
|
202 |
+
return iframe && jsonAPI[jsonParse]($(iframe[0].body).text());
|
203 |
+
},
|
204 |
+
'iframe html': function(iframe) {
|
205 |
+
return iframe && $(iframe[0].body).html();
|
206 |
+
},
|
207 |
+
'iframe xml': function(iframe) {
|
208 |
+
var xmlDoc = iframe && iframe[0];
|
209 |
+
return xmlDoc && $.isXMLDoc(xmlDoc)
|
210 |
+
? xmlDoc
|
211 |
+
: $.parseXML(
|
212 |
+
(xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
|
213 |
+
$(xmlDoc.body).html()
|
214 |
+
);
|
215 |
+
},
|
216 |
+
'iframe script': function(iframe) {
|
217 |
+
return iframe && $.globalEval($(iframe[0].body).text());
|
218 |
+
}
|
219 |
+
}
|
220 |
+
});
|
221 |
+
});
|
vendors/{jQuery-File-Upload-9.32.0 → jQuery-File-Upload}/js/vendor/jquery.ui.widget.js
RENAMED
File without changes
|
vendors/jQuery-File-Upload/package-lock.json
ADDED
@@ -0,0 +1,3989 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "blueimp-file-upload",
|
3 |
+
"version": "10.7.0",
|
4 |
+
"lockfileVersion": 1,
|
5 |
+
"requires": true,
|
6 |
+
"dependencies": {
|
7 |
+
"@babel/code-frame": {
|
8 |
+
"version": "7.5.5",
|
9 |
+
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
|
10 |
+
"integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
|
11 |
+
"dev": true,
|
12 |
+
"requires": {
|
13 |
+
"@babel/highlight": "^7.0.0"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"@babel/core": {
|
17 |
+
"version": "7.5.5",
|
18 |
+
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
|
19 |
+
"integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
|
20 |
+
"dev": true,
|
21 |
+
"requires": {
|
22 |
+
"@babel/code-frame": "^7.5.5",
|
23 |
+
"@babel/generator": "^7.5.5",
|
24 |
+
"@babel/helpers": "^7.5.5",
|
25 |
+
"@babel/parser": "^7.5.5",
|
26 |
+
"@babel/template": "^7.4.4",
|
27 |
+
"@babel/traverse": "^7.5.5",
|
28 |
+
"@babel/types": "^7.5.5",
|
29 |
+
"convert-source-map": "^1.1.0",
|
30 |
+
"debug": "^4.1.0",
|
31 |
+
"json5": "^2.1.0",
|
32 |
+
"lodash": "^4.17.13",
|
33 |
+
"resolve": "^1.3.2",
|
34 |
+
"semver": "^5.4.1",
|
35 |
+
"source-map": "^0.5.0"
|
36 |
+
},
|
37 |
+
"dependencies": {
|
38 |
+
"semver": {
|
39 |
+
"version": "5.7.1",
|
40 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
41 |
+
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
42 |
+
"dev": true
|
43 |
+
},
|
44 |
+
"source-map": {
|
45 |
+
"version": "0.5.7",
|
46 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
47 |
+
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
48 |
+
"dev": true
|
49 |
+
}
|
50 |
+
}
|
51 |
+
},
|
52 |
+
"@babel/generator": {
|
53 |
+
"version": "7.5.5",
|
54 |
+
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
|
55 |
+
"integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
|
56 |
+
"dev": true,
|
57 |
+
"requires": {
|
58 |
+
"@babel/types": "^7.5.5",
|
59 |
+
"jsesc": "^2.5.1",
|
60 |
+
"lodash": "^4.17.13",
|
61 |
+
"source-map": "^0.5.0",
|
62 |
+
"trim-right": "^1.0.1"
|
63 |
+
},
|
64 |
+
"dependencies": {
|
65 |
+
"source-map": {
|
66 |
+
"version": "0.5.7",
|
67 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
68 |
+
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
69 |
+
"dev": true
|
70 |
+
}
|
71 |
+
}
|
72 |
+
},
|
73 |
+
"@babel/helper-function-name": {
|
74 |
+
"version": "7.1.0",
|
75 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
|
76 |
+
"integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
|
77 |
+
"dev": true,
|
78 |
+
"requires": {
|
79 |
+
"@babel/helper-get-function-arity": "^7.0.0",
|
80 |
+
"@babel/template": "^7.1.0",
|
81 |
+
"@babel/types": "^7.0.0"
|
82 |
+
}
|
83 |
+
},
|
84 |
+
"@babel/helper-get-function-arity": {
|
85 |
+
"version": "7.0.0",
|
86 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
|
87 |
+
"integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
|
88 |
+
"dev": true,
|
89 |
+
"requires": {
|
90 |
+
"@babel/types": "^7.0.0"
|
91 |
+
}
|
92 |
+
},
|
93 |
+
"@babel/helper-split-export-declaration": {
|
94 |
+
"version": "7.4.4",
|
95 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
|
96 |
+
"integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
|
97 |
+
"dev": true,
|
98 |
+
"requires": {
|
99 |
+
"@babel/types": "^7.4.4"
|
100 |
+
}
|
101 |
+
},
|
102 |
+
"@babel/helpers": {
|
103 |
+
"version": "7.5.5",
|
104 |
+
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
|
105 |
+
"integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
|
106 |
+
"dev": true,
|
107 |
+
"requires": {
|
108 |
+
"@babel/template": "^7.4.4",
|
109 |
+
"@babel/traverse": "^7.5.5",
|
110 |
+
"@babel/types": "^7.5.5"
|
111 |
+
}
|
112 |
+
},
|
113 |
+
"@babel/highlight": {
|
114 |
+
"version": "7.5.0",
|
115 |
+
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
|
116 |
+
"integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
|
117 |
+
"dev": true,
|
118 |
+
"requires": {
|
119 |
+
"chalk": "^2.0.0",
|
120 |
+
"esutils": "^2.0.2",
|
121 |
+
"js-tokens": "^4.0.0"
|
122 |
+
}
|
123 |
+
},
|
124 |
+
"@babel/parser": {
|
125 |
+
"version": "7.5.5",
|
126 |
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
|
127 |
+
"integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
|
128 |
+
"dev": true
|
129 |
+
},
|
130 |
+
"@babel/template": {
|
131 |
+
"version": "7.4.4",
|
132 |
+
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
|
133 |
+
"integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
|
134 |
+
"dev": true,
|
135 |
+
"requires": {
|
136 |
+
"@babel/code-frame": "^7.0.0",
|
137 |
+
"@babel/parser": "^7.4.4",
|
138 |
+
"@babel/types": "^7.4.4"
|
139 |
+
}
|
140 |
+
},
|
141 |
+
"@babel/traverse": {
|
142 |
+
"version": "7.5.5",
|
143 |
+
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
|
144 |
+
"integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
|
145 |
+
"dev": true,
|
146 |
+
"requires": {
|
147 |
+
"@babel/code-frame": "^7.5.5",
|
148 |
+
"@babel/generator": "^7.5.5",
|
149 |
+
"@babel/helper-function-name": "^7.1.0",
|
150 |
+
"@babel/helper-split-export-declaration": "^7.4.4",
|
151 |
+
"@babel/parser": "^7.5.5",
|
152 |
+
"@babel/types": "^7.5.5",
|
153 |
+
"debug": "^4.1.0",
|
154 |
+
"globals": "^11.1.0",
|
155 |
+
"lodash": "^4.17.13"
|
156 |
+
}
|
157 |
+
},
|
158 |
+
"@babel/types": {
|
159 |
+
"version": "7.5.5",
|
160 |
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
|
161 |
+
"integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
|
162 |
+
"dev": true,
|
163 |
+
"requires": {
|
164 |
+
"esutils": "^2.0.2",
|
165 |
+
"lodash": "^4.17.13",
|
166 |
+
"to-fast-properties": "^2.0.0"
|
167 |
+
}
|
168 |
+
},
|
169 |
+
"@mrmlnc/readdir-enhanced": {
|
170 |
+
"version": "2.2.1",
|
171 |
+
"resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
|
172 |
+
"integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
|
173 |
+
"dev": true,
|
174 |
+
"requires": {
|
175 |
+
"call-me-maybe": "^1.0.1",
|
176 |
+
"glob-to-regexp": "^0.3.0"
|
177 |
+
}
|
178 |
+
},
|
179 |
+
"@nodelib/fs.stat": {
|
180 |
+
"version": "1.1.3",
|
181 |
+
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
|
182 |
+
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
|
183 |
+
"dev": true
|
184 |
+
},
|
185 |
+
"@types/events": {
|
186 |
+
"version": "3.0.0",
|
187 |
+
"resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
|
188 |
+
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
|
189 |
+
"dev": true
|
190 |
+
},
|
191 |
+
"@types/glob": {
|
192 |
+
"version": "7.1.1",
|
193 |
+
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
|
194 |
+
"integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
|
195 |
+
"dev": true,
|
196 |
+
"requires": {
|
197 |
+
"@types/events": "*",
|
198 |
+
"@types/minimatch": "*",
|
199 |
+
"@types/node": "*"
|
200 |
+
}
|
201 |
+
},
|
202 |
+
"@types/minimatch": {
|
203 |
+
"version": "3.0.3",
|
204 |
+
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
|
205 |
+
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
|
206 |
+
"dev": true
|
207 |
+
},
|
208 |
+
"@types/node": {
|
209 |
+
"version": "12.7.2",
|
210 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz",
|
211 |
+
"integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==",
|
212 |
+
"dev": true
|
213 |
+
},
|
214 |
+
"@types/unist": {
|
215 |
+
"version": "2.0.3",
|
216 |
+
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
|
217 |
+
"integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==",
|
218 |
+
"dev": true
|
219 |
+
},
|
220 |
+
"@types/vfile": {
|
221 |
+
"version": "3.0.2",
|
222 |
+
"resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz",
|
223 |
+
"integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==",
|
224 |
+
"dev": true,
|
225 |
+
"requires": {
|
226 |
+
"@types/node": "*",
|
227 |
+
"@types/unist": "*",
|
228 |
+
"@types/vfile-message": "*"
|
229 |
+
}
|
230 |
+
},
|
231 |
+
"@types/vfile-message": {
|
232 |
+
"version": "1.0.1",
|
233 |
+
"resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-1.0.1.tgz",
|
234 |
+
"integrity": "sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==",
|
235 |
+
"dev": true,
|
236 |
+
"requires": {
|
237 |
+
"@types/node": "*",
|
238 |
+
"@types/unist": "*"
|
239 |
+
}
|
240 |
+
},
|
241 |
+
"acorn": {
|
242 |
+
"version": "7.0.0",
|
243 |
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz",
|
244 |
+
"integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==",
|
245 |
+
"dev": true
|
246 |
+
},
|
247 |
+
"acorn-jsx": {
|
248 |
+
"version": "5.0.2",
|
249 |
+
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz",
|
250 |
+
"integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==",
|
251 |
+
"dev": true
|
252 |
+
},
|
253 |
+
"ajv": {
|
254 |
+
"version": "6.10.2",
|
255 |
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
256 |
+
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
257 |
+
"dev": true,
|
258 |
+
"requires": {
|
259 |
+
"fast-deep-equal": "^2.0.1",
|
260 |
+
"fast-json-stable-stringify": "^2.0.0",
|
261 |
+
"json-schema-traverse": "^0.4.1",
|
262 |
+
"uri-js": "^4.2.2"
|
263 |
+
}
|
264 |
+
},
|
265 |
+
"ansi-escapes": {
|
266 |
+
"version": "3.2.0",
|
267 |
+
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
|
268 |
+
"integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
|
269 |
+
"dev": true
|
270 |
+
},
|
271 |
+
"ansi-regex": {
|
272 |
+
"version": "3.0.0",
|
273 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
274 |
+
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
275 |
+
"dev": true
|
276 |
+
},
|
277 |
+
"ansi-styles": {
|
278 |
+
"version": "3.2.1",
|
279 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
280 |
+
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
281 |
+
"dev": true,
|
282 |
+
"requires": {
|
283 |
+
"color-convert": "^1.9.0"
|
284 |
+
}
|
285 |
+
},
|
286 |
+
"argparse": {
|
287 |
+
"version": "1.0.10",
|
288 |
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
289 |
+
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
290 |
+
"dev": true,
|
291 |
+
"requires": {
|
292 |
+
"sprintf-js": "~1.0.2"
|
293 |
+
}
|
294 |
+
},
|
295 |
+
"arr-diff": {
|
296 |
+
"version": "4.0.0",
|
297 |
+
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
298 |
+
"integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
|
299 |
+
"dev": true
|
300 |
+
},
|
301 |
+
"arr-flatten": {
|
302 |
+
"version": "1.1.0",
|
303 |
+
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
|
304 |
+
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
|
305 |
+
"dev": true
|
306 |
+
},
|
307 |
+
"arr-union": {
|
308 |
+
"version": "3.1.0",
|
309 |
+
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
|
310 |
+
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
|
311 |
+
"dev": true
|
312 |
+
},
|
313 |
+
"array-find-index": {
|
314 |
+
"version": "1.0.2",
|
315 |
+
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
316 |
+
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
|
317 |
+
"dev": true
|
318 |
+
},
|
319 |
+
"array-union": {
|
320 |
+
"version": "1.0.2",
|
321 |
+
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
322 |
+
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
|
323 |
+
"dev": true,
|
324 |
+
"requires": {
|
325 |
+
"array-uniq": "^1.0.1"
|
326 |
+
}
|
327 |
+
},
|
328 |
+
"array-uniq": {
|
329 |
+
"version": "1.0.3",
|
330 |
+
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
331 |
+
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
|
332 |
+
"dev": true
|
333 |
+
},
|
334 |
+
"array-unique": {
|
335 |
+
"version": "0.3.2",
|
336 |
+
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
337 |
+
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
|
338 |
+
"dev": true
|
339 |
+
},
|
340 |
+
"arrify": {
|
341 |
+
"version": "1.0.1",
|
342 |
+
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
|
343 |
+
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
344 |
+
"dev": true
|
345 |
+
},
|
346 |
+
"assign-symbols": {
|
347 |
+
"version": "1.0.0",
|
348 |
+
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
349 |
+
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
|
350 |
+
"dev": true
|
351 |
+
},
|
352 |
+
"astral-regex": {
|
353 |
+
"version": "1.0.0",
|
354 |
+
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
|
355 |
+
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
|
356 |
+
"dev": true
|
357 |
+
},
|
358 |
+
"atob": {
|
359 |
+
"version": "2.1.2",
|
360 |
+
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
|
361 |
+
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
|
362 |
+
"dev": true
|
363 |
+
},
|
364 |
+
"autoprefixer": {
|
365 |
+
"version": "9.6.1",
|
366 |
+
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
|
367 |
+
"integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
|
368 |
+
"dev": true,
|
369 |
+
"requires": {
|
370 |
+
"browserslist": "^4.6.3",
|
371 |
+
"caniuse-lite": "^1.0.30000980",
|
372 |
+
"chalk": "^2.4.2",
|
373 |
+
"normalize-range": "^0.1.2",
|
374 |
+
"num2fraction": "^1.2.2",
|
375 |
+
"postcss": "^7.0.17",
|
376 |
+
"postcss-value-parser": "^4.0.0"
|
377 |
+
},
|
378 |
+
"dependencies": {
|
379 |
+
"postcss-value-parser": {
|
380 |
+
"version": "4.0.2",
|
381 |
+
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
|
382 |
+
"integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
|
383 |
+
"dev": true
|
384 |
+
}
|
385 |
+
}
|
386 |
+
},
|
387 |
+
"bail": {
|
388 |
+
"version": "1.0.4",
|
389 |
+
"resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz",
|
390 |
+
"integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==",
|
391 |
+
"dev": true
|
392 |
+
},
|
393 |
+
"balanced-match": {
|
394 |
+
"version": "1.0.0",
|
395 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
396 |
+
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
397 |
+
"dev": true
|
398 |
+
},
|
399 |
+
"base": {
|
400 |
+
"version": "0.11.2",
|
401 |
+
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
|
402 |
+
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
|
403 |
+
"dev": true,
|
404 |
+
"requires": {
|
405 |
+
"cache-base": "^1.0.1",
|
406 |
+
"class-utils": "^0.3.5",
|
407 |
+
"component-emitter": "^1.2.1",
|
408 |
+
"define-property": "^1.0.0",
|
409 |
+
"isobject": "^3.0.1",
|
410 |
+
"mixin-deep": "^1.2.0",
|
411 |
+
"pascalcase": "^0.1.1"
|
412 |
+
},
|
413 |
+
"dependencies": {
|
414 |
+
"define-property": {
|
415 |
+
"version": "1.0.0",
|
416 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
417 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
418 |
+
"dev": true,
|
419 |
+
"requires": {
|
420 |
+
"is-descriptor": "^1.0.0"
|
421 |
+
}
|
422 |
+
},
|
423 |
+
"is-accessor-descriptor": {
|
424 |
+
"version": "1.0.0",
|
425 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
426 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
427 |
+
"dev": true,
|
428 |
+
"requires": {
|
429 |
+
"kind-of": "^6.0.0"
|
430 |
+
}
|
431 |
+
},
|
432 |
+
"is-data-descriptor": {
|
433 |
+
"version": "1.0.0",
|
434 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
435 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
436 |
+
"dev": true,
|
437 |
+
"requires": {
|
438 |
+
"kind-of": "^6.0.0"
|
439 |
+
}
|
440 |
+
},
|
441 |
+
"is-descriptor": {
|
442 |
+
"version": "1.0.2",
|
443 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
444 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
445 |
+
"dev": true,
|
446 |
+
"requires": {
|
447 |
+
"is-accessor-descriptor": "^1.0.0",
|
448 |
+
"is-data-descriptor": "^1.0.0",
|
449 |
+
"kind-of": "^6.0.2"
|
450 |
+
}
|
451 |
+
}
|
452 |
+
}
|
453 |
+
},
|
454 |
+
"blueimp-canvas-to-blob": {
|
455 |
+
"version": "3.16.0",
|
456 |
+
"resolved": "https://registry.npmjs.org/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.16.0.tgz",
|
457 |
+
"integrity": "sha512-r5TRlxH5Y0iKrRajCfiW1K4o2U1JniarjLXuNJrC5nnlWV/UopieF8sysw9pAYBauxg2I3Ah1hUp3NEuinwmkA==",
|
458 |
+
"optional": true
|
459 |
+
},
|
460 |
+
"blueimp-load-image": {
|
461 |
+
"version": "2.24.0",
|
462 |
+
"resolved": "https://registry.npmjs.org/blueimp-load-image/-/blueimp-load-image-2.24.0.tgz",
|
463 |
+
"integrity": "sha512-fR/CNGEOqbcgbQC7+6hJKcxjD5updapWECbptrHrYpkacP1eXCOoA+92D0v49Sc+gwtxTDzu8nxNmYYd7AXzUg==",
|
464 |
+
"optional": true
|
465 |
+
},
|
466 |
+
"blueimp-tmpl": {
|
467 |
+
"version": "3.13.0",
|
468 |
+
"resolved": "https://registry.npmjs.org/blueimp-tmpl/-/blueimp-tmpl-3.13.0.tgz",
|
469 |
+
"integrity": "sha512-TC5eLXhPGGgBJG1gGxKRORB5DMxSVSTS/GsqsQuJ+shv0Ez5wc9bjoXVhPqtdbzVZAzFvveasAMrjqEYY/18Og==",
|
470 |
+
"optional": true
|
471 |
+
},
|
472 |
+
"brace-expansion": {
|
473 |
+
"version": "1.1.11",
|
474 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
475 |
+
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
476 |
+
"dev": true,
|
477 |
+
"requires": {
|
478 |
+
"balanced-match": "^1.0.0",
|
479 |
+
"concat-map": "0.0.1"
|
480 |
+
}
|
481 |
+
},
|
482 |
+
"braces": {
|
483 |
+
"version": "2.3.2",
|
484 |
+
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
|
485 |
+
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
|
486 |
+
"dev": true,
|
487 |
+
"requires": {
|
488 |
+
"arr-flatten": "^1.1.0",
|
489 |
+
"array-unique": "^0.3.2",
|
490 |
+
"extend-shallow": "^2.0.1",
|
491 |
+
"fill-range": "^4.0.0",
|
492 |
+
"isobject": "^3.0.1",
|
493 |
+
"repeat-element": "^1.1.2",
|
494 |
+
"snapdragon": "^0.8.1",
|
495 |
+
"snapdragon-node": "^2.0.1",
|
496 |
+
"split-string": "^3.0.2",
|
497 |
+
"to-regex": "^3.0.1"
|
498 |
+
},
|
499 |
+
"dependencies": {
|
500 |
+
"extend-shallow": {
|
501 |
+
"version": "2.0.1",
|
502 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
503 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
504 |
+
"dev": true,
|
505 |
+
"requires": {
|
506 |
+
"is-extendable": "^0.1.0"
|
507 |
+
}
|
508 |
+
}
|
509 |
+
}
|
510 |
+
},
|
511 |
+
"browserslist": {
|
512 |
+
"version": "4.6.6",
|
513 |
+
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
|
514 |
+
"integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
|
515 |
+
"dev": true,
|
516 |
+
"requires": {
|
517 |
+
"caniuse-lite": "^1.0.30000984",
|
518 |
+
"electron-to-chromium": "^1.3.191",
|
519 |
+
"node-releases": "^1.1.25"
|
520 |
+
}
|
521 |
+
},
|
522 |
+
"cache-base": {
|
523 |
+
"version": "1.0.1",
|
524 |
+
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
525 |
+
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
|
526 |
+
"dev": true,
|
527 |
+
"requires": {
|
528 |
+
"collection-visit": "^1.0.0",
|
529 |
+
"component-emitter": "^1.2.1",
|
530 |
+
"get-value": "^2.0.6",
|
531 |
+
"has-value": "^1.0.0",
|
532 |
+
"isobject": "^3.0.1",
|
533 |
+
"set-value": "^2.0.0",
|
534 |
+
"to-object-path": "^0.3.0",
|
535 |
+
"union-value": "^1.0.0",
|
536 |
+
"unset-value": "^1.0.0"
|
537 |
+
}
|
538 |
+
},
|
539 |
+
"call-me-maybe": {
|
540 |
+
"version": "1.0.1",
|
541 |
+
"resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
|
542 |
+
"integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
|
543 |
+
"dev": true
|
544 |
+
},
|
545 |
+
"caller-callsite": {
|
546 |
+
"version": "2.0.0",
|
547 |
+
"resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
|
548 |
+
"integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
|
549 |
+
"dev": true,
|
550 |
+
"requires": {
|
551 |
+
"callsites": "^2.0.0"
|
552 |
+
},
|
553 |
+
"dependencies": {
|
554 |
+
"callsites": {
|
555 |
+
"version": "2.0.0",
|
556 |
+
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
|
557 |
+
"integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
|
558 |
+
"dev": true
|
559 |
+
}
|
560 |
+
}
|
561 |
+
},
|
562 |
+
"caller-path": {
|
563 |
+
"version": "2.0.0",
|
564 |
+
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
|
565 |
+
"integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
|
566 |
+
"dev": true,
|
567 |
+
"requires": {
|
568 |
+
"caller-callsite": "^2.0.0"
|
569 |
+
}
|
570 |
+
},
|
571 |
+
"callsites": {
|
572 |
+
"version": "3.1.0",
|
573 |
+
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
574 |
+
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
575 |
+
"dev": true
|
576 |
+
},
|
577 |
+
"camelcase": {
|
578 |
+
"version": "4.1.0",
|
579 |
+
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
|
580 |
+
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
581 |
+
"dev": true
|
582 |
+
},
|
583 |
+
"camelcase-keys": {
|
584 |
+
"version": "4.2.0",
|
585 |
+
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
|
586 |
+
"integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
|
587 |
+
"dev": true,
|
588 |
+
"requires": {
|
589 |
+
"camelcase": "^4.1.0",
|
590 |
+
"map-obj": "^2.0.0",
|
591 |
+
"quick-lru": "^1.0.0"
|
592 |
+
}
|
593 |
+
},
|
594 |
+
"caniuse-lite": {
|
595 |
+
"version": "1.0.30000989",
|
596 |
+
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
|
597 |
+
"integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
|
598 |
+
"dev": true
|
599 |
+
},
|
600 |
+
"ccount": {
|
601 |
+
"version": "1.0.4",
|
602 |
+
"resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz",
|
603 |
+
"integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==",
|
604 |
+
"dev": true
|
605 |
+
},
|
606 |
+
"chalk": {
|
607 |
+
"version": "2.4.2",
|
608 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
609 |
+
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
610 |
+
"dev": true,
|
611 |
+
"requires": {
|
612 |
+
"ansi-styles": "^3.2.1",
|
613 |
+
"escape-string-regexp": "^1.0.5",
|
614 |
+
"supports-color": "^5.3.0"
|
615 |
+
}
|
616 |
+
},
|
617 |
+
"character-entities": {
|
618 |
+
"version": "1.2.3",
|
619 |
+
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz",
|
620 |
+
"integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==",
|
621 |
+
"dev": true
|
622 |
+
},
|
623 |
+
"character-entities-html4": {
|
624 |
+
"version": "1.1.3",
|
625 |
+
"resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz",
|
626 |
+
"integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==",
|
627 |
+
"dev": true
|
628 |
+
},
|
629 |
+
"character-entities-legacy": {
|
630 |
+
"version": "1.1.3",
|
631 |
+
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz",
|
632 |
+
"integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==",
|
633 |
+
"dev": true
|
634 |
+
},
|
635 |
+
"character-reference-invalid": {
|
636 |
+
"version": "1.1.3",
|
637 |
+
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz",
|
638 |
+
"integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==",
|
639 |
+
"dev": true
|
640 |
+
},
|
641 |
+
"chardet": {
|
642 |
+
"version": "0.7.0",
|
643 |
+
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
|
644 |
+
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
645 |
+
"dev": true
|
646 |
+
},
|
647 |
+
"class-utils": {
|
648 |
+
"version": "0.3.6",
|
649 |
+
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
|
650 |
+
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
|
651 |
+
"dev": true,
|
652 |
+
"requires": {
|
653 |
+
"arr-union": "^3.1.0",
|
654 |
+
"define-property": "^0.2.5",
|
655 |
+
"isobject": "^3.0.0",
|
656 |
+
"static-extend": "^0.1.1"
|
657 |
+
},
|
658 |
+
"dependencies": {
|
659 |
+
"define-property": {
|
660 |
+
"version": "0.2.5",
|
661 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
662 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
663 |
+
"dev": true,
|
664 |
+
"requires": {
|
665 |
+
"is-descriptor": "^0.1.0"
|
666 |
+
}
|
667 |
+
}
|
668 |
+
}
|
669 |
+
},
|
670 |
+
"cli-cursor": {
|
671 |
+
"version": "2.1.0",
|
672 |
+
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
|
673 |
+
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
|
674 |
+
"dev": true,
|
675 |
+
"requires": {
|
676 |
+
"restore-cursor": "^2.0.0"
|
677 |
+
}
|
678 |
+
},
|
679 |
+
"cli-width": {
|
680 |
+
"version": "2.2.0",
|
681 |
+
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
|
682 |
+
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
|
683 |
+
"dev": true
|
684 |
+
},
|
685 |
+
"clone-regexp": {
|
686 |
+
"version": "2.2.0",
|
687 |
+
"resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz",
|
688 |
+
"integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==",
|
689 |
+
"dev": true,
|
690 |
+
"requires": {
|
691 |
+
"is-regexp": "^2.0.0"
|
692 |
+
}
|
693 |
+
},
|
694 |
+
"collapse-white-space": {
|
695 |
+
"version": "1.0.5",
|
696 |
+
"resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz",
|
697 |
+
"integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==",
|
698 |
+
"dev": true
|
699 |
+
},
|
700 |
+
"collection-visit": {
|
701 |
+
"version": "1.0.0",
|
702 |
+
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
703 |
+
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
|
704 |
+
"dev": true,
|
705 |
+
"requires": {
|
706 |
+
"map-visit": "^1.0.0",
|
707 |
+
"object-visit": "^1.0.0"
|
708 |
+
}
|
709 |
+
},
|
710 |
+
"color-convert": {
|
711 |
+
"version": "1.9.3",
|
712 |
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
713 |
+
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
714 |
+
"dev": true,
|
715 |
+
"requires": {
|
716 |
+
"color-name": "1.1.3"
|
717 |
+
}
|
718 |
+
},
|
719 |
+
"color-name": {
|
720 |
+
"version": "1.1.3",
|
721 |
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
722 |
+
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
723 |
+
"dev": true
|
724 |
+
},
|
725 |
+
"comment-parser": {
|
726 |
+
"version": "0.6.2",
|
727 |
+
"resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.6.2.tgz",
|
728 |
+
"integrity": "sha512-Wdms0Q8d4vvb2Yk72OwZjwNWtMklbC5Re7lD9cjCP/AG1fhocmc0TrxGBBAXPLy8fZQPrfHGgyygwI0lA7pbzA==",
|
729 |
+
"dev": true
|
730 |
+
},
|
731 |
+
"component-emitter": {
|
732 |
+
"version": "1.3.0",
|
733 |
+
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
|
734 |
+
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
|
735 |
+
"dev": true
|
736 |
+
},
|
737 |
+
"concat-map": {
|
738 |
+
"version": "0.0.1",
|
739 |
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
740 |
+
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
741 |
+
"dev": true
|
742 |
+
},
|
743 |
+
"convert-source-map": {
|
744 |
+
"version": "1.6.0",
|
745 |
+
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
|
746 |
+
"integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
|
747 |
+
"dev": true,
|
748 |
+
"requires": {
|
749 |
+
"safe-buffer": "~5.1.1"
|
750 |
+
},
|
751 |
+
"dependencies": {
|
752 |
+
"safe-buffer": {
|
753 |
+
"version": "5.1.2",
|
754 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
755 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
756 |
+
"dev": true
|
757 |
+
}
|
758 |
+
}
|
759 |
+
},
|
760 |
+
"copy-descriptor": {
|
761 |
+
"version": "0.1.1",
|
762 |
+
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
|
763 |
+
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
|
764 |
+
"dev": true
|
765 |
+
},
|
766 |
+
"cosmiconfig": {
|
767 |
+
"version": "5.2.1",
|
768 |
+
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
|
769 |
+
"integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
|
770 |
+
"dev": true,
|
771 |
+
"requires": {
|
772 |
+
"import-fresh": "^2.0.0",
|
773 |
+
"is-directory": "^0.3.1",
|
774 |
+
"js-yaml": "^3.13.1",
|
775 |
+
"parse-json": "^4.0.0"
|
776 |
+
},
|
777 |
+
"dependencies": {
|
778 |
+
"import-fresh": {
|
779 |
+
"version": "2.0.0",
|
780 |
+
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
|
781 |
+
"integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
|
782 |
+
"dev": true,
|
783 |
+
"requires": {
|
784 |
+
"caller-path": "^2.0.0",
|
785 |
+
"resolve-from": "^3.0.0"
|
786 |
+
}
|
787 |
+
},
|
788 |
+
"resolve-from": {
|
789 |
+
"version": "3.0.0",
|
790 |
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
|
791 |
+
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
|
792 |
+
"dev": true
|
793 |
+
}
|
794 |
+
}
|
795 |
+
},
|
796 |
+
"cross-spawn": {
|
797 |
+
"version": "6.0.5",
|
798 |
+
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
799 |
+
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
800 |
+
"dev": true,
|
801 |
+
"requires": {
|
802 |
+
"nice-try": "^1.0.4",
|
803 |
+
"path-key": "^2.0.1",
|
804 |
+
"semver": "^5.5.0",
|
805 |
+
"shebang-command": "^1.2.0",
|
806 |
+
"which": "^1.2.9"
|
807 |
+
},
|
808 |
+
"dependencies": {
|
809 |
+
"semver": {
|
810 |
+
"version": "5.7.1",
|
811 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
812 |
+
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
813 |
+
"dev": true
|
814 |
+
}
|
815 |
+
}
|
816 |
+
},
|
817 |
+
"currently-unhandled": {
|
818 |
+
"version": "0.4.1",
|
819 |
+
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
|
820 |
+
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
|
821 |
+
"dev": true,
|
822 |
+
"requires": {
|
823 |
+
"array-find-index": "^1.0.1"
|
824 |
+
}
|
825 |
+
},
|
826 |
+
"debug": {
|
827 |
+
"version": "4.1.1",
|
828 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
829 |
+
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
830 |
+
"dev": true,
|
831 |
+
"requires": {
|
832 |
+
"ms": "^2.1.1"
|
833 |
+
}
|
834 |
+
},
|
835 |
+
"decamelize": {
|
836 |
+
"version": "1.2.0",
|
837 |
+
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
838 |
+
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
839 |
+
"dev": true
|
840 |
+
},
|
841 |
+
"decamelize-keys": {
|
842 |
+
"version": "1.1.0",
|
843 |
+
"resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
|
844 |
+
"integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
|
845 |
+
"dev": true,
|
846 |
+
"requires": {
|
847 |
+
"decamelize": "^1.1.0",
|
848 |
+
"map-obj": "^1.0.0"
|
849 |
+
},
|
850 |
+
"dependencies": {
|
851 |
+
"map-obj": {
|
852 |
+
"version": "1.0.1",
|
853 |
+
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
|
854 |
+
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
|
855 |
+
"dev": true
|
856 |
+
}
|
857 |
+
}
|
858 |
+
},
|
859 |
+
"decode-uri-component": {
|
860 |
+
"version": "0.2.0",
|
861 |
+
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
|
862 |
+
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
|
863 |
+
"dev": true
|
864 |
+
},
|
865 |
+
"deep-is": {
|
866 |
+
"version": "0.1.3",
|
867 |
+
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
868 |
+
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
869 |
+
"dev": true
|
870 |
+
},
|
871 |
+
"define-property": {
|
872 |
+
"version": "2.0.2",
|
873 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
874 |
+
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
|
875 |
+
"dev": true,
|
876 |
+
"requires": {
|
877 |
+
"is-descriptor": "^1.0.2",
|
878 |
+
"isobject": "^3.0.1"
|
879 |
+
},
|
880 |
+
"dependencies": {
|
881 |
+
"is-accessor-descriptor": {
|
882 |
+
"version": "1.0.0",
|
883 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
884 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
885 |
+
"dev": true,
|
886 |
+
"requires": {
|
887 |
+
"kind-of": "^6.0.0"
|
888 |
+
}
|
889 |
+
},
|
890 |
+
"is-data-descriptor": {
|
891 |
+
"version": "1.0.0",
|
892 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
893 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
894 |
+
"dev": true,
|
895 |
+
"requires": {
|
896 |
+
"kind-of": "^6.0.0"
|
897 |
+
}
|
898 |
+
},
|
899 |
+
"is-descriptor": {
|
900 |
+
"version": "1.0.2",
|
901 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
902 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
903 |
+
"dev": true,
|
904 |
+
"requires": {
|
905 |
+
"is-accessor-descriptor": "^1.0.0",
|
906 |
+
"is-data-descriptor": "^1.0.0",
|
907 |
+
"kind-of": "^6.0.2"
|
908 |
+
}
|
909 |
+
}
|
910 |
+
}
|
911 |
+
},
|
912 |
+
"dir-glob": {
|
913 |
+
"version": "2.2.2",
|
914 |
+
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
|
915 |
+
"integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
|
916 |
+
"dev": true,
|
917 |
+
"requires": {
|
918 |
+
"path-type": "^3.0.0"
|
919 |
+
}
|
920 |
+
},
|
921 |
+
"doctrine": {
|
922 |
+
"version": "3.0.0",
|
923 |
+
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
924 |
+
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
|
925 |
+
"dev": true,
|
926 |
+
"requires": {
|
927 |
+
"esutils": "^2.0.2"
|
928 |
+
}
|
929 |
+
},
|
930 |
+
"dom-serializer": {
|
931 |
+
"version": "0.2.1",
|
932 |
+
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
|
933 |
+
"integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
|
934 |
+
"dev": true,
|
935 |
+
"requires": {
|
936 |
+
"domelementtype": "^2.0.1",
|
937 |
+
"entities": "^2.0.0"
|
938 |
+
},
|
939 |
+
"dependencies": {
|
940 |
+
"domelementtype": {
|
941 |
+
"version": "2.0.1",
|
942 |
+
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
|
943 |
+
"integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
|
944 |
+
"dev": true
|
945 |
+
},
|
946 |
+
"entities": {
|
947 |
+
"version": "2.0.0",
|
948 |
+
"resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
|
949 |
+
"integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
|
950 |
+
"dev": true
|
951 |
+
}
|
952 |
+
}
|
953 |
+
},
|
954 |
+
"domelementtype": {
|
955 |
+
"version": "1.3.1",
|
956 |
+
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
|
957 |
+
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
|
958 |
+
"dev": true
|
959 |
+
},
|
960 |
+
"domhandler": {
|
961 |
+
"version": "2.4.2",
|
962 |
+
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
|
963 |
+
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
|
964 |
+
"dev": true,
|
965 |
+
"requires": {
|
966 |
+
"domelementtype": "1"
|
967 |
+
}
|
968 |
+
},
|
969 |
+
"domutils": {
|
970 |
+
"version": "1.7.0",
|
971 |
+
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
|
972 |
+
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
|
973 |
+
"dev": true,
|
974 |
+
"requires": {
|
975 |
+
"dom-serializer": "0",
|
976 |
+
"domelementtype": "1"
|
977 |
+
}
|
978 |
+
},
|
979 |
+
"dot-prop": {
|
980 |
+
"version": "4.2.0",
|
981 |
+
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
|
982 |
+
"integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
|
983 |
+
"dev": true,
|
984 |
+
"requires": {
|
985 |
+
"is-obj": "^1.0.0"
|
986 |
+
}
|
987 |
+
},
|
988 |
+
"electron-to-chromium": {
|
989 |
+
"version": "1.3.241",
|
990 |
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz",
|
991 |
+
"integrity": "sha512-Gb9E6nWZlbgjDDNe5cAvMJixtn79krNJ70EDpq/M10lkGo7PGtBUe7Y0CYVHsBScRwi6ybCS+YetXAN9ysAHDg==",
|
992 |
+
"dev": true
|
993 |
+
},
|
994 |
+
"emoji-regex": {
|
995 |
+
"version": "7.0.3",
|
996 |
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
997 |
+
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
998 |
+
"dev": true
|
999 |
+
},
|
1000 |
+
"entities": {
|
1001 |
+
"version": "1.1.2",
|
1002 |
+
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
1003 |
+
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
|
1004 |
+
"dev": true
|
1005 |
+
},
|
1006 |
+
"error-ex": {
|
1007 |
+
"version": "1.3.2",
|
1008 |
+
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
|
1009 |
+
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
|
1010 |
+
"dev": true,
|
1011 |
+
"requires": {
|
1012 |
+
"is-arrayish": "^0.2.1"
|
1013 |
+
}
|
1014 |
+
},
|
1015 |
+
"escape-string-regexp": {
|
1016 |
+
"version": "1.0.5",
|
1017 |
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
1018 |
+
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
1019 |
+
"dev": true
|
1020 |
+
},
|
1021 |
+
"eslint": {
|
1022 |
+
"version": "6.2.2",
|
1023 |
+
"resolved": "https://registry.npmjs.org/eslint/-/eslint-6.2.2.tgz",
|
1024 |
+
"integrity": "sha512-mf0elOkxHbdyGX1IJEUsNBzCDdyoUgljF3rRlgfyYh0pwGnreLc0jjD6ZuleOibjmnUWZLY2eXwSooeOgGJ2jw==",
|
1025 |
+
"dev": true,
|
1026 |
+
"requires": {
|
1027 |
+
"@babel/code-frame": "^7.0.0",
|
1028 |
+
"ajv": "^6.10.0",
|
1029 |
+
"chalk": "^2.1.0",
|
1030 |
+
"cross-spawn": "^6.0.5",
|
1031 |
+
"debug": "^4.0.1",
|
1032 |
+
"doctrine": "^3.0.0",
|
1033 |
+
"eslint-scope": "^5.0.0",
|
1034 |
+
"eslint-utils": "^1.4.2",
|
1035 |
+
"eslint-visitor-keys": "^1.1.0",
|
1036 |
+
"espree": "^6.1.1",
|
1037 |
+
"esquery": "^1.0.1",
|
1038 |
+
"esutils": "^2.0.2",
|
1039 |
+
"file-entry-cache": "^5.0.1",
|
1040 |
+
"functional-red-black-tree": "^1.0.1",
|
1041 |
+
"glob-parent": "^5.0.0",
|
1042 |
+
"globals": "^11.7.0",
|
1043 |
+
"ignore": "^4.0.6",
|
1044 |
+
"import-fresh": "^3.0.0",
|
1045 |
+
"imurmurhash": "^0.1.4",
|
1046 |
+
"inquirer": "^6.4.1",
|
1047 |
+
"is-glob": "^4.0.0",
|
1048 |
+
"js-yaml": "^3.13.1",
|
1049 |
+
"json-stable-stringify-without-jsonify": "^1.0.1",
|
1050 |
+
"levn": "^0.3.0",
|
1051 |
+
"lodash": "^4.17.14",
|
1052 |
+
"minimatch": "^3.0.4",
|
1053 |
+
"mkdirp": "^0.5.1",
|
1054 |
+
"natural-compare": "^1.4.0",
|
1055 |
+
"optionator": "^0.8.2",
|
1056 |
+
"progress": "^2.0.0",
|
1057 |
+
"regexpp": "^2.0.1",
|
1058 |
+
"semver": "^6.1.2",
|
1059 |
+
"strip-ansi": "^5.2.0",
|
1060 |
+
"strip-json-comments": "^3.0.1",
|
1061 |
+
"table": "^5.2.3",
|
1062 |
+
"text-table": "^0.2.0",
|
1063 |
+
"v8-compile-cache": "^2.0.3"
|
1064 |
+
}
|
1065 |
+
},
|
1066 |
+
"eslint-config-blueimp": {
|
1067 |
+
"version": "1.4.0",
|
1068 |
+
"resolved": "https://registry.npmjs.org/eslint-config-blueimp/-/eslint-config-blueimp-1.4.0.tgz",
|
1069 |
+
"integrity": "sha512-OWTLOSmsjDglgNvKKtb0t3iRPpyzFvXszXJkSS1w5oqkgVmFaKiNeoU6qOyZF2Q78rIog77RgIhzyA387b+7qA==",
|
1070 |
+
"dev": true
|
1071 |
+
},
|
1072 |
+
"eslint-config-prettier": {
|
1073 |
+
"version": "6.1.0",
|
1074 |
+
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.1.0.tgz",
|
1075 |
+
"integrity": "sha512-k9fny9sPjIBQ2ftFTesJV21Rg4R/7a7t7LCtZVrYQiHEp8Nnuk3EGaDmsKSAnsPj0BYcgB2zxzHa2NTkIxcOLg==",
|
1076 |
+
"dev": true,
|
1077 |
+
"requires": {
|
1078 |
+
"get-stdin": "^6.0.0"
|
1079 |
+
}
|
1080 |
+
},
|
1081 |
+
"eslint-plugin-jsdoc": {
|
1082 |
+
"version": "15.8.3",
|
1083 |
+
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-15.8.3.tgz",
|
1084 |
+
"integrity": "sha512-p2O6SYetuSD5gWV04HHevIfp2WfimXReYwINuB4iC33hm1jrYoP+t2XbJtCBYvjhoRjjw8w4NfnyZKixte1fug==",
|
1085 |
+
"dev": true,
|
1086 |
+
"requires": {
|
1087 |
+
"comment-parser": "^0.6.2",
|
1088 |
+
"debug": "^4.1.1",
|
1089 |
+
"jsdoctypeparser": "5.0.1",
|
1090 |
+
"lodash": "^4.17.15",
|
1091 |
+
"object.entries-ponyfill": "^1.0.1",
|
1092 |
+
"regextras": "^0.6.1"
|
1093 |
+
}
|
1094 |
+
},
|
1095 |
+
"eslint-plugin-prettier": {
|
1096 |
+
"version": "3.1.0",
|
1097 |
+
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.0.tgz",
|
1098 |
+
"integrity": "sha512-XWX2yVuwVNLOUhQijAkXz+rMPPoCr7WFiAl8ig6I7Xn+pPVhDhzg4DxHpmbeb0iqjO9UronEA3Tb09ChnFVHHA==",
|
1099 |
+
"dev": true,
|
1100 |
+
"requires": {
|
1101 |
+
"prettier-linter-helpers": "^1.0.0"
|
1102 |
+
}
|
1103 |
+
},
|
1104 |
+
"eslint-scope": {
|
1105 |
+
"version": "5.0.0",
|
1106 |
+
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
|
1107 |
+
"integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
|
1108 |
+
"dev": true,
|
1109 |
+
"requires": {
|
1110 |
+
"esrecurse": "^4.1.0",
|
1111 |
+
"estraverse": "^4.1.1"
|
1112 |
+
}
|
1113 |
+
},
|
1114 |
+
"eslint-utils": {
|
1115 |
+
"version": "1.4.2",
|
1116 |
+
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
|
1117 |
+
"integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
|
1118 |
+
"dev": true,
|
1119 |
+
"requires": {
|
1120 |
+
"eslint-visitor-keys": "^1.0.0"
|
1121 |
+
}
|
1122 |
+
},
|
1123 |
+
"eslint-visitor-keys": {
|
1124 |
+
"version": "1.1.0",
|
1125 |
+
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
|
1126 |
+
"integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
|
1127 |
+
"dev": true
|
1128 |
+
},
|
1129 |
+
"espree": {
|
1130 |
+
"version": "6.1.1",
|
1131 |
+
"resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz",
|
1132 |
+
"integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==",
|
1133 |
+
"dev": true,
|
1134 |
+
"requires": {
|
1135 |
+
"acorn": "^7.0.0",
|
1136 |
+
"acorn-jsx": "^5.0.2",
|
1137 |
+
"eslint-visitor-keys": "^1.1.0"
|
1138 |
+
}
|
1139 |
+
},
|
1140 |
+
"esprima": {
|
1141 |
+
"version": "4.0.1",
|
1142 |
+
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
1143 |
+
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
|
1144 |
+
"dev": true
|
1145 |
+
},
|
1146 |
+
"esquery": {
|
1147 |
+
"version": "1.0.1",
|
1148 |
+
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
|
1149 |
+
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
|
1150 |
+
"dev": true,
|
1151 |
+
"requires": {
|
1152 |
+
"estraverse": "^4.0.0"
|
1153 |
+
}
|
1154 |
+
},
|
1155 |
+
"esrecurse": {
|
1156 |
+
"version": "4.2.1",
|
1157 |
+
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
|
1158 |
+
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
|
1159 |
+
"dev": true,
|
1160 |
+
"requires": {
|
1161 |
+
"estraverse": "^4.1.0"
|
1162 |
+
}
|
1163 |
+
},
|
1164 |
+
"estraverse": {
|
1165 |
+
"version": "4.3.0",
|
1166 |
+
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
|
1167 |
+
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
|
1168 |
+
"dev": true
|
1169 |
+
},
|
1170 |
+
"esutils": {
|
1171 |
+
"version": "2.0.3",
|
1172 |
+
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
1173 |
+
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
1174 |
+
"dev": true
|
1175 |
+
},
|
1176 |
+
"execall": {
|
1177 |
+
"version": "2.0.0",
|
1178 |
+
"resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz",
|
1179 |
+
"integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==",
|
1180 |
+
"dev": true,
|
1181 |
+
"requires": {
|
1182 |
+
"clone-regexp": "^2.1.0"
|
1183 |
+
}
|
1184 |
+
},
|
1185 |
+
"expand-brackets": {
|
1186 |
+
"version": "2.1.4",
|
1187 |
+
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
|
1188 |
+
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
|
1189 |
+
"dev": true,
|
1190 |
+
"requires": {
|
1191 |
+
"debug": "^2.3.3",
|
1192 |
+
"define-property": "^0.2.5",
|
1193 |
+
"extend-shallow": "^2.0.1",
|
1194 |
+
"posix-character-classes": "^0.1.0",
|
1195 |
+
"regex-not": "^1.0.0",
|
1196 |
+
"snapdragon": "^0.8.1",
|
1197 |
+
"to-regex": "^3.0.1"
|
1198 |
+
},
|
1199 |
+
"dependencies": {
|
1200 |
+
"debug": {
|
1201 |
+
"version": "2.6.9",
|
1202 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
1203 |
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
1204 |
+
"dev": true,
|
1205 |
+
"requires": {
|
1206 |
+
"ms": "2.0.0"
|
1207 |
+
}
|
1208 |
+
},
|
1209 |
+
"define-property": {
|
1210 |
+
"version": "0.2.5",
|
1211 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1212 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1213 |
+
"dev": true,
|
1214 |
+
"requires": {
|
1215 |
+
"is-descriptor": "^0.1.0"
|
1216 |
+
}
|
1217 |
+
},
|
1218 |
+
"extend-shallow": {
|
1219 |
+
"version": "2.0.1",
|
1220 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1221 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1222 |
+
"dev": true,
|
1223 |
+
"requires": {
|
1224 |
+
"is-extendable": "^0.1.0"
|
1225 |
+
}
|
1226 |
+
},
|
1227 |
+
"ms": {
|
1228 |
+
"version": "2.0.0",
|
1229 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
1230 |
+
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
1231 |
+
"dev": true
|
1232 |
+
}
|
1233 |
+
}
|
1234 |
+
},
|
1235 |
+
"extend": {
|
1236 |
+
"version": "3.0.2",
|
1237 |
+
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
1238 |
+
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
1239 |
+
"dev": true
|
1240 |
+
},
|
1241 |
+
"extend-shallow": {
|
1242 |
+
"version": "3.0.2",
|
1243 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
|
1244 |
+
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
|
1245 |
+
"dev": true,
|
1246 |
+
"requires": {
|
1247 |
+
"assign-symbols": "^1.0.0",
|
1248 |
+
"is-extendable": "^1.0.1"
|
1249 |
+
},
|
1250 |
+
"dependencies": {
|
1251 |
+
"is-extendable": {
|
1252 |
+
"version": "1.0.1",
|
1253 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
1254 |
+
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
1255 |
+
"dev": true,
|
1256 |
+
"requires": {
|
1257 |
+
"is-plain-object": "^2.0.4"
|
1258 |
+
}
|
1259 |
+
}
|
1260 |
+
}
|
1261 |
+
},
|
1262 |
+
"external-editor": {
|
1263 |
+
"version": "3.1.0",
|
1264 |
+
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
|
1265 |
+
"integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
|
1266 |
+
"dev": true,
|
1267 |
+
"requires": {
|
1268 |
+
"chardet": "^0.7.0",
|
1269 |
+
"iconv-lite": "^0.4.24",
|
1270 |
+
"tmp": "^0.0.33"
|
1271 |
+
}
|
1272 |
+
},
|
1273 |
+
"extglob": {
|
1274 |
+
"version": "2.0.4",
|
1275 |
+
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
|
1276 |
+
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
|
1277 |
+
"dev": true,
|
1278 |
+
"requires": {
|
1279 |
+
"array-unique": "^0.3.2",
|
1280 |
+
"define-property": "^1.0.0",
|
1281 |
+
"expand-brackets": "^2.1.4",
|
1282 |
+
"extend-shallow": "^2.0.1",
|
1283 |
+
"fragment-cache": "^0.2.1",
|
1284 |
+
"regex-not": "^1.0.0",
|
1285 |
+
"snapdragon": "^0.8.1",
|
1286 |
+
"to-regex": "^3.0.1"
|
1287 |
+
},
|
1288 |
+
"dependencies": {
|
1289 |
+
"define-property": {
|
1290 |
+
"version": "1.0.0",
|
1291 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
1292 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
1293 |
+
"dev": true,
|
1294 |
+
"requires": {
|
1295 |
+
"is-descriptor": "^1.0.0"
|
1296 |
+
}
|
1297 |
+
},
|
1298 |
+
"extend-shallow": {
|
1299 |
+
"version": "2.0.1",
|
1300 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1301 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1302 |
+
"dev": true,
|
1303 |
+
"requires": {
|
1304 |
+
"is-extendable": "^0.1.0"
|
1305 |
+
}
|
1306 |
+
},
|
1307 |
+
"is-accessor-descriptor": {
|
1308 |
+
"version": "1.0.0",
|
1309 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
1310 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
1311 |
+
"dev": true,
|
1312 |
+
"requires": {
|
1313 |
+
"kind-of": "^6.0.0"
|
1314 |
+
}
|
1315 |
+
},
|
1316 |
+
"is-data-descriptor": {
|
1317 |
+
"version": "1.0.0",
|
1318 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
1319 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
1320 |
+
"dev": true,
|
1321 |
+
"requires": {
|
1322 |
+
"kind-of": "^6.0.0"
|
1323 |
+
}
|
1324 |
+
},
|
1325 |
+
"is-descriptor": {
|
1326 |
+
"version": "1.0.2",
|
1327 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
1328 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
1329 |
+
"dev": true,
|
1330 |
+
"requires": {
|
1331 |
+
"is-accessor-descriptor": "^1.0.0",
|
1332 |
+
"is-data-descriptor": "^1.0.0",
|
1333 |
+
"kind-of": "^6.0.2"
|
1334 |
+
}
|
1335 |
+
}
|
1336 |
+
}
|
1337 |
+
},
|
1338 |
+
"fast-deep-equal": {
|
1339 |
+
"version": "2.0.1",
|
1340 |
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
1341 |
+
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
1342 |
+
"dev": true
|
1343 |
+
},
|
1344 |
+
"fast-diff": {
|
1345 |
+
"version": "1.2.0",
|
1346 |
+
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
|
1347 |
+
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
|
1348 |
+
"dev": true
|
1349 |
+
},
|
1350 |
+
"fast-glob": {
|
1351 |
+
"version": "2.2.7",
|
1352 |
+
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
|
1353 |
+
"integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
|
1354 |
+
"dev": true,
|
1355 |
+
"requires": {
|
1356 |
+
"@mrmlnc/readdir-enhanced": "^2.2.1",
|
1357 |
+
"@nodelib/fs.stat": "^1.1.2",
|
1358 |
+
"glob-parent": "^3.1.0",
|
1359 |
+
"is-glob": "^4.0.0",
|
1360 |
+
"merge2": "^1.2.3",
|
1361 |
+
"micromatch": "^3.1.10"
|
1362 |
+
},
|
1363 |
+
"dependencies": {
|
1364 |
+
"glob-parent": {
|
1365 |
+
"version": "3.1.0",
|
1366 |
+
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
1367 |
+
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
|
1368 |
+
"dev": true,
|
1369 |
+
"requires": {
|
1370 |
+
"is-glob": "^3.1.0",
|
1371 |
+
"path-dirname": "^1.0.0"
|
1372 |
+
},
|
1373 |
+
"dependencies": {
|
1374 |
+
"is-glob": {
|
1375 |
+
"version": "3.1.0",
|
1376 |
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
1377 |
+
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
1378 |
+
"dev": true,
|
1379 |
+
"requires": {
|
1380 |
+
"is-extglob": "^2.1.0"
|
1381 |
+
}
|
1382 |
+
}
|
1383 |
+
}
|
1384 |
+
},
|
1385 |
+
"micromatch": {
|
1386 |
+
"version": "3.1.10",
|
1387 |
+
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
1388 |
+
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
|
1389 |
+
"dev": true,
|
1390 |
+
"requires": {
|
1391 |
+
"arr-diff": "^4.0.0",
|
1392 |
+
"array-unique": "^0.3.2",
|
1393 |
+
"braces": "^2.3.1",
|
1394 |
+
"define-property": "^2.0.2",
|
1395 |
+
"extend-shallow": "^3.0.2",
|
1396 |
+
"extglob": "^2.0.4",
|
1397 |
+
"fragment-cache": "^0.2.1",
|
1398 |
+
"kind-of": "^6.0.2",
|
1399 |
+
"nanomatch": "^1.2.9",
|
1400 |
+
"object.pick": "^1.3.0",
|
1401 |
+
"regex-not": "^1.0.0",
|
1402 |
+
"snapdragon": "^0.8.1",
|
1403 |
+
"to-regex": "^3.0.2"
|
1404 |
+
}
|
1405 |
+
}
|
1406 |
+
}
|
1407 |
+
},
|
1408 |
+
"fast-json-stable-stringify": {
|
1409 |
+
"version": "2.0.0",
|
1410 |
+
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
1411 |
+
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
1412 |
+
"dev": true
|
1413 |
+
},
|
1414 |
+
"fast-levenshtein": {
|
1415 |
+
"version": "2.0.6",
|
1416 |
+
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
1417 |
+
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
1418 |
+
"dev": true
|
1419 |
+
},
|
1420 |
+
"figures": {
|
1421 |
+
"version": "2.0.0",
|
1422 |
+
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
1423 |
+
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
|
1424 |
+
"dev": true,
|
1425 |
+
"requires": {
|
1426 |
+
"escape-string-regexp": "^1.0.5"
|
1427 |
+
}
|
1428 |
+
},
|
1429 |
+
"file-entry-cache": {
|
1430 |
+
"version": "5.0.1",
|
1431 |
+
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
|
1432 |
+
"integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
|
1433 |
+
"dev": true,
|
1434 |
+
"requires": {
|
1435 |
+
"flat-cache": "^2.0.1"
|
1436 |
+
}
|
1437 |
+
},
|
1438 |
+
"fill-range": {
|
1439 |
+
"version": "4.0.0",
|
1440 |
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
1441 |
+
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
|
1442 |
+
"dev": true,
|
1443 |
+
"requires": {
|
1444 |
+
"extend-shallow": "^2.0.1",
|
1445 |
+
"is-number": "^3.0.0",
|
1446 |
+
"repeat-string": "^1.6.1",
|
1447 |
+
"to-regex-range": "^2.1.0"
|
1448 |
+
},
|
1449 |
+
"dependencies": {
|
1450 |
+
"extend-shallow": {
|
1451 |
+
"version": "2.0.1",
|
1452 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1453 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1454 |
+
"dev": true,
|
1455 |
+
"requires": {
|
1456 |
+
"is-extendable": "^0.1.0"
|
1457 |
+
}
|
1458 |
+
}
|
1459 |
+
}
|
1460 |
+
},
|
1461 |
+
"flat-cache": {
|
1462 |
+
"version": "2.0.1",
|
1463 |
+
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
|
1464 |
+
"integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
|
1465 |
+
"dev": true,
|
1466 |
+
"requires": {
|
1467 |
+
"flatted": "^2.0.0",
|
1468 |
+
"rimraf": "2.6.3",
|
1469 |
+
"write": "1.0.3"
|
1470 |
+
}
|
1471 |
+
},
|
1472 |
+
"flatted": {
|
1473 |
+
"version": "2.0.1",
|
1474 |
+
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
|
1475 |
+
"integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
|
1476 |
+
"dev": true
|
1477 |
+
},
|
1478 |
+
"for-in": {
|
1479 |
+
"version": "1.0.2",
|
1480 |
+
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
1481 |
+
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
|
1482 |
+
"dev": true
|
1483 |
+
},
|
1484 |
+
"fragment-cache": {
|
1485 |
+
"version": "0.2.1",
|
1486 |
+
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
1487 |
+
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
|
1488 |
+
"dev": true,
|
1489 |
+
"requires": {
|
1490 |
+
"map-cache": "^0.2.2"
|
1491 |
+
}
|
1492 |
+
},
|
1493 |
+
"fs.realpath": {
|
1494 |
+
"version": "1.0.0",
|
1495 |
+
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
1496 |
+
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
1497 |
+
"dev": true
|
1498 |
+
},
|
1499 |
+
"functional-red-black-tree": {
|
1500 |
+
"version": "1.0.1",
|
1501 |
+
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
|
1502 |
+
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
|
1503 |
+
"dev": true
|
1504 |
+
},
|
1505 |
+
"get-stdin": {
|
1506 |
+
"version": "6.0.0",
|
1507 |
+
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
|
1508 |
+
"integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
|
1509 |
+
"dev": true
|
1510 |
+
},
|
1511 |
+
"get-value": {
|
1512 |
+
"version": "2.0.6",
|
1513 |
+
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
|
1514 |
+
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
|
1515 |
+
"dev": true
|
1516 |
+
},
|
1517 |
+
"glob": {
|
1518 |
+
"version": "7.1.4",
|
1519 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
1520 |
+
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
1521 |
+
"dev": true,
|
1522 |
+
"requires": {
|
1523 |
+
"fs.realpath": "^1.0.0",
|
1524 |
+
"inflight": "^1.0.4",
|
1525 |
+
"inherits": "2",
|
1526 |
+
"minimatch": "^3.0.4",
|
1527 |
+
"once": "^1.3.0",
|
1528 |
+
"path-is-absolute": "^1.0.0"
|
1529 |
+
}
|
1530 |
+
},
|
1531 |
+
"glob-parent": {
|
1532 |
+
"version": "5.0.0",
|
1533 |
+
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
|
1534 |
+
"integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
|
1535 |
+
"dev": true,
|
1536 |
+
"requires": {
|
1537 |
+
"is-glob": "^4.0.1"
|
1538 |
+
}
|
1539 |
+
},
|
1540 |
+
"glob-to-regexp": {
|
1541 |
+
"version": "0.3.0",
|
1542 |
+
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
|
1543 |
+
"integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
|
1544 |
+
"dev": true
|
1545 |
+
},
|
1546 |
+
"global-modules": {
|
1547 |
+
"version": "2.0.0",
|
1548 |
+
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
|
1549 |
+
"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
|
1550 |
+
"dev": true,
|
1551 |
+
"requires": {
|
1552 |
+
"global-prefix": "^3.0.0"
|
1553 |
+
}
|
1554 |
+
},
|
1555 |
+
"global-prefix": {
|
1556 |
+
"version": "3.0.0",
|
1557 |
+
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
|
1558 |
+
"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
|
1559 |
+
"dev": true,
|
1560 |
+
"requires": {
|
1561 |
+
"ini": "^1.3.5",
|
1562 |
+
"kind-of": "^6.0.2",
|
1563 |
+
"which": "^1.3.1"
|
1564 |
+
}
|
1565 |
+
},
|
1566 |
+
"globals": {
|
1567 |
+
"version": "11.12.0",
|
1568 |
+
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
|
1569 |
+
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
|
1570 |
+
"dev": true
|
1571 |
+
},
|
1572 |
+
"globby": {
|
1573 |
+
"version": "9.2.0",
|
1574 |
+
"resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
|
1575 |
+
"integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
|
1576 |
+
"dev": true,
|
1577 |
+
"requires": {
|
1578 |
+
"@types/glob": "^7.1.1",
|
1579 |
+
"array-union": "^1.0.2",
|
1580 |
+
"dir-glob": "^2.2.2",
|
1581 |
+
"fast-glob": "^2.2.6",
|
1582 |
+
"glob": "^7.1.3",
|
1583 |
+
"ignore": "^4.0.3",
|
1584 |
+
"pify": "^4.0.1",
|
1585 |
+
"slash": "^2.0.0"
|
1586 |
+
},
|
1587 |
+
"dependencies": {
|
1588 |
+
"pify": {
|
1589 |
+
"version": "4.0.1",
|
1590 |
+
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
1591 |
+
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
|
1592 |
+
"dev": true
|
1593 |
+
},
|
1594 |
+
"slash": {
|
1595 |
+
"version": "2.0.0",
|
1596 |
+
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
|
1597 |
+
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
|
1598 |
+
"dev": true
|
1599 |
+
}
|
1600 |
+
}
|
1601 |
+
},
|
1602 |
+
"globjoin": {
|
1603 |
+
"version": "0.1.4",
|
1604 |
+
"resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
|
1605 |
+
"integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
|
1606 |
+
"dev": true
|
1607 |
+
},
|
1608 |
+
"gonzales-pe": {
|
1609 |
+
"version": "4.2.4",
|
1610 |
+
"resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz",
|
1611 |
+
"integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==",
|
1612 |
+
"dev": true,
|
1613 |
+
"requires": {
|
1614 |
+
"minimist": "1.1.x"
|
1615 |
+
},
|
1616 |
+
"dependencies": {
|
1617 |
+
"minimist": {
|
1618 |
+
"version": "1.1.3",
|
1619 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
|
1620 |
+
"integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
|
1621 |
+
"dev": true
|
1622 |
+
}
|
1623 |
+
}
|
1624 |
+
},
|
1625 |
+
"graceful-fs": {
|
1626 |
+
"version": "4.2.2",
|
1627 |
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
|
1628 |
+
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
|
1629 |
+
"dev": true
|
1630 |
+
},
|
1631 |
+
"has-flag": {
|
1632 |
+
"version": "3.0.0",
|
1633 |
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
1634 |
+
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
1635 |
+
"dev": true
|
1636 |
+
},
|
1637 |
+
"has-value": {
|
1638 |
+
"version": "1.0.0",
|
1639 |
+
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
1640 |
+
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
|
1641 |
+
"dev": true,
|
1642 |
+
"requires": {
|
1643 |
+
"get-value": "^2.0.6",
|
1644 |
+
"has-values": "^1.0.0",
|
1645 |
+
"isobject": "^3.0.0"
|
1646 |
+
}
|
1647 |
+
},
|
1648 |
+
"has-values": {
|
1649 |
+
"version": "1.0.0",
|
1650 |
+
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
|
1651 |
+
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
|
1652 |
+
"dev": true,
|
1653 |
+
"requires": {
|
1654 |
+
"is-number": "^3.0.0",
|
1655 |
+
"kind-of": "^4.0.0"
|
1656 |
+
},
|
1657 |
+
"dependencies": {
|
1658 |
+
"kind-of": {
|
1659 |
+
"version": "4.0.0",
|
1660 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
|
1661 |
+
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
1662 |
+
"dev": true,
|
1663 |
+
"requires": {
|
1664 |
+
"is-buffer": "^1.1.5"
|
1665 |
+
}
|
1666 |
+
}
|
1667 |
+
}
|
1668 |
+
},
|
1669 |
+
"hosted-git-info": {
|
1670 |
+
"version": "2.8.4",
|
1671 |
+
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
|
1672 |
+
"integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
|
1673 |
+
"dev": true
|
1674 |
+
},
|
1675 |
+
"html-tags": {
|
1676 |
+
"version": "3.1.0",
|
1677 |
+
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
|
1678 |
+
"integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
|
1679 |
+
"dev": true
|
1680 |
+
},
|
1681 |
+
"htmlparser2": {
|
1682 |
+
"version": "3.10.1",
|
1683 |
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
|
1684 |
+
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
|
1685 |
+
"dev": true,
|
1686 |
+
"requires": {
|
1687 |
+
"domelementtype": "^1.3.1",
|
1688 |
+
"domhandler": "^2.3.0",
|
1689 |
+
"domutils": "^1.5.1",
|
1690 |
+
"entities": "^1.1.1",
|
1691 |
+
"inherits": "^2.0.1",
|
1692 |
+
"readable-stream": "^3.1.1"
|
1693 |
+
}
|
1694 |
+
},
|
1695 |
+
"iconv-lite": {
|
1696 |
+
"version": "0.4.24",
|
1697 |
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
1698 |
+
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
1699 |
+
"dev": true,
|
1700 |
+
"requires": {
|
1701 |
+
"safer-buffer": ">= 2.1.2 < 3"
|
1702 |
+
}
|
1703 |
+
},
|
1704 |
+
"ignore": {
|
1705 |
+
"version": "4.0.6",
|
1706 |
+
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
|
1707 |
+
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
|
1708 |
+
"dev": true
|
1709 |
+
},
|
1710 |
+
"import-fresh": {
|
1711 |
+
"version": "3.1.0",
|
1712 |
+
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
|
1713 |
+
"integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
|
1714 |
+
"dev": true,
|
1715 |
+
"requires": {
|
1716 |
+
"parent-module": "^1.0.0",
|
1717 |
+
"resolve-from": "^4.0.0"
|
1718 |
+
}
|
1719 |
+
},
|
1720 |
+
"import-lazy": {
|
1721 |
+
"version": "4.0.0",
|
1722 |
+
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
|
1723 |
+
"integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
|
1724 |
+
"dev": true
|
1725 |
+
},
|
1726 |
+
"imurmurhash": {
|
1727 |
+
"version": "0.1.4",
|
1728 |
+
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
1729 |
+
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
|
1730 |
+
"dev": true
|
1731 |
+
},
|
1732 |
+
"indent-string": {
|
1733 |
+
"version": "3.2.0",
|
1734 |
+
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
|
1735 |
+
"integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
|
1736 |
+
"dev": true
|
1737 |
+
},
|
1738 |
+
"indexes-of": {
|
1739 |
+
"version": "1.0.1",
|
1740 |
+
"resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
|
1741 |
+
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
|
1742 |
+
"dev": true
|
1743 |
+
},
|
1744 |
+
"inflight": {
|
1745 |
+
"version": "1.0.6",
|
1746 |
+
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
1747 |
+
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
1748 |
+
"dev": true,
|
1749 |
+
"requires": {
|
1750 |
+
"once": "^1.3.0",
|
1751 |
+
"wrappy": "1"
|
1752 |
+
}
|
1753 |
+
},
|
1754 |
+
"inherits": {
|
1755 |
+
"version": "2.0.4",
|
1756 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
1757 |
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
1758 |
+
"dev": true
|
1759 |
+
},
|
1760 |
+
"ini": {
|
1761 |
+
"version": "1.3.5",
|
1762 |
+
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
1763 |
+
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
|
1764 |
+
"dev": true
|
1765 |
+
},
|
1766 |
+
"inquirer": {
|
1767 |
+
"version": "6.5.2",
|
1768 |
+
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
|
1769 |
+
"integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
|
1770 |
+
"dev": true,
|
1771 |
+
"requires": {
|
1772 |
+
"ansi-escapes": "^3.2.0",
|
1773 |
+
"chalk": "^2.4.2",
|
1774 |
+
"cli-cursor": "^2.1.0",
|
1775 |
+
"cli-width": "^2.0.0",
|
1776 |
+
"external-editor": "^3.0.3",
|
1777 |
+
"figures": "^2.0.0",
|
1778 |
+
"lodash": "^4.17.12",
|
1779 |
+
"mute-stream": "0.0.7",
|
1780 |
+
"run-async": "^2.2.0",
|
1781 |
+
"rxjs": "^6.4.0",
|
1782 |
+
"string-width": "^2.1.0",
|
1783 |
+
"strip-ansi": "^5.1.0",
|
1784 |
+
"through": "^2.3.6"
|
1785 |
+
}
|
1786 |
+
},
|
1787 |
+
"is-accessor-descriptor": {
|
1788 |
+
"version": "0.1.6",
|
1789 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
1790 |
+
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
|
1791 |
+
"dev": true,
|
1792 |
+
"requires": {
|
1793 |
+
"kind-of": "^3.0.2"
|
1794 |
+
},
|
1795 |
+
"dependencies": {
|
1796 |
+
"kind-of": {
|
1797 |
+
"version": "3.2.2",
|
1798 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1799 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1800 |
+
"dev": true,
|
1801 |
+
"requires": {
|
1802 |
+
"is-buffer": "^1.1.5"
|
1803 |
+
}
|
1804 |
+
}
|
1805 |
+
}
|
1806 |
+
},
|
1807 |
+
"is-alphabetical": {
|
1808 |
+
"version": "1.0.3",
|
1809 |
+
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz",
|
1810 |
+
"integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==",
|
1811 |
+
"dev": true
|
1812 |
+
},
|
1813 |
+
"is-alphanumeric": {
|
1814 |
+
"version": "1.0.0",
|
1815 |
+
"resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
|
1816 |
+
"integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
|
1817 |
+
"dev": true
|
1818 |
+
},
|
1819 |
+
"is-alphanumerical": {
|
1820 |
+
"version": "1.0.3",
|
1821 |
+
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz",
|
1822 |
+
"integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==",
|
1823 |
+
"dev": true,
|
1824 |
+
"requires": {
|
1825 |
+
"is-alphabetical": "^1.0.0",
|
1826 |
+
"is-decimal": "^1.0.0"
|
1827 |
+
}
|
1828 |
+
},
|
1829 |
+
"is-arrayish": {
|
1830 |
+
"version": "0.2.1",
|
1831 |
+
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
1832 |
+
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
|
1833 |
+
"dev": true
|
1834 |
+
},
|
1835 |
+
"is-buffer": {
|
1836 |
+
"version": "1.1.6",
|
1837 |
+
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
1838 |
+
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
|
1839 |
+
"dev": true
|
1840 |
+
},
|
1841 |
+
"is-data-descriptor": {
|
1842 |
+
"version": "0.1.4",
|
1843 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
1844 |
+
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
|
1845 |
+
"dev": true,
|
1846 |
+
"requires": {
|
1847 |
+
"kind-of": "^3.0.2"
|
1848 |
+
},
|
1849 |
+
"dependencies": {
|
1850 |
+
"kind-of": {
|
1851 |
+
"version": "3.2.2",
|
1852 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1853 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1854 |
+
"dev": true,
|
1855 |
+
"requires": {
|
1856 |
+
"is-buffer": "^1.1.5"
|
1857 |
+
}
|
1858 |
+
}
|
1859 |
+
}
|
1860 |
+
},
|
1861 |
+
"is-decimal": {
|
1862 |
+
"version": "1.0.3",
|
1863 |
+
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz",
|
1864 |
+
"integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==",
|
1865 |
+
"dev": true
|
1866 |
+
},
|
1867 |
+
"is-descriptor": {
|
1868 |
+
"version": "0.1.6",
|
1869 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
1870 |
+
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
|
1871 |
+
"dev": true,
|
1872 |
+
"requires": {
|
1873 |
+
"is-accessor-descriptor": "^0.1.6",
|
1874 |
+
"is-data-descriptor": "^0.1.4",
|
1875 |
+
"kind-of": "^5.0.0"
|
1876 |
+
},
|
1877 |
+
"dependencies": {
|
1878 |
+
"kind-of": {
|
1879 |
+
"version": "5.1.0",
|
1880 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
|
1881 |
+
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
|
1882 |
+
"dev": true
|
1883 |
+
}
|
1884 |
+
}
|
1885 |
+
},
|
1886 |
+
"is-directory": {
|
1887 |
+
"version": "0.3.1",
|
1888 |
+
"resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
|
1889 |
+
"integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
|
1890 |
+
"dev": true
|
1891 |
+
},
|
1892 |
+
"is-extendable": {
|
1893 |
+
"version": "0.1.1",
|
1894 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
|
1895 |
+
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
|
1896 |
+
"dev": true
|
1897 |
+
},
|
1898 |
+
"is-extglob": {
|
1899 |
+
"version": "2.1.1",
|
1900 |
+
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
1901 |
+
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
1902 |
+
"dev": true
|
1903 |
+
},
|
1904 |
+
"is-fullwidth-code-point": {
|
1905 |
+
"version": "2.0.0",
|
1906 |
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
1907 |
+
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
1908 |
+
"dev": true
|
1909 |
+
},
|
1910 |
+
"is-glob": {
|
1911 |
+
"version": "4.0.1",
|
1912 |
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
1913 |
+
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
1914 |
+
"dev": true,
|
1915 |
+
"requires": {
|
1916 |
+
"is-extglob": "^2.1.1"
|
1917 |
+
}
|
1918 |
+
},
|
1919 |
+
"is-hexadecimal": {
|
1920 |
+
"version": "1.0.3",
|
1921 |
+
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz",
|
1922 |
+
"integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==",
|
1923 |
+
"dev": true
|
1924 |
+
},
|
1925 |
+
"is-number": {
|
1926 |
+
"version": "3.0.0",
|
1927 |
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
1928 |
+
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
1929 |
+
"dev": true,
|
1930 |
+
"requires": {
|
1931 |
+
"kind-of": "^3.0.2"
|
1932 |
+
},
|
1933 |
+
"dependencies": {
|
1934 |
+
"kind-of": {
|
1935 |
+
"version": "3.2.2",
|
1936 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1937 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1938 |
+
"dev": true,
|
1939 |
+
"requires": {
|
1940 |
+
"is-buffer": "^1.1.5"
|
1941 |
+
}
|
1942 |
+
}
|
1943 |
+
}
|
1944 |
+
},
|
1945 |
+
"is-obj": {
|
1946 |
+
"version": "1.0.1",
|
1947 |
+
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
|
1948 |
+
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
|
1949 |
+
"dev": true
|
1950 |
+
},
|
1951 |
+
"is-plain-obj": {
|
1952 |
+
"version": "1.1.0",
|
1953 |
+
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
|
1954 |
+
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
|
1955 |
+
"dev": true
|
1956 |
+
},
|
1957 |
+
"is-plain-object": {
|
1958 |
+
"version": "2.0.4",
|
1959 |
+
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
1960 |
+
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
1961 |
+
"dev": true,
|
1962 |
+
"requires": {
|
1963 |
+
"isobject": "^3.0.1"
|
1964 |
+
}
|
1965 |
+
},
|
1966 |
+
"is-promise": {
|
1967 |
+
"version": "2.1.0",
|
1968 |
+
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
1969 |
+
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
|
1970 |
+
"dev": true
|
1971 |
+
},
|
1972 |
+
"is-regexp": {
|
1973 |
+
"version": "2.1.0",
|
1974 |
+
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz",
|
1975 |
+
"integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==",
|
1976 |
+
"dev": true
|
1977 |
+
},
|
1978 |
+
"is-whitespace-character": {
|
1979 |
+
"version": "1.0.3",
|
1980 |
+
"resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz",
|
1981 |
+
"integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==",
|
1982 |
+
"dev": true
|
1983 |
+
},
|
1984 |
+
"is-windows": {
|
1985 |
+
"version": "1.0.2",
|
1986 |
+
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
|
1987 |
+
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
|
1988 |
+
"dev": true
|
1989 |
+
},
|
1990 |
+
"is-word-character": {
|
1991 |
+
"version": "1.0.3",
|
1992 |
+
"resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz",
|
1993 |
+
"integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==",
|
1994 |
+
"dev": true
|
1995 |
+
},
|
1996 |
+
"isarray": {
|
1997 |
+
"version": "1.0.0",
|
1998 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1999 |
+
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
2000 |
+
"dev": true
|
2001 |
+
},
|
2002 |
+
"isexe": {
|
2003 |
+
"version": "2.0.0",
|
2004 |
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
2005 |
+
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
2006 |
+
"dev": true
|
2007 |
+
},
|
2008 |
+
"isobject": {
|
2009 |
+
"version": "3.0.1",
|
2010 |
+
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
2011 |
+
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
|
2012 |
+
"dev": true
|
2013 |
+
},
|
2014 |
+
"js-tokens": {
|
2015 |
+
"version": "4.0.0",
|
2016 |
+
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
2017 |
+
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
2018 |
+
"dev": true
|
2019 |
+
},
|
2020 |
+
"js-yaml": {
|
2021 |
+
"version": "3.13.1",
|
2022 |
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
2023 |
+
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
2024 |
+
"dev": true,
|
2025 |
+
"requires": {
|
2026 |
+
"argparse": "^1.0.7",
|
2027 |
+
"esprima": "^4.0.0"
|
2028 |
+
}
|
2029 |
+
},
|
2030 |
+
"jsdoctypeparser": {
|
2031 |
+
"version": "5.0.1",
|
2032 |
+
"resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-5.0.1.tgz",
|
2033 |
+
"integrity": "sha512-dYwcK6TKzvq+ZKtbp4sbQSW9JMo6s+4YFfUs5D/K7bZsn3s1NhEhZ+jmIPzby0HbkbECBe+hNPEa6a+E21o94w==",
|
2034 |
+
"dev": true
|
2035 |
+
},
|
2036 |
+
"jsesc": {
|
2037 |
+
"version": "2.5.2",
|
2038 |
+
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
2039 |
+
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
|
2040 |
+
"dev": true
|
2041 |
+
},
|
2042 |
+
"json-parse-better-errors": {
|
2043 |
+
"version": "1.0.2",
|
2044 |
+
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
|
2045 |
+
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
|
2046 |
+
"dev": true
|
2047 |
+
},
|
2048 |
+
"json-schema-traverse": {
|
2049 |
+
"version": "0.4.1",
|
2050 |
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
2051 |
+
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
2052 |
+
"dev": true
|
2053 |
+
},
|
2054 |
+
"json-stable-stringify-without-jsonify": {
|
2055 |
+
"version": "1.0.1",
|
2056 |
+
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
2057 |
+
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
|
2058 |
+
"dev": true
|
2059 |
+
},
|
2060 |
+
"json5": {
|
2061 |
+
"version": "2.1.0",
|
2062 |
+
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
|
2063 |
+
"integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
|
2064 |
+
"dev": true,
|
2065 |
+
"requires": {
|
2066 |
+
"minimist": "^1.2.0"
|
2067 |
+
},
|
2068 |
+
"dependencies": {
|
2069 |
+
"minimist": {
|
2070 |
+
"version": "1.2.0",
|
2071 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
2072 |
+
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
2073 |
+
"dev": true
|
2074 |
+
}
|
2075 |
+
}
|
2076 |
+
},
|
2077 |
+
"kind-of": {
|
2078 |
+
"version": "6.0.2",
|
2079 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
2080 |
+
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
2081 |
+
"dev": true
|
2082 |
+
},
|
2083 |
+
"known-css-properties": {
|
2084 |
+
"version": "0.14.0",
|
2085 |
+
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.14.0.tgz",
|
2086 |
+
"integrity": "sha512-P+0a/gBzLgVlCnK8I7VcD0yuYJscmWn66wH9tlKsQnmVdg689tLEmziwB9PuazZYLkcm07fvWOKCJJqI55sD5Q==",
|
2087 |
+
"dev": true
|
2088 |
+
},
|
2089 |
+
"leven": {
|
2090 |
+
"version": "3.1.0",
|
2091 |
+
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
2092 |
+
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
|
2093 |
+
"dev": true
|
2094 |
+
},
|
2095 |
+
"levn": {
|
2096 |
+
"version": "0.3.0",
|
2097 |
+
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
|
2098 |
+
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
|
2099 |
+
"dev": true,
|
2100 |
+
"requires": {
|
2101 |
+
"prelude-ls": "~1.1.2",
|
2102 |
+
"type-check": "~0.3.2"
|
2103 |
+
}
|
2104 |
+
},
|
2105 |
+
"load-json-file": {
|
2106 |
+
"version": "4.0.0",
|
2107 |
+
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
2108 |
+
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
|
2109 |
+
"dev": true,
|
2110 |
+
"requires": {
|
2111 |
+
"graceful-fs": "^4.1.2",
|
2112 |
+
"parse-json": "^4.0.0",
|
2113 |
+
"pify": "^3.0.0",
|
2114 |
+
"strip-bom": "^3.0.0"
|
2115 |
+
}
|
2116 |
+
},
|
2117 |
+
"lodash": {
|
2118 |
+
"version": "4.17.15",
|
2119 |
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
2120 |
+
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
2121 |
+
"dev": true
|
2122 |
+
},
|
2123 |
+
"log-symbols": {
|
2124 |
+
"version": "3.0.0",
|
2125 |
+
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
|
2126 |
+
"integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
|
2127 |
+
"dev": true,
|
2128 |
+
"requires": {
|
2129 |
+
"chalk": "^2.4.2"
|
2130 |
+
}
|
2131 |
+
},
|
2132 |
+
"longest-streak": {
|
2133 |
+
"version": "2.0.3",
|
2134 |
+
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz",
|
2135 |
+
"integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==",
|
2136 |
+
"dev": true
|
2137 |
+
},
|
2138 |
+
"loud-rejection": {
|
2139 |
+
"version": "1.6.0",
|
2140 |
+
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
|
2141 |
+
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
|
2142 |
+
"dev": true,
|
2143 |
+
"requires": {
|
2144 |
+
"currently-unhandled": "^0.4.1",
|
2145 |
+
"signal-exit": "^3.0.0"
|
2146 |
+
}
|
2147 |
+
},
|
2148 |
+
"map-cache": {
|
2149 |
+
"version": "0.2.2",
|
2150 |
+
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
2151 |
+
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
|
2152 |
+
"dev": true
|
2153 |
+
},
|
2154 |
+
"map-obj": {
|
2155 |
+
"version": "2.0.0",
|
2156 |
+
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
|
2157 |
+
"integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
|
2158 |
+
"dev": true
|
2159 |
+
},
|
2160 |
+
"map-visit": {
|
2161 |
+
"version": "1.0.0",
|
2162 |
+
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
|
2163 |
+
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
|
2164 |
+
"dev": true,
|
2165 |
+
"requires": {
|
2166 |
+
"object-visit": "^1.0.0"
|
2167 |
+
}
|
2168 |
+
},
|
2169 |
+
"markdown-escapes": {
|
2170 |
+
"version": "1.0.3",
|
2171 |
+
"resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz",
|
2172 |
+
"integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==",
|
2173 |
+
"dev": true
|
2174 |
+
},
|
2175 |
+
"markdown-table": {
|
2176 |
+
"version": "1.1.3",
|
2177 |
+
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
|
2178 |
+
"integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==",
|
2179 |
+
"dev": true
|
2180 |
+
},
|
2181 |
+
"mathml-tag-names": {
|
2182 |
+
"version": "2.1.1",
|
2183 |
+
"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz",
|
2184 |
+
"integrity": "sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw==",
|
2185 |
+
"dev": true
|
2186 |
+
},
|
2187 |
+
"mdast-util-compact": {
|
2188 |
+
"version": "1.0.3",
|
2189 |
+
"resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz",
|
2190 |
+
"integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==",
|
2191 |
+
"dev": true,
|
2192 |
+
"requires": {
|
2193 |
+
"unist-util-visit": "^1.1.0"
|
2194 |
+
}
|
2195 |
+
},
|
2196 |
+
"meow": {
|
2197 |
+
"version": "5.0.0",
|
2198 |
+
"resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz",
|
2199 |
+
"integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==",
|
2200 |
+
"dev": true,
|
2201 |
+
"requires": {
|
2202 |
+
"camelcase-keys": "^4.0.0",
|
2203 |
+
"decamelize-keys": "^1.0.0",
|
2204 |
+
"loud-rejection": "^1.0.0",
|
2205 |
+
"minimist-options": "^3.0.1",
|
2206 |
+
"normalize-package-data": "^2.3.4",
|
2207 |
+
"read-pkg-up": "^3.0.0",
|
2208 |
+
"redent": "^2.0.0",
|
2209 |
+
"trim-newlines": "^2.0.0",
|
2210 |
+
"yargs-parser": "^10.0.0"
|
2211 |
+
}
|
2212 |
+
},
|
2213 |
+
"merge2": {
|
2214 |
+
"version": "1.2.4",
|
2215 |
+
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz",
|
2216 |
+
"integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==",
|
2217 |
+
"dev": true
|
2218 |
+
},
|
2219 |
+
"micromatch": {
|
2220 |
+
"version": "4.0.2",
|
2221 |
+
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
|
2222 |
+
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
|
2223 |
+
"dev": true,
|
2224 |
+
"requires": {
|
2225 |
+
"braces": "^3.0.1",
|
2226 |
+
"picomatch": "^2.0.5"
|
2227 |
+
},
|
2228 |
+
"dependencies": {
|
2229 |
+
"braces": {
|
2230 |
+
"version": "3.0.2",
|
2231 |
+
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
2232 |
+
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
2233 |
+
"dev": true,
|
2234 |
+
"requires": {
|
2235 |
+
"fill-range": "^7.0.1"
|
2236 |
+
}
|
2237 |
+
},
|
2238 |
+
"fill-range": {
|
2239 |
+
"version": "7.0.1",
|
2240 |
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
2241 |
+
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
2242 |
+
"dev": true,
|
2243 |
+
"requires": {
|
2244 |
+
"to-regex-range": "^5.0.1"
|
2245 |
+
}
|
2246 |
+
},
|
2247 |
+
"is-number": {
|
2248 |
+
"version": "7.0.0",
|
2249 |
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
2250 |
+
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
2251 |
+
"dev": true
|
2252 |
+
},
|
2253 |
+
"to-regex-range": {
|
2254 |
+
"version": "5.0.1",
|
2255 |
+
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
2256 |
+
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
2257 |
+
"dev": true,
|
2258 |
+
"requires": {
|
2259 |
+
"is-number": "^7.0.0"
|
2260 |
+
}
|
2261 |
+
}
|
2262 |
+
}
|
2263 |
+
},
|
2264 |
+
"mimic-fn": {
|
2265 |
+
"version": "1.2.0",
|
2266 |
+
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
|
2267 |
+
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
2268 |
+
"dev": true
|
2269 |
+
},
|
2270 |
+
"minimatch": {
|
2271 |
+
"version": "3.0.4",
|
2272 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
2273 |
+
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
2274 |
+
"dev": true,
|
2275 |
+
"requires": {
|
2276 |
+
"brace-expansion": "^1.1.7"
|
2277 |
+
}
|
2278 |
+
},
|
2279 |
+
"minimist": {
|
2280 |
+
"version": "0.0.8",
|
2281 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
2282 |
+
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
2283 |
+
"dev": true
|
2284 |
+
},
|
2285 |
+
"minimist-options": {
|
2286 |
+
"version": "3.0.2",
|
2287 |
+
"resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
|
2288 |
+
"integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
|
2289 |
+
"dev": true,
|
2290 |
+
"requires": {
|
2291 |
+
"arrify": "^1.0.1",
|
2292 |
+
"is-plain-obj": "^1.1.0"
|
2293 |
+
}
|
2294 |
+
},
|
2295 |
+
"mixin-deep": {
|
2296 |
+
"version": "1.3.2",
|
2297 |
+
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
|
2298 |
+
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
|
2299 |
+
"dev": true,
|
2300 |
+
"requires": {
|
2301 |
+
"for-in": "^1.0.2",
|
2302 |
+
"is-extendable": "^1.0.1"
|
2303 |
+
},
|
2304 |
+
"dependencies": {
|
2305 |
+
"is-extendable": {
|
2306 |
+
"version": "1.0.1",
|
2307 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
2308 |
+
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
2309 |
+
"dev": true,
|
2310 |
+
"requires": {
|
2311 |
+
"is-plain-object": "^2.0.4"
|
2312 |
+
}
|
2313 |
+
}
|
2314 |
+
}
|
2315 |
+
},
|
2316 |
+
"mkdirp": {
|
2317 |
+
"version": "0.5.1",
|
2318 |
+
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
2319 |
+
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
2320 |
+
"dev": true,
|
2321 |
+
"requires": {
|
2322 |
+
"minimist": "0.0.8"
|
2323 |
+
}
|
2324 |
+
},
|
2325 |
+
"ms": {
|
2326 |
+
"version": "2.1.2",
|
2327 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
2328 |
+
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
2329 |
+
"dev": true
|
2330 |
+
},
|
2331 |
+
"mute-stream": {
|
2332 |
+
"version": "0.0.7",
|
2333 |
+
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
|
2334 |
+
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
|
2335 |
+
"dev": true
|
2336 |
+
},
|
2337 |
+
"nanomatch": {
|
2338 |
+
"version": "1.2.13",
|
2339 |
+
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
|
2340 |
+
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
|
2341 |
+
"dev": true,
|
2342 |
+
"requires": {
|
2343 |
+
"arr-diff": "^4.0.0",
|
2344 |
+
"array-unique": "^0.3.2",
|
2345 |
+
"define-property": "^2.0.2",
|
2346 |
+
"extend-shallow": "^3.0.2",
|
2347 |
+
"fragment-cache": "^0.2.1",
|
2348 |
+
"is-windows": "^1.0.2",
|
2349 |
+
"kind-of": "^6.0.2",
|
2350 |
+
"object.pick": "^1.3.0",
|
2351 |
+
"regex-not": "^1.0.0",
|
2352 |
+
"snapdragon": "^0.8.1",
|
2353 |
+
"to-regex": "^3.0.1"
|
2354 |
+
}
|
2355 |
+
},
|
2356 |
+
"natural-compare": {
|
2357 |
+
"version": "1.4.0",
|
2358 |
+
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
2359 |
+
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
2360 |
+
"dev": true
|
2361 |
+
},
|
2362 |
+
"nice-try": {
|
2363 |
+
"version": "1.0.5",
|
2364 |
+
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
2365 |
+
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
2366 |
+
"dev": true
|
2367 |
+
},
|
2368 |
+
"node-releases": {
|
2369 |
+
"version": "1.1.28",
|
2370 |
+
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.28.tgz",
|
2371 |
+
"integrity": "sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g==",
|
2372 |
+
"dev": true,
|
2373 |
+
"requires": {
|
2374 |
+
"semver": "^5.3.0"
|
2375 |
+
},
|
2376 |
+
"dependencies": {
|
2377 |
+
"semver": {
|
2378 |
+
"version": "5.7.1",
|
2379 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
2380 |
+
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
2381 |
+
"dev": true
|
2382 |
+
}
|
2383 |
+
}
|
2384 |
+
},
|
2385 |
+
"normalize-package-data": {
|
2386 |
+
"version": "2.5.0",
|
2387 |
+
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
2388 |
+
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
|
2389 |
+
"dev": true,
|
2390 |
+
"requires": {
|
2391 |
+
"hosted-git-info": "^2.1.4",
|
2392 |
+
"resolve": "^1.10.0",
|
2393 |
+
"semver": "2 || 3 || 4 || 5",
|
2394 |
+
"validate-npm-package-license": "^3.0.1"
|
2395 |
+
},
|
2396 |
+
"dependencies": {
|
2397 |
+
"semver": {
|
2398 |
+
"version": "5.7.1",
|
2399 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
2400 |
+
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
2401 |
+
"dev": true
|
2402 |
+
}
|
2403 |
+
}
|
2404 |
+
},
|
2405 |
+
"normalize-range": {
|
2406 |
+
"version": "0.1.2",
|
2407 |
+
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
|
2408 |
+
"integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
|
2409 |
+
"dev": true
|
2410 |
+
},
|
2411 |
+
"normalize-selector": {
|
2412 |
+
"version": "0.2.0",
|
2413 |
+
"resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz",
|
2414 |
+
"integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
|
2415 |
+
"dev": true
|
2416 |
+
},
|
2417 |
+
"num2fraction": {
|
2418 |
+
"version": "1.2.2",
|
2419 |
+
"resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
|
2420 |
+
"integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
|
2421 |
+
"dev": true
|
2422 |
+
},
|
2423 |
+
"object-copy": {
|
2424 |
+
"version": "0.1.0",
|
2425 |
+
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
2426 |
+
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
|
2427 |
+
"dev": true,
|
2428 |
+
"requires": {
|
2429 |
+
"copy-descriptor": "^0.1.0",
|
2430 |
+
"define-property": "^0.2.5",
|
2431 |
+
"kind-of": "^3.0.3"
|
2432 |
+
},
|
2433 |
+
"dependencies": {
|
2434 |
+
"define-property": {
|
2435 |
+
"version": "0.2.5",
|
2436 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
2437 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
2438 |
+
"dev": true,
|
2439 |
+
"requires": {
|
2440 |
+
"is-descriptor": "^0.1.0"
|
2441 |
+
}
|
2442 |
+
},
|
2443 |
+
"kind-of": {
|
2444 |
+
"version": "3.2.2",
|
2445 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
2446 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
2447 |
+
"dev": true,
|
2448 |
+
"requires": {
|
2449 |
+
"is-buffer": "^1.1.5"
|
2450 |
+
}
|
2451 |
+
}
|
2452 |
+
}
|
2453 |
+
},
|
2454 |
+
"object-visit": {
|
2455 |
+
"version": "1.0.1",
|
2456 |
+
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
|
2457 |
+
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
|
2458 |
+
"dev": true,
|
2459 |
+
"requires": {
|
2460 |
+
"isobject": "^3.0.0"
|
2461 |
+
}
|
2462 |
+
},
|
2463 |
+
"object.entries-ponyfill": {
|
2464 |
+
"version": "1.0.1",
|
2465 |
+
"resolved": "https://registry.npmjs.org/object.entries-ponyfill/-/object.entries-ponyfill-1.0.1.tgz",
|
2466 |
+
"integrity": "sha1-Kavfd8v70mVm3RqiTp2I9lQz0lY=",
|
2467 |
+
"dev": true
|
2468 |
+
},
|
2469 |
+
"object.pick": {
|
2470 |
+
"version": "1.3.0",
|
2471 |
+
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
|
2472 |
+
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
|
2473 |
+
"dev": true,
|
2474 |
+
"requires": {
|
2475 |
+
"isobject": "^3.0.1"
|
2476 |
+
}
|
2477 |
+
},
|
2478 |
+
"once": {
|
2479 |
+
"version": "1.4.0",
|
2480 |
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
2481 |
+
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
2482 |
+
"dev": true,
|
2483 |
+
"requires": {
|
2484 |
+
"wrappy": "1"
|
2485 |
+
}
|
2486 |
+
},
|
2487 |
+
"onetime": {
|
2488 |
+
"version": "2.0.1",
|
2489 |
+
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
|
2490 |
+
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
|
2491 |
+
"dev": true,
|
2492 |
+
"requires": {
|
2493 |
+
"mimic-fn": "^1.0.0"
|
2494 |
+
}
|
2495 |
+
},
|
2496 |
+
"optionator": {
|
2497 |
+
"version": "0.8.2",
|
2498 |
+
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
|
2499 |
+
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
|
2500 |
+
"dev": true,
|
2501 |
+
"requires": {
|
2502 |
+
"deep-is": "~0.1.3",
|
2503 |
+
"fast-levenshtein": "~2.0.4",
|
2504 |
+
"levn": "~0.3.0",
|
2505 |
+
"prelude-ls": "~1.1.2",
|
2506 |
+
"type-check": "~0.3.2",
|
2507 |
+
"wordwrap": "~1.0.0"
|
2508 |
+
}
|
2509 |
+
},
|
2510 |
+
"os-tmpdir": {
|
2511 |
+
"version": "1.0.2",
|
2512 |
+
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
2513 |
+
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
2514 |
+
"dev": true
|
2515 |
+
},
|
2516 |
+
"parent-module": {
|
2517 |
+
"version": "1.0.1",
|
2518 |
+
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
|
2519 |
+
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
|
2520 |
+
"dev": true,
|
2521 |
+
"requires": {
|
2522 |
+
"callsites": "^3.0.0"
|
2523 |
+
}
|
2524 |
+
},
|
2525 |
+
"parse-entities": {
|
2526 |
+
"version": "1.2.2",
|
2527 |
+
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
|
2528 |
+
"integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
|
2529 |
+
"dev": true,
|
2530 |
+
"requires": {
|
2531 |
+
"character-entities": "^1.0.0",
|
2532 |
+
"character-entities-legacy": "^1.0.0",
|
2533 |
+
"character-reference-invalid": "^1.0.0",
|
2534 |
+
"is-alphanumerical": "^1.0.0",
|
2535 |
+
"is-decimal": "^1.0.0",
|
2536 |
+
"is-hexadecimal": "^1.0.0"
|
2537 |
+
}
|
2538 |
+
},
|
2539 |
+
"parse-json": {
|
2540 |
+
"version": "4.0.0",
|
2541 |
+
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
2542 |
+
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
2543 |
+
"dev": true,
|
2544 |
+
"requires": {
|
2545 |
+
"error-ex": "^1.3.1",
|
2546 |
+
"json-parse-better-errors": "^1.0.1"
|
2547 |
+
}
|
2548 |
+
},
|
2549 |
+
"pascalcase": {
|
2550 |
+
"version": "0.1.1",
|
2551 |
+
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
|
2552 |
+
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
|
2553 |
+
"dev": true
|
2554 |
+
},
|
2555 |
+
"path-dirname": {
|
2556 |
+
"version": "1.0.2",
|
2557 |
+
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
|
2558 |
+
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
|
2559 |
+
"dev": true
|
2560 |
+
},
|
2561 |
+
"path-exists": {
|
2562 |
+
"version": "3.0.0",
|
2563 |
+
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
2564 |
+
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
2565 |
+
"dev": true
|
2566 |
+
},
|
2567 |
+
"path-is-absolute": {
|
2568 |
+
"version": "1.0.1",
|
2569 |
+
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
2570 |
+
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
2571 |
+
"dev": true
|
2572 |
+
},
|
2573 |
+
"path-key": {
|
2574 |
+
"version": "2.0.1",
|
2575 |
+
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
2576 |
+
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
2577 |
+
"dev": true
|
2578 |
+
},
|
2579 |
+
"path-parse": {
|
2580 |
+
"version": "1.0.6",
|
2581 |
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
2582 |
+
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
|
2583 |
+
"dev": true
|
2584 |
+
},
|
2585 |
+
"path-type": {
|
2586 |
+
"version": "3.0.0",
|
2587 |
+
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
|
2588 |
+
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
|
2589 |
+
"dev": true,
|
2590 |
+
"requires": {
|
2591 |
+
"pify": "^3.0.0"
|
2592 |
+
}
|
2593 |
+
},
|
2594 |
+
"picomatch": {
|
2595 |
+
"version": "2.0.7",
|
2596 |
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
|
2597 |
+
"integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
|
2598 |
+
"dev": true
|
2599 |
+
},
|
2600 |
+
"pify": {
|
2601 |
+
"version": "3.0.0",
|
2602 |
+
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
2603 |
+
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
2604 |
+
"dev": true
|
2605 |
+
},
|
2606 |
+
"posix-character-classes": {
|
2607 |
+
"version": "0.1.1",
|
2608 |
+
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
2609 |
+
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
|
2610 |
+
"dev": true
|
2611 |
+
},
|
2612 |
+
"postcss": {
|
2613 |
+
"version": "7.0.17",
|
2614 |
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
|
2615 |
+
"integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
|
2616 |
+
"dev": true,
|
2617 |
+
"requires": {
|
2618 |
+
"chalk": "^2.4.2",
|
2619 |
+
"source-map": "^0.6.1",
|
2620 |
+
"supports-color": "^6.1.0"
|
2621 |
+
},
|
2622 |
+
"dependencies": {
|
2623 |
+
"supports-color": {
|
2624 |
+
"version": "6.1.0",
|
2625 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
|
2626 |
+
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
|
2627 |
+
"dev": true,
|
2628 |
+
"requires": {
|
2629 |
+
"has-flag": "^3.0.0"
|
2630 |
+
}
|
2631 |
+
}
|
2632 |
+
}
|
2633 |
+
},
|
2634 |
+
"postcss-html": {
|
2635 |
+
"version": "0.36.0",
|
2636 |
+
"resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz",
|
2637 |
+
"integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==",
|
2638 |
+
"dev": true,
|
2639 |
+
"requires": {
|
2640 |
+
"htmlparser2": "^3.10.0"
|
2641 |
+
}
|
2642 |
+
},
|
2643 |
+
"postcss-jsx": {
|
2644 |
+
"version": "0.36.3",
|
2645 |
+
"resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.3.tgz",
|
2646 |
+
"integrity": "sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA==",
|
2647 |
+
"dev": true,
|
2648 |
+
"requires": {
|
2649 |
+
"@babel/core": ">=7.2.2"
|
2650 |
+
}
|
2651 |
+
},
|
2652 |
+
"postcss-less": {
|
2653 |
+
"version": "3.1.4",
|
2654 |
+
"resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz",
|
2655 |
+
"integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==",
|
2656 |
+
"dev": true,
|
2657 |
+
"requires": {
|
2658 |
+
"postcss": "^7.0.14"
|
2659 |
+
}
|
2660 |
+
},
|
2661 |
+
"postcss-markdown": {
|
2662 |
+
"version": "0.36.0",
|
2663 |
+
"resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz",
|
2664 |
+
"integrity": "sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==",
|
2665 |
+
"dev": true,
|
2666 |
+
"requires": {
|
2667 |
+
"remark": "^10.0.1",
|
2668 |
+
"unist-util-find-all-after": "^1.0.2"
|
2669 |
+
}
|
2670 |
+
},
|
2671 |
+
"postcss-media-query-parser": {
|
2672 |
+
"version": "0.2.3",
|
2673 |
+
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
|
2674 |
+
"integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
|
2675 |
+
"dev": true
|
2676 |
+
},
|
2677 |
+
"postcss-reporter": {
|
2678 |
+
"version": "6.0.1",
|
2679 |
+
"resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz",
|
2680 |
+
"integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==",
|
2681 |
+
"dev": true,
|
2682 |
+
"requires": {
|
2683 |
+
"chalk": "^2.4.1",
|
2684 |
+
"lodash": "^4.17.11",
|
2685 |
+
"log-symbols": "^2.2.0",
|
2686 |
+
"postcss": "^7.0.7"
|
2687 |
+
},
|
2688 |
+
"dependencies": {
|
2689 |
+
"log-symbols": {
|
2690 |
+
"version": "2.2.0",
|
2691 |
+
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
|
2692 |
+
"integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
|
2693 |
+
"dev": true,
|
2694 |
+
"requires": {
|
2695 |
+
"chalk": "^2.0.1"
|
2696 |
+
}
|
2697 |
+
}
|
2698 |
+
}
|
2699 |
+
},
|
2700 |
+
"postcss-resolve-nested-selector": {
|
2701 |
+
"version": "0.1.1",
|
2702 |
+
"resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
|
2703 |
+
"integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
|
2704 |
+
"dev": true
|
2705 |
+
},
|
2706 |
+
"postcss-safe-parser": {
|
2707 |
+
"version": "4.0.1",
|
2708 |
+
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz",
|
2709 |
+
"integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==",
|
2710 |
+
"dev": true,
|
2711 |
+
"requires": {
|
2712 |
+
"postcss": "^7.0.0"
|
2713 |
+
}
|
2714 |
+
},
|
2715 |
+
"postcss-sass": {
|
2716 |
+
"version": "0.3.5",
|
2717 |
+
"resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.5.tgz",
|
2718 |
+
"integrity": "sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==",
|
2719 |
+
"dev": true,
|
2720 |
+
"requires": {
|
2721 |
+
"gonzales-pe": "^4.2.3",
|
2722 |
+
"postcss": "^7.0.1"
|
2723 |
+
}
|
2724 |
+
},
|
2725 |
+
"postcss-scss": {
|
2726 |
+
"version": "2.0.0",
|
2727 |
+
"resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz",
|
2728 |
+
"integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==",
|
2729 |
+
"dev": true,
|
2730 |
+
"requires": {
|
2731 |
+
"postcss": "^7.0.0"
|
2732 |
+
}
|
2733 |
+
},
|
2734 |
+
"postcss-selector-parser": {
|
2735 |
+
"version": "3.1.1",
|
2736 |
+
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
|
2737 |
+
"integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
|
2738 |
+
"dev": true,
|
2739 |
+
"requires": {
|
2740 |
+
"dot-prop": "^4.1.1",
|
2741 |
+
"indexes-of": "^1.0.1",
|
2742 |
+
"uniq": "^1.0.1"
|
2743 |
+
}
|
2744 |
+
},
|
2745 |
+
"postcss-syntax": {
|
2746 |
+
"version": "0.36.2",
|
2747 |
+
"resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz",
|
2748 |
+
"integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==",
|
2749 |
+
"dev": true
|
2750 |
+
},
|
2751 |
+
"postcss-value-parser": {
|
2752 |
+
"version": "3.3.1",
|
2753 |
+
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
|
2754 |
+
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
|
2755 |
+
"dev": true
|
2756 |
+
},
|
2757 |
+
"prelude-ls": {
|
2758 |
+
"version": "1.1.2",
|
2759 |
+
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
2760 |
+
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
|
2761 |
+
"dev": true
|
2762 |
+
},
|
2763 |
+
"prettier": {
|
2764 |
+
"version": "1.18.2",
|
2765 |
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
|
2766 |
+
"integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
|
2767 |
+
"dev": true
|
2768 |
+
},
|
2769 |
+
"prettier-linter-helpers": {
|
2770 |
+
"version": "1.0.0",
|
2771 |
+
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
|
2772 |
+
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
|
2773 |
+
"dev": true,
|
2774 |
+
"requires": {
|
2775 |
+
"fast-diff": "^1.1.2"
|
2776 |
+
}
|
2777 |
+
},
|
2778 |
+
"progress": {
|
2779 |
+
"version": "2.0.3",
|
2780 |
+
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
2781 |
+
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
2782 |
+
"dev": true
|
2783 |
+
},
|
2784 |
+
"punycode": {
|
2785 |
+
"version": "2.1.1",
|
2786 |
+
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
2787 |
+
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
2788 |
+
"dev": true
|
2789 |
+
},
|
2790 |
+
"quick-lru": {
|
2791 |
+
"version": "1.1.0",
|
2792 |
+
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
|
2793 |
+
"integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
|
2794 |
+
"dev": true
|
2795 |
+
},
|
2796 |
+
"read-pkg": {
|
2797 |
+
"version": "3.0.0",
|
2798 |
+
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
|
2799 |
+
"integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
|
2800 |
+
"dev": true,
|
2801 |
+
"requires": {
|
2802 |
+
"load-json-file": "^4.0.0",
|
2803 |
+
"normalize-package-data": "^2.3.2",
|
2804 |
+
"path-type": "^3.0.0"
|
2805 |
+
}
|
2806 |
+
},
|
2807 |
+
"read-pkg-up": {
|
2808 |
+
"version": "3.0.0",
|
2809 |
+
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
|
2810 |
+
"integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
|
2811 |
+
"dev": true,
|
2812 |
+
"requires": {
|
2813 |
+
"find-up": "^2.0.0",
|
2814 |
+
"read-pkg": "^3.0.0"
|
2815 |
+
},
|
2816 |
+
"dependencies": {
|
2817 |
+
"find-up": {
|
2818 |
+
"version": "2.1.0",
|
2819 |
+
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
2820 |
+
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
2821 |
+
"dev": true,
|
2822 |
+
"requires": {
|
2823 |
+
"locate-path": "^2.0.0"
|
2824 |
+
}
|
2825 |
+
},
|
2826 |
+
"locate-path": {
|
2827 |
+
"version": "2.0.0",
|
2828 |
+
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
2829 |
+
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
2830 |
+
"dev": true,
|
2831 |
+
"requires": {
|
2832 |
+
"p-locate": "^2.0.0",
|
2833 |
+
"path-exists": "^3.0.0"
|
2834 |
+
}
|
2835 |
+
},
|
2836 |
+
"p-limit": {
|
2837 |
+
"version": "1.3.0",
|
2838 |
+
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
2839 |
+
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
|
2840 |
+
"dev": true,
|
2841 |
+
"requires": {
|
2842 |
+
"p-try": "^1.0.0"
|
2843 |
+
}
|
2844 |
+
},
|
2845 |
+
"p-locate": {
|
2846 |
+
"version": "2.0.0",
|
2847 |
+
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
2848 |
+
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
2849 |
+
"dev": true,
|
2850 |
+
"requires": {
|
2851 |
+
"p-limit": "^1.1.0"
|
2852 |
+
}
|
2853 |
+
},
|
2854 |
+
"p-try": {
|
2855 |
+
"version": "1.0.0",
|
2856 |
+
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
2857 |
+
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
|
2858 |
+
"dev": true
|
2859 |
+
}
|
2860 |
+
}
|
2861 |
+
},
|
2862 |
+
"readable-stream": {
|
2863 |
+
"version": "3.4.0",
|
2864 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
|
2865 |
+
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
|
2866 |
+
"dev": true,
|
2867 |
+
"requires": {
|
2868 |
+
"inherits": "^2.0.3",
|
2869 |
+
"string_decoder": "^1.1.1",
|
2870 |
+
"util-deprecate": "^1.0.1"
|
2871 |
+
}
|
2872 |
+
},
|
2873 |
+
"redent": {
|
2874 |
+
"version": "2.0.0",
|
2875 |
+
"resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
|
2876 |
+
"integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
|
2877 |
+
"dev": true,
|
2878 |
+
"requires": {
|
2879 |
+
"indent-string": "^3.0.0",
|
2880 |
+
"strip-indent": "^2.0.0"
|
2881 |
+
}
|
2882 |
+
},
|
2883 |
+
"regex-not": {
|
2884 |
+
"version": "1.0.2",
|
2885 |
+
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
|
2886 |
+
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
|
2887 |
+
"dev": true,
|
2888 |
+
"requires": {
|
2889 |
+
"extend-shallow": "^3.0.2",
|
2890 |
+
"safe-regex": "^1.1.0"
|
2891 |
+
}
|
2892 |
+
},
|
2893 |
+
"regexpp": {
|
2894 |
+
"version": "2.0.1",
|
2895 |
+
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
|
2896 |
+
"integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
|
2897 |
+
"dev": true
|
2898 |
+
},
|
2899 |
+
"regextras": {
|
2900 |
+
"version": "0.6.1",
|
2901 |
+
"resolved": "https://registry.npmjs.org/regextras/-/regextras-0.6.1.tgz",
|
2902 |
+
"integrity": "sha512-EzIHww9xV2Kpqx+corS/I7OBmf2rZ0pKKJPsw5Dc+l6Zq1TslDmtRIP9maVn3UH+72MIXmn8zzDgP07ihQogUA==",
|
2903 |
+
"dev": true
|
2904 |
+
},
|
2905 |
+
"remark": {
|
2906 |
+
"version": "10.0.1",
|
2907 |
+
"resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
|
2908 |
+
"integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",
|
2909 |
+
"dev": true,
|
2910 |
+
"requires": {
|
2911 |
+
"remark-parse": "^6.0.0",
|
2912 |
+
"remark-stringify": "^6.0.0",
|
2913 |
+
"unified": "^7.0.0"
|
2914 |
+
}
|
2915 |
+
},
|
2916 |
+
"remark-parse": {
|
2917 |
+
"version": "6.0.3",
|
2918 |
+
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz",
|
2919 |
+
"integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==",
|
2920 |
+
"dev": true,
|
2921 |
+
"requires": {
|
2922 |
+
"collapse-white-space": "^1.0.2",
|
2923 |
+
"is-alphabetical": "^1.0.0",
|
2924 |
+
"is-decimal": "^1.0.0",
|
2925 |
+
"is-whitespace-character": "^1.0.0",
|
2926 |
+
"is-word-character": "^1.0.0",
|
2927 |
+
"markdown-escapes": "^1.0.0",
|
2928 |
+
"parse-entities": "^1.1.0",
|
2929 |
+
"repeat-string": "^1.5.4",
|
2930 |
+
"state-toggle": "^1.0.0",
|
2931 |
+
"trim": "0.0.1",
|
2932 |
+
"trim-trailing-lines": "^1.0.0",
|
2933 |
+
"unherit": "^1.0.4",
|
2934 |
+
"unist-util-remove-position": "^1.0.0",
|
2935 |
+
"vfile-location": "^2.0.0",
|
2936 |
+
"xtend": "^4.0.1"
|
2937 |
+
}
|
2938 |
+
},
|
2939 |
+
"remark-stringify": {
|
2940 |
+
"version": "6.0.4",
|
2941 |
+
"resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz",
|
2942 |
+
"integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
|
2943 |
+
"dev": true,
|
2944 |
+
"requires": {
|
2945 |
+
"ccount": "^1.0.0",
|
2946 |
+
"is-alphanumeric": "^1.0.0",
|
2947 |
+
"is-decimal": "^1.0.0",
|
2948 |
+
"is-whitespace-character": "^1.0.0",
|
2949 |
+
"longest-streak": "^2.0.1",
|
2950 |
+
"markdown-escapes": "^1.0.0",
|
2951 |
+
"markdown-table": "^1.1.0",
|
2952 |
+
"mdast-util-compact": "^1.0.0",
|
2953 |
+
"parse-entities": "^1.0.2",
|
2954 |
+
"repeat-string": "^1.5.4",
|
2955 |
+
"state-toggle": "^1.0.0",
|
2956 |
+
"stringify-entities": "^1.0.1",
|
2957 |
+
"unherit": "^1.0.4",
|
2958 |
+
"xtend": "^4.0.1"
|
2959 |
+
}
|
2960 |
+
},
|
2961 |
+
"repeat-element": {
|
2962 |
+
"version": "1.1.3",
|
2963 |
+
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
|
2964 |
+
"integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
|
2965 |
+
"dev": true
|
2966 |
+
},
|
2967 |
+
"repeat-string": {
|
2968 |
+
"version": "1.6.1",
|
2969 |
+
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
2970 |
+
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
|
2971 |
+
"dev": true
|
2972 |
+
},
|
2973 |
+
"replace-ext": {
|
2974 |
+
"version": "1.0.0",
|
2975 |
+
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
|
2976 |
+
"integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
|
2977 |
+
"dev": true
|
2978 |
+
},
|
2979 |
+
"resolve": {
|
2980 |
+
"version": "1.12.0",
|
2981 |
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
|
2982 |
+
"integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
|
2983 |
+
"dev": true,
|
2984 |
+
"requires": {
|
2985 |
+
"path-parse": "^1.0.6"
|
2986 |
+
}
|
2987 |
+
},
|
2988 |
+
"resolve-from": {
|
2989 |
+
"version": "4.0.0",
|
2990 |
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
|
2991 |
+
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
2992 |
+
"dev": true
|
2993 |
+
},
|
2994 |
+
"resolve-url": {
|
2995 |
+
"version": "0.2.1",
|
2996 |
+
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
|
2997 |
+
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
|
2998 |
+
"dev": true
|
2999 |
+
},
|
3000 |
+
"restore-cursor": {
|
3001 |
+
"version": "2.0.0",
|
3002 |
+
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
3003 |
+
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
|
3004 |
+
"dev": true,
|
3005 |
+
"requires": {
|
3006 |
+
"onetime": "^2.0.0",
|
3007 |
+
"signal-exit": "^3.0.2"
|
3008 |
+
}
|
3009 |
+
},
|
3010 |
+
"ret": {
|
3011 |
+
"version": "0.1.15",
|
3012 |
+
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
|
3013 |
+
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
|
3014 |
+
"dev": true
|
3015 |
+
},
|
3016 |
+
"rimraf": {
|
3017 |
+
"version": "2.6.3",
|
3018 |
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
3019 |
+
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
3020 |
+
"dev": true,
|
3021 |
+
"requires": {
|
3022 |
+
"glob": "^7.1.3"
|
3023 |
+
}
|
3024 |
+
},
|
3025 |
+
"run-async": {
|
3026 |
+
"version": "2.3.0",
|
3027 |
+
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
|
3028 |
+
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
|
3029 |
+
"dev": true,
|
3030 |
+
"requires": {
|
3031 |
+
"is-promise": "^2.1.0"
|
3032 |
+
}
|
3033 |
+
},
|
3034 |
+
"rxjs": {
|
3035 |
+
"version": "6.5.2",
|
3036 |
+
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
|
3037 |
+
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
|
3038 |
+
"dev": true,
|
3039 |
+
"requires": {
|
3040 |
+
"tslib": "^1.9.0"
|
3041 |
+
}
|
3042 |
+
},
|
3043 |
+
"safe-buffer": {
|
3044 |
+
"version": "5.2.0",
|
3045 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
3046 |
+
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
3047 |
+
"dev": true
|
3048 |
+
},
|
3049 |
+
"safe-regex": {
|
3050 |
+
"version": "1.1.0",
|
3051 |
+
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
|
3052 |
+
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
|
3053 |
+
"dev": true,
|
3054 |
+
"requires": {
|
3055 |
+
"ret": "~0.1.10"
|
3056 |
+
}
|
3057 |
+
},
|
3058 |
+
"safer-buffer": {
|
3059 |
+
"version": "2.1.2",
|
3060 |
+
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
3061 |
+
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
3062 |
+
"dev": true
|
3063 |
+
},
|
3064 |
+
"semver": {
|
3065 |
+
"version": "6.3.0",
|
3066 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
3067 |
+
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
3068 |
+
"dev": true
|
3069 |
+
},
|
3070 |
+
"set-value": {
|
3071 |
+
"version": "2.0.1",
|
3072 |
+
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
|
3073 |
+
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
|
3074 |
+
"dev": true,
|
3075 |
+
"requires": {
|
3076 |
+
"extend-shallow": "^2.0.1",
|
3077 |
+
"is-extendable": "^0.1.1",
|
3078 |
+
"is-plain-object": "^2.0.3",
|
3079 |
+
"split-string": "^3.0.1"
|
3080 |
+
},
|
3081 |
+
"dependencies": {
|
3082 |
+
"extend-shallow": {
|
3083 |
+
"version": "2.0.1",
|
3084 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
3085 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
3086 |
+
"dev": true,
|
3087 |
+
"requires": {
|
3088 |
+
"is-extendable": "^0.1.0"
|
3089 |
+
}
|
3090 |
+
}
|
3091 |
+
}
|
3092 |
+
},
|
3093 |
+
"shebang-command": {
|
3094 |
+
"version": "1.2.0",
|
3095 |
+
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
3096 |
+
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
3097 |
+
"dev": true,
|
3098 |
+
"requires": {
|
3099 |
+
"shebang-regex": "^1.0.0"
|
3100 |
+
}
|
3101 |
+
},
|
3102 |
+
"shebang-regex": {
|
3103 |
+
"version": "1.0.0",
|
3104 |
+
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
3105 |
+
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
3106 |
+
"dev": true
|
3107 |
+
},
|
3108 |
+
"signal-exit": {
|
3109 |
+
"version": "3.0.2",
|
3110 |
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
3111 |
+
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
3112 |
+
"dev": true
|
3113 |
+
},
|
3114 |
+
"slash": {
|
3115 |
+
"version": "3.0.0",
|
3116 |
+
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
|
3117 |
+
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
|
3118 |
+
"dev": true
|
3119 |
+
},
|
3120 |
+
"slice-ansi": {
|
3121 |
+
"version": "2.1.0",
|
3122 |
+
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
|
3123 |
+
"integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
|
3124 |
+
"dev": true,
|
3125 |
+
"requires": {
|
3126 |
+
"ansi-styles": "^3.2.0",
|
3127 |
+
"astral-regex": "^1.0.0",
|
3128 |
+
"is-fullwidth-code-point": "^2.0.0"
|
3129 |
+
}
|
3130 |
+
},
|
3131 |
+
"snapdragon": {
|
3132 |
+
"version": "0.8.2",
|
3133 |
+
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
3134 |
+
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
|
3135 |
+
"dev": true,
|
3136 |
+
"requires": {
|
3137 |
+
"base": "^0.11.1",
|
3138 |
+
"debug": "^2.2.0",
|
3139 |
+
"define-property": "^0.2.5",
|
3140 |
+
"extend-shallow": "^2.0.1",
|
3141 |
+
"map-cache": "^0.2.2",
|
3142 |
+
"source-map": "^0.5.6",
|
3143 |
+
"source-map-resolve": "^0.5.0",
|
3144 |
+
"use": "^3.1.0"
|
3145 |
+
},
|
3146 |
+
"dependencies": {
|
3147 |
+
"debug": {
|
3148 |
+
"version": "2.6.9",
|
3149 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
3150 |
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
3151 |
+
"dev": true,
|
3152 |
+
"requires": {
|
3153 |
+
"ms": "2.0.0"
|
3154 |
+
}
|
3155 |
+
},
|
3156 |
+
"define-property": {
|
3157 |
+
"version": "0.2.5",
|
3158 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
3159 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
3160 |
+
"dev": true,
|
3161 |
+
"requires": {
|
3162 |
+
"is-descriptor": "^0.1.0"
|
3163 |
+
}
|
3164 |
+
},
|
3165 |
+
"extend-shallow": {
|
3166 |
+
"version": "2.0.1",
|
3167 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
3168 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
3169 |
+
"dev": true,
|
3170 |
+
"requires": {
|
3171 |
+
"is-extendable": "^0.1.0"
|
3172 |
+
}
|
3173 |
+
},
|
3174 |
+
"ms": {
|
3175 |
+
"version": "2.0.0",
|
3176 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
3177 |
+
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
3178 |
+
"dev": true
|
3179 |
+
},
|
3180 |
+
"source-map": {
|
3181 |
+
"version": "0.5.7",
|
3182 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
3183 |
+
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
3184 |
+
"dev": true
|
3185 |
+
}
|
3186 |
+
}
|
3187 |
+
},
|
3188 |
+
"snapdragon-node": {
|
3189 |
+
"version": "2.1.1",
|
3190 |
+
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
|
3191 |
+
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
|
3192 |
+
"dev": true,
|
3193 |
+
"requires": {
|
3194 |
+
"define-property": "^1.0.0",
|
3195 |
+
"isobject": "^3.0.0",
|
3196 |
+
"snapdragon-util": "^3.0.1"
|
3197 |
+
},
|
3198 |
+
"dependencies": {
|
3199 |
+
"define-property": {
|
3200 |
+
"version": "1.0.0",
|
3201 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
3202 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
3203 |
+
"dev": true,
|
3204 |
+
"requires": {
|
3205 |
+
"is-descriptor": "^1.0.0"
|
3206 |
+
}
|
3207 |
+
},
|
3208 |
+
"is-accessor-descriptor": {
|
3209 |
+
"version": "1.0.0",
|
3210 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
3211 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
3212 |
+
"dev": true,
|
3213 |
+
"requires": {
|
3214 |
+
"kind-of": "^6.0.0"
|
3215 |
+
}
|
3216 |
+
},
|
3217 |
+
"is-data-descriptor": {
|
3218 |
+
"version": "1.0.0",
|
3219 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
3220 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
3221 |
+
"dev": true,
|
3222 |
+
"requires": {
|
3223 |
+
"kind-of": "^6.0.0"
|
3224 |
+
}
|
3225 |
+
},
|
3226 |
+
"is-descriptor": {
|
3227 |
+
"version": "1.0.2",
|
3228 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
3229 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
3230 |
+
"dev": true,
|
3231 |
+
"requires": {
|
3232 |
+
"is-accessor-descriptor": "^1.0.0",
|
3233 |
+
"is-data-descriptor": "^1.0.0",
|
3234 |
+
"kind-of": "^6.0.2"
|
3235 |
+
}
|
3236 |
+
}
|
3237 |
+
}
|
3238 |
+
},
|
3239 |
+
"snapdragon-util": {
|
3240 |
+
"version": "3.0.1",
|
3241 |
+
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
|
3242 |
+
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
|
3243 |
+
"dev": true,
|
3244 |
+
"requires": {
|
3245 |
+
"kind-of": "^3.2.0"
|
3246 |
+
},
|
3247 |
+
"dependencies": {
|
3248 |
+
"kind-of": {
|
3249 |
+
"version": "3.2.2",
|
3250 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
3251 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
3252 |
+
"dev": true,
|
3253 |
+
"requires": {
|
3254 |
+
"is-buffer": "^1.1.5"
|
3255 |
+
}
|
3256 |
+
}
|
3257 |
+
}
|
3258 |
+
},
|
3259 |
+
"source-map": {
|
3260 |
+
"version": "0.6.1",
|
3261 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
3262 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
3263 |
+
"dev": true
|
3264 |
+
},
|
3265 |
+
"source-map-resolve": {
|
3266 |
+
"version": "0.5.2",
|
3267 |
+
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
|
3268 |
+
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
|
3269 |
+
"dev": true,
|
3270 |
+
"requires": {
|
3271 |
+
"atob": "^2.1.1",
|
3272 |
+
"decode-uri-component": "^0.2.0",
|
3273 |
+
"resolve-url": "^0.2.1",
|
3274 |
+
"source-map-url": "^0.4.0",
|
3275 |
+
"urix": "^0.1.0"
|
3276 |
+
}
|
3277 |
+
},
|
3278 |
+
"source-map-url": {
|
3279 |
+
"version": "0.4.0",
|
3280 |
+
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
|
3281 |
+
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
|
3282 |
+
"dev": true
|
3283 |
+
},
|
3284 |
+
"spdx-correct": {
|
3285 |
+
"version": "3.1.0",
|
3286 |
+
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
|
3287 |
+
"integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
|
3288 |
+
"dev": true,
|
3289 |
+
"requires": {
|
3290 |
+
"spdx-expression-parse": "^3.0.0",
|
3291 |
+
"spdx-license-ids": "^3.0.0"
|
3292 |
+
}
|
3293 |
+
},
|
3294 |
+
"spdx-exceptions": {
|
3295 |
+
"version": "2.2.0",
|
3296 |
+
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
|
3297 |
+
"integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
|
3298 |
+
"dev": true
|
3299 |
+
},
|
3300 |
+
"spdx-expression-parse": {
|
3301 |
+
"version": "3.0.0",
|
3302 |
+
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
|
3303 |
+
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
|
3304 |
+
"dev": true,
|
3305 |
+
"requires": {
|
3306 |
+
"spdx-exceptions": "^2.1.0",
|
3307 |
+
"spdx-license-ids": "^3.0.0"
|
3308 |
+
}
|
3309 |
+
},
|
3310 |
+
"spdx-license-ids": {
|
3311 |
+
"version": "3.0.5",
|
3312 |
+
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
|
3313 |
+
"integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
|
3314 |
+
"dev": true
|
3315 |
+
},
|
3316 |
+
"specificity": {
|
3317 |
+
"version": "0.4.1",
|
3318 |
+
"resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz",
|
3319 |
+
"integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==",
|
3320 |
+
"dev": true
|
3321 |
+
},
|
3322 |
+
"split-string": {
|
3323 |
+
"version": "3.1.0",
|
3324 |
+
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
|
3325 |
+
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
|
3326 |
+
"dev": true,
|
3327 |
+
"requires": {
|
3328 |
+
"extend-shallow": "^3.0.0"
|
3329 |
+
}
|
3330 |
+
},
|
3331 |
+
"sprintf-js": {
|
3332 |
+
"version": "1.0.3",
|
3333 |
+
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
3334 |
+
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
3335 |
+
"dev": true
|
3336 |
+
},
|
3337 |
+
"state-toggle": {
|
3338 |
+
"version": "1.0.2",
|
3339 |
+
"resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz",
|
3340 |
+
"integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==",
|
3341 |
+
"dev": true
|
3342 |
+
},
|
3343 |
+
"static-extend": {
|
3344 |
+
"version": "0.1.2",
|
3345 |
+
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
3346 |
+
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
|
3347 |
+
"dev": true,
|
3348 |
+
"requires": {
|
3349 |
+
"define-property": "^0.2.5",
|
3350 |
+
"object-copy": "^0.1.0"
|
3351 |
+
},
|
3352 |
+
"dependencies": {
|
3353 |
+
"define-property": {
|
3354 |
+
"version": "0.2.5",
|
3355 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
3356 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
3357 |
+
"dev": true,
|
3358 |
+
"requires": {
|
3359 |
+
"is-descriptor": "^0.1.0"
|
3360 |
+
}
|
3361 |
+
}
|
3362 |
+
}
|
3363 |
+
},
|
3364 |
+
"string-width": {
|
3365 |
+
"version": "2.1.1",
|
3366 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
3367 |
+
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
3368 |
+
"dev": true,
|
3369 |
+
"requires": {
|
3370 |
+
"is-fullwidth-code-point": "^2.0.0",
|
3371 |
+
"strip-ansi": "^4.0.0"
|
3372 |
+
},
|
3373 |
+
"dependencies": {
|
3374 |
+
"strip-ansi": {
|
3375 |
+
"version": "4.0.0",
|
3376 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
3377 |
+
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
3378 |
+
"dev": true,
|
3379 |
+
"requires": {
|
3380 |
+
"ansi-regex": "^3.0.0"
|
3381 |
+
}
|
3382 |
+
}
|
3383 |
+
}
|
3384 |
+
},
|
3385 |
+
"string_decoder": {
|
3386 |
+
"version": "1.3.0",
|
3387 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
3388 |
+
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
3389 |
+
"dev": true,
|
3390 |
+
"requires": {
|
3391 |
+
"safe-buffer": "~5.2.0"
|
3392 |
+
}
|
3393 |
+
},
|
3394 |
+
"stringify-entities": {
|
3395 |
+
"version": "1.3.2",
|
3396 |
+
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz",
|
3397 |
+
"integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
|
3398 |
+
"dev": true,
|
3399 |
+
"requires": {
|
3400 |
+
"character-entities-html4": "^1.0.0",
|
3401 |
+
"character-entities-legacy": "^1.0.0",
|
3402 |
+
"is-alphanumerical": "^1.0.0",
|
3403 |
+
"is-hexadecimal": "^1.0.0"
|
3404 |
+
}
|
3405 |
+
},
|
3406 |
+
"strip-ansi": {
|
3407 |
+
"version": "5.2.0",
|
3408 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
3409 |
+
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
3410 |
+
"dev": true,
|
3411 |
+
"requires": {
|
3412 |
+
"ansi-regex": "^4.1.0"
|
3413 |
+
},
|
3414 |
+
"dependencies": {
|
3415 |
+
"ansi-regex": {
|
3416 |
+
"version": "4.1.0",
|
3417 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
3418 |
+
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
3419 |
+
"dev": true
|
3420 |
+
}
|
3421 |
+
}
|
3422 |
+
},
|
3423 |
+
"strip-bom": {
|
3424 |
+
"version": "3.0.0",
|
3425 |
+
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
3426 |
+
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
|
3427 |
+
"dev": true
|
3428 |
+
},
|
3429 |
+
"strip-indent": {
|
3430 |
+
"version": "2.0.0",
|
3431 |
+
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
|
3432 |
+
"integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
|
3433 |
+
"dev": true
|
3434 |
+
},
|
3435 |
+
"strip-json-comments": {
|
3436 |
+
"version": "3.0.1",
|
3437 |
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
|
3438 |
+
"integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
|
3439 |
+
"dev": true
|
3440 |
+
},
|
3441 |
+
"style-search": {
|
3442 |
+
"version": "0.1.0",
|
3443 |
+
"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
|
3444 |
+
"integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
|
3445 |
+
"dev": true
|
3446 |
+
},
|
3447 |
+
"stylelint": {
|
3448 |
+
"version": "10.1.0",
|
3449 |
+
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-10.1.0.tgz",
|
3450 |
+
"integrity": "sha512-OmlUXrgzEMLQYj1JPTpyZPR9G4bl0StidfHnGJEMpdiQ0JyTq0MPg1xkHk1/xVJ2rTPESyJCDWjG8Kbpoo7Kuw==",
|
3451 |
+
"dev": true,
|
3452 |
+
"requires": {
|
3453 |
+
"autoprefixer": "^9.5.1",
|
3454 |
+
"balanced-match": "^1.0.0",
|
3455 |
+
"chalk": "^2.4.2",
|
3456 |
+
"cosmiconfig": "^5.2.0",
|
3457 |
+
"debug": "^4.1.1",
|
3458 |
+
"execall": "^2.0.0",
|
3459 |
+
"file-entry-cache": "^5.0.1",
|
3460 |
+
"get-stdin": "^7.0.0",
|
3461 |
+
"global-modules": "^2.0.0",
|
3462 |
+
"globby": "^9.2.0",
|
3463 |
+
"globjoin": "^0.1.4",
|
3464 |
+
"html-tags": "^3.0.0",
|
3465 |
+
"ignore": "^5.0.6",
|
3466 |
+
"import-lazy": "^4.0.0",
|
3467 |
+
"imurmurhash": "^0.1.4",
|
3468 |
+
"known-css-properties": "^0.14.0",
|
3469 |
+
"leven": "^3.1.0",
|
3470 |
+
"lodash": "^4.17.11",
|
3471 |
+
"log-symbols": "^3.0.0",
|
3472 |
+
"mathml-tag-names": "^2.1.0",
|
3473 |
+
"meow": "^5.0.0",
|
3474 |
+
"micromatch": "^4.0.0",
|
3475 |
+
"normalize-selector": "^0.2.0",
|
3476 |
+
"pify": "^4.0.1",
|
3477 |
+
"postcss": "^7.0.14",
|
3478 |
+
"postcss-html": "^0.36.0",
|
3479 |
+
"postcss-jsx": "^0.36.1",
|
3480 |
+
"postcss-less": "^3.1.4",
|
3481 |
+
"postcss-markdown": "^0.36.0",
|
3482 |
+
"postcss-media-query-parser": "^0.2.3",
|
3483 |
+
"postcss-reporter": "^6.0.1",
|
3484 |
+
"postcss-resolve-nested-selector": "^0.1.1",
|
3485 |
+
"postcss-safe-parser": "^4.0.1",
|
3486 |
+
"postcss-sass": "^0.3.5",
|
3487 |
+
"postcss-scss": "^2.0.0",
|
3488 |
+
"postcss-selector-parser": "^3.1.0",
|
3489 |
+
"postcss-syntax": "^0.36.2",
|
3490 |
+
"postcss-value-parser": "^3.3.1",
|
3491 |
+
"resolve-from": "^5.0.0",
|
3492 |
+
"signal-exit": "^3.0.2",
|
3493 |
+
"slash": "^3.0.0",
|
3494 |
+
"specificity": "^0.4.1",
|
3495 |
+
"string-width": "^4.1.0",
|
3496 |
+
"strip-ansi": "^5.2.0",
|
3497 |
+
"style-search": "^0.1.0",
|
3498 |
+
"sugarss": "^2.0.0",
|
3499 |
+
"svg-tags": "^1.0.0",
|
3500 |
+
"table": "^5.2.3"
|
3501 |
+
},
|
3502 |
+
"dependencies": {
|
3503 |
+
"emoji-regex": {
|
3504 |
+
"version": "8.0.0",
|
3505 |
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
3506 |
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
3507 |
+
"dev": true
|
3508 |
+
},
|
3509 |
+
"get-stdin": {
|
3510 |
+
"version": "7.0.0",
|
3511 |
+
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
|
3512 |
+
"integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
|
3513 |
+
"dev": true
|
3514 |
+
},
|
3515 |
+
"ignore": {
|
3516 |
+
"version": "5.1.4",
|
3517 |
+
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
|
3518 |
+
"integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
|
3519 |
+
"dev": true
|
3520 |
+
},
|
3521 |
+
"is-fullwidth-code-point": {
|
3522 |
+
"version": "3.0.0",
|
3523 |
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
3524 |
+
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
3525 |
+
"dev": true
|
3526 |
+
},
|
3527 |
+
"pify": {
|
3528 |
+
"version": "4.0.1",
|
3529 |
+
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
3530 |
+
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
|
3531 |
+
"dev": true
|
3532 |
+
},
|
3533 |
+
"resolve-from": {
|
3534 |
+
"version": "5.0.0",
|
3535 |
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
|
3536 |
+
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
|
3537 |
+
"dev": true
|
3538 |
+
},
|
3539 |
+
"string-width": {
|
3540 |
+
"version": "4.1.0",
|
3541 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz",
|
3542 |
+
"integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==",
|
3543 |
+
"dev": true,
|
3544 |
+
"requires": {
|
3545 |
+
"emoji-regex": "^8.0.0",
|
3546 |
+
"is-fullwidth-code-point": "^3.0.0",
|
3547 |
+
"strip-ansi": "^5.2.0"
|
3548 |
+
}
|
3549 |
+
}
|
3550 |
+
}
|
3551 |
+
},
|
3552 |
+
"stylelint-config-prettier": {
|
3553 |
+
"version": "5.2.0",
|
3554 |
+
"resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-5.2.0.tgz",
|
3555 |
+
"integrity": "sha512-ehrG/mBi9CTKkOBi0wlStX58+g9eGJhJW/jFEcCm/dUVHg9I2+T90k4tlyratvhlz876dyrTlor7gvDEaohVnA==",
|
3556 |
+
"dev": true
|
3557 |
+
},
|
3558 |
+
"stylelint-config-recommended": {
|
3559 |
+
"version": "2.2.0",
|
3560 |
+
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz",
|
3561 |
+
"integrity": "sha512-bZ+d4RiNEfmoR74KZtCKmsABdBJr4iXRiCso+6LtMJPw5rd/KnxUWTxht7TbafrTJK1YRjNgnN0iVZaJfc3xJA==",
|
3562 |
+
"dev": true
|
3563 |
+
},
|
3564 |
+
"sugarss": {
|
3565 |
+
"version": "2.0.0",
|
3566 |
+
"resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz",
|
3567 |
+
"integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==",
|
3568 |
+
"dev": true,
|
3569 |
+
"requires": {
|
3570 |
+
"postcss": "^7.0.2"
|
3571 |
+
}
|
3572 |
+
},
|
3573 |
+
"supports-color": {
|
3574 |
+
"version": "5.5.0",
|
3575 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
3576 |
+
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
3577 |
+
"dev": true,
|
3578 |
+
"requires": {
|
3579 |
+
"has-flag": "^3.0.0"
|
3580 |
+
}
|
3581 |
+
},
|
3582 |
+
"svg-tags": {
|
3583 |
+
"version": "1.0.0",
|
3584 |
+
"resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
|
3585 |
+
"integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
|
3586 |
+
"dev": true
|
3587 |
+
},
|
3588 |
+
"table": {
|
3589 |
+
"version": "5.4.6",
|
3590 |
+
"resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
|
3591 |
+
"integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
|
3592 |
+
"dev": true,
|
3593 |
+
"requires": {
|
3594 |
+
"ajv": "^6.10.2",
|
3595 |
+
"lodash": "^4.17.14",
|
3596 |
+
"slice-ansi": "^2.1.0",
|
3597 |
+
"string-width": "^3.0.0"
|
3598 |
+
},
|
3599 |
+
"dependencies": {
|
3600 |
+
"string-width": {
|
3601 |
+
"version": "3.1.0",
|
3602 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
3603 |
+
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
3604 |
+
"dev": true,
|
3605 |
+
"requires": {
|
3606 |
+
"emoji-regex": "^7.0.1",
|
3607 |
+
"is-fullwidth-code-point": "^2.0.0",
|
3608 |
+
"strip-ansi": "^5.1.0"
|
3609 |
+
}
|
3610 |
+
}
|
3611 |
+
}
|
3612 |
+
},
|
3613 |
+
"text-table": {
|
3614 |
+
"version": "0.2.0",
|
3615 |
+
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
|
3616 |
+
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
|
3617 |
+
"dev": true
|
3618 |
+
},
|
3619 |
+
"through": {
|
3620 |
+
"version": "2.3.8",
|
3621 |
+
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
3622 |
+
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
|
3623 |
+
"dev": true
|
3624 |
+
},
|
3625 |
+
"tmp": {
|
3626 |
+
"version": "0.0.33",
|
3627 |
+
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
3628 |
+
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
3629 |
+
"dev": true,
|
3630 |
+
"requires": {
|
3631 |
+
"os-tmpdir": "~1.0.2"
|
3632 |
+
}
|
3633 |
+
},
|
3634 |
+
"to-fast-properties": {
|
3635 |
+
"version": "2.0.0",
|
3636 |
+
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
3637 |
+
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
3638 |
+
"dev": true
|
3639 |
+
},
|
3640 |
+
"to-object-path": {
|
3641 |
+
"version": "0.3.0",
|
3642 |
+
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
|
3643 |
+
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
|
3644 |
+
"dev": true,
|
3645 |
+
"requires": {
|
3646 |
+
"kind-of": "^3.0.2"
|
3647 |
+
},
|
3648 |
+
"dependencies": {
|
3649 |
+
"kind-of": {
|
3650 |
+
"version": "3.2.2",
|
3651 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
3652 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
3653 |
+
"dev": true,
|
3654 |
+
"requires": {
|
3655 |
+
"is-buffer": "^1.1.5"
|
3656 |
+
}
|
3657 |
+
}
|
3658 |
+
}
|
3659 |
+
},
|
3660 |
+
"to-regex": {
|
3661 |
+
"version": "3.0.2",
|
3662 |
+
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
3663 |
+
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
|
3664 |
+
"dev": true,
|
3665 |
+
"requires": {
|
3666 |
+
"define-property": "^2.0.2",
|
3667 |
+
"extend-shallow": "^3.0.2",
|
3668 |
+
"regex-not": "^1.0.2",
|
3669 |
+
"safe-regex": "^1.1.0"
|
3670 |
+
}
|
3671 |
+
},
|
3672 |
+
"to-regex-range": {
|
3673 |
+
"version": "2.1.1",
|
3674 |
+
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
|
3675 |
+
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
|
3676 |
+
"dev": true,
|
3677 |
+
"requires": {
|
3678 |
+
"is-number": "^3.0.0",
|
3679 |
+
"repeat-string": "^1.6.1"
|
3680 |
+
}
|
3681 |
+
},
|
3682 |
+
"trim": {
|
3683 |
+
"version": "0.0.1",
|
3684 |
+
"resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
|
3685 |
+
"integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=",
|
3686 |
+
"dev": true
|
3687 |
+
},
|
3688 |
+
"trim-newlines": {
|
3689 |
+
"version": "2.0.0",
|
3690 |
+
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
|
3691 |
+
"integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
|
3692 |
+
"dev": true
|
3693 |
+
},
|
3694 |
+
"trim-right": {
|
3695 |
+
"version": "1.0.1",
|
3696 |
+
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
3697 |
+
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
|
3698 |
+
"dev": true
|
3699 |
+
},
|
3700 |
+
"trim-trailing-lines": {
|
3701 |
+
"version": "1.1.2",
|
3702 |
+
"resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz",
|
3703 |
+
"integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==",
|
3704 |
+
"dev": true
|
3705 |
+
},
|
3706 |
+
"trough": {
|
3707 |
+
"version": "1.0.4",
|
3708 |
+
"resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz",
|
3709 |
+
"integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==",
|
3710 |
+
"dev": true
|
3711 |
+
},
|
3712 |
+
"tslib": {
|
3713 |
+
"version": "1.10.0",
|
3714 |
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
3715 |
+
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
|
3716 |
+
"dev": true
|
3717 |
+
},
|
3718 |
+
"type-check": {
|
3719 |
+
"version": "0.3.2",
|
3720 |
+
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
|
3721 |
+
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
|
3722 |
+
"dev": true,
|
3723 |
+
"requires": {
|
3724 |
+
"prelude-ls": "~1.1.2"
|
3725 |
+
}
|
3726 |
+
},
|
3727 |
+
"unherit": {
|
3728 |
+
"version": "1.1.2",
|
3729 |
+
"resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz",
|
3730 |
+
"integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==",
|
3731 |
+
"dev": true,
|
3732 |
+
"requires": {
|
3733 |
+
"inherits": "^2.0.1",
|
3734 |
+
"xtend": "^4.0.1"
|
3735 |
+
}
|
3736 |
+
},
|
3737 |
+
"unified": {
|
3738 |
+
"version": "7.1.0",
|
3739 |
+
"resolved": "https://registry.npmjs.org/unified/-/uni
|