diff --git a/README.md b/README.md index 86d3b778..55e0bb6b 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ **Contributors:** bradt, deliciousbrains, ianmjones **Tags:** uploads, amazon, s3, amazon s3, digitalocean, digitalocean spaces, google cloud storage, gcs, mirror, admin, media, cdn, cloudfront **Requires at least:** 4.9 -**Tested up to:** 5.9 -**Requires PHP:** 5.6 -**Stable tag:** 2.6.2 +**Tested up to:** 5.7 +**Requires PHP:** 5.5 +**Stable tag:** 2.5.4 **License:** GPLv3 Copies files to Amazon S3, DigitalOcean Spaces or Google Cloud Storage as they are uploaded to the Media Library. Optionally configure Amazon CloudFront or another CDN for faster delivery. @@ -13,7 +13,7 @@ Copies files to Amazon S3, DigitalOcean Spaces or Google Cloud Storage as they a FORMERLY WP OFFLOAD S3 LITE -https://www.youtube.com/watch?v=I-wTMXMeFu4 +https://www.youtube.com/watch?v=_PVybEGaRXc This plugin automatically copies images, videos, documents, and any other media added through WordPress' media uploader to [Amazon S3](http://aws.amazon.com/s3/), [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces/) or [Google Cloud Storage](https://cloud.google.com/storage/). It then automatically replaces the URL to each media file with their respective Amazon S3, DigitalOcean Spaces or Google Cloud Storage URL or, if you have configured [Amazon CloudFront](http://aws.amazon.com/cloudfront/) or another CDN with or without a custom domain, that URL instead. Image thumbnails are also copied to the bucket and delivered through the correct remote URL. @@ -75,10 +75,6 @@ If you upgrade to the pro version of [WP Offload Media](https://deliciousbrains. ## Upgrade Notice ## -### 2.6 ### -This is a major upgrade that updates the format of information stored about offloaded Media Library items. Once upgraded you will not be able to downgrade without restoring data from a backup. -This version requires PHP 5.6+ - ### 2.3 ### This is a major upgrade that switches to using a custom table for storing data about offloaded Media Library items. Once upgraded you will not be able to downgrade without restoring data from a backup. @@ -93,27 +89,6 @@ This version requires PHP 5.3.3+ and the Amazon Web Services plugin ## Changelog ## -### WP Offload Media Lite 2.6.2 - 2022-04-04 ### -* Bug fix: Upgrade routine no longer risks breaking items when external object cache is in use - -### WP Offload Media Lite 2.6.1 - 2022-03-21 ### -* Bug fix: Local files are no longer removed if as3cf_pre_upload_attachment filter is used to abort upload - -### WP Offload Media Lite 2.6 - 2022-03-09 ### -* [Release Summary Blog Post](https://deliciousbrains.com/wp-offload-media-2-6-released/?utm_campaign=changelogs&utm_source=wordpress.org&utm_medium=free%2Bplugin%2Blisting) -* New: WP Offload Media is now compatible with WordPress 5.9 and Full Site Editing -* Improvement: Offloaded thumbnail sizes are now tracked for better handling of changes to registered sizes -* Improvement: Offloads and other storage provider actions are faster -* Bug fix: URL rewriting now works in the Full Site Editor -* Bug fix: Offloaded images are now shown when re-editing a Block Template or Template Part -* Bug fix: URL rewriting now works for Widgets migrated to a Widget Sidebar Block -* Bug fix: Objects are no longer left in the bucket when deleting a Media Library item with many changes to its thumbnail sizes - -### WP Offload Media Lite 2.5.5 - 2021-07-19 ### -* Bug fix: Signed GCS URLs broken when updating a post -* Bug fix: Incorrect mime type set on scaled image's bucket object when thumbnail format differs from original file's format -* Tested: WordPress 5.8 - ### WP Offload Media Lite 2.5.3 - 2021-03-03 ### * New: Added DigitalOcean region San Francisco 3 * Bug fix: Domain mapping not handled correctly when the local URL includes a port number diff --git a/assets/css/attachment.css b/assets/css/attachment.css index e2fe7253..5fca3eb7 100644 --- a/assets/css/attachment.css +++ b/assets/css/attachment.css @@ -1 +1,73 @@ -#s3-actions.postbox .inside{margin:0;padding:0}#s3-actions.postbox a,#s3-actions.postbox a:hover{text-decoration:none}#s3-actions.postbox .s3-details{padding:6px 0}#s3-actions.postbox .s3-details .misc-pub-section{clear:both;float:left;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}#s3-actions.postbox .s3-details .misc-pub-section .s3-key{float:left;width:20%;white-space:nowrap}#s3-actions.postbox .s3-details .misc-pub-section .s3-value{font-weight:bold;float:left;width:80%}#s3-actions.postbox .s3-details .misc-pub-section .s3-value .more-info{font-weight:lighter}#s3-actions.postbox .s3-details .misc-pub-section input.error{color:#a00}#s3-actions.postbox .s3-details .not-copied{color:#666}#s3-actions.postbox .s3-actions{padding:10px;clear:both;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#f5f5f5}#s3-actions.postbox .s3-actions .copy-action{text-align:right;float:right;line-height:23px}#s3-actions.postbox .s3-actions .remove-action{line-height:28px;vertical-align:middle;text-align:left;float:left}#s3-actions.postbox .s3-actions .remove-action a.local-warning{color:#a00}#s3-actions.postbox .s3-actions .remove-action a.local-warning:hover{color:#f00} +#s3-actions.postbox .inside { + margin: 0; + padding: 0; +} + +#s3-actions.postbox a, #s3-actions.postbox a:hover { + text-decoration: none; +} + +#s3-actions.postbox .s3-details { + padding: 6px 0; +} + +#s3-actions.postbox .s3-details .misc-pub-section { + clear: both; + float: left; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +#s3-actions.postbox .s3-details .misc-pub-section .s3-key { + float: left; + width: 20%; + white-space: nowrap; +} + +#s3-actions.postbox .s3-details .misc-pub-section .s3-value { + font-weight: bold; + float: left; + width: 80%; +} + +#s3-actions.postbox .s3-details .misc-pub-section .s3-value .more-info { + font-weight: lighter; +} + +#s3-actions.postbox .s3-details .misc-pub-section input.error { + color: #a00; +} + +#s3-actions.postbox .s3-details .not-copied { + color: #666; +} + +#s3-actions.postbox .s3-actions { + padding: 10px; + clear: both; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + background: #f5f5f5; +} + +#s3-actions.postbox .s3-actions .copy-action { + text-align: right; + float: right; + line-height: 23px; +} + +#s3-actions.postbox .s3-actions .remove-action { + line-height: 28px; + vertical-align: middle; + text-align: left; + float: left; +} + +#s3-actions.postbox .s3-actions .remove-action a.local-warning { + color: #a00; +} + +#s3-actions.postbox .s3-actions .remove-action a.local-warning:hover { + color: #f00; +} \ No newline at end of file diff --git a/assets/css/attachment.min.css b/assets/css/attachment.min.css new file mode 100644 index 00000000..f935b5d2 --- /dev/null +++ b/assets/css/attachment.min.css @@ -0,0 +1 @@ +#s3-actions.postbox .inside{margin:0;padding:0}#s3-actions.postbox a,#s3-actions.postbox a:hover{text-decoration:none}#s3-actions.postbox .s3-details{padding:6px 0}#s3-actions.postbox .s3-details .misc-pub-section{clear:both;float:left;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}#s3-actions.postbox .s3-details .misc-pub-section .s3-key{float:left;width:20%;white-space:nowrap}#s3-actions.postbox .s3-details .misc-pub-section .s3-value{font-weight:700;float:left;width:80%}#s3-actions.postbox .s3-details .misc-pub-section .s3-value .more-info{font-weight:lighter}#s3-actions.postbox .s3-details .misc-pub-section input.error{color:#a00}#s3-actions.postbox .s3-details .not-copied{color:#666}#s3-actions.postbox .s3-actions{padding:10px;clear:both;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#f5f5f5}#s3-actions.postbox .s3-actions .copy-action{text-align:right;float:right;line-height:23px}#s3-actions.postbox .s3-actions .remove-action{line-height:28px;vertical-align:middle;text-align:left;float:left}#s3-actions.postbox .s3-actions .remove-action a.local-warning{color:#a00}#s3-actions.postbox .s3-actions .remove-action a.local-warning:hover{color:red} \ No newline at end of file diff --git a/assets/css/delivery-provider.css b/assets/css/delivery-provider.css deleted file mode 100644 index 7fe9b9b1..00000000 --- a/assets/css/delivery-provider.css +++ /dev/null @@ -1 +0,0 @@ -.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options{margin-bottom:30px}.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options .as3cf-delivery-provider-sub-option{margin-left:25px}.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options .as3cf-delivery-provider-sub-option .as3cf-setting{display:none;margin-left:25px}.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options .as3cf-delivery-provider-sub-option.selected .as3cf-setting{display:block}.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options .as3cf-delivery-provider-sub-option-container>.as3cf-delivery-provider-sub-option{display:none}.as3cf-delivery-provider-select .as3cf-delivery-provider-select-options .as3cf-delivery-provider-sub-option-container.selected>.as3cf-delivery-provider-sub-option{display:block} diff --git a/assets/css/flexboxgrid.css b/assets/css/flexboxgrid.css new file mode 100644 index 00000000..9bb6e1c9 --- /dev/null +++ b/assets/css/flexboxgrid.css @@ -0,0 +1,894 @@ +/* Uncomment and set these variables to customize the grid. */ + +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-right: 2rem; + padding-left: 2rem; +} + +.row { + box-sizing: border-box; + display: -ms-flexbox; + display: -webkit-box; + display: flex; + -ms-flex: 0 1 auto; + -webkit-box-flex: 0; + flex: 0 1 auto; + -ms-flex-direction: row; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -1rem; + margin-left: -1rem; +} + +.row.reverse { + -ms-flex-direction: row-reverse; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + flex-direction: row-reverse; +} + +.col.reverse { + -ms-flex-direction: column-reverse; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + flex-direction: column-reverse; +} + +.col-xs, +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { + box-sizing: border-box; + -ms-flex: 0 0 auto; + -webkit-box-flex: 0; + flex: 0 0 auto; + padding-right: 1rem; + padding-left: 1rem; +} + +.col-xs { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + -webkit-box-flex: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; +} + +.col-xs-1 { + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + max-width: 8.333%; +} + +.col-xs-2 { + -ms-flex-preferred-size: 16.667%; + flex-basis: 16.667%; + max-width: 16.667%; +} + +.col-xs-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; +} + +.col-xs-4 { + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + max-width: 33.333%; +} + +.col-xs-5 { + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + max-width: 41.667%; +} + +.col-xs-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; +} + +.col-xs-7 { + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + max-width: 58.333%; +} + +.col-xs-8 { + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + max-width: 66.667%; +} + +.col-xs-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; +} + +.col-xs-10 { + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + max-width: 83.333%; +} + +.col-xs-11 { + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + max-width: 91.667%; +} + +.col-xs-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; +} + +.col-xs-offset-1 { + margin-left: 8.333%; +} + +.col-xs-offset-2 { + margin-left: 16.667%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-4 { + margin-left: 33.333%; +} + +.col-xs-offset-5 { + margin-left: 41.667%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-7 { + margin-left: 58.333%; +} + +.col-xs-offset-8 { + margin-left: 66.667%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-10 { + margin-left: 83.333%; +} + +.col-xs-offset-11 { + margin-left: 91.667%; +} + +.start-xs { + -ms-flex-pack: start; + -webkit-box-pack: start; + justify-content: flex-start; + text-align: start; +} + +.center-xs { + -ms-flex-pack: center; + -webkit-box-pack: center; + justify-content: center; + text-align: center; +} + +.end-xs { + -ms-flex-pack: end; + -webkit-box-pack: end; + justify-content: flex-end; + text-align: end; +} + +.top-xs { + -ms-flex-align: start; + -webkit-box-align: start; + align-items: flex-start; +} + +.middle-xs { + -ms-flex-align: center; + -webkit-box-align: center; + align-items: center; +} + +.bottom-xs { + -ms-flex-align: end; + -webkit-box-align: end; + align-items: flex-end; +} + +.around-xs { + -ms-flex-pack: distribute; + justify-content: space-around; +} + +.between-xs { + -ms-flex-pack: justify; + -webkit-box-pack: justify; + justify-content: space-between; +} + +.first-xs { + -ms-flex-order: -1; + -webkit-box-ordinal-group: 0; + order: -1; +} + +.last-xs { + -ms-flex-order: 1; + -webkit-box-ordinal-group: 2; + order: 1; +} + +@media only screen and (min-width: 48em) { + .container { + width: 46rem; + } + + .col-sm, + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + box-sizing: border-box; + -ms-flex: 0 0 auto; + -webkit-box-flex: 0; + flex: 0 0 auto; + padding-right: 1rem; + padding-left: 1rem; + } + + .col-sm { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + -webkit-box-flex: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-sm-1 { + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + max-width: 8.333%; + } + + .col-sm-2 { + -ms-flex-preferred-size: 16.667%; + flex-basis: 16.667%; + max-width: 16.667%; + } + + .col-sm-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-sm-4 { + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + max-width: 33.333%; + } + + .col-sm-5 { + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + max-width: 41.667%; + } + + .col-sm-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-sm-7 { + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + max-width: 58.333%; + } + + .col-sm-8 { + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + max-width: 66.667%; + } + + .col-sm-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-sm-10 { + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + max-width: 83.333%; + } + + .col-sm-11 { + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + max-width: 91.667%; + } + + .col-sm-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-sm-offset-1 { + margin-left: 8.333%; + } + + .col-sm-offset-2 { + margin-left: 16.667%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-4 { + margin-left: 33.333%; + } + + .col-sm-offset-5 { + margin-left: 41.667%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-7 { + margin-left: 58.333%; + } + + .col-sm-offset-8 { + margin-left: 66.667%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-10 { + margin-left: 83.333%; + } + + .col-sm-offset-11 { + margin-left: 91.667%; + } + + .start-sm { + -ms-flex-pack: start; + -webkit-box-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-sm { + -ms-flex-pack: center; + -webkit-box-pack: center; + justify-content: center; + text-align: center; + } + + .end-sm { + -ms-flex-pack: end; + -webkit-box-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-sm { + -ms-flex-align: start; + -webkit-box-align: start; + align-items: flex-start; + } + + .middle-sm { + -ms-flex-align: center; + -webkit-box-align: center; + align-items: center; + } + + .bottom-sm { + -ms-flex-align: end; + -webkit-box-align: end; + align-items: flex-end; + } + + .around-sm { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-sm { + -ms-flex-pack: justify; + -webkit-box-pack: justify; + justify-content: space-between; + } + + .first-sm { + -ms-flex-order: -1; + -webkit-box-ordinal-group: 0; + order: -1; + } + + .last-sm { + -ms-flex-order: 1; + -webkit-box-ordinal-group: 2; + order: 1; + } +} + +@media only screen and (min-width: 62em) { + .container { + width: 61rem; + } + + .col-md, + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + box-sizing: border-box; + -ms-flex: 0 0 auto; + -webkit-box-flex: 0; + flex: 0 0 auto; + padding-right: 1rem; + padding-left: 1rem; + } + + .col-md { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + -webkit-box-flex: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-md-1 { + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + max-width: 8.333%; + } + + .col-md-2 { + -ms-flex-preferred-size: 16.667%; + flex-basis: 16.667%; + max-width: 16.667%; + } + + .col-md-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-md-4 { + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + max-width: 33.333%; + } + + .col-md-5 { + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + max-width: 41.667%; + } + + .col-md-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-md-7 { + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + max-width: 58.333%; + } + + .col-md-8 { + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + max-width: 66.667%; + } + + .col-md-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-md-10 { + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + max-width: 83.333%; + } + + .col-md-11 { + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + max-width: 91.667%; + } + + .col-md-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-md-offset-1 { + margin-left: 8.333%; + } + + .col-md-offset-2 { + margin-left: 16.667%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-4 { + margin-left: 33.333%; + } + + .col-md-offset-5 { + margin-left: 41.667%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-7 { + margin-left: 58.333%; + } + + .col-md-offset-8 { + margin-left: 66.667%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-10 { + margin-left: 83.333%; + } + + .col-md-offset-11 { + margin-left: 91.667%; + } + + .start-md { + -ms-flex-pack: start; + -webkit-box-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-md { + -ms-flex-pack: center; + -webkit-box-pack: center; + justify-content: center; + text-align: center; + } + + .end-md { + -ms-flex-pack: end; + -webkit-box-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-md { + -ms-flex-align: start; + -webkit-box-align: start; + align-items: flex-start; + } + + .middle-md { + -ms-flex-align: center; + -webkit-box-align: center; + align-items: center; + } + + .bottom-md { + -ms-flex-align: end; + -webkit-box-align: end; + align-items: flex-end; + } + + .around-md { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-md { + -ms-flex-pack: justify; + -webkit-box-pack: justify; + justify-content: space-between; + } + + .first-md { + -ms-flex-order: -1; + -webkit-box-ordinal-group: 0; + order: -1; + } + + .last-md { + -ms-flex-order: 1; + -webkit-box-ordinal-group: 2; + order: 1; + } +} + +@media only screen and (min-width: 75em) { + .container { + width: 71rem; + } + + .col-lg, + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + box-sizing: border-box; + -ms-flex: 0 0 auto; + -webkit-box-flex: 0; + flex: 0 0 auto; + padding-right: 1rem; + padding-left: 1rem; + } + + .col-lg { + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + -webkit-box-flex: 1; + flex-grow: 1; + -ms-flex-preferred-size: 0; + flex-basis: 0; + max-width: 100%; + } + + .col-lg-1 { + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + max-width: 8.333%; + } + + .col-lg-2 { + -ms-flex-preferred-size: 16.667%; + flex-basis: 16.667%; + max-width: 16.667%; + } + + .col-lg-3 { + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + max-width: 25%; + } + + .col-lg-4 { + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + max-width: 33.333%; + } + + .col-lg-5 { + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + max-width: 41.667%; + } + + .col-lg-6 { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + max-width: 50%; + } + + .col-lg-7 { + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + max-width: 58.333%; + } + + .col-lg-8 { + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + max-width: 66.667%; + } + + .col-lg-9 { + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + max-width: 75%; + } + + .col-lg-10 { + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + max-width: 83.333%; + } + + .col-lg-11 { + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + max-width: 91.667%; + } + + .col-lg-12 { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + max-width: 100%; + } + + .col-lg-offset-1 { + margin-left: 8.333%; + } + + .col-lg-offset-2 { + margin-left: 16.667%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-4 { + margin-left: 33.333%; + } + + .col-lg-offset-5 { + margin-left: 41.667%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-7 { + margin-left: 58.333%; + } + + .col-lg-offset-8 { + margin-left: 66.667%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-10 { + margin-left: 83.333%; + } + + .col-lg-offset-11 { + margin-left: 91.667%; + } + + .start-lg { + -ms-flex-pack: start; + -webkit-box-pack: start; + justify-content: flex-start; + text-align: start; + } + + .center-lg { + -ms-flex-pack: center; + -webkit-box-pack: center; + justify-content: center; + text-align: center; + } + + .end-lg { + -ms-flex-pack: end; + -webkit-box-pack: end; + justify-content: flex-end; + text-align: end; + } + + .top-lg { + -ms-flex-align: start; + -webkit-box-align: start; + align-items: flex-start; + } + + .middle-lg { + -ms-flex-align: center; + -webkit-box-align: center; + align-items: center; + } + + .bottom-lg { + -ms-flex-align: end; + -webkit-box-align: end; + align-items: flex-end; + } + + .around-lg { + -ms-flex-pack: distribute; + justify-content: space-around; + } + + .between-lg { + -ms-flex-pack: justify; + -webkit-box-pack: justify; + justify-content: space-between; + } + + .first-lg { + -ms-flex-order: -1; + -webkit-box-ordinal-group: 0; + order: -1; + } + + .last-lg { + -ms-flex-order: 1; + -webkit-box-ordinal-group: 2; + order: 1; + } +} \ No newline at end of file diff --git a/assets/css/flexboxgrid.min.css b/assets/css/flexboxgrid.min.css new file mode 100644 index 00000000..bfeb9bf9 --- /dev/null +++ b/assets/css/flexboxgrid.min.css @@ -0,0 +1 @@ +.container-fluid{margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}.row{box-sizing:border-box;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex:0 1 auto;-webkit-box-flex:0;flex:0 1 auto;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-1rem;margin-left:-1rem}.row.reverse{-ms-flex-direction:row-reverse;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse}.col.reverse{-ms-flex-direction:column-reverse;-webkit-box-orient:vertical;-webkit-box-direction:reverse;flex-direction:column-reverse}.col-xs,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{box-sizing:border-box;-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-xs{-webkit-flex-grow:1;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-xs-1{-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.col-xs-2{-ms-flex-preferred-size:16.667%;flex-basis:16.667%;max-width:16.667%}.col-xs-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-xs-4{-ms-flex-preferred-size:33.333%;flex-basis:33.333%;max-width:33.333%}.col-xs-5{-ms-flex-preferred-size:41.667%;flex-basis:41.667%;max-width:41.667%}.col-xs-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-xs-7{-ms-flex-preferred-size:58.333%;flex-basis:58.333%;max-width:58.333%}.col-xs-8{-ms-flex-preferred-size:66.667%;flex-basis:66.667%;max-width:66.667%}.col-xs-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-xs-10{-ms-flex-preferred-size:83.333%;flex-basis:83.333%;max-width:83.333%}.col-xs-11{-ms-flex-preferred-size:91.667%;flex-basis:91.667%;max-width:91.667%}.col-xs-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-xs-offset-1{margin-left:8.333%}.col-xs-offset-2{margin-left:16.667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.333%}.col-xs-offset-5{margin-left:41.667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.333%}.col-xs-offset-8{margin-left:66.667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.333%}.col-xs-offset-11{margin-left:91.667%}.start-xs{-ms-flex-pack:start;-webkit-box-pack:start;justify-content:flex-start;text-align:start}.center-xs{-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;text-align:center}.end-xs{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end;text-align:end}.top-xs{-ms-flex-align:start;-webkit-box-align:start;align-items:flex-start}.middle-xs{-ms-flex-align:center;-webkit-box-align:center;align-items:center}.bottom-xs{-ms-flex-align:end;-webkit-box-align:end;align-items:flex-end}.around-xs{-ms-flex-pack:distribute;justify-content:space-around}.between-xs{-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between}.first-xs{-ms-flex-order:-1;-webkit-box-ordinal-group:0;order:-1}.last-xs{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}@media only screen and (min-width:48em){.container{width:46rem}.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{box-sizing:border-box;-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-sm{-webkit-flex-grow:1;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-sm-1{-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.col-sm-2{-ms-flex-preferred-size:16.667%;flex-basis:16.667%;max-width:16.667%}.col-sm-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-sm-4{-ms-flex-preferred-size:33.333%;flex-basis:33.333%;max-width:33.333%}.col-sm-5{-ms-flex-preferred-size:41.667%;flex-basis:41.667%;max-width:41.667%}.col-sm-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-sm-7{-ms-flex-preferred-size:58.333%;flex-basis:58.333%;max-width:58.333%}.col-sm-8{-ms-flex-preferred-size:66.667%;flex-basis:66.667%;max-width:66.667%}.col-sm-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-sm-10{-ms-flex-preferred-size:83.333%;flex-basis:83.333%;max-width:83.333%}.col-sm-11{-ms-flex-preferred-size:91.667%;flex-basis:91.667%;max-width:91.667%}.col-sm-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-sm-offset-1{margin-left:8.333%}.col-sm-offset-2{margin-left:16.667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.333%}.col-sm-offset-5{margin-left:41.667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333%}.col-sm-offset-8{margin-left:66.667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.333%}.col-sm-offset-11{margin-left:91.667%}.start-sm{-ms-flex-pack:start;-webkit-box-pack:start;justify-content:flex-start;text-align:start}.center-sm{-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;text-align:center}.end-sm{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end;text-align:end}.top-sm{-ms-flex-align:start;-webkit-box-align:start;align-items:flex-start}.middle-sm{-ms-flex-align:center;-webkit-box-align:center;align-items:center}.bottom-sm{-ms-flex-align:end;-webkit-box-align:end;align-items:flex-end}.around-sm{-ms-flex-pack:distribute;justify-content:space-around}.between-sm{-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between}.first-sm{-ms-flex-order:-1;-webkit-box-ordinal-group:0;order:-1}.last-sm{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}}@media only screen and (min-width:62em){.container{width:61rem}.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{box-sizing:border-box;-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-md{-webkit-flex-grow:1;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-md-1{-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.col-md-2{-ms-flex-preferred-size:16.667%;flex-basis:16.667%;max-width:16.667%}.col-md-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-md-4{-ms-flex-preferred-size:33.333%;flex-basis:33.333%;max-width:33.333%}.col-md-5{-ms-flex-preferred-size:41.667%;flex-basis:41.667%;max-width:41.667%}.col-md-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-md-7{-ms-flex-preferred-size:58.333%;flex-basis:58.333%;max-width:58.333%}.col-md-8{-ms-flex-preferred-size:66.667%;flex-basis:66.667%;max-width:66.667%}.col-md-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-md-10{-ms-flex-preferred-size:83.333%;flex-basis:83.333%;max-width:83.333%}.col-md-11{-ms-flex-preferred-size:91.667%;flex-basis:91.667%;max-width:91.667%}.col-md-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-md-offset-1{margin-left:8.333%}.col-md-offset-2{margin-left:16.667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.333%}.col-md-offset-5{margin-left:41.667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333%}.col-md-offset-8{margin-left:66.667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.333%}.col-md-offset-11{margin-left:91.667%}.start-md{-ms-flex-pack:start;-webkit-box-pack:start;justify-content:flex-start;text-align:start}.center-md{-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;text-align:center}.end-md{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end;text-align:end}.top-md{-ms-flex-align:start;-webkit-box-align:start;align-items:flex-start}.middle-md{-ms-flex-align:center;-webkit-box-align:center;align-items:center}.bottom-md{-ms-flex-align:end;-webkit-box-align:end;align-items:flex-end}.around-md{-ms-flex-pack:distribute;justify-content:space-around}.between-md{-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between}.first-md{-ms-flex-order:-1;-webkit-box-ordinal-group:0;order:-1}.last-md{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}}@media only screen and (min-width:75em){.container{width:71rem}.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{box-sizing:border-box;-ms-flex:0 0 auto;-webkit-box-flex:0;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-lg{-webkit-flex-grow:1;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-lg-1{-ms-flex-preferred-size:8.333%;flex-basis:8.333%;max-width:8.333%}.col-lg-2{-ms-flex-preferred-size:16.667%;flex-basis:16.667%;max-width:16.667%}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-lg-4{-ms-flex-preferred-size:33.333%;flex-basis:33.333%;max-width:33.333%}.col-lg-5{-ms-flex-preferred-size:41.667%;flex-basis:41.667%;max-width:41.667%}.col-lg-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-lg-7{-ms-flex-preferred-size:58.333%;flex-basis:58.333%;max-width:58.333%}.col-lg-8{-ms-flex-preferred-size:66.667%;flex-basis:66.667%;max-width:66.667%}.col-lg-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-lg-10{-ms-flex-preferred-size:83.333%;flex-basis:83.333%;max-width:83.333%}.col-lg-11{-ms-flex-preferred-size:91.667%;flex-basis:91.667%;max-width:91.667%}.col-lg-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-lg-offset-1{margin-left:8.333%}.col-lg-offset-2{margin-left:16.667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.333%}.col-lg-offset-5{margin-left:41.667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333%}.col-lg-offset-8{margin-left:66.667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.333%}.col-lg-offset-11{margin-left:91.667%}.start-lg{-ms-flex-pack:start;-webkit-box-pack:start;justify-content:flex-start;text-align:start}.center-lg{-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;text-align:center}.end-lg{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end;text-align:end}.top-lg{-ms-flex-align:start;-webkit-box-align:start;align-items:flex-start}.middle-lg{-ms-flex-align:center;-webkit-box-align:center;align-items:center}.bottom-lg{-ms-flex-align:end;-webkit-box-align:end;align-items:flex-end}.around-lg{-ms-flex-pack:distribute;justify-content:space-around}.between-lg{-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between}.first-lg{-ms-flex-order:-1;-webkit-box-ordinal-group:0;order:-1}.last-lg{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}} \ No newline at end of file diff --git a/assets/css/media.css b/assets/css/media.css index 981ea0e6..09dffdb7 100644 --- a/assets/css/media.css +++ b/assets/css/media.css @@ -1 +1,151 @@ -body.as3cf-pro .media-toolbar-mode-select{overflow:visible}body.as3cf-pro .attachments-browser .media-toolbar-secondary{max-width:100%}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons{margin-right:10px;position:relative;display:none !important}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons.visible{display:inline-block !important}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button{margin:0;text-align:left}@media screen and (max-width: 782px){body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button{min-height:40px}}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action-default{width:-webkit-calc(100% - 32px);width:calc(100% - 32px);position:relative;z-index:2}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle{width:32px;position:relative;border-left:1px solid rgba(255,255,255,0.2);z-index:2}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle:focus{-webkit-box-shadow:none;box-shadow:none}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle::after{content:'';display:inline-block;width:0;height:0;vertical-align:0.255em;border-top:0.3em solid;border-right:0.3em solid transparent;border-bottom:0;border-left:0.3em solid transparent;-webkit-transition:0.2s all ease;transition:0.2s all ease}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle.opened::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu{position:absolute;left:0;top:0;z-index:1;-webkit-transform:translateY(33px);-ms-transform:translateY(33px);transform:translateY(33px);border-radius:3px;overflow:hidden;-webkit-box-shadow:0 2px 5px 2px rgba(0,0,0,0.3);box-shadow:0 2px 5px 2px rgba(0,0,0,0.3)}@media screen and (max-width: 782px){body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu{-webkit-transform:translateY(41px);-ms-transform:translateY(41px);transform:translateY(41px)}}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action{display:block;width:100%;margin:0;border-radius:0;-moz-text-align-last:left;text-align-last:left;border:none;border-bottom:1px solid rgba(255,255,255,0.2)}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:last-child{border:none}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:focus{-webkit-box-shadow:none;box-shadow:none}.as3cfpro_remove a.local-warning{color:#a00}.as3cfpro_remove a.local-warning:hover{color:#f00;text-decoration:none;border:none}.media-modal a.local-warning{color:#bc0b0b}.media-modal a.local-warning:hover{color:red}.attachment-info .attachment-s3-details{font-weight:bold;margin-bottom:5px} +body.as3cf-pro .media-toolbar-mode-select { + overflow: visible; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary { + max-width: 100%; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons { + margin-right: 10px; + position: relative; + display: none !important; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons.visible { + display: inline-block !important; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button { + margin: 0; + text-align: left; +} + +@media screen and (max-width: 782px) { + body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button { + min-height: 40px; + } +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action-default { + width: calc(100% - 32px); + position: relative; + z-index: 2; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle { + width: 32px; + position: relative; + border-left: 1px solid rgba(255, 255, 255, 0.2); + z-index: 2; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle::after { + content: ""; + display: inline-block; + width: 0; + height: 0; + vertical-align: 0.255em; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; + -webkit-transition: 0.2s all ease; + transition: 0.2s all ease; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle.opened::after { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu { + position: absolute; + left: 0; + top: 0; + z-index: 1; + -webkit-transform: translateY(33px); + transform: translateY(33px); + border-radius: 3px; + overflow: hidden; + -webkit-box-shadow: 0 2px 5px 2px rgba(0, 0, 0, 0.3); + box-shadow: 0 2px 5px 2px rgba(0, 0, 0, 0.3); +} + +@media screen and (max-width: 782px) { + body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu { + -webkit-transform: translateY(41px); + transform: translateY(41px); + } +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action { + display: block; + width: 100%; + margin: 0; + border-radius: 0; + -moz-text-align-last: left; + text-align-last: left; + border: none; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:last-child { + border: none; +} + +body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.as3cfpro_remove a.local-warning { + color: #a00; +} + +.as3cfpro_remove a.local-warning:hover { + color: #f00; + text-decoration: none; + border: none; +} + +.media-modal a.local-warning { + color: #bc0b0b; +} + +.media-modal a.local-warning:hover { + color: red; +} + +.attachment-info .attachment-s3-details { + font-weight: bold; + margin-bottom: 5px; +} + +.table-view-list.media th.column-as3cf_bucket { + width: 11%; +} + +.table-view-list.media th.column-as3cf_access { + width: 8%; +} + +.table-view-list.media .row-actions span.as3cf-warning:before { + background: url(../img/icon/error.svg) no-repeat; + background-size: 18px; + content: ""; + display: block; + width: 18px; + height: 18px; + margin: 1px 1px 0 -3px; + float: left; +} + +.table-view-list.media .row-actions span.as3cf-warning { + color: #50575e; +} \ No newline at end of file diff --git a/assets/css/media.min.css b/assets/css/media.min.css new file mode 100644 index 00000000..2213ef49 --- /dev/null +++ b/assets/css/media.min.css @@ -0,0 +1 @@ +body.as3cf-pro .media-toolbar-mode-select{overflow:visible}body.as3cf-pro .attachments-browser .media-toolbar-secondary{max-width:100%}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons{margin-right:10px;position:relative;display:none!important}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons.visible{display:inline-block!important}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button{margin:0;text-align:left}@media screen and (max-width:782px){body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons .button{min-height:40px}}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action-default{width:calc(100% - 32px);position:relative;z-index:2}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle{width:32px;position:relative;border-left:1px solid rgba(255,255,255,.2);z-index:2}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle:focus{-webkit-box-shadow:none;box-shadow:none}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle::after{content:"";display:inline-block;width:0;height:0;vertical-align:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent;-webkit-transition:.2s all ease;transition:.2s all ease}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__toggle.opened::after{-webkit-transform:rotate(180deg);transform:rotate(180deg)}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu{position:absolute;left:0;top:0;z-index:1;-webkit-transform:translateY(33px);transform:translateY(33px);border-radius:3px;overflow:hidden;-webkit-box-shadow:0 2px 5px 2px rgba(0,0,0,.3);box-shadow:0 2px 5px 2px rgba(0,0,0,.3)}@media screen and (max-width:782px){body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__submenu{-webkit-transform:translateY(41px);transform:translateY(41px)}}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action{display:block;width:100%;margin:0;border-radius:0;-moz-text-align-last:left;text-align-last:left;border:none;border-bottom:1px solid rgba(255,255,255,.2)}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:last-child{border:none}body.as3cf-pro .attachments-browser .media-toolbar-secondary .offload-buttons__action:focus{-webkit-box-shadow:none;box-shadow:none}.as3cfpro_remove a.local-warning{color:#a00}.as3cfpro_remove a.local-warning:hover{color:red;text-decoration:none;border:none}.media-modal a.local-warning{color:#bc0b0b}.media-modal a.local-warning:hover{color:red}.attachment-info .attachment-s3-details{font-weight:700;margin-bottom:5px}.table-view-list.media th.column-as3cf_bucket{width:11%}.table-view-list.media th.column-as3cf_access{width:8%}.table-view-list.media .row-actions span.as3cf-warning:before{background:url(../img/icon/error.svg) no-repeat;background-size:18px;content:"";display:block;width:18px;height:18px;margin:1px 1px 0 -3px;float:left}.table-view-list.media .row-actions span.as3cf-warning{color:#50575e} \ No newline at end of file diff --git a/assets/css/modal.css b/assets/css/modal.css index 68f18a87..0a3977a4 100644 --- a/assets/css/modal.css +++ b/assets/css/modal.css @@ -1 +1,80 @@ -#as3cf-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,0.5);overflow:hidden;overflow-y:auto;z-index:999999}#as3cf-modal{display:none;position:relative;width:600px;margin:100px auto;padding:30px;background-color:#eee;-webkit-box-shadow:0 0 10px rgba(0,0,0,0.5);box-shadow:0 0 10px rgba(0,0,0,0.5);font-size:14px;overflow:hidden;z-index:100000}#as3cf-modal .close-as3cf-modal{color:#999;cursor:pointer;font-family:"Times New Roman", serif;font-size:26px;font-weight:200;position:absolute;right:18px;top:18px}#as3cf-modal .close-as3cf-modal:hover{color:#666}#as3cf-modal h3{margin:0 0 20px;font-weight:normal;line-height:1}#as3cf-modal .error,#as3cf-modal .notice,#as3cf-modal .updated{margin:0 0 20px}#as3cf-modal .actions{margin:20px -30px -30px;padding:20px 30px;border-top:none;background-color:#e3e3e3;overflow:hidden}#as3cf-modal .actions .right{margin-left:15px}#as3cf-modal .actions .right:last-of-type{margin-left:0}#as3cf-modal .actions button{min-width:90px}body.as3cf-modal-open{overflow:hidden} +/** + * Modals + */ +#as3cf-overlay { + display: none; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.5); + overflow: hidden; + overflow-y: auto; + z-index: 999999; +} + +#as3cf-modal { + display: none; + position: relative; + width: 600px; + margin: 100px auto; + padding: 30px; + background-color: #eee; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + font-size: 14px; + overflow: hidden; + z-index: 100000; +} + +#as3cf-modal .close-as3cf-modal { + color: #999; + cursor: pointer; + font-family: "Times New Roman", serif; + font-size: 26px; + font-weight: 200; + position: absolute; + right: 18px; + top: 18px; +} + +#as3cf-modal .close-as3cf-modal:hover { + color: #666; +} + +#as3cf-modal h3 { + margin: 0 0 20px; + font-weight: normal; + line-height: 1; +} + +#as3cf-modal .error, +#as3cf-modal .notice, +#as3cf-modal .updated { + margin: 0 0 20px; +} + +#as3cf-modal .actions { + margin: 20px -30px -30px; + padding: 20px 30px; + border-top: none; + background-color: #e3e3e3; + overflow: hidden; +} + +#as3cf-modal .actions .right { + margin-left: 15px; +} + +#as3cf-modal .actions .right:last-of-type { + margin-left: 0; +} + +#as3cf-modal .actions button { + min-width: 90px; +} + +body.as3cf-modal-open { + overflow: hidden; +} \ No newline at end of file diff --git a/assets/css/modal.min.css b/assets/css/modal.min.css new file mode 100644 index 00000000..4b7a62b8 --- /dev/null +++ b/assets/css/modal.min.css @@ -0,0 +1 @@ +#as3cf-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5);overflow:hidden;overflow-y:auto;z-index:999999}#as3cf-modal{display:none;position:relative;width:600px;margin:100px auto;padding:30px;background-color:#eee;-webkit-box-shadow:0 0 10px rgba(0,0,0,.5);box-shadow:0 0 10px rgba(0,0,0,.5);font-size:14px;overflow:hidden;z-index:100000}#as3cf-modal .close-as3cf-modal{color:#999;cursor:pointer;font-family:"Times New Roman",serif;font-size:26px;font-weight:200;position:absolute;right:18px;top:18px}#as3cf-modal .close-as3cf-modal:hover{color:#666}#as3cf-modal h3{margin:0 0 20px;font-weight:400;line-height:1}#as3cf-modal .error,#as3cf-modal .notice,#as3cf-modal .updated{margin:0 0 20px}#as3cf-modal .actions{margin:20px -30px -30px;padding:20px 30px;border-top:none;background-color:#e3e3e3;overflow:hidden}#as3cf-modal .actions .right{margin-left:15px}#as3cf-modal .actions .right:last-of-type{margin-left:0}#as3cf-modal .actions button{min-width:90px}body.as3cf-modal-open{overflow:hidden} \ No newline at end of file diff --git a/assets/css/normalize.css b/assets/css/normalize.css new file mode 100644 index 00000000..375c95d8 --- /dev/null +++ b/assets/css/normalize.css @@ -0,0 +1,379 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/assets/css/normalize.min.css b/assets/css/normalize.min.css new file mode 100644 index 00000000..1854c297 --- /dev/null +++ b/assets/css/normalize.min.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/assets/css/notice.css b/assets/css/notice.css index 20937cea..c8053d99 100644 --- a/assets/css/notice.css +++ b/assets/css/notice.css @@ -1 +1,14 @@ -.as3cf-notice p,.as3cf-compatibility-notice p{max-width:800px}.as3cf-licence-notice p:not(.as3cf-before):before{display:none}.as3cf-notice-warning{border-left-color:#ffba00} +/** + * Common as3cf-notice styles. + */ +.as3cf-notice p, +.as3cf-compatibility-notice p { + max-width: 800px; +} + +/** + * Prevent WP from adding the circular arrow icon to all P tags inside the notice html. + */ +.as3cf-licence-notice p:not(.as3cf-before):before { + display: none; +} \ No newline at end of file diff --git a/assets/css/notice.min.css b/assets/css/notice.min.css new file mode 100644 index 00000000..360ab7c3 --- /dev/null +++ b/assets/css/notice.min.css @@ -0,0 +1 @@ +.as3cf-compatibility-notice p,.as3cf-notice p{max-width:800px}.as3cf-licence-notice p:not(.as3cf-before):before{display:none} \ No newline at end of file diff --git a/assets/css/settings.css b/assets/css/settings.css new file mode 100644 index 00000000..4cc04573 --- /dev/null +++ b/assets/css/settings.css @@ -0,0 +1,139 @@ +.toggler.svelte-k1tgof:not(.toggleDisabled) { + cursor: pointer +} + +.panel-row.svelte-41r5oq.svelte-41r5oq { + position: relative +} + +.header.svelte-41r5oq .gradient.svelte-41r5oq { + position: absolute; + width: 144px; + left: 0; + top: 0; + bottom: 0; + transform: matrix(-1, 0, 0, 1, 0, 0); + border-top-right-radius: 5px +} + +.content.svelte-5j10or.svelte-5j10or { + padding: 1.875rem 2.25rem 1.5rem 2.25rem; + display: flex; + flex-direction: column +} + +.heading.svelte-5j10or.svelte-5j10or { + margin-top: 1rem; + font-weight: 700; + font-size: 1.125rem; + line-height: 140% +} + +.description.svelte-5j10or.svelte-5j10or { + margin-top: 1rem; + color: rgba(56, 54, 55, 0.7) +} + +.benefits.svelte-5j10or.svelte-5j10or { + margin-top: 1.7rem; + color: rgba(56, 54, 55, 0.7) +} + +.benefits.svelte-5j10or li.svelte-5j10or { + display: flex; + align-items: center +} + +.benefits.svelte-5j10or img.svelte-5j10or { + height: 40px; + margin-left: -5px; + margin-right: 10px +} + +.call-to-action.svelte-5j10or.svelte-5j10or { + margin-top: 0.7rem +} + +.call-to-action.svelte-5j10or .note.svelte-5j10or { + text-align: center +} + +#as3cf-settings.wpome div.panel.settings .header img.svelte-yact8k.svelte-yact8k { + width: var(--as3cf-settings-ctrl-width); + height: var(--as3cf-settings-ctrl-width) +} + +.provider-details.svelte-yact8k.svelte-yact8k { + display: flex; + flex-direction: column; + flex: auto; + margin-left: var(--as3cf-settings-option-indent); + z-index: 1 +} + +#as3cf-settings.wpome div.panel .provider-details.svelte-yact8k h4.svelte-yact8k { + margin-left: 0; + margin-bottom: 0.5rem +} + +#as3cf-settings.wpome div.panel .console-details.svelte-yact8k.svelte-yact8k { + display: flex; + align-items: center; + font-size: 0.75rem +} + +.console-details.svelte-yact8k .console.svelte-yact8k { + flex: 0 1 min-content; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +#as3cf-settings.wpome div.panel .console-details.svelte-yact8k a[target="_blank"].console.svelte-yact8k:after { + margin-right: 0 +} + +#as3cf-settings.wpome div.panel .console-details.svelte-yact8k .region.svelte-yact8k { + flex: 1 0 auto; + color: var(--as3cf-color-gray-500); + margin: 0 0.5rem +} + +.toggler.svelte-k1tgof:not(.toggleDisabled) { + cursor: pointer +} + +#as3cf-settings.wpome div.panel.settings .header img.svelte-54jmjg.svelte-54jmjg { + width: var(--as3cf-settings-ctrl-width); + height: var(--as3cf-settings-ctrl-width) +} + +.provider-details.svelte-54jmjg.svelte-54jmjg { + display: flex; + flex-direction: column; + flex: auto; + margin-left: var(--as3cf-settings-option-indent); + z-index: 1 +} + +#as3cf-settings.wpome div.panel .provider-details.svelte-54jmjg h4.svelte-54jmjg { + margin-left: 0; + margin-bottom: 0.5rem +} + +#as3cf-settings.wpome div.panel .console-details.svelte-54jmjg.svelte-54jmjg { + display: flex; + align-items: center; + font-size: 0.75rem +} + +.console-details.svelte-54jmjg .console.svelte-54jmjg { + flex: 0 1 min-content; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +#as3cf-settings.wpome div.panel .console-details.svelte-54jmjg a[target="_blank"].console.svelte-54jmjg:after { + margin-right: 0 +} \ No newline at end of file diff --git a/assets/css/settings.min.css b/assets/css/settings.min.css new file mode 100644 index 00000000..85a367fd --- /dev/null +++ b/assets/css/settings.min.css @@ -0,0 +1 @@ +.toggler.svelte-k1tgof:not(.toggleDisabled){cursor:pointer}.panel-row.svelte-41r5oq.svelte-41r5oq{position:relative}.header.svelte-41r5oq .gradient.svelte-41r5oq{position:absolute;width:144px;left:0;top:0;bottom:0;transform:matrix(-1,0,0,1,0,0);border-top-right-radius:5px}.content.svelte-5j10or.svelte-5j10or{padding:1.875rem 2.25rem 1.5rem 2.25rem;display:flex;flex-direction:column}.heading.svelte-5j10or.svelte-5j10or{margin-top:1rem;font-weight:700;font-size:1.125rem;line-height:140%}.description.svelte-5j10or.svelte-5j10or{margin-top:1rem;color:rgba(56,54,55,.7)}.benefits.svelte-5j10or.svelte-5j10or{margin-top:1.7rem;color:rgba(56,54,55,.7)}.benefits.svelte-5j10or li.svelte-5j10or{display:flex;align-items:center}.benefits.svelte-5j10or img.svelte-5j10or{height:40px;margin-left:-5px;margin-right:10px}.call-to-action.svelte-5j10or.svelte-5j10or{margin-top:.7rem}.call-to-action.svelte-5j10or .note.svelte-5j10or{text-align:center}#as3cf-settings.wpome div.panel.settings .header img.svelte-yact8k.svelte-yact8k{width:var(--as3cf-settings-ctrl-width);height:var(--as3cf-settings-ctrl-width)}.provider-details.svelte-yact8k.svelte-yact8k{display:flex;flex-direction:column;flex:auto;margin-left:var(--as3cf-settings-option-indent);z-index:1}#as3cf-settings.wpome div.panel .provider-details.svelte-yact8k h4.svelte-yact8k{margin-left:0;margin-bottom:.5rem}#as3cf-settings.wpome div.panel .console-details.svelte-yact8k.svelte-yact8k{display:flex;align-items:center;font-size:.75rem}.console-details.svelte-yact8k .console.svelte-yact8k{flex:0 1 min-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#as3cf-settings.wpome div.panel .console-details.svelte-yact8k a[target="_blank"].console.svelte-yact8k:after{margin-right:0}#as3cf-settings.wpome div.panel .console-details.svelte-yact8k .region.svelte-yact8k{flex:1 0 auto;color:var(--as3cf-color-gray-500);margin:0 .5rem}.toggler.svelte-k1tgof:not(.toggleDisabled){cursor:pointer}#as3cf-settings.wpome div.panel.settings .header img.svelte-54jmjg.svelte-54jmjg{width:var(--as3cf-settings-ctrl-width);height:var(--as3cf-settings-ctrl-width)}.provider-details.svelte-54jmjg.svelte-54jmjg{display:flex;flex-direction:column;flex:auto;margin-left:var(--as3cf-settings-option-indent);z-index:1}#as3cf-settings.wpome div.panel .provider-details.svelte-54jmjg h4.svelte-54jmjg{margin-left:0;margin-bottom:.5rem}#as3cf-settings.wpome div.panel .console-details.svelte-54jmjg.svelte-54jmjg{display:flex;align-items:center;font-size:.75rem}.console-details.svelte-54jmjg .console.svelte-54jmjg{flex:0 1 min-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#as3cf-settings.wpome div.panel .console-details.svelte-54jmjg a[target="_blank"].console.svelte-54jmjg:after{margin-right:0} \ No newline at end of file diff --git a/assets/css/storage-provider.css b/assets/css/storage-provider.css deleted file mode 100644 index 4d03cb5c..00000000 --- a/assets/css/storage-provider.css +++ /dev/null @@ -1 +0,0 @@ -.as3cf-provider-select h3{font-size:20px}.as3cf-provider-select table{border-collapse:collapse}.as3cf-provider-select .as3cf-provider-title{margin:0;padding:0;background:#f1f1f1}.as3cf-provider-select .as3cf-provider-title label{position:relative;display:inline-block}.as3cf-provider-select .as3cf-provider-title label:hover{cursor:pointer}.as3cf-provider-select .as3cf-provider-title .as3cf-provider-logo{color:white;padding:1em}.as3cf-provider-select .as3cf-provider-title h3{display:inline-block;position:absolute;top:50%;left:76px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-weight:bold;text-transform:none;padding:0;margin:0 15px;white-space:nowrap}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-selected{cursor:default}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-aws .as3cf-provider-logo{background-color:#f7a80d;border:1px solid #f7a80d}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-do .as3cf-provider-logo{background-color:#0080ff;border:1px solid #0080ff}.as3cf-provider-select .as3cf-provider-title.as3cf-provider-gcp .as3cf-provider-logo{background-color:#fff;border-top:1px solid #ea4335;border-right:1px solid #4285f4;border-bottom:1px solid #34a853;border-left:1px solid #fbbc05}.as3cf-provider-select .as3cf-provider-content td{padding-bottom:10px}.as3cf-provider-select .as3cf-provider-content table{background:#e5e5e5}.as3cf-provider-select .as3cf-provider-content table th{padding:10px 0 10px 10px}.as3cf-provider-select .as3cf-provider-content table td{padding:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-title label{font-weight:bold}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content td{padding-top:0}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea{margin-top:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea.clear{width:100%}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content textarea.as3cf-define-snippet.code{white-space:pre;overflow:hidden;font-size:11px;padding:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys{margin-top:10px}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys th{padding-left:0}.as3cf-provider-select .as3cf-provider-content .asc3f-provider-authmethod-content table.as3cf-access-keys input{width:100%} diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 00000000..cc7868a5 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,3027 @@ +#as3cf-settings.wpome button, #as3cf-settings.wpome a, #as3cf-settings.wpome input { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +#as3cf-settings.wpome button, #as3cf-settings.wpome a.button { + font-weight: 500; + border-radius: 6px; + white-space: nowrap; + min-width: 4rem; +} + +#as3cf-settings.wpome button.btn-lg, #as3cf-settings.wpome a.button.btn-lg { + font-size: 0.875rem; + padding: 0.95rem 1.2rem; + min-width: 6rem; +} + +#as3cf-settings.wpome button.btn-md, #as3cf-settings.wpome a.button.btn-md { + font-size: 0.875rem; + padding: 0.75rem 1.05rem; +} + +#as3cf-settings.wpome button.btn-sm, #as3cf-settings.wpome a.button.btn-sm { + font-size: 0.875rem; + padding: 0.55rem 0.9rem; +} + +#as3cf-settings.wpome button.btn-xs, #as3cf-settings.wpome a.button.btn-xs { + font-size: 0.7rem; + padding: 0.4rem 0.6rem; + min-width: 3rem; +} + +#as3cf-settings.wpome button.btn-primary, #as3cf-settings.wpome .btn-row button.btn-primary, #as3cf-settings.wpome a.button.btn-primary { + color: var(--as3cf-color-white); + background: var(--as3cf-color-primary-500); + border: 1px solid rgba(0, 0, 0, 0.12); +} + +#as3cf-settings.wpome button.btn-primary:hover, #as3cf-settings.wpome a.button.btn-primary:hover { + background-color: var(--as3cf-color-primary-600); +} + +#as3cf-settings.wpome button.btn-outline, #as3cf-settings.wpome .btn-row button.btn-outline, #as3cf-settings.wpome a.button.btn-outline { + color: var(--as3cf-color-primary-500); + background: none; + border: 1px solid var(--as3cf-color-primary-500); +} + +#as3cf-settings.wpome button.btn-outline:hover, #as3cf-settings.wpome a.button.btn-outline:hover { + color: var(--as3cf-color-primary-600); + background-color: var(--as3cf-color-primary-50); + border: 1px solid var(--as3cf-color-primary-600); +} + +#as3cf-settings.wpome button.btn-outline:focus, #as3cf-settings.wpome button.btn-outline:active, #as3cf-settings.wpome a.button.btn-outline:focus, #as3cf-settings.wpome a.button.btn-outline:active { + border: 1px solid var(--as3cf-color-primary-200); +} + +#as3cf-settings.wpome button.btn-primary:focus, #as3cf-settings.wpome button.btn-primary:active, #as3cf-settings.wpome button.btn-outline:focus, #as3cf-settings.wpome button.btn-outline:active, #as3cf-settings.wpome a.button.btn-primary:focus, #as3cf-settings.wpome a.button.btn-primary:active, #as3cf-settings.wpome a.button.btn-outline:focus, #as3cf-settings.wpome a.button.btn-outline:active { + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-primary-400); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-primary-400); + outline: 0; +} + +#as3cf-settings.wpome button.btn-disabled, #as3cf-settings.wpome .btn-row button.btn-disabled, #as3cf-settings.wpome a.button.btn-disabled { + color: var(--as3cf-text-disabled); + border: 1px solid var(--as3cf-color-gray-400); + opacity: 0.5; + cursor: default; +} + +#as3cf-settings.wpome button.btn-disabled.btn-primary, #as3cf-settings.wpome a.button.btn-disabled.btn-primary { + background: var(--as3cf-color-gray-300); +} + +#as3cf-settings.wpome button.btn-disabled:hover, #as3cf-settings.wpome a.button.btn-disabled:hover { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +#as3cf-settings.wpome button.btn-disabled.btn-outline:hover, #as3cf-settings.wpome a.button.btn-disabled.btn-outline:hover { + color: var(--as3cf-text-disabled); + border: 1px solid var(--as3cf-color-gray-400); +} + +#as3cf-settings.wpome a, +#as3cf-settings.wpome button { + cursor: pointer; +} + +#as3cf-settings.wpome .btn-row { + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + margin: 2.5rem 0 2.5rem 0; +} + +#as3cf-settings.wpome .btn-row .buttons-left .btn-primary { + margin-left: 0.85rem; +} + +#as3cf-settings.wpome .btn-row .btn-outline { + margin-left: auto; +} + +#as3cf-settings.wpome .btn-row .btn-primary { + margin-left: auto; +} + +#as3cf-settings.wpome .btn-row .btn-outline + .btn-primary { + margin-left: 0.85rem; +} + +#as3cf-settings.wpome .buttons-right { + margin-left: auto; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +#as3cf-settings.wpome .buttons-right .pause { + margin-right: 0.7rem; +} + +#as3cf-settings.wpome .fixed-cta-block { + width: calc(100% - 160px); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + background: var(--as3cf-color-white); + -webkit-box-shadow: 0 -11px 24px 0 rgba(151, 146, 175, 0.2); + box-shadow: 0 -11px 24px 0 rgba(151, 146, 175, 0.2); + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 9999; + position: fixed; + bottom: 0; + left: 160px; +} + +@media screen and (max-width: 960px) { + #as3cf-settings.wpome .fixed-cta-block { + width: calc(100% - 36px); + left: 36px; + } +} + +@media screen and (max-width: 782px) { + #as3cf-settings.wpome .fixed-cta-block { + width: 100%; + left: 0; + } +} + +#as3cf-settings.wpome .fixed-cta-block .buttons { + margin: 0; + padding: 1rem 2rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + width: calc(1220px + 4rem); + max-width: calc(1220px + 4rem); + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +@media screen and (max-width: 1100px) { + #as3cf-settings.wpome .fixed-cta-block .buttons { + max-width: calc(780px + 4rem); + } +} + +@media screen and (max-width: 872px) { + #as3cf-settings.wpome .fixed-cta-block .buttons { + max-width: 100%; + } +} + +#as3cf-settings.wpome .fixed-cta-block .buttons .btn-outline { + margin-right: 1rem; +} + +#as3cf-settings.wpome .button-tab { + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-color-gray-400); + border-radius: 6px; + height: 3rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 1.3rem; + text-decoration: none; + margin-right: 1.5rem; + position: relative; + -webkit-transition-duration: 0.15s; + transition-duration: 0.15s; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; +} + +#as3cf-settings.wpome .button-tab.active { + border: 1px solid var(--as3cf-color-primary-500); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.05); +} + +#as3cf-settings.wpome .button-tab:hover { + -webkit-box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.05); +} + +#as3cf-settings.wpome .button-tab:focus, #as3cf-settings.wpome .button-tab:active { + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome .button-tab.btn-disabled { + cursor: default; +} + +#as3cf-settings.wpome .button-tab.btn-disabled:hover { + -webkit-box-shadow: none; + box-shadow: none; +} + +#as3cf-settings.wpome a.help { + width: 18px; + height: 18px; + min-width: 18px; + min-height: 18px; + border: none; + border-radius: 100%; +} + +#as3cf-settings.wpome a.help:hover, #as3cf-settings.wpome a.help:focus, #as3cf-settings.wpome a.help:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome a.help .icon.help { + width: 18px; + height: 18px; + min-width: 18px; + min-height: 18px; + border: none; + border-radius: 100%; +} + +#as3cf-settings.wpome .icon.status { + width: 16px; + height: 16px; +} + +#as3cf-settings.wpome .icon.status:hover { + -webkit-filter: brightness(90%); + filter: brightness(90%); +} + +#as3cf-settings.wpome .icon.close:hover { + -webkit-filter: brightness(90%); + filter: brightness(90%); +} + +#as3cf-settings.wpome .icon.bucket { + width: 18px; + height: 18px; + margin-right: 1.4rem; +} + +#as3cf-settings.wpome .icon.region { + width: 18px; + height: 18px; +} + +#as3cf-settings.wpome .icon.notice-icon { + width: 24px; + height: 24px; + margin-right: 0.8rem; +} + +#as3cf-settings.wpome .icon.notice-icon.assets-wizard { + margin-top: -2px; +} + +#as3cf-settings.wpome label { + font-size: 0.875rem; + color: var(--as3cf-color-gray-900); + cursor: pointer; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome .disabled > label { + cursor: default; +} + +#as3cf-settings.wpome input[type=checkbox], #as3cf-settings.wpome input[type=radio] { + all: unset; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-color-gray-400); + width: 18px; + height: 18px; + min-width: 18px; + min-height: 18px; + margin: 0 0.85rem 0 0; + padding: 0; +} + +#as3cf-settings.wpome input[type=checkbox]:disabled, #as3cf-settings.wpome input[type=checkbox]:disabled:hover, #as3cf-settings.wpome input[type=radio]:disabled, #as3cf-settings.wpome input[type=radio]:disabled:hover { + -webkit-box-shadow: none; + box-shadow: none; +} + +#as3cf-settings.wpome input[type=checkbox]:disabled:checked, #as3cf-settings.wpome input[type=checkbox]:disabled:hover:checked, #as3cf-settings.wpome input[type=radio]:disabled:checked, #as3cf-settings.wpome input[type=radio]:disabled:hover:checked { + color: var(--as3cf-color-gray-400); + background-color: var(--as3cf-color-gray-200); + border: 1px solid var(--as3cf-color-gray-400); +} + +#as3cf-settings.wpome input[type=checkbox]:disabled:not(:checked), #as3cf-settings.wpome input[type=checkbox]:disabled:hover:not(:checked), #as3cf-settings.wpome input[type=radio]:disabled:not(:checked), #as3cf-settings.wpome input[type=radio]:disabled:hover:not(:checked) { + background-color: var(--as3cf-color-gray-100); + border: 1px solid var(--as3cf-color-gray-300); +} + +#as3cf-settings.wpome input[type=radio] { + border-radius: 100%; +} + +#as3cf-settings.wpome input[type=radio]:checked { + border: 1px solid var(--as3cf-color-secondary-700); + background: var(--as3cf-color-secondary-500) url('data:image/svg+xml;utf8,') no-repeat center; +} + +#as3cf-settings.wpome input[type=radio]:checked:disabled { + background-image: url('data:image/svg+xml;utf8,'); +} + +#as3cf-settings.wpome input[type=radio]:checked::before { + content: none; +} + +#as3cf-settings.wpome input[type=radio]:hover { + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome input[type=radio]:hover:not(:checked) { + background-color: var(--as3cf-color-secondary-50); +} + +#as3cf-settings.wpome input[type=checkbox] { + border-radius: 3px; + margin-top: -2px; +} + +#as3cf-settings.wpome input[type=checkbox]:checked { + background: var(--as3cf-color-secondary-500) url('data:image/svg+xml;utf8,') no-repeat center/75%; + border: 1px solid var(--as3cf-color-secondary-600); +} + +#as3cf-settings.wpome input[type=checkbox]:checked:disabled { + background-image: url('data:image/svg+xml;utf8,'); +} + +#as3cf-settings.wpome input[type=checkbox]:checked::before { + content: none; +} + +#as3cf-settings.wpome input[type=checkbox]:hover { + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome input[type=checkbox]:hover:not(:checked) { + background-color: var(--as3cf-color-secondary-50); +} + +#as3cf-settings.wpome .checkbox, +#as3cf-settings.wpome .radio-btn { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0.75rem; +} + +#as3cf-settings.wpome .checkbox:last-of-type, +#as3cf-settings.wpome .radio-btn:last-of-type { + margin-bottom: 0; +} + +#as3cf-settings.wpome .checkbox label { + line-height: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome input[type=text], +#as3cf-settings.wpome textarea { + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-color-gray-400); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + border-radius: 8px; + padding: 0.95rem 1rem; + font-size: 0.875rem; + color: var(--as3cf-color-gray-900); + line-height: 1.2; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +#as3cf-settings.wpome input[type=text].licence-field, +#as3cf-settings.wpome textarea.licence-field { + width: 510px; + margin-right: 0.75rem !important; + letter-spacing: 0.75px; +} + +#as3cf-settings.wpome input[type=text].licence-field::-webkit-input-placeholder, #as3cf-settings.wpome textarea.licence-field::-webkit-input-placeholder { + letter-spacing: 0.25px; +} + +#as3cf-settings.wpome input[type=text].licence-field::-moz-placeholder, #as3cf-settings.wpome textarea.licence-field::-moz-placeholder { + letter-spacing: 0.25px; +} + +#as3cf-settings.wpome input[type=text].licence-field:-ms-input-placeholder, #as3cf-settings.wpome textarea.licence-field:-ms-input-placeholder { + letter-spacing: 0.25px; +} + +#as3cf-settings.wpome input[type=text].licence-field::-ms-input-placeholder, #as3cf-settings.wpome textarea.licence-field::-ms-input-placeholder { + letter-spacing: 0.25px; +} + +#as3cf-settings.wpome input[type=text].licence-field::placeholder, +#as3cf-settings.wpome textarea.licence-field::placeholder { + letter-spacing: 0.25px; +} + +#as3cf-settings.wpome textarea { + line-height: 1.3 !important; + /* Standards compliant scrollbar (future) */ + /* + scrollbar-color: var(--as3cf-secondary-color) var(--as3cf-color-white); + scrollbar-width: 12px; + */ + /* Ye olde webkit scrollbar */ +} + +#as3cf-settings.wpome textarea::-webkit-scrollbar { + width: 12px; +} + +#as3cf-settings.wpome textarea::-webkit-scrollbar-track { + background: var(--as3cf-color-white); + border-radius: 6px; +} + +#as3cf-settings.wpome textarea::-webkit-scrollbar-corner { + background-color: var(--as3cf-color-white); + border-radius: 6px; +} + +#as3cf-settings.wpome textarea::-webkit-resizer { + background-color: var(--as3cf-color-white); + border-radius: 6px; +} + +#as3cf-settings.wpome textarea::-webkit-scrollbar-thumb { + background-color: var(--as3cf-secondary-color); + border: 1px solid var(--as3cf-color-white); + border-radius: 5px; +} + +#as3cf-settings.wpome select { + all: unset; + background: var(--as3cf-color-white) url(../img/icon/arrow.svg) no-repeat calc(100% - 18px) 50%; + border: 1px solid var(--as3cf-color-gray-400); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + border-radius: 8px; + padding: 0 1rem !important; + font-size: 0.875rem !important; + color: var(--as3cf-color-gray-900); + line-height: 1.2 !important; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 46px !important; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome input::-webkit-input-placeholder, #as3cf-settings.wpome textarea::-webkit-input-placeholder, #as3cf-settings.wpome select::-webkit-input-placeholder { + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input::-moz-placeholder, #as3cf-settings.wpome textarea::-moz-placeholder, #as3cf-settings.wpome select::-moz-placeholder { + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input:-ms-input-placeholder, #as3cf-settings.wpome textarea:-ms-input-placeholder, #as3cf-settings.wpome select:-ms-input-placeholder { + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input::-ms-input-placeholder, #as3cf-settings.wpome textarea::-ms-input-placeholder, #as3cf-settings.wpome select::-ms-input-placeholder { + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input::placeholder, #as3cf-settings.wpome textarea::placeholder, #as3cf-settings.wpome select::placeholder { + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input:hover, #as3cf-settings.wpome textarea:hover, #as3cf-settings.wpome select:hover { + border: 1px solid var(--as3cf-color-gray-500); +} + +#as3cf-settings.wpome input:focus, #as3cf-settings.wpome input:active, #as3cf-settings.wpome textarea:focus, #as3cf-settings.wpome textarea:active, #as3cf-settings.wpome select:focus, #as3cf-settings.wpome select:active { + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome input:disabled, #as3cf-settings.wpome textarea:disabled, #as3cf-settings.wpome select:disabled { + cursor: default; +} + +#as3cf-settings.wpome input.disabled, #as3cf-settings.wpome textarea.disabled, #as3cf-settings.wpome select.disabled { + color: var(--as3cf-color-gray-500); + background-color: var(--as3cf-color-gray-100); + border: 1px solid var(--as3cf-color-gray-300); + cursor: default; +} + +#as3cf-settings.wpome .input-label { + font-size: 0.78125rem; + color: var(--as3cf-color-gray-500); + margin-bottom: 0.5rem; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.3px; +} + +#as3cf-settings.wpome .input-error { + color: var(--as3cf-wordpress-notice-error-color); + font-weight: 400; +} + +#as3cf-settings.wpome .panel div.setting .input-error { + margin-left: 5rem; + margin-right: 1.5rem; + margin-bottom: 1rem; +} + +#as3cf-settings.wpome .toggle-switch { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome .toggle-switch input[type=checkbox] { + all: unset; + height: 0; + width: 0; + border: none !important; +} + +#as3cf-settings.wpome .toggle-switch label { + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + text-indent: -9999px; + width: 36px; + height: 20px; + background: var(--as3cf-color-gray-400); + border: none; + border-radius: 100px; + display: block; + position: relative; +} + +#as3cf-settings.wpome .toggle-switch label:after { + content: ""; + position: absolute; + top: 2px; + left: 2px; + width: 16px; + height: 16px; + background: var(--as3cf-color-white); + border-radius: 100%; + -webkit-transition: 0.3s; + transition: 0.3s; + -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06), 0 1px 2px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06), 0 1px 2px 0 rgba(0, 0, 0, 0.1); +} + +#as3cf-settings.wpome .toggle-switch input:checked + label { + background: var(--as3cf-complete-color); + -webkit-transition: 0.3s; + transition: 0.3s; +} + +#as3cf-settings.wpome .toggle-switch input:checked + label:after { + left: calc(100% - 2px); + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +#as3cf-settings.wpome .toggle-switch label:active:after { + width: 26px; +} + +#as3cf-settings.wpome .toggle-switch input:focus + label, #as3cf-settings.wpome .toggle-switch input:active + label { + border: none; + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome .toggle-switch input:disabled + label { + cursor: default; + background: var(--as3cf-color-gray-300); +} + +#as3cf-settings.wpome .toggle-switch input:disabled + label:after { + background: var(--as3cf-color-gray-100); +} + +#as3cf-settings.wpome > .header { + padding: 0 2rem; + background-color: #FFE4CD; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 96px; +} + +#as3cf-settings.wpome > .header .header-wrapper { + width: 1110px; + max-width: 1110px; + height: 100%; + background-image: url("../img/brand/ome-branding-transparent.svg"); + background-repeat: no-repeat; + background-size: contain; + background-position: center top; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome > .header .header-wrapper h1 { + font-size: 1.3125rem; + font-weight: 500; + color: #490D32; +} + +#as3cf-settings.wpome > .header .header-wrapper .medallion { + -webkit-filter: drop-shadow(0px 1px 4px rgba(0, 0, 0, 0.15)); + filter: drop-shadow(0px 1px 4px rgba(0, 0, 0, 0.15)); + margin-right: 1rem; + width: 52px; + height: 52px; +} + +#as3cf-settings.wpome > .header .header-wrapper .licence { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin-left: auto; +} + +#as3cf-settings.wpome > .header .header-wrapper .licence .licence-type { + color: #EB422D; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +#as3cf-settings.wpome > .header .header-wrapper .licence .licence-type a { + font-size: 0.825rem; + font-weight: 500; + margin-left: 0.6rem; + text-decoration: underline; + color: var(--as3cf-color-primary-500) !important; +} + +#as3cf-settings.wpome > .header .header-wrapper .licence .licence-type a:hover { + -webkit-filter: brightness(105%); + filter: brightness(105%); +} + +#as3cf-settings.wpome > .header .header-wrapper .licence p { + font-size: 0.8125rem; + color: #4D443D; + margin: 0.5rem 0 0; +} + +#as3cf-settings.wpome > .header .header-wrapper button, #as3cf-settings.wpome > .header .header-wrapper a.button { + text-transform: uppercase; +} + +#as3cf-settings.wpome div.nav { + width: 100%; + margin: 0 auto 2.5rem 0; + background: var(--as3cf-color-white); + border-bottom: 1px solid var(--as3cf-wordpress-border-color); +} + +#as3cf-settings.wpome div.nav div.items { + max-width: 1220px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; + padding: 0 2rem; +} + +#as3cf-settings.wpome div.nav div.items ul.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; + margin: 0; + padding: 1.5rem 2rem 0 0; + font-size: 0.75rem; + font-weight: 500; + text-transform: uppercase; +} + +#as3cf-settings.wpome div.nav div.items ul.nav li { + margin-right: 1.75rem; + padding: 0.6rem 0.2rem 0.65rem; + border-bottom: 3px solid #fff; +} + +#as3cf-settings.wpome div.nav div.items ul.nav li a { + color: var(--as3cf-color-gray-600); + text-decoration: none; +} + +#as3cf-settings.wpome div.nav div.items ul.nav li a:hover { + color: var(--as3cf-color-primary-600); +} + +#as3cf-settings.wpome div.nav div.items ul.nav li a:focus { + color: var(--as3cf-color-primary-600); + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-primary-400); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-primary-400); + border-radius: 3px; + outline: none; +} + +#as3cf-settings.wpome div.nav div.items ul.nav li.focus, #as3cf-settings.wpome div.nav div.items ul.nav li.hover { + border-bottom: 3px solid var(--as3cf-color-gray-600); +} + +#as3cf-settings.wpome div.nav div.items ul.nav li.active { + border-bottom: 3px solid var(--as3cf-color-primary-500); +} + +#as3cf-settings.wpome div.nav div.items ul.nav li.active a { + color: var(--as3cf-active-nav-color); +} + +#as3cf-settings.wpome .subnav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-bottom: 1px solid var(--as3cf-wordpress-border-color); + padding: 0; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; + margin: 0 0 3rem; +} + +#as3cf-settings.wpome .subnav.subpage { + display: none; +} + +@media (max-width: 1100px) { + #as3cf-settings.wpome .subnav.subpage { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + } +} + +#as3cf-settings.wpome .subnav li { + font-size: 0.875rem; + font-weight: 500; + padding-bottom: 1rem; + margin: 0 2rem 0 0; +} + +#as3cf-settings.wpome .subnav li.step-arrow { + all: unset; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-item-align: start; + align-self: flex-start; + margin: 0 2rem 0 0; +} + +#as3cf-settings.wpome .subnav li a { + color: var(--as3cf-color-gray-600); + text-decoration: none; +} + +#as3cf-settings.wpome .subnav li a:hover { + color: var(--as3cf-color-primary-600); +} + +#as3cf-settings.wpome .subnav li a:focus { + color: var(--as3cf-color-primary-600); + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-wordpress-background-color), 0 0 0 3.5px var(--as3cf-color-primary-400); + box-shadow: 0 0 0 1.5px var(--as3cf-wordpress-background-color), 0 0 0 3.5px var(--as3cf-color-primary-400); + border-radius: 3px; + outline: none; +} + +#as3cf-settings.wpome .subnav li.focus, #as3cf-settings.wpome .subnav li.hover { + border-bottom: 3px solid var(--as3cf-color-gray-600); +} + +#as3cf-settings.wpome .subnav li.active { + border-bottom: 3px solid var(--as3cf-color-primary-500); +} + +#as3cf-settings.wpome .subnav li.active a { + color: var(--as3cf-active-nav-color); +} + +#as3cf-settings.wpome .lite-wrapper .subnav { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; +} + +#as3cf-settings.wpomepro > .header .header-wrapper { + width: 1220px; + max-width: 1220px; +} + +#as3cf-settings #global-animation-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-left: auto; + cursor: pointer; + text-decoration: none; +} + +#as3cf-settings #global-animation-wrapper:focus { + -webkit-box-shadow: none; + box-shadow: none; + outline: none; +} + +#as3cf-settings #global-animation-wrapper #animation-running { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; +} + +#as3cf-settings #global-animation-wrapper #animation-running .percentage { + margin-right: 58px; + margin-top: -0.7rem; + text-transform: none; + font-size: 1.2rem; + color: var(--as3cf-color-gray-900); + font-weight: 500; + text-align: right; +} + +#as3cf-settings #global-animation-wrapper #animation-running span { + font-size: 0.85rem; +} + +#as3cf-settings #global-animation-wrapper #animation-running img { + position: absolute; + right: 0; + top: -30px; + height: 42px; +} + +#as3cf-settings #global-animation-wrapper #animation-complete { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-top: -1.4rem; +} + +#as3cf-settings #global-animation-wrapper #animation-complete p { + margin-right: 15px; + font-size: 0.8rem; + text-transform: none; + line-height: 1; +} + +#as3cf-settings #global-animation-wrapper #animation-complete p.success { + font-weight: 400; + text-decoration: none; + color: var(--as3cf-color-gray-500); +} + +#as3cf-settings #global-animation-wrapper #animation-complete p.error { + font-weight: 500; + color: var(--as3cf-notice-error-color); + text-decoration: underline; +} + +#as3cf-settings #global-animation-wrapper #animation-complete img { + width: 19px; +} + +#as3cf-settings.wpome .notifications.wrapper { + margin: 0 0 2rem 0; +} + +#as3cf-settings.wpome .notification { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin: 0 0 0.5rem 0; + -webkit-box-shadow: 0 2px 8px -5px rgba(50, 50, 93, 0.25), 0px 8px 5px -12px rgba(0, 0, 0, 0.3); + box-shadow: 0 2px 8px -5px rgba(50, 50, 93, 0.25), 0px 8px 5px -12px rgba(0, 0, 0, 0.3); + border-radius: 8px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + /* Probably redundant now, but keeping until verified post 3.0 release. */ +} + +#as3cf-settings.wpome .notification .content { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 10px 14px 10px 12px; + margin: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 14px; +} + +#as3cf-settings.wpome .notification .content div.icon.type { + margin: 0; + padding: 0; + width: 28px; + height: 28px; + border-radius: 6px; + -webkit-box-flex: 0; + -ms-flex: 0 0 28px; + flex: 0 0 28px; + -ms-flex-item-align: start; + align-self: flex-start; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +#as3cf-settings.wpome .notification .content div.icon.type img.icon.type { + width: 16px; + height: 16px; +} + +#as3cf-settings.wpome .notification .content h3 { + margin: 0 0.5rem 0.5rem 0; + font-size: 0.8125rem; + line-height: 1.3rem; + font-weight: 600; + color: var(--as3cf-color-gray-900); +} + +#as3cf-settings.wpome .notification .content p { + margin: 0 0.5rem 0.5rem 0; + font-size: 0.8125rem; + line-height: 1.3rem; + color: var(--as3cf-color-gray-900); +} + +#as3cf-settings.wpome .notification .content p li { + list-style: disc; +} + +#as3cf-settings.wpome .notification .content p:last-of-type { + margin-bottom: 0; +} + +#as3cf-settings.wpome .notification .content code { + padding: 0.05rem 0.4rem; + margin: 0 0.1rem; + border-radius: 5px; + line-height: 1; +} + +#as3cf-settings.wpome .notification .content .body { + margin: 0; + padding: 0; + width: 100%; + overflow-wrap: anywhere; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +#as3cf-settings.wpome .notification .content .body .heading { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +#as3cf-settings.wpome .notification .content .body .heading p { + width: 100%; +} + +#as3cf-settings.wpome .notification .content .body .heading .close { + -webkit-box-flex: 0; + -ms-flex: 0 0 16px; + flex: 0 0 16px; + width: 16px; + height: 16px; + min-width: 16px; + min-height: 16px; + background: url(../img/icon/close.svg) no-repeat; + border: none; + border-radius: 100%; + cursor: pointer; +} + +#as3cf-settings.wpome .notification .content .body .links a { + margin-right: 0.75rem; +} + +#as3cf-settings.wpome .notification.multiline .content { + padding: 14px 14px 14px 12px; +} + +#as3cf-settings.wpome .notification.multiline .content .body .heading .close { + -ms-flex-item-align: first baseline; + align-self: first baseline; +} + +#as3cf-settings.wpome .notification.inline.multiline .content { + padding: 16px; + gap: 16px; +} + +#as3cf-settings.wpome .notification.inline.multiline .content div.icon.type { + margin-top: 4px; +} + +#as3cf-settings.wpome .notification.expandable button { + color: var(--as3cf-link-color); + background-color: rgba(17, 17, 17, 0.04); + border: 1px solid rgba(17, 17, 17, 0.08); +} + +#as3cf-settings.wpome .notification.expandable .heading { + gap: 8px; +} + +#as3cf-settings.wpome .notification.expandable .heading button.expandable { + all: unset; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 22px; + height: 22px; + min-width: 22px; + min-height: 22px; + background: rgba(17, 17, 17, 0.04) url(../img/icon/arrow.svg) no-repeat center/11px; + border: 1px solid rgba(17, 17, 17, 0.08); + border-radius: 11px; + -webkit-filter: invert(27%) sepia(84%) saturate(1886%) hue-rotate(177deg) brightness(90%) contrast(103%); + filter: invert(27%) sepia(84%) saturate(1886%) hue-rotate(177deg) brightness(90%) contrast(103%); +} + +#as3cf-settings.wpome .notification.expandable .heading button.expandable.expanded { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +#as3cf-settings.wpome .notification.expandable .heading button.expandable:hover, #as3cf-settings.wpome .notification.expandable .heading button.expandable:focus, #as3cf-settings.wpome .notification.expandable .heading button.expandable:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details { + max-height: 14.5rem; + overflow-y: auto; + margin: 0; + padding: 0; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details .item { + margin: 0; + padding: 1.5rem; + line-height: 1.4; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details .item .summary { + margin-bottom: 0.75rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details .item .summary .title { + width: 100%; + font-weight: 600; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details .item ul.detail { + margin: 0; + padding: 0; +} + +#as3cf-settings.wpome .notification.expandable.expanded .details .item ul.detail > li { + padding: 0.3rem 0 0; + line-height: 1.4; +} + +#as3cf-settings.wpome .notification.expandable button.dismiss { + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 5px 10px; + gap: 4px; + border-radius: 6px; +} + +#as3cf-settings.wpome .notification.expandable button.dismiss:before { + content: url(../img/icon/x.svg); + width: 7.5px; +} + +#as3cf-settings.wpome .notification button:hover, #as3cf-settings.wpome .notification button:focus, #as3cf-settings.wpome .notification button:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); + -webkit-box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + box-shadow: 0 0 0 1.5px var(--as3cf-color-white), 0 0 0 3.5px var(--as3cf-color-secondary-500); + outline: 0; +} + +#as3cf-settings.wpome .notification.info { + background: var(--as3cf-notice-info-background-color); + border: 1px solid var(--as3cf-notice-info-border-color); +} + +#as3cf-settings.wpome .notification.info div.icon.type { + background: var(--as3cf-notice-info-color); +} + +#as3cf-settings.wpome .notification.info.expandable.expanded .details .item { + border-top: 1px solid rgba(46, 107, 222, 0.16); +} + +#as3cf-settings.wpome .notification.success { + background: var(--as3cf-notice-success-background-color); + border: 1px solid var(--as3cf-notice-success-border-color); +} + +#as3cf-settings.wpome .notification.success div.icon.type { + background: var(--as3cf-notice-success-color); +} + +#as3cf-settings.wpome .notification.success.expandable.expanded .details .item { + border-top: 1px solid rgba(232, 99, 94, 0.16); +} + +#as3cf-settings.wpome .notification.warning { + background: var(--as3cf-notice-warning-background-color); + border: 1px solid var(--as3cf-notice-warning-border-color); +} + +#as3cf-settings.wpome .notification.warning div.icon.type { + background: var(--as3cf-notice-warning-color); +} + +#as3cf-settings.wpome .notification.warning code { + background: var(--as3cf-notice-warning-code-background-color); +} + +#as3cf-settings.wpome .notification.warning.expandable.expanded .details .item { + border-top: 1px solid rgba(99, 185, 105, 0.16); +} + +#as3cf-settings.wpome .notification.error { + background: var(--as3cf-notice-error-background-color); + border: 1px solid var(--as3cf-notice-error-border-color); +} + +#as3cf-settings.wpome .notification.error div.icon.type { + background: var(--as3cf-notice-error-color); +} + +#as3cf-settings.wpome .notification.error.expandable.expanded .details .item { + border-top: 1px solid rgba(232, 99, 94, 0.16); +} + +#as3cf-settings.wpome .notification.wordpress { + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-wordpress-border-color); +} + +#as3cf-settings.wpome .notification.wordpress.info { + border-left: 5px solid var(--as3cf-wordpress-notice-info-color); +} + +#as3cf-settings.wpome .notification.wordpress.success { + border-left: 5px solid var(--as3cf-wordpress-notice-success-color); +} + +#as3cf-settings.wpome .notification.wordpress.warning { + border-left: 5px solid var(--as3cf-wordpress-notice-warning-color); +} + +#as3cf-settings.wpome .notification.wordpress.error { + border-left: 5px solid var(--as3cf-wordpress-notice-error-color); +} + +/* + * Storage and Delivery Provider specific styles. + */ +#as3cf-settings.wpome .delivery.aws .gradient { + background: linear-gradient(225deg, rgba(255, 213, 213, 0.5) 0%, rgba(255, 213, 213, 0) 50%); +} + +#as3cf-settings.wpome .delivery.cloudflare .gradient { + background: linear-gradient(225deg, rgba(255, 221, 192, 0.5) 0%, rgba(255, 221, 192, 0) 50%); +} + +#as3cf-settings.wpome .delivery.do .gradient { + background: linear-gradient(225deg, rgba(205, 230, 255, 0.5) 0%, rgba(205, 230, 255, 0) 50%); +} + +#as3cf-settings.wpome .delivery.gcp .gradient { + background: linear-gradient(225deg, rgba(226, 226, 226, 0.5) 0%, rgba(226, 226, 226, 0) 50%); +} + +#as3cf-settings.wpome .delivery.keycdn .gradient { + background: linear-gradient(225deg, rgba(4, 122, 237, 0.16) 0%, rgba(4, 122, 237, 0) 50%); +} + +#as3cf-settings.wpome .delivery.other .gradient { + background: linear-gradient(225deg, rgba(228, 234, 241, 0.5) 0%, rgba(228, 234, 241, 0) 50%); +} + +#as3cf-settings.wpome .delivery.stackpath .gradient { + background: linear-gradient(225deg, rgba(226, 226, 226, 0.5) 0%, rgba(226, 226, 226, 0) 50%); +} + +#as3cf-settings.wpome .storage.aws .gradient { + background: linear-gradient(225deg, rgba(255, 214, 197, 0.5) 0%, rgba(255, 214, 197, 0) 50%); +} + +#as3cf-settings.wpome .storage.do .gradient { + background: linear-gradient(225deg, rgba(205, 230, 255, 0.5) 0%, rgba(205, 230, 255, 0) 50%); +} + +#as3cf-settings.wpome .storage.gcp .gradient { + background: linear-gradient(225deg, rgba(226, 226, 226, 0.5) 0%, rgba(226, 226, 226, 0) 50%); +} + +#as3cf-settings.wpome { + /** + * Misc + */ +} + +#as3cf-settings.wpome .as3cf-sidebar { + width: 292px; + min-width: 292px; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + margin-left: 2.75rem; + margin-top: -0.5rem; +} + +#as3cf-settings.wpome .as3cf-sidebar.lite { + background: white; + border-radius: 7px; + border: 1px solid #D9E1EB; + overflow: hidden; + -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1); +} + +#as3cf-settings.wpome .as3cf-sidebar .block { + padding: 20px; + border: 1px solid #ccc; +} + +#as3cf-settings.wpome .as3cf-sidebar .subscribe { + border-top: none; + text-align: center; + padding: 40px 20px; +} + +#as3cf-settings.wpome .as3cf-sidebar .subscribe h2 { + padding: 0; + margin: 0; + margin-bottom: 0.5em; + color: #666; + font-size: 17px; + line-height: 1.2em; + float: none; + text-transform: none; + font-weight: 500; +} + +#as3cf-settings.wpome .as3cf-sidebar .subscribe .button { + width: 100% !important; + margin: 1rem auto; + text-transform: uppercase; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center !important; +} + +#as3cf-settings.wpome .as3cf-sidebar .subscribe p { + margin: 0; +} + +#as3cf-settings.wpome .as3cf-sidebar .subscribe .discount-applied { + color: rgba(0, 0, 0, 0.4); + font-size: 12px; + line-height: 1.4em; + margin-top: 10px; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits { + border-top: 0; + background: #2E2E31; + text-align: center; + padding: 10px; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits h4 { + font-size: 11px; + font-weight: normal; + color: rgba(255, 255, 255, 0.7); + margin-top: 0; + margin-bottom: 10px; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits ul { + display: inline-block; + margin: 0; + padding: 0; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits li { + overflow: hidden; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits li:last-child { + margin-bottom: 0; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits img { + display: inline-block; + vertical-align: middle; + margin-right: 8px; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits span { + display: inline-block; + vertical-align: middle; + font-size: 12px; + line-height: 24px; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits a { + display: block; + text-decoration: none; + color: white; + font-size: 12px; + text-align: center; +} + +#as3cf-settings.wpome .as3cf-sidebar .credits a:hover { + color: rgba(255, 255, 255, 0.7); +} + +@media screen and (max-width: 1052px) { + #as3cf-settings.wpome .as3cf-sidebar { + position: relative; + top: auto; + right: auto; + } +} + +#as3cf-settings.wpome .as3cf-active-provider, #as3cf-settings.wpome .as3cf-active-bucket { + font-weight: bold; + margin-right: 10px; +} + +#as3cf-settings.wpome .as3cf-banner { + width: 292px; + height: 156px; + display: block; + background: #f8cfae url(../img/sidebar/os3-banner.svg) left bottom/100% no-repeat; +} + +#as3cf-settings.wpome .as3cf-banner:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +#as3cf-settings.wpome .as3cf-upgrade-details { + background-color: #4e0d33; + padding: 10px 20px 20px 20px; + color: #eee; + font-size: 12.5px; + display: block; + text-decoration: none; +} + +#as3cf-settings.wpome .as3cf-upgrade-details h1 { + font-size: 27px; + color: #f8cfae; + margin: 0 0 15px 0; + padding: 0; + font-weight: 300; + line-height: 1; +} + +#as3cf-settings.wpome .as3cf-upgrade-details h2 { + font-size: 15px; + color: #F8CFAE; + margin: 0 0 30px 0; + font-weight: 600; + line-height: 20px; +} + +#as3cf-settings.wpome .as3cf-upgrade-details p { + margin: 0; +} + +#as3cf-settings.wpome .as3cf-upgrade-details a { + color: #eee; + font-weight: bold; + text-decoration: none; + font-size: 16px; + -webkit-box-shadow: none; + box-shadow: none; +} + +#as3cf-settings.wpome .as3cf-upgrade-details a:hover { + color: #fff; +} + +#as3cf-settings.wpome .as3cf-upgrade-details ul { + margin: 0 !important; + padding: 0; + list-style: none; +} + +#as3cf-settings.wpome .as3cf-upgrade-details ul li { + margin-bottom: 15px; + line-height: 18px; + padding-left: 25px; + background: url(../img/sidebar/item-checked.svg) left center no-repeat; +} + +#as3cf-settings.wpome { + /* + * Add an external link icon after any link that uses "_blank" target. + * There's a couple of classes where we don't want the icon too. + */ +} + +#as3cf-settings.wpome a, +#as3cf-settings.wpome button, +#as3cf-settings.wpome h1, +#as3cf-settings.wpome h2, +#as3cf-settings.wpome h3, +#as3cf-settings.wpome h4, +#as3cf-settings.wpome h5, +#as3cf-settings.wpome input, +#as3cf-settings.wpome li, +#as3cf-settings.wpome p, +#as3cf-settings.wpome pre, +#as3cf-settings.wpome select, +#as3cf-settings.wpome span, +#as3cf-settings.wpome textarea { + letter-spacing: 0.25px; + line-height: 1; + margin: 0; +} + +#as3cf-settings.wpome li { + list-style: none; +} + +#as3cf-settings.wpome .semibold { + font-weight: 600; +} + +#as3cf-settings.wpome .bold { + font-weight: 700; +} + +#as3cf-settings.wpome p { + font-size: 0.875rem; + color: var(--as3cf-color-gray-900); + font-weight: 400; +} + +#as3cf-settings.wpome h2 { + font-size: 1.0625rem; + color: #617385; + text-transform: uppercase; + font-weight: 400; +} + +#as3cf-settings.wpome .page-title { + margin-bottom: 3rem; +} + +#as3cf-settings.wpome a[target=_blank]:not(.help):not(.licence):not(.email):after { + -webkit-box-sizing: border-box; + box-sizing: border-box; + content: "\f504"; + display: inline-block; + font-family: "dashicons", emoji; + font-size: larger; + text-decoration: none; + vertical-align: sub; + margin-left: 0.2rem; + margin-right: -1rem; +} + +#as3cf-settings.wpome .link { + font-size: 0.8125rem; + color: #0073AA; +} + +#as3cf-settings.wpome .link:hover { + -webkit-filter: brightness(115%); + filter: brightness(115%); +} + +#as3cf-settings.wpome pre, #as3cf-settings.wpome textarea.pre { + background: var(--as3cf-code-background); + border: 1px solid #D2CFCF; + border-radius: 6px; + padding: 1rem 1.2rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + font-size: 0.8125rem; + line-height: 1.6; + color: var(--as3cf-color-white); + font-weight: 400; + margin: 0 0 1.5rem; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + overflow-y: scroll; + /* Standards compliant scrollbar (future) */ + /* + scrollbar-color: var(--as3cf-secondary-color) var(--as3cf-code-background); + scrollbar-width: 12px; + */ + /* Ye olde webkit scrollbar */ +} + +#as3cf-settings.wpome pre::-webkit-scrollbar, #as3cf-settings.wpome textarea.pre::-webkit-scrollbar { + width: 12px; +} + +#as3cf-settings.wpome pre::-webkit-scrollbar-track, #as3cf-settings.wpome textarea.pre::-webkit-scrollbar-track { + background: var(--as3cf-code-background); + border-radius: 6px; +} + +#as3cf-settings.wpome pre::-webkit-scrollbar-corner, #as3cf-settings.wpome textarea.pre::-webkit-scrollbar-corner { + background-color: var(--as3cf-code-background); + border-radius: 6px; +} + +#as3cf-settings.wpome pre::-webkit-resizer, #as3cf-settings.wpome textarea.pre::-webkit-resizer { + background-color: var(--as3cf-code-background); + border-radius: 6px; +} + +#as3cf-settings.wpome pre::-webkit-scrollbar-thumb, #as3cf-settings.wpome textarea.pre::-webkit-scrollbar-thumb { + background-color: var(--as3cf-secondary-color); + border: 1px solid var(--as3cf-code-background); + border-radius: 5px; +} + +#as3cf-settings.wpome .page-wrapper .page-title { + margin-bottom: 2.6rem; +} + +#as3cf-settings.wpome .lite-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 1110px; +} + +@media (max-width: 1024px) { + #as3cf-settings.wpome .lite-wrapper .as3cf-sidebar { + display: none; + } +} + +#as3cf-settings.wpome .lite-wrapper .page-wrapper { + width: 840px; +} + +#as3cf-settings.wpome .lite-wrapper .page-wrapper.media { + width: 780px; + max-width: 780px; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .panel { + width: 100%; + max-width: 780px; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .delivery-settings { + margin: 0; + display: none; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .delivery-settings.active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .storage-settings { + margin: 0; + display: none; +} + +#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .storage-settings.active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +#as3cf-settings.wpome .lite-wrapper .panel.url-preview { + width: 100%; + max-width: 780px; +} + +#as3cf-settings.wpome .lite-wrapper .fixed-cta-block .buttons { + width: calc(1110px + 4rem); + max-width: calc(1110px + 4rem); +} + +@media screen and (max-width: 1024px) { + #as3cf-settings.wpome .lite-wrapper .fixed-cta-block .buttons { + max-width: calc(780px + 4rem); + } +} + +#as3cf-settings.wpome .media-page.wrapper { + margin: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +@media (max-width: 1100px) { + #as3cf-settings.wpome .media-page.wrapper { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } +} + +@media (max-width: 1100px) { + #as3cf-settings.wpome .media-page.wrapper .panel { + max-width: 100%; + } +} + +#as3cf-settings.wpome .media-page.wrapper .delivery-settings, +#as3cf-settings.wpome .media-page.wrapper .storage-settings { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +#as3cf-settings.wpome .media-page.wrapper .storage-settings { + margin: 0 2rem 0 0; +} + +@media (max-width: 1100px) { + #as3cf-settings.wpome .media-page.wrapper .storage-settings { + margin: 0; + display: none; + } + + #as3cf-settings.wpome .media-page.wrapper .storage-settings.active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + } +} + +#as3cf-settings.wpome .media-page.wrapper .delivery-settings { + margin: 0 0 0 2rem; +} + +@media (max-width: 1100px) { + #as3cf-settings.wpome .media-page.wrapper .delivery-settings { + margin: 0; + display: none; + } + + #as3cf-settings.wpome .media-page.wrapper .delivery-settings.active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + } +} + +#as3cf-settings.wpome .subpage.wrapper, #as3cf-settings.wpome .subpage.page-wrapper { + margin: 0; + max-width: 840px; +} + +#as3cf-settings.wpome .storage-page.wrapper .panel.multi .panel-container .panel-row.tab-buttons { + gap: 1.5rem; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +#as3cf-settings.wpome .storage-page.wrapper .panel.multi .panel-container .panel-row.tab-buttons .button-tab { + margin: 0; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row { + margin-bottom: 1.25rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row:last-of-type { + margin-bottom: 0; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab { + width: 12rem; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab:not(.btn-disabled):hover ~ p, #as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab.active ~ p { + font-weight: 600; + opacity: 1; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row p { + margin: 0; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .speed, +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .private-media { + margin-left: 1.5rem; + opacity: 0.7; + font-size: 0.8125rem; +} + +#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .help { + margin-left: auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +#as3cf-settings.wpome .licence-page.wrapper { + margin: 0 0 2rem; + max-width: 700px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} + +#as3cf-settings.wpome .licence-page.wrapper.defined { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + gap: 0.5rem; +} + +#as3cf-settings.wpome .licence-page.wrapper.defined .wp-config { + margin-left: 0; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} + +#as3cf-settings.wpome .support-page.wrapper { + margin: 0; + max-width: 960px; +} + +#as3cf-settings.wpome .support-page.wrapper .columns { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +#as3cf-settings.wpome .support-page.wrapper .licence-type { + margin-bottom: 3rem; +} + +#as3cf-settings.wpome .support-page.wrapper .licence-type span { + font-weight: 700; + color: var(--as3cf-color-primary-500); +} + +#as3cf-settings.wpome .support-page.wrapper .lite-support { + margin-bottom: 2rem; +} + +#as3cf-settings.wpome .support-page.wrapper .lite-support p { + line-height: 1.8; + font-weight: 400; +} + +#as3cf-settings.wpome .assets-page.wrapper { + margin: 0; + max-width: 840px; +} + +#as3cf-settings.wpome .assets-page.wrapper .assets-panel { + padding: 0.45rem 0; + max-width: 640px; +} + +#as3cf-settings.wpome .assets-page.wrapper .notice { + margin-right: auto; +} + +#as3cf-settings.wpome .assets-page.wrapper .notice-qsg { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; +} + +#as3cf-settings.wpome .assets-page.wrapper .settings { + margin-bottom: 2rem; + max-width: 100%; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.status { + padding: 1.75rem 0 0 4rem !important; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.status img { + width: 18px; + height: 18px; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.status h4 { + margin-left: 0.8rem; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.status p { + margin: 0 !important; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0.7rem 0 0 4.7rem !important; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked p { + font-size: 0.75rem; + margin: 0 !important; +} + +#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked a { + margin-left: 1rem; + text-decoration: underline; +} + +#as3cf-settings.wpome .tools-page.wrapper { + margin: 0; + max-width: 760px; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel { + padding: 0 0 0.45rem; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header { + height: 4.5rem !important; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header img { + margin-right: 2rem; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header button { + margin-left: auto; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header .emoji-party { + font-size: 28px; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body { + padding: 1.6rem 2.6rem 1.6rem 6.1rem; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar { + margin: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + width: 100%; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status h4 { + font-size: 0.8125rem; + color: var(--as3cf-color-gray-900); + font-weight: 400; + margin: 0; + opacity: 80%; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status h4 strong { + font-size: 1.0625rem; + font-weight: 600; + opacity: 100%; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .indicator, +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress { + height: 8px; + border-radius: 8px; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress { + width: 100%; + background: #E9E9EF; + margin-top: 1rem; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe.animate, +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe > .indicator.animate { + background-size: 30px 30px; + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.15) 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, rgba(255, 255, 255, 0) 75%, rgba(255, 255, 255, 0) 100%); + -webkit-animation: progress 5s linear infinite; + animation: progress 5s linear infinite; +} + +@-webkit-keyframes progress { + from { + background-position: 0 0; + } + + to { + background-position: -60px -60px; + } +} + +@keyframes progress { + from { + background-position: 0 0; + } + + to { + background-position: -60px -60px; + } +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe.animate { + background-color: var(--as3cf-secondary-color); +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator { + display: block; + background-color: var(--as3cf-color-primary-500); + width: 40%; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator.running { + background-color: var(--as3cf-color-secondary-500); +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator.complete { + background-color: var(--as3cf-complete-color); + width: 100%; +} + +#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.desc { + font-size: 0.8125rem; + color: var(--as3cf-color-gray-500); + line-height: 1.65; +} + +#as3cf-settings.wpome .panel.url-preview { + max-width: 100%; +} + +#as3cf-settings.wpome .panel.url-preview .panel-row { + /* Good for Firefox & Safari, but Chrome isn't ready for this yet, experimental in v105. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/contain#inline-size + */ + /* Required until Chrome gets contain: inline-size */ +} +#as3cf-settings.wpome .panel.url-preview .panel-row.desc p { + font-size: 0.8125rem; + color: var(--as3cf-color-gray-600); + line-height: 1.625; + margin: 1.5rem 0 0; +} +@supports (contain: inline-size) { + #as3cf-settings.wpome .panel.url-preview .panel-row.body { + contain: inline-size; + } +} +#as3cf-settings.wpome .panel.url-preview .panel-row dl { + margin: 1rem -1.5rem; + padding: 0 1.5rem 1rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 0.5rem; + overflow-x: auto; +} +#as3cf-settings.wpome .panel.url-preview .panel-row dl div { + margin: 0; + padding: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + gap: 2px; + background: #E1E5E9; + border-radius: 6px; +} +#as3cf-settings.wpome .panel.url-preview .panel-row dl div dt { + margin: 0; + padding: 0.5rem 1rem 0.375rem; + white-space: nowrap; + font-weight: 510; +} +#as3cf-settings.wpome .panel.url-preview .panel-row dl div dd { + margin: 0; + padding: 0.407rem 1rem; + white-space: nowrap; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-item-align: stretch; + align-self: stretch; + background: #FAFAFA; + border: 1px solid #CBD5E0; + border-radius: 6px; + font-weight: 400; + font-size: 0.75rem; +} +@supports not (contain: inline-size) { + #as3cf-settings.wpome .panel.url-preview .panel-row dl { + contain: size; + width: 100%; + height: 68px; + } +} +#as3cf-settings.wpome .panel { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + max-width: 575px; + margin-bottom: 3rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +#as3cf-settings.wpome .panel .heading { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + gap: 0.5rem; +} +#as3cf-settings.wpome .panel h3 { + font-size: 0.9375rem; + color: var(--as3cf-color-gray-900); + font-weight: 500; + margin: 0 0 1.25rem; +} +#as3cf-settings.wpome .panel .notification.inline { + margin-left: 5rem; + margin-right: 1.5rem; +} +#as3cf-settings.wpome .panel .panel-container { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-wordpress-border-color); + -webkit-box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.03); + box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.05), 0 2px 1px 0 rgba(0, 0, 0, 0.03); + border-radius: 6px; +} +#as3cf-settings.wpome .panel .panel-container .panel-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 1.5rem; +} +#as3cf-settings.wpome .panel .panel-container .panel-row.header { + height: 6rem; + border-bottom: 1px solid var(--as3cf-separator-color); +} +#as3cf-settings.wpome .panel .panel-container .panel-row.footer { + border-top: 1px solid var(--as3cf-separator-color); +} +#as3cf-settings.wpome .panel .panel-container .panel-row h4 { + font-size: 0.875rem; + font-weight: 500; + color: var(--as3cf-color-gray-800); + margin-left: 1rem; + margin-right: auto; +} +#as3cf-settings.wpome .panel .panel-container .panel-row .link { + font-size: 0.8125rem; + text-align: right; + line-height: 1.5; + margin-left: auto; + font-weight: 500; +} +#as3cf-settings.wpome .panel .panel-container .panel-row .link + .help { + margin-left: 1rem; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option { + margin-top: 1.5rem; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option h4 { + margin: 0 0 0 var(--as3cf-settings-option-indent); +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option a { + margin-left: auto; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc { + padding-right: var(--as3cf-settings-option-indent-right); +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc p { + font-size: 0.8125rem; + color: var(--as3cf-color-gray-600); + line-height: 1.625; + margin-left: calc(var(--as3cf-settings-ctrl-width) + var(--as3cf-settings-option-indent)); + margin-top: 0.57rem; + margin-bottom: 0.75rem; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input { + padding-right: var(--as3cf-settings-option-indent-right); +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input input[type=text] { + margin-left: calc(var(--as3cf-settings-ctrl-width) + var(--as3cf-settings-option-indent)); + margin-bottom: 1.2rem; + width: 100%; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input input[type=text] + label { + visibility: collapse; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested { + margin: 0 0 0.125rem 5.25rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + border-left: 2px dotted #C2CBD3; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row { + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + margin-bottom: 0; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row img { + margin-left: auto; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row h4 { + margin: 0; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.option { + margin-top: 1rem; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.desc { + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + padding: 0.4rem 2.25rem 0.85rem 1.65rem; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.desc p { + font-size: 0.8125rem; + color: var(--as3cf-color-gray-600); + line-height: 1.625; + margin: 0; +} +#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.input input[type=text] { + margin-left: var(--as3cf-settings-input-indent); +} +#as3cf-settings.wpome .panel .panel-container .setting:last-of-type { + margin-bottom: 0.75rem; +} +#as3cf-settings.wpome .panel .panel-container hr { + height: 1px; + width: 100%; + border: 0; + margin: 0; + background: var(--as3cf-separator-color); +} +#as3cf-settings.wpome .panel.multi { + max-width: 840px; + margin-bottom: 2rem; +} +#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-switch { + margin-right: 1.25rem; +} +#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-reveal label { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; +} +#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-reveal a { + margin-left: 0.3rem; + display: contents; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row { + height: auto; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row h3 { + margin: 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row p:last-of-type { + margin-bottom: 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header { + height: 4rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header a { + margin-left: auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-left: auto; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider img { + width: 24px; + height: 24px; + margin-right: 0.5rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .wp-config + .provider { + margin-left: 1rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body { + padding: 2.5rem; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .row { + margin: 0; + width: 100%; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .row.radio-btns { + margin-bottom: 2.2rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-desc { + margin: -0.35rem 0 1.25rem 2rem; + font-size: 12px; + font-weight: 500; + line-height: 1.4; + opacity: 0.75; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body.access-keys > p { + margin-bottom: 1.5rem !important; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body input[type=text], +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body textarea { + width: 100%; + margin-bottom: 1.5rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-name, #as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .cdn-name { + width: 100%; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body p { + margin: 0 0 1.5rem; + line-height: 1.5; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body p:last-of-type { + margin-bottom: 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .link { + text-decoration: underline; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab img { + width: 24px; + height: 24px; + margin-right: 0.9rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab .checkmark { + width: 16px; + height: 16px; + position: absolute; + right: -19px; + top: -5px; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab p { + font-weight: 500; + margin-bottom: 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn { + margin-bottom: 0.8rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn:last-of-type { + margin-bottom: 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn.list { + margin: 0 1.5rem 0 0; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list { + background: var(--as3cf-color-white); + border: 1px solid var(--as3cf-wordpress-border-color); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + border-radius: 6px; + width: 100%; + max-width: 580px; + padding: 0 0.4rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + height: 260px; + overflow-y: scroll; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.78rem 1.4rem; + background: #F6F7F8; + border-radius: 4px; + margin: 0 0 0.3rem; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + /* TODO: Better styling for no buckets in browse list? */ +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row.active { + background: rgba(236, 112, 94, 0.1); + border: 1px solid var(--as3cf-color-primary-500); + border-radius: 4px; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:first-of-type { + margin-top: 0.4rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:last-of-type { + margin-bottom: 0.4rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:nth-child(even) { + background: var(--as3cf-color-white); +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row p { + margin: 0; + font-size: 0.84375rem; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row .status { + margin-left: auto; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row.nothing-found { + cursor: default; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .new-bucket-details { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 1.8rem; + -webkit-box-flex: 5; + -ms-flex: 5; + flex: 5; +} +#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .region { + width: 30%; + -webkit-box-flex: 3; + -ms-flex: 3; + flex: 3; + margin-left: auto; + margin-bottom: 1.5rem; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +#as3cf-settings.wpome p.wp-config { + margin-left: auto; + padding: 0.4rem 0.75rem; + color: var(--as3cf-color-gray-500) !important; + background: rgba(113, 135, 154, 0.15) !important; + border: 1px solid rgba(113, 135, 154, 0.15) !important; + border-radius: 5px; + font-size: 0.84375rem; + font-weight: 500; + white-space: nowrap; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option p.wp-config + a { + margin-left: 1rem; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc p.wp-config { + margin-right: 0; +} +#as3cf-settings.wpome .panel .panel-container .setting .panel-row label.input-label p.wp-config { + text-transform: none; + padding: 0.2rem 0.5rem; +} +#as3cf-settings.wpome .notice { + all: unset; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + background: rgba(56, 125, 189, 0.1); + border: 1px solid #AFC8ED; + border-radius: 5px; + padding: 0.8rem 1.25rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +#as3cf-settings.wpome .notice a, +#as3cf-settings.wpome .notice p { + margin: 0 !important; +} +#as3cf-settings.wpome .notice a { + display: inline-block; + text-decoration: underline; + font-size: 0.875rem !important; +} +#as3cf-settings.wpome .notice-qsg p a { + padding-right: 1rem; +} +#as3cf-settings.wpome .support-form { + width: 600px; +} +#as3cf-settings.wpome .support-form input[type=text], +#as3cf-settings.wpome .support-form select, +#as3cf-settings.wpome .support-form textarea { + width: 100%; + margin-bottom: 1rem; +} +#as3cf-settings.wpome .support-form textarea { + margin-bottom: 1.5rem; +} +#as3cf-settings.wpome .support-form .note { + font-size: 0.78125rem; + color: var(--as3cf-color-gray-500); + margin-bottom: 2.5rem; + line-height: 1.5; +} +#as3cf-settings.wpome .support-form .note.first { + margin-bottom: 0.5rem; +} +#as3cf-settings.wpome .support-form .actions { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + margin-bottom: 2rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +#as3cf-settings.wpome .support-form .actions .btn-primary { + margin-left: auto; +} +#as3cf-settings.wpome .diagnostic-info { + max-width: 600px; + padding: 0.25rem 0; +} +#as3cf-settings.wpome .diagnostic-info pre { + height: 14.375rem; + white-space: pre-wrap; + word-break: keep-all; +} +#as3cf-settings.wpome .diagnostic-info hr { + background: #D3D7DB; + height: 3px; + width: 100%; + border: 0; + margin-bottom: 3rem; +} +#as3cf-settings.wpome .diagnostic-info .btn-outline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-left: auto; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} +#as3cf-settings.wpome .documentation { + background: #E4E5E7; + border: 1px solid var(--as3cf-wordpress-border-color); + -webkit-box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); + border-radius: 6px; + padding: 2.5rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin: 1.4rem 0 0 3rem; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + width: 240px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +#as3cf-settings.wpome .documentation h3 { + font-size: 1.03125rem; + color: var(--as3cf-color-gray-900); + letter-spacing: 0.15px; + font-weight: 500; + margin: 0 0 2.25rem; +} +#as3cf-settings.wpome .documentation a { + font-size: 0.875rem; + margin-bottom: 1.25rem; +} +#as3cf-settings.wpome .documentation a:last-of-type { + margin-bottom: 0; +} +#as3cf-settings.wpome .upsell.panel { + max-width: 840px; +} +#as3cf-settings.wpome .upsell .panel-container { + padding: 0; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + background: linear-gradient(136.01deg, rgba(255, 228, 205, 0.7) 0.94%, rgb(255, 255, 255) 33.33%); +} +#as3cf-settings.wpome .upsell .branding { + background: url(../../assets/img/brand/upsell-bunny.svg) no-repeat left bottom; + min-width: 280px; + border-radius: 5px; + margin-right: -1.25rem; +} +@media (max-width: 840px) { + #as3cf-settings.wpome .upsell .branding { + display: none; + } +} +#as3cf-settings.wpome .upsell .button { + margin: 1rem auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center !important; +} + +/* + * Our CSS variables, namespaced so they can be used anywhere. + */ +:root { + --as3cf-code-type: consolas, monospace; + --as3cf-color-white: #FFF; + --as3cf-color-black: #000; + --as3cf-color-gray-50: #FCFDFD; + --as3cf-color-gray-100: #F9FAFB; + --as3cf-color-gray-200: #F2F4F7; + --as3cf-color-gray-300: #EAECF0; + --as3cf-color-gray-400: #D0D5DD; + --as3cf-color-gray-500: #98A2B3; + --as3cf-color-gray-600: #667085; + --as3cf-color-gray-700: #344054; + --as3cf-color-gray-800: #1D2939; + --as3cf-color-gray-900: #101828; + --as3cf-color-primary-50: #FDF1EF; + --as3cf-color-primary-100: #FBE2DF; + --as3cf-color-primary-200: #F7C6BF; + --as3cf-color-primary-300: #F4A99E; + --as3cf-color-primary-400: #F08D7E; + --as3cf-color-primary-500: #EC705E; + --as3cf-color-primary-600: #C15B4C; + --as3cf-color-primary-700: #96453A; + --as3cf-color-primary-800: #6B3027; + --as3cf-color-primary-900: #401A15; + --as3cf-color-secondary-50: #EFF8FF; + --as3cf-color-secondary-100: #D1E9FF; + --as3cf-color-secondary-200: #B2DDFF; + --as3cf-color-secondary-300: #84CAFF; + --as3cf-color-secondary-400: #52B1FD; + --as3cf-color-secondary-500: #2C90FA; + --as3cf-color-secondary-600: #1270EF; + --as3cf-color-secondary-700: #155CD3; + --as3cf-color-secondary-800: #1749A9; + --as3cf-color-secondary-900: #184185; + --as3cf-secondary-color: #D8DDE2; + --as3cf-text-disabled: #98A2B3; + --as3cf-code-background: #102B44; + --as3cf-separator-color: #EBEFF3; + --as3cf-complete-color: #5BCB86; + --as3cf-active-nav-color: #4E0D34; + --as3cf-link-color: #0073AA; + --as3cf-wordpress-background-color: #F1F1F1; + --as3cf-wordpress-border-color: #D6D6D6; + --as3cf-wordpress-notice-info-color: #02A0D2; + --as3cf-notice-info-color: #2D69DA; + --as3cf-notice-info-border-color: #2E6BDE; + --as3cf-notice-info-background-color: #E7EFF9; + --as3cf-wordpress-notice-success-color: #45B450; + --as3cf-notice-success-color: #52AA59; + --as3cf-notice-success-border-color: #63B969; + --as3cf-notice-success-background-color: #EDF7EF; + --as3cf-wordpress-notice-warning-color: #FFBA00; + --as3cf-notice-warning-color: #F49C53; + --as3cf-notice-warning-border-color: #E29936; + --as3cf-notice-warning-background-color: #FDF8EB; + --as3cf-notice-warning-code-background-color: #FCECC6; + --as3cf-wordpress-notice-error-color: #DD3232; + --as3cf-notice-error-color: #DA5A39; + --as3cf-notice-error-border-color: #E8635E; + --as3cf-notice-error-background-color: #F7EEEB; + --as3cf-settings-ctrl-width: 36px; + --as3cf-settings-option-indent: 1.2rem; + --as3cf-settings-input-indent: 0; + --as3cf-settings-option-indent-right: 2.25rem; +} + +body.settings_page_amazon-s3-and-cloudfront { + background: var(--as3cf-wordpress-background-color); +} +body.settings_page_amazon-s3-and-cloudfront #wpcontent { + padding-left: 0 !important; +} +body.settings_page_amazon-s3-and-cloudfront #wpcontent #wpbody #wpbody-content > .notice { + display: none; +} +body.settings_page_amazon-s3-and-cloudfront #wpcontent #wpbody #wpbody-content .wpome .wpome-wrapper { + max-width: 1220px; + margin: 0 2rem 3rem 2rem; +} +body.settings_page_amazon-s3-and-cloudfront #wpfooter { + z-index: -2; +} + +.locked { + opacity: 0.55; +} + +.flex-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} + +.flex-column { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.align-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.align-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.align-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; +} \ No newline at end of file diff --git a/assets/css/style.min.css b/assets/css/style.min.css new file mode 100644 index 00000000..1bc65dcc --- /dev/null +++ b/assets/css/style.min.css @@ -0,0 +1 @@ +#as3cf-settings.wpome a,#as3cf-settings.wpome button,#as3cf-settings.wpome input{-webkit-transition:all .3s ease;transition:all .3s ease}#as3cf-settings.wpome a.button,#as3cf-settings.wpome button{font-weight:500;border-radius:6px;white-space:nowrap;min-width:4rem}#as3cf-settings.wpome a.button.btn-lg,#as3cf-settings.wpome button.btn-lg{font-size:.875rem;padding:.95rem 1.2rem;min-width:6rem}#as3cf-settings.wpome a.button.btn-md,#as3cf-settings.wpome button.btn-md{font-size:.875rem;padding:.75rem 1.05rem}#as3cf-settings.wpome a.button.btn-sm,#as3cf-settings.wpome button.btn-sm{font-size:.875rem;padding:.55rem .9rem}#as3cf-settings.wpome a.button.btn-xs,#as3cf-settings.wpome button.btn-xs{font-size:.7rem;padding:.4rem .6rem;min-width:3rem}#as3cf-settings.wpome .btn-row button.btn-primary,#as3cf-settings.wpome a.button.btn-primary,#as3cf-settings.wpome button.btn-primary{color:var(--as3cf-color-white);background:var(--as3cf-color-primary-500);border:1px solid rgba(0,0,0,.12)}#as3cf-settings.wpome a.button.btn-primary:hover,#as3cf-settings.wpome button.btn-primary:hover{background-color:var(--as3cf-color-primary-600)}#as3cf-settings.wpome .btn-row button.btn-outline,#as3cf-settings.wpome a.button.btn-outline,#as3cf-settings.wpome button.btn-outline{color:var(--as3cf-color-primary-500);background:0 0;border:1px solid var(--as3cf-color-primary-500)}#as3cf-settings.wpome a.button.btn-outline:hover,#as3cf-settings.wpome button.btn-outline:hover{color:var(--as3cf-color-primary-600);background-color:var(--as3cf-color-primary-50);border:1px solid var(--as3cf-color-primary-600)}#as3cf-settings.wpome a.button.btn-outline:active,#as3cf-settings.wpome a.button.btn-outline:focus,#as3cf-settings.wpome button.btn-outline:active,#as3cf-settings.wpome button.btn-outline:focus{border:1px solid var(--as3cf-color-primary-200)}#as3cf-settings.wpome a.button.btn-outline:active,#as3cf-settings.wpome a.button.btn-outline:focus,#as3cf-settings.wpome a.button.btn-primary:active,#as3cf-settings.wpome a.button.btn-primary:focus,#as3cf-settings.wpome button.btn-outline:active,#as3cf-settings.wpome button.btn-outline:focus,#as3cf-settings.wpome button.btn-primary:active,#as3cf-settings.wpome button.btn-primary:focus{-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-primary-400);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-primary-400);outline:0}#as3cf-settings.wpome .btn-row button.btn-disabled,#as3cf-settings.wpome a.button.btn-disabled,#as3cf-settings.wpome button.btn-disabled{color:var(--as3cf-text-disabled);border:1px solid var(--as3cf-color-gray-400);opacity:.5;cursor:default}#as3cf-settings.wpome a.button.btn-disabled.btn-primary,#as3cf-settings.wpome button.btn-disabled.btn-primary{background:var(--as3cf-color-gray-300)}#as3cf-settings.wpome a.button.btn-disabled:hover,#as3cf-settings.wpome button.btn-disabled:hover{-webkit-box-shadow:none!important;box-shadow:none!important}#as3cf-settings.wpome a.button.btn-disabled.btn-outline:hover,#as3cf-settings.wpome button.btn-disabled.btn-outline:hover{color:var(--as3cf-text-disabled);border:1px solid var(--as3cf-color-gray-400)}#as3cf-settings.wpome a,#as3cf-settings.wpome button{cursor:pointer}#as3cf-settings.wpome .btn-row{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:2.5rem 0 2.5rem 0}#as3cf-settings.wpome .btn-row .buttons-left .btn-primary{margin-left:.85rem}#as3cf-settings.wpome .btn-row .btn-outline{margin-left:auto}#as3cf-settings.wpome .btn-row .btn-primary{margin-left:auto}#as3cf-settings.wpome .btn-row .btn-outline+.btn-primary{margin-left:.85rem}#as3cf-settings.wpome .buttons-right{margin-left:auto;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}#as3cf-settings.wpome .buttons-right .pause{margin-right:.7rem}#as3cf-settings.wpome .fixed-cta-block{width:calc(100% - 160px);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:var(--as3cf-color-white);-webkit-box-shadow:0 -11px 24px 0 rgba(151,146,175,.2);box-shadow:0 -11px 24px 0 rgba(151,146,175,.2);-webkit-box-sizing:border-box;box-sizing:border-box;z-index:9999;position:fixed;bottom:0;left:160px}@media screen and (max-width:960px){#as3cf-settings.wpome .fixed-cta-block{width:calc(100% - 36px);left:36px}}@media screen and (max-width:782px){#as3cf-settings.wpome .fixed-cta-block{width:100%;left:0}}#as3cf-settings.wpome .fixed-cta-block .buttons{margin:0;padding:1rem 2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;width:calc(1220px + 4rem);max-width:calc(1220px + 4rem);-webkit-box-sizing:border-box;box-sizing:border-box}@media screen and (max-width:1100px){#as3cf-settings.wpome .fixed-cta-block .buttons{max-width:calc(780px + 4rem)}}@media screen and (max-width:872px){#as3cf-settings.wpome .fixed-cta-block .buttons{max-width:100%}}#as3cf-settings.wpome .fixed-cta-block .buttons .btn-outline{margin-right:1rem}#as3cf-settings.wpome .button-tab{background:var(--as3cf-color-white);border:1px solid var(--as3cf-color-gray-400);border-radius:6px;height:3rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 1.3rem;text-decoration:none;margin-right:1.5rem;position:relative;-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-timing-function:linear;transition-timing-function:linear}#as3cf-settings.wpome .button-tab.active{border:1px solid var(--as3cf-color-primary-500);-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.05);box-shadow:0 2px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.05)}#as3cf-settings.wpome .button-tab:hover{-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.05);box-shadow:0 4px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.05)}#as3cf-settings.wpome .button-tab:active,#as3cf-settings.wpome .button-tab:focus{-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome .button-tab.btn-disabled{cursor:default}#as3cf-settings.wpome .button-tab.btn-disabled:hover{-webkit-box-shadow:none;box-shadow:none}#as3cf-settings.wpome a.help{width:18px;height:18px;min-width:18px;min-height:18px;border:none;border-radius:100%}#as3cf-settings.wpome a.help:active,#as3cf-settings.wpome a.help:focus,#as3cf-settings.wpome a.help:hover{-webkit-filter:brightness(90%);filter:brightness(90%);-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome a.help .icon.help{width:18px;height:18px;min-width:18px;min-height:18px;border:none;border-radius:100%}#as3cf-settings.wpome .icon.status{width:16px;height:16px}#as3cf-settings.wpome .icon.status:hover{-webkit-filter:brightness(90%);filter:brightness(90%)}#as3cf-settings.wpome .icon.close:hover{-webkit-filter:brightness(90%);filter:brightness(90%)}#as3cf-settings.wpome .icon.bucket{width:18px;height:18px;margin-right:1.4rem}#as3cf-settings.wpome .icon.region{width:18px;height:18px}#as3cf-settings.wpome .icon.notice-icon{width:24px;height:24px;margin-right:.8rem}#as3cf-settings.wpome .icon.notice-icon.assets-wizard{margin-top:-2px}#as3cf-settings.wpome label{font-size:.875rem;color:var(--as3cf-color-gray-900);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .disabled>label{cursor:default}#as3cf-settings.wpome input[type=checkbox],#as3cf-settings.wpome input[type=radio]{all:unset;-webkit-box-sizing:border-box;box-sizing:border-box;background:var(--as3cf-color-white);border:1px solid var(--as3cf-color-gray-400);width:18px;height:18px;min-width:18px;min-height:18px;margin:0 .85rem 0 0;padding:0}#as3cf-settings.wpome input[type=checkbox]:disabled,#as3cf-settings.wpome input[type=checkbox]:disabled:hover,#as3cf-settings.wpome input[type=radio]:disabled,#as3cf-settings.wpome input[type=radio]:disabled:hover{-webkit-box-shadow:none;box-shadow:none}#as3cf-settings.wpome input[type=checkbox]:disabled:checked,#as3cf-settings.wpome input[type=checkbox]:disabled:hover:checked,#as3cf-settings.wpome input[type=radio]:disabled:checked,#as3cf-settings.wpome input[type=radio]:disabled:hover:checked{color:var(--as3cf-color-gray-400);background-color:var(--as3cf-color-gray-200);border:1px solid var(--as3cf-color-gray-400)}#as3cf-settings.wpome input[type=checkbox]:disabled:hover:not(:checked),#as3cf-settings.wpome input[type=checkbox]:disabled:not(:checked),#as3cf-settings.wpome input[type=radio]:disabled:hover:not(:checked),#as3cf-settings.wpome input[type=radio]:disabled:not(:checked){background-color:var(--as3cf-color-gray-100);border:1px solid var(--as3cf-color-gray-300)}#as3cf-settings.wpome input[type=radio]{border-radius:100%}#as3cf-settings.wpome input[type=radio]:checked{border:1px solid var(--as3cf-color-secondary-700);background:var(--as3cf-color-secondary-500) url('data:image/svg+xml;utf8,') no-repeat center}#as3cf-settings.wpome input[type=radio]:checked:disabled{background-image:url('data:image/svg+xml;utf8,')}#as3cf-settings.wpome input[type=radio]:checked::before{content:none}#as3cf-settings.wpome input[type=radio]:hover{-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome input[type=radio]:hover:not(:checked){background-color:var(--as3cf-color-secondary-50)}#as3cf-settings.wpome input[type=checkbox]{border-radius:3px;margin-top:-2px}#as3cf-settings.wpome input[type=checkbox]:checked{background:var(--as3cf-color-secondary-500) url('data:image/svg+xml;utf8,') no-repeat center/75%;border:1px solid var(--as3cf-color-secondary-600)}#as3cf-settings.wpome input[type=checkbox]:checked:disabled{background-image:url('data:image/svg+xml;utf8,')}#as3cf-settings.wpome input[type=checkbox]:checked::before{content:none}#as3cf-settings.wpome input[type=checkbox]:hover{-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome input[type=checkbox]:hover:not(:checked){background-color:var(--as3cf-color-secondary-50)}#as3cf-settings.wpome .checkbox,#as3cf-settings.wpome .radio-btn{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:.75rem}#as3cf-settings.wpome .checkbox:last-of-type,#as3cf-settings.wpome .radio-btn:last-of-type{margin-bottom:0}#as3cf-settings.wpome .checkbox label{line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome input[type=text],#as3cf-settings.wpome textarea{background:var(--as3cf-color-white);border:1px solid var(--as3cf-color-gray-400);-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.05);box-shadow:0 2px 8px 0 rgba(0,0,0,.05);border-radius:8px;padding:.95rem 1rem;font-size:.875rem;color:var(--as3cf-color-gray-900);line-height:1.2;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}#as3cf-settings.wpome input[type=text].licence-field,#as3cf-settings.wpome textarea.licence-field{width:510px;margin-right:.75rem!important;letter-spacing:.75px}#as3cf-settings.wpome input[type=text].licence-field::-webkit-input-placeholder,#as3cf-settings.wpome textarea.licence-field::-webkit-input-placeholder{letter-spacing:.25px}#as3cf-settings.wpome input[type=text].licence-field::-moz-placeholder,#as3cf-settings.wpome textarea.licence-field::-moz-placeholder{letter-spacing:.25px}#as3cf-settings.wpome input[type=text].licence-field:-ms-input-placeholder,#as3cf-settings.wpome textarea.licence-field:-ms-input-placeholder{letter-spacing:.25px}#as3cf-settings.wpome input[type=text].licence-field::-ms-input-placeholder,#as3cf-settings.wpome textarea.licence-field::-ms-input-placeholder{letter-spacing:.25px}#as3cf-settings.wpome input[type=text].licence-field::placeholder,#as3cf-settings.wpome textarea.licence-field::placeholder{letter-spacing:.25px}#as3cf-settings.wpome textarea{line-height:1.3!important}#as3cf-settings.wpome textarea::-webkit-scrollbar{width:12px}#as3cf-settings.wpome textarea::-webkit-scrollbar-track{background:var(--as3cf-color-white);border-radius:6px}#as3cf-settings.wpome textarea::-webkit-scrollbar-corner{background-color:var(--as3cf-color-white);border-radius:6px}#as3cf-settings.wpome textarea::-webkit-resizer{background-color:var(--as3cf-color-white);border-radius:6px}#as3cf-settings.wpome textarea::-webkit-scrollbar-thumb{background-color:var(--as3cf-secondary-color);border:1px solid var(--as3cf-color-white);border-radius:5px}#as3cf-settings.wpome select{all:unset;background:var(--as3cf-color-white) url(../img/icon/arrow.svg) no-repeat calc(100% - 18px) 50%;border:1px solid var(--as3cf-color-gray-400);-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.05);box-shadow:0 2px 8px 0 rgba(0,0,0,.05);border-radius:8px;padding:0 1rem!important;font-size:.875rem!important;color:var(--as3cf-color-gray-900);line-height:1.2!important;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:46px!important;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome input::-webkit-input-placeholder,#as3cf-settings.wpome select::-webkit-input-placeholder,#as3cf-settings.wpome textarea::-webkit-input-placeholder{color:var(--as3cf-color-gray-500)}#as3cf-settings.wpome input::-moz-placeholder,#as3cf-settings.wpome select::-moz-placeholder,#as3cf-settings.wpome textarea::-moz-placeholder{color:var(--as3cf-color-gray-500)}#as3cf-settings.wpome input:-ms-input-placeholder,#as3cf-settings.wpome select:-ms-input-placeholder,#as3cf-settings.wpome textarea:-ms-input-placeholder{color:var(--as3cf-color-gray-500)}#as3cf-settings.wpome input::-ms-input-placeholder,#as3cf-settings.wpome select::-ms-input-placeholder,#as3cf-settings.wpome textarea::-ms-input-placeholder{color:var(--as3cf-color-gray-500)}#as3cf-settings.wpome input::placeholder,#as3cf-settings.wpome select::placeholder,#as3cf-settings.wpome textarea::placeholder{color:var(--as3cf-color-gray-500)}#as3cf-settings.wpome input:hover,#as3cf-settings.wpome select:hover,#as3cf-settings.wpome textarea:hover{border:1px solid var(--as3cf-color-gray-500)}#as3cf-settings.wpome input:active,#as3cf-settings.wpome input:focus,#as3cf-settings.wpome select:active,#as3cf-settings.wpome select:focus,#as3cf-settings.wpome textarea:active,#as3cf-settings.wpome textarea:focus{-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome input:disabled,#as3cf-settings.wpome select:disabled,#as3cf-settings.wpome textarea:disabled{cursor:default}#as3cf-settings.wpome input.disabled,#as3cf-settings.wpome select.disabled,#as3cf-settings.wpome textarea.disabled{color:var(--as3cf-color-gray-500);background-color:var(--as3cf-color-gray-100);border:1px solid var(--as3cf-color-gray-300);cursor:default}#as3cf-settings.wpome .input-label{font-size:.78125rem;color:var(--as3cf-color-gray-500);margin-bottom:.5rem;font-weight:400;text-transform:uppercase;letter-spacing:.3px}#as3cf-settings.wpome .input-error{color:var(--as3cf-wordpress-notice-error-color);font-weight:400}#as3cf-settings.wpome .panel div.setting .input-error{margin-left:5rem;margin-right:1.5rem;margin-bottom:1rem}#as3cf-settings.wpome .toggle-switch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .toggle-switch input[type=checkbox]{all:unset;height:0;width:0;border:none!important}#as3cf-settings.wpome .toggle-switch label{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-indent:-9999px;width:36px;height:20px;background:var(--as3cf-color-gray-400);border:none;border-radius:100px;display:block;position:relative}#as3cf-settings.wpome .toggle-switch label:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--as3cf-color-white);border-radius:100%;-webkit-transition:.3s;transition:.3s;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.06),0 1px 2px 0 rgba(0,0,0,.1);box-shadow:0 1px 2px 0 rgba(0,0,0,.06),0 1px 2px 0 rgba(0,0,0,.1)}#as3cf-settings.wpome .toggle-switch input:checked+label{background:var(--as3cf-complete-color);-webkit-transition:.3s;transition:.3s}#as3cf-settings.wpome .toggle-switch input:checked+label:after{left:calc(100% - 2px);-webkit-transform:translateX(-100%);transform:translateX(-100%)}#as3cf-settings.wpome .toggle-switch label:active:after{width:26px}#as3cf-settings.wpome .toggle-switch input:active+label,#as3cf-settings.wpome .toggle-switch input:focus+label{border:none;-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome .toggle-switch input:disabled+label{cursor:default;background:var(--as3cf-color-gray-300)}#as3cf-settings.wpome .toggle-switch input:disabled+label:after{background:var(--as3cf-color-gray-100)}#as3cf-settings.wpome>.header{padding:0 2rem;background-color:#ffe4cd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:96px}#as3cf-settings.wpome>.header .header-wrapper{width:1110px;max-width:1110px;height:100%;background-image:url(../img/brand/ome-branding-transparent.svg);background-repeat:no-repeat;background-size:contain;background-position:center top;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome>.header .header-wrapper h1{font-size:1.3125rem;font-weight:500;color:#490d32}#as3cf-settings.wpome>.header .header-wrapper .medallion{-webkit-filter:drop-shadow(0 1px 4px rgba(0, 0, 0, .15));filter:drop-shadow(0 1px 4px rgba(0, 0, 0, .15));margin-right:1rem;width:52px;height:52px}#as3cf-settings.wpome>.header .header-wrapper .licence{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-left:auto}#as3cf-settings.wpome>.header .header-wrapper .licence .licence-type{color:#eb422d;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}#as3cf-settings.wpome>.header .header-wrapper .licence .licence-type a{font-size:.825rem;font-weight:500;margin-left:.6rem;text-decoration:underline;color:var(--as3cf-color-primary-500)!important}#as3cf-settings.wpome>.header .header-wrapper .licence .licence-type a:hover{-webkit-filter:brightness(105%);filter:brightness(105%)}#as3cf-settings.wpome>.header .header-wrapper .licence p{font-size:.8125rem;color:#4d443d;margin:.5rem 0 0}#as3cf-settings.wpome>.header .header-wrapper a.button,#as3cf-settings.wpome>.header .header-wrapper button{text-transform:uppercase}#as3cf-settings.wpome div.nav{width:100%;margin:0 auto 2.5rem 0;background:var(--as3cf-color-white);border-bottom:1px solid var(--as3cf-wordpress-border-color)}#as3cf-settings.wpome div.nav div.items{max-width:1220px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;padding:0 2rem}#as3cf-settings.wpome div.nav div.items ul.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;margin:0;padding:1.5rem 2rem 0 0;font-size:.75rem;font-weight:500;text-transform:uppercase}#as3cf-settings.wpome div.nav div.items ul.nav li{margin-right:1.75rem;padding:.6rem .2rem .65rem;border-bottom:3px solid #fff}#as3cf-settings.wpome div.nav div.items ul.nav li a{color:var(--as3cf-color-gray-600);text-decoration:none}#as3cf-settings.wpome div.nav div.items ul.nav li a:hover{color:var(--as3cf-color-primary-600)}#as3cf-settings.wpome div.nav div.items ul.nav li a:focus{color:var(--as3cf-color-primary-600);-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-primary-400);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-primary-400);border-radius:3px;outline:0}#as3cf-settings.wpome div.nav div.items ul.nav li.focus,#as3cf-settings.wpome div.nav div.items ul.nav li.hover{border-bottom:3px solid var(--as3cf-color-gray-600)}#as3cf-settings.wpome div.nav div.items ul.nav li.active{border-bottom:3px solid var(--as3cf-color-primary-500)}#as3cf-settings.wpome div.nav div.items ul.nav li.active a{color:var(--as3cf-active-nav-color)}#as3cf-settings.wpome .subnav{display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:1px solid var(--as3cf-wordpress-border-color);padding:0;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;margin:0 0 3rem}#as3cf-settings.wpome .subnav.subpage{display:none}@media (max-width:1100px){#as3cf-settings.wpome .subnav.subpage{display:-webkit-box;display:-ms-flexbox;display:flex}}#as3cf-settings.wpome .subnav li{font-size:.875rem;font-weight:500;padding-bottom:1rem;margin:0 2rem 0 0}#as3cf-settings.wpome .subnav li.step-arrow{all:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:start;align-self:flex-start;margin:0 2rem 0 0}#as3cf-settings.wpome .subnav li a{color:var(--as3cf-color-gray-600);text-decoration:none}#as3cf-settings.wpome .subnav li a:hover{color:var(--as3cf-color-primary-600)}#as3cf-settings.wpome .subnav li a:focus{color:var(--as3cf-color-primary-600);-webkit-box-shadow:0 0 0 1.5px var(--as3cf-wordpress-background-color),0 0 0 3.5px var(--as3cf-color-primary-400);box-shadow:0 0 0 1.5px var(--as3cf-wordpress-background-color),0 0 0 3.5px var(--as3cf-color-primary-400);border-radius:3px;outline:0}#as3cf-settings.wpome .subnav li.focus,#as3cf-settings.wpome .subnav li.hover{border-bottom:3px solid var(--as3cf-color-gray-600)}#as3cf-settings.wpome .subnav li.active{border-bottom:3px solid var(--as3cf-color-primary-500)}#as3cf-settings.wpome .subnav li.active a{color:var(--as3cf-active-nav-color)}#as3cf-settings.wpome .lite-wrapper .subnav{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}#as3cf-settings.wpomepro>.header .header-wrapper{width:1220px;max-width:1220px}#as3cf-settings #global-animation-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto;cursor:pointer;text-decoration:none}#as3cf-settings #global-animation-wrapper:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}#as3cf-settings #global-animation-wrapper #animation-running{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}#as3cf-settings #global-animation-wrapper #animation-running .percentage{margin-right:58px;margin-top:-.7rem;text-transform:none;font-size:1.2rem;color:var(--as3cf-color-gray-900);font-weight:500;text-align:right}#as3cf-settings #global-animation-wrapper #animation-running span{font-size:.85rem}#as3cf-settings #global-animation-wrapper #animation-running img{position:absolute;right:0;top:-30px;height:42px}#as3cf-settings #global-animation-wrapper #animation-complete{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:-1.4rem}#as3cf-settings #global-animation-wrapper #animation-complete p{margin-right:15px;font-size:.8rem;text-transform:none;line-height:1}#as3cf-settings #global-animation-wrapper #animation-complete p.success{font-weight:400;text-decoration:none;color:var(--as3cf-color-gray-500)}#as3cf-settings #global-animation-wrapper #animation-complete p.error{font-weight:500;color:var(--as3cf-notice-error-color);text-decoration:underline}#as3cf-settings #global-animation-wrapper #animation-complete img{width:19px}#as3cf-settings.wpome .notifications.wrapper{margin:0 0 2rem 0}#as3cf-settings.wpome .notification{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0 0 .5rem 0;-webkit-box-shadow:0 2px 8px -5px rgba(50,50,93,.25),0 8px 5px -12px rgba(0,0,0,.3);box-shadow:0 2px 8px -5px rgba(50,50,93,.25),0 8px 5px -12px rgba(0,0,0,.3);border-radius:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .notification .content{-webkit-box-sizing:border-box;box-sizing:border-box;padding:10px 14px 10px 12px;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:14px}#as3cf-settings.wpome .notification .content div.icon.type{margin:0;padding:0;width:28px;height:28px;border-radius:6px;-webkit-box-flex:0;-ms-flex:0 0 28px;flex:0 0 28px;-ms-flex-item-align:start;align-self:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}#as3cf-settings.wpome .notification .content div.icon.type img.icon.type{width:16px;height:16px}#as3cf-settings.wpome .notification .content h3{margin:0 .5rem .5rem 0;font-size:.8125rem;line-height:1.3rem;font-weight:600;color:var(--as3cf-color-gray-900)}#as3cf-settings.wpome .notification .content p{margin:0 .5rem .5rem 0;font-size:.8125rem;line-height:1.3rem;color:var(--as3cf-color-gray-900)}#as3cf-settings.wpome .notification .content p li{list-style:disc}#as3cf-settings.wpome .notification .content p:last-of-type{margin-bottom:0}#as3cf-settings.wpome .notification .content code{padding:.05rem .4rem;margin:0 .1rem;border-radius:5px;line-height:1}#as3cf-settings.wpome .notification .content .body{margin:0;padding:0;width:100%;overflow-wrap:anywhere;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .notification .content .body .heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .notification .content .body .heading p{width:100%}#as3cf-settings.wpome .notification .content .body .heading .close{-webkit-box-flex:0;-ms-flex:0 0 16px;flex:0 0 16px;width:16px;height:16px;min-width:16px;min-height:16px;background:url(../img/icon/close.svg) no-repeat;border:none;border-radius:100%;cursor:pointer}#as3cf-settings.wpome .notification .content .body .links a{margin-right:.75rem}#as3cf-settings.wpome .notification.multiline .content{padding:14px 14px 14px 12px}#as3cf-settings.wpome .notification.multiline .content .body .heading .close{-ms-flex-item-align:first baseline;align-self:first baseline}#as3cf-settings.wpome .notification.inline.multiline .content{padding:16px;gap:16px}#as3cf-settings.wpome .notification.inline.multiline .content div.icon.type{margin-top:4px}#as3cf-settings.wpome .notification.expandable button{color:var(--as3cf-link-color);background-color:rgba(17,17,17,.04);border:1px solid rgba(17,17,17,.08)}#as3cf-settings.wpome .notification.expandable .heading{gap:8px}#as3cf-settings.wpome .notification.expandable .heading button.expandable{all:unset;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:22px;height:22px;min-width:22px;min-height:22px;background:rgba(17,17,17,.04) url(../img/icon/arrow.svg) no-repeat center/11px;border:1px solid rgba(17,17,17,.08);border-radius:11px;-webkit-filter:invert(27%) sepia(84%) saturate(1886%) hue-rotate(177deg) brightness(90%) contrast(103%);filter:invert(27%) sepia(84%) saturate(1886%) hue-rotate(177deg) brightness(90%) contrast(103%)}#as3cf-settings.wpome .notification.expandable .heading button.expandable.expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#as3cf-settings.wpome .notification.expandable .heading button.expandable:active,#as3cf-settings.wpome .notification.expandable .heading button.expandable:focus,#as3cf-settings.wpome .notification.expandable .heading button.expandable:hover{-webkit-filter:brightness(90%);filter:brightness(90%);-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome .notification.expandable.expanded .details{max-height:14.5rem;overflow-y:auto;margin:0;padding:0}#as3cf-settings.wpome .notification.expandable.expanded .details .item{margin:0;padding:1.5rem;line-height:1.4;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .notification.expandable.expanded .details .item .summary{margin-bottom:.75rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}#as3cf-settings.wpome .notification.expandable.expanded .details .item .summary .title{width:100%;font-weight:600}#as3cf-settings.wpome .notification.expandable.expanded .details .item ul.detail{margin:0;padding:0}#as3cf-settings.wpome .notification.expandable.expanded .details .item ul.detail>li{padding:.3rem 0 0;line-height:1.4}#as3cf-settings.wpome .notification.expandable button.dismiss{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:5px 10px;gap:4px;border-radius:6px}#as3cf-settings.wpome .notification.expandable button.dismiss:before{content:url(../img/icon/x.svg);width:7.5px}#as3cf-settings.wpome .notification button:active,#as3cf-settings.wpome .notification button:focus,#as3cf-settings.wpome .notification button:hover{-webkit-filter:brightness(90%);filter:brightness(90%);-webkit-box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);box-shadow:0 0 0 1.5px var(--as3cf-color-white),0 0 0 3.5px var(--as3cf-color-secondary-500);outline:0}#as3cf-settings.wpome .notification.info{background:var(--as3cf-notice-info-background-color);border:1px solid var(--as3cf-notice-info-border-color)}#as3cf-settings.wpome .notification.info div.icon.type{background:var(--as3cf-notice-info-color)}#as3cf-settings.wpome .notification.info.expandable.expanded .details .item{border-top:1px solid rgba(46,107,222,.16)}#as3cf-settings.wpome .notification.success{background:var(--as3cf-notice-success-background-color);border:1px solid var(--as3cf-notice-success-border-color)}#as3cf-settings.wpome .notification.success div.icon.type{background:var(--as3cf-notice-success-color)}#as3cf-settings.wpome .notification.success.expandable.expanded .details .item{border-top:1px solid rgba(232,99,94,.16)}#as3cf-settings.wpome .notification.warning{background:var(--as3cf-notice-warning-background-color);border:1px solid var(--as3cf-notice-warning-border-color)}#as3cf-settings.wpome .notification.warning div.icon.type{background:var(--as3cf-notice-warning-color)}#as3cf-settings.wpome .notification.warning code{background:var(--as3cf-notice-warning-code-background-color)}#as3cf-settings.wpome .notification.warning.expandable.expanded .details .item{border-top:1px solid rgba(99,185,105,.16)}#as3cf-settings.wpome .notification.error{background:var(--as3cf-notice-error-background-color);border:1px solid var(--as3cf-notice-error-border-color)}#as3cf-settings.wpome .notification.error div.icon.type{background:var(--as3cf-notice-error-color)}#as3cf-settings.wpome .notification.error.expandable.expanded .details .item{border-top:1px solid rgba(232,99,94,.16)}#as3cf-settings.wpome .notification.wordpress{background:var(--as3cf-color-white);border:1px solid var(--as3cf-wordpress-border-color)}#as3cf-settings.wpome .notification.wordpress.info{border-left:5px solid var(--as3cf-wordpress-notice-info-color)}#as3cf-settings.wpome .notification.wordpress.success{border-left:5px solid var(--as3cf-wordpress-notice-success-color)}#as3cf-settings.wpome .notification.wordpress.warning{border-left:5px solid var(--as3cf-wordpress-notice-warning-color)}#as3cf-settings.wpome .notification.wordpress.error{border-left:5px solid var(--as3cf-wordpress-notice-error-color)}#as3cf-settings.wpome .delivery.aws .gradient{background:linear-gradient(225deg,rgba(255,213,213,.5) 0,rgba(255,213,213,0) 50%)}#as3cf-settings.wpome .delivery.cloudflare .gradient{background:linear-gradient(225deg,rgba(255,221,192,.5) 0,rgba(255,221,192,0) 50%)}#as3cf-settings.wpome .delivery.do .gradient{background:linear-gradient(225deg,rgba(205,230,255,.5) 0,rgba(205,230,255,0) 50%)}#as3cf-settings.wpome .delivery.gcp .gradient{background:linear-gradient(225deg,rgba(226,226,226,.5) 0,rgba(226,226,226,0) 50%)}#as3cf-settings.wpome .delivery.keycdn .gradient{background:linear-gradient(225deg,rgba(4,122,237,.16) 0,rgba(4,122,237,0) 50%)}#as3cf-settings.wpome .delivery.other .gradient{background:linear-gradient(225deg,rgba(228,234,241,.5) 0,rgba(228,234,241,0) 50%)}#as3cf-settings.wpome .delivery.stackpath .gradient{background:linear-gradient(225deg,rgba(226,226,226,.5) 0,rgba(226,226,226,0) 50%)}#as3cf-settings.wpome .storage.aws .gradient{background:linear-gradient(225deg,rgba(255,214,197,.5) 0,rgba(255,214,197,0) 50%)}#as3cf-settings.wpome .storage.do .gradient{background:linear-gradient(225deg,rgba(205,230,255,.5) 0,rgba(205,230,255,0) 50%)}#as3cf-settings.wpome .storage.gcp .gradient{background:linear-gradient(225deg,rgba(226,226,226,.5) 0,rgba(226,226,226,0) 50%)}#as3cf-settings.wpome .as3cf-sidebar{width:292px;min-width:292px;height:-webkit-max-content;height:-moz-max-content;height:max-content;margin-left:2.75rem;margin-top:-.5rem}#as3cf-settings.wpome .as3cf-sidebar.lite{background:#fff;border-radius:7px;border:1px solid #d9e1eb;overflow:hidden;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}#as3cf-settings.wpome .as3cf-sidebar .block{padding:20px;border:1px solid #ccc}#as3cf-settings.wpome .as3cf-sidebar .subscribe{border-top:none;text-align:center;padding:40px 20px}#as3cf-settings.wpome .as3cf-sidebar .subscribe h2{padding:0;margin:0;margin-bottom:.5em;color:#666;font-size:17px;line-height:1.2em;float:none;text-transform:none;font-weight:500}#as3cf-settings.wpome .as3cf-sidebar .subscribe .button{width:100%!important;margin:1rem auto;text-transform:uppercase;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center!important}#as3cf-settings.wpome .as3cf-sidebar .subscribe p{margin:0}#as3cf-settings.wpome .as3cf-sidebar .subscribe .discount-applied{color:rgba(0,0,0,.4);font-size:12px;line-height:1.4em;margin-top:10px}#as3cf-settings.wpome .as3cf-sidebar .credits{border-top:0;background:#2e2e31;text-align:center;padding:10px}#as3cf-settings.wpome .as3cf-sidebar .credits h4{font-size:11px;font-weight:400;color:rgba(255,255,255,.7);margin-top:0;margin-bottom:10px}#as3cf-settings.wpome .as3cf-sidebar .credits ul{display:inline-block;margin:0;padding:0}#as3cf-settings.wpome .as3cf-sidebar .credits li{overflow:hidden}#as3cf-settings.wpome .as3cf-sidebar .credits li:last-child{margin-bottom:0}#as3cf-settings.wpome .as3cf-sidebar .credits img{display:inline-block;vertical-align:middle;margin-right:8px}#as3cf-settings.wpome .as3cf-sidebar .credits span{display:inline-block;vertical-align:middle;font-size:12px;line-height:24px}#as3cf-settings.wpome .as3cf-sidebar .credits a{display:block;text-decoration:none;color:#fff;font-size:12px;text-align:center}#as3cf-settings.wpome .as3cf-sidebar .credits a:hover{color:rgba(255,255,255,.7)}@media screen and (max-width:1052px){#as3cf-settings.wpome .as3cf-sidebar{position:relative;top:auto;right:auto}}#as3cf-settings.wpome .as3cf-active-bucket,#as3cf-settings.wpome .as3cf-active-provider{font-weight:700;margin-right:10px}#as3cf-settings.wpome .as3cf-banner{width:292px;height:156px;display:block;background:#f8cfae url(../img/sidebar/os3-banner.svg) left bottom/100% no-repeat}#as3cf-settings.wpome .as3cf-banner:focus{-webkit-box-shadow:none;box-shadow:none}#as3cf-settings.wpome .as3cf-upgrade-details{background-color:#4e0d33;padding:10px 20px 20px 20px;color:#eee;font-size:12.5px;display:block;text-decoration:none}#as3cf-settings.wpome .as3cf-upgrade-details h1{font-size:27px;color:#f8cfae;margin:0 0 15px 0;padding:0;font-weight:300;line-height:1}#as3cf-settings.wpome .as3cf-upgrade-details h2{font-size:15px;color:#f8cfae;margin:0 0 30px 0;font-weight:600;line-height:20px}#as3cf-settings.wpome .as3cf-upgrade-details p{margin:0}#as3cf-settings.wpome .as3cf-upgrade-details a{color:#eee;font-weight:700;text-decoration:none;font-size:16px;-webkit-box-shadow:none;box-shadow:none}#as3cf-settings.wpome .as3cf-upgrade-details a:hover{color:#fff}#as3cf-settings.wpome .as3cf-upgrade-details ul{margin:0!important;padding:0;list-style:none}#as3cf-settings.wpome .as3cf-upgrade-details ul li{margin-bottom:15px;line-height:18px;padding-left:25px;background:url(../img/sidebar/item-checked.svg) left center no-repeat}#as3cf-settings.wpome a,#as3cf-settings.wpome button,#as3cf-settings.wpome h1,#as3cf-settings.wpome h2,#as3cf-settings.wpome h3,#as3cf-settings.wpome h4,#as3cf-settings.wpome h5,#as3cf-settings.wpome input,#as3cf-settings.wpome li,#as3cf-settings.wpome p,#as3cf-settings.wpome pre,#as3cf-settings.wpome select,#as3cf-settings.wpome span,#as3cf-settings.wpome textarea{letter-spacing:.25px;line-height:1;margin:0}#as3cf-settings.wpome li{list-style:none}#as3cf-settings.wpome .semibold{font-weight:600}#as3cf-settings.wpome .bold{font-weight:700}#as3cf-settings.wpome p{font-size:.875rem;color:var(--as3cf-color-gray-900);font-weight:400}#as3cf-settings.wpome h2{font-size:1.0625rem;color:#617385;text-transform:uppercase;font-weight:400}#as3cf-settings.wpome .page-title{margin-bottom:3rem}#as3cf-settings.wpome a[target=_blank]:not(.help):not(.licence):not(.email):after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"\f504";display:inline-block;font-family:dashicons,emoji;font-size:larger;text-decoration:none;vertical-align:sub;margin-left:.2rem;margin-right:-1rem}#as3cf-settings.wpome .link{font-size:.8125rem;color:#0073aa}#as3cf-settings.wpome .link:hover{-webkit-filter:brightness(115%);filter:brightness(115%)}#as3cf-settings.wpome pre,#as3cf-settings.wpome textarea.pre{background:var(--as3cf-code-background);border:1px solid #d2cfcf;border-radius:6px;padding:1rem 1.2rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:.8125rem;line-height:1.6;color:var(--as3cf-color-white);font-weight:400;margin:0 0 1.5rem;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;overflow-y:scroll}#as3cf-settings.wpome pre::-webkit-scrollbar,#as3cf-settings.wpome textarea.pre::-webkit-scrollbar{width:12px}#as3cf-settings.wpome pre::-webkit-scrollbar-track,#as3cf-settings.wpome textarea.pre::-webkit-scrollbar-track{background:var(--as3cf-code-background);border-radius:6px}#as3cf-settings.wpome pre::-webkit-scrollbar-corner,#as3cf-settings.wpome textarea.pre::-webkit-scrollbar-corner{background-color:var(--as3cf-code-background);border-radius:6px}#as3cf-settings.wpome pre::-webkit-resizer,#as3cf-settings.wpome textarea.pre::-webkit-resizer{background-color:var(--as3cf-code-background);border-radius:6px}#as3cf-settings.wpome pre::-webkit-scrollbar-thumb,#as3cf-settings.wpome textarea.pre::-webkit-scrollbar-thumb{background-color:var(--as3cf-secondary-color);border:1px solid var(--as3cf-code-background);border-radius:5px}#as3cf-settings.wpome .page-wrapper .page-title{margin-bottom:2.6rem}#as3cf-settings.wpome .lite-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:1110px}@media (max-width:1024px){#as3cf-settings.wpome .lite-wrapper .as3cf-sidebar{display:none}}#as3cf-settings.wpome .lite-wrapper .page-wrapper{width:840px}#as3cf-settings.wpome .lite-wrapper .page-wrapper.media{width:780px;max-width:780px}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .panel{width:100%;max-width:780px}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .delivery-settings{margin:0;display:none}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .delivery-settings.active{display:-webkit-box;display:-ms-flexbox;display:flex}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .storage-settings{margin:0;display:none}#as3cf-settings.wpome .lite-wrapper .media-page.wrapper .storage-settings.active{display:-webkit-box;display:-ms-flexbox;display:flex}#as3cf-settings.wpome .lite-wrapper .panel.url-preview{width:100%;max-width:780px}#as3cf-settings.wpome .lite-wrapper .fixed-cta-block .buttons{width:calc(1110px + 4rem);max-width:calc(1110px + 4rem)}@media screen and (max-width:1024px){#as3cf-settings.wpome .lite-wrapper .fixed-cta-block .buttons{max-width:calc(780px + 4rem)}}#as3cf-settings.wpome .media-page.wrapper{margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}@media (max-width:1100px){#as3cf-settings.wpome .media-page.wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}@media (max-width:1100px){#as3cf-settings.wpome .media-page.wrapper .panel{max-width:100%}}#as3cf-settings.wpome .media-page.wrapper .delivery-settings,#as3cf-settings.wpome .media-page.wrapper .storage-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .media-page.wrapper .storage-settings{margin:0 2rem 0 0}@media (max-width:1100px){#as3cf-settings.wpome .media-page.wrapper .storage-settings{margin:0;display:none}#as3cf-settings.wpome .media-page.wrapper .storage-settings.active{display:-webkit-box;display:-ms-flexbox;display:flex}}#as3cf-settings.wpome .media-page.wrapper .delivery-settings{margin:0 0 0 2rem}@media (max-width:1100px){#as3cf-settings.wpome .media-page.wrapper .delivery-settings{margin:0;display:none}#as3cf-settings.wpome .media-page.wrapper .delivery-settings.active{display:-webkit-box;display:-ms-flexbox;display:flex}}#as3cf-settings.wpome .subpage.page-wrapper,#as3cf-settings.wpome .subpage.wrapper{margin:0;max-width:840px}#as3cf-settings.wpome .storage-page.wrapper .panel.multi .panel-container .panel-row.tab-buttons{gap:1.5rem;-ms-flex-wrap:wrap;flex-wrap:wrap}#as3cf-settings.wpome .storage-page.wrapper .panel.multi .panel-container .panel-row.tab-buttons .button-tab{margin:0;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row{margin-bottom:1.25rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row:last-of-type{margin-bottom:0}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab{width:12rem}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab.active~p,#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .button-tab:not(.btn-disabled):hover~p{font-weight:600;opacity:1}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row p{margin:0}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .private-media,#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .speed{margin-left:1.5rem;opacity:.7;font-size:.8125rem}#as3cf-settings.wpome .delivery-provider-settings-page.wrapper .panel.multi .panel-container .panel-row.delivery-provider-buttons .row .help{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex}#as3cf-settings.wpome .licence-page.wrapper{margin:0 0 2rem;max-width:700px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}#as3cf-settings.wpome .licence-page.wrapper.defined{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:.5rem}#as3cf-settings.wpome .licence-page.wrapper.defined .wp-config{margin-left:0;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}#as3cf-settings.wpome .support-page.wrapper{margin:0;max-width:960px}#as3cf-settings.wpome .support-page.wrapper .columns{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#as3cf-settings.wpome .support-page.wrapper .licence-type{margin-bottom:3rem}#as3cf-settings.wpome .support-page.wrapper .licence-type span{font-weight:700;color:var(--as3cf-color-primary-500)}#as3cf-settings.wpome .support-page.wrapper .lite-support{margin-bottom:2rem}#as3cf-settings.wpome .support-page.wrapper .lite-support p{line-height:1.8;font-weight:400}#as3cf-settings.wpome .assets-page.wrapper{margin:0;max-width:840px}#as3cf-settings.wpome .assets-page.wrapper .assets-panel{padding:.45rem 0;max-width:640px}#as3cf-settings.wpome .assets-page.wrapper .notice{margin-right:auto}#as3cf-settings.wpome .assets-page.wrapper .notice-qsg{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}#as3cf-settings.wpome .assets-page.wrapper .settings{margin-bottom:2rem;max-width:100%}#as3cf-settings.wpome .assets-page.wrapper .panel-row.status{padding:1.75rem 0 0 4rem!important;height:-webkit-max-content;height:-moz-max-content;height:max-content}#as3cf-settings.wpome .assets-page.wrapper .panel-row.status img{width:18px;height:18px}#as3cf-settings.wpome .assets-page.wrapper .panel-row.status h4{margin-left:.8rem}#as3cf-settings.wpome .assets-page.wrapper .panel-row.status p{margin:0!important}#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:.7rem 0 0 4.7rem!important;height:-webkit-max-content;height:-moz-max-content;height:max-content}#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked p{font-size:.75rem;margin:0!important}#as3cf-settings.wpome .assets-page.wrapper .panel-row.last-checked a{margin-left:1rem;text-decoration:underline}#as3cf-settings.wpome .tools-page.wrapper{margin:0;max-width:760px}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel{padding:0 0 .45rem}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header{height:4.5rem!important}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header img{margin-right:2rem}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header button{margin-left:auto}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.header .emoji-party{font-size:28px}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body{padding:1.6rem 2.6rem 1.6rem 6.1rem}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar{margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status h4{font-size:.8125rem;color:var(--as3cf-color-gray-900);font-weight:400;margin:0;opacity:80%}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .status h4 strong{font-size:1.0625rem;font-weight:600;opacity:100%}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .indicator,#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress{height:8px;border-radius:8px}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress{width:100%;background:#e9e9ef;margin-top:1rem}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe.animate,#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe>.indicator.animate{background-size:30px 30px;background-image:linear-gradient(135deg,rgba(255,255,255,.15) 0,rgba(255,255,255,.15) 25%,rgba(255,255,255,0) 25%,rgba(255,255,255,0) 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,rgba(255,255,255,0) 75%,rgba(255,255,255,0) 100%);-webkit-animation:progress 5s linear infinite;animation:progress 5s linear infinite}@-webkit-keyframes progress{from{background-position:0 0}to{background-position:-60px -60px}}@keyframes progress{from{background-position:0 0}to{background-position:-60px -60px}}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress.stripe.animate{background-color:var(--as3cf-secondary-color)}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator{display:block;background-color:var(--as3cf-color-primary-500);width:40%}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator.running{background-color:var(--as3cf-color-secondary-500)}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.body.progress-bar .progress .indicator.complete{background-color:var(--as3cf-complete-color);width:100%}#as3cf-settings.wpome .tools-page.wrapper .panel.multi .panel-container.tools-panel .panel-row.desc{font-size:.8125rem;color:var(--as3cf-color-gray-500);line-height:1.65}#as3cf-settings.wpome .panel.url-preview{max-width:100%}#as3cf-settings.wpome .panel.url-preview .panel-row.desc p{font-size:.8125rem;color:var(--as3cf-color-gray-600);line-height:1.625;margin:1.5rem 0 0}@supports (contain:inline-size){#as3cf-settings.wpome .panel.url-preview .panel-row.body{contain:inline-size}}#as3cf-settings.wpome .panel.url-preview .panel-row dl{margin:1rem -1.5rem;padding:0 1.5rem 1rem;display:-webkit-box;display:-ms-flexbox;display:flex;gap:.5rem;overflow-x:auto}#as3cf-settings.wpome .panel.url-preview .panel-row dl div{margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:2px;background:#e1e5e9;border-radius:6px}#as3cf-settings.wpome .panel.url-preview .panel-row dl div dt{margin:0;padding:.5rem 1rem .375rem;white-space:nowrap;font-weight:510}#as3cf-settings.wpome .panel.url-preview .panel-row dl div dd{margin:0;padding:.407rem 1rem;white-space:nowrap;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch;background:#fafafa;border:1px solid #cbd5e0;border-radius:6px;font-weight:400;font-size:.75rem}@supports not (contain:inline-size){#as3cf-settings.wpome .panel.url-preview .panel-row dl{contain:size;width:100%;height:68px}}#as3cf-settings.wpome .panel{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:575px;margin-bottom:3rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#as3cf-settings.wpome .panel .heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:.5rem}#as3cf-settings.wpome .panel h3{font-size:.9375rem;color:var(--as3cf-color-gray-900);font-weight:500;margin:0 0 1.25rem}#as3cf-settings.wpome .panel .notification.inline{margin-left:5rem;margin-right:1.5rem}#as3cf-settings.wpome .panel .panel-container{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:var(--as3cf-color-white);border:1px solid var(--as3cf-wordpress-border-color);-webkit-box-shadow:0 1px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.03);box-shadow:0 1px 8px 0 rgba(0,0,0,.05),0 2px 1px 0 rgba(0,0,0,.03);border-radius:6px}#as3cf-settings.wpome .panel .panel-container .panel-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 1.5rem}#as3cf-settings.wpome .panel .panel-container .panel-row.header{height:6rem;border-bottom:1px solid var(--as3cf-separator-color)}#as3cf-settings.wpome .panel .panel-container .panel-row.footer{border-top:1px solid var(--as3cf-separator-color)}#as3cf-settings.wpome .panel .panel-container .panel-row h4{font-size:.875rem;font-weight:500;color:var(--as3cf-color-gray-800);margin-left:1rem;margin-right:auto}#as3cf-settings.wpome .panel .panel-container .panel-row .link{font-size:.8125rem;text-align:right;line-height:1.5;margin-left:auto;font-weight:500}#as3cf-settings.wpome .panel .panel-container .panel-row .link+.help{margin-left:1rem}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option{margin-top:1.5rem}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option h4{margin:0 0 0 var(--as3cf-settings-option-indent)}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option a{margin-left:auto}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc{padding-right:var(--as3cf-settings-option-indent-right)}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc p{font-size:.8125rem;color:var(--as3cf-color-gray-600);line-height:1.625;margin-left:calc(var(--as3cf-settings-ctrl-width) + var(--as3cf-settings-option-indent));margin-top:.57rem;margin-bottom:.75rem}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input{padding-right:var(--as3cf-settings-option-indent-right)}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input input[type=text]{margin-left:calc(var(--as3cf-settings-ctrl-width) + var(--as3cf-settings-option-indent));margin-bottom:1.2rem;width:100%}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.input input[type=text]+label{visibility:collapse}#as3cf-settings.wpome .panel .panel-container .setting.nested{margin:0 0 .125rem 5.25rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:2px dotted #c2cbd3}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row{height:-webkit-max-content;height:-moz-max-content;height:max-content;margin-bottom:0}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row img{margin-left:auto}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row h4{margin:0}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.option{margin-top:1rem}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.desc{height:-webkit-max-content;height:-moz-max-content;height:max-content;padding:.4rem 2.25rem .85rem 1.65rem}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.desc p{font-size:.8125rem;color:var(--as3cf-color-gray-600);line-height:1.625;margin:0}#as3cf-settings.wpome .panel .panel-container .setting.nested .panel-row.input input[type=text]{margin-left:var(--as3cf-settings-input-indent)}#as3cf-settings.wpome .panel .panel-container .setting:last-of-type{margin-bottom:.75rem}#as3cf-settings.wpome .panel .panel-container hr{height:1px;width:100%;border:0;margin:0;background:var(--as3cf-separator-color)}#as3cf-settings.wpome .panel.multi{max-width:840px;margin-bottom:2rem}#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-switch{margin-right:1.25rem}#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-reveal label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}#as3cf-settings.wpome .panel.multi .panel-container.toggle-header .toggle-reveal a{margin-left:.3rem;display:contents}#as3cf-settings.wpome .panel.multi .panel-container .panel-row{height:auto}#as3cf-settings.wpome .panel.multi .panel-container .panel-row h3{margin:0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row p:last-of-type{margin-bottom:0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header{height:4rem;display:-webkit-box;display:-ms-flexbox;display:flex}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header a{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .provider img{width:24px;height:24px;margin-right:.5rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.header .wp-config+.provider{margin-left:1rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body{padding:2.5rem;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .row{margin:0;width:100%}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .row.radio-btns{margin-bottom:2.2rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-desc{margin:-.35rem 0 1.25rem 2rem;font-size:12px;font-weight:500;line-height:1.4;opacity:.75}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body.access-keys>p{margin-bottom:1.5rem!important}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body input[type=text],#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body textarea{width:100%;margin-bottom:1.5rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-name,#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .cdn-name{width:100%}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body p{margin:0 0 1.5rem;line-height:1.5}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body p:last-of-type{margin-bottom:0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .link{text-decoration:underline}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab img{width:24px;height:24px;margin-right:.9rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab .checkmark{width:16px;height:16px;position:absolute;right:-19px;top:-5px}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .button-tab p{font-weight:500;margin-bottom:0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn{margin-bottom:.8rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn:last-of-type{margin-bottom:0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .radio-btn.list{margin:0 1.5rem 0 0}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list{background:var(--as3cf-color-white);border:1px solid var(--as3cf-wordpress-border-color);-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.05);box-shadow:0 2px 8px 0 rgba(0,0,0,.05);border-radius:6px;width:100%;max-width:580px;padding:0 .4rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:260px;overflow-y:scroll;-webkit-box-sizing:border-box;box-sizing:border-box}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.78rem 1.4rem;background:#f6f7f8;border-radius:4px;margin:0 0 .3rem;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-ms-flex:none;flex:none}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row.active{background:rgba(236,112,94,.1);border:1px solid var(--as3cf-color-primary-500);border-radius:4px}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:first-of-type{margin-top:.4rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:last-of-type{margin-bottom:.4rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row:nth-child(even){background:var(--as3cf-color-white)}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row p{margin:0;font-size:.84375rem}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row .status{margin-left:auto}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .bucket-list .row.nothing-found{cursor:default;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .new-bucket-details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;margin-right:1.8rem;-webkit-box-flex:5;-ms-flex:5;flex:5}#as3cf-settings.wpome .panel.multi .panel-container .panel-row.body .region{width:30%;-webkit-box-flex:3;-ms-flex:3;flex:3;margin-left:auto;margin-bottom:1.5rem;-webkit-box-sizing:border-box;box-sizing:border-box}#as3cf-settings.wpome p.wp-config{margin-left:auto;padding:.4rem .75rem;color:var(--as3cf-color-gray-500)!important;background:rgba(113,135,154,.15)!important;border:1px solid rgba(113,135,154,.15)!important;border-radius:5px;font-size:.84375rem;font-weight:500;white-space:nowrap}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.option p.wp-config+a{margin-left:1rem}#as3cf-settings.wpome .panel .panel-container .setting .panel-row.desc p.wp-config{margin-right:0}#as3cf-settings.wpome .panel .panel-container .setting .panel-row label.input-label p.wp-config{text-transform:none;padding:.2rem .5rem}#as3cf-settings.wpome .notice{all:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:rgba(56,125,189,.1);border:1px solid #afc8ed;border-radius:5px;padding:.8rem 1.25rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .notice a,#as3cf-settings.wpome .notice p{margin:0!important}#as3cf-settings.wpome .notice a{display:inline-block;text-decoration:underline;font-size:.875rem!important}#as3cf-settings.wpome .notice-qsg p a{padding-right:1rem}#as3cf-settings.wpome .support-form{width:600px}#as3cf-settings.wpome .support-form input[type=text],#as3cf-settings.wpome .support-form select,#as3cf-settings.wpome .support-form textarea{width:100%;margin-bottom:1rem}#as3cf-settings.wpome .support-form textarea{margin-bottom:1.5rem}#as3cf-settings.wpome .support-form .note{font-size:.78125rem;color:var(--as3cf-color-gray-500);margin-bottom:2.5rem;line-height:1.5}#as3cf-settings.wpome .support-form .note.first{margin-bottom:.5rem}#as3cf-settings.wpome .support-form .actions{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;margin-bottom:2rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#as3cf-settings.wpome .support-form .actions .btn-primary{margin-left:auto}#as3cf-settings.wpome .diagnostic-info{max-width:600px;padding:.25rem 0}#as3cf-settings.wpome .diagnostic-info pre{height:14.375rem;white-space:pre-wrap;word-break:keep-all}#as3cf-settings.wpome .diagnostic-info hr{background:#d3d7db;height:3px;width:100%;border:0;margin-bottom:3rem}#as3cf-settings.wpome .diagnostic-info .btn-outline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-left:auto;width:-webkit-max-content;width:-moz-max-content;width:max-content}#as3cf-settings.wpome .documentation{background:#e4e5e7;border:1px solid var(--as3cf-wordpress-border-color);-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.05);box-shadow:0 2px 8px 0 rgba(0,0,0,.05);border-radius:6px;padding:2.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:1.4rem 0 0 3rem;height:-webkit-max-content;height:-moz-max-content;height:max-content;width:240px;-webkit-box-sizing:border-box;box-sizing:border-box}#as3cf-settings.wpome .documentation h3{font-size:1.03125rem;color:var(--as3cf-color-gray-900);letter-spacing:.15px;font-weight:500;margin:0 0 2.25rem}#as3cf-settings.wpome .documentation a{font-size:.875rem;margin-bottom:1.25rem}#as3cf-settings.wpome .documentation a:last-of-type{margin-bottom:0}#as3cf-settings.wpome .upsell.panel{max-width:840px}#as3cf-settings.wpome .upsell .panel-container{padding:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:linear-gradient(136.01deg,rgba(255,228,205,.7) .94%,#fff 33.33%)}#as3cf-settings.wpome .upsell .branding{background:url(../img/brand/upsell-bunny.svg) no-repeat left bottom;min-width:280px;border-radius:5px;margin-right:-1.25rem}@media (max-width:840px){#as3cf-settings.wpome .upsell .branding{display:none}}#as3cf-settings.wpome .upsell .button{margin:1rem auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center!important}:root{--as3cf-code-type:consolas,monospace;--as3cf-color-white:#FFF;--as3cf-color-black:#000;--as3cf-color-gray-50:#FCFDFD;--as3cf-color-gray-100:#F9FAFB;--as3cf-color-gray-200:#F2F4F7;--as3cf-color-gray-300:#EAECF0;--as3cf-color-gray-400:#D0D5DD;--as3cf-color-gray-500:#98A2B3;--as3cf-color-gray-600:#667085;--as3cf-color-gray-700:#344054;--as3cf-color-gray-800:#1D2939;--as3cf-color-gray-900:#101828;--as3cf-color-primary-50:#FDF1EF;--as3cf-color-primary-100:#FBE2DF;--as3cf-color-primary-200:#F7C6BF;--as3cf-color-primary-300:#F4A99E;--as3cf-color-primary-400:#F08D7E;--as3cf-color-primary-500:#EC705E;--as3cf-color-primary-600:#C15B4C;--as3cf-color-primary-700:#96453A;--as3cf-color-primary-800:#6B3027;--as3cf-color-primary-900:#401A15;--as3cf-color-secondary-50:#EFF8FF;--as3cf-color-secondary-100:#D1E9FF;--as3cf-color-secondary-200:#B2DDFF;--as3cf-color-secondary-300:#84CAFF;--as3cf-color-secondary-400:#52B1FD;--as3cf-color-secondary-500:#2C90FA;--as3cf-color-secondary-600:#1270EF;--as3cf-color-secondary-700:#155CD3;--as3cf-color-secondary-800:#1749A9;--as3cf-color-secondary-900:#184185;--as3cf-secondary-color:#D8DDE2;--as3cf-text-disabled:#98A2B3;--as3cf-code-background:#102B44;--as3cf-separator-color:#EBEFF3;--as3cf-complete-color:#5BCB86;--as3cf-active-nav-color:#4E0D34;--as3cf-link-color:#0073AA;--as3cf-wordpress-background-color:#F1F1F1;--as3cf-wordpress-border-color:#D6D6D6;--as3cf-wordpress-notice-info-color:#02A0D2;--as3cf-notice-info-color:#2D69DA;--as3cf-notice-info-border-color:#2E6BDE;--as3cf-notice-info-background-color:#E7EFF9;--as3cf-wordpress-notice-success-color:#45B450;--as3cf-notice-success-color:#52AA59;--as3cf-notice-success-border-color:#63B969;--as3cf-notice-success-background-color:#EDF7EF;--as3cf-wordpress-notice-warning-color:#FFBA00;--as3cf-notice-warning-color:#F49C53;--as3cf-notice-warning-border-color:#E29936;--as3cf-notice-warning-background-color:#FDF8EB;--as3cf-notice-warning-code-background-color:#FCECC6;--as3cf-wordpress-notice-error-color:#DD3232;--as3cf-notice-error-color:#DA5A39;--as3cf-notice-error-border-color:#E8635E;--as3cf-notice-error-background-color:#F7EEEB;--as3cf-settings-ctrl-width:36px;--as3cf-settings-option-indent:1.2rem;--as3cf-settings-input-indent:0;--as3cf-settings-option-indent-right:2.25rem}body.settings_page_amazon-s3-and-cloudfront{background:var(--as3cf-wordpress-background-color)}body.settings_page_amazon-s3-and-cloudfront #wpcontent{padding-left:0!important}body.settings_page_amazon-s3-and-cloudfront #wpcontent #wpbody #wpbody-content>.notice{display:none}body.settings_page_amazon-s3-and-cloudfront #wpcontent #wpbody #wpbody-content .wpome .wpome-wrapper{max-width:1220px;margin:0 2rem 3rem 2rem}body.settings_page_amazon-s3-and-cloudfront #wpfooter{z-index:-2}.locked{opacity:.55}.flex-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.align-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important} \ No newline at end of file diff --git a/assets/css/styles.css b/assets/css/styles.css deleted file mode 100644 index 28c91ebb..00000000 --- a/assets/css/styles.css +++ /dev/null @@ -1 +0,0 @@ -.as3cf-content,.as3cf-updated,.as3cf-compatibility-notice{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.settings_page_amazon-s3-and-cloudfront .error,.settings_page_amazon-s3-and-cloudfront .notice,.settings_page_amazon-s3-and-cloudfront .updated{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:650px}.as3cf-main.wrap{position:relative}.as3cf-main.wrap>h1{float:left}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .as3cf-updated,.as3cf-main.wrap .as3cf-error{-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-error.fatal{clear:both}.as3cf-main.wrap h2.nav-tab-wrapper{float:none;margin-bottom:15px;width:650px;margin-top:10px;padding:9px 0 0 5px}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container{float:right}.as3cf-main.wrap h2.nav-tab-wrapper .nav-tab-container :last-child{margin-right:5px}.as3cf-main.wrap h2.nav-tab-wrapper a.nav-tab-active{color:#464646;cursor:default}.as3cf-main.wrap h2.nav-tab-wrapper a:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-main.wrap .more-info{white-space:nowrap}.as3cf-main.wrap .error pre{background:#eaeaea;background:rgba(0,0,0,0.07);display:block;padding:10px 15px}.as3cf-main.wrap .error pre code{padding:0;background:none}.as3cf-main.wrap[data-tab="support"] .as3cf-notice,.as3cf-main.wrap[data-tab="support"] .error,.as3cf-main.wrap[data-tab="support"] .updated,.as3cf-main.wrap[data-tab="support"] .updated.show{display:none}.as3cf-main.wrap[data-tab="support"] .fatal .error,.as3cf-main.wrap[data-tab="support"] .as3cf-notice.important,.as3cf-main.wrap[data-tab="support"] .dbrains-api-down{display:block}.as3cf-main.wrap .as3cf-notice,.as3cf-main.wrap .error,.as3cf-main.wrap .updated{max-width:650px;margin-top:15px;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-main.wrap .as3cf-updated{display:none}.as3cf-main.wrap .as3cf-updated.as3cf-notice,.as3cf-main.wrap .as3cf-updated.show{display:block}.as3cf-main.wrap .alignleft{margin-right:20px;margin-bottom:20px}.as3cf-main.wrap .spinner{min-width:20px}.as3cf-tab .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab .as3cf-main-settings .as3cf-bucket-container h3,.as3cf-tab .as3cf-main-settings .as3cf-change-bucket-access-prompt h3{margin-bottom:-0.5em}.as3cf-tab .as3cf-main-settings a.as3cf-change-provider{display:none}.as3cf-tab .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-provider-select{display:block}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-needs-access-keys .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-can-write-error,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-bucket-container{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-needs-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings,.as3cf-tab.as3cf-has-access-keys.as3cf-change-bucket:not(.as3cf-change-provider) .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-bucket-access .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-can-write-error{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-delivery-provider-select{display:block}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket.as3cf-change-delivery-provider .as3cf-main-settings .as3cf-media-settings{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-bucket-container{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-change-bucket-access-prompt{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-delivery-provider-select{display:none}.as3cf-tab.as3cf-has-access-keys.as3cf-has-bucket:not(.as3cf-change-provider):not(.as3cf-change-bucket):not(.as3cf-change-bucket-access):not(.as3cf-change-delivery-provider) .as3cf-main-settings .as3cf-media-settings{display:block}.as3cf-content>section{margin-bottom:20px}.as3cf-content>section+section.as3cf-access-keys{padding-top:20px;border-top:1px solid #d3d3d3}.as3cf-content>section+section.as3cf-access-keys .as3cf-section-heading{margin-top:0}.as3cf-tab{display:none;position:relative;width:650px}.as3cf-tab .as3cf-main-settings p{font-size:13px}.as3cf-tab .as3cf-main-settings p a{color:#444}.as3cf-tab .object-prefix-desc em{white-space:nowrap}.as3cf-tab .as3cf-url-preview-wrap{background:#fff;text-align:center;padding:20px 0 0;max-width:650px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.as3cf-tab .as3cf-url-preview-wrap .as3cf-url-preview{margin-top:10px;padding:0 20px 10px;overflow-x:scroll}.as3cf-tab .as3cf-url-preview-wrap span{color:#aaa;text-transform:uppercase;font-weight:bold}.as3cf-tab .as3cf-radio-group label{display:block;margin-bottom:10px}.as3cf-tab .as3cf-radio-group label.disabled,.as3cf-tab .as3cf-radio-group label.disabled p{color:#bbb;cursor:default}.as3cf-tab .as3cf-radio-group p{padding-left:25px;color:#6b6b6b;margin:0;font-size:12px}.as3cf-tab .as3cf-radio-group p.as3cf-setting{margin-top:5px}.as3cf-tab .as3cf-switch{position:relative;display:inline-block;padding:2px;overflow:hidden;border-radius:2px;background-color:#d4d3d3;cursor:pointer}.as3cf-tab .as3cf-switch.on{background-color:#ade7b5}.as3cf-tab .as3cf-switch span{visibility:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;display:inline-block;height:100%;font-size:12px;line-height:20px;border-radius:2px;font-weight:bold;padding:4px 8px;background:#fff;color:#8d8d8d;z-index:1}.as3cf-tab .as3cf-switch span.on{color:#82d78b}.as3cf-tab .as3cf-switch span.checked{visibility:visible}.as3cf-tab .as3cf-switch.disabled{cursor:default;background:#e6e6e6}.as3cf-tab .as3cf-switch.disabled span{background:#f1f1f1;color:#d6d6d6}.as3cf-tab .as3cf-switch input[type="checkbox"]{position:absolute !important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.as3cf-tab .as3cf-setting.hide{display:none}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-sub-setting-heading{padding-top:15px}.as3cf-tab .as3cf-setting .as3cf-sub-setting .as3cf-defined-in-config{margin-top:15px}.as3cf-tab div.as3cf-setting{margin-top:4px}.as3cf-tab h3{font-weight:normal;text-transform:uppercase}.as3cf-tab .form-table{margin:0}.as3cf-tab .form-table tr.as3cf-border-bottom td{border-bottom:1px solid #ddd;padding:20px 0px}.as3cf-tab .form-table tr.as3cf-setting-title td{padding-bottom:0}.as3cf-tab .form-table tr.as3cf-setting-title:first-child td{padding-top:20px}.as3cf-tab .form-table tr.configure-url:first-child td{padding-top:5px;padding-bottom:0}.as3cf-tab .form-table tr.hide{display:none}.as3cf-tab .form-table tr td{padding:15px 0}.as3cf-tab .form-table tr td:first-child{vertical-align:top;min-width:120px;padding-top:20px}.as3cf-tab .form-table tr td .as3cf-notice:last-child{margin-bottom:0}.as3cf-tab .form-table tr td>p:first-child{margin-top:0}.as3cf-tab .form-table h3{padding:0;margin:0}.as3cf-tab .form-table h4{margin:0}.as3cf-tab .as3cf-active-region{font-style:italic}.as3cf-tab .as3cf-view-bucket{color:#444;text-decoration:none;margin-right:10px}.as3cf-tab .as3cf-view-bucket:hover,.as3cf-tab .as3cf-view-bucket:active{color:#00a0d2}.as3cf-tab .as3cf-view-bucket:focus{-webkit-box-shadow:none;box-shadow:none}.as3cf-tab .as3cf-view-bucket .dashicons-external{margin-top:-2px}.as3cf-tab .tooltip{position:relative;z-index:2;cursor:pointer}.as3cf-tab .tooltip:before,.as3cf-tab .tooltip:after{visibility:hidden;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);opacity:0;pointer-events:none}.as3cf-tab .tooltip:before{position:absolute;bottom:150%;left:50%;margin-bottom:5px;margin-left:-250px;padding:10px;width:500px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,0.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:14px;line-height:1.3}.as3cf-tab .tooltip:after{position:absolute;bottom:150%;left:50%;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,0.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}.as3cf-tab .tooltip:hover:before,.as3cf-tab .tooltip:hover:after{visibility:visible;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.as3cf-tab .as3cf-defined-in-config{background:#ccc;color:#fff;padding:2px 5px;margin:0 0 3px 5px;float:right;white-space:nowrap;clear:right}.as3cf-tab .as3cf-defined-setting,.as3cf-tab .as3cf-locked-setting{color:#bbb}.as3cf-tab .as3cf-defined-setting label,.as3cf-tab .as3cf-locked-setting label{cursor:default}.as3cf-tab .as3cf-defined-setting p .more-info a,.as3cf-tab .as3cf-locked-setting p .more-info a{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-radio-group p,.as3cf-tab .as3cf-locked-setting .as3cf-radio-group p{color:#bbb}.as3cf-tab .as3cf-defined-setting .as3cf-notice,.as3cf-tab .as3cf-locked-setting .as3cf-notice{display:none !important}.as3cf-tab p.actions{margin:30px 0;border-top:1px solid #ccc;padding-top:15px}.as3cf-tab p.actions button,.as3cf-tab p.actions .right{float:right;margin-left:15px;margin-right:0;min-width:90px}.as3cf-tab p.actions button:last-of-type,.as3cf-tab p.actions .right:last-of-type{margin-left:0}.as3cf-tab p.actions span{display:inline-block;margin-right:20px;line-height:28px}.as3cf-tab .locked .as3cf-radio-group label,.as3cf-tab .locked .as3cf-radio-group label p{color:#bbb;cursor:default}.as3cf-tab .locked .as3cf-switch{cursor:default;background:#e6e6e6}.as3cf-tab .locked .as3cf-switch span{background:#f1f1f1;color:#d6d6d6}#tab-media{display:block}#tab-media .as3cf-provider-setting td{padding-top:20px;padding-bottom:5px}#tab-media .as3cf-bucket-setting td{padding:5px 0}.as3cf-bucket-container h3{line-height:1.3;text-transform:none}.as3cf-bucket-container a:focus{-webkit-box-shadow:none;box-shadow:none;outline:none}.as3cf-bucket-container input[type=text]{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.as3cf-bucket-container select{-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.as3cf-bucket-container .form-table .as3cf-provider-setting h4{font-weight:inherit;margin:0}.as3cf-bucket-container .form-table .as3cf-bucket-list{margin:5px 0 0 0}.as3cf-bucket-container .form-table td{padding:5px 0}.as3cf-bucket-container .form-table td:first-child{width:100px;line-height:30px;vertical-align:top}.as3cf-bucket-container .form-table td .as3cf-defined-in-config{margin-top:-1.75em}.as3cf-bucket-container .as3cf-bucket-list{padding:15px;max-height:200px;overflow-x:hidden;overflow-y:auto;background-color:#fff;font-size:14px}.as3cf-bucket-container .as3cf-bucket-list li:last-of-type{margin-bottom:0}.as3cf-bucket-container .as3cf-bucket-list a{color:#444;text-decoration:none}.as3cf-bucket-container .as3cf-bucket-list a:hover{color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a.selected{font-weight:bold;color:#0074a2}.as3cf-bucket-container .as3cf-bucket-list a .dashicons{margin-right:5px}.as3cf-change-bucket-access-prompt h3{line-height:1.3;text-transform:none}.as3cf-change-bucket-access-prompt .as3cf-radio-group{margin-bottom:25px}.as3cf-change-bucket-access-prompt .note{color:#999}.as3cf-delivery-provider-select h3{line-height:1.3;text-transform:none}.as3cf-delivery-provider-select .note{color:#999}#tab-media{display:block}#tab-support{min-height:900px}#tab-support .as3cf-sidebar{top:11px}#tab-support .support-section{border-bottom:1px solid #ccc;padding-bottom:20px;margin-bottom:20px}#tab-support .support-section h3{font-size:20px}#tab-support .debug textarea{width:100%;min-height:200px;font-family:Consolas, Monaco, monospace;margin-bottom:5px}.as3cf-sidebar{position:absolute;top:9px;left:670px;width:292px}.as3cf-sidebar.lite{margin-top:35px;background:white;border-radius:7px;border:1px solid #D9E1EB;overflow:hidden;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.1);box-shadow:0 1px 2px 0 rgba(0,0,0,0.1)}.as3cf-sidebar .block{padding:20px;border:1px solid #ccc}.as3cf-sidebar .subscribe{border-top:none;text-align:center;padding:40px 20px}.as3cf-sidebar .subscribe h2{padding:0;margin:0;margin-bottom:0.5em;color:#666;font-size:17px;line-height:1.2em;float:none}.as3cf-sidebar .subscribe h3{font-size:16px;margin:20px 0 0}.as3cf-sidebar .subscribe h3 a{background-color:#E9715E;color:white;display:inline-block;font-size:13px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;padding:15px 50px;border-radius:4px;margin-bottom:6px;text-decoration:none;-webkit-box-shadow:0 2px 0 #C6442F;box-shadow:0 2px 0 #C6442F}.as3cf-sidebar .subscribe h3 a:hover{color:rgba(78,13,51,0.65)}.as3cf-sidebar .subscribe p{margin:0}.as3cf-sidebar .subscribe .discount-applied{color:rgba(0,0,0,0.4);font-size:12px;line-height:1.4em;margin-top:10px}.as3cf-sidebar .credits{border-top:0;background:#2E2E31;text-align:center;padding:10px}.as3cf-sidebar .credits h4{font-size:11px;font-weight:normal;color:rgba(255,255,255,0.7);margin-top:0;margin-bottom:10px}.as3cf-sidebar .credits ul{display:inline-block;margin:0}.as3cf-sidebar .credits li{overflow:hidden}.as3cf-sidebar .credits li:last-child{margin-bottom:0}.as3cf-sidebar .credits img{display:inline-block;vertical-align:middle;margin-right:8px}.as3cf-sidebar .credits span{display:inline-block;vertical-align:middle;font-size:12px;line-height:24px}.as3cf-sidebar .credits a{display:block;text-decoration:none;color:white;font-size:12px;text-align:center}.as3cf-sidebar .credits a:hover{color:rgba(255,255,255,0.7)}@media screen and (max-width: 1052px){.as3cf-sidebar{position:relative;top:auto;right:auto}}.as3cf-active-provider,.as3cf-active-bucket{font-weight:bold;margin-right:10px}.as3cf-banner{width:292px;height:156px;display:block;background:#f8cfae url(../img/os3-banner.svg) left bottom/100% no-repeat}.as3cf-banner:focus{-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details{background-color:#4e0d33;padding:10px 20px 20px 20px;color:#eee;font-size:13px;margin:0;display:block;text-decoration:none}.wrap .as3cf-upgrade-details h1{font-size:27px;color:#f8cfae;margin:0 0 15px 0;padding:0;font-weight:300;line-height:1}.wrap .as3cf-upgrade-details h2{font-size:15px;color:#F8CFAE;margin:0 0 30px 0;font-weight:500;line-height:20px}.wrap .as3cf-upgrade-details p{margin:0}.wrap .as3cf-upgrade-details a{color:#eee;font-weight:bold;text-decoration:none;font-size:16px;-webkit-box-shadow:none;box-shadow:none}.wrap .as3cf-upgrade-details a:hover{color:#fff}.wrap .as3cf-upgrade-details ul{margin:0;list-style:none}.wrap .as3cf-upgrade-details ul li{margin-bottom:15px;line-height:18px;padding-left:25px;background:url(../img/icon-checked.svg) left center no-repeat}.as3cf-compatibility-notice.error{clear:both;margin:5px 20px 5px 0}.as3cf-bucket-error span.title{font-weight:bold}.as3cf-invalid-bucket-name,.as3cf-validation-error{display:block;margin-top:2px;font-size:12px;color:#a00}.as3cf-notice-toggle-content{max-height:100px;overflow-y:scroll}.as3cf-notice-toggle-content .as3cf-notice-toggle-list{margin-top:0;margin-left:0;padding-left:40px;color:#dc3232}.as3cf-need-help{background-color:white;font-size:16px;font-weight:bold;padding:1em}.as3cf-need-help a{text-decoration:none}.as3cf-settings h3{font-size:20px}.as3cf-settings p{font-size:14px}.as3cf-addons,.as3cf-tab .as3cf-compatibility-notice{max-width:cover}textarea.as3cf-access-key-constants-snippet.code{width:100%;white-space:pre;overflow:hidden;font-size:12px;padding:10px;height:53px}.as3cf-addons .as3cf-addons-list{margin:20px 0 200px;padding-top:5px}.as3cf-addons .as3cf-addon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:20px;font-size:14px}.as3cf-addons .as3cf-addon-info{min-height:100px}.as3cf-addons .as3cf-addon-links{float:right}.as3cf-addons .as3cf-addon-links span{padding:4px 6px}.as3cf-addons .as3cf-addon-icon{float:left;margin-right:20px}.as3cf-addons .as3cf-addon-details{white-space:nowrap}.as3cf-addons .as3cf-addon-title,.as3cf-addons .as3cf-addon-description{font-weight:100}.as3cf-addons .as3cf-addon+.as3cf-addon{margin-top:20px}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull{background-color:#0769ad;color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-title,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .as3cf-addon-description,.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull a{color:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra{background:white}.as3cf-addons .as3cf-addon.amazon-s3-and-cloudfront-assets-pull .extra a{color:#0769ad;text-decoration:none} diff --git a/assets/img/as3cf-banner-bw.jpg b/assets/img/as3cf-banner-bw.jpg deleted file mode 100644 index 8ee652bf..00000000 Binary files a/assets/img/as3cf-banner-bw.jpg and /dev/null differ diff --git a/assets/img/as3cf-banner-bw@2x.jpg b/assets/img/as3cf-banner-bw@2x.jpg deleted file mode 100644 index f91757aa..00000000 Binary files a/assets/img/as3cf-banner-bw@2x.jpg and /dev/null differ diff --git a/assets/img/as3cf-banner.jpg b/assets/img/as3cf-banner.jpg deleted file mode 100644 index bf2124f8..00000000 Binary files a/assets/img/as3cf-banner.jpg and /dev/null differ diff --git a/assets/img/as3cf-banner@2x.jpg b/assets/img/as3cf-banner@2x.jpg deleted file mode 100644 index f45a6d35..00000000 Binary files a/assets/img/as3cf-banner@2x.jpg and /dev/null differ diff --git a/assets/img/aws-logo.svg b/assets/img/aws-logo.svg deleted file mode 100644 index f7cba68a..00000000 --- a/assets/img/aws-logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/assets/img/brand/default.svg b/assets/img/brand/default.svg new file mode 100644 index 00000000..c31f3218 --- /dev/null +++ b/assets/img/brand/default.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/img/brand/ome-branding-transparent.svg b/assets/img/brand/ome-branding-transparent.svg new file mode 100644 index 00000000..dd2f7131 --- /dev/null +++ b/assets/img/brand/ome-branding-transparent.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/img/brand/ome-medallion.svg b/assets/img/brand/ome-medallion.svg new file mode 100644 index 00000000..f61c82b4 --- /dev/null +++ b/assets/img/brand/ome-medallion.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/brand/upsell-bunny.svg b/assets/img/brand/upsell-bunny.svg new file mode 100644 index 00000000..21fa58dd --- /dev/null +++ b/assets/img/brand/upsell-bunny.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/do-logo.svg b/assets/img/do-logo.svg deleted file mode 100644 index 42b3f3f7..00000000 --- a/assets/img/do-logo.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/assets/img/gcp-logo.svg b/assets/img/gcp-logo.svg deleted file mode 100644 index 9ff0c310..00000000 --- a/assets/img/gcp-logo.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/assets/img/icon-assets-pull.svg b/assets/img/icon-assets-pull.svg deleted file mode 100644 index 4b66e973..00000000 --- a/assets/img/icon-assets-pull.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - Untitled - Created with Sketch. - - - - - \ No newline at end of file diff --git a/assets/img/icon/arrow.svg b/assets/img/icon/arrow.svg new file mode 100644 index 00000000..cc9c0e2c --- /dev/null +++ b/assets/img/icon/arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/assets-wizard.svg b/assets/img/icon/assets-wizard.svg new file mode 100644 index 00000000..69b85577 --- /dev/null +++ b/assets/img/icon/assets-wizard.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/bucket-round.svg b/assets/img/icon/bucket-round.svg new file mode 100644 index 00000000..a698e78b --- /dev/null +++ b/assets/img/icon/bucket-round.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/img/icon/bucket.svg b/assets/img/icon/bucket.svg new file mode 100644 index 00000000..bb025102 --- /dev/null +++ b/assets/img/icon/bucket.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/check.svg b/assets/img/icon/check.svg new file mode 100644 index 00000000..22a50109 --- /dev/null +++ b/assets/img/icon/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/close.svg b/assets/img/icon/close.svg new file mode 100644 index 00000000..1cea6fdc --- /dev/null +++ b/assets/img/icon/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/css.svg b/assets/img/icon/css.svg new file mode 100644 index 00000000..da932b19 --- /dev/null +++ b/assets/img/icon/css.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/dot.svg b/assets/img/icon/dot.svg new file mode 100644 index 00000000..8885aa46 --- /dev/null +++ b/assets/img/icon/dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/download.svg b/assets/img/icon/download.svg new file mode 100644 index 00000000..930b12fc --- /dev/null +++ b/assets/img/icon/download.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/error.svg b/assets/img/icon/error.svg new file mode 100644 index 00000000..5f746176 --- /dev/null +++ b/assets/img/icon/error.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/img/icon/fonts.svg b/assets/img/icon/fonts.svg new file mode 100644 index 00000000..2e4fa80d --- /dev/null +++ b/assets/img/icon/fonts.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/help.svg b/assets/img/icon/help.svg new file mode 100644 index 00000000..0c36dea7 --- /dev/null +++ b/assets/img/icon/help.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/info.svg b/assets/img/icon/info.svg new file mode 100644 index 00000000..38085f43 --- /dev/null +++ b/assets/img/icon/info.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/js.svg b/assets/img/icon/js.svg new file mode 100644 index 00000000..8b6e32cd --- /dev/null +++ b/assets/img/icon/js.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/licence-checked.svg b/assets/img/icon/licence-checked.svg new file mode 100644 index 00000000..4fc3bbcd --- /dev/null +++ b/assets/img/icon/licence-checked.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/icon/notification-error.svg b/assets/img/icon/notification-error.svg new file mode 100644 index 00000000..7e725188 --- /dev/null +++ b/assets/img/icon/notification-error.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/notification-info.svg b/assets/img/icon/notification-info.svg new file mode 100644 index 00000000..08d386ba --- /dev/null +++ b/assets/img/icon/notification-info.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/notification-locked.svg b/assets/img/icon/notification-locked.svg new file mode 100644 index 00000000..c8d10688 --- /dev/null +++ b/assets/img/icon/notification-locked.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/notification-success.svg b/assets/img/icon/notification-success.svg new file mode 100644 index 00000000..dac41e88 --- /dev/null +++ b/assets/img/icon/notification-success.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/notification-warning.svg b/assets/img/icon/notification-warning.svg new file mode 100644 index 00000000..320f7636 --- /dev/null +++ b/assets/img/icon/notification-warning.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/offload-complete.svg b/assets/img/icon/offload-complete.svg new file mode 100644 index 00000000..89dfebbd --- /dev/null +++ b/assets/img/icon/offload-complete.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/img/icon/offload-remaining.svg b/assets/img/icon/offload-remaining.svg new file mode 100644 index 00000000..bb400542 --- /dev/null +++ b/assets/img/icon/offload-remaining.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/aws-round.svg b/assets/img/icon/provider/delivery/aws-round.svg new file mode 100644 index 00000000..ff2a4e83 --- /dev/null +++ b/assets/img/icon/provider/delivery/aws-round.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/aws.svg b/assets/img/icon/provider/delivery/aws.svg new file mode 100644 index 00000000..f3bdd5e5 --- /dev/null +++ b/assets/img/icon/provider/delivery/aws.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/cdn-round.svg b/assets/img/icon/provider/delivery/cdn-round.svg new file mode 100644 index 00000000..2060de19 --- /dev/null +++ b/assets/img/icon/provider/delivery/cdn-round.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/img/icon/provider/delivery/cdn.svg b/assets/img/icon/provider/delivery/cdn.svg new file mode 100644 index 00000000..c054f051 --- /dev/null +++ b/assets/img/icon/provider/delivery/cdn.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/provider/delivery/cloudflare-round.svg b/assets/img/icon/provider/delivery/cloudflare-round.svg new file mode 100644 index 00000000..6eac1786 --- /dev/null +++ b/assets/img/icon/provider/delivery/cloudflare-round.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/cloudflare.svg b/assets/img/icon/provider/delivery/cloudflare.svg new file mode 100644 index 00000000..e19d3418 --- /dev/null +++ b/assets/img/icon/provider/delivery/cloudflare.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/provider/delivery/do-round.svg b/assets/img/icon/provider/delivery/do-round.svg new file mode 100644 index 00000000..e29eda7c --- /dev/null +++ b/assets/img/icon/provider/delivery/do-round.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/provider/delivery/do.svg b/assets/img/icon/provider/delivery/do.svg new file mode 100644 index 00000000..606105e6 --- /dev/null +++ b/assets/img/icon/provider/delivery/do.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/provider/delivery/gcp-round.svg b/assets/img/icon/provider/delivery/gcp-round.svg new file mode 100644 index 00000000..ec582348 --- /dev/null +++ b/assets/img/icon/provider/delivery/gcp-round.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/gcp.svg b/assets/img/icon/provider/delivery/gcp.svg new file mode 100644 index 00000000..92e63a13 --- /dev/null +++ b/assets/img/icon/provider/delivery/gcp.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/provider/delivery/keycdn.svg b/assets/img/icon/provider/delivery/keycdn.svg new file mode 100644 index 00000000..b4ce9937 --- /dev/null +++ b/assets/img/icon/provider/delivery/keycdn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/other-round.svg b/assets/img/icon/provider/delivery/other-round.svg new file mode 100644 index 00000000..2060de19 --- /dev/null +++ b/assets/img/icon/provider/delivery/other-round.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/img/icon/provider/delivery/other.svg b/assets/img/icon/provider/delivery/other.svg new file mode 100644 index 00000000..c054f051 --- /dev/null +++ b/assets/img/icon/provider/delivery/other.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/provider/delivery/stackpath-round.svg b/assets/img/icon/provider/delivery/stackpath-round.svg new file mode 100644 index 00000000..0752d3c3 --- /dev/null +++ b/assets/img/icon/provider/delivery/stackpath-round.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/img/icon/provider/delivery/stackpath.svg b/assets/img/icon/provider/delivery/stackpath.svg new file mode 100644 index 00000000..6a6239b7 --- /dev/null +++ b/assets/img/icon/provider/delivery/stackpath.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/provider/storage/aws-link.svg b/assets/img/icon/provider/storage/aws-link.svg new file mode 100644 index 00000000..4dd39dfa --- /dev/null +++ b/assets/img/icon/provider/storage/aws-link.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/provider/storage/aws-round.svg b/assets/img/icon/provider/storage/aws-round.svg new file mode 100644 index 00000000..63a8d951 --- /dev/null +++ b/assets/img/icon/provider/storage/aws-round.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/provider/storage/aws.svg b/assets/img/icon/provider/storage/aws.svg new file mode 100644 index 00000000..f782be3d --- /dev/null +++ b/assets/img/icon/provider/storage/aws.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/provider/storage/do-link.svg b/assets/img/icon/provider/storage/do-link.svg new file mode 100644 index 00000000..ceff8ae7 --- /dev/null +++ b/assets/img/icon/provider/storage/do-link.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/provider/storage/do-round.svg b/assets/img/icon/provider/storage/do-round.svg new file mode 100644 index 00000000..e29eda7c --- /dev/null +++ b/assets/img/icon/provider/storage/do-round.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/provider/storage/do.svg b/assets/img/icon/provider/storage/do.svg new file mode 100644 index 00000000..606105e6 --- /dev/null +++ b/assets/img/icon/provider/storage/do.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/provider/storage/gcp-link.svg b/assets/img/icon/provider/storage/gcp-link.svg new file mode 100644 index 00000000..9652d676 --- /dev/null +++ b/assets/img/icon/provider/storage/gcp-link.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/icon/provider/storage/gcp-round.svg b/assets/img/icon/provider/storage/gcp-round.svg new file mode 100644 index 00000000..ec582348 --- /dev/null +++ b/assets/img/icon/provider/storage/gcp-round.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/img/icon/provider/storage/gcp.svg b/assets/img/icon/provider/storage/gcp.svg new file mode 100644 index 00000000..92e63a13 --- /dev/null +++ b/assets/img/icon/provider/storage/gcp.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/img/icon/region-round.svg b/assets/img/icon/region-round.svg new file mode 100644 index 00000000..095f75a2 --- /dev/null +++ b/assets/img/icon/region-round.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/img/icon/region.svg b/assets/img/icon/region.svg new file mode 100644 index 00000000..ffb05f88 --- /dev/null +++ b/assets/img/icon/region.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/img/icon/remove-from-bucket.svg b/assets/img/icon/remove-from-bucket.svg new file mode 100644 index 00000000..50808b35 --- /dev/null +++ b/assets/img/icon/remove-from-bucket.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/remove-from-server.svg b/assets/img/icon/remove-from-server.svg new file mode 100644 index 00000000..9747a052 --- /dev/null +++ b/assets/img/icon/remove-from-server.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/icon/stars.svg b/assets/img/icon/stars.svg new file mode 100644 index 00000000..c883e072 --- /dev/null +++ b/assets/img/icon/stars.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icon/subnav-arrow.svg b/assets/img/icon/subnav-arrow.svg new file mode 100644 index 00000000..a3385005 --- /dev/null +++ b/assets/img/icon/subnav-arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon/tool-analyzerepair-active.svg b/assets/img/icon/tool-analyzerepair-active.svg new file mode 100644 index 00000000..de3e4f02 --- /dev/null +++ b/assets/img/icon/tool-analyzerepair-active.svg @@ -0,0 +1,16 @@ + + + icon/tools/tool-analyzerepeair-active + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-analyzerepair-default.svg b/assets/img/icon/tool-analyzerepair-default.svg new file mode 100644 index 00000000..24b51a71 --- /dev/null +++ b/assets/img/icon/tool-analyzerepair-default.svg @@ -0,0 +1,16 @@ + + + icon/tools/tool-analyzerepeair-default + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-analyzerepair-paused.svg b/assets/img/icon/tool-analyzerepair-paused.svg new file mode 100644 index 00000000..49d37d24 --- /dev/null +++ b/assets/img/icon/tool-analyzerepair-paused.svg @@ -0,0 +1,18 @@ + + + icon/tools/tool-analyzerepeair-paused + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-analyzerepair-running-animated.svg b/assets/img/icon/tool-analyzerepair-running-animated.svg new file mode 100644 index 00000000..5813d9c0 --- /dev/null +++ b/assets/img/icon/tool-analyzerepair-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-clean-active.svg b/assets/img/icon/tool-clean-active.svg new file mode 100644 index 00000000..7f21874d --- /dev/null +++ b/assets/img/icon/tool-clean-active.svg @@ -0,0 +1,17 @@ + + + icon/tools/tool-clean-active + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-clean-default.svg b/assets/img/icon/tool-clean-default.svg new file mode 100644 index 00000000..39e57901 --- /dev/null +++ b/assets/img/icon/tool-clean-default.svg @@ -0,0 +1,12 @@ + + + icon/tools/tool-clean-default + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-clean-paused.svg b/assets/img/icon/tool-clean-paused.svg new file mode 100644 index 00000000..db58d0aa --- /dev/null +++ b/assets/img/icon/tool-clean-paused.svg @@ -0,0 +1,14 @@ + + + icon/tools/tool-clean-paused + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-clean-running-animated.svg b/assets/img/icon/tool-clean-running-animated.svg new file mode 100644 index 00000000..b8987f11 --- /dev/null +++ b/assets/img/icon/tool-clean-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-download-active.svg b/assets/img/icon/tool-download-active.svg new file mode 100644 index 00000000..c98677cb --- /dev/null +++ b/assets/img/icon/tool-download-active.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-download-active + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-download-default.svg b/assets/img/icon/tool-download-default.svg new file mode 100644 index 00000000..b6df6be3 --- /dev/null +++ b/assets/img/icon/tool-download-default.svg @@ -0,0 +1,8 @@ + + + icon/tools/tool-download-default + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-download-paused.svg b/assets/img/icon/tool-download-paused.svg new file mode 100644 index 00000000..6b4d036b --- /dev/null +++ b/assets/img/icon/tool-download-paused.svg @@ -0,0 +1,10 @@ + + + icon/tools/tool-download-paused + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-download-running-animated.svg b/assets/img/icon/tool-download-running-animated.svg new file mode 100644 index 00000000..01f9104a --- /dev/null +++ b/assets/img/icon/tool-download-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-generic-active.svg b/assets/img/icon/tool-generic-active.svg new file mode 100644 index 00000000..af1b0adc --- /dev/null +++ b/assets/img/icon/tool-generic-active.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-generic-active + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-generic-default.svg b/assets/img/icon/tool-generic-default.svg new file mode 100644 index 00000000..34238bd6 --- /dev/null +++ b/assets/img/icon/tool-generic-default.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-generic-default + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-generic-paused.svg b/assets/img/icon/tool-generic-paused.svg new file mode 100644 index 00000000..61348e36 --- /dev/null +++ b/assets/img/icon/tool-generic-paused.svg @@ -0,0 +1,13 @@ + + + icon/tools/tool-generic-paused + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-generic-running-animated.svg b/assets/img/icon/tool-generic-running-animated.svg new file mode 100644 index 00000000..50d3bf98 --- /dev/null +++ b/assets/img/icon/tool-generic-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-move-active.svg b/assets/img/icon/tool-move-active.svg new file mode 100644 index 00000000..6e93b76d --- /dev/null +++ b/assets/img/icon/tool-move-active.svg @@ -0,0 +1,8 @@ + + + icon/tools/tool-move-active + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-move-default.svg b/assets/img/icon/tool-move-default.svg new file mode 100644 index 00000000..480be1da --- /dev/null +++ b/assets/img/icon/tool-move-default.svg @@ -0,0 +1,8 @@ + + + icon/tools/tool-move-default + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-move-paused.svg b/assets/img/icon/tool-move-paused.svg new file mode 100644 index 00000000..b30d094d --- /dev/null +++ b/assets/img/icon/tool-move-paused.svg @@ -0,0 +1,10 @@ + + + icon/tools/tool-move-paused + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-move-running-animated.svg b/assets/img/icon/tool-move-running-animated.svg new file mode 100644 index 00000000..98bffba8 --- /dev/null +++ b/assets/img/icon/tool-move-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-offload-active.svg b/assets/img/icon/tool-offload-active.svg new file mode 100644 index 00000000..1bf8d9a0 --- /dev/null +++ b/assets/img/icon/tool-offload-active.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-offload-active + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-offload-default.svg b/assets/img/icon/tool-offload-default.svg new file mode 100644 index 00000000..3d86e162 --- /dev/null +++ b/assets/img/icon/tool-offload-default.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-offload-default + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-offload-paused.svg b/assets/img/icon/tool-offload-paused.svg new file mode 100644 index 00000000..500d328b --- /dev/null +++ b/assets/img/icon/tool-offload-paused.svg @@ -0,0 +1,13 @@ + + + icon/tools/tool-offload-paused + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-offload-running-animated.svg b/assets/img/icon/tool-offload-running-animated.svg new file mode 100644 index 00000000..dd6a2c1e --- /dev/null +++ b/assets/img/icon/tool-offload-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-remove-active.svg b/assets/img/icon/tool-remove-active.svg new file mode 100644 index 00000000..f21fd98b --- /dev/null +++ b/assets/img/icon/tool-remove-active.svg @@ -0,0 +1,9 @@ + + + icon/tools/tool-remove-active + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-remove-default.svg b/assets/img/icon/tool-remove-default.svg new file mode 100644 index 00000000..435bde50 --- /dev/null +++ b/assets/img/icon/tool-remove-default.svg @@ -0,0 +1,9 @@ + + + icon/tools/tool-remove-default + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-remove-paused.svg b/assets/img/icon/tool-remove-paused.svg new file mode 100644 index 00000000..e2b04acb --- /dev/null +++ b/assets/img/icon/tool-remove-paused.svg @@ -0,0 +1,11 @@ + + + icon/tools/tool-remove-paused + + + + + + + + \ No newline at end of file diff --git a/assets/img/icon/tool-remove-running-animated.svg b/assets/img/icon/tool-remove-running-animated.svg new file mode 100644 index 00000000..9153e113 --- /dev/null +++ b/assets/img/icon/tool-remove-running-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-status-error-animated.svg b/assets/img/icon/tool-status-error-animated.svg new file mode 100644 index 00000000..61e56911 --- /dev/null +++ b/assets/img/icon/tool-status-error-animated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/icon/tool-status-success-animated.svg b/assets/img/icon/tool-status-success-animated.svg new file mode 100644 index 00000000..9a55c4ed --- /dev/null +++ b/assets/img/icon/tool-status-success-animated.svg @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/assets/img/icon/x.svg b/assets/img/icon/x.svg new file mode 100644 index 00000000..61b3c6c2 --- /dev/null +++ b/assets/img/icon/x.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icon16.png b/assets/img/icon16.png deleted file mode 100644 index a609c119..00000000 Binary files a/assets/img/icon16.png and /dev/null differ diff --git a/assets/img/icon-checked.svg b/assets/img/sidebar/item-checked.svg similarity index 100% rename from assets/img/icon-checked.svg rename to assets/img/sidebar/item-checked.svg diff --git a/assets/img/logo-dbi.svg b/assets/img/sidebar/logo-dbi.svg similarity index 100% rename from assets/img/logo-dbi.svg rename to assets/img/sidebar/logo-dbi.svg diff --git a/assets/img/os3-banner.svg b/assets/img/sidebar/os3-banner.svg similarity index 100% rename from assets/img/os3-banner.svg rename to assets/img/sidebar/os3-banner.svg diff --git a/assets/js/delivery-provider.js b/assets/js/delivery-provider.js deleted file mode 100644 index 71bf1e63..00000000 --- a/assets/js/delivery-provider.js +++ /dev/null @@ -1,89 +0,0 @@ -(function( $ ) { - var $body = $( 'body' ); - - var as3cf = as3cf || {}; - - /** - * Handle changes to the selected Delivery Provider. - */ - as3cf.deliveryProvider = { - changed: function() { - var provider = $( 'input[name="delivery-provider"]:checked' ).val(); - var parent = $( 'input[name="delivery-provider"]:checked' ).attr( 'data-delivery-provider-parent' ); - - // De-select all providers. - $( '.as3cf-delivery-provider' ).each( function() { - $( this ).removeClass( 'selected' ); - } ); - - // De-select all sub option containers. - $( '.as3cf-delivery-provider-sub-option-container' ).each( function() { - $( this ).removeClass( 'selected' ); - } ); - - // Select chosen provider. - $( '.as3cf-delivery-provider[data-delivery-provider="' + provider + '"]' ).each( function() { - $( this ).addClass( 'selected' ); - } ); - - if ( 0 < parent.length ) { - // If switching sub options, re-select container and parent too. - $( '.as3cf-delivery-provider-sub-option-container[data-delivery-provider="' + parent + '"]' ).each( function() { - $( this ).addClass( 'selected' ); - } ); - $( '.as3cf-delivery-provider[data-delivery-provider="' + parent + '"]' ).each( function() { - $( this ).addClass( 'selected' ); - } ); - } else { - // Switching top level provider, de-select any sub option container... - $( '.as3cf-delivery-provider-sub-option-container' ).each( function() { - $( this ).removeClass( 'selected' ); - } ); - - // ... and select the dummy hidden radio button. - $( 'input#as3cf-delivery-provider-dummy-parent[name="delivery-provider-sub-option-parent"]' ).each( function() { - $( this ).prop( 'checked', true ); - $( this ).trigger( 'change' ); - } ); - } - }, - - subOptionParentChanged: function() { - var parent = $( 'input[name="delivery-provider-sub-option-parent"]:checked' ).val(); - - // De-select all other top level options. - $( '.as3cf-delivery-provider-option' ).each( function() { - $( this ).removeClass( 'selected' ); - } ); - - // Select chosen sub option container. - $( '.as3cf-delivery-provider-sub-option-container[data-delivery-provider="' + parent + '"]' ).each( function() { - $( this ).addClass( 'selected' ); - } ); - - // Select chosen sub option parent. - $( '.as3cf-delivery-provider-option[data-delivery-provider="' + parent + '"]' ).each( function() { - $( this ).addClass( 'selected' ); - } ); - - // Find default sub option to select. - $( 'input[data-delivery-provider-parent="' + parent + '"]' ).first().each( function() { - $( this ).prop( 'checked', true ); - $( this ).trigger( 'change' ); - } ); - } - }; - - $( document ).ready( function() { - // Switch displayed delivery provider content. - $body.on( 'change', 'input[name="delivery-provider"]', function( e ) { - e.preventDefault(); - as3cf.deliveryProvider.changed(); - } ); - $body.on( 'change', 'input[name="delivery-provider-sub-option-parent"]', function( e ) { - e.preventDefault(); - as3cf.deliveryProvider.subOptionParentChanged(); - } ); - } ); - -})( jQuery ); diff --git a/assets/js/delivery-provider.min.js b/assets/js/delivery-provider.min.js deleted file mode 100644 index ecdc07be..00000000 --- a/assets/js/delivery-provider.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){var b=a("body"),c=c||{};c.deliveryProvider={changed:function(){var b=a('input[name="delivery-provider"]:checked').val(),c=a('input[name="delivery-provider"]:checked').attr("data-delivery-provider-parent");a(".as3cf-delivery-provider").each(function(){a(this).removeClass("selected")}),a(".as3cf-delivery-provider-sub-option-container").each(function(){a(this).removeClass("selected")}),a('.as3cf-delivery-provider[data-delivery-provider="'+b+'"]').each(function(){a(this).addClass("selected")}),0",{"class":"s3-actions"}),g=[];b(d).each(function(a){g.push(a)}),f.append(g.join(" | ")),e.append(f)},renderS3Details:function(a){if(a&&a.provider_object){var b=this.$el.find(".attachment-info .details"),c=this.generateDetails(a,["provider_name","region","bucket","key","acl","is_verified"]);b.append(c)}},generateDetails:function(a,c){var d="",e=b.template('
<%= label %>: <%= value %>
');return b(c).each(function(c){if(a.provider_object[c]){var f=a.provider_object[c];if("acl"===c&&(f=a.provider_object[c].name,a.acl_toggle)){var g=b.template('<%= value %>');f=g({title:a.provider_object[c].title,acl:a.provider_object[c].acl,value:f})}if("is_verified"===c){if(f=Boolean(parseInt(f)))return;f=as3cf_media.strings.not_verified}d+=e({key:c,label:as3cf_media.strings[c],value:f})}}),d},confirmS3Removal:function(a){if(!confirm(as3cfpro_media.strings.local_warning))return a.preventDefault(),a.stopImmediatePropagation(),!1},toggleACL:function(c){c.preventDefault();var d=a("#as3cfpro-toggle-acl"),e=d.data("currentacl"),f=as3cfpro_media.settings.private_acl;d.hide(),d.after(''+as3cfpro_media.strings.updating_acl+""),e===as3cfpro_media.settings.private_acl&&(f=as3cfpro_media.settings.default_acl),wp.ajax.send("as3cfpro_update_acl",{data:{_ajax_nonce:as3cfpro_media.nonces.singular_update_acl,id:this.model.get("id"),acl:f}}).done(b.bind(this.updateACL,this)).fail(b.bind(this.renderACLError,this))},renderACLError:function(){a("#as3cfpro-updating").remove(),a("#as3cfpro-toggle-acl").show(),alert(as3cfpro_media.strings.change_acl_error)},updateACL:function(b){if(null==b.acl_display||null==b.title||null==b.acl||null==b.url)return void this.renderACLError();this.model.set("url",b.url),this.render();var c=a("#as3cfpro-toggle-acl");a("#as3cfpro-updating").remove(),c.text(b.acl_display),c.attr("title",b.title),c.data("currentacl",b.acl),c.show()}})}(jQuery,_); \ No newline at end of file +var test={};!function(e,t){var a=wp.media,i=a.view.Attachment.Details.TwoColumn;a.view.Attachment.Details.TwoColumn=i.extend({events:function(){return t.extend({},i.prototype.events,{"click .local-warning":"confirmS3Removal","click #as3cfpro-toggle-acl":"toggleACL"})},render:function(){this.fetchS3Details(this.model.get("id"))},fetchS3Details:function(e){wp.ajax.send("as3cf_get_attachment_provider_details",{data:{_nonce:as3cf_media.nonces.get_attachment_provider_details,id:e}}).done(t.bind(this.renderView,this))},renderView:function(e){i.prototype.render.apply(this),this.renderActionLinks(e),this.renderS3Details(e)},renderActionLinks:function(a){var i=a&&a.links||[],r=this.$el.find(".actions"),n=e("
",{class:"s3-actions"}),l=[];t(i).each(function(e){l.push(e)}),n.append(l.join(" | ")),r.append(n)},renderS3Details:function(e){if(e&&e.provider_object){var t=this.$el.find(".attachment-info .details"),a=this.generateDetails(e,["provider_name","region","bucket","key","acl","is_verified"]);t.append(a)}},generateDetails:function(e,a){var i="",r=t.template('
<%= label %>: <%= value %>
');return t(a).each(function(a){if(e.provider_object[a]){var n=e.provider_object[a];if("acl"===a)if(n=e.provider_object[a].name,e.acl_toggle)n=t.template('<%= value %>')({title:e.provider_object[a].title,acl:e.provider_object[a].acl,value:n});if("is_verified"===a){if(n=Boolean(parseInt(n)))return;n=as3cf_media.strings.not_verified}i+=r({key:a,label:as3cf_media.strings[a],value:n})}}),i},confirmS3Removal:function(e){if(!confirm(as3cfpro_media.strings.local_warning))return e.preventDefault(),e.stopImmediatePropagation(),!1},toggleACL:function(a){a.preventDefault();var i=e("#as3cfpro-toggle-acl"),r=i.data("currentacl"),n=as3cfpro_media.settings.private_acl;i.hide(),i.after(''+as3cfpro_media.strings.updating_acl+""),r===as3cfpro_media.settings.private_acl&&(n=as3cfpro_media.settings.default_acl),wp.ajax.send("as3cfpro_update_acl",{data:{_ajax_nonce:as3cfpro_media.nonces.singular_update_acl,id:this.model.get("id"),acl:n}}).done(t.bind(this.updateACL,this)).fail(t.bind(this.renderACLError,this))},renderACLError:function(){e("#as3cfpro-updating").remove(),e("#as3cfpro-toggle-acl").show(),alert(as3cfpro_media.strings.change_acl_error)},updateACL:function(t){if(null!=t.acl_display&&null!=t.title&&null!=t.acl&&null!=t.url){this.model.set("url",t.url),this.render();var a=e("#as3cfpro-toggle-acl");e("#as3cfpro-updating").remove(),a.text(t.acl_display),a.attr("title",t.title),a.data("currentacl",t.acl),a.show()}else this.renderACLError()}})}(jQuery,_); \ No newline at end of file diff --git a/assets/js/modal.min.js b/assets/js/modal.min.js index 0acf736e..cca86777 100644 --- a/assets/js/modal.min.js +++ b/assets/js/modal.min.js @@ -1 +1 @@ -var as3cfModal=function(a){function b(a){return a.replace(/[^a-z]/g,"")}var c={prefix:"as3cf",loading:!1,dismissible:!0},d={};return c.exists=function(c){var e=b(c);return void 0!==d[e]||!!a(c).length},c.open=function(e,f,g){var h=b(e);a("body").append('
');var i=a("#as3cf-overlay");c.dismissible?i.append('
×
'):i.append('
');var j=a("#as3cf-modal");if(void 0===d[h]){var k=a(e);d[h]=k.clone(!0).css("display","block"),k.remove()}j.data("as3cf-modal-target",e).append(d[h]),void 0!==g&&j.addClass(g),"function"==typeof f&&f(e),a("body").addClass("as3cf-modal-open"),i.fadeIn(150),j.fadeIn(150),a("body").trigger("as3cf-modal-open",[e])},c.close=function(b){if(!c.loading&&c.dismissible){var d=a("#as3cf-modal").data("as3cf-modal-target");a("#as3cf-overlay").fadeOut(150,function(){a("body").removeClass("as3cf-modal-open"),a(this).remove(),"function"==typeof b&&b(d)}),a("body").trigger("as3cf-modal-close",[d])}},c.setLoadingState=function(a){c.loading=a},c.setDismissibleState=function(a){c.dismissible=a},a(document).ready(function(){a("body").on("click","[data-as3cf-modal]",function(b){b.preventDefault(),c.open(a(this).data("as3cf-modal")+"."+c.prefix)}),a("body").on("click","#as3cf-overlay, .close-as3cf-modal",function(a){if("A"!==a.target.tagName)return a.preventDefault(),a.target===this&&void c.close()})}),c}(jQuery); \ No newline at end of file +var as3cfModal=function(a){var o={prefix:"as3cf",loading:!1,dismissible:!0},e={};function d(a){return a.replace(/[^a-z]/g,"")}return o.exists=function(o){var s=d(o);return void 0!==e[s]||!!a(o).length},o.open=function(s,i,n){var t=d(s);a("body").append('
');var c=a("#as3cf-overlay");o.dismissible?c.append('
×
'):c.append('
');var f=a("#as3cf-modal");if(void 0===e[t]){var l=a(s);e[t]=l.clone(!0).css("display","block"),l.remove()}f.data("as3cf-modal-target",s).append(e[t]),void 0!==n&&f.addClass(n),"function"==typeof i&&i(s),a("body").addClass("as3cf-modal-open"),c.fadeIn(150),f.fadeIn(150),a("body").trigger("as3cf-modal-open",[s])},o.close=function(e){if(!o.loading&&o.dismissible){var d=a("#as3cf-modal").data("as3cf-modal-target");a("#as3cf-overlay").fadeOut(150,function(){a("body").removeClass("as3cf-modal-open"),a(this).remove(),"function"==typeof e&&e(d)}),a("body").trigger("as3cf-modal-close",[d])}},o.setLoadingState=function(a){o.loading=a},o.setDismissibleState=function(a){o.dismissible=a},a(document).ready(function(){a("body").on("click","[data-as3cf-modal]",function(e){e.preventDefault(),o.open(a(this).data("as3cf-modal")+"."+o.prefix)}),a("body").on("click","#as3cf-overlay, .close-as3cf-modal",function(a){if("A"!==a.target.tagName){if(a.preventDefault(),a.target!==this)return!1;o.close()}})}),o}(jQuery); \ No newline at end of file diff --git a/assets/js/notice.min.js b/assets/js/notice.min.js index 00dc4609..c5a319af 100644 --- a/assets/js/notice.min.js +++ b/assets/js/notice.min.js @@ -1 +1 @@ -!function(a){var b=a("body");b.on("click",".as3cf-notice .notice-dismiss",function(b){var c=a(this).parents(".as3cf-notice").attr("id");if(c){var d={action:"as3cf-dismiss-notice",notice_id:c,_nonce:as3cf_notice.nonces.dismiss_notice};a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:d,error:function(a,b,c){alert(as3cf_notice.strings.dismiss_notice_error+c)}})}}),b.on("click",".as3cf-notice-toggle",function(b){b.preventDefault();var c=a(this),d=c.data("hide");c.data("hide",c.html()),c.html(d),c.closest(".as3cf-notice").find(".as3cf-notice-toggle-content").toggle()})}(jQuery); \ No newline at end of file +!function(t){var i=t("body");i.on("click",".as3cf-notice .notice-dismiss",function(i){var c=t(this).parents(".as3cf-notice").attr("id");if(c){var n={action:"as3cf-dismiss-notice",notice_id:c,_nonce:as3cf_notice.nonces.dismiss_notice};t.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:n,error:function(t,i,c){alert(as3cf_notice.strings.dismiss_notice_error+c)}})}}),i.on("click",".as3cf-notice-toggle",function(i){i.preventDefault();var c=t(this),n=c.data("hide");c.data("hide",c.html()),c.html(n),c.closest(".as3cf-notice").find(".as3cf-notice-toggle-content").toggle()})}(jQuery); \ No newline at end of file diff --git a/assets/js/script.js b/assets/js/script.js deleted file mode 100644 index 5dd1958b..00000000 --- a/assets/js/script.js +++ /dev/null @@ -1,835 +0,0 @@ -( function( $, as3cfModal ) { - - var savedSettings = {}; - var bucketNamePattern = /[^a-z0-9.-]/; - - var $body = $( 'body' ); - var $tabs = $( '.as3cf-tab' ); - var $settings = $( '.as3cf-settings' ); - var $activeTab; - - /** - * Return the serialized string of the settings form - * excluding the bucket and region inputs as they get saved via AJAX - * - * @param string tab - * - * @returns {string} - */ - function serializedForm( tab ) { - return $( '#' + tab + ' .as3cf-main-settings form' ).find( 'input:not(.no-compare)' ).serialize(); - } - - /** - * Set checkbox - * - * @param string checkbox_wrap - */ - function setCheckbox( checkbox_wrap ) { - var $switch = $activeTab.find( '#' + checkbox_wrap ); - var $checkbox = $switch.find( 'input[type=checkbox]' ); - - $switch.toggleClass( 'on' ).find( 'span' ).toggleClass( 'checked' ); - var switchOn = $switch.find( 'span.on' ).hasClass( 'checked' ); - $checkbox.prop( 'checked', switchOn ).trigger( 'change' ); - } - - /** - * Validate custom domain - * - * @param {object} $input - */ - function validateCustomDomain( $input ) { - var $error = $input.next( '.as3cf-validation-error' ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - var pattern = /[^a-zA-Z0-9\.\-]/; - - if ( pattern.test( $input.val() ) ) { - $error.show(); - $submit.prop( 'disabled', true ); - } else { - $error.hide(); - $submit.prop( 'disabled', false ); - } - } - - /** - * Validate Signed URLs Key ID. - * - * @param {object} $input - */ - function validateSignedUrlsKeyID( $input ) { - var $error = $input.next( '.as3cf-validation-error' ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - var pattern = /[^a-zA-Z0-9]/; // Letters & Numbers only at present (CloudFront). - - if ( pattern.test( $input.val() ) ) { - $error.show(); - $submit.prop( 'disabled', true ); - } else { - $error.hide(); - $submit.prop( 'disabled', false ); - } - } - - /** - * Validate Signed URLs Key File Path. - * - * @param {object} $input - */ - function validateSignedUrlsKeyFilePath( $input ) { - var $error = $input.next( '.as3cf-validation-error' ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - var pattern = /[^a-zA-Z0-9\.\-\\:\/ _]/; - - if ( pattern.test( $input.val() ) ) { - $error.show(); - $submit.prop( 'disabled', true ); - } else { - $error.hide(); - $submit.prop( 'disabled', false ); - } - } - - /** - * Validate Signed URLs Object Prefix. - * - * @param {object} $input - */ - function validateSignedUrlsObjectPrefix( $input ) { - var $error = $input.next( '.as3cf-validation-error' ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - var pattern = /[^a-zA-Z0-9\-\/ ]/; - - if ( pattern.test( $input.val() ) ) { - $error.show(); - $submit.prop( 'disabled', true ); - } else { - $error.hide(); - $submit.prop( 'disabled', false ); - } - } - - as3cf.tabs = { - defaultTab: 'media', - /** - * Toggle settings tab - * - * @param string hash - * @param boolean persist_updated_notice - */ - toggle: function( hash, persist_updated_notice ) { - hash = as3cf.tabs.sanitizeHash( hash ); - - $tabs.hide(); - $activeTab = $( '#tab-' + hash ); - $activeTab.show(); - $( '.nav-tab' ).removeClass( 'nav-tab-active' ); - $( 'a.nav-tab[data-tab="' + hash + '"]' ).addClass( 'nav-tab-active' ); - $( '.as3cf-main' ).data( 'tab', hash ); - if ( $activeTab.data( 'prefix' ) ) { - as3cfModal.prefix = $activeTab.data( 'prefix' ); - } - if ( ! persist_updated_notice ) { - $( '.as3cf-updated' ).removeClass( 'show' ); - } - - if ( 'support' === hash ) { - as3cf.tabs.getDiagnosticInfo(); - } - }, - - /** - * Update display of diagnostic info. - */ - getDiagnosticInfo: function() { - var $debugLog = $( '.debug-log-textarea' ); - - $debugLog.html( as3cf.strings.get_diagnostic_info ); - - var data = { - action: 'as3cf-get-diagnostic-info', - _nonce: as3cf.nonces.get_diagnostic_info - }; - - $.ajax( { - url: ajaxurl, - type: 'POST', - dataType: 'JSON', - data: data, - error: function( jqXHR, textStatus, errorThrown ) { - $debugLog.html( errorThrown ); - }, - success: function( data, textStatus, jqXHR ) { - if ( 'undefined' !== typeof data[ 'success' ] ) { - $debugLog.html( data[ 'diagnostic_info' ] ); - } else { - $debugLog.html( as3cf.strings.get_diagnostic_info_error ); - $debugLog.append( data[ 'error' ] ); - } - } - } ); - }, - - /** - * Sanitize hash to ensure it references a real tab. - * - * @param string hash - * - * @return string - */ - sanitizeHash: function( hash ) { - var $newTab = $( '#tab-' + hash ); - - if ( 0 === $newTab.length ) { - hash = as3cf.tabs.defaultTab; - } - - return hash; - } - }; - - /** - * Handle the bucket selection, either inline or in a modal - */ - as3cf.buckets = { - - /** - * Buckets must be at least this many characters - */ - validLength: 3, - - /** - * Process lock for setting a bucket - */ - bucketSelectLock: false, - - /** - * Load bucket list - * - * @param {boolean} [forceUpdate] - */ - loadList: function( forceUpdate ) { - if ( 'undefined' === typeof forceUpdate ) { - forceUpdate = false; - } - - var $selectBucketForm = $( '.as3cf-bucket-container.' + as3cfModal.prefix + ' .as3cf-bucket-select' ); - var $selectBucketRegion = $selectBucketForm.find( '.bucket-select-region' ); - var $bucketList = $selectBucketForm.find( '.as3cf-bucket-list' ); - var selectedBucket = $( '#' + as3cfModal.prefix + '-bucket' ).val(); - - if ( false === forceUpdate && $bucketList.find( 'li' ).length > 1 ) { - $( '.as3cf-bucket-list a' ).removeClass( 'selected' ); - $( '.as3cf-bucket-list a[data-bucket="' + selectedBucket + '"]' ).addClass( 'selected' ); - - this.scrollToSelected(); - return; - } - - $bucketList.html( '
  • ' + $bucketList.data( 'working' ) + '
  • ' ); - - // Stop accidental submit while reloading list. - this.disabledButtons(); - - var data = { - action: as3cfModal.prefix + '-get-buckets', - _nonce: window[ as3cfModal.prefix.replace( /-/g, '_' ) ].nonces.get_buckets - }; - - if ( $selectBucketRegion.val() ) { - data[ 'region' ] = $selectBucketRegion.val(); - } - - var that = this; - - $.ajax( { - url: ajaxurl, - type: 'POST', - dataType: 'JSON', - data: data, - error: function( jqXHR, textStatus, errorThrown ) { - $bucketList.html( '' ); - that.showError( as3cf.strings.get_buckets_error, errorThrown, 'as3cf-bucket-select' ); - }, - success: function( data, textStatus, jqXHR ) { - $bucketList.html( '' ); - - if ( 'undefined' !== typeof data[ 'success' ] ) { - $( '.as3cf-bucket-error' ).hide(); - - if ( 0 === data[ 'buckets' ].length ) { - $bucketList.html( '
  • ' + $bucketList.data( 'nothing-found' ) + '
  • ' ); - } else { - $( data[ 'buckets' ] ).each( function( idx, bucket ) { - var bucketClass = bucket.Name === selectedBucket ? 'selected' : ''; - $bucketList.append( '
  • ' + bucket.Name + '
  • ' ); - } ); - - that.scrollToSelected(); - that.disabledButtons(); - } - } else { - that.showError( as3cf.strings.get_buckets_error, data[ 'error' ], 'as3cf-bucket-select' ); - } - } - } ); - }, - - /** - * Scroll to selected bucket - */ - scrollToSelected: function() { - if ( ! $( '.as3cf-bucket-list a.selected' ).length ) { - return; - } - - var offset = $( 'ul.as3cf-bucket-list li' ).first().position().top + 150; - - $( '.as3cf-bucket-list' ).animate( { - scrollTop: $( 'ul.as3cf-bucket-list li a.selected' ).position().top - offset - } ); - }, - - /** - * Set the selected bucket in list. - * - * @param {object} $link - */ - setSelected: function( $link ) { - $( '.as3cf-bucket-list a' ).removeClass( 'selected' ); - $link.addClass( 'selected' ); - $( '#' + as3cfModal.prefix + '-bucket-select-name' ).val( $link.data( 'bucket' ) ); - }, - - /** - * Disable bucket buttons - */ - disabledButtons: function() { - var $createBucketForm = $( '.as3cf-bucket-container.' + as3cfModal.prefix + ' .as3cf-bucket-create' ); - var $manualBucketForm = $( '.as3cf-bucket-container.' + as3cfModal.prefix + ' .as3cf-bucket-manual' ); - var $selectBucketForm = $( '.as3cf-bucket-container.' + as3cfModal.prefix + ' .as3cf-bucket-select' ); - - if ( 0 === $createBucketForm.length && 0 === $manualBucketForm.length && 0 === $selectBucketForm.length ) { - return; - } - - if ( 0 < $createBucketForm.length && this.isValidName( $createBucketForm.find( '.as3cf-bucket-name' ).val() ) ) { - $createBucketForm.find( 'button[type=submit]' ).prop( 'disabled', false ); - } else { - $createBucketForm.find( 'button[type=submit]' ).prop( 'disabled', true ); - } - - if ( 0 < $manualBucketForm.length && this.isValidName( $manualBucketForm.find( '.as3cf-bucket-name' ).val() ) ) { - $manualBucketForm.find( 'button[type=submit]' ).prop( 'disabled', false ); - } else { - $manualBucketForm.find( 'button[type=submit]' ).prop( 'disabled', true ); - } - - if ( 0 < $selectBucketForm.length && 1 === $selectBucketForm.find( '.as3cf-bucket-list a.selected' ).length ) { - $selectBucketForm.find( 'button[type=submit]' ).prop( 'disabled', false ); - } else { - $selectBucketForm.find( 'button[type=submit]' ).prop( 'disabled', true ); - } - }, - - /** - * Show bucket error - * - * @param {string} title - * @param {string} error - * @param {string} [context] - */ - showError: function( title, error, context ) { - var $activeView = $( '.as3cf-bucket-container' ).children( ':visible' ); - var $bucketError = $activeView.find( '.as3cf-bucket-error' ); - - context = ( 'undefined' === typeof context ) ? null : context; - - if ( context && ! $activeView.hasClass( context ) ) { - return; - } - - $bucketError.find( 'span.title' ).html( title + ' —' ); - $bucketError.find( 'span.message' ).html( error ); - $bucketError.show(); - - // Unlock setting the bucket - this.bucketSelectLock = false; - }, - - /** - * Check for a valid bucket name - * - * Bucket names must be at least 3 and no more than 63 characters long. - * They can contain lowercase letters, numbers, periods and hyphens. - * - * @param {string} bucketName - * - * @return boolean - */ - isValidName: function( bucketName ) { - if ( bucketName.length < 3 || bucketName.length > 63 ) { - return false; - } - if ( true === bucketNamePattern.test( bucketName ) ) { - return false; - } - - return true; - }, - - /** - * Update invalid bucket name notice - * - * @param {string} bucketName - */ - updateNameNotice: function( bucketName ) { - var message = null; - - if ( true === bucketNamePattern.test( bucketName ) ) { - message = as3cf.strings.create_bucket_invalid_chars; - } else if ( bucketName.length < 3 ) { - message = as3cf.strings.create_bucket_name_short; - } else if ( bucketName.length > 63 ) { - message = as3cf.strings.create_bucket_name_long; - } - - if ( message && bucketName.length > 0 ) { - $( '.as3cf-invalid-bucket-name' ).html( message ); - } else { - $( '.as3cf-invalid-bucket-name' ).html( '' ); - } - } - - }; - - /** - * Reload the page, and show the persistent updated notice. - * - * Intended for use on plugin settings page. - */ - as3cf.reloadUpdated = function() { - var url = location.pathname + location.search; - - if ( ! location.search.match( /[?&]updated=/ ) ) { - url += '&updated=1'; - } - - url += location.hash; - - location.assign( url ); - }; - - /** - * Show the standard "Settings saved." notice if not already visible. - */ - as3cf.showSettingsSavedNotice = function() { - if ( 0 < $( '#setting-error-settings_updated:visible' ).length || 0 < $( '#as3cf-settings_updated:visible' ).length ) { - return; - } - var settingsUpdatedNotice = '

    ' + as3cf.strings.settings_saved + '

    '; - $( 'h2.nav-tab-wrapper' ).after( settingsUpdatedNotice ); - $( document ).trigger( 'wp-updates-notice-added' ); // Hack to run WP Core's makeNoticesDismissible() function. - }; - - as3cf.Settings = as3cf.Settings ? as3cf.Settings : {}; - - /** - * The object that handles locking and unlocking the Media settings. - */ - as3cf.Settings.Media = { - /** - * Lock settings. - */ - lock: function( key ) { - $( '#as3cf-media-settings-locked-' + key ).show(); - $( '.as3cf-media-settings' ).addClass( 'locked locked-' + key ); - $( '.as3cf-media-settings.locked-' + key ).each( function() { - $( this ).find( 'input,button' ).prop( 'disabled', true ); - $( this ).find( '.as3cf-settings-container' ).addClass( 'as3cf-locked-setting' ); - $( this ).find( 'a.as3cf-change-settings' ).hide(); - } ); - }, - - /** - * Unlock settings. - */ - unlock: function( key ) { - $( '.as3cf-media-settings.locked-' + key ).each( function() { - $( this ).find( 'input,button' ).filter( ':not(.disabled)' ).prop( 'disabled', false ); - $( this ).find( '.as3cf-settings-container' ).removeClass( 'as3cf-locked-setting' ); - $( this ).find( 'a.as3cf-change-settings' ).show(); - $( this ).removeClass( 'locked locked-' + key ); - } ); - $( '#as3cf-media-settings-locked-' + key ).hide(); - }, - - /** - * Settings locked? - */ - locked: function() { - return $( '.as3cf-media-settings' ).hasClass( 'locked' ); - } - - }; - - /** - * Get the link to the bucket on the AWS Console and update the DOM - * - * @returns {string} - */ - function setBucketLink() { - var bucket = $( '#' + as3cfModal.prefix + '-bucket' ).val(); - var $objectPrefix = $activeTab.find( 'input[name="object-prefix"]' ); - var prefix = $objectPrefix.val(); - - if ( '' !== prefix ) { - prefix = as3cf.provider_console_url_prefix_param + encodeURIComponent( prefix ); - } - - var url = as3cf.provider_console_url + bucket + prefix; - - $( '#' + as3cfModal.prefix + '-view-bucket' ).attr( 'href', url ); - } - - /* - * Toggle the lost files notice - */ - function toggleLostFilesNotice() { - if ( $( '#as3cf-remove-local-file' ).is( ':checked' ) && $( '#as3cf-serve-from-s3' ).is( ':not(:checked)' ) ) { - $( '#as3cf-lost-files-notice' ).show(); - } else { - $( '#as3cf-lost-files-notice' ).hide(); - } - } - - /* - * Toggle the remove local files notice - */ - function toggleRemoveLocalNotice() { - if ( $( '#as3cf-remove-local-file' ).is( ':checked' ) ) { - $( '#as3cf-remove-local-notice' ).show(); - } else { - $( '#as3cf-remove-local-notice' ).hide(); - } - } - - /* - * Toggle the seo friendly url notice. - */ - function toggleSEOFriendlyURLNotice( seo_friendly ) { - if ( true !== seo_friendly ) { - $( '#as3cf-seo-friendly-url-notice' ).show(); - } else { - $( '#as3cf-seo-friendly-url-notice' ).hide(); - } - } - - /** - * Generate URL preview - */ - function generateUrlPreview() { - $( '.as3cf-url-preview' ).html( 'Generating...' ); - - var data = { - _nonce: as3cf.nonces.get_url_preview - }; - - $.each( $( '#tab-' + as3cf.tabs.defaultTab + ' .as3cf-main-settings form' ).serializeArray(), function( i, o ) { - var n = o.name, - v = o.value; - n = n.replace( '[]', '' ); - data[ n ] = undefined === data[ n ] ? v : Array.isArray( data[ n ] ) ? data[ n ].concat( v ) : [ data[ n ], v ]; - } ); - - // Overwrite the save action stored in the form - data[ 'action' ] = 'as3cf-get-url-preview'; - - $.ajax( { - url: ajaxurl, - type: 'POST', - dataType: 'JSON', - data: data, - error: function( jqXHR, textStatus, errorThrown ) { - alert( as3cf.strings.get_url_preview_error + errorThrown ); - }, - success: function( data, textStatus, jqXHR ) { - if ( 'undefined' !== typeof data[ 'success' ] ) { - $( '.as3cf-url-preview' ).html( data[ 'url' ] ); - toggleSEOFriendlyURLNotice( data[ 'seo_friendly' ] ); - } else { - alert( as3cf.strings.get_url_preview_error + data[ 'error' ] ); - } - } - } ); - } - - /** - * Update the UI with the current active tab set in the URL hash. - */ - function renderCurrentTab() { - - // If rendering the default tab, or a bare hash clean the hash. - if ( '#' + as3cf.tabs.defaultTab === location.hash ) { - location.hash = ''; - - return; - } - - as3cf.tabs.toggle( location.hash.replace( '#', '' ), true ); - - $( document ).trigger( 'as3cf.tabRendered', [ location.hash.replace( '#', '' ) ] ); - } - - $( document ).ready( function() { - - // Tabs - // -------------------- - renderCurrentTab(); - - /** - * Set the hashchange callback to update the rendered active tab. - */ - window.onhashchange = function( event ) { - - // Strip the # if still on the end of the URL - if ( 'function' === typeof history.replaceState && '#' === location.href.slice( -1 ) ) { - history.replaceState( {}, '', location.href.slice( 0, -1 ) ); - } - - renderCurrentTab(); - }; - - // Move any compatibility errors below the nav tabs - var $navTabs = $( '.as3cf-main .nav-tab-wrapper' ); - $( '.as3cf-compatibility-notice, div.updated, div.error, div.notice' ).not( '.below-h2, .inline' ).insertAfter( $navTabs ); - - // Settings - // -------------------- - - // Save the original state of the forms for comparison later - if ( $tabs.length ) { - $tabs.each( function( i, tab ) { - savedSettings[ tab.id ] = serializedForm( tab.id ); - } ); - } - - // Prompt user with dialog if leaving the settings page with unsaved changes - $( window ).on( 'beforeunload.as3cf-settings', function() { - if ( $.isEmptyObject( savedSettings ) || as3cf.Settings.Media.locked() ) { - return; - } - - var tab = $activeTab.attr( 'id' ); - - if ( serializedForm( tab ) !== savedSettings[ tab ] ) { - return as3cf.strings.save_alert; - } - } ); - - // Let the save settings submit happen as normal - $( document ).on( 'submit', '.as3cf-main-settings form', function( e ) { - - // Disable unload warning - $( window ).off( 'beforeunload.as3cf-settings' ); - } ); - - $( '.as3cf-switch' ).on( 'click', function( e ) { - if ( ! $( this ).hasClass( 'disabled' ) && ! $( this ).parents().hasClass( 'locked' ) ) { - setCheckbox( $( this ).attr( 'id' ) ); - } - } ); - - $tabs.on( 'change', '.sub-toggle', function( e ) { - var setting = $( this ).attr( 'id' ); - $( '.as3cf-setting.' + setting ).toggleClass( 'hide' ); - } ); - - $( '.url-preview' ).on( 'change', 'input', function( e ) { - generateUrlPreview(); - } ); - - toggleLostFilesNotice(); - $( '#as3cf-serve-from-s3,#as3cf-remove-local-file' ).on( 'change', function( e ) { - toggleLostFilesNotice(); - } ); - - toggleRemoveLocalNotice(); - $( '#as3cf-remove-local-file' ).on( 'change', function( e ) { - toggleRemoveLocalNotice(); - } ); - - // Don't allow 'enter' key to submit form on text input settings - $( '.as3cf-setting input[type="text"]' ).on( 'keypress', function( event ) { - if ( 13 === event.which ) { - event.preventDefault(); - - return false; - } - } ); - - // Show or hide Custom Domain input and Enable Signed URLs section based on custom domain toggle switch. - $( '.as3cf-enable-delivery-domain-container' ).on( 'change', 'input[type="checkbox"]', function( e ) { - var deliveryDomainEnabled = $( this ).is( ':checked' ); - var $deliveryDomain = $( this ).parents( '.as3cf-enable-delivery-domain-container' ).find( '.as3cf-setting.as3cf-delivery-domain' ); - $deliveryDomain.toggleClass( 'hide', ! deliveryDomainEnabled ); - var $signedUrlsEnabled = $( this ).parents( '.as3cf-enable-delivery-domain-container' ).siblings( '.as3cf-enable-signed-urls-container' ); - $signedUrlsEnabled.toggleClass( 'hide', ! deliveryDomainEnabled ); - } ); - - // Re-enable submit button on domain change - $( 'input[name="enable-delivery-domain"]' ).on( 'change', function( e ) { - var $input = $( this ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - - if ( '1' !== $input.val() ) { - $submit.prop( 'disabled', false ); - } else { - validateCustomDomain( $input.next( '.as3cf-setting' ).find( 'input[name="delivery-domain"]' ) ); - } - } ); - - // Validate custom domain - $( 'input[name="delivery-domain"]' ).on( 'keyup', function( e ) { - validateCustomDomain( $( this ) ); - } ); - - // Show or hide Signed URLs fields based on Enable Signed URLs toggle switch. - $( '.as3cf-enable-signed-urls-container' ).on( 'change', 'input[type="checkbox"]', function( e ) { - var signedUrlsEnabled = $( this ).is( ':checked' ); - var $signedUrls = $( this ).parents( '.as3cf-enable-signed-urls-container' ).find( '.as3cf-setting.as3cf-signed-urls' ); - $signedUrls.toggleClass( 'hide', ! signedUrlsEnabled ); - } ); - - // Validate Signed URLs Key ID. - $( 'input[name="signed-urls-key-id"]' ).on( 'keyup', function( e ) { - validateSignedUrlsKeyID( $( this ) ); - } ); - - // Re-enable submit button on Signed URLs Key ID change - $( 'input[name="enable-signed-urls-key-id"]' ).on( 'change', function( e ) { - var $input = $( this ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - - if ( '1' !== $input.val() ) { - $submit.prop( 'disabled', false ); - } else { - validateSignedUrlsKeyID( $input.next( '.as3cf-setting' ).find( 'input[name="signed-urls-key-id"]' ) ); - } - } ); - - // Validate Signed URLs Key File Path. - $( 'input[name="signed-urls-key-file-path"]' ).on( 'keyup', function( e ) { - validateSignedUrlsKeyFilePath( $( this ) ); - } ); - - // Re-enable submit button on Signed URLs Key File Path change - $( 'input[name="enable-signed-urls-key-file-path"]' ).on( 'change', function( e ) { - var $input = $( this ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - - if ( '1' !== $input.val() ) { - $submit.prop( 'disabled', false ); - } else { - validateSignedUrlsKeyFilePath( $input.next( '.as3cf-setting' ).find( 'input[name="signed-urls-key-file-path"]' ) ); - } - } ); - - // Validate Signed URLs Object Prefix. - $( 'input[name="signed-urls-object-prefix"]' ).on( 'keyup', function( e ) { - validateSignedUrlsObjectPrefix( $( this ) ); - } ); - - // Re-enable submit button on Signed URLs Object Prefix change - $( 'input[name="enable-signed-urls-object-prefix"]' ).on( 'change', function( e ) { - var $input = $( this ); - var $submit = $( '#' + $activeTab.attr( 'id' ) + ' form button[type="submit"]' ); - - if ( '1' !== $input.val() ) { - $submit.prop( 'disabled', false ); - } else { - validateSignedUrlsObjectPrefix( $input.next( '.as3cf-setting' ).find( 'input[name="signed-urls-object-prefix"]' ) ); - } - } ); - - // Change bucket link when custom path changes - $( 'input[name="object-prefix"]' ).on( 'change', function( e ) { - setBucketLink(); - } ); - - // Bucket select - // -------------------- - - // Move bucket errors - $( '#tab-media > .as3cf-bucket-error' ).detach().insertAfter( '.as3cf-bucket-container h3' ); - - // Enable/disable change bucket's save buttons. - as3cf.buckets.disabledButtons(); - - // Bucket list refresh handler - $body.on( 'click', '.bucket-action-refresh', function( e ) { - e.preventDefault(); - as3cf.buckets.loadList( true ); - } ); - - // Bucket list refresh on region change handler - $body.on( 'change', '.bucket-select-region', function( e ) { - e.preventDefault(); - as3cf.buckets.loadList( true ); - } ); - - // If select bucket form is available on load, populate its list. - if ( 0 < $( '.as3cf-bucket-container.' + as3cfModal.prefix + ' .as3cf-bucket-select' ).length ) { - as3cf.buckets.loadList( true ); - } - - // Bucket list click handler - $body.on( 'click', '.as3cf-bucket-list a', function( e ) { - e.preventDefault(); - as3cf.buckets.setSelected( $( this ) ); - as3cf.buckets.disabledButtons(); - } ); - - // External links click handler - $( '.as3cf-bucket-container' ).on( 'click', 'a.js-link', function( e ) { - e.preventDefault(); - window.open( $( this ).attr( 'href' ) ); - - return false; - } ); - - // Validate bucket name on create - $body.on( 'input keyup', '.as3cf-bucket-create .as3cf-bucket-name', function( e ) { - var bucketName = $( this ).val(); - as3cf.buckets.updateNameNotice( bucketName ); - as3cf.buckets.disabledButtons(); - } ); - - $body.on( 'input keyup', '.as3cf-bucket-manual .as3cf-bucket-name', function( e ) { - var bucketName = $( this ).val(); - as3cf.buckets.updateNameNotice( bucketName ); - as3cf.buckets.disabledButtons(); - } ); - - // Don't allow 'enter' key to submit form on text input settings - $( '.as3cf-bucket-container input[type="text"]' ).on( 'keypress', function( event ) { - if ( 13 === event.which ) { - event.preventDefault(); - - return false; - } - } ); - - // Enable/Disable Block All Public Access button during setup depending on checkbox. - $( '.as3cf-change-bucket-access-prompt' ).on( 'change', '#origin-access-identity-confirmation', function( e ) { - $( '#block-public-access-confirmed' ).prop( 'disabled', ! $( this ).prop( 'checked' ) ); - } ); - - // If there's an upgrade in progress when the page loads, ensure settings are locked. - $( '.as3cf-media-settings.locked.locked-upgrade' ).each( function() { - as3cf.Settings.Media.lock( 'upgrade' ); - } ); - } ); - -} )( jQuery, as3cfModal ); diff --git a/assets/js/script.min.js b/assets/js/script.min.js deleted file mode 100644 index 036dea8d..00000000 --- a/assets/js/script.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a,b){function c(b){return a("#"+b+" .as3cf-main-settings form").find("input:not(.no-compare)").serialize()}function d(a){var b=o.find("#"+a),c=b.find("input[type=checkbox]");b.toggleClass("on").find("span").toggleClass("checked");var d=b.find("span.on").hasClass("checked");c.prop("checked",d).trigger("change")}function e(b){var c=b.next(".as3cf-validation-error"),d=a("#"+o.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9\.\-]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function f(b){var c=b.next(".as3cf-validation-error"),d=a("#"+o.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function g(b){var c=b.next(".as3cf-validation-error"),d=a("#"+o.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9\.\-\\:\/ _]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function h(b){var c=b.next(".as3cf-validation-error"),d=a("#"+o.attr("id")+' form button[type="submit"]'),e=/[^a-zA-Z0-9\-\/ ]/;e.test(b.val())?(c.show(),d.prop("disabled",!0)):(c.hide(),d.prop("disabled",!1))}function i(){var c=a("#"+b.prefix+"-bucket").val(),d=o.find('input[name="object-prefix"]'),e=d.val();""!==e&&(e=as3cf.provider_console_url_prefix_param+encodeURIComponent(e));var f=as3cf.provider_console_url+c+e;a("#"+b.prefix+"-view-bucket").attr("href",f)}function j(){a("#as3cf-remove-local-file").is(":checked")&&a("#as3cf-serve-from-s3").is(":not(:checked)")?a("#as3cf-lost-files-notice").show():a("#as3cf-lost-files-notice").hide()}function k(){a("#as3cf-remove-local-file").is(":checked")?a("#as3cf-remove-local-notice").show():a("#as3cf-remove-local-notice").hide()}function l(b){!0!==b?a("#as3cf-seo-friendly-url-notice").show():a("#as3cf-seo-friendly-url-notice").hide()}function m(){a(".as3cf-url-preview").html("Generating...");var b={_nonce:as3cf.nonces.get_url_preview};a.each(a("#tab-"+as3cf.tabs.defaultTab+" .as3cf-main-settings form").serializeArray(),function(a,c){var d=c.name,e=c.value;d=d.replace("[]",""),b[d]=void 0===b[d]?e:Array.isArray(b[d])?b[d].concat(e):[b[d],e]}),b.action="as3cf-get-url-preview",a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:b,error:function(a,b,c){alert(as3cf.strings.get_url_preview_error+c)},success:function(b,c,d){"undefined"!=typeof b.success?(a(".as3cf-url-preview").html(b.url),l(b.seo_friendly)):alert(as3cf.strings.get_url_preview_error+b.error)}})}function n(){return"#"+as3cf.tabs.defaultTab===location.hash?void(location.hash=""):(as3cf.tabs.toggle(location.hash.replace("#",""),!0),void a(document).trigger("as3cf.tabRendered",[location.hash.replace("#","")]))}var o,p={},q=/[^a-z0-9.-]/,r=a("body"),s=a(".as3cf-tab");a(".as3cf-settings");as3cf.tabs={defaultTab:"media",toggle:function(c,d){c=as3cf.tabs.sanitizeHash(c),s.hide(),o=a("#tab-"+c),o.show(),a(".nav-tab").removeClass("nav-tab-active"),a('a.nav-tab[data-tab="'+c+'"]').addClass("nav-tab-active"),a(".as3cf-main").data("tab",c),o.data("prefix")&&(b.prefix=o.data("prefix")),d||a(".as3cf-updated").removeClass("show"),"support"===c&&as3cf.tabs.getDiagnosticInfo()},getDiagnosticInfo:function(){var b=a(".debug-log-textarea");b.html(as3cf.strings.get_diagnostic_info);var c={action:"as3cf-get-diagnostic-info",_nonce:as3cf.nonces.get_diagnostic_info};a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:c,error:function(a,c,d){b.html(d)},success:function(a,c,d){"undefined"!=typeof a.success?b.html(a.diagnostic_info):(b.html(as3cf.strings.get_diagnostic_info_error),b.append(a.error))}})},sanitizeHash:function(b){var c=a("#tab-"+b);return 0===c.length&&(b=as3cf.tabs.defaultTab),b}},as3cf.buckets={validLength:3,bucketSelectLock:!1,loadList:function(c){"undefined"==typeof c&&(c=!1);var d=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-select"),e=d.find(".bucket-select-region"),f=d.find(".as3cf-bucket-list"),g=a("#"+b.prefix+"-bucket").val();if(!1===c&&f.find("li").length>1)return a(".as3cf-bucket-list a").removeClass("selected"),a('.as3cf-bucket-list a[data-bucket="'+g+'"]').addClass("selected"),void this.scrollToSelected();f.html('
  • '+f.data("working")+"
  • "),this.disabledButtons();var h={action:b.prefix+"-get-buckets",_nonce:window[b.prefix.replace(/-/g,"_")].nonces.get_buckets};e.val()&&(h.region=e.val());var i=this;a.ajax({url:ajaxurl,type:"POST",dataType:"JSON",data:h,error:function(a,b,c){f.html(""),i.showError(as3cf.strings.get_buckets_error,c,"as3cf-bucket-select")},success:function(b,c,d){f.html(""),"undefined"!=typeof b.success?(a(".as3cf-bucket-error").hide(),0===b.buckets.length?f.html('
  • '+f.data("nothing-found")+"
  • "):(a(b.buckets).each(function(a,b){var c=b.Name===g?"selected":"";f.append('
  • '+b.Name+'
  • ')}),i.scrollToSelected(),i.disabledButtons())):i.showError(as3cf.strings.get_buckets_error,b.error,"as3cf-bucket-select")}})},scrollToSelected:function(){if(a(".as3cf-bucket-list a.selected").length){var b=a("ul.as3cf-bucket-list li").first().position().top+150;a(".as3cf-bucket-list").animate({scrollTop:a("ul.as3cf-bucket-list li a.selected").position().top-b})}},setSelected:function(c){a(".as3cf-bucket-list a").removeClass("selected"),c.addClass("selected"),a("#"+b.prefix+"-bucket-select-name").val(c.data("bucket"))},disabledButtons:function(){var c=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-create"),d=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-manual"),e=a(".as3cf-bucket-container."+b.prefix+" .as3cf-bucket-select");0===c.length&&0===d.length&&0===e.length||(063)&&!0!==q.test(a)},updateNameNotice:function(b){var c=null;!0===q.test(b)?c=as3cf.strings.create_bucket_invalid_chars:b.length<3?c=as3cf.strings.create_bucket_name_short:b.length>63&&(c=as3cf.strings.create_bucket_name_long),c&&b.length>0?a(".as3cf-invalid-bucket-name").html(c):a(".as3cf-invalid-bucket-name").html("")}},as3cf.reloadUpdated=function(){var a=location.pathname+location.search;location.search.match(/[?&]updated=/)||(a+="&updated=1"),a+=location.hash,location.assign(a)},as3cf.showSettingsSavedNotice=function(){if(!(0

    ";a("h2.nav-tab-wrapper").after(b),a(document).trigger("wp-updates-notice-added")}},as3cf.Settings=as3cf.Settings?as3cf.Settings:{},as3cf.Settings.Media={lock:function(b){a("#as3cf-media-settings-locked-"+b).show(),a(".as3cf-media-settings").addClass("locked locked-"+b),a(".as3cf-media-settings.locked-"+b).each(function(){a(this).find("input,button").prop("disabled",!0),a(this).find(".as3cf-settings-container").addClass("as3cf-locked-setting"),a(this).find("a.as3cf-change-settings").hide()})},unlock:function(b){a(".as3cf-media-settings.locked-"+b).each(function(){a(this).find("input,button").filter(":not(.disabled)").prop("disabled",!1),a(this).find(".as3cf-settings-container").removeClass("as3cf-locked-setting"),a(this).find("a.as3cf-change-settings").show(),a(this).removeClass("locked locked-"+b)}),a("#as3cf-media-settings-locked-"+b).hide()},locked:function(){return a(".as3cf-media-settings").hasClass("locked")}},a(document).ready(function(){n(),window.onhashchange=function(a){"function"==typeof history.replaceState&&"#"===location.href.slice(-1)&&history.replaceState({},"",location.href.slice(0,-1)),n()};var l=a(".as3cf-main .nav-tab-wrapper");a(".as3cf-compatibility-notice, div.updated, div.error, div.notice").not(".below-h2, .inline").insertAfter(l),s.length&&s.each(function(a,b){p[b.id]=c(b.id)}),a(window).on("beforeunload.as3cf-settings",function(){if(!a.isEmptyObject(p)&&!as3cf.Settings.Media.locked()){var b=o.attr("id");return c(b)!==p[b]?as3cf.strings.save_alert:void 0}}),a(document).on("submit",".as3cf-main-settings form",function(b){a(window).off("beforeunload.as3cf-settings")}),a(".as3cf-switch").on("click",function(b){a(this).hasClass("disabled")||a(this).parents().hasClass("locked")||d(a(this).attr("id"))}),s.on("change",".sub-toggle",function(b){var c=a(this).attr("id");a(".as3cf-setting."+c).toggleClass("hide")}),a(".url-preview").on("change","input",function(a){m()}),j(),a("#as3cf-serve-from-s3,#as3cf-remove-local-file").on("change",function(a){j()}),k(),a("#as3cf-remove-local-file").on("change",function(a){k()}),a('.as3cf-setting input[type="text"]').on("keypress",function(a){if(13===a.which)return a.preventDefault(),!1}),a(".as3cf-enable-delivery-domain-container").on("change",'input[type="checkbox"]',function(b){var c=a(this).is(":checked"),d=a(this).parents(".as3cf-enable-delivery-domain-container").find(".as3cf-setting.as3cf-delivery-domain");d.toggleClass("hide",!c);var e=a(this).parents(".as3cf-enable-delivery-domain-container").siblings(".as3cf-enable-signed-urls-container");e.toggleClass("hide",!c)}),a('input[name="enable-delivery-domain"]').on("change",function(b){var c=a(this),d=a("#"+o.attr("id")+' form button[type="submit"]');"1"!==c.val()?d.prop("disabled",!1):e(c.next(".as3cf-setting").find('input[name="delivery-domain"]'))}),a('input[name="delivery-domain"]').on("keyup",function(b){e(a(this))}),a(".as3cf-enable-signed-urls-container").on("change",'input[type="checkbox"]',function(b){var c=a(this).is(":checked"),d=a(this).parents(".as3cf-enable-signed-urls-container").find(".as3cf-setting.as3cf-signed-urls");d.toggleClass("hide",!c)}),a('input[name="signed-urls-key-id"]').on("keyup",function(b){f(a(this))}),a('input[name="enable-signed-urls-key-id"]').on("change",function(b){var c=a(this),d=a("#"+o.attr("id")+' form button[type="submit"]');"1"!==c.val()?d.prop("disabled",!1):f(c.next(".as3cf-setting").find('input[name="signed-urls-key-id"]'))}),a('input[name="signed-urls-key-file-path"]').on("keyup",function(b){g(a(this))}),a('input[name="enable-signed-urls-key-file-path"]').on("change",function(b){var c=a(this),d=a("#"+o.attr("id")+' form button[type="submit"]');"1"!==c.val()?d.prop("disabled",!1):g(c.next(".as3cf-setting").find('input[name="signed-urls-key-file-path"]'))}),a('input[name="signed-urls-object-prefix"]').on("keyup",function(b){h(a(this))}),a('input[name="enable-signed-urls-object-prefix"]').on("change",function(b){var c=a(this),d=a("#"+o.attr("id")+' form button[type="submit"]');"1"!==c.val()?d.prop("disabled",!1):h(c.next(".as3cf-setting").find('input[name="signed-urls-object-prefix"]'))}),a('input[name="object-prefix"]').on("change",function(a){i()}),a("#tab-media > .as3cf-bucket-error").detach().insertAfter(".as3cf-bucket-container h3"),as3cf.buckets.disabledButtons(),r.on("click",".bucket-action-refresh",function(a){a.preventDefault(),as3cf.buckets.loadList(!0)}),r.on("change",".bucket-select-region",function(a){a.preventDefault(),as3cf.buckets.loadList(!0)}),0 x; + function assign(tar, src) { + // @ts-ignore + for (const k in src) + tar[k] = src[k]; + return tar; + } + function is_promise(value) { + return value && typeof value === 'object' && typeof value.then === 'function'; + } + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + function run(fn) { + return fn(); + } + function blank_object() { + return Object.create(null); + } + function run_all(fns) { + fns.forEach(run); + } + function is_function(thing) { + return typeof thing === 'function'; + } + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + let src_url_equal_anchor; + function src_url_equal(element_src, url) { + if (!src_url_equal_anchor) { + src_url_equal_anchor = document.createElement('a'); + } + src_url_equal_anchor.href = url; + return element_src === src_url_equal_anchor.href; + } + function is_empty(obj) { + return Object.keys(obj).length === 0; + } + function validate_store(store, name) { + if (store != null && typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; + } + function get_store_value(store) { + let value; + subscribe(store, _ => value = _)(); + return value; + } + function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); + } + function create_slot(definition, ctx, $$scope, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); + return definition[0](slot_ctx); + } + } + function get_slot_context(definition, ctx, $$scope, fn) { + return definition[1] && fn + ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) + : $$scope.ctx; + } + function get_slot_changes(definition, $$scope, dirty, fn) { + if (definition[2] && fn) { + const lets = definition[2](fn(dirty)); + if ($$scope.dirty === undefined) { + return lets; + } + if (typeof lets === 'object') { + const merged = []; + const len = Math.max($$scope.dirty.length, lets.length); + for (let i = 0; i < len; i += 1) { + merged[i] = $$scope.dirty[i] | lets[i]; + } + return merged; + } + return $$scope.dirty | lets; + } + return $$scope.dirty; + } + function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { + if (slot_changes) { + const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); + slot.p(slot_context, slot_changes); + } + } + function get_all_dirty_from_scope($$scope) { + if ($$scope.ctx.length > 32) { + const dirty = []; + const length = $$scope.ctx.length / 32; + for (let i = 0; i < length; i++) { + dirty[i] = -1; + } + return dirty; + } + return -1; + } + function exclude_internal_props(props) { + const result = {}; + for (const k in props) + if (k[0] !== '$') + result[k] = props[k]; + return result; + } + function set_store_value(store, ret, value) { + store.set(value); + return ret; + } + function action_destroyer(action_result) { + return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; + } + + const is_client = typeof window !== 'undefined'; + let now = is_client + ? () => window.performance.now() + : () => Date.now(); + let raf = is_client ? cb => requestAnimationFrame(cb) : noop; + + const tasks = new Set(); + function run_tasks(now) { + tasks.forEach(task => { + if (!task.c(now)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); + } + /** + * Creates a new task that runs on each raf frame + * until it returns a falsy value or is aborted + */ + function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise(fulfill => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; + } + function append(target, node) { + target.appendChild(node); + } + function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; + } + function append_empty_stylesheet(node) { + const style_element = element('style'); + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; + } + function append_stylesheet(node, style) { + append(node.head || node, style); + } + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + function detach(node) { + node.parentNode.removeChild(node); + } + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } + } + function element(name) { + return document.createElement(name); + } + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + function text(data) { + return document.createTextNode(data); + } + function space() { + return text(' '); + } + function empty() { + return text(''); + } + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + function prevent_default(fn) { + return function (event) { + event.preventDefault(); + // @ts-ignore + return fn.call(this, event); + }; + } + function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); + } + function children(element) { + return Array.from(element.childNodes); + } + function set_input_value(input, value) { + input.value = value == null ? '' : value; + } + function set_style(node, key, value, important) { + if (value === null) { + node.style.removeProperty(key); + } + else { + node.style.setProperty(key, value, important ? 'important' : ''); + } + } + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + if (option.__value === value) { + option.selected = true; + return; + } + } + select.selectedIndex = -1; // no option should be selected + } + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + // unfortunately this can't be a constant as that wouldn't be tree-shakeable + // so we cache the result instead + let crossorigin; + function is_crossorigin() { + if (crossorigin === undefined) { + crossorigin = false; + try { + if (typeof window !== 'undefined' && window.parent) { + void window.parent.document; + } + } + catch (error) { + crossorigin = true; + } + } + return crossorigin; + } + function add_resize_listener(node, fn) { + const computed_style = getComputedStyle(node); + if (computed_style.position === 'static') { + node.style.position = 'relative'; + } + const iframe = element('iframe'); + iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' + + 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;'); + iframe.setAttribute('aria-hidden', 'true'); + iframe.tabIndex = -1; + const crossorigin = is_crossorigin(); + let unsubscribe; + if (crossorigin) { + iframe.src = "data:text/html,"; + unsubscribe = listen(window, 'message', (event) => { + if (event.source === iframe.contentWindow) + fn(); + }); + } + else { + iframe.src = 'about:blank'; + iframe.onload = () => { + unsubscribe = listen(iframe.contentWindow, 'resize', fn); + }; + } + append(node, iframe); + return () => { + if (crossorigin) { + unsubscribe(); + } + else if (unsubscribe && iframe.contentWindow) { + unsubscribe(); + } + detach(iframe); + }; + } + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; + } + class HtmlTag { + constructor(is_svg = false) { + this.is_svg = false; + this.is_svg = is_svg; + this.e = this.n = null; + } + c(html) { + this.h(html); + } + m(html, target, anchor = null) { + if (!this.e) { + if (this.is_svg) + this.e = svg_element(target.nodeName); + else + this.e = element(target.nodeName); + this.t = target; + this.c(html); + } + this.i(anchor); + } + h(html) { + this.e.innerHTML = html; + this.n = Array.from(this.e.childNodes); + } + i(anchor) { + for (let i = 0; i < this.n.length; i += 1) { + insert(this.t, this.n[i], anchor); + } + } + p(html) { + this.d(); + this.h(html); + this.i(this.a); + } + d() { + this.n.forEach(detach); + } + } + + // we need to store the information for multiple documents because a Svelte application could also contain iframes + // https://github.com/sveltejs/svelte/issues/3624 + const managed_styles = new Map(); + let active$1 = 0; + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + while (i--) + hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; + } + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`; + active$1 += 1; + return name; + } + function delete_rule(node, name) { + const previous = (node.style.animation || '').split(', '); + const next = previous.filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(', '); + active$1 -= deleted; + if (!active$1) + clear_rules(); + } + } + function clear_rules() { + raf(() => { + if (active$1) + return; + managed_styles.forEach(info => { + const { stylesheet } = info; + let i = stylesheet.cssRules.length; + while (i--) + stylesheet.deleteRule(i); + info.rules = {}; + }); + managed_styles.clear(); + }); + } + + let current_component; + function set_current_component(component) { + current_component = component; + } + function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; + } + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + function afterUpdate(fn) { + get_current_component().$$.after_update.push(fn); + } + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + function createEventDispatcher() { + const component = get_current_component(); + return (type, detail, { cancelable = false } = {}) => { + const callbacks = component.$$.callbacks[type]; + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail, { cancelable }); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + return !event.defaultPrevented; + } + return true; + }; + } + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + return context; + } + function getContext(key) { + return get_current_component().$$.context.get(key); + } + function hasContext(key) { + return get_current_component().$$.context.has(key); + } + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + // @ts-ignore + callbacks.slice().forEach(fn => fn.call(this, event)); + } + } + + const dirty_components = []; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + function tick() { + schedule_update(); + return resolved_promise; + } + function add_render_callback(fn) { + render_callbacks.push(fn); + } + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + // flush() calls callbacks in this order: + // 1. All beforeUpdate callbacks, in order: parents before children + // 2. All bind:this callbacks, in reverse order: children before parents. + // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT + // for afterUpdates called during the initial onMount, which are called in + // reverse order: children before parents. + // Since callbacks might update component values, which could trigger another + // call to flush(), the following steps guard against this: + // 1. During beforeUpdate, any updated components will be added to the + // dirty_components array and will cause a reentrant call to flush(). Because + // the flush index is kept outside the function, the reentrant call will pick + // up where the earlier call left off and go through all dirty components. The + // current_component value is saved and restored so that the reentrant call will + // not interfere with the "parent" flush() call. + // 2. bind:this callbacks cannot trigger new flush() calls. + // 3. During afterUpdate, any updated components will NOT have their afterUpdate + // callback called a second time; the seen_callbacks set, outside the flush() + // function, guarantees this behavior. + const seen_callbacks = new Set(); + let flushidx = 0; // Do *not* move this inside the flush() function + function flush() { + const saved_component = current_component; + do { + // first, call beforeUpdate functions + // and update components + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); + } + function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } + } + + let promise; + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; + } + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + const outroing = new Set(); + let outros; + function group_outros() { + outros = { + r: 0, + c: [], + p: outros // parent group + }; + } + function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; + } + function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } + } + function transition_out(block, local, detach, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach) + block.d(1); + callback(); + } + }); + block.o(local); + } + else if (callback) { + callback(); + } + } + const null_transition = { duration: 0 }; + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + function clear_animation() { + if (animation_name) + delete_rule(node, animation_name); + } + function init(program, duration) { + const d = (program.b - t); + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition; + const program = { + start: now() + delay, + b + }; + if (!b) { + // @ts-ignore todo: improve typings + program.group = outros; + outros.r += 1; + } + if (running_program || pending_program) { + pending_program = program; + } + else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + if (b) + tick(0, 1); + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, 'start'); + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + if (running_program) { + if (now >= running_program.end) { + tick(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } + else { + // outro — needs to be coordinated + if (!--running_program.group.r) + run_all(running_program.group.c); + } + } + running_program = null; + } + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait().then(() => { + // @ts-ignore + config = config(); + go(b); + }); + } + else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + function update(type, index, key, value) { + if (info.token !== token) + return; + info.resolved = value; + let child_ctx = info.ctx; + if (key !== undefined) { + child_ctx = child_ctx.slice(); + child_ctx[key] = value; + } + const block = type && (info.current = type)(child_ctx); + let needs_flush = false; + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + transition_out(block, 1, 1, () => { + if (info.blocks[i] === block) { + info.blocks[i] = null; + } + }); + check_outros(); + } + }); + } + else { + info.block.d(1); + } + block.c(); + transition_in(block, 1); + block.m(info.mount(), info.anchor); + needs_flush = true; + } + info.block = block; + if (info.blocks) + info.blocks[index] = block; + if (needs_flush) { + flush(); + } + } + if (is_promise(promise)) { + const current_component = get_current_component(); + promise.then(value => { + set_current_component(current_component); + update(info.then, 1, info.value, value); + set_current_component(null); + }, error => { + set_current_component(current_component); + update(info.catch, 2, info.error, error); + set_current_component(null); + if (!info.hasCatch) { + throw error; + } + }); + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } + else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + info.resolved = promise; + } + } + function update_await_block_branch(info, ctx, dirty) { + const child_ctx = ctx.slice(); + const { resolved } = info; + if (info.current === info.then) { + child_ctx[info.value] = resolved; + } + if (info.current === info.catch) { + child_ctx[info.error] = resolved; + } + info.block.p(child_ctx, dirty); + } + + const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); + function outro_and_destroy_block(block, lookup) { + transition_out(block, 1, 1, () => { + lookup.delete(block.key); + }); + } + function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + let i = o; + const old_indexes = {}; + while (i--) + old_indexes[old_blocks[i].key] = i; + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } + else if (dynamic) { + block.p(child_ctx, dirty); + } + new_lookup.set(key, new_blocks[i] = block); + if (key in old_indexes) + deltas.set(key, Math.abs(i - old_indexes[key])); + } + const will_move = new Set(); + const did_move = new Set(); + function insert(block) { + transition_in(block, 1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + else if (did_move.has(old_key)) { + o--; + } + else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + } + else { + will_move.add(old_key); + o--; + } + } + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) + destroy(old_block, lookup); + } + while (n) + insert(new_blocks[n - 1]); + return new_blocks; + } + function validate_each_keys(ctx, list, get_context, get_key) { + const keys = new Set(); + for (let i = 0; i < list.length; i++) { + const key = get_key(get_context(ctx, list, i)); + if (keys.has(key)) { + throw new Error('Cannot have duplicate keys in a keyed each'); + } + keys.add(key); + } + } + + function get_spread_update(levels, updates) { + const update = {}; + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + if (n) { + for (const key in o) { + if (!(key in n)) + to_null_out[key] = 1; + } + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + levels[i] = n; + } + else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + for (const key in to_null_out) { + if (!(key in update)) + update[key] = undefined; + } + return update; + } + function get_spread_object(spread_props) { + return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; + } + + function bind(component, name, callback) { + const index = component.$$.props[name]; + if (index !== undefined) { + component.$$.bound[index] = callback; + callback(component.$$.ctx[index]); + } + } + function create_component(block) { + block && block.c(); + } + function mount_component(component, target, anchor, customElement) { + const { fragment, on_mount, on_destroy, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); + } + function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } + } + function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); + } + function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: null, + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); + } + /** + * Base class for Svelte components. Used when dev=false. + */ + class SvelteComponent { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + } + + function dispatch_dev(type, detail) { + document.dispatchEvent(custom_event(type, Object.assign({ version: '3.49.0' }, detail), { bubbles: true })); + } + function append_dev(target, node) { + dispatch_dev('SvelteDOMInsert', { target, node }); + append(target, node); + } + function insert_dev(target, node, anchor) { + dispatch_dev('SvelteDOMInsert', { target, node, anchor }); + insert(target, node, anchor); + } + function detach_dev(node) { + dispatch_dev('SvelteDOMRemove', { node }); + detach(node); + } + function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { + const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; + if (has_prevent_default) + modifiers.push('preventDefault'); + if (has_stop_propagation) + modifiers.push('stopPropagation'); + dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); + const dispose = listen(node, event, handler, options); + return () => { + dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); + dispose(); + }; + } + function attr_dev(node, attribute, value) { + attr(node, attribute, value); + if (value == null) + dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); + else + dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); + } + function prop_dev(node, property, value) { + node[property] = value; + dispatch_dev('SvelteDOMSetProperty', { node, property, value }); + } + function set_data_dev(text, data) { + data = '' + data; + if (text.wholeText === data) + return; + dispatch_dev('SvelteDOMSetData', { node: text, data }); + text.data = data; + } + function validate_each_argument(arg) { + if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { + let msg = '{#each} only iterates over array-like objects.'; + if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { + msg += ' You can use a spread to convert this iterable into an array.'; + } + throw new Error(msg); + } + } + function validate_slots(name, slot, keys) { + for (const slot_key of Object.keys(slot)) { + if (!~keys.indexOf(slot_key)) { + console.warn(`<${name}> received an unexpected slot "${slot_key}".`); + } + } + } + /** + * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. + */ + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error("'target' is a required option"); + } + super(); + } + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn('Component was already destroyed'); // eslint-disable-line no-console + }; + } + $capture_state() { } + $inject_state() { } + } + + const subscriber_queue = []; + /** + * Creates a `Readable` store that allows reading by subscription. + * @param value initial value + * @param {StartStopNotifier}start start and stop notifications for subscriptions + */ + function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; + } + /** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ + function writable(value, start = noop) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; + } + function derived(stores, fn, initial_value) { + const single = !Array.isArray(stores); + const stores_array = single + ? [stores] + : stores; + const auto = fn.length < 2; + return readable(initial_value, (set) => { + let inited = false; + const values = []; + let pending = 0; + let cleanup = noop; + const sync = () => { + if (pending) { + return; + } + cleanup(); + const result = fn(single ? values[0] : values, set); + if (auto) { + set(result); + } + else { + cleanup = is_function(result) ? result : noop; + } + }; + const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { + values[i] = value; + pending &= ~(1 << i); + if (inited) { + sync(); + } + }, () => { + pending |= (1 << i); + })); + inited = true; + sync(); + return function stop() { + run_all(unsubscribers); + cleanup(); + }; + }); + } + + /** + * Does the current object have different keys or values compared to the previous version? + * + * @param {object} previous + * @param {object} current + * + * @returns {boolean} + */ + function objectsDiffer( [previous, current] ) { + if ( !previous || !current ) { + return false; + } + + // Any difference in keys? + const prevKeys = Object.keys( previous ); + const currKeys = Object.keys( current ); + + if ( prevKeys.length !== currKeys.length ) { + return true; + } + + // Symmetrical diff to find extra keys in either object. + if ( + prevKeys.filter( x => !currKeys.includes( x ) ) + .concat( + currKeys.filter( x => !prevKeys.includes( x ) ) + ) + .length > 0 + ) { + return true; + } + + // Any difference in values? + for ( const key in previous ) { + if ( JSON.stringify( current[ key ] ) !== JSON.stringify( previous[ key ] ) ) { + return true; + } + } + + return false; + } + + // Initial config store. + const config = writable( {} ); + + // Whether settings are locked due to background activity such as upgrade. + const settingsLocked = writable( false ); + + // Convenience readable store of server's settings, derived from config. + const current_settings = derived( config, $config => $config.settings ); + + // Convenience readable store of defined settings keys, derived from config. + const defined_settings = derived( config, $config => $config.defined_settings ); + + // Convenience readable store of translated strings, derived from config. + const strings = derived( config, $config => $config.strings ); + + // Convenience readable store for nonce, derived from config. + const nonce = derived( config, $config => $config.nonce ); + + // Convenience readable store of urls, derived from config. + const urls = derived( config, $config => $config.urls ); + + // Convenience readable store of docs, derived from config. + const docs = derived( config, $config => $config.docs ); + + // Convenience readable store of api endpoints, derived from config. + const endpoints = derived( config, $config => $config.endpoints ); + + // Convenience readable store of diagnostics, derived from config. + const diagnostics = derived( config, $config => $config.diagnostics ); + + // Convenience readable store of counts, derived from config. + const counts = derived( config, $config => $config.counts ); + + // Convenience readable store of upgrades, derived from config. + derived( config, $config => $config.upgrades ); + + // Convenience readable store of whether plugin is set up, derived from config. + const is_plugin_setup = derived( config, $config => $config.is_plugin_setup ); + + // Convenience readable store of whether plugin is set up, including with credentials, derived from config. + const is_plugin_setup_with_credentials = derived( config, $config => $config.is_plugin_setup_with_credentials ); + + // Convenience readable store of whether storage provider needs access credentials, derived from config. + const needs_access_keys = derived( config, $config => $config.needs_access_keys ); + + // Convenience readable store of whether bucket is writable, derived from config. + derived( config, $config => $config.bucket_writable ); + + // Store of inline errors and warnings to be shown next to settings. + // Format is a map using settings key for keys, values are an array of objects that can be used to instantiate a notification. + const settings_notifications = writable( new Map() ); + + // Store of validation errors for settings. + // Format is a map using settings key for keys, values are strings containing validation error. + const validationErrors = writable( new Map() ); + + // Does the app need a page refresh to resolve conflicts? + const needs_refresh = writable( false ); + + // Various stores may call the API, and the api object uses some stores. + // To avoid cyclic dependencies, we therefore co-locate the api object with the stores. + // We also need to add its functions much later so that JSHint does not complain about using the stores too early. + const api = {}; + + /** + * Creates store of settings. + * + * @return {Object} + */ + function createSettings() { + const { subscribe, set, update } = writable( [] ); + + return { + subscribe, + set, + async save() { + const json = await api.put( "settings", get_store_value( this ) ); + + if ( json.hasOwnProperty( "saved" ) && true === json.saved ) { + // Sync settings with what the server has. + this.updateSettings( json ); + + return json; + } + + return {}; + }, + reset() { + set( { ...get_store_value( current_settings ) } ); + }, + async fetch() { + const json = await api.get( "settings", {} ); + this.updateSettings( json ); + }, + updateSettings( json ) { + if ( + json.hasOwnProperty( "defined_settings" ) && + json.hasOwnProperty( "settings" ) && + json.hasOwnProperty( "storage_providers" ) && + json.hasOwnProperty( "delivery_providers" ) && + json.hasOwnProperty( "is_plugin_setup" ) && + json.hasOwnProperty( "is_plugin_setup_with_credentials" ) && + json.hasOwnProperty( "needs_access_keys" ) && + json.hasOwnProperty( "bucket_writable" ) && + json.hasOwnProperty( "urls" ) + ) { + // Update our understanding of what the server's settings are. + config.update( $config => { + return { + ...$config, + defined_settings: json.defined_settings, + settings: json.settings, + storage_providers: json.storage_providers, + delivery_providers: json.delivery_providers, + is_plugin_setup: json.is_plugin_setup, + is_plugin_setup_with_credentials: json.is_plugin_setup_with_credentials, + needs_access_keys: json.needs_access_keys, + bucket_writable: json.bucket_writable, + urls: json.urls + }; + } ); + // Update our local working copy of the settings. + update( $settings => { + return { ...json.settings }; + } ); + } + } + }; + } + + const settings = createSettings(); + + // Have the settings been changed from current server side settings? + const settings_changed = derived( [settings, current_settings], objectsDiffer ); + + // Convenience readable store of available storage providers. + const storage_providers = derived( [config, urls], ( [$config, $urls] ) => { + for ( const key in $config.storage_providers ) { + $config.storage_providers[ key ].icon = $urls.assets + "img/icon/provider/storage/" + $config.storage_providers[ key ].provider_key_name + ".svg"; + $config.storage_providers[ key ].link_icon = $urls.assets + "img/icon/provider/storage/" + $config.storage_providers[ key ].provider_key_name + "-link.svg"; + $config.storage_providers[ key ].round_icon = $urls.assets + "img/icon/provider/storage/" + $config.storage_providers[ key ].provider_key_name + "-round.svg"; + } + + return $config.storage_providers; + } ); + + // Convenience readable store of storage provider's details. + const storage_provider = derived( [settings, storage_providers], ( [$settings, $storage_providers] ) => { + if ( $settings.hasOwnProperty( "provider" ) && $storage_providers.hasOwnProperty( $settings.provider ) ) { + return $storage_providers[ $settings.provider ]; + } else { + return []; + } + } ); + + // Convenience readable store of available delivery providers. + const delivery_providers = derived( [config, urls, storage_provider], ( [$config, $urls, $storage_provider] ) => { + for ( const key in $config.delivery_providers ) { + if ( "storage" === key ) { + $config.delivery_providers[ key ].icon = $storage_provider.icon; + $config.delivery_providers[ key ].round_icon = $storage_provider.round_icon; + $config.delivery_providers[ key ].provider_service_quick_start_url = $storage_provider.provider_service_quick_start_url; + } else { + $config.delivery_providers[ key ].icon = $urls.assets + "img/icon/provider/delivery/" + $config.delivery_providers[ key ].provider_key_name + ".svg"; + $config.delivery_providers[ key ].round_icon = $urls.assets + "img/icon/provider/delivery/" + $config.delivery_providers[ key ].provider_key_name + "-round.svg"; + } + } + + return $config.delivery_providers; + } ); + + // Convenience readable store of delivery provider's details. + const delivery_provider = derived( [settings, delivery_providers, urls], ( [$settings, $delivery_providers, $urls] ) => { + if ( $settings.hasOwnProperty( "delivery-provider" ) && $delivery_providers.hasOwnProperty( $settings[ "delivery-provider" ] ) ) { + return $delivery_providers[ $settings[ "delivery-provider" ] ]; + } else { + return []; + } + } ); + + // Full name for current region. + const region_name = derived( [settings, storage_provider, strings], ( [$settings, $storage_provider, $strings] ) => { + if ( $settings.region && $storage_provider.regions && $storage_provider.regions.hasOwnProperty( $settings.region ) ) { + return $storage_provider.regions[ $settings.region ]; + } else if ( $settings.region && $storage_provider.regions ) { + // Region set but not available in list of regions. + return $strings.unknown; + } else if ( $storage_provider.default_region && $storage_provider.regions && $storage_provider.regions.hasOwnProperty( $storage_provider.default_region ) ) { + // Region not set but default available. + return $storage_provider.regions[ $storage_provider.default_region ]; + } else { + // Possibly no default region or regions available. + return $strings.unknown; + } + } ); + + // Convenience readable store of whether Block All Public Access is enabled. + const bapa = derived( [settings, storage_provider], ( [$settings, $storage_provider] ) => { + return $storage_provider.block_public_access_supported && $settings.hasOwnProperty( "block-public-access" ) && $settings[ "block-public-access" ]; + } ); + + // Convenience readable store of whether Object Ownership is enforced. + const ooe = derived( [settings, storage_provider], ( [$settings, $storage_provider] ) => { + return $storage_provider.object_ownership_supported && $settings.hasOwnProperty( "object-ownership-enforced" ) && $settings[ "object-ownership-enforced" ]; + } ); + + /** + * Creates a store of notifications. + * + * Example object in the array: + * { + * id: "error-message", + * type: "error", // error | warning | success | primary (default) + * dismissible: true, + * flash: true, // Optional, means notification is context specific and will not persist on server, defaults to true. + * inline: false, // Optional, unlikely to be true, included here for completeness. + * only_show_on_tab: "media-library", // Optional, blank/missing means on all tabs. + * heading: "Global Error: Something has gone terribly pear shaped.", // Optional. + * message: "We're so sorry, but unfortunately we're going to have to delete the year 2020.", // Optional. + * icon: "notification-error.svg", // Optional icon file name to be shown in front of heading. + * plainHeading: false, // Optional boolean as to whether a

    tag should be used instead of

    for heading content. + * extra: "", // Optional extra content to be shown in paragraph below message. + * links: [], // Optional list of links to be shown at bottom of notice. + * }, + * + * @return {Object} + */ + function createNotifications() { + const { subscribe, set, update } = writable( [] ); + + return { + set, + subscribe, + add( notification ) { + // There's a slight difference between our notification's formatting and what WP uses. + if ( notification.hasOwnProperty( "type" ) && notification.type === "updated" ) { + notification.type = "success"; + } + if ( notification.hasOwnProperty( "type" ) && notification.type === "notice-warning" ) { + notification.type = "warning"; + } + if ( notification.hasOwnProperty( "type" ) && notification.type === "notice-info" ) { + notification.type = "info"; + } + if ( + notification.hasOwnProperty( "message" ) && + (!notification.hasOwnProperty( "heading" ) || notification.heading.trim().length === 0) + ) { + notification.heading = notification.message; + notification.plainHeading = true; + delete notification.message; + } + if ( !notification.hasOwnProperty( "flash" ) ) { + notification.flash = true; + } + + // We need some sort of id for indexing and to ensure rendering is efficient. + if ( !notification.hasOwnProperty( "id" ) ) { + // Notifications are useless without at least a heading or message, so we can be sure at least one exists. + const idHeading = notification.hasOwnProperty( "heading" ) ? notification.heading.trim() : "dynamic-heading"; + const idMessage = notification.hasOwnProperty( "message" ) ? notification.message.trim() : "dynamic-message"; + + notification.id = btoa( idHeading + idMessage ); + } + + // So that rendering is efficient, but updates displayed notifications that re-use keys, + // we create a render_key based on id and created_at as created_at is churned on re-use. + const createdAt = notification.hasOwnProperty( "created_at" ) ? notification.created_at : 0; + notification.render_key = notification.id + "-" + createdAt; + + update( $notifications => { + // Maybe update a notification if id already exists. + let index = -1; + if ( notification.hasOwnProperty( "id" ) ) { + index = $notifications.findIndex( _notification => _notification.id === notification.id ); + } + + if ( index >= 0 ) { + // If the id exists but has been dismissed, add the replacement notification to the end of the array + // if given notification is newer, otherwise skip it entirely. + if ( $notifications[ index ].hasOwnProperty( "dismissed" ) ) { + if ( $notifications[ index ].dismissed < notification.created_at ) { + $notifications.push( notification ); + $notifications.splice( index, 1 ); + } + } else { + // Update existing. + $notifications.splice( index, 1, notification ); + } + } else { + // Add new. + $notifications.push( notification ); + } + + return $notifications.sort( this.sortCompare ); + } ); + }, + sortCompare( a, b ) { + // Sort by created_at in case an existing notification was updated. + if ( a.created_at < b.created_at ) { + return -1; + } + + if ( a.created_at > b.created_at ) { + return 1; + } + + return 0; + }, + async dismiss( id ) { + update( $notifications => { + const index = $notifications.findIndex( notification => notification.id === id ); + + // If the notification still exists, set a "dismissed" tombstone with the created_at value. + // The cleanup will delete any notifications that have been dismissed and no longer exist + // in the list of notifications retrieved from the server. + // The created_at value ensures that if a notification is retrieved from the server that + // has the same id but later created_at, then it can be added, otherwise it is skipped. + if ( index >= 0 ) { + if ( $notifications[ index ].hasOwnProperty( "created_at" ) ) { + $notifications[ index ].dismissed = $notifications[ index ].created_at; + } else { + // Notification likely did not come from server, maybe a local "flash" notification. + $notifications.splice( index, 1 ); + } + } + + return $notifications; + } ); + + // Tell server to dismiss notification, still ok to try if flash notification, makes sure it is definitely removed. + await api.delete( "notifications", { id: id, all_tabs: true } ); + }, + /** + * Delete removes a notification from the UI without telling the server. + */ + delete( id ) { + update( $notifications => { + const index = $notifications.findIndex( notification => notification.id === id ); + + if ( index >= 0 ) { + $notifications.splice( index, 1 ); + } + + return $notifications; + } ); + }, + cleanup( latest ) { + update( $notifications => { + for ( const [index, notification] of $notifications.entries() ) { + // Only clean up dismissed or server created notices that no longer exist. + if ( notification.hasOwnProperty( "dismissed" ) || notification.hasOwnProperty( "created_at" ) ) { + const latestIndex = latest.findIndex( _notification => _notification.id === notification.id ); + + // If server doesn't know about the notification anymore, remove it. + if ( latestIndex < 0 ) { + $notifications.splice( index, 1 ); + } + } + } + + return $notifications; + } ); + } + }; + } + + const notifications = createNotifications(); + + // Controller for periodic fetch of state info. + let stateFetchInterval; + let stateFetchIntervalStarted = false; + let stateFetchIntervalPaused = false; + + // Store of functions to call before an update of state processes the result into config. + const preStateUpdateCallbacks = writable( [] ); + + // Store of functions to call after an update of state processes the result into config. + const postStateUpdateCallbacks = writable( [] ); + + /** + * Store of functions to call when state info is updated, and actual API access methods. + * + * Functions are called after the returned state info has been used to update the config store. + * Therefore, functions should only be added to the store if extra processing is required. + * The functions should be asynchronous as they are part of the reactive chain and called with await. + * + * @return {Object} + */ + function createState() { + const { subscribe, set, update } = writable( [] ); + + return { + subscribe, + set, + update, + async fetch() { + const json = await api.get( "state", {} ); + + // Abort controller is still a bit hit or miss, so we'll go old skool. + if ( stateFetchIntervalStarted && !stateFetchIntervalPaused ) { + this.updateState( json ); + } + }, + updateState( json ) { + for ( const callable of get_store_value( preStateUpdateCallbacks ) ) { + callable( json ); + } + + const dirty = get_store_value( settings_changed ); + const previous_settings = { ...get_store_value( current_settings ) }; // cloned + + config.update( $config => { + return { ...$config, ...json }; + } ); + + // If the settings weren't changed before, they shouldn't be now. + if ( !dirty && get_store_value( settings_changed ) ) { + settings.reset(); + } + + // If settings are in middle of being changed when changes come in + // from server, reset to server version. + if ( dirty && objectsDiffer( [previous_settings, get_store_value( current_settings )] ) ) { + needs_refresh.update( $needs_refresh => true ); + settings.reset(); + } + + for ( const callable of get_store_value( postStateUpdateCallbacks ) ) { + callable( json ); + } + }, + startPeriodicFetch() { + stateFetchIntervalStarted = true; + stateFetchIntervalPaused = false; + + stateFetchInterval = setInterval( async () => { + await this.fetch(); + }, 5000 ); + }, + stopPeriodicFetch() { + stateFetchIntervalStarted = false; + stateFetchIntervalPaused = false; + + clearInterval( stateFetchInterval ); + }, + pausePeriodicFetch() { + if ( stateFetchIntervalStarted ) { + stateFetchIntervalPaused = true; + clearInterval( stateFetchInterval ); + } + }, + resumePeriodicFetch() { + stateFetchIntervalPaused = false; + + if ( stateFetchIntervalStarted ) { + this.startPeriodicFetch(); + } + } + }; + } + + const state = createState(); + + // API functions added here to avoid JSHint errors. + api.headers = () => { + return { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'X-WP-Nonce': get_store_value( nonce ) + }; + }; + + api.url = ( endpoint ) => { + return get_store_value( urls ).api + get_store_value( endpoints )[ endpoint ]; + }; + + api.get = async ( endpoint, params ) => { + let url = new URL( api.url( endpoint ) ); + + const searchParams = new URLSearchParams( params ); + + searchParams.forEach( function( value, name ) { + url.searchParams.set( name, value ); + } ); + + const response = await fetch( url.toString(), { + method: 'GET', + headers: api.headers() + } ); + return response.json().then( json => { + json = api.check_response( json ); + return json; + } ); + }; + + api.post = async ( endpoint, body ) => { + const response = await fetch( api.url( endpoint ), { + method: 'POST', + headers: api.headers(), + body: JSON.stringify( body ) + } ); + return response.json().then( json => { + json = api.check_response( json ); + return json; + } ); + }; + + api.put = async ( endpoint, body ) => { + const response = await fetch( api.url( endpoint ), { + method: 'PUT', + headers: api.headers(), + body: JSON.stringify( body ) + } ); + return response.json().then( json => { + json = api.check_response( json ); + return json; + } ); + }; + + api.delete = async ( endpoint, body ) => { + const response = await fetch( api.url( endpoint ), { + method: 'DELETE', + headers: api.headers(), + body: JSON.stringify( body ) + } ); + return response.json().then( json => { + json = api.check_response( json ); + return json; + } ); + }; + + api.check_errors = ( json ) => { + if ( json.code && json.message ) { + notifications.add( { + id: json.code, + type: 'error', + dismissible: true, + heading: get_store_value( strings ).api_error_notice_heading, + message: json.message + } ); + + // Just in case resultant json is expanded into a store. + delete json.code; + delete json.message; + } + + return json; + }; + + api.check_notifications = ( json ) => { + const _notifications = json.hasOwnProperty( "notifications" ) ? json.notifications : []; + if ( _notifications ) { + for ( const notification of _notifications ) { + notifications.add( notification ); + } + } + notifications.cleanup( _notifications ); + + // Just in case resultant json is expanded into a store. + delete json.notifications; + + return json; + }; + + api.check_response = ( json ) => { + json = api.check_notifications( json ); + json = api.check_errors( json ); + + return json; + }; + + /** + * @typedef {Object} WrappedComponent Object returned by the `wrap` method + * @property {SvelteComponent} component - Component to load (this is always asynchronous) + * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate + * @property {Object} [props] - Optional dictionary of static props + * @property {Object} [userData] - Optional user data dictionary + * @property {bool} _sveltesparouter - Internal flag; always set to true + */ + + /** + * @callback AsyncSvelteComponent + * @returns {Promise} Returns a Promise that resolves with a Svelte component + */ + + /** + * @callback RoutePrecondition + * @param {RouteDetail} detail - Route detail object + * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks) + */ + + /** + * @typedef {Object} WrapOptions Options object for the call to `wrap` + * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`) + * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`) + * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component + * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`) + * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed` + * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop. + * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order + */ + + /** + * Wraps a component to enable multiple capabilities: + * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting. + * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`) + * 3. Adding static props that are passed to the component + * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`) + * + * @param {WrapOptions} args - Arguments object + * @returns {WrappedComponent} Wrapped component + */ + function wrap$1(args) { + if (!args) { + throw Error('Parameter args is required') + } + + // We need to have one and only one of component and asyncComponent + // This does a "XNOR" + if (!args.component == !args.asyncComponent) { + throw Error('One and only one of component and asyncComponent is required') + } + + // If the component is not async, wrap it into a function returning a Promise + if (args.component) { + args.asyncComponent = () => Promise.resolve(args.component); + } + + // Parameter asyncComponent and each item of conditions must be functions + if (typeof args.asyncComponent != 'function') { + throw Error('Parameter asyncComponent must be a function') + } + if (args.conditions) { + // Ensure it's an array + if (!Array.isArray(args.conditions)) { + args.conditions = [args.conditions]; + } + for (let i = 0; i < args.conditions.length; i++) { + if (!args.conditions[i] || typeof args.conditions[i] != 'function') { + throw Error('Invalid parameter conditions[' + i + ']') + } + } + } + + // Check if we have a placeholder component + if (args.loadingComponent) { + args.asyncComponent.loading = args.loadingComponent; + args.asyncComponent.loadingParams = args.loadingParams || undefined; + } + + // Returns an object that contains all the functions to execute too + // The _sveltesparouter flag is to confirm the object was created by this router + const obj = { + component: args.asyncComponent, + userData: args.userData, + conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined, + props: (args.props && Object.keys(args.props).length) ? args.props : {}, + _sveltesparouter: true + }; + + return obj + } + + /** + * Creates store of default pages. + * + * Having a title means inclusion in main tabs. + * + * @return {Object} + */ + function createPages() { + // NOTE: get() only resolves after initialization, hence arrow functions for getting titles. + const { subscribe, set, update } = writable( [] ); + + return { + subscribe, + set, + add( page ) { + update( $pages => { + return [...$pages, page] + .sort( ( a, b ) => { + return a.position - b.position; + } ); + } ); + }, + withPrefix( prefix = null ) { + return get_store_value( this ).filter( ( page ) => { + return (prefix && page.route.startsWith( prefix )) || !prefix; + } ); + }, + routes( prefix = null ) { + let defaultComponent = null; + let defaultUserData = null; + const routes = new Map(); + + // If a page can be enabled/disabled, check whether it is enabled before displaying. + const conditions = [ + ( detail ) => { + if ( + detail.hasOwnProperty( "userData" ) && + detail.userData.hasOwnProperty( "page" ) && + detail.userData.page.hasOwnProperty( "enabled" ) + ) { + return detail.userData.page.enabled(); + } + + return true; + } + ]; + + for ( const page of this.withPrefix( prefix ) ) { + const userData = { page: page }; + + let route = page.route; + + if ( prefix && route !== prefix + "/*" ) { + route = route.replace( prefix, "" ); + } + + routes.set( route, wrap$1( { + component: page.component, + userData: userData, + conditions: conditions + } ) ); + + if ( !defaultComponent && page.default ) { + defaultComponent = page.component; + defaultUserData = userData; + } + } + + if ( defaultComponent ) { + routes.set( "*", wrap$1( { + component: defaultComponent, + userData: defaultUserData, + conditions: conditions + } ) ); + } + + return routes; + }, + handleRouteEvent( detail ) { + if ( detail.hasOwnProperty( "event" ) ) { + if ( !detail.hasOwnProperty( "data" ) ) { + detail.data = {}; + } + + // Find the first page that wants to handle the event + // , but also let other pages see the event + // so they can set any initial state etc. + let route = false; + for ( const page of get_store_value( this ).values() ) { + if ( page.events && page.events[ detail.event ] && page.events[ detail.event ]( detail.data ) && !route ) { + route = page.route; + } + } + + if ( route ) { + return route; + } + } + + if ( detail.hasOwnProperty( "default" ) ) { + return detail.default; + } + + return false; + } + }; + } + + const pages = createPages(); + + // Convenience readable store of all routes. + const routes = derived( pages, () => { + return pages.routes(); + } ); + + function parse(str, loose) { + if (str instanceof RegExp) return { keys:false, pattern:str }; + var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/'); + arr[0] || arr.shift(); + + while (tmp = arr.shift()) { + c = tmp[0]; + if (c === '*') { + keys.push('wild'); + pattern += '/(.*)'; + } else if (c === ':') { + o = tmp.indexOf('?', 1); + ext = tmp.indexOf('.', 1); + keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); + pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; + if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); + } else { + pattern += '/' + tmp; + } + } + + return { + keys: keys, + pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') + }; + } + + /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.49.0 */ + + const { Error: Error_1, Object: Object_1$3, console: console_1 } = globals; + + // (267:0) {:else} + function create_else_block$5(ctx) { + let switch_instance; + let switch_instance_anchor; + let current; + const switch_instance_spread_levels = [/*props*/ ctx[2]]; + var switch_value = /*component*/ ctx[0]; + + function switch_props(ctx) { + let switch_instance_props = {}; + + for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { + switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); + } + + return { + props: switch_instance_props, + $$inline: true + }; + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); + } + + const block = { + c: function create() { + if (switch_instance) create_component(switch_instance.$$.fragment); + switch_instance_anchor = empty(); + }, + m: function mount(target, anchor) { + if (switch_instance) { + mount_component(switch_instance, target, anchor); + } + + insert_dev(target, switch_instance_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const switch_instance_changes = (dirty & /*props*/ 4) + ? get_spread_update(switch_instance_spread_levels, [get_spread_object(/*props*/ ctx[2])]) + : {}; + + if (switch_value !== (switch_value = /*component*/ ctx[0])) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + + check_outros(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i: function intro(local) { + if (current) return; + if (switch_instance) transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o: function outro(local) { + if (switch_instance) transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(switch_instance_anchor); + if (switch_instance) destroy_component(switch_instance, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_else_block$5.name, + type: "else", + source: "(267:0) {:else}", + ctx + }); + + return block; + } + + // (260:0) {#if componentParams} + function create_if_block$q(ctx) { + let switch_instance; + let switch_instance_anchor; + let current; + const switch_instance_spread_levels = [{ params: /*componentParams*/ ctx[1] }, /*props*/ ctx[2]]; + var switch_value = /*component*/ ctx[0]; + + function switch_props(ctx) { + let switch_instance_props = {}; + + for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { + switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); + } + + return { + props: switch_instance_props, + $$inline: true + }; + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); + } + + const block = { + c: function create() { + if (switch_instance) create_component(switch_instance.$$.fragment); + switch_instance_anchor = empty(); + }, + m: function mount(target, anchor) { + if (switch_instance) { + mount_component(switch_instance, target, anchor); + } + + insert_dev(target, switch_instance_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const switch_instance_changes = (dirty & /*componentParams, props*/ 6) + ? get_spread_update(switch_instance_spread_levels, [ + dirty & /*componentParams*/ 2 && { params: /*componentParams*/ ctx[1] }, + dirty & /*props*/ 4 && get_spread_object(/*props*/ ctx[2]) + ]) + : {}; + + if (switch_value !== (switch_value = /*component*/ ctx[0])) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + + check_outros(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props()); + switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i: function intro(local) { + if (current) return; + if (switch_instance) transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o: function outro(local) { + if (switch_instance) transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(switch_instance_anchor); + if (switch_instance) destroy_component(switch_instance, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$q.name, + type: "if", + source: "(260:0) {#if componentParams}", + ctx + }); + + return block; + } + + function create_fragment$V(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block$q, create_else_block$5]; + const if_blocks = []; + + function select_block_type(ctx, dirty) { + if (/*componentParams*/ ctx[1]) return 0; + return 1; + } + + current_block_type_index = select_block_type(ctx); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + const block = { + c: function create() { + if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error_1("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx, dirty); + } else { + group_outros(); + + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + + check_outros(); + if_block = if_blocks[current_block_type_index]; + + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block.c(); + } else { + if_block.p(ctx, dirty); + } + + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if_blocks[current_block_type_index].d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$V.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function wrap(component, userData, ...conditions) { + // Use the new wrap method and show a deprecation warning + // eslint-disable-next-line no-console + console.warn('Method `wrap` from `svelte-spa-router` is deprecated and will be removed in a future version. Please use `svelte-spa-router/wrap` instead. See http://bit.ly/svelte-spa-router-upgrading'); + + return wrap$1({ component, userData, conditions }); + } + + /** + * @typedef {Object} Location + * @property {string} location - Location (page/view), for example `/book` + * @property {string} [querystring] - Querystring from the hash, as a string not parsed + */ + /** + * Returns the current location from the hash. + * + * @returns {Location} Location object + * @private + */ + function getLocation() { + const hashPosition = window.location.href.indexOf('#/'); + + let location = hashPosition > -1 + ? window.location.href.substr(hashPosition + 1) + : '/'; + + // Check if there's a querystring + const qsPosition = location.indexOf('?'); + + let querystring = ''; + + if (qsPosition > -1) { + querystring = location.substr(qsPosition + 1); + location = location.substr(0, qsPosition); + } + + return { location, querystring }; + } + + const loc = readable(null, // eslint-disable-next-line prefer-arrow-callback + function start(set) { + set(getLocation()); + + const update = () => { + set(getLocation()); + }; + + window.addEventListener('hashchange', update, false); + + return function stop() { + window.removeEventListener('hashchange', update, false); + }; + }); + + const location$1 = derived(loc, $loc => $loc.location); + const querystring = derived(loc, $loc => $loc.querystring); + const params = writable(undefined); + + async function push(location) { + if (!location || location.length < 1 || location.charAt(0) != '/' && location.indexOf('#/') !== 0) { + throw Error('Invalid parameter location'); + } + + // Execute this code when the current call stack is complete + await tick(); + + // Note: this will include scroll state in history even when restoreScrollState is false + history.replaceState( + { + ...history.state, + __svelte_spa_router_scrollX: window.scrollX, + __svelte_spa_router_scrollY: window.scrollY + }, + undefined + ); + + window.location.hash = (location.charAt(0) == '#' ? '' : '#') + location; + } + + async function pop() { + // Execute this code when the current call stack is complete + await tick(); + + window.history.back(); + } + + async function replace(location) { + if (!location || location.length < 1 || location.charAt(0) != '/' && location.indexOf('#/') !== 0) { + throw Error('Invalid parameter location'); + } + + // Execute this code when the current call stack is complete + await tick(); + + const dest = (location.charAt(0) == '#' ? '' : '#') + location; + + try { + const newState = { ...history.state }; + delete newState['__svelte_spa_router_scrollX']; + delete newState['__svelte_spa_router_scrollY']; + window.history.replaceState(newState, undefined, dest); + } catch(e) { + // eslint-disable-next-line no-console + console.warn('Caught exception while replacing the current page. If you\'re running this in the Svelte REPL, please note that the `replace` method might not work in this environment.'); + } + + // The method above doesn't trigger the hashchange event, so let's do that manually + window.dispatchEvent(new Event('hashchange')); + } + + function link(node, opts) { + opts = linkOpts(opts); + + // Only apply to tags + if (!node || !node.tagName || node.tagName.toLowerCase() != 'a') { + throw Error('Action "link" can only be used with tags'); + } + + updateLink(node, opts); + + return { + update(updated) { + updated = linkOpts(updated); + updateLink(node, updated); + } + }; + } + + function restoreScroll(state) { + // If this exists, then this is a back navigation: restore the scroll position + if (state) { + window.scrollTo(state.__svelte_spa_router_scrollX, state.__svelte_spa_router_scrollY); + } else { + // Otherwise this is a forward navigation: scroll to top + window.scrollTo(0, 0); + } + } + + // Internal function used by the link function + function updateLink(node, opts) { + let href = opts.href || node.getAttribute('href'); + + // Destination must start with '/' or '#/' + if (href && href.charAt(0) == '/') { + // Add # to the href attribute + href = '#' + href; + } else if (!href || href.length < 2 || href.slice(0, 2) != '#/') { + throw Error('Invalid value for "href" attribute: ' + href); + } + + node.setAttribute('href', href); + + node.addEventListener('click', event => { + // Prevent default anchor onclick behaviour + event.preventDefault(); + + if (!opts.disabled) { + scrollstateHistoryHandler(event.currentTarget.getAttribute('href')); + } + }); + } + + // Internal function that ensures the argument of the link action is always an object + function linkOpts(val) { + if (val && typeof val == 'string') { + return { href: val }; + } else { + return val || {}; + } + } + + /** + * The handler attached to an anchor tag responsible for updating the + * current history state with the current scroll state + * + * @param {string} href - Destination + */ + function scrollstateHistoryHandler(href) { + // Setting the url (3rd arg) to href will break clicking for reasons, so don't try to do that + history.replaceState( + { + ...history.state, + __svelte_spa_router_scrollX: window.scrollX, + __svelte_spa_router_scrollY: window.scrollY + }, + undefined + ); + + // This will force an update as desired, but this time our scroll state will be attached + window.location.hash = href; + } + + function instance$V($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Router', slots, []); + let { routes = {} } = $$props; + let { prefix = '' } = $$props; + let { restoreScrollState = false } = $$props; + + /** + * Container for a route: path, component + */ + class RouteItem { + /** + * Initializes the object and creates a regular expression from the path, using regexparam. + * + * @param {string} path - Path to the route (must start with '/' or '*') + * @param {SvelteComponent|WrappedComponent} component - Svelte component for the route, optionally wrapped + */ + constructor(path, component) { + if (!component || typeof component != 'function' && (typeof component != 'object' || component._sveltesparouter !== true)) { + throw Error('Invalid component object'); + } + + // Path must be a regular or expression, or a string starting with '/' or '*' + if (!path || typeof path == 'string' && (path.length < 1 || path.charAt(0) != '/' && path.charAt(0) != '*') || typeof path == 'object' && !(path instanceof RegExp)) { + throw Error('Invalid value for "path" argument - strings must start with / or *'); + } + + const { pattern, keys } = parse(path); + this.path = path; + + // Check if the component is wrapped and we have conditions + if (typeof component == 'object' && component._sveltesparouter === true) { + this.component = component.component; + this.conditions = component.conditions || []; + this.userData = component.userData; + this.props = component.props || {}; + } else { + // Convert the component to a function that returns a Promise, to normalize it + this.component = () => Promise.resolve(component); + + this.conditions = []; + this.props = {}; + } + + this._pattern = pattern; + this._keys = keys; + } + + /** + * Checks if `path` matches the current route. + * If there's a match, will return the list of parameters from the URL (if any). + * In case of no match, the method will return `null`. + * + * @param {string} path - Path to test + * @returns {null|Object.} List of paramters from the URL if there's a match, or `null` otherwise. + */ + match(path) { + // If there's a prefix, check if it matches the start of the path. + // If not, bail early, else remove it before we run the matching. + if (prefix) { + if (typeof prefix == 'string') { + if (path.startsWith(prefix)) { + path = path.substr(prefix.length) || '/'; + } else { + return null; + } + } else if (prefix instanceof RegExp) { + const match = path.match(prefix); + + if (match && match[0]) { + path = path.substr(match[0].length) || '/'; + } else { + return null; + } + } + } + + // Check if the pattern matches + const matches = this._pattern.exec(path); + + if (matches === null) { + return null; + } + + // If the input was a regular expression, this._keys would be false, so return matches as is + if (this._keys === false) { + return matches; + } + + const out = {}; + let i = 0; + + while (i < this._keys.length) { + // In the match parameters, URL-decode all values + try { + out[this._keys[i]] = decodeURIComponent(matches[i + 1] || '') || null; + } catch(e) { + out[this._keys[i]] = null; + } + + i++; + } + + return out; + } + + /** + * Dictionary with route details passed to the pre-conditions functions, as well as the `routeLoading`, `routeLoaded` and `conditionsFailed` events + * @typedef {Object} RouteDetail + * @property {string|RegExp} route - Route matched as defined in the route definition (could be a string or a reguar expression object) + * @property {string} location - Location path + * @property {string} querystring - Querystring from the hash + * @property {object} [userData] - Custom data passed by the user + * @property {SvelteComponent} [component] - Svelte component (only in `routeLoaded` events) + * @property {string} [name] - Name of the Svelte component (only in `routeLoaded` events) + */ + /** + * Executes all conditions (if any) to control whether the route can be shown. Conditions are executed in the order they are defined, and if a condition fails, the following ones aren't executed. + * + * @param {RouteDetail} detail - Route detail + * @returns {boolean} Returns true if all the conditions succeeded + */ + async checkConditions(detail) { + for (let i = 0; i < this.conditions.length; i++) { + if (!await this.conditions[i](detail)) { + return false; + } + } + + return true; + } + } + + // Set up all routes + const routesList = []; + + if (routes instanceof Map) { + // If it's a map, iterate on it right away + routes.forEach((route, path) => { + routesList.push(new RouteItem(path, route)); + }); + } else { + // We have an object, so iterate on its own properties + Object.keys(routes).forEach(path => { + routesList.push(new RouteItem(path, routes[path])); + }); + } + + // Props for the component to render + let component = null; + + let componentParams = null; + let props = {}; + + // Event dispatcher from Svelte + const dispatch = createEventDispatcher(); + + // Just like dispatch, but executes on the next iteration of the event loop + async function dispatchNextTick(name, detail) { + // Execute this code when the current call stack is complete + await tick(); + + dispatch(name, detail); + } + + // If this is set, then that means we have popped into this var the state of our last scroll position + let previousScrollState = null; + + let popStateChanged = null; + + if (restoreScrollState) { + popStateChanged = event => { + // If this event was from our history.replaceState, event.state will contain + // our scroll history. Otherwise, event.state will be null (like on forward + // navigation) + if (event.state && (event.state.__svelte_spa_router_scrollY || event.state.__svelte_spa_router_scrollX)) { + previousScrollState = event.state; + } else { + previousScrollState = null; + } + }; + + // This is removed in the destroy() invocation below + window.addEventListener('popstate', popStateChanged); + + afterUpdate(() => { + restoreScroll(previousScrollState); + }); + } + + // Always have the latest value of loc + let lastLoc = null; + + // Current object of the component loaded + let componentObj = null; + + // Handle hash change events + // Listen to changes in the $loc store and update the page + // Do not use the $: syntax because it gets triggered by too many things + const unsubscribeLoc = loc.subscribe(async newLoc => { + lastLoc = newLoc; + + // Find a route matching the location + let i = 0; + + while (i < routesList.length) { + const match = routesList[i].match(newLoc.location); + + if (!match) { + i++; + continue; + } + + const detail = { + route: routesList[i].path, + location: newLoc.location, + querystring: newLoc.querystring, + userData: routesList[i].userData, + params: match && typeof match == 'object' && Object.keys(match).length + ? match + : null + }; + + // Check if the route can be loaded - if all conditions succeed + if (!await routesList[i].checkConditions(detail)) { + // Don't display anything + $$invalidate(0, component = null); + + componentObj = null; + + // Trigger an event to notify the user, then exit + dispatchNextTick('conditionsFailed', detail); + + return; + } + + // Trigger an event to alert that we're loading the route + // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick + dispatchNextTick('routeLoading', Object.assign({}, detail)); + + // If there's a component to show while we're loading the route, display it + const obj = routesList[i].component; + + // Do not replace the component if we're loading the same one as before, to avoid the route being unmounted and re-mounted + if (componentObj != obj) { + if (obj.loading) { + $$invalidate(0, component = obj.loading); + componentObj = obj; + $$invalidate(1, componentParams = obj.loadingParams); + $$invalidate(2, props = {}); + + // Trigger the routeLoaded event for the loading component + // Create a copy of detail so we don't modify the object for the dynamic route (and the dynamic route doesn't modify our object too) + dispatchNextTick('routeLoaded', Object.assign({}, detail, { + component, + name: component.name, + params: componentParams + })); + } else { + $$invalidate(0, component = null); + componentObj = null; + } + + // Invoke the Promise + const loaded = await obj(); + + // Now that we're here, after the promise resolved, check if we still want this component, as the user might have navigated to another page in the meanwhile + if (newLoc != lastLoc) { + // Don't update the component, just exit + return; + } + + // If there is a "default" property, which is used by async routes, then pick that + $$invalidate(0, component = loaded && loaded.default || loaded); + + componentObj = obj; + } + + // Set componentParams only if we have a match, to avoid a warning similar to ` was created with unknown prop 'params'` + // Of course, this assumes that developers always add a "params" prop when they are expecting parameters + if (match && typeof match == 'object' && Object.keys(match).length) { + $$invalidate(1, componentParams = match); + } else { + $$invalidate(1, componentParams = null); + } + + // Set static props, if any + $$invalidate(2, props = routesList[i].props); + + // Dispatch the routeLoaded event then exit + // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick + dispatchNextTick('routeLoaded', Object.assign({}, detail, { + component, + name: component.name, + params: componentParams + })).then(() => { + params.set(componentParams); + }); + + return; + } + + // If we're still here, there was no match, so show the empty component + $$invalidate(0, component = null); + + componentObj = null; + params.set(undefined); + }); + + onDestroy(() => { + unsubscribeLoc(); + popStateChanged && window.removeEventListener('popstate', popStateChanged); + }); + + const writable_props = ['routes', 'prefix', 'restoreScrollState']; + + Object_1$3.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(` was created with unknown prop '${key}'`); + }); + + function routeEvent_handler(event) { + bubble.call(this, $$self, event); + } + + function routeEvent_handler_1(event) { + bubble.call(this, $$self, event); + } + + $$self.$$set = $$props => { + if ('routes' in $$props) $$invalidate(3, routes = $$props.routes); + if ('prefix' in $$props) $$invalidate(4, prefix = $$props.prefix); + if ('restoreScrollState' in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); + }; + + $$self.$capture_state = () => ({ + readable, + writable, + derived, + tick, + _wrap: wrap$1, + wrap, + getLocation, + loc, + location: location$1, + querystring, + params, + push, + pop, + replace, + link, + restoreScroll, + updateLink, + linkOpts, + scrollstateHistoryHandler, + onDestroy, + createEventDispatcher, + afterUpdate, + parse, + routes, + prefix, + restoreScrollState, + RouteItem, + routesList, + component, + componentParams, + props, + dispatch, + dispatchNextTick, + previousScrollState, + popStateChanged, + lastLoc, + componentObj, + unsubscribeLoc + }); + + $$self.$inject_state = $$props => { + if ('routes' in $$props) $$invalidate(3, routes = $$props.routes); + if ('prefix' in $$props) $$invalidate(4, prefix = $$props.prefix); + if ('restoreScrollState' in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); + if ('component' in $$props) $$invalidate(0, component = $$props.component); + if ('componentParams' in $$props) $$invalidate(1, componentParams = $$props.componentParams); + if ('props' in $$props) $$invalidate(2, props = $$props.props); + if ('previousScrollState' in $$props) previousScrollState = $$props.previousScrollState; + if ('popStateChanged' in $$props) popStateChanged = $$props.popStateChanged; + if ('lastLoc' in $$props) lastLoc = $$props.lastLoc; + if ('componentObj' in $$props) componentObj = $$props.componentObj; + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*restoreScrollState*/ 32) { + // Update history.scrollRestoration depending on restoreScrollState + history.scrollRestoration = restoreScrollState ? 'manual' : 'auto'; + } + }; + + return [ + component, + componentParams, + props, + routes, + prefix, + restoreScrollState, + routeEvent_handler, + routeEvent_handler_1 + ]; + } + + class Router extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$V, create_fragment$V, safe_not_equal, { + routes: 3, + prefix: 4, + restoreScrollState: 5 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Router", + options, + id: create_fragment$V.name + }); + } + + get routes() { + throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set routes(value) { + throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get prefix() { + throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set prefix(value) { + throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get restoreScrollState() { + throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set restoreScrollState(value) { + throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/Page.svelte generated by Svelte v3.49.0 */ + const file$N = "src/amazon-s3-and-cloudfront/ui/components/Page.svelte"; + + function create_fragment$U(ctx) { + let div; + let div_class_value; + let current; + const default_slot_template = /*#slots*/ ctx[4].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[3], null); + + const block = { + c: function create() { + div = element("div"); + if (default_slot) default_slot.c(); + attr_dev(div, "class", div_class_value = "page-wrapper " + /*name*/ ctx[0]); + toggle_class(div, "subpage", /*subpage*/ ctx[1]); + add_location(div, file$N, 30, 0, 796); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 8)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[3], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[3]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[3], dirty, null), + null + ); + } + } + + if (!current || dirty & /*name*/ 1 && div_class_value !== (div_class_value = "page-wrapper " + /*name*/ ctx[0])) { + attr_dev(div, "class", div_class_value); + } + + if (dirty & /*name, subpage*/ 3) { + toggle_class(div, "subpage", /*subpage*/ ctx[1]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$U.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$U($$self, $$props, $$invalidate) { + let $location; + let $current_settings; + validate_store(location$1, 'location'); + component_subscribe($$self, location$1, $$value => $$invalidate(5, $location = $$value)); + validate_store(current_settings, 'current_settings'); + component_subscribe($$self, current_settings, $$value => $$invalidate(6, $current_settings = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Page', slots, ['default']); + let { name = "" } = $$props; + let { subpage = false } = $$props; + let { initialSettings = $current_settings } = $$props; + const dispatch = createEventDispatcher(); + + // When a page is created, store a copy of the initial settings + // so they can be compared with any changes later. + setContext("initialSettings", initialSettings); + + // Tell the route event handlers about the initial settings too. + onMount(() => { + dispatch("routeEvent", { + event: "page.initial.settings", + data: { + settings: initialSettings, + location: $location + } + }); + }); + + const writable_props = ['name', 'subpage', 'initialSettings']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('subpage' in $$props) $$invalidate(1, subpage = $$props.subpage); + if ('initialSettings' in $$props) $$invalidate(2, initialSettings = $$props.initialSettings); + if ('$$scope' in $$props) $$invalidate(3, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ + onMount, + createEventDispatcher, + setContext, + location: location$1, + current_settings, + name, + subpage, + initialSettings, + dispatch, + $location, + $current_settings + }); + + $$self.$inject_state = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('subpage' in $$props) $$invalidate(1, subpage = $$props.subpage); + if ('initialSettings' in $$props) $$invalidate(2, initialSettings = $$props.initialSettings); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [name, subpage, initialSettings, $$scope, slots]; + } + + class Page extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$U, create_fragment$U, safe_not_equal, { name: 0, subpage: 1, initialSettings: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Page", + options, + id: create_fragment$U.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get subpage() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set subpage(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get initialSettings() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set initialSettings(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + function cubicOut(t) { + const f = t - 1.0; + return f * f * f + 1.0; + } + + function slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + return { + delay, + duration, + easing, + css: t => 'overflow: hidden;' + + `opacity: ${Math.min(t * 20, 1) * opacity};` + + `height: ${t * height}px;` + + `padding-top: ${t * padding_top}px;` + + `padding-bottom: ${t * padding_bottom}px;` + + `margin-top: ${t * margin_top}px;` + + `margin-bottom: ${t * margin_bottom}px;` + + `border-top-width: ${t * border_top_width}px;` + + `border-bottom-width: ${t * border_bottom_width}px;` + }; + } + function scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) { + const style = getComputedStyle(node); + const target_opacity = +style.opacity; + const transform = style.transform === 'none' ? '' : style.transform; + const sd = 1 - start; + const od = target_opacity * (1 - opacity); + return { + delay, + duration, + easing, + css: (_t, u) => ` + transform: ${transform} scale(${1 - (sd * u)}); + opacity: ${target_opacity - (od * u)} + ` + }; + } + + /* src/amazon-s3-and-cloudfront/ui/components/Notification.svelte generated by Svelte v3.49.0 */ + const file$M = "src/amazon-s3-and-cloudfront/ui/components/Notification.svelte"; + const get_details_slot_changes = dirty => ({}); + const get_details_slot_context = ctx => ({}); + + // (95:2) {#if iconURL} + function create_if_block_8$3(ctx) { + let div; + let img; + let img_src_value; + let img_alt_value; + let div_resize_listener; + + const block = { + c: function create() { + div = element("div"); + img = element("img"); + attr_dev(img, "class", "icon type"); + if (!src_url_equal(img.src, img_src_value = /*iconURL*/ ctx[18])) attr_dev(img, "src", img_src_value); + attr_dev(img, "alt", img_alt_value = "" + (/*notification*/ ctx[0].type + " icon")); + add_location(img, file$M, 96, 4, 2620); + attr_dev(div, "class", "icon type"); + add_render_callback(() => /*div_elementresize_handler*/ ctx[24].call(div)); + add_location(div, file$M, 95, 3, 2561); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, img); + div_resize_listener = add_resize_listener(div, /*div_elementresize_handler*/ ctx[24].bind(div)); + }, + p: function update(ctx, dirty) { + if (dirty & /*iconURL*/ 262144 && !src_url_equal(img.src, img_src_value = /*iconURL*/ ctx[18])) { + attr_dev(img, "src", img_src_value); + } + + if (dirty & /*notification*/ 1 && img_alt_value !== (img_alt_value = "" + (/*notification*/ ctx[0].type + " icon"))) { + attr_dev(img, "alt", img_alt_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + div_resize_listener(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_8$3.name, + type: "if", + source: "(95:2) {#if iconURL}", + ctx + }); + + return block; + } + + // (101:3) {#if heading || dismissible || expandable} + function create_if_block_2$8(ctx) { + let div; + let t; + let if_block0 = /*heading*/ ctx[8] && create_if_block_6$4(ctx); + + function select_block_type_1(ctx, dirty) { + if (/*dismissible*/ ctx[9] && /*expandable*/ ctx[12]) return create_if_block_3$5; + if (/*expandable*/ ctx[12]) return create_if_block_4$5; + if (/*dismissible*/ ctx[9]) return create_if_block_5$4; + } + + let current_block_type = select_block_type_1(ctx); + let if_block1 = current_block_type && current_block_type(ctx); + + const block = { + c: function create() { + div = element("div"); + if (if_block0) if_block0.c(); + t = space(); + if (if_block1) if_block1.c(); + attr_dev(div, "class", "heading"); + add_location(div, file$M, 101, 4, 2810); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block0) if_block0.m(div, null); + append_dev(div, t); + if (if_block1) if_block1.m(div, null); + }, + p: function update(ctx, dirty) { + if (/*heading*/ ctx[8]) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_6$4(ctx); + if_block0.c(); + if_block0.m(div, t); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block1) { + if_block1.p(ctx, dirty); + } else { + if (if_block1) if_block1.d(1); + if_block1 = current_block_type && current_block_type(ctx); + + if (if_block1) { + if_block1.c(); + if_block1.m(div, null); + } + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block0) if_block0.d(); + + if (if_block1) { + if_block1.d(); + } + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2$8.name, + type: "if", + source: "(101:3) {#if heading || dismissible || expandable}", + ctx + }); + + return block; + } + + // (103:5) {#if heading} + function create_if_block_6$4(ctx) { + let if_block_anchor; + + function select_block_type(ctx, dirty) { + if (/*plainHeading*/ ctx[10]) return create_if_block_7$4; + return create_else_block$4; + } + + let current_block_type = select_block_type(ctx); + let if_block = current_block_type(ctx); + + const block = { + c: function create() { + if_block.c(); + if_block_anchor = empty(); + }, + m: function mount(target, anchor) { + if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + }, + p: function update(ctx, dirty) { + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { + if_block.p(ctx, dirty); + } else { + if_block.d(1); + if_block = current_block_type(ctx); + + if (if_block) { + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } + }, + d: function destroy(detaching) { + if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_6$4.name, + type: "if", + source: "(103:5) {#if heading}", + ctx + }); + + return block; + } + + // (106:6) {:else} + function create_else_block$4(ctx) { + let h3; + + const block = { + c: function create() { + h3 = element("h3"); + add_location(h3, file$M, 106, 7, 2927); + }, + m: function mount(target, anchor) { + insert_dev(target, h3, anchor); + h3.innerHTML = /*heading*/ ctx[8]; + }, + p: function update(ctx, dirty) { + if (dirty & /*heading*/ 256) h3.innerHTML = /*heading*/ ctx[8]; }, + d: function destroy(detaching) { + if (detaching) detach_dev(h3); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_else_block$4.name, + type: "else", + source: "(106:6) {:else}", + ctx + }); + + return block; + } + + // (104:6) {#if plainHeading} + function create_if_block_7$4(ctx) { + let p; + + const block = { + c: function create() { + p = element("p"); + add_location(p, file$M, 104, 7, 2883); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = /*heading*/ ctx[8]; + }, + p: function update(ctx, dirty) { + if (dirty & /*heading*/ 256) p.innerHTML = /*heading*/ ctx[8]; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_7$4.name, + type: "if", + source: "(104:6) {#if plainHeading}", + ctx + }); + + return block; + } + + // (115:27) + function create_if_block_5$4(ctx) { + let button; + let button_title_value; + let mounted; + let dispose; + + const block = { + c: function create() { + button = element("button"); + attr_dev(button, "class", "icon close"); + attr_dev(button, "title", button_title_value = /*$strings*/ ctx[19]["dismiss_notice"]); + add_location(button, file$M, 115, 6, 3546); + }, + m: function mount(target, anchor) { + insert_dev(target, button, anchor); + + if (!mounted) { + dispose = listen_dev(button, "click", prevent_default(/*click_handler_2*/ ctx[27]), false, true, false); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*$strings*/ 524288 && button_title_value !== (button_title_value = /*$strings*/ ctx[19]["dismiss_notice"])) { + attr_dev(button, "title", button_title_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(button); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_5$4.name, + type: "if", + source: "(115:27) ", + ctx + }); + + return block; + } + + // (113:26) + function create_if_block_4$5(ctx) { + let button; + let button_title_value; + let mounted; + let dispose; + + const block = { + c: function create() { + button = element("button"); + attr_dev(button, "class", "expandable"); + + attr_dev(button, "title", button_title_value = /*expanded*/ ctx[1] + ? /*$strings*/ ctx[19].hide_details + : /*$strings*/ ctx[19].show_details); + + toggle_class(button, "expanded", /*expanded*/ ctx[1]); + add_location(button, file$M, 113, 6, 3342); + }, + m: function mount(target, anchor) { + insert_dev(target, button, anchor); + + if (!mounted) { + dispose = listen_dev(button, "click", prevent_default(/*click_handler_1*/ ctx[26]), false, true, false); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*expanded, $strings*/ 524290 && button_title_value !== (button_title_value = /*expanded*/ ctx[1] + ? /*$strings*/ ctx[19].hide_details + : /*$strings*/ ctx[19].show_details)) { + attr_dev(button, "title", button_title_value); + } + + if (dirty & /*expanded*/ 2) { + toggle_class(button, "expanded", /*expanded*/ ctx[1]); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(button); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_4$5.name, + type: "if", + source: "(113:26) ", + ctx + }); + + return block; + } + + // (110:5) {#if dismissible && expandable} + function create_if_block_3$5(ctx) { + let button0; + let t0_value = /*$strings*/ ctx[19].dismiss_all + ""; + let t0; + let t1; + let button1; + let button1_title_value; + let mounted; + let dispose; + + const block = { + c: function create() { + button0 = element("button"); + t0 = text(t0_value); + t1 = space(); + button1 = element("button"); + attr_dev(button0, "class", "dismiss"); + add_location(button0, file$M, 110, 6, 3018); + attr_dev(button1, "class", "expandable"); + + attr_dev(button1, "title", button1_title_value = /*expanded*/ ctx[1] + ? /*$strings*/ ctx[19].hide_details + : /*$strings*/ ctx[19].show_details); + + toggle_class(button1, "expanded", /*expanded*/ ctx[1]); + add_location(button1, file$M, 111, 6, 3139); + }, + m: function mount(target, anchor) { + insert_dev(target, button0, anchor); + append_dev(button0, t0); + insert_dev(target, t1, anchor); + insert_dev(target, button1, anchor); + + if (!mounted) { + dispose = [ + listen_dev( + button0, + "click", + prevent_default(function () { + if (is_function(notifications.dismiss(/*unique_id*/ ctx[2]))) notifications.dismiss(/*unique_id*/ ctx[2]).apply(this, arguments); + }), + false, + true, + false + ), + listen_dev(button1, "click", prevent_default(/*click_handler*/ ctx[25]), false, true, false) + ]; + + mounted = true; + } + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + if (dirty & /*$strings*/ 524288 && t0_value !== (t0_value = /*$strings*/ ctx[19].dismiss_all + "")) set_data_dev(t0, t0_value); + + if (dirty & /*expanded, $strings*/ 524290 && button1_title_value !== (button1_title_value = /*expanded*/ ctx[1] + ? /*$strings*/ ctx[19].hide_details + : /*$strings*/ ctx[19].show_details)) { + attr_dev(button1, "title", button1_title_value); + } + + if (dirty & /*expanded*/ 2) { + toggle_class(button1, "expanded", /*expanded*/ ctx[1]); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(button0); + if (detaching) detach_dev(t1); + if (detaching) detach_dev(button1); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3$5.name, + type: "if", + source: "(110:5) {#if dismissible && expandable}", + ctx + }); + + return block; + } + + // (121:3) {#if extra} + function create_if_block_1$b(ctx) { + let p; + + const block = { + c: function create() { + p = element("p"); + add_location(p, file$M, 121, 4, 3744); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = /*extra*/ ctx[11]; + }, + p: function update(ctx, dirty) { + if (dirty & /*extra*/ 2048) p.innerHTML = /*extra*/ ctx[11]; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$b.name, + type: "if", + source: "(121:3) {#if extra}", + ctx + }); + + return block; + } + + // (124:3) {#if linksHTML} + function create_if_block$p(ctx) { + let p; + + const block = { + c: function create() { + p = element("p"); + attr_dev(p, "class", "links"); + add_location(p, file$M, 124, 4, 3797); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = /*linksHTML*/ ctx[16]; + }, + p: function update(ctx, dirty) { + if (dirty & /*linksHTML*/ 65536) p.innerHTML = /*linksHTML*/ ctx[16]; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$p.name, + type: "if", + source: "(124:3) {#if linksHTML}", + ctx + }); + + return block; + } + + function create_fragment$T(ctx) { + let div2; + let div1; + let t0; + let div0; + let t1; + let t2; + let t3; + let div0_resize_listener; + let t4; + let div2_transition; + let current; + let if_block0 = /*iconURL*/ ctx[18] && create_if_block_8$3(ctx); + let if_block1 = (/*heading*/ ctx[8] || /*dismissible*/ ctx[9] || /*expandable*/ ctx[12]) && create_if_block_2$8(ctx); + const default_slot_template = /*#slots*/ ctx[23].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[22], null); + let if_block2 = /*extra*/ ctx[11] && create_if_block_1$b(ctx); + let if_block3 = /*linksHTML*/ ctx[16] && create_if_block$p(ctx); + const details_slot_template = /*#slots*/ ctx[23].details; + const details_slot = create_slot(details_slot_template, ctx, /*$$scope*/ ctx[22], get_details_slot_context); + + const block = { + c: function create() { + div2 = element("div"); + div1 = element("div"); + if (if_block0) if_block0.c(); + t0 = space(); + div0 = element("div"); + if (if_block1) if_block1.c(); + t1 = space(); + if (default_slot) default_slot.c(); + t2 = space(); + if (if_block2) if_block2.c(); + t3 = space(); + if (if_block3) if_block3.c(); + t4 = space(); + if (details_slot) details_slot.c(); + attr_dev(div0, "class", "body"); + add_render_callback(() => /*div0_elementresize_handler*/ ctx[28].call(div0)); + add_location(div0, file$M, 99, 2, 2710); + attr_dev(div1, "class", "content"); + add_location(div1, file$M, 93, 1, 2520); + attr_dev(div2, "class", "notification"); + toggle_class(div2, "inline", /*inline*/ ctx[3]); + toggle_class(div2, "wordpress", /*wordpress*/ ctx[4]); + toggle_class(div2, "success", /*success*/ ctx[5]); + toggle_class(div2, "warning", /*warning*/ ctx[6]); + toggle_class(div2, "error", /*error*/ ctx[7]); + toggle_class(div2, "info", /*info*/ ctx[15]); + toggle_class(div2, "multiline", /*multiline*/ ctx[17]); + toggle_class(div2, "expandable", /*expandable*/ ctx[12]); + toggle_class(div2, "expanded", /*expanded*/ ctx[1]); + add_location(div2, file$M, 80, 0, 2329); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div2, anchor); + append_dev(div2, div1); + if (if_block0) if_block0.m(div1, null); + append_dev(div1, t0); + append_dev(div1, div0); + if (if_block1) if_block1.m(div0, null); + append_dev(div0, t1); + + if (default_slot) { + default_slot.m(div0, null); + } + + append_dev(div0, t2); + if (if_block2) if_block2.m(div0, null); + append_dev(div0, t3); + if (if_block3) if_block3.m(div0, null); + div0_resize_listener = add_resize_listener(div0, /*div0_elementresize_handler*/ ctx[28].bind(div0)); + append_dev(div2, t4); + + if (details_slot) { + details_slot.m(div2, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*iconURL*/ ctx[18]) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_8$3(ctx); + if_block0.c(); + if_block0.m(div1, t0); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (/*heading*/ ctx[8] || /*dismissible*/ ctx[9] || /*expandable*/ ctx[12]) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_2$8(ctx); + if_block1.c(); + if_block1.m(div0, t1); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 4194304)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[22], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[22]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[22], dirty, null), + null + ); + } + } + + if (/*extra*/ ctx[11]) { + if (if_block2) { + if_block2.p(ctx, dirty); + } else { + if_block2 = create_if_block_1$b(ctx); + if_block2.c(); + if_block2.m(div0, t3); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + + if (/*linksHTML*/ ctx[16]) { + if (if_block3) { + if_block3.p(ctx, dirty); + } else { + if_block3 = create_if_block$p(ctx); + if_block3.c(); + if_block3.m(div0, null); + } + } else if (if_block3) { + if_block3.d(1); + if_block3 = null; + } + + if (details_slot) { + if (details_slot.p && (!current || dirty & /*$$scope*/ 4194304)) { + update_slot_base( + details_slot, + details_slot_template, + ctx, + /*$$scope*/ ctx[22], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[22]) + : get_slot_changes(details_slot_template, /*$$scope*/ ctx[22], dirty, get_details_slot_changes), + get_details_slot_context + ); + } + } + + if (dirty & /*inline*/ 8) { + toggle_class(div2, "inline", /*inline*/ ctx[3]); + } + + if (dirty & /*wordpress*/ 16) { + toggle_class(div2, "wordpress", /*wordpress*/ ctx[4]); + } + + if (dirty & /*success*/ 32) { + toggle_class(div2, "success", /*success*/ ctx[5]); + } + + if (dirty & /*warning*/ 64) { + toggle_class(div2, "warning", /*warning*/ ctx[6]); + } + + if (dirty & /*error*/ 128) { + toggle_class(div2, "error", /*error*/ ctx[7]); + } + + if (dirty & /*info*/ 32768) { + toggle_class(div2, "info", /*info*/ ctx[15]); + } + + if (dirty & /*multiline*/ 131072) { + toggle_class(div2, "multiline", /*multiline*/ ctx[17]); + } + + if (dirty & /*expandable*/ 4096) { + toggle_class(div2, "expandable", /*expandable*/ ctx[12]); + } + + if (dirty & /*expanded*/ 2) { + toggle_class(div2, "expanded", /*expanded*/ ctx[1]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + transition_in(details_slot, local); + + if (local) { + add_render_callback(() => { + if (!div2_transition) div2_transition = create_bidirectional_transition(div2, slide, {}, true); + div2_transition.run(1); + }); + } + + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + transition_out(details_slot, local); + + if (local) { + if (!div2_transition) div2_transition = create_bidirectional_transition(div2, slide, {}, false); + div2_transition.run(0); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div2); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + if (default_slot) default_slot.d(detaching); + if (if_block2) if_block2.d(); + if (if_block3) if_block3.d(); + div0_resize_listener(); + if (details_slot) details_slot.d(detaching); + if (detaching && div2_transition) div2_transition.end(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$T.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function getLinksHTML(links) { + if (links.length) { + return links.join(" "); + } + + return ""; + } + + function instance$T($$self, $$props, $$invalidate) { + let iconURL; + let multiline; + let linksHTML; + let $urls; + let $strings; + validate_store(urls, 'urls'); + component_subscribe($$self, urls, $$value => $$invalidate(29, $urls = $$value)); + validate_store(strings, 'strings'); + component_subscribe($$self, strings, $$value => $$invalidate(19, $strings = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Notification', slots, ['default','details']); + let { notification = {} } = $$props; + let { unique_id = notification.id ? notification.id : "" } = $$props; + let { inline = notification.inline ? notification.inline : false } = $$props; + let { wordpress = notification.wordpress ? notification.wordpress : false } = $$props; + let { success = notification.type === "success" } = $$props; + let { warning = notification.type === "warning" } = $$props; + let { error = notification.type === "error" } = $$props; + let info = false; + + // It's possible to set type purely by component property, + // but we need notification.type to be correct too. + if (success) { + notification.type = "success"; + } else if (warning) { + notification.type = "warning"; + } else if (error) { + notification.type = "error"; + } else { + info = true; + notification.type = "info"; + } + + let { heading = notification.hasOwnProperty("heading") && notification.heading.trim().length + ? notification.heading.trim() + : "" } = $$props; + + let { dismissible = notification.dismissible + ? notification.dismissible + : false } = $$props; + + let { icon = notification.icon ? notification.icon : false } = $$props; + + let { plainHeading = notification.plainHeading + ? notification.plainHeading + : false } = $$props; + + let { extra = notification.extra ? notification.extra : "" } = $$props; + let { links = notification.links ? notification.links : [] } = $$props; + let { expandable = false } = $$props; + let { expanded = false } = $$props; + + /** + * Returns the icon URL for the notification. + * + * @param {string|boolean} icon + * @param {string} notificationType + * + * @return {string} + */ + function getIconURL(icon, notificationType) { + if (icon) { + return $urls.assets + "img/icon/" + icon; + } + + return $urls.assets + "img/icon/notification-" + notificationType + ".svg"; + } + + // We need to change various properties and alignments if text is multiline. + let iconHeight = 0; + + let bodyHeight = 0; + + const writable_props = [ + 'notification', + 'unique_id', + 'inline', + 'wordpress', + 'success', + 'warning', + 'error', + 'heading', + 'dismissible', + 'icon', + 'plainHeading', + 'extra', + 'links', + 'expandable', + 'expanded' + ]; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + function div_elementresize_handler() { + iconHeight = this.clientHeight; + $$invalidate(13, iconHeight); + } + + const click_handler = () => $$invalidate(1, expanded = !expanded); + const click_handler_1 = () => $$invalidate(1, expanded = !expanded); + const click_handler_2 = () => notifications.dismiss(unique_id); + + function div0_elementresize_handler() { + bodyHeight = this.clientHeight; + $$invalidate(14, bodyHeight); + } + + $$self.$$set = $$props => { + if ('notification' in $$props) $$invalidate(0, notification = $$props.notification); + if ('unique_id' in $$props) $$invalidate(2, unique_id = $$props.unique_id); + if ('inline' in $$props) $$invalidate(3, inline = $$props.inline); + if ('wordpress' in $$props) $$invalidate(4, wordpress = $$props.wordpress); + if ('success' in $$props) $$invalidate(5, success = $$props.success); + if ('warning' in $$props) $$invalidate(6, warning = $$props.warning); + if ('error' in $$props) $$invalidate(7, error = $$props.error); + if ('heading' in $$props) $$invalidate(8, heading = $$props.heading); + if ('dismissible' in $$props) $$invalidate(9, dismissible = $$props.dismissible); + if ('icon' in $$props) $$invalidate(20, icon = $$props.icon); + if ('plainHeading' in $$props) $$invalidate(10, plainHeading = $$props.plainHeading); + if ('extra' in $$props) $$invalidate(11, extra = $$props.extra); + if ('links' in $$props) $$invalidate(21, links = $$props.links); + if ('expandable' in $$props) $$invalidate(12, expandable = $$props.expandable); + if ('expanded' in $$props) $$invalidate(1, expanded = $$props.expanded); + if ('$$scope' in $$props) $$invalidate(22, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ + slide, + notifications, + strings, + urls, + notification, + unique_id, + inline, + wordpress, + success, + warning, + error, + info, + heading, + dismissible, + icon, + plainHeading, + extra, + links, + expandable, + expanded, + getIconURL, + iconHeight, + bodyHeight, + getLinksHTML, + linksHTML, + multiline, + iconURL, + $urls, + $strings + }); + + $$self.$inject_state = $$props => { + if ('notification' in $$props) $$invalidate(0, notification = $$props.notification); + if ('unique_id' in $$props) $$invalidate(2, unique_id = $$props.unique_id); + if ('inline' in $$props) $$invalidate(3, inline = $$props.inline); + if ('wordpress' in $$props) $$invalidate(4, wordpress = $$props.wordpress); + if ('success' in $$props) $$invalidate(5, success = $$props.success); + if ('warning' in $$props) $$invalidate(6, warning = $$props.warning); + if ('error' in $$props) $$invalidate(7, error = $$props.error); + if ('info' in $$props) $$invalidate(15, info = $$props.info); + if ('heading' in $$props) $$invalidate(8, heading = $$props.heading); + if ('dismissible' in $$props) $$invalidate(9, dismissible = $$props.dismissible); + if ('icon' in $$props) $$invalidate(20, icon = $$props.icon); + if ('plainHeading' in $$props) $$invalidate(10, plainHeading = $$props.plainHeading); + if ('extra' in $$props) $$invalidate(11, extra = $$props.extra); + if ('links' in $$props) $$invalidate(21, links = $$props.links); + if ('expandable' in $$props) $$invalidate(12, expandable = $$props.expandable); + if ('expanded' in $$props) $$invalidate(1, expanded = $$props.expanded); + if ('iconHeight' in $$props) $$invalidate(13, iconHeight = $$props.iconHeight); + if ('bodyHeight' in $$props) $$invalidate(14, bodyHeight = $$props.bodyHeight); + if ('linksHTML' in $$props) $$invalidate(16, linksHTML = $$props.linksHTML); + if ('multiline' in $$props) $$invalidate(17, multiline = $$props.multiline); + if ('iconURL' in $$props) $$invalidate(18, iconURL = $$props.iconURL); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*icon, notification*/ 1048577) { + $$invalidate(18, iconURL = getIconURL(icon, notification.type)); + } + + if ($$self.$$.dirty & /*iconHeight, bodyHeight*/ 24576) { + $$invalidate(17, multiline = iconHeight && bodyHeight && bodyHeight > iconHeight); + } + + if ($$self.$$.dirty & /*links*/ 2097152) { + $$invalidate(16, linksHTML = getLinksHTML(links)); + } + }; + + return [ + notification, + expanded, + unique_id, + inline, + wordpress, + success, + warning, + error, + heading, + dismissible, + plainHeading, + extra, + expandable, + iconHeight, + bodyHeight, + info, + linksHTML, + multiline, + iconURL, + $strings, + icon, + links, + $$scope, + slots, + div_elementresize_handler, + click_handler, + click_handler_1, + click_handler_2, + div0_elementresize_handler + ]; + } + + class Notification extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$T, create_fragment$T, safe_not_equal, { + notification: 0, + unique_id: 2, + inline: 3, + wordpress: 4, + success: 5, + warning: 6, + error: 7, + heading: 8, + dismissible: 9, + icon: 20, + plainHeading: 10, + extra: 11, + links: 21, + expandable: 12, + expanded: 1 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Notification", + options, + id: create_fragment$T.name + }); + } + + get notification() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set notification(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get unique_id() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set unique_id(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get inline() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set inline(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get wordpress() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set wordpress(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get success() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set success(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get warning() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set warning(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get error() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set error(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get heading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set heading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get dismissible() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set dismissible(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get icon() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set icon(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get plainHeading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set plainHeading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get extra() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set extra(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get links() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set links(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get expandable() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set expandable(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get expanded() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set expanded(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/Notifications.svelte generated by Svelte v3.49.0 */ + const file$L = "src/amazon-s3-and-cloudfront/ui/components/Notifications.svelte"; + + function get_each_context$8(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[4] = list[i]; + return child_ctx; + } + + // (10:0) {#if $notifications.length} + function create_if_block$o(ctx) { + let div; + let each_blocks = []; + let each_1_lookup = new Map(); + let current; + let each_value = /*$notifications*/ ctx[3]; + validate_each_argument(each_value); + const get_key = ctx => /*notification*/ ctx[4].render_key; + validate_each_keys(ctx, each_value, get_each_context$8, get_key); + + for (let i = 0; i < each_value.length; i += 1) { + let child_ctx = get_each_context$8(ctx, each_value, i); + let key = get_key(child_ctx); + each_1_lookup.set(key, each_blocks[i] = create_each_block$8(key, child_ctx)); + } + + const block = { + c: function create() { + div = element("div"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr_dev(div, "id", "notifications"); + attr_dev(div, "class", "notifications wrapper"); + add_location(div, file$L, 10, 1, 234); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div, null); + } + + current = true; + }, + p: function update(ctx, dirty) { + if (dirty & /*component, $notifications, tab, tabParent*/ 15) { + each_value = /*$notifications*/ ctx[3]; + validate_each_argument(each_value); + group_outros(); + validate_each_keys(ctx, each_value, get_each_context$8, get_key); + each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block$8, null, get_each_context$8); + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].d(); + } + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$o.name, + type: "if", + source: "(10:0) {#if $notifications.length}", + ctx + }); + + return block; + } + + // (13:3) {#if !notification.dismissed && (notification.only_show_on_tab === tab || notification.only_show_on_tab === tabParent || !notification.only_show_on_tab)} + function create_if_block_1$a(ctx) { + let switch_instance; + let switch_instance_anchor; + let current; + var switch_value = /*component*/ ctx[0]; + + function switch_props(ctx) { + return { + props: { + notification: /*notification*/ ctx[4], + $$slots: { default: [create_default_slot$q] }, + $$scope: { ctx } + }, + $$inline: true + }; + } + + if (switch_value) { + switch_instance = new switch_value(switch_props(ctx)); + } + + const block = { + c: function create() { + if (switch_instance) create_component(switch_instance.$$.fragment); + switch_instance_anchor = empty(); + }, + m: function mount(target, anchor) { + if (switch_instance) { + mount_component(switch_instance, target, anchor); + } + + insert_dev(target, switch_instance_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const switch_instance_changes = {}; + if (dirty & /*$notifications*/ 8) switch_instance_changes.notification = /*notification*/ ctx[4]; + + if (dirty & /*$$scope, $notifications*/ 136) { + switch_instance_changes.$$scope = { dirty, ctx }; + } + + if (switch_value !== (switch_value = /*component*/ ctx[0])) { + if (switch_instance) { + group_outros(); + const old_component = switch_instance; + + transition_out(old_component.$$.fragment, 1, 0, () => { + destroy_component(old_component, 1); + }); + + check_outros(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props(ctx)); + create_component(switch_instance.$$.fragment); + transition_in(switch_instance.$$.fragment, 1); + mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); + } else { + switch_instance = null; + } + } else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + }, + i: function intro(local) { + if (current) return; + if (switch_instance) transition_in(switch_instance.$$.fragment, local); + current = true; + }, + o: function outro(local) { + if (switch_instance) transition_out(switch_instance.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(switch_instance_anchor); + if (switch_instance) destroy_component(switch_instance, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$a.name, + type: "if", + source: "(13:3) {#if !notification.dismissed && (notification.only_show_on_tab === tab || notification.only_show_on_tab === tabParent || !notification.only_show_on_tab)}", + ctx + }); + + return block; + } + + // (15:5) {#if notification.message} + function create_if_block_2$7(ctx) { + let p; + let raw_value = /*notification*/ ctx[4].message + ""; + + const block = { + c: function create() { + p = element("p"); + add_location(p, file$L, 15, 6, 619); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = raw_value; + }, + p: function update(ctx, dirty) { + if (dirty & /*$notifications*/ 8 && raw_value !== (raw_value = /*notification*/ ctx[4].message + "")) p.innerHTML = raw_value; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2$7.name, + type: "if", + source: "(15:5) {#if notification.message}", + ctx + }); + + return block; + } + + // (14:4) + function create_default_slot$q(ctx) { + let t; + let if_block = /*notification*/ ctx[4].message && create_if_block_2$7(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + t = space(); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, t, anchor); + }, + p: function update(ctx, dirty) { + if (/*notification*/ ctx[4].message) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block_2$7(ctx); + if_block.c(); + if_block.m(t.parentNode, t); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$q.name, + type: "slot", + source: "(14:4) ", + ctx + }); + + return block; + } + + // (12:2) {#each $notifications as notification (notification.render_key)} + function create_each_block$8(key_1, ctx) { + let first; + let if_block_anchor; + let current; + let if_block = !/*notification*/ ctx[4].dismissed && (/*notification*/ ctx[4].only_show_on_tab === /*tab*/ ctx[1] || /*notification*/ ctx[4].only_show_on_tab === /*tabParent*/ ctx[2] || !/*notification*/ ctx[4].only_show_on_tab) && create_if_block_1$a(ctx); + + const block = { + key: key_1, + first: null, + c: function create() { + first = empty(); + if (if_block) if_block.c(); + if_block_anchor = empty(); + this.first = first; + }, + m: function mount(target, anchor) { + insert_dev(target, first, anchor); + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + + if (!/*notification*/ ctx[4].dismissed && (/*notification*/ ctx[4].only_show_on_tab === /*tab*/ ctx[1] || /*notification*/ ctx[4].only_show_on_tab === /*tabParent*/ ctx[2] || !/*notification*/ ctx[4].only_show_on_tab)) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$notifications, tab, tabParent*/ 14) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_1$a(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(first); + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$8.name, + type: "each", + source: "(12:2) {#each $notifications as notification (notification.render_key)}", + ctx + }); + + return block; + } + + function create_fragment$S(ctx) { + let if_block_anchor; + let current; + let if_block = /*$notifications*/ ctx[3].length && create_if_block$o(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*$notifications*/ ctx[3].length) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$notifications*/ 8) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$o(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$S.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$S($$self, $$props, $$invalidate) { + let $notifications; + validate_store(notifications, 'notifications'); + component_subscribe($$self, notifications, $$value => $$invalidate(3, $notifications = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Notifications', slots, []); + let { component = Notification } = $$props; + let { tab = "" } = $$props; + let { tabParent = "" } = $$props; + const writable_props = ['component', 'tab', 'tabParent']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('component' in $$props) $$invalidate(0, component = $$props.component); + if ('tab' in $$props) $$invalidate(1, tab = $$props.tab); + if ('tabParent' in $$props) $$invalidate(2, tabParent = $$props.tabParent); + }; + + $$self.$capture_state = () => ({ + notifications, + Notification, + component, + tab, + tabParent, + $notifications + }); + + $$self.$inject_state = $$props => { + if ('component' in $$props) $$invalidate(0, component = $$props.component); + if ('tab' in $$props) $$invalidate(1, tab = $$props.tab); + if ('tabParent' in $$props) $$invalidate(2, tabParent = $$props.tabParent); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [component, tab, tabParent, $notifications]; + } + + class Notifications extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$S, create_fragment$S, safe_not_equal, { component: 0, tab: 1, tabParent: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Notifications", + options, + id: create_fragment$S.name + }); + } + + get component() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set component(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get tab() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set tab(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get tabParent() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set tabParent(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/BlockPublicAccessWarning.svelte generated by Svelte v3.49.0 */ + const file$K = "src/amazon-s3-and-cloudfront/ui/components/BlockPublicAccessWarning.svelte"; + + // (6:0) {#if $bapa && !$delivery_provider.block_public_access_supported} + function create_if_block$n(ctx) { + let notification; + let current; + + notification = new Notification({ + props: { + warning: true, + heading: /*$storage_provider*/ ctx[2].block_public_access_warning.heading, + $$slots: { default: [create_default_slot$p] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(notification.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(notification, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const notification_changes = {}; + if (dirty & /*$storage_provider*/ 4) notification_changes.heading = /*$storage_provider*/ ctx[2].block_public_access_warning.heading; + + if (dirty & /*$$scope, $storage_provider*/ 12) { + notification_changes.$$scope = { dirty, ctx }; + } + + notification.$set(notification_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(notification.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(notification.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(notification, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$n.name, + type: "if", + source: "(6:0) {#if $bapa && !$delivery_provider.block_public_access_supported}", + ctx + }); + + return block; + } + + // (7:1) + function create_default_slot$p(ctx) { + let p; + let raw_value = /*$storage_provider*/ ctx[2].block_public_access_warning.message + ""; + + const block = { + c: function create() { + p = element("p"); + add_location(p, file$K, 7, 2, 299); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = raw_value; + }, + p: function update(ctx, dirty) { + if (dirty & /*$storage_provider*/ 4 && raw_value !== (raw_value = /*$storage_provider*/ ctx[2].block_public_access_warning.message + "")) p.innerHTML = raw_value; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$p.name, + type: "slot", + source: "(7:1) ", + ctx + }); + + return block; + } + + function create_fragment$R(ctx) { + let if_block_anchor; + let current; + let if_block = /*$bapa*/ ctx[0] && !/*$delivery_provider*/ ctx[1].block_public_access_supported && create_if_block$n(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*$bapa*/ ctx[0] && !/*$delivery_provider*/ ctx[1].block_public_access_supported) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$bapa, $delivery_provider*/ 3) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$n(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$R.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$R($$self, $$props, $$invalidate) { + let $bapa; + let $delivery_provider; + let $storage_provider; + validate_store(bapa, 'bapa'); + component_subscribe($$self, bapa, $$value => $$invalidate(0, $bapa = $$value)); + validate_store(delivery_provider, 'delivery_provider'); + component_subscribe($$self, delivery_provider, $$value => $$invalidate(1, $delivery_provider = $$value)); + validate_store(storage_provider, 'storage_provider'); + component_subscribe($$self, storage_provider, $$value => $$invalidate(2, $storage_provider = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('BlockPublicAccessWarning', slots, []); + const writable_props = []; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$capture_state = () => ({ + bapa, + storage_provider, + delivery_provider, + Notification, + $bapa, + $delivery_provider, + $storage_provider + }); + + return [$bapa, $delivery_provider, $storage_provider]; + } + + class BlockPublicAccessWarning extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$R, create_fragment$R, safe_not_equal, {}); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "BlockPublicAccessWarning", + options, + id: create_fragment$R.name + }); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/ObjectOwnershipEnforcedWarning.svelte generated by Svelte v3.49.0 */ + const file$J = "src/amazon-s3-and-cloudfront/ui/components/ObjectOwnershipEnforcedWarning.svelte"; + + // (6:0) {#if $ooe && !$delivery_provider.object_ownership_supported} + function create_if_block$m(ctx) { + let notification; + let current; + + notification = new Notification({ + props: { + warning: true, + heading: /*$storage_provider*/ ctx[2].object_ownership_enforced_warning.heading, + $$slots: { default: [create_default_slot$o] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(notification.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(notification, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const notification_changes = {}; + if (dirty & /*$storage_provider*/ 4) notification_changes.heading = /*$storage_provider*/ ctx[2].object_ownership_enforced_warning.heading; + + if (dirty & /*$$scope, $storage_provider*/ 12) { + notification_changes.$$scope = { dirty, ctx }; + } + + notification.$set(notification_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(notification.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(notification.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(notification, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$m.name, + type: "if", + source: "(6:0) {#if $ooe && !$delivery_provider.object_ownership_supported}", + ctx + }); + + return block; + } + + // (7:1) + function create_default_slot$o(ctx) { + let p; + let raw_value = /*$storage_provider*/ ctx[2].object_ownership_enforced_warning.message + ""; + + const block = { + c: function create() { + p = element("p"); + add_location(p, file$J, 7, 2, 300); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + p.innerHTML = raw_value; + }, + p: function update(ctx, dirty) { + if (dirty & /*$storage_provider*/ 4 && raw_value !== (raw_value = /*$storage_provider*/ ctx[2].object_ownership_enforced_warning.message + "")) p.innerHTML = raw_value; }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$o.name, + type: "slot", + source: "(7:1) ", + ctx + }); + + return block; + } + + function create_fragment$Q(ctx) { + let if_block_anchor; + let current; + let if_block = /*$ooe*/ ctx[0] && !/*$delivery_provider*/ ctx[1].object_ownership_supported && create_if_block$m(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*$ooe*/ ctx[0] && !/*$delivery_provider*/ ctx[1].object_ownership_supported) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*$ooe, $delivery_provider*/ 3) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$m(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$Q.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$Q($$self, $$props, $$invalidate) { + let $ooe; + let $delivery_provider; + let $storage_provider; + validate_store(ooe, 'ooe'); + component_subscribe($$self, ooe, $$value => $$invalidate(0, $ooe = $$value)); + validate_store(delivery_provider, 'delivery_provider'); + component_subscribe($$self, delivery_provider, $$value => $$invalidate(1, $delivery_provider = $$value)); + validate_store(storage_provider, 'storage_provider'); + component_subscribe($$self, storage_provider, $$value => $$invalidate(2, $storage_provider = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('ObjectOwnershipEnforcedWarning', slots, []); + const writable_props = []; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$capture_state = () => ({ + ooe, + storage_provider, + delivery_provider, + Notification, + $ooe, + $delivery_provider, + $storage_provider + }); + + return [$ooe, $delivery_provider, $storage_provider]; + } + + class ObjectOwnershipEnforcedWarning extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$Q, create_fragment$Q, safe_not_equal, {}); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "ObjectOwnershipEnforcedWarning", + options, + id: create_fragment$Q.name + }); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/SubNavItem.svelte generated by Svelte v3.49.0 */ + const file$I = "src/amazon-s3-and-cloudfront/ui/components/SubNavItem.svelte"; + + function create_fragment$P(ctx) { + let li; + let a; + let t_value = /*page*/ ctx[0].title() + ""; + let t; + let a_href_value; + let a_title_value; + let mounted; + let dispose; + + const block = { + c: function create() { + li = element("li"); + a = element("a"); + t = text(t_value); + attr_dev(a, "href", a_href_value = /*page*/ ctx[0].route); + attr_dev(a, "title", a_title_value = /*page*/ ctx[0].title()); + add_location(a, file$I, 10, 1, 221); + attr_dev(li, "class", "subnav-item"); + toggle_class(li, "active", /*$location*/ ctx[3] === /*page*/ ctx[0].route); + toggle_class(li, "focus", /*focus*/ ctx[1]); + toggle_class(li, "hover", /*hover*/ ctx[2]); + add_location(li, file$I, 9, 0, 131); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, li, anchor); + append_dev(li, a); + append_dev(a, t); + + if (!mounted) { + dispose = [ + action_destroyer(link.call(null, a)), + listen_dev(a, "focusin", /*focusin_handler*/ ctx[4], false, false, false), + listen_dev(a, "focusout", /*focusout_handler*/ ctx[5], false, false, false), + listen_dev(a, "mouseenter", /*mouseenter_handler*/ ctx[6], false, false, false), + listen_dev(a, "mouseleave", /*mouseleave_handler*/ ctx[7], false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + if (dirty & /*page*/ 1 && t_value !== (t_value = /*page*/ ctx[0].title() + "")) set_data_dev(t, t_value); + + if (dirty & /*page*/ 1 && a_href_value !== (a_href_value = /*page*/ ctx[0].route)) { + attr_dev(a, "href", a_href_value); + } + + if (dirty & /*page*/ 1 && a_title_value !== (a_title_value = /*page*/ ctx[0].title())) { + attr_dev(a, "title", a_title_value); + } + + if (dirty & /*$location, page*/ 9) { + toggle_class(li, "active", /*$location*/ ctx[3] === /*page*/ ctx[0].route); + } + + if (dirty & /*focus*/ 2) { + toggle_class(li, "focus", /*focus*/ ctx[1]); + } + + if (dirty & /*hover*/ 4) { + toggle_class(li, "hover", /*hover*/ ctx[2]); + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(li); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$P.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$P($$self, $$props, $$invalidate) { + let $location; + validate_store(location$1, 'location'); + component_subscribe($$self, location$1, $$value => $$invalidate(3, $location = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('SubNavItem', slots, []); + let { page } = $$props; + let focus = false; + let hover = false; + const writable_props = ['page']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const focusin_handler = () => $$invalidate(1, focus = true); + const focusout_handler = () => $$invalidate(1, focus = false); + const mouseenter_handler = () => $$invalidate(2, hover = true); + const mouseleave_handler = () => $$invalidate(2, hover = false); + + $$self.$$set = $$props => { + if ('page' in $$props) $$invalidate(0, page = $$props.page); + }; + + $$self.$capture_state = () => ({ + link, + location: location$1, + page, + focus, + hover, + $location + }); + + $$self.$inject_state = $$props => { + if ('page' in $$props) $$invalidate(0, page = $$props.page); + if ('focus' in $$props) $$invalidate(1, focus = $$props.focus); + if ('hover' in $$props) $$invalidate(2, hover = $$props.hover); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + page, + focus, + hover, + $location, + focusin_handler, + focusout_handler, + mouseenter_handler, + mouseleave_handler + ]; + } + + class SubNavItem extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$P, create_fragment$P, safe_not_equal, { page: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "SubNavItem", + options, + id: create_fragment$P.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*page*/ ctx[0] === undefined && !('page' in props)) { + console.warn(" was created without expected prop 'page'"); + } + } + + get page() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set page(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/SubNav.svelte generated by Svelte v3.49.0 */ + const file$H = "src/amazon-s3-and-cloudfront/ui/components/SubNav.svelte"; + + function get_each_context$7(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[6] = list[i]; + child_ctx[8] = i; + return child_ctx; + } + + // (13:0) {#if displayItems} + function create_if_block$l(ctx) { + let ul; + let ul_class_value; + let current; + let each_value = /*displayItems*/ ctx[3]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$7(get_each_context$7(ctx, each_value, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + const block = { + c: function create() { + ul = element("ul"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr_dev(ul, "class", ul_class_value = "subnav " + /*name*/ ctx[0]); + toggle_class(ul, "subpage", /*subpage*/ ctx[1]); + toggle_class(ul, "progress", /*progress*/ ctx[2]); + add_location(ul, file$H, 13, 1, 361); + }, + m: function mount(target, anchor) { + insert_dev(target, ul, anchor); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(ul, null); + } + + current = true; + }, + p: function update(ctx, dirty) { + if (dirty & /*$urls, progress, displayItems*/ 28) { + each_value = /*displayItems*/ ctx[3]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$7(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block$7(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(ul, null); + } + } + + group_outros(); + + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + + if (!current || dirty & /*name*/ 1 && ul_class_value !== (ul_class_value = "subnav " + /*name*/ ctx[0])) { + attr_dev(ul, "class", ul_class_value); + } + + if (dirty & /*name, subpage*/ 3) { + toggle_class(ul, "subpage", /*subpage*/ ctx[1]); + } + + if (dirty & /*name, progress*/ 5) { + toggle_class(ul, "progress", /*progress*/ ctx[2]); + } + }, + i: function intro(local) { + if (current) return; + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(ul); + destroy_each(each_blocks, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$l.name, + type: "if", + source: "(13:0) {#if displayItems}", + ctx + }); + + return block; + } + + // (18:3) {#if progress && index < (displayItems.length - 1)} + function create_if_block_1$9(ctx) { + let li; + let img; + let img_src_value; + let t; + + const block = { + c: function create() { + li = element("li"); + img = element("img"); + t = space(); + if (!src_url_equal(img.src, img_src_value = /*$urls*/ ctx[4].assets + 'img/icon/subnav-arrow.svg')) attr_dev(img, "src", img_src_value); + attr_dev(img, "alt", ""); + add_location(img, file$H, 19, 5, 634); + attr_dev(li, "class", "step-arrow"); + add_location(li, file$H, 18, 4, 605); + }, + m: function mount(target, anchor) { + insert_dev(target, li, anchor); + append_dev(li, img); + append_dev(li, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*$urls*/ 16 && !src_url_equal(img.src, img_src_value = /*$urls*/ ctx[4].assets + 'img/icon/subnav-arrow.svg')) { + attr_dev(img, "src", img_src_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(li); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$9.name, + type: "if", + source: "(18:3) {#if progress && index < (displayItems.length - 1)}", + ctx + }); + + return block; + } + + // (15:2) {#each displayItems as page, index} + function create_each_block$7(ctx) { + let subnavitem; + let t; + let if_block_anchor; + let current; + + subnavitem = new SubNavItem({ + props: { page: /*page*/ ctx[6] }, + $$inline: true + }); + + let if_block = /*progress*/ ctx[2] && /*index*/ ctx[8] < /*displayItems*/ ctx[3].length - 1 && create_if_block_1$9(ctx); + + const block = { + c: function create() { + create_component(subnavitem.$$.fragment); + t = space(); + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + m: function mount(target, anchor) { + mount_component(subnavitem, target, anchor); + insert_dev(target, t, anchor); + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const subnavitem_changes = {}; + if (dirty & /*displayItems*/ 8) subnavitem_changes.page = /*page*/ ctx[6]; + subnavitem.$set(subnavitem_changes); + + if (/*progress*/ ctx[2] && /*index*/ ctx[8] < /*displayItems*/ ctx[3].length - 1) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block_1$9(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: function intro(local) { + if (current) return; + transition_in(subnavitem.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(subnavitem.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(subnavitem, detaching); + if (detaching) detach_dev(t); + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$7.name, + type: "each", + source: "(15:2) {#each displayItems as page, index}", + ctx + }); + + return block; + } + + function create_fragment$O(ctx) { + let if_block_anchor; + let current; + let if_block = /*displayItems*/ ctx[3] && create_if_block$l(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*displayItems*/ ctx[3]) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*displayItems*/ 8) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$l(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$O.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$O($$self, $$props, $$invalidate) { + let displayItems; + let $urls; + validate_store(urls, 'urls'); + component_subscribe($$self, urls, $$value => $$invalidate(4, $urls = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('SubNav', slots, []); + let { name = "media" } = $$props; + let { items = [] } = $$props; + let { subpage = false } = $$props; + let { progress = false } = $$props; + const writable_props = ['name', 'items', 'subpage', 'progress']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('items' in $$props) $$invalidate(5, items = $$props.items); + if ('subpage' in $$props) $$invalidate(1, subpage = $$props.subpage); + if ('progress' in $$props) $$invalidate(2, progress = $$props.progress); + }; + + $$self.$capture_state = () => ({ + urls, + SubNavItem, + name, + items, + subpage, + progress, + displayItems, + $urls + }); + + $$self.$inject_state = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('items' in $$props) $$invalidate(5, items = $$props.items); + if ('subpage' in $$props) $$invalidate(1, subpage = $$props.subpage); + if ('progress' in $$props) $$invalidate(2, progress = $$props.progress); + if ('displayItems' in $$props) $$invalidate(3, displayItems = $$props.displayItems); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*items*/ 32) { + $$invalidate(3, displayItems = items.filter(page => page.title && (!page.hasOwnProperty("enabled") || page.enabled() === true))); + } + }; + + return [name, subpage, progress, displayItems, $urls, items]; + } + + class SubNav extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$O, create_fragment$O, safe_not_equal, { + name: 0, + items: 5, + subpage: 1, + progress: 2 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "SubNav", + options, + id: create_fragment$O.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get items() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set items(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get subpage() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set subpage(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get progress() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set progress(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/SubPages.svelte generated by Svelte v3.49.0 */ + const file$G = "src/amazon-s3-and-cloudfront/ui/components/SubPages.svelte"; + + // (9:0) {#if routes} + function create_if_block$k(ctx) { + let div; + let router; + let t; + let div_class_value; + let current; + + router = new Router({ + props: { + routes: /*routes*/ ctx[2], + prefix: /*prefix*/ ctx[1] + }, + $$inline: true + }); + + router.$on("routeEvent", /*routeEvent_handler*/ ctx[5]); + const default_slot_template = /*#slots*/ ctx[4].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[3], null); + + const block = { + c: function create() { + div = element("div"); + create_component(router.$$.fragment); + t = space(); + if (default_slot) default_slot.c(); + attr_dev(div, "class", div_class_value = "" + (/*name*/ ctx[0] + "-page wrapper")); + add_location(div, file$G, 9, 1, 152); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + mount_component(router, div, null); + append_dev(div, t); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, dirty) { + const router_changes = {}; + if (dirty & /*routes*/ 4) router_changes.routes = /*routes*/ ctx[2]; + if (dirty & /*prefix*/ 2) router_changes.prefix = /*prefix*/ ctx[1]; + router.$set(router_changes); + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 8)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[3], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[3]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[3], dirty, null), + null + ); + } + } + + if (!current || dirty & /*name*/ 1 && div_class_value !== (div_class_value = "" + (/*name*/ ctx[0] + "-page wrapper"))) { + attr_dev(div, "class", div_class_value); + } + }, + i: function intro(local) { + if (current) return; + transition_in(router.$$.fragment, local); + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(router.$$.fragment, local); + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_component(router); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$k.name, + type: "if", + source: "(9:0) {#if routes}", + ctx + }); + + return block; + } + + function create_fragment$N(ctx) { + let if_block_anchor; + let current; + let if_block = /*routes*/ ctx[2] && create_if_block$k(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*routes*/ ctx[2]) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*routes*/ 4) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$k(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$N.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$N($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('SubPages', slots, ['default']); + let { name = "sub" } = $$props; + let { prefix = "" } = $$props; + let { routes = {} } = $$props; + const writable_props = ['name', 'prefix', 'routes']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + function routeEvent_handler(event) { + bubble.call(this, $$self, event); + } + + $$self.$$set = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('prefix' in $$props) $$invalidate(1, prefix = $$props.prefix); + if ('routes' in $$props) $$invalidate(2, routes = $$props.routes); + if ('$$scope' in $$props) $$invalidate(3, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ Router, name, prefix, routes }); + + $$self.$inject_state = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('prefix' in $$props) $$invalidate(1, prefix = $$props.prefix); + if ('routes' in $$props) $$invalidate(2, routes = $$props.routes); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [name, prefix, routes, $$scope, slots, routeEvent_handler]; + } + + class SubPages extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$N, create_fragment$N, safe_not_equal, { name: 0, prefix: 1, routes: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "SubPages", + options, + id: create_fragment$N.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get prefix() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set prefix(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get routes() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set routes(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + // List of nodes to update + const nodes = []; + + // Current location + let location; + + // Function that updates all nodes marking the active ones + function checkActive(el) { + const matchesLocation = el.pattern.test(location); + toggleClasses(el, el.className, matchesLocation); + toggleClasses(el, el.inactiveClassName, !matchesLocation); + } + + function toggleClasses(el, className, shouldAdd) { + (className || '').split(' ').forEach((cls) => { + if (!cls) { + return + } + // Remove the class firsts + el.node.classList.remove(cls); + + // If the pattern doesn't match, then set the class + if (shouldAdd) { + el.node.classList.add(cls); + } + }); + } + + // Listen to changes in the location + loc.subscribe((value) => { + // Update the location + location = value.location + (value.querystring ? '?' + value.querystring : ''); + + // Update all nodes + nodes.map(checkActive); + }); + + /** + * @typedef {Object} ActiveOptions + * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href + * @property {string} [className] - CSS class to apply to the element when active; default value is "active" + */ + + /** + * Svelte Action for automatically adding the "active" class to elements (links, or any other DOM element) when the current location matches a certain path. + * + * @param {HTMLElement} node - The target node (automatically set by Svelte) + * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path. + * @returns {{destroy: function(): void}} Destroy function + */ + function active(node, opts) { + // Check options + if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) { + // Interpret strings and regular expressions as opts.path + opts = { + path: opts + }; + } + else { + // Ensure opts is a dictionary + opts = opts || {}; + } + + // Path defaults to link target + if (!opts.path && node.hasAttribute('href')) { + opts.path = node.getAttribute('href'); + if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') { + opts.path = opts.path.substring(1); + } + } + + // Default class name + if (!opts.className) { + opts.className = 'active'; + } + + // If path is a string, it must start with '/' or '*' + if (!opts.path || + typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*')) + ) { + throw Error('Invalid value for "path" argument') + } + + // If path is not a regular expression already, make it + const {pattern} = typeof opts.path == 'string' ? + parse(opts.path) : + {pattern: opts.path}; + + // Add the node to the list + const el = { + node, + className: opts.className, + inactiveClassName: opts.inactiveClassName, + pattern + }; + nodes.push(el); + + // Trigger the action right away + checkActive(el); + + return { + // When the element is destroyed, remove it from the list + destroy() { + nodes.splice(nodes.indexOf(el), 1); + } + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/SubPage.svelte generated by Svelte v3.49.0 */ + const file$F = "src/amazon-s3-and-cloudfront/ui/components/SubPage.svelte"; + + function create_fragment$M(ctx) { + let div; + let active_action; + let current; + let mounted; + let dispose; + const default_slot_template = /*#slots*/ ctx[3].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[2], null); + + const block = { + c: function create() { + div = element("div"); + if (default_slot) default_slot.c(); + attr_dev(div, "class", /*name*/ ctx[0]); + add_location(div, file$F, 7, 0, 117); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + + if (!mounted) { + dispose = action_destroyer(active_action = active.call(null, div, /*route*/ ctx[1])); + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 4)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[2], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[2]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[2], dirty, null), + null + ); + } + } + + if (!current || dirty & /*name*/ 1) { + attr_dev(div, "class", /*name*/ ctx[0]); + } + + if (active_action && is_function(active_action.update) && dirty & /*route*/ 2) active_action.update.call(null, /*route*/ ctx[1]); + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (default_slot) default_slot.d(detaching); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$M.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$M($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('SubPage', slots, ['default']); + let { name = "" } = $$props; + let { route = "/" } = $$props; + const writable_props = ['name', 'route']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('route' in $$props) $$invalidate(1, route = $$props.route); + if ('$$scope' in $$props) $$invalidate(2, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ active, name, route }); + + $$self.$inject_state = $$props => { + if ('name' in $$props) $$invalidate(0, name = $$props.name); + if ('route' in $$props) $$invalidate(1, route = $$props.route); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [name, route, $$scope, slots]; + } + + class SubPage extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$M, create_fragment$M, safe_not_equal, { name: 0, route: 1 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "SubPage", + options, + id: create_fragment$M.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get route() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set route(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/PanelContainer.svelte generated by Svelte v3.49.0 */ + + const file$E = "src/amazon-s3-and-cloudfront/ui/components/PanelContainer.svelte"; + + function create_fragment$L(ctx) { + let div; + let current; + const default_slot_template = /*#slots*/ ctx[2].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], null); + + const block = { + c: function create() { + div = element("div"); + if (default_slot) default_slot.c(); + attr_dev(div, "class", "panel-container " + /*classes*/ ctx[0]); + add_location(div, file$E, 4, 0, 73); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 2)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[1], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[1]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[1], dirty, null), + null + ); + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$L.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$L($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('PanelContainer', slots, ['default']); + const classes = $$props.class ? $$props.class : ""; + + $$self.$$set = $$new_props => { + $$invalidate(3, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('$$scope' in $$new_props) $$invalidate(1, $$scope = $$new_props.$$scope); + }; + + $$self.$capture_state = () => ({ classes }); + + $$self.$inject_state = $$new_props => { + $$invalidate(3, $$props = assign(assign({}, $$props), $$new_props)); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$props = exclude_internal_props($$props); + return [classes, $$scope, slots]; + } + + class PanelContainer extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$L, create_fragment$L, safe_not_equal, {}); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "PanelContainer", + options, + id: create_fragment$L.name + }); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/PanelRow.svelte generated by Svelte v3.49.0 */ + + const file$D = "src/amazon-s3-and-cloudfront/ui/components/PanelRow.svelte"; + + // (10:1) {#if gradient} + function create_if_block$j(ctx) { + let div; + + const block = { + c: function create() { + div = element("div"); + attr_dev(div, "class", "gradient svelte-41r5oq"); + add_location(div, file$D, 10, 2, 238); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$j.name, + type: "if", + source: "(10:1) {#if gradient}", + ctx + }); + + return block; + } + + function create_fragment$K(ctx) { + let div; + let t; + let current; + let if_block = /*gradient*/ ctx[2] && create_if_block$j(ctx); + const default_slot_template = /*#slots*/ ctx[5].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[4], null); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + if (default_slot) default_slot.c(); + attr_dev(div, "class", "panel-row " + /*classes*/ ctx[3] + " svelte-41r5oq"); + toggle_class(div, "header", /*header*/ ctx[0]); + toggle_class(div, "footer", /*footer*/ ctx[1]); + add_location(div, file$D, 8, 0, 160); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + append_dev(div, t); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*gradient*/ ctx[2]) { + if (if_block) ; else { + if_block = create_if_block$j(ctx); + if_block.c(); + if_block.m(div, t); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 16)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[4], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[4]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[4], dirty, null), + null + ); + } + } + + if (dirty & /*header*/ 1) { + toggle_class(div, "header", /*header*/ ctx[0]); + } + + if (dirty & /*footer*/ 2) { + toggle_class(div, "footer", /*footer*/ ctx[1]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$K.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$K($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('PanelRow', slots, ['default']); + const classes = $$props.class ? $$props.class : ""; + let { header = false } = $$props; + let { footer = false } = $$props; + let { gradient = false } = $$props; + + $$self.$$set = $$new_props => { + $$invalidate(6, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('header' in $$new_props) $$invalidate(0, header = $$new_props.header); + if ('footer' in $$new_props) $$invalidate(1, footer = $$new_props.footer); + if ('gradient' in $$new_props) $$invalidate(2, gradient = $$new_props.gradient); + if ('$$scope' in $$new_props) $$invalidate(4, $$scope = $$new_props.$$scope); + }; + + $$self.$capture_state = () => ({ classes, header, footer, gradient }); + + $$self.$inject_state = $$new_props => { + $$invalidate(6, $$props = assign(assign({}, $$props), $$new_props)); + if ('header' in $$props) $$invalidate(0, header = $$new_props.header); + if ('footer' in $$props) $$invalidate(1, footer = $$new_props.footer); + if ('gradient' in $$props) $$invalidate(2, gradient = $$new_props.gradient); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$props = exclude_internal_props($$props); + return [header, footer, gradient, classes, $$scope, slots]; + } + + class PanelRow extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$K, create_fragment$K, safe_not_equal, { header: 0, footer: 1, gradient: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "PanelRow", + options, + id: create_fragment$K.name + }); + } + + get header() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set header(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get footer() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set footer(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get gradient() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set gradient(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/DefinedInWPConfig.svelte generated by Svelte v3.49.0 */ + const file$C = "src/amazon-s3-and-cloudfront/ui/components/DefinedInWPConfig.svelte"; + + // (7:0) {#if defined} + function create_if_block$i(ctx) { + let p; + let t_value = /*$strings*/ ctx[1].defined_in_wp_config + ""; + let t; + + const block = { + c: function create() { + p = element("p"); + t = text(t_value); + attr_dev(p, "class", "wp-config"); + add_location(p, file$C, 7, 1, 104); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + append_dev(p, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*$strings*/ 2 && t_value !== (t_value = /*$strings*/ ctx[1].defined_in_wp_config + "")) set_data_dev(t, t_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$i.name, + type: "if", + source: "(7:0) {#if defined}", + ctx + }); + + return block; + } + + function create_fragment$J(ctx) { + let if_block_anchor; + let if_block = /*defined*/ ctx[0] && create_if_block$i(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + }, + p: function update(ctx, [dirty]) { + if (/*defined*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$i(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$J.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$J($$self, $$props, $$invalidate) { + let $strings; + validate_store(strings, 'strings'); + component_subscribe($$self, strings, $$value => $$invalidate(1, $strings = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('DefinedInWPConfig', slots, []); + let { defined = false } = $$props; + const writable_props = ['defined']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('defined' in $$props) $$invalidate(0, defined = $$props.defined); + }; + + $$self.$capture_state = () => ({ strings, defined, $strings }); + + $$self.$inject_state = $$props => { + if ('defined' in $$props) $$invalidate(0, defined = $$props.defined); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [defined, $strings]; + } + + class DefinedInWPConfig extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$J, create_fragment$J, safe_not_equal, { defined: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "DefinedInWPConfig", + options, + id: create_fragment$J.name + }); + } + + get defined() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set defined(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/ToggleSwitch.svelte generated by Svelte v3.49.0 */ + + const file$B = "src/amazon-s3-and-cloudfront/ui/components/ToggleSwitch.svelte"; + + function create_fragment$I(ctx) { + let div; + let input; + let t; + let label; + let current; + let mounted; + let dispose; + const default_slot_template = /*#slots*/ ctx[4].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[3], null); + + const block = { + c: function create() { + div = element("div"); + input = element("input"); + t = space(); + label = element("label"); + if (default_slot) default_slot.c(); + attr_dev(input, "type", "checkbox"); + attr_dev(input, "id", /*name*/ ctx[1]); + input.disabled = /*disabled*/ ctx[2]; + add_location(input, file$B, 7, 1, 155); + attr_dev(label, "class", "toggle-label"); + attr_dev(label, "for", /*name*/ ctx[1]); + add_location(label, file$B, 13, 1, 235); + attr_dev(div, "class", "toggle-switch"); + toggle_class(div, "locked", /*disabled*/ ctx[2]); + add_location(div, file$B, 6, 0, 102); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, input); + input.checked = /*checked*/ ctx[0]; + append_dev(div, t); + append_dev(div, label); + + if (default_slot) { + default_slot.m(label, null); + } + + current = true; + + if (!mounted) { + dispose = listen_dev(input, "change", /*input_change_handler*/ ctx[5]); + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + if (!current || dirty & /*name*/ 2) { + attr_dev(input, "id", /*name*/ ctx[1]); + } + + if (!current || dirty & /*disabled*/ 4) { + prop_dev(input, "disabled", /*disabled*/ ctx[2]); + } + + if (dirty & /*checked*/ 1) { + input.checked = /*checked*/ ctx[0]; + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 8)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[3], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[3]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[3], dirty, null), + null + ); + } + } + + if (!current || dirty & /*name*/ 2) { + attr_dev(label, "for", /*name*/ ctx[1]); + } + + if (dirty & /*disabled*/ 4) { + toggle_class(div, "locked", /*disabled*/ ctx[2]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (default_slot) default_slot.d(detaching); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$I.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$I($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('ToggleSwitch', slots, ['default']); + let { name = "" } = $$props; + let { checked = false } = $$props; + let { disabled = false } = $$props; + const writable_props = ['name', 'checked', 'disabled']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + function input_change_handler() { + checked = this.checked; + $$invalidate(0, checked); + } + + $$self.$$set = $$props => { + if ('name' in $$props) $$invalidate(1, name = $$props.name); + if ('checked' in $$props) $$invalidate(0, checked = $$props.checked); + if ('disabled' in $$props) $$invalidate(2, disabled = $$props.disabled); + if ('$$scope' in $$props) $$invalidate(3, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ name, checked, disabled }); + + $$self.$inject_state = $$props => { + if ('name' in $$props) $$invalidate(1, name = $$props.name); + if ('checked' in $$props) $$invalidate(0, checked = $$props.checked); + if ('disabled' in $$props) $$invalidate(2, disabled = $$props.disabled); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [checked, name, disabled, $$scope, slots, input_change_handler]; + } + + class ToggleSwitch extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$I, create_fragment$I, safe_not_equal, { name: 1, checked: 0, disabled: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "ToggleSwitch", + options, + id: create_fragment$I.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get checked() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set checked(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get disabled() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set disabled(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/HelpButton.svelte generated by Svelte v3.49.0 */ + const file$A = "src/amazon-s3-and-cloudfront/ui/components/HelpButton.svelte"; + + // (13:0) {#if url} + function create_if_block$h(ctx) { + let a; + let img; + let img_src_value; + + const block = { + c: function create() { + a = element("a"); + img = element("img"); + attr_dev(img, "class", "icon help"); + if (!src_url_equal(img.src, img_src_value = /*$urls*/ ctx[2].assets + 'img/icon/help.svg')) attr_dev(img, "src", img_src_value); + attr_dev(img, "alt", /*alt*/ ctx[3]); + add_location(img, file$A, 14, 2, 603); + attr_dev(a, "href", /*url*/ ctx[1]); + attr_dev(a, "title", /*title*/ ctx[4]); + attr_dev(a, "class", "help"); + attr_dev(a, "target", "_blank"); + attr_dev(a, "data-setting-key", /*key*/ ctx[0]); + add_location(a, file$A, 13, 1, 526); + }, + m: function mount(target, anchor) { + insert_dev(target, a, anchor); + append_dev(a, img); + }, + p: function update(ctx, dirty) { + if (dirty & /*$urls*/ 4 && !src_url_equal(img.src, img_src_value = /*$urls*/ ctx[2].assets + 'img/icon/help.svg')) { + attr_dev(img, "src", img_src_value); + } + + if (dirty & /*url*/ 2) { + attr_dev(a, "href", /*url*/ ctx[1]); + } + + if (dirty & /*key*/ 1) { + attr_dev(a, "data-setting-key", /*key*/ ctx[0]); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(a); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$h.name, + type: "if", + source: "(13:0) {#if url}", + ctx + }); + + return block; + } + + function create_fragment$H(ctx) { + let if_block_anchor; + let if_block = /*url*/ ctx[1] && create_if_block$h(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + }, + p: function update(ctx, [dirty]) { + if (/*url*/ ctx[1]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$h(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$H.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$H($$self, $$props, $$invalidate) { + let $strings; + let $docs; + let $urls; + validate_store(strings, 'strings'); + component_subscribe($$self, strings, $$value => $$invalidate(6, $strings = $$value)); + validate_store(docs, 'docs'); + component_subscribe($$self, docs, $$value => $$invalidate(7, $docs = $$value)); + validate_store(urls, 'urls'); + component_subscribe($$self, urls, $$value => $$invalidate(2, $urls = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('HelpButton', slots, []); + let { key = "" } = $$props; + + let { url = key && $docs.hasOwnProperty(key) && $docs[key].hasOwnProperty("url") + ? $docs[key].url + : "" } = $$props; + + let { desc = "" } = $$props; + + // If desc supplied, use it, otherwise try and get via docs store or fall back to default help description. + let alt = desc.length + ? desc + : key && $docs.hasOwnProperty(key) && $docs[key].hasOwnProperty("desc") + ? $docs[key].desc + : $strings.help_desc; + + let title = alt; + const writable_props = ['key', 'url', 'desc']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('key' in $$props) $$invalidate(0, key = $$props.key); + if ('url' in $$props) $$invalidate(1, url = $$props.url); + if ('desc' in $$props) $$invalidate(5, desc = $$props.desc); + }; + + $$self.$capture_state = () => ({ + strings, + urls, + docs, + key, + url, + desc, + alt, + title, + $strings, + $docs, + $urls + }); + + $$self.$inject_state = $$props => { + if ('key' in $$props) $$invalidate(0, key = $$props.key); + if ('url' in $$props) $$invalidate(1, url = $$props.url); + if ('desc' in $$props) $$invalidate(5, desc = $$props.desc); + if ('alt' in $$props) $$invalidate(3, alt = $$props.alt); + if ('title' in $$props) $$invalidate(4, title = $$props.title); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [key, url, $urls, alt, title, desc]; + } + + class HelpButton extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$H, create_fragment$H, safe_not_equal, { key: 0, url: 1, desc: 5 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "HelpButton", + options, + id: create_fragment$H.name + }); + } + + get key() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set key(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get url() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set url(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get desc() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set desc(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/Panel.svelte generated by Svelte v3.49.0 */ + const file$z = "src/amazon-s3-and-cloudfront/ui/components/Panel.svelte"; + + // (50:1) {#if !multi && heading} + function create_if_block_5$3(ctx) { + let div; + let h3; + let t0; + let t1; + let current_block_type_index; + let if_block; + let t2; + let definedinwpconfig; + let current; + const if_block_creators = [create_if_block_6$3, create_if_block_7$3]; + const if_blocks = []; + + function select_block_type(ctx, dirty) { + if (/*helpURL*/ ctx[7]) return 0; + if (/*helpKey*/ ctx[6]) return 1; + return -1; + } + + if (~(current_block_type_index = select_block_type(ctx))) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + + definedinwpconfig = new DefinedInWPConfig({ + props: { defined: /*defined*/ ctx[3] }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + h3 = element("h3"); + t0 = text(/*heading*/ ctx[2]); + t1 = space(); + if (if_block) if_block.c(); + t2 = space(); + create_component(definedinwpconfig.$$.fragment); + add_location(h3, file$z, 51, 3, 1633); + attr_dev(div, "class", "heading"); + add_location(div, file$z, 50, 2, 1608); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, h3); + append_dev(h3, t0); + append_dev(div, t1); + + if (~current_block_type_index) { + if_blocks[current_block_type_index].m(div, null); + } + + append_dev(div, t2); + mount_component(definedinwpconfig, div, null); + current = true; + }, + p: function update(ctx, dirty) { + if (!current || dirty & /*heading*/ 4) set_data_dev(t0, /*heading*/ ctx[2]); + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) { + if_blocks[current_block_type_index].p(ctx, dirty); + } + } else { + if (if_block) { + group_outros(); + + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + + check_outros(); + } + + if (~current_block_type_index) { + if_block = if_blocks[current_block_type_index]; + + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block.c(); + } else { + if_block.p(ctx, dirty); + } + + transition_in(if_block, 1); + if_block.m(div, t2); + } else { + if_block = null; + } + } + + const definedinwpconfig_changes = {}; + if (dirty & /*defined*/ 8) definedinwpconfig_changes.defined = /*defined*/ ctx[3]; + definedinwpconfig.$set(definedinwpconfig_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + transition_in(definedinwpconfig.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + transition_out(definedinwpconfig.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + + if (~current_block_type_index) { + if_blocks[current_block_type_index].d(); + } + + destroy_component(definedinwpconfig); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_5$3.name, + type: "if", + source: "(50:1) {#if !multi && heading}", + ctx + }); + + return block; + } + + // (55:21) + function create_if_block_7$3(ctx) { + let helpbutton; + let current; + + helpbutton = new HelpButton({ + props: { + key: /*helpKey*/ ctx[6], + desc: /*helpDesc*/ ctx[8] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(helpbutton.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(helpbutton, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const helpbutton_changes = {}; + if (dirty & /*helpKey*/ 64) helpbutton_changes.key = /*helpKey*/ ctx[6]; + if (dirty & /*helpDesc*/ 256) helpbutton_changes.desc = /*helpDesc*/ ctx[8]; + helpbutton.$set(helpbutton_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(helpbutton.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(helpbutton.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(helpbutton, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_7$3.name, + type: "if", + source: "(55:21) ", + ctx + }); + + return block; + } + + // (53:3) {#if helpURL} + function create_if_block_6$3(ctx) { + let helpbutton; + let current; + + helpbutton = new HelpButton({ + props: { + url: /*helpURL*/ ctx[7], + desc: /*helpDesc*/ ctx[8] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(helpbutton.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(helpbutton, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const helpbutton_changes = {}; + if (dirty & /*helpURL*/ 128) helpbutton_changes.url = /*helpURL*/ ctx[7]; + if (dirty & /*helpDesc*/ 256) helpbutton_changes.desc = /*helpDesc*/ ctx[8]; + helpbutton.$set(helpbutton_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(helpbutton.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(helpbutton.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(helpbutton, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_6$3.name, + type: "if", + source: "(53:3) {#if helpURL}", + ctx + }); + + return block; + } + + // (62:2) {#if multi && heading} + function create_if_block$g(ctx) { + let panelrow; + let current; + + panelrow = new PanelRow({ + props: { + header: true, + $$slots: { default: [create_default_slot_1$b] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(panelrow.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(panelrow, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const panelrow_changes = {}; + + if (dirty & /*$$scope, helpURL, helpDesc, helpKey, storageProvider, defined, toggleDisabled, heading, toggleName, toggle*/ 529389) { + panelrow_changes.$$scope = { dirty, ctx }; + } + + panelrow.$set(panelrow_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(panelrow.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(panelrow.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(panelrow, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$g.name, + type: "if", + source: "(62:2) {#if multi && heading}", + ctx + }); + + return block; + } + + // (69:4) {:else} + function create_else_block$3(ctx) { + let h3; + let t; + + const block = { + c: function create() { + h3 = element("h3"); + t = text(/*heading*/ ctx[2]); + add_location(h3, file$z, 69, 5, 2179); + }, + m: function mount(target, anchor) { + insert_dev(target, h3, anchor); + append_dev(h3, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*heading*/ 4) set_data_dev(t, /*heading*/ ctx[2]); + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(h3); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_else_block$3.name, + type: "else", + source: "(69:4) {:else}", + ctx + }); + + return block; + } + + // (64:4) {#if toggleName} + function create_if_block_4$4(ctx) { + let toggleswitch; + let updating_checked; + let t0; + let h3; + let t1; + let current; + let mounted; + let dispose; + + function toggleswitch_checked_binding(value) { + /*toggleswitch_checked_binding*/ ctx[18](value); + } + + let toggleswitch_props = { + name: /*toggleName*/ ctx[5], + disabled: /*toggleDisabled*/ ctx[12], + $$slots: { default: [create_default_slot_2$7] }, + $$scope: { ctx } + }; + + if (/*toggle*/ ctx[0] !== void 0) { + toggleswitch_props.checked = /*toggle*/ ctx[0]; + } + + toggleswitch = new ToggleSwitch({ + props: toggleswitch_props, + $$inline: true + }); + + binding_callbacks.push(() => bind(toggleswitch, 'checked', toggleswitch_checked_binding)); + + const block = { + c: function create() { + create_component(toggleswitch.$$.fragment); + t0 = space(); + h3 = element("h3"); + t1 = text(/*heading*/ ctx[2]); + attr_dev(h3, "class", "toggler svelte-k1tgof"); + toggle_class(h3, "toggleDisabled", /*toggleDisabled*/ ctx[12]); + add_location(h3, file$z, 67, 5, 2075); + }, + m: function mount(target, anchor) { + mount_component(toggleswitch, target, anchor); + insert_dev(target, t0, anchor); + insert_dev(target, h3, anchor); + append_dev(h3, t1); + current = true; + + if (!mounted) { + dispose = listen_dev(h3, "click", /*headingClickHandler*/ ctx[14], false, false, false); + mounted = true; + } + }, + p: function update(ctx, dirty) { + const toggleswitch_changes = {}; + if (dirty & /*toggleName*/ 32) toggleswitch_changes.name = /*toggleName*/ ctx[5]; + if (dirty & /*toggleDisabled*/ 4096) toggleswitch_changes.disabled = /*toggleDisabled*/ ctx[12]; + + if (dirty & /*$$scope, heading*/ 524292) { + toggleswitch_changes.$$scope = { dirty, ctx }; + } + + if (!updating_checked && dirty & /*toggle*/ 1) { + updating_checked = true; + toggleswitch_changes.checked = /*toggle*/ ctx[0]; + add_flush_callback(() => updating_checked = false); + } + + toggleswitch.$set(toggleswitch_changes); + if (!current || dirty & /*heading*/ 4) set_data_dev(t1, /*heading*/ ctx[2]); + + if (dirty & /*toggleDisabled*/ 4096) { + toggle_class(h3, "toggleDisabled", /*toggleDisabled*/ ctx[12]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(toggleswitch.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(toggleswitch.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(toggleswitch, detaching); + if (detaching) detach_dev(t0); + if (detaching) detach_dev(h3); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_4$4.name, + type: "if", + source: "(64:4) {#if toggleName}", + ctx + }); + + return block; + } + + // (65:5) + function create_default_slot_2$7(ctx) { + let t; + + const block = { + c: function create() { + t = text(/*heading*/ ctx[2]); + }, + m: function mount(target, anchor) { + insert_dev(target, t, anchor); + }, + p: function update(ctx, dirty) { + if (dirty & /*heading*/ 4) set_data_dev(t, /*heading*/ ctx[2]); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_2$7.name, + type: "slot", + source: "(65:5) ", + ctx + }); + + return block; + } + + // (73:4) {#if storageProvider} + function create_if_block_3$4(ctx) { + let div; + let a; + let img; + let img_src_value; + let img_alt_value; + let t0; + let t1_value = /*storageProvider*/ ctx[9].provider_service_name + ""; + let t1; + let mounted; + let dispose; + + const block = { + c: function create() { + div = element("div"); + a = element("a"); + img = element("img"); + t0 = space(); + t1 = text(t1_value); + if (!src_url_equal(img.src, img_src_value = /*storageProvider*/ ctx[9].link_icon)) attr_dev(img, "src", img_src_value); + attr_dev(img, "alt", img_alt_value = /*storageProvider*/ ctx[9].icon_desc); + add_location(img, file$z, 75, 7, 2361); + attr_dev(a, "href", "/storage/provider"); + attr_dev(a, "class", "link"); + add_location(a, file$z, 74, 6, 2303); + attr_dev(div, "class", "provider"); + add_location(div, file$z, 73, 5, 2274); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, a); + append_dev(a, img); + append_dev(a, t0); + append_dev(a, t1); + + if (!mounted) { + dispose = action_destroyer(link.call(null, a)); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*storageProvider*/ 512 && !src_url_equal(img.src, img_src_value = /*storageProvider*/ ctx[9].link_icon)) { + attr_dev(img, "src", img_src_value); + } + + if (dirty & /*storageProvider*/ 512 && img_alt_value !== (img_alt_value = /*storageProvider*/ ctx[9].icon_desc)) { + attr_dev(img, "alt", img_alt_value); + } + + if (dirty & /*storageProvider*/ 512 && t1_value !== (t1_value = /*storageProvider*/ ctx[9].provider_service_name + "")) set_data_dev(t1, t1_value); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3$4.name, + type: "if", + source: "(73:4) {#if storageProvider}", + ctx + }); + + return block; + } + + // (83:22) + function create_if_block_2$6(ctx) { + let helpbutton; + let current; + + helpbutton = new HelpButton({ + props: { + key: /*helpKey*/ ctx[6], + desc: /*helpDesc*/ ctx[8] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(helpbutton.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(helpbutton, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const helpbutton_changes = {}; + if (dirty & /*helpKey*/ 64) helpbutton_changes.key = /*helpKey*/ ctx[6]; + if (dirty & /*helpDesc*/ 256) helpbutton_changes.desc = /*helpDesc*/ ctx[8]; + helpbutton.$set(helpbutton_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(helpbutton.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(helpbutton.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(helpbutton, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2$6.name, + type: "if", + source: "(83:22) ", + ctx + }); + + return block; + } + + // (81:4) {#if helpURL} + function create_if_block_1$8(ctx) { + let helpbutton; + let current; + + helpbutton = new HelpButton({ + props: { + url: /*helpURL*/ ctx[7], + desc: /*helpDesc*/ ctx[8] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(helpbutton.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(helpbutton, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const helpbutton_changes = {}; + if (dirty & /*helpURL*/ 128) helpbutton_changes.url = /*helpURL*/ ctx[7]; + if (dirty & /*helpDesc*/ 256) helpbutton_changes.desc = /*helpDesc*/ ctx[8]; + helpbutton.$set(helpbutton_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(helpbutton.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(helpbutton.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(helpbutton, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$8.name, + type: "if", + source: "(81:4) {#if helpURL}", + ctx + }); + + return block; + } + + // (63:3) + function create_default_slot_1$b(ctx) { + let current_block_type_index; + let if_block0; + let t0; + let definedinwpconfig; + let t1; + let t2; + let current_block_type_index_1; + let if_block2; + let if_block2_anchor; + let current; + const if_block_creators = [create_if_block_4$4, create_else_block$3]; + const if_blocks = []; + + function select_block_type_1(ctx, dirty) { + if (/*toggleName*/ ctx[5]) return 0; + return 1; + } + + current_block_type_index = select_block_type_1(ctx); + if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + definedinwpconfig = new DefinedInWPConfig({ + props: { defined: /*defined*/ ctx[3] }, + $$inline: true + }); + + let if_block1 = /*storageProvider*/ ctx[9] && create_if_block_3$4(ctx); + const if_block_creators_1 = [create_if_block_1$8, create_if_block_2$6]; + const if_blocks_1 = []; + + function select_block_type_2(ctx, dirty) { + if (/*helpURL*/ ctx[7]) return 0; + if (/*helpKey*/ ctx[6]) return 1; + return -1; + } + + if (~(current_block_type_index_1 = select_block_type_2(ctx))) { + if_block2 = if_blocks_1[current_block_type_index_1] = if_block_creators_1[current_block_type_index_1](ctx); + } + + const block = { + c: function create() { + if_block0.c(); + t0 = space(); + create_component(definedinwpconfig.$$.fragment); + t1 = space(); + if (if_block1) if_block1.c(); + t2 = space(); + if (if_block2) if_block2.c(); + if_block2_anchor = empty(); + }, + m: function mount(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert_dev(target, t0, anchor); + mount_component(definedinwpconfig, target, anchor); + insert_dev(target, t1, anchor); + if (if_block1) if_block1.m(target, anchor); + insert_dev(target, t2, anchor); + + if (~current_block_type_index_1) { + if_blocks_1[current_block_type_index_1].m(target, anchor); + } + + insert_dev(target, if_block2_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx); + + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx, dirty); + } else { + group_outros(); + + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + + check_outros(); + if_block0 = if_blocks[current_block_type_index]; + + if (!if_block0) { + if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block0.c(); + } else { + if_block0.p(ctx, dirty); + } + + transition_in(if_block0, 1); + if_block0.m(t0.parentNode, t0); + } + + const definedinwpconfig_changes = {}; + if (dirty & /*defined*/ 8) definedinwpconfig_changes.defined = /*defined*/ ctx[3]; + definedinwpconfig.$set(definedinwpconfig_changes); + + if (/*storageProvider*/ ctx[9]) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_3$4(ctx); + if_block1.c(); + if_block1.m(t2.parentNode, t2); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + let previous_block_index_1 = current_block_type_index_1; + current_block_type_index_1 = select_block_type_2(ctx); + + if (current_block_type_index_1 === previous_block_index_1) { + if (~current_block_type_index_1) { + if_blocks_1[current_block_type_index_1].p(ctx, dirty); + } + } else { + if (if_block2) { + group_outros(); + + transition_out(if_blocks_1[previous_block_index_1], 1, 1, () => { + if_blocks_1[previous_block_index_1] = null; + }); + + check_outros(); + } + + if (~current_block_type_index_1) { + if_block2 = if_blocks_1[current_block_type_index_1]; + + if (!if_block2) { + if_block2 = if_blocks_1[current_block_type_index_1] = if_block_creators_1[current_block_type_index_1](ctx); + if_block2.c(); + } else { + if_block2.p(ctx, dirty); + } + + transition_in(if_block2, 1); + if_block2.m(if_block2_anchor.parentNode, if_block2_anchor); + } else { + if_block2 = null; + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block0); + transition_in(definedinwpconfig.$$.fragment, local); + transition_in(if_block2); + current = true; + }, + o: function outro(local) { + transition_out(if_block0); + transition_out(definedinwpconfig.$$.fragment, local); + transition_out(if_block2); + current = false; + }, + d: function destroy(detaching) { + if_blocks[current_block_type_index].d(detaching); + if (detaching) detach_dev(t0); + destroy_component(definedinwpconfig, detaching); + if (detaching) detach_dev(t1); + if (if_block1) if_block1.d(detaching); + if (detaching) detach_dev(t2); + + if (~current_block_type_index_1) { + if_blocks_1[current_block_type_index_1].d(detaching); + } + + if (detaching) detach_dev(if_block2_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_1$b.name, + type: "slot", + source: "(63:3) ", + ctx + }); + + return block; + } + + // (61:1) + function create_default_slot$n(ctx) { + let t; + let current; + let if_block = /*multi*/ ctx[4] && /*heading*/ ctx[2] && create_if_block$g(ctx); + const default_slot_template = /*#slots*/ ctx[17].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[19], null); + + const block = { + c: function create() { + if (if_block) if_block.c(); + t = space(); + if (default_slot) default_slot.c(); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, t, anchor); + + if (default_slot) { + default_slot.m(target, anchor); + } + + current = true; + }, + p: function update(ctx, dirty) { + if (/*multi*/ ctx[4] && /*heading*/ ctx[2]) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*multi, heading*/ 20) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$g(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(t.parentNode, t); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 524288)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[19], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[19]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[19], dirty, null), + null + ); + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(t); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$n.name, + type: "slot", + source: "(61:1) ", + ctx + }); + + return block; + } + + function create_fragment$G(ctx) { + let div; + let t; + let panelcontainer; + let div_class_value; + let current; + let if_block = !/*multi*/ ctx[4] && /*heading*/ ctx[2] && create_if_block_5$3(ctx); + + panelcontainer = new PanelContainer({ + props: { + class: /*classes*/ ctx[13], + $$slots: { default: [create_default_slot$n] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + create_component(panelcontainer.$$.fragment); + attr_dev(div, "class", div_class_value = "panel " + /*name*/ ctx[1] + " svelte-k1tgof"); + toggle_class(div, "multi", /*multi*/ ctx[4]); + toggle_class(div, "locked", /*locked*/ ctx[10]); + add_location(div, file$z, 48, 0, 1529); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + append_dev(div, t); + mount_component(panelcontainer, div, null); + current = true; + }, + p: function update(ctx, [dirty]) { + if (!/*multi*/ ctx[4] && /*heading*/ ctx[2]) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*multi, heading*/ 20) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_5$3(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div, t); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + + const panelcontainer_changes = {}; + + if (dirty & /*$$scope, helpURL, helpDesc, helpKey, storageProvider, defined, toggleDisabled, heading, toggleName, toggle, multi*/ 529405) { + panelcontainer_changes.$$scope = { dirty, ctx }; + } + + panelcontainer.$set(panelcontainer_changes); + + if (!current || dirty & /*name*/ 2 && div_class_value !== (div_class_value = "panel " + /*name*/ ctx[1] + " svelte-k1tgof")) { + attr_dev(div, "class", div_class_value); + } + + if (dirty & /*name, multi*/ 18) { + toggle_class(div, "multi", /*multi*/ ctx[4]); + } + + if (dirty & /*name, locked*/ 1026) { + toggle_class(div, "locked", /*locked*/ ctx[10]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + transition_in(panelcontainer.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + transition_out(panelcontainer.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + destroy_component(panelcontainer); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$G.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$G($$self, $$props, $$invalidate) { + let locked; + let toggleDisabled; + let $defined_settings; + + let $settingsLocked, + $$unsubscribe_settingsLocked = noop, + $$subscribe_settingsLocked = () => ($$unsubscribe_settingsLocked(), $$unsubscribe_settingsLocked = subscribe(settingsLocked, $$value => $$invalidate(16, $settingsLocked = $$value)), settingsLocked); + + let $strings; + validate_store(defined_settings, 'defined_settings'); + component_subscribe($$self, defined_settings, $$value => $$invalidate(15, $defined_settings = $$value)); + validate_store(strings, 'strings'); + component_subscribe($$self, strings, $$value => $$invalidate(20, $strings = $$value)); + $$self.$$.on_destroy.push(() => $$unsubscribe_settingsLocked()); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Panel', slots, ['default']); + const classes = $$props.class ? $$props.class : ""; + let { name = "" } = $$props; + let { heading = "" } = $$props; + let { defined = false } = $$props; + let { multi = false } = $$props; + let { toggleName = "" } = $$props; + let { toggle = false } = $$props; + let { helpKey = "" } = $$props; + let { helpURL = "" } = $$props; + let { helpDesc = $strings.help_desc } = $$props; + let { storageProvider = null } = $$props; + + // Parent page may want to be locked. + let settingsLocked = writable(false); + + validate_store(settingsLocked, 'settingsLocked'); + $$subscribe_settingsLocked(); + + if (hasContext("settingsLocked")) { + $$subscribe_settingsLocked(settingsLocked = getContext("settingsLocked")); + } + + /** + * If appropriate, clicking the header toggles to toggle switch. + */ + function headingClickHandler() { + if (toggleName && !toggleDisabled) { + $$invalidate(0, toggle = !toggle); + } + } + + function toggleswitch_checked_binding(value) { + toggle = value; + $$invalidate(0, toggle); + } + + $$self.$$set = $$new_props => { + $$invalidate(21, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('name' in $$new_props) $$invalidate(1, name = $$new_props.name); + if ('heading' in $$new_props) $$invalidate(2, heading = $$new_props.heading); + if ('defined' in $$new_props) $$invalidate(3, defined = $$new_props.defined); + if ('multi' in $$new_props) $$invalidate(4, multi = $$new_props.multi); + if ('toggleName' in $$new_props) $$invalidate(5, toggleName = $$new_props.toggleName); + if ('toggle' in $$new_props) $$invalidate(0, toggle = $$new_props.toggle); + if ('helpKey' in $$new_props) $$invalidate(6, helpKey = $$new_props.helpKey); + if ('helpURL' in $$new_props) $$invalidate(7, helpURL = $$new_props.helpURL); + if ('helpDesc' in $$new_props) $$invalidate(8, helpDesc = $$new_props.helpDesc); + if ('storageProvider' in $$new_props) $$invalidate(9, storageProvider = $$new_props.storageProvider); + if ('$$scope' in $$new_props) $$invalidate(19, $$scope = $$new_props.$$scope); + }; + + $$self.$capture_state = () => ({ + getContext, + hasContext, + writable, + link, + defined_settings, + strings, + PanelContainer, + PanelRow, + DefinedInWPConfig, + ToggleSwitch, + HelpButton, + classes, + name, + heading, + defined, + multi, + toggleName, + toggle, + helpKey, + helpURL, + helpDesc, + storageProvider, + settingsLocked, + headingClickHandler, + toggleDisabled, + locked, + $defined_settings, + $settingsLocked, + $strings + }); + + $$self.$inject_state = $$new_props => { + $$invalidate(21, $$props = assign(assign({}, $$props), $$new_props)); + if ('name' in $$props) $$invalidate(1, name = $$new_props.name); + if ('heading' in $$props) $$invalidate(2, heading = $$new_props.heading); + if ('defined' in $$props) $$invalidate(3, defined = $$new_props.defined); + if ('multi' in $$props) $$invalidate(4, multi = $$new_props.multi); + if ('toggleName' in $$props) $$invalidate(5, toggleName = $$new_props.toggleName); + if ('toggle' in $$props) $$invalidate(0, toggle = $$new_props.toggle); + if ('helpKey' in $$props) $$invalidate(6, helpKey = $$new_props.helpKey); + if ('helpURL' in $$props) $$invalidate(7, helpURL = $$new_props.helpURL); + if ('helpDesc' in $$props) $$invalidate(8, helpDesc = $$new_props.helpDesc); + if ('storageProvider' in $$props) $$invalidate(9, storageProvider = $$new_props.storageProvider); + if ('settingsLocked' in $$props) $$subscribe_settingsLocked($$invalidate(11, settingsLocked = $$new_props.settingsLocked)); + if ('toggleDisabled' in $$props) $$invalidate(12, toggleDisabled = $$new_props.toggleDisabled); + if ('locked' in $$props) $$invalidate(10, locked = $$new_props.locked); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*$settingsLocked*/ 65536) { + $$invalidate(10, locked = $settingsLocked); + } + + if ($$self.$$.dirty & /*$defined_settings, toggleName, locked*/ 33824) { + $$invalidate(12, toggleDisabled = $defined_settings.includes(toggleName) || locked); + } + }; + + $$props = exclude_internal_props($$props); + + return [ + toggle, + name, + heading, + defined, + multi, + toggleName, + helpKey, + helpURL, + helpDesc, + storageProvider, + locked, + settingsLocked, + toggleDisabled, + classes, + headingClickHandler, + $defined_settings, + $settingsLocked, + slots, + toggleswitch_checked_binding, + $$scope + ]; + } + + class Panel extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$G, create_fragment$G, safe_not_equal, { + name: 1, + heading: 2, + defined: 3, + multi: 4, + toggleName: 5, + toggle: 0, + helpKey: 6, + helpURL: 7, + helpDesc: 8, + storageProvider: 9 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Panel", + options, + id: create_fragment$G.name + }); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get heading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set heading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get defined() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set defined(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get multi() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set multi(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get toggleName() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set toggleName(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get toggle() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set toggle(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get helpKey() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set helpKey(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get helpURL() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set helpURL(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get helpDesc() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set helpDesc(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get storageProvider() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set storageProvider(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/amazon-s3-and-cloudfront/ui/components/Button.svelte generated by Svelte v3.49.0 */ + + const file$y = "src/amazon-s3-and-cloudfront/ui/components/Button.svelte"; + + function create_fragment$F(ctx) { + let button; + let current; + let mounted; + let dispose; + const default_slot_template = /*#slots*/ ctx[10].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[9], null); + + const block = { + c: function create() { + button = element("button"); + if (default_slot) default_slot.c(); + attr_dev(button, "class", /*classes*/ ctx[8]); + attr_dev(button, "title", /*title*/ ctx[7]); + button.disabled = /*disabled*/ ctx[6]; + toggle_class(button, "btn-xs", /*extraSmall*/ ctx[0]); + toggle_class(button, "btn-sm", /*small*/ ctx[1]); + toggle_class(button, "btn-md", /*medium*/ ctx[3]); + toggle_class(button, "btn-lg", /*large*/ ctx[2]); + toggle_class(button, "btn-primary", /*primary*/ ctx[4]); + toggle_class(button, "btn-outline", /*outline*/ ctx[5]); + toggle_class(button, "btn-disabled", /*disabled*/ ctx[6]); + add_location(button, file$y, 20, 0, 538); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, button, anchor); + + if (default_slot) { + default_slot.m(button, null); + } + + current = true; + + if (!mounted) { + dispose = listen_dev(button, "click", /*click_handler*/ ctx[11], false, false, false); + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 512)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[9], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[9]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[9], dirty, null), + null + ); + } + } + + if (!current || dirty & /*title*/ 128) { + attr_dev(button, "title", /*title*/ ctx[7]); + } + + if (!current || dirty & /*disabled*/ 64) { + prop_dev(button, "disabled", /*disabled*/ ctx[6]); + } + + if (dirty & /*extraSmall*/ 1) { + toggle_class(button, "btn-xs", /*extraSmall*/ ctx[0]); + } + + if (dirty & /*small*/ 2) { + toggle_class(button, "btn-sm", /*small*/ ctx[1]); + } + + if (dirty & /*medium*/ 8) { + toggle_class(button, "btn-md", /*medium*/ ctx[3]); + } + + if (dirty & /*large*/ 4) { + toggle_class(button, "btn-lg", /*large*/ ctx[2]); + } + + if (dirty & /*primary*/ 16) { + toggle_class(button, "btn-primary", /*primary*/ ctx[4]); + } + + if (dirty & /*outline*/ 32) { + toggle_class(button, "btn-outline", /*outline*/ ctx[5]); + } + + if (dirty & /*disabled*/ 64) { + toggle_class(button, "btn-disabled", /*disabled*/ ctx[6]); + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(button); + if (default_slot) default_slot.d(detaching); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$F.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$F($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Button', slots, ['default']); + const classes = $$props.class ? $$props.class : ""; + let { extraSmall = false } = $$props; + let { small = false } = $$props; + let { large = false } = $$props; + let { medium = !extraSmall && !small && !large } = $$props; + let { primary = false } = $$props; + let { outline = !primary } = $$props; + let { disabled = false } = $$props; + let { title = "" } = $$props; + + function click_handler(event) { + bubble.call(this, $$self, event); + } + + $$self.$$set = $$new_props => { + $$invalidate(12, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); + if ('extraSmall' in $$new_props) $$invalidate(0, extraSmall = $$new_props.extraSmall); + if ('small' in $$new_props) $$invalidate(1, small = $$new_props.small); + if ('large' in $$new_props) $$invalidate(2, large = $$new_props.large); + if ('medium' in $$new_props) $$invalidate(3, medium = $$new_props.medium); + if ('primary' in $$new_props) $$invalidate(4, primary = $$new_props.primary); + if ('outline' in $$new_props) $$invalidate(5, outline = $$new_props.outline); + if ('disabled' in $$new_props) $$invalidate(6, disabled = $$new_props.disabled); + if ('title' in $$new_props) $$invalidate(7, title = $$new_props.title); + if ('$$scope' in $$new_props) $$invalidate(9, $$scope = $$new_props.$$scope); + }; + + $$self.$capture_state = () => ({ + classes, + extraSmall, + small, + large, + medium, + primary, + outline, + disabled, + title + }); + + $$self.$inject_state = $$new_props => { + $$invalidate(12, $$props = assign(assign({}, $$props), $$new_props)); + if ('extraSmall' in $$props) $$invalidate(0, extraSmall = $$new_props.extraSmall); + if ('small' in $$props) $$invalidate(1, small = $$new_props.small); + if ('large' in $$props) $$invalidate(2, large = $$new_props.large); + if ('medium' in $$props) $$invalidate(3, medium = $$new_props.medium); + if ('primary' in $$props) $$invalidate(4, primary = $$new_props.primary); + if ('outline' in $$props) $$invalidate(5, outline = $$new_props.outline); + if ('disabled' in $$props) $$invalidate(6, disabled = $$new_props.disabled); + if ('title' in $$props) $$invalidate(7, title = $$new_props.title); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$props = exclude_internal_props($$props); + + return [ + extraSmall, + small, + large, + medium, + primary, + outline, + disabled, + title, + classes, + $$scope, + slots, + click_handler + ]; + } + + class Button extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$F, create_fragment$F, safe_not_equal, { + extraSmall: 0, + small: 1, + large: 2, + medium: 3, + primary: 4, + outline: 5, + disabled: 6, + title: 7 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Button", + options, + id: create_fragment$F.name + }); + } + + get extraSmall() { + throw new Error("\n\t\t\t\t\t\t\n\t\t\t\t\t{:else if expandable}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else if dismissible}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t{#if extra}\n\t\t\t\t

    {@html extra}

    \n\t\t\t{/if}\n\t\t\t{#if linksHTML}\n\t\t\t\t

    {@html linksHTML}

    \n\t\t\t{/if}\n\t\t\n\t\n\t\n\n","\n\n{#if $notifications.length}\n\t
    \n\t\t{#each $notifications as notification (notification.render_key)}\n\t\t\t{#if !notification.dismissed && (notification.only_show_on_tab === tab || notification.only_show_on_tab === tabParent || !notification.only_show_on_tab)}\n\t\t\t\t\n\t\t\t\t\t{#if notification.message}\n\t\t\t\t\t\t

    {@html notification.message}

    \n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t{/each}\n\t
    \n{/if}\n","\n\n{#if $bapa && !$delivery_provider.block_public_access_supported}\n\t\n\t\t

    {@html $storage_provider.block_public_access_warning.message}

    \n\t
    \n{/if}\n","\n\n{#if $ooe && !$delivery_provider.object_ownership_supported}\n\t\n\t\t

    {@html $storage_provider.object_ownership_enforced_warning.message}

    \n\t
    \n{/if}\n","\n\n
  • \n\t focus = true}\n\t\ton:focusout={() => focus = false}\n\t\ton:mouseenter={() => hover = true}\n\t\ton:mouseleave={() => hover = false}\n\t>\n\t\t{page.title()}\n\t\n
  • \n","\n\n{#if displayItems}\n\t
      \n\t\t{#each displayItems as page, index}\n\t\t\t\n\t\t\t\n\t\t\t{#if progress && index < (displayItems.length - 1)}\n\t\t\t\t
    • \n\t\t\t\t\t\"\"\n\t\t\t\t
    • \n\t\t\t{/if}\n\t\t{/each}\n\t
    \n{/if}\n","\n\n{#if routes}\n\t
    \n\t\t\n\t\t\n\t\t\t\n\t\t\n\t
    \n{/if}","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n
    \n\t\n
    \n","\n\n
    \n\t\n
    \n","\n\n
    \n\t{#if gradient}\n\t\t
    \n\t{/if}\n\t\n
    \n\n\n","\n\n{#if defined}\n\t

    {$strings.defined_in_wp_config}

    \n{/if}","\n\n
    \n\t\n\t\n
    ","\n\n{#if url}\n\t\n\t\t\n\t\n{/if}\n","\n\n
    \n\t{#if !multi && heading}\n\t\t
    \n\t\t\t

    {heading}

    \n\t\t\t{#if helpURL}\n\t\t\t\t\n\t\t\t{:else if helpKey}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t
    \n\t{/if}\n\t\n\t\t{#if multi && heading}\n\t\t\t\n\t\t\t\t{#if toggleName}\n\t\t\t\t\t\n\t\t\t\t\t\t{heading}\n\t\t\t\t\t\n\t\t\t\t\t

    {heading}

    \n\t\t\t\t{:else}\n\t\t\t\t\t

    {heading}

    \n\t\t\t\t{/if}\n\t\t\t\t\n\t\t\t\t{#if storageProvider}\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t\t{#if helpURL}\n\t\t\t\t\t\n\t\t\t\t{:else if helpKey}\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t
    \n\t\t{/if}\n\n\t\t\n\t
    \n
    \n\n\n","\n\n\n\t\n\n","\n\n\n\t{$storage_provider.provider_service_name}/\n\t
    \n\t\t

    {$storage_provider.provider_service_name}

    \n\t\t

    \n\t\t\t{$settings.bucket}\n\t\t\t{$region_name}\n\t\t

    \n\t
    \n\t\n
    \n\n\n","\n\n{#if $settings_notifications.has( settingKey )}\n\t{#each [...$settings_notifications.get( settingKey ).values()].sort( compareNotificationTypes ) as notification (notification)}\n\t\t\n\t\t\t

    {@html notification.message}

    \n\t\t
    \n\t{/each}\n{/if}\n","\n\n
    \n\t\n\t\t{#if toggleName}\n\t\t\t\n\t\t\t\t{heading}\n\t\t\t\n\t\t\t

    {heading}

    \n\t\t{:else}\n\t\t\t

    {heading}

    \n\t\t{/if}\n\t\t\n\t
    \n\t\n\t\t

    {@html description}

    \n\t
    \n\t{#if input}\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t{#if validationError}\n\t\t\t

    {validationError}

    \n\t\t{/if}\n\t{/if}\n\n\t{#if toggleName}\n\t\t\n\t{/if}\n\n\t{#if textName}\n\t\t\n\t{/if}\n\n\t\n
    \n\n\n","\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n","\n\n\n\t{$delivery_provider.provider_service_name}/\n\t
    \n\t\t

    {$delivery_provider.provider_service_name}

    \n\t\t

    \n\t\t\t{$delivery_provider.console_title}\n\t\t

    \n\t
    \n\t\n
    \n\n\n","\n\n\n\t\n\t\n\n\t{#if $delivery_provider.delivery_domain_allowed}\n\t\t\n\t\t{#if $delivery_provider.use_signed_urls_key_file_allowed && $settings[ \"enable-delivery-domain\" ]}\n\t\t\t\n\t\t\t\t\n\t\t\t\t{#if $settings[ \"enable-signed-urls\" ]}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t\n\t\t{/if}\n\t{/if}\n\n\t\n\n","\n\n\n","\n\n{#if parts.length > 0}\n\t\n\t\t\n\t\t\t

    {$strings.url_preview_desc}

    \n\t\t
    \n\t\t\n\t\t\t
    \n\t\t\t\t{#each parts as part (part.title)}\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {part.title}
    \n\t\t\t\t\t\t
    {part.example}
    \n\t\t\t\t\t
    \n\t\t\t\t{/each}\n\t\t\t
    \n\t\t
    \n\t
    \n{/if}\n","/**\n * Scrolls the notifications into view.\n */\nexport function scrollNotificationsIntoView() {\n\tconst element = document.getElementById( \"notifications\" );\n\n\tif ( element ) {\n\t\telement.scrollIntoView( { behavior: \"smooth\", block: \"start\" } );\n\t}\n}\n","\n\n{#if $settingsChangedStore}\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n{/if}\n","\n\n\n\t\n\t
    \n\t\t\n\t\t\n\t
    \n\t\n\t\n\t\n
    \n\n{#if sidebar}\n\t\n{/if}\n\n