Changeset 3439940
- Timestamp:
- 01/15/2026 01:03:07 AM (5 weeks ago)
- Location:
- fb-reviews-widget
- Files:
-
- 4 added
- 4 deleted
- 25 edited
-
assets/blueprints (added)
-
assets/blueprints/blueprint.json (added)
-
trunk/assets/css/admin-main-rtl.css (modified) (1 diff)
-
trunk/assets/css/admin-main.css (modified) (1 diff)
-
trunk/assets/css/public-main-rtl.css (modified) (1 diff)
-
trunk/assets/css/public-main.css (modified) (1 diff)
-
trunk/assets/js/admin-main.js (modified) (1 diff)
-
trunk/assets/src/css/admin-main-rtl.css (deleted)
-
trunk/assets/src/css/admin-main.css (modified) (4 diffs)
-
trunk/assets/src/css/public-clean-rtl.css (deleted)
-
trunk/assets/src/css/public-clean.css (deleted)
-
trunk/assets/src/css/public-main-rtl.css (deleted)
-
trunk/assets/src/css/public-main.css (modified) (13 diffs)
-
trunk/assets/src/js/admin-builder.js (modified) (15 diffs)
-
trunk/assets/src/js/admin-main.js (modified) (3 diffs)
-
trunk/assets/src/sass/admin-main.scss (modified) (4 diffs)
-
trunk/assets/src/sass/public-main.scss (modified) (5 diffs)
-
trunk/fbrev.php (modified) (1 diff)
-
trunk/includes/class-activator.php (modified) (5 diffs)
-
trunk/includes/class-assets.php (modified) (6 diffs)
-
trunk/includes/class-builder-page.php (modified) (1 diff)
-
trunk/includes/class-plugin-settings.php (modified) (3 diffs)
-
trunk/includes/class-plugin.php (modified) (4 diffs)
-
trunk/includes/class-reviews-cron.php (modified) (1 diff)
-
trunk/includes/class-settings-save.php (modified) (1 diff)
-
trunk/includes/class-view-svg.php (modified) (1 diff)
-
trunk/includes/class-view.php (modified) (18 diffs)
-
trunk/includes/core/class-connect-google.php (modified) (14 diffs)
-
trunk/includes/core/class-connect-helper.php (added)
-
trunk/includes/core/class-core.php (modified) (1 diff)
-
trunk/includes/core/class-database.php (modified) (6 diffs)
-
trunk/includes/core/class-google-dao.php (added)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
fb-reviews-widget/trunk/assets/css/admin-main-rtl.css
r3406362 r3439940 1 @charset "UTF-8";.trustreviews-admin #wpcontent{padding:0}.trust-reviews_page_trustreviews-builder #wpcontent,.trustreviews-admin.trust-reviews_page_trustreviews-builder #wpcontent{padding-left:300px}.toplevel_page_trustreviews .wp-menu-image img{width:18px}.trustreviews-admin.edit-php #wpbody{color:#5d6f80;padding-right:20px;position:relative}.trustreviews-admin.edit-php #wpbody .wp-header-end,.trustreviews-admin.post-new-php #wpbody .wp-header-end,.trustreviews-admin.post-php #wpbody .wp-header-end{margin-top:6px}.trustreviews-admin .update-nag{margin:20px 20px 0 0}.trustreviews-admin.edit-php .update-nag{margin:20px 0 0 20px}.trustreviews-admin.edit-php .update-nag~.update-nag{margin-right:0}.trustreviews-admin #wpbody #screen-meta-links{display:none}.trustreviews-admin #screen-meta{background-color:#ecf0f1;border:0;margin:0}.trustreviews-admin #screen-meta-links{position:absolute;top:0;left:0;z-index:1}.trustreviews-admin .notice p{font-size:14px}.trustreviews-admin .notice.notice-error p{color:#d63638}.trustreviews-tophead{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-sizing:border-box;align-items:center;background-color:#fff;border-bottom:1px solid #cfd9db;padding:15px 20px;box-sizing:border-box;position:relative;top:46px;width:100%}@media (min-width:601px){.trustreviews-tophead{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0}}.trustreviews-tophead img{width:32px;margin:0 0 0 4px;vertical-align:middle}.trustreviews-tophead-title{padding:0;font-size:18px;font-weight:600;line-height:1.4em}.trustreviews-page-title{font-size:23px;font-weight:400;margin:0;padding:20px 20px 0 0;line-height:29px}.trustreviews-version{position:absolute;top:0;left:16px;text-align:center}.trustreviews-version-free{display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:12px 0 3px;padding:4px 10px;font-size:12px;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.trustreviews-version-upgrade span{color:#4ea2e7;font-size:11px;font-weight:600;padding:6px 4px;cursor:default;transition:color .3s;text-transform:uppercase}.trustreviews-version-upgrade span:hover{color:#157cd1}.trustreviews-version-upgrade .trustreviews-upgrade-head{margin:0 0 5px;font-weight:600}#trustreviews-upgrade-tips{position:absolute;left:0;border:2px solid #ccc;border-radius:5px;padding:10px 12px;margin:2px 0 0;z-index:5;background:#fff;width:256px;text-align:right;font-size:16px;line-height:24px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}#trustreviews-upgrade-tips:hover,.trustreviews-version-upgrade span:hover+#trustreviews-upgrade-tips{opacity:1;visibility:visible}#trustreviews-upgrade-tips>a{display:inline-block;width:100%;font-size:14px;font-weight:700;text-align:center;margin:10px 0 0;padding:5px 0 0;border-top:1px solid #ccc;text-transform:uppercase}.trustreviews-toolbar{padding:15px 20px;background-color:#fff;border-bottom:1px solid #cfd9db}@media (min-width:783px){.trustreviews-toolbar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}}.trustreviews-toolbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-bottom:0;margin-left:20px;min-width:0}.trustreviews-toolbar-title-input{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;width:100%}.trustreviews-toolbar-title-input{font-size:18px;font-weight:400;line-height:1.4em;margin:0;padding:0}.trustreviews-toolbar-control{display:-webkit-box;display:-ms-flexbox;display:flex}.trustreviews-toolbar-control button{margin-right:20px!important}.trustreviews-toolbar-control input[type=text]{width:200px;height:34px;font-size:14px}.trustreviews-toolbar-options label{display:block;padding:0 4px 0 0}.trustreviews-admin .type-trustreviews_collection .title.column-title{font-size:0}.trustreviews-admin .type-trustreviews_collection .title.column-title .row-actions,.trustreviews-admin .type-trustreviews_collection .title.column-title strong{line-height:1.5em}.trustreviews-builder-workspace{display:block;position:relative;width:100%;overflow-y:hidden;box-sizing:border-box}.trustreviews-builder-preview{font-size:14px;grid-area:preview;min-height:0;min-width:0;padding:20px;line-height:1.75}.trustreviews-builder-options{box-sizing:border-box;position:fixed;top:32px;bottom:0;left:0;width:300px;overflow:hidden;transition:all .3s;z-index:1;overflow-y:auto;background:#fafafa}.trustreviews-builder-options.trustreviews-block-options{position:relative;width:100%}.trustreviews .wp-review-hidden{opacity:.5!important}.trustreviews .wp-review-hide{ color:#fff!important;font-size:12px!important;font-weight:600!important;line-height:26px!important;text-decoration:none!important;text-transform:uppercase!important;padding:2px 8px!important;border-radius:3px!important;border-color:#0062cc!important;background-color:#427fbf!important}.trustreviews .wp-review-hide:hover{background-color:#1d62ab!important}#trustreviews-rate_us-wrap{display:block;position:fixed;right:0;top:100%;width:auto;font-size:16px;z-index:99999}#trustreviews-rate_us{padding:18px;opacity:0;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease}#trustreviews-rate_us.trustreviews-flash-visible{opacity:1;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);text-align:right}#trustreviews-rate_us.trustreviews-flash-visible.trustreviews-flash-gout{opacity:.5;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease}.trustreviews-rate_us-content{padding:15px;background:#fff;border-radius:5px;box-shadow:0 1px 2px RGB(60 64 67/30%),0 2px 6px 2px RGB(60 64 67/15%)}.trustreviews-rate_us-head{font-size:22px;font-weight:600;margin:0 0 20px 0}.trustreviews-rate_us-body{font-size:18px}#trustreviews-rate_us-feedback svg,.trustreviews-rate_us-body svg{display:inline-block;padding:2px 4px;width:24px;height:24px;cursor:pointer;vertical-align:middle}.trustreviews-rate_us-body svg use{fill:#fa8e08}.trustreviews-rate_us-body svg:hover~svg use{fill:#ccc}#trustreviews-rate_us-feedback{font-size:18px;line-height:30px;text-align:center}#trustreviews-rate_us-feedback input{width:100%}#trustreviews-rate_us-feedback textarea{width:100%;height:128px}#trustreviews-rate_us-feedback button{margin:0 10px;padding:5px 15px;cursor:pointer}.trustreviews-overview-workspace{position:relative;font-size:14px;margin:20px}.trustreviews-overview-places{position:absolute;top:-50px;left:0}#trustreviews-overview-rating{font-size:15px}#trustreviews-overview-rating .trustreviews-rating{color:#fb8e28!important;font-weight:700!important}#trustreviews-overview-rating .wp-star svg{vertical-align:middle}.trustreviews-overview-h{margin:0 0 6px;color:#000;font-size:15px;font-weight:600}#trustreviews-overview-stats>div{line-height:32px}.trustreviews-stat-val{float:left;color:#29af4c;font-size:18px;font-weight:600}.trustreviews-stat-val.trustreviews-stat-up{color:#29af4c}.trustreviews-stat-val.trustreviews-stat-down{color:#e94135}.trustreviews-stat-val:after{position:absolute;left:6px;font-size:16px}.trustreviews-stat-val.trustreviews-stat-up:after{content:"⇧"}.trustreviews-stat-val.trustreviews-stat-down:after{content:"⇩"}.trustreviews-card{margin:0;padding:0;color:#36476c;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;position:relative;background:#fff;border-radius:0}.trustreviews-card-bordered{border:0;border-radius:10px}.trustreviews-card-body{padding:20px}.trustreviews-card-fh{max-height:500px;overflow-y:auto}.trustreviews-card-header{font-size:15px;font-weight:600;padding:10px 20px;background-color:#f6f7fa}.trustreviews-shadow{border-radius:10px;box-shadow:0 4px 4px RGB(54 71 108/15%)}.trustreviews-feedback span:first-child{display:inline-flex;align-items:center;vertical-align:sub!important}.nav-tab.nav-tab-active{box-shadow:none;background:#fff;border-bottom-color:#fff}.trustreviews-settings-workspace{font-size:14px;margin:20px;padding:20px;background:#fff}.trustreviews-settings-workspace p{font-size:14px}.trustreviews-settings-workspace .trustreviews-alert{max-width:500px;word-wrap:break-word}.trustreviews-warn{padding:10px;margin:20px 0 10px;font-size:15px;line-height:26px;font-weight:600;color:#000;border:1px solid #ccc;border-radius:3px;background-color:#ffeb3b}.trustreviews-support-question{padding-bottom:10px}.trustreviews-support-workspace{font-size:15px;line-height:22px;margin:20px;padding:20px;background:#fff}.trustreviews-support-workspace p{font-size:15px}.trustreviews-support-workspace #fig p{line-height:24px}.trustreviews-support-workspace img{width:100%}.trustreviews-support-workspace .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}.trustreviews-support-workspace .trustreviews-flex-col3>b:first-child,.trustreviews-support-workspace .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-left:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.box-img{padding:15px;margin:0 0 10px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#fig hr{border-top:1px solid #bbb;border-bottom:2px solid #eee}#fig .trustreviews-flex-row{align-items:center!important;text-align:right;margin-bottom:40px}#fig .trustreviews-flex-col,#fig .trustreviews-flex-col3{padding:0 20px;line-height:24px}#fig .trustreviews-flex-col3:first-child,#fig .trustreviews-flex-col:first-child{padding-left:10px}#fig img{width:100%}#fig .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}#fig .trustreviews-flex-col3>b:first-child,#fig .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-left:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.trustreviews-field,.trustreviews-field *{box-sizing:border-box}.trustreviews-field{padding:0 0 15px 0;margin-top:1em;margin-bottom:1em;border-bottom:1px dashed #ddd}@media (min-width:600px){.trustreviews-field{display:flex;flex-wrap:wrap}.trustreviews-field-label{flex:0 0 28%;padding-left:2%}.trustreviews-field-option{flex:0 0 75%}}.trustreviews-field input[type=text]{margin:0;padding:5px 8px;border-radius:2px}.trustreviews-field select{width:15em;margin-right:0}.trustreviews-flex-row{display:flex;flex-flow:row wrap;width:100%}.trustreviews-flex-col,.trustreviews-flex-col2,.trustreviews-flex-col3,.trustreviews-flex-col4,.trustreviews-flex-col6,.trustreviews-flex-col7{width:100%;box-sizing:border-box}.trustreviews-flex-col3+.trustreviews-flex-col3,.trustreviews-flex-col3:first-child,.trustreviews-flex-col6:first-child,.trustreviews-flex-col:first-child{padding-left:10px}@media (min-width:800px){.trustreviews-flex-col{width:50%}.trustreviews-flex-col2{width:25%}.trustreviews-flex-col3{width:30%}.trustreviews-flex-col4{width:40%}.trustreviews-flex-col6{width:60%}.trustreviews-flex-col7{width:70%}}.trustreviews-alert{font-size:14px;line-height:1.846;border:none;color:#fff;padding:15px;border:1px solid transparent;border-radius:3px}.trustreviews-alert-dismissable,.trustreviews-alert-dismissible{padding-left:35px}.trustreviews-alert-success{color:#fff;border-color:#d6e9c6;background-color:#4caf50}.trustreviews-alert-warning{background-color:#a22525}.trustreviews-alert .alert-link,.trustreviews-alert a:not(.close){color:#fff;font-weight:700}.trustreviews-builder-platforms{position:relative;box-sizing:border-box}.trustreviews-connect-text{font-size:14px;font-weight:600;margin:0 0 10px 0;color:#ffaf02;text-transform:uppercase;text-decoration:underline}.trustreviews-builder-top{padding:10px;color:#23282d;font-size:13px;font-weight:600;line-height:1.4em;cursor:pointer;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fafafa url("../img/button-down-black.svg") no-repeat left}.trustreviews-builder-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.trustreviews-builder-inside{border-top:none;padding:10px 10px 0;line-height:16px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.trustreviews-builder-inside .trustreviews-builder-option{margin:10px 0 0;position:relative}.trustreviews-builder-inside .trustreviews-builder-option:first-child{margin-top:0}.trustreviews-builder-inside .trustreviews-builder-option:last-child{margin-bottom:10px}.trustreviews-builder-inside button,.trustreviews-builder-inside input[type=text],.trustreviews-builder-inside select,.trustreviews-builder-inside textarea{width:100%;clear:both;border-spacing:0}.trustreviews-builder-inside pre{margin:0;color:#b73434;font-size:10px;line-height:16px;padding:4px;background:#fff;overflow:auto}.trustreviews-builder-connect{display:inline-block;margin:0 0 5px 10px;padding:6px;font-weight:600;font-size:12px;color:#fff;border:none;cursor:pointer;text-align:center;background:#eee;text-transform:uppercase}.trustreviews-builder-connect:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-builder-connect:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-btn{color:#fff;border:0;outline:0;cursor:pointer;font-weight:600;font-size:12px;padding:5px 10px;text-transform:uppercase;background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 2px 4px RGB(0 0 0/24%);text-decoration:none;user-select:none}.trustreviews-connect-btn:hover{background:#ef8d14;box-shadow:0 0 2px RGB(0 0 0/12%),0 3px 5px RGB(0 0 0/24%)}.trustreviews-connect-btn:active{background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 0 1px RGB(0 0 0/24%)}.trustreviews-connect-google-inside{padding:0 1px}.trustreviews-connections{padding-bottom:10px}.trustreviews-connection{cursor:move}.trustreviews-connect-business{display:block;color:#333;text-align:right;margin:10px 0 0;border:1px solid #ccc;background:#fafafa url(../img/button-down-black.svg) no-repeat left}.trustreviews-connect-business:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-connect-business:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-business+div{padding:4px;border:1px solid #ccc;border-top:0}.trustreviews-connect-select{display:none!important}.trustreviews-platform-multiple .trustreviews-connect-select{display:inline-block!important}img.trustreviews-connect-photo{width:24px;height:24px;margin-left:10px;border-radius:50%;border:1px solid #ccc;vertical-align:middle}.trustreviews-connect-photo-change{margin-left:10px}.trustreviews-connect-error{color:#e60909;font-size:13px}.trustreviews-connection-checkbox{display:none;margin:10px 6px 0 0}.trustreviews-platform-multiple .trustreviews-connection-checkbox{display:block}.trustreviews-quest{position:absolute;top:6px;left:3px;width:16px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;border:1px solid #ccc;border-radius:50px;background:#eee}.trustreviews-quest.trustreviews-quest-top{top:0}.trustreviews-quest.trustreviews-quest-top22{top:22px}.trustreviews-quest:hover{border:1px solid #999}.trustreviews-quest-help{display:none;margin:0 0 10px 0;padding:4px;font-size:13px;line-height:18px;background:#eee}.trustreviews-well{padding:10px;margin:10px 0;border-radius:3px;border:1px solid #d9d9d9;background:#f1f1f1}#rating_temp{height:260px;font-size:12px;word-break:break-all}#trustreviews-connect-wizard[data-platform] [data-platform]{display:none}#trustreviews-connect-wizard[data-platform=google] [data-platform=google]{display:block}#trustreviews-connect-wizard[data-platform=yelp] [data-platform=yelp]{display:block}#trustreviews-connect-wizard p{color:#ef4e4e;font-size:15px;font-weight:600}#trustreviews-connect-wizard p span{display:inline-block;color:#fff;padding:1px;width:18px;height:18px;font-size:12px;text-align:center;line-height:18px;border-radius:50%;text-shadow:-1px 1px 0 #777;background:#4cc310}#trustreviews-connect-wizard input,#trustreviews-connect-wizard select{width:45%;min-height:30px;vertical-align:bottom;border-radius:4px;border:1px solid #8c8f94}#trustreviews-connect-wizard button{display:block;width:45%;height:30px;margin:0 auto}#trustreviews-connect-wizard .trustreviews-wiz-arr{position:relative}#trustreviews-connect-wizard .trustreviews-wiz-arr:after{content:"↙";position:absolute;top:0;right:0;font-size:50px}1 @charset "UTF-8";.trustreviews-admin #wpcontent{padding:0}.trust-reviews_page_trustreviews-builder #wpcontent,.trustreviews-admin.trust-reviews_page_trustreviews-builder #wpcontent{padding-left:300px}.toplevel_page_trustreviews .wp-menu-image img{width:18px}.trustreviews-admin.edit-php #wpbody{color:#5d6f80;padding-right:20px;position:relative}.trustreviews-admin.edit-php #wpbody .wp-header-end,.trustreviews-admin.post-new-php #wpbody .wp-header-end,.trustreviews-admin.post-php #wpbody .wp-header-end{margin-top:6px}.trustreviews-admin .update-nag{margin:20px 20px 0 0}.trustreviews-admin.edit-php .update-nag{margin:20px 0 0 20px}.trustreviews-admin.edit-php .update-nag~.update-nag{margin-right:0}.trustreviews-admin #wpbody #screen-meta-links{display:none}.trustreviews-admin #screen-meta{background-color:#ecf0f1;border:0;margin:0}.trustreviews-admin #screen-meta-links{position:absolute;top:0;left:0;z-index:1}.trustreviews-admin .notice p{font-size:14px}.trustreviews-admin .notice.notice-error p{color:#d63638}.trustreviews-tophead{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-sizing:border-box;align-items:center;background-color:#fff;border-bottom:1px solid #cfd9db;padding:15px 20px;box-sizing:border-box;position:relative;top:46px;width:100%}@media (min-width:601px){.trustreviews-tophead{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0}}.trustreviews-tophead img{width:32px;margin:0 0 0 4px;vertical-align:middle}.trustreviews-tophead-title{padding:0;font-size:18px;font-weight:600;line-height:1.4em}.trustreviews-page-title{font-size:23px;font-weight:400;margin:0;padding:20px 20px 0 0;line-height:29px}.trustreviews-version{position:absolute;top:0;left:16px;text-align:center}.trustreviews-version-free{display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:12px 0 3px;padding:4px 10px;font-size:12px;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.trustreviews-version-upgrade span{color:#4ea2e7;font-size:11px;font-weight:600;padding:6px 4px;cursor:default;transition:color .3s;text-transform:uppercase}.trustreviews-version-upgrade span:hover{color:#157cd1}.trustreviews-version-upgrade .trustreviews-upgrade-head{margin:0 0 5px;font-weight:600}#trustreviews-upgrade-tips{position:absolute;left:0;border:2px solid #ccc;border-radius:5px;padding:10px 12px;margin:2px 0 0;z-index:5;background:#fff;width:256px;text-align:right;font-size:16px;line-height:24px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}#trustreviews-upgrade-tips:hover,.trustreviews-version-upgrade span:hover+#trustreviews-upgrade-tips{opacity:1;visibility:visible}#trustreviews-upgrade-tips>a{display:inline-block;width:100%;font-size:14px;font-weight:700;text-align:center;margin:10px 0 0;padding:5px 0 0;border-top:1px solid #ccc;text-transform:uppercase}.trustreviews-toolbar{padding:15px 20px;background-color:#fff;border-bottom:1px solid #cfd9db}@media (min-width:783px){.trustreviews-toolbar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}}.trustreviews-toolbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-bottom:0;margin-left:20px;min-width:0}.trustreviews-toolbar-title-input{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;width:100%}.trustreviews-toolbar-title-input{font-size:18px;font-weight:400;line-height:1.4em;margin:0;padding:0}.trustreviews-toolbar-control{display:-webkit-box;display:-ms-flexbox;display:flex}.trustreviews-toolbar-control button{margin-right:20px!important}.trustreviews-toolbar-control input[type=text]{width:200px;height:34px;font-size:14px}.trustreviews-toolbar-options label{display:block;padding:0 4px 0 0}.trustreviews-admin .type-trustreviews_collection .title.column-title{font-size:0}.trustreviews-admin .type-trustreviews_collection .title.column-title .row-actions,.trustreviews-admin .type-trustreviews_collection .title.column-title strong{line-height:1.5em}.trustreviews-builder-workspace{display:block;position:relative;width:100%;overflow-y:hidden;box-sizing:border-box}.trustreviews-builder-preview{font-size:14px;grid-area:preview;min-height:0;min-width:0;padding:20px;line-height:1.75}.trustreviews-builder-options{box-sizing:border-box;position:fixed;top:32px;bottom:0;left:0;width:300px;overflow:hidden;transition:all .3s;z-index:1;overflow-y:auto;background:#fafafa}.trustreviews-builder-options.trustreviews-block-options{position:relative;width:100%}.trustreviews .wp-review-hidden{opacity:.5!important}.trustreviews .wp-review-hide{position:absolute;left:8px;bottom:8px;color:#fff!important;font-size:9px!important;font-weight:600!important;line-height:12px!important;text-decoration:none!important;text-transform:uppercase!important;padding:4px!important;opacity:.85;border-radius:3px!important;border-color:#0062cc!important;background-color:#427fbf!important}.trustreviews .wp-review-hide:hover{background-color:#1d62ab!important}#trustreviews-rate_us-wrap{display:block;position:fixed;right:0;top:100%;width:auto;font-size:16px;z-index:99999}#trustreviews-rate_us{padding:18px;opacity:0;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease}#trustreviews-rate_us.trustreviews-flash-visible{opacity:1;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);text-align:right}#trustreviews-rate_us.trustreviews-flash-visible.trustreviews-flash-gout{opacity:.5;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease}.trustreviews-rate_us-content{padding:15px;background:#fff;border-radius:5px;box-shadow:0 1px 2px RGB(60 64 67/30%),0 2px 6px 2px RGB(60 64 67/15%)}.trustreviews-rate_us-head{font-size:22px;font-weight:600;margin:0 0 20px 0}.trustreviews-rate_us-body{display:flex;align-items:center;font-size:18px}#trustreviews-rate_us-feedback svg,.trustreviews-rate_us-body svg{display:inline-block;padding:2px 4px;width:24px;height:24px;cursor:pointer;vertical-align:middle}.trustreviews-rate_us-body svg use{fill:#fa8e08}.trustreviews-rate_us-body svg:hover~svg use{fill:#ccc}#trustreviews-rate_us-feedback{font-size:18px;line-height:30px;text-align:center}#trustreviews-rate_us-feedback input{width:100%}#trustreviews-rate_us-feedback textarea{width:100%;height:128px}#trustreviews-rate_us-feedback button{margin:0 10px;padding:5px 15px;cursor:pointer}.trustreviews-overview-workspace{position:relative;font-size:14px;margin:20px}.trustreviews-overview-places{position:absolute;top:-50px;left:0}#trustreviews-overview-rating{font-size:15px}#trustreviews-overview-rating .trustreviews-rating{color:#fb8e28!important;font-weight:700!important}#trustreviews-overview-rating .trustreviews-stars{line-height:12px}#trustreviews-overview-rating .wp-star svg{vertical-align:middle}.trustreviews-overview-h{margin:0 0 6px;color:#000;font-size:15px;font-weight:600}#trustreviews-overview-stats>div{line-height:32px}.trustreviews-stat-val{float:left;color:#29af4c;font-size:18px;font-weight:600}.trustreviews-stat-val.trustreviews-stat-up{color:#29af4c}.trustreviews-stat-val.trustreviews-stat-down{color:#e94135}.trustreviews-stat-val:after{position:absolute;left:6px;font-size:16px}.trustreviews-stat-val.trustreviews-stat-up:after{content:"⇧"}.trustreviews-stat-val.trustreviews-stat-down:after{content:"⇩"}.trustreviews-card{margin:0;padding:0;color:#36476c;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;position:relative;background:#fff;border-radius:0}.trustreviews-card-bordered{border:0;border-radius:10px}.trustreviews-card-body{padding:20px}.trustreviews-card-fh{max-height:500px;overflow-y:auto}.trustreviews-card-header{font-size:15px;font-weight:600;padding:10px 20px;background-color:#f6f7fa}.trustreviews-shadow{border-radius:10px;box-shadow:0 4px 4px RGB(54 71 108/15%)}.trustreviews-feedback span:first-child{display:inline-flex;align-items:center;vertical-align:sub!important}.nav-tab.nav-tab-active{box-shadow:none;background:#fff;border-bottom-color:#fff}.trustreviews-settings-workspace{font-size:14px;margin:20px;padding:20px;background:#fff}.trustreviews-settings-workspace p{font-size:14px}.trustreviews-settings-workspace .trustreviews-alert{max-width:500px;word-wrap:break-word}.trustreviews-warn{padding:10px;margin:20px 0 10px;font-size:15px;line-height:26px;font-weight:600;color:#000;border:1px solid #ccc;border-radius:3px;background-color:#ffeb3b}.trustreviews-support-question{padding-bottom:10px}.trustreviews-support-workspace{font-size:15px;line-height:22px;margin:20px;padding:20px;background:#fff}.trustreviews-support-workspace p{font-size:15px}.trustreviews-support-workspace #fig p{line-height:24px}.trustreviews-support-workspace img{width:100%}.trustreviews-support-workspace .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}.trustreviews-support-workspace .trustreviews-flex-col3>b:first-child,.trustreviews-support-workspace .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-left:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.box-img{padding:15px;margin:0 0 10px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#fig hr{border-top:1px solid #bbb;border-bottom:2px solid #eee}#fig .trustreviews-flex-row{align-items:center!important;text-align:right;margin-bottom:40px}#fig .trustreviews-flex-col,#fig .trustreviews-flex-col3{padding:0 20px;line-height:24px}#fig .trustreviews-flex-col3:first-child,#fig .trustreviews-flex-col:first-child{padding-left:10px}#fig img{width:100%}#fig .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}#fig .trustreviews-flex-col3>b:first-child,#fig .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-left:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.trustreviews-field,.trustreviews-field *{box-sizing:border-box}.trustreviews-field{padding:0 0 15px 0;margin-top:1em;margin-bottom:1em;border-bottom:1px dashed #ddd}@media (min-width:600px){.trustreviews-field{display:flex;flex-wrap:wrap}.trustreviews-field-label{flex:0 0 28%;padding-left:2%}.trustreviews-field-option{flex:0 0 75%}}.trustreviews-field input[type=text]{margin:0;padding:5px 8px;border-radius:2px}.trustreviews-field select{width:15em;margin-right:0}.trustreviews-flex-row{display:flex;flex-flow:row wrap;width:100%}.trustreviews-flex-col,.trustreviews-flex-col2,.trustreviews-flex-col3,.trustreviews-flex-col4,.trustreviews-flex-col6,.trustreviews-flex-col7{width:100%;box-sizing:border-box}.trustreviews-flex-col3+.trustreviews-flex-col3,.trustreviews-flex-col3:first-child,.trustreviews-flex-col6:first-child,.trustreviews-flex-col:first-child{padding-left:10px}@media (min-width:800px){.trustreviews-flex-col{width:50%}.trustreviews-flex-col2{width:25%}.trustreviews-flex-col3{width:30%}.trustreviews-flex-col4{width:40%}.trustreviews-flex-col6{width:60%}.trustreviews-flex-col7{width:70%}}.trustreviews-alert{font-size:14px;line-height:1.846;border:none;color:#fff;padding:15px;border:1px solid transparent;border-radius:3px}.trustreviews-alert-dismissable,.trustreviews-alert-dismissible{padding-left:35px}.trustreviews-alert-success{color:#fff;border-color:#d6e9c6;background-color:#4caf50}.trustreviews-alert-warning{background-color:#a22525}.trustreviews-alert .alert-link,.trustreviews-alert a:not(.close){color:#fff;font-weight:700}.trustreviews-builder-platforms{position:relative;box-sizing:border-box}.trustreviews-connect-text{font-size:14px;font-weight:600;margin:0 0 10px 0;color:#ffaf02;text-transform:uppercase;text-decoration:underline}.trustreviews-builder-top{padding:10px;color:#23282d;font-size:13px;font-weight:600;line-height:1.4em;cursor:pointer;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fafafa url("../img/button-down-black.svg") no-repeat left}.trustreviews-builder-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.trustreviews-builder-inside{border-top:none;padding:10px 10px 0;line-height:16px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.trustreviews-builder-inside .trustreviews-builder-option{margin:10px 0 0;position:relative}.trustreviews-builder-inside .trustreviews-builder-option:first-child{margin-top:0}.trustreviews-builder-inside .trustreviews-builder-option:last-child{margin-bottom:10px}.trustreviews-builder-inside button,.trustreviews-builder-inside input[type=text],.trustreviews-builder-inside select,.trustreviews-builder-inside textarea{width:100%;clear:both;border-spacing:0}.trustreviews-builder-inside pre{margin:0;color:#b73434;font-size:10px;line-height:16px;padding:4px;background:#fff;overflow:auto}.trustreviews-builder-connect{display:inline-block;margin:0 0 5px 10px;padding:6px;font-weight:600;font-size:12px;color:#fff;border:none;cursor:pointer;text-align:center;background:#eee;border-radius:3px;text-transform:uppercase}.trustreviews-builder-connect:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-builder-connect:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-btn{color:#fff;border:0;outline:0;cursor:pointer;font-weight:600;font-size:12px;padding:5px 10px;text-transform:uppercase;background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 2px 4px RGB(0 0 0/24%);text-decoration:none;user-select:none}.trustreviews-connect-btn:hover{background:#ef8d14;box-shadow:0 0 2px RGB(0 0 0/12%),0 3px 5px RGB(0 0 0/24%)}.trustreviews-connect-btn:active{background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 0 1px RGB(0 0 0/24%)}.trustreviews-connect-google-inside{padding:0 1px}.trustreviews-connections{padding-bottom:10px}.trustreviews-connection{cursor:move}.trustreviews-connect-business{display:block;color:#333;text-align:right;margin:10px 0 0;border:1px solid #ccc;background:#fafafa url(../img/button-down-black.svg) no-repeat left}.trustreviews-connect-business:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-connect-business:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-business+div{padding:4px;border:1px solid #ccc;border-top:0}.trustreviews-connect-select{display:none!important}.trustreviews-platform-multiple .trustreviews-connect-select{display:inline-block!important}img.trustreviews-connect-photo{width:24px;height:24px;margin-left:10px;border-radius:50%;border:1px solid #ccc;vertical-align:middle}.trustreviews-connect-photo-change{margin-left:10px}.trustreviews-connect-error{color:#e60909;font-size:13px}.trustreviews-connection-checkbox{display:none;margin:10px 6px 0 0}.trustreviews-platform-multiple .trustreviews-connection-checkbox{display:block}.trustreviews-quest{position:absolute;top:6px;left:3px;width:16px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;border:1px solid #ccc;border-radius:50px;background:#eee}.trustreviews-quest.trustreviews-quest-top{top:0}.trustreviews-quest.trustreviews-quest-top22{top:22px}.trustreviews-quest:hover{border:1px solid #999}.trustreviews-quest-help{display:none;margin:0 0 10px 0;padding:4px;font-size:13px;line-height:18px;background:#eee}.trustreviews-well{padding:10px;margin:10px 0;border-radius:3px;border:1px solid #d9d9d9;background:#f1f1f1}#rating_temp{height:260px;font-size:12px;word-break:break-all}#trustreviews-connect-wizard[data-platform] [data-platform]{display:none}#trustreviews-connect-wizard[data-platform=google] [data-platform=google]{display:block}#trustreviews-connect-wizard[data-platform=yelp] [data-platform=yelp]{display:block}#trustreviews-connect-wizard p{color:#ef4e4e;font-size:15px;font-weight:600}#trustreviews-connect-wizard p span{display:inline-block;color:#fff;padding:1px;width:18px;height:18px;font-size:12px;text-align:center;line-height:18px;border-radius:50%;text-shadow:-1px 1px 0 #777;background:#4cc310}#trustreviews-connect-wizard input,#trustreviews-connect-wizard select{width:45%;min-height:30px;vertical-align:bottom;border-radius:4px;border:1px solid #8c8f94}#trustreviews-connect-wizard button{display:block;width:45%;height:30px;margin:0 auto}#trustreviews-connect-wizard .trustreviews-wiz-arr{position:relative}#trustreviews-connect-wizard .trustreviews-wiz-arr:after{content:"↙";position:absolute;top:0;right:0;font-size:50px} -
fb-reviews-widget/trunk/assets/css/admin-main.css
r3406362 r3439940 1 @charset "UTF-8";.trustreviews-admin #wpcontent{padding:0}.trust-reviews_page_trustreviews-builder #wpcontent,.trustreviews-admin.trust-reviews_page_trustreviews-builder #wpcontent{padding-right:300px}.toplevel_page_trustreviews .wp-menu-image img{width:18px}.trustreviews-admin.edit-php #wpbody{color:#5d6f80;padding-left:20px;position:relative}.trustreviews-admin.edit-php #wpbody .wp-header-end,.trustreviews-admin.post-new-php #wpbody .wp-header-end,.trustreviews-admin.post-php #wpbody .wp-header-end{margin-top:6px}.trustreviews-admin .update-nag{margin:20px 0 0 20px}.trustreviews-admin.edit-php .update-nag{margin:20px 20px 0 0}.trustreviews-admin.edit-php .update-nag~.update-nag{margin-left:0}.trustreviews-admin #wpbody #screen-meta-links{display:none}.trustreviews-admin #screen-meta{background-color:#ecf0f1;border:0;margin:0}.trustreviews-admin #screen-meta-links{position:absolute;top:0;right:0;z-index:1}.trustreviews-admin .notice p{font-size:14px}.trustreviews-admin .notice.notice-error p{color:#d63638}.trustreviews-tophead{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-sizing:border-box;align-items:center;background-color:#fff;border-bottom:1px solid #cfd9db;padding:15px 20px;box-sizing:border-box;position:relative;top:46px;width:100%}@media (min-width:601px){.trustreviews-tophead{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0}}.trustreviews-tophead img{width:32px;margin:0 4px 0 0;vertical-align:middle}.trustreviews-tophead-title{padding:0;font-size:18px;font-weight:600;line-height:1.4em}.trustreviews-page-title{font-size:23px;font-weight:400;margin:0;padding:20px 0 0 20px;line-height:29px}.trustreviews-version{position:absolute;top:0;right:16px;text-align:center}.trustreviews-version-free{display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:12px 0 3px;padding:4px 10px;font-size:12px;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.trustreviews-version-upgrade span{color:#4ea2e7;font-size:11px;font-weight:600;padding:6px 4px;cursor:default;transition:color .3s;text-transform:uppercase}.trustreviews-version-upgrade span:hover{color:#157cd1}.trustreviews-version-upgrade .trustreviews-upgrade-head{margin:0 0 5px;font-weight:600}#trustreviews-upgrade-tips{position:absolute;right:0;border:2px solid #ccc;border-radius:5px;padding:10px 12px;margin:2px 0 0;z-index:5;background:#fff;width:256px;text-align:left;font-size:16px;line-height:24px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}#trustreviews-upgrade-tips:hover,.trustreviews-version-upgrade span:hover+#trustreviews-upgrade-tips{opacity:1;visibility:visible}#trustreviews-upgrade-tips>a{display:inline-block;width:100%;font-size:14px;font-weight:700;text-align:center;margin:10px 0 0;padding:5px 0 0;border-top:1px solid #ccc;text-transform:uppercase}.trustreviews-toolbar{padding:15px 20px;background-color:#fff;border-bottom:1px solid #cfd9db}@media (min-width:783px){.trustreviews-toolbar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}}.trustreviews-toolbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-bottom:0;margin-right:20px;min-width:0}.trustreviews-toolbar-title-input{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;width:100%}.trustreviews-toolbar-title-input{font-size:18px;font-weight:400;line-height:1.4em;margin:0;padding:0}.trustreviews-toolbar-control{display:-webkit-box;display:-ms-flexbox;display:flex}.trustreviews-toolbar-control button{margin-left:20px!important}.trustreviews-toolbar-control input[type=text]{width:200px;height:34px;font-size:14px}.trustreviews-toolbar-options label{display:block;padding:0 0 0 4px}.trustreviews-admin .type-trustreviews_collection .title.column-title{font-size:0}.trustreviews-admin .type-trustreviews_collection .title.column-title .row-actions,.trustreviews-admin .type-trustreviews_collection .title.column-title strong{line-height:1.5em}.trustreviews-builder-workspace{display:block;position:relative;width:100%;overflow-y:hidden;box-sizing:border-box}.trustreviews-builder-preview{font-size:14px;grid-area:preview;min-height:0;min-width:0;padding:20px;line-height:1.75}.trustreviews-builder-options{box-sizing:border-box;position:fixed;top:32px;bottom:0;right:0;width:300px;overflow:hidden;transition:all .3s;z-index:1;overflow-y:auto;background:#fafafa}.trustreviews-builder-options.trustreviews-block-options{position:relative;width:100%}.trustreviews .wp-review-hidden{opacity:.5!important}.trustreviews .wp-review-hide{ color:#fff!important;font-size:12px!important;font-weight:600!important;line-height:26px!important;text-decoration:none!important;text-transform:uppercase!important;padding:2px 8px!important;border-radius:3px!important;border-color:#0062cc!important;background-color:#427fbf!important}.trustreviews .wp-review-hide:hover{background-color:#1d62ab!important}#trustreviews-rate_us-wrap{display:block;position:fixed;left:0;top:100%;width:auto;font-size:16px;z-index:99999}#trustreviews-rate_us{padding:18px;opacity:0;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease}#trustreviews-rate_us.trustreviews-flash-visible{opacity:1;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);text-align:left}#trustreviews-rate_us.trustreviews-flash-visible.trustreviews-flash-gout{opacity:.5;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease}.trustreviews-rate_us-content{padding:15px;background:#fff;border-radius:5px;box-shadow:0 1px 2px RGB(60 64 67/30%),0 2px 6px 2px RGB(60 64 67/15%)}.trustreviews-rate_us-head{font-size:22px;font-weight:600;margin:0 0 20px 0}.trustreviews-rate_us-body{font-size:18px}#trustreviews-rate_us-feedback svg,.trustreviews-rate_us-body svg{display:inline-block;padding:2px 4px;width:24px;height:24px;cursor:pointer;vertical-align:middle}.trustreviews-rate_us-body svg use{fill:#fa8e08}.trustreviews-rate_us-body svg:hover~svg use{fill:#ccc}#trustreviews-rate_us-feedback{font-size:18px;line-height:30px;text-align:center}#trustreviews-rate_us-feedback input{width:100%}#trustreviews-rate_us-feedback textarea{width:100%;height:128px}#trustreviews-rate_us-feedback button{margin:0 10px;padding:5px 15px;cursor:pointer}.trustreviews-overview-workspace{position:relative;font-size:14px;margin:20px}.trustreviews-overview-places{position:absolute;top:-50px;right:0}#trustreviews-overview-rating{font-size:15px}#trustreviews-overview-rating .trustreviews-rating{color:#fb8e28!important;font-weight:700!important}#trustreviews-overview-rating .wp-star svg{vertical-align:middle}.trustreviews-overview-h{margin:0 0 6px;color:#000;font-size:15px;font-weight:600}#trustreviews-overview-stats>div{line-height:32px}.trustreviews-stat-val{float:right;color:#29af4c;font-size:18px;font-weight:600}.trustreviews-stat-val.trustreviews-stat-up{color:#29af4c}.trustreviews-stat-val.trustreviews-stat-down{color:#e94135}.trustreviews-stat-val:after{position:absolute;right:6px;font-size:16px}.trustreviews-stat-val.trustreviews-stat-up:after{content:"⇧"}.trustreviews-stat-val.trustreviews-stat-down:after{content:"⇩"}.trustreviews-card{margin:0;padding:0;color:#36476c;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;position:relative;background:#fff;border-radius:0}.trustreviews-card-bordered{border:0;border-radius:10px}.trustreviews-card-body{padding:20px}.trustreviews-card-fh{max-height:500px;overflow-y:auto}.trustreviews-card-header{font-size:15px;font-weight:600;padding:10px 20px;background-color:#f6f7fa}.trustreviews-shadow{border-radius:10px;box-shadow:0 4px 4px RGB(54 71 108/15%)}.trustreviews-feedback span:first-child{display:inline-flex;align-items:center;vertical-align:sub!important}.nav-tab.nav-tab-active{box-shadow:none;background:#fff;border-bottom-color:#fff}.trustreviews-settings-workspace{font-size:14px;margin:20px;padding:20px;background:#fff}.trustreviews-settings-workspace p{font-size:14px}.trustreviews-settings-workspace .trustreviews-alert{max-width:500px;word-wrap:break-word}.trustreviews-warn{padding:10px;margin:20px 0 10px;font-size:15px;line-height:26px;font-weight:600;color:#000;border:1px solid #ccc;border-radius:3px;background-color:#ffeb3b}.trustreviews-support-question{padding-bottom:10px}.trustreviews-support-workspace{font-size:15px;line-height:22px;margin:20px;padding:20px;background:#fff}.trustreviews-support-workspace p{font-size:15px}.trustreviews-support-workspace #fig p{line-height:24px}.trustreviews-support-workspace img{width:100%}.trustreviews-support-workspace .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}.trustreviews-support-workspace .trustreviews-flex-col3>b:first-child,.trustreviews-support-workspace .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.box-img{padding:15px;margin:0 0 10px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#fig hr{border-top:1px solid #bbb;border-bottom:2px solid #eee}#fig .trustreviews-flex-row{align-items:center!important;text-align:left;margin-bottom:40px}#fig .trustreviews-flex-col,#fig .trustreviews-flex-col3{padding:0 20px;line-height:24px}#fig .trustreviews-flex-col3:first-child,#fig .trustreviews-flex-col:first-child{padding-right:10px}#fig img{width:100%}#fig .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}#fig .trustreviews-flex-col3>b:first-child,#fig .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.trustreviews-field,.trustreviews-field *{box-sizing:border-box}.trustreviews-field{padding:0 0 15px 0;margin-top:1em;margin-bottom:1em;border-bottom:1px dashed #ddd}@media (min-width:600px){.trustreviews-field{display:flex;flex-wrap:wrap}.trustreviews-field-label{flex:0 0 28%;padding-right:2%}.trustreviews-field-option{flex:0 0 75%}}.trustreviews-field input[type=text]{margin:0;padding:5px 8px;border-radius:2px}.trustreviews-field select{width:15em;margin-left:0}.trustreviews-flex-row{display:flex;flex-flow:row wrap;width:100%}.trustreviews-flex-col,.trustreviews-flex-col2,.trustreviews-flex-col3,.trustreviews-flex-col4,.trustreviews-flex-col6,.trustreviews-flex-col7{width:100%;box-sizing:border-box}.trustreviews-flex-col3+.trustreviews-flex-col3,.trustreviews-flex-col3:first-child,.trustreviews-flex-col6:first-child,.trustreviews-flex-col:first-child{padding-right:10px}@media (min-width:800px){.trustreviews-flex-col{width:50%}.trustreviews-flex-col2{width:25%}.trustreviews-flex-col3{width:30%}.trustreviews-flex-col4{width:40%}.trustreviews-flex-col6{width:60%}.trustreviews-flex-col7{width:70%}}.trustreviews-alert{font-size:14px;line-height:1.846;border:none;color:#fff;padding:15px;border:1px solid transparent;border-radius:3px}.trustreviews-alert-dismissable,.trustreviews-alert-dismissible{padding-right:35px}.trustreviews-alert-success{color:#fff;border-color:#d6e9c6;background-color:#4caf50}.trustreviews-alert-warning{background-color:#a22525}.trustreviews-alert .alert-link,.trustreviews-alert a:not(.close){color:#fff;font-weight:700}.trustreviews-builder-platforms{position:relative;box-sizing:border-box}.trustreviews-connect-text{font-size:14px;font-weight:600;margin:0 0 10px 0;color:#ffaf02;text-transform:uppercase;text-decoration:underline}.trustreviews-builder-top{padding:10px;color:#23282d;font-size:13px;font-weight:600;line-height:1.4em;cursor:pointer;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fafafa url("../img/button-down-black.svg") no-repeat right}.trustreviews-builder-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.trustreviews-builder-inside{border-top:none;padding:10px 10px 0;line-height:16px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.trustreviews-builder-inside .trustreviews-builder-option{margin:10px 0 0;position:relative}.trustreviews-builder-inside .trustreviews-builder-option:first-child{margin-top:0}.trustreviews-builder-inside .trustreviews-builder-option:last-child{margin-bottom:10px}.trustreviews-builder-inside button,.trustreviews-builder-inside input[type=text],.trustreviews-builder-inside select,.trustreviews-builder-inside textarea{width:100%;clear:both;border-spacing:0}.trustreviews-builder-inside pre{margin:0;color:#b73434;font-size:10px;line-height:16px;padding:4px;background:#fff;overflow:auto}.trustreviews-builder-connect{display:inline-block;margin:0 10px 5px 0;padding:6px;font-weight:600;font-size:12px;color:#fff;border:none;cursor:pointer;text-align:center;background:#eee;text-transform:uppercase}.trustreviews-builder-connect:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-builder-connect:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-btn{color:#fff;border:0;outline:0;cursor:pointer;font-weight:600;font-size:12px;padding:5px 10px;text-transform:uppercase;background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 2px 4px RGB(0 0 0/24%);text-decoration:none;user-select:none}.trustreviews-connect-btn:hover{background:#ef8d14;box-shadow:0 0 2px RGB(0 0 0/12%),0 3px 5px RGB(0 0 0/24%)}.trustreviews-connect-btn:active{background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 0 1px RGB(0 0 0/24%)}.trustreviews-connect-google-inside{padding:0 1px}.trustreviews-connections{padding-bottom:10px}.trustreviews-connection{cursor:move}.trustreviews-connect-business{display:block;color:#333;text-align:left;margin:10px 0 0;border:1px solid #ccc;background:#fafafa url(../img/button-down-black.svg) no-repeat right}.trustreviews-connect-business:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-connect-business:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-business+div{padding:4px;border:1px solid #ccc;border-top:0}.trustreviews-connect-select{display:none!important}.trustreviews-platform-multiple .trustreviews-connect-select{display:inline-block!important}img.trustreviews-connect-photo{width:24px;height:24px;margin-right:10px;border-radius:50%;border:1px solid #ccc;vertical-align:middle}.trustreviews-connect-photo-change{margin-right:10px}.trustreviews-connect-error{color:#e60909;font-size:13px}.trustreviews-connection-checkbox{display:none;margin:10px 0 0 6px}.trustreviews-platform-multiple .trustreviews-connection-checkbox{display:block}.trustreviews-quest{position:absolute;top:6px;right:3px;width:16px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;border:1px solid #ccc;border-radius:50px;background:#eee}.trustreviews-quest.trustreviews-quest-top{top:0}.trustreviews-quest.trustreviews-quest-top22{top:22px}.trustreviews-quest:hover{border:1px solid #999}.trustreviews-quest-help{display:none;margin:0 0 10px 0;padding:4px;font-size:13px;line-height:18px;background:#eee}.trustreviews-well{padding:10px;margin:10px 0;border-radius:3px;border:1px solid #d9d9d9;background:#f1f1f1}#rating_temp{height:260px;font-size:12px;word-break:break-all}#trustreviews-connect-wizard[data-platform] [data-platform]{display:none}#trustreviews-connect-wizard[data-platform=google] [data-platform=google]{display:block}#trustreviews-connect-wizard[data-platform=yelp] [data-platform=yelp]{display:block}#trustreviews-connect-wizard p{color:#ef4e4e;font-size:15px;font-weight:600}#trustreviews-connect-wizard p span{display:inline-block;color:#fff;padding:1px;width:18px;height:18px;font-size:12px;text-align:center;line-height:18px;border-radius:50%;text-shadow:1px 1px 0 #777;background:#4cc310}#trustreviews-connect-wizard input,#trustreviews-connect-wizard select{width:45%;min-height:30px;vertical-align:bottom;border-radius:4px;border:1px solid #8c8f94}#trustreviews-connect-wizard button{display:block;width:45%;height:30px;margin:0 auto}#trustreviews-connect-wizard .trustreviews-wiz-arr{position:relative}#trustreviews-connect-wizard .trustreviews-wiz-arr:after{content:"↙";position:absolute;top:0;left:0;font-size:50px}1 @charset "UTF-8";.trustreviews-admin #wpcontent{padding:0}.trust-reviews_page_trustreviews-builder #wpcontent,.trustreviews-admin.trust-reviews_page_trustreviews-builder #wpcontent{padding-right:300px}.toplevel_page_trustreviews .wp-menu-image img{width:18px}.trustreviews-admin.edit-php #wpbody{color:#5d6f80;padding-left:20px;position:relative}.trustreviews-admin.edit-php #wpbody .wp-header-end,.trustreviews-admin.post-new-php #wpbody .wp-header-end,.trustreviews-admin.post-php #wpbody .wp-header-end{margin-top:6px}.trustreviews-admin .update-nag{margin:20px 0 0 20px}.trustreviews-admin.edit-php .update-nag{margin:20px 20px 0 0}.trustreviews-admin.edit-php .update-nag~.update-nag{margin-left:0}.trustreviews-admin #wpbody #screen-meta-links{display:none}.trustreviews-admin #screen-meta{background-color:#ecf0f1;border:0;margin:0}.trustreviews-admin #screen-meta-links{position:absolute;top:0;right:0;z-index:1}.trustreviews-admin .notice p{font-size:14px}.trustreviews-admin .notice.notice-error p{color:#d63638}.trustreviews-tophead{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-sizing:border-box;align-items:center;background-color:#fff;border-bottom:1px solid #cfd9db;padding:15px 20px;box-sizing:border-box;position:relative;top:46px;width:100%}@media (min-width:601px){.trustreviews-tophead{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0}}.trustreviews-tophead img{width:32px;margin:0 4px 0 0;vertical-align:middle}.trustreviews-tophead-title{padding:0;font-size:18px;font-weight:600;line-height:1.4em}.trustreviews-page-title{font-size:23px;font-weight:400;margin:0;padding:20px 0 0 20px;line-height:29px}.trustreviews-version{position:absolute;top:0;right:16px;text-align:center}.trustreviews-version-free{display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:12px 0 3px;padding:4px 10px;font-size:12px;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.trustreviews-version-upgrade span{color:#4ea2e7;font-size:11px;font-weight:600;padding:6px 4px;cursor:default;transition:color .3s;text-transform:uppercase}.trustreviews-version-upgrade span:hover{color:#157cd1}.trustreviews-version-upgrade .trustreviews-upgrade-head{margin:0 0 5px;font-weight:600}#trustreviews-upgrade-tips{position:absolute;right:0;border:2px solid #ccc;border-radius:5px;padding:10px 12px;margin:2px 0 0;z-index:5;background:#fff;width:256px;text-align:left;font-size:16px;line-height:24px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}#trustreviews-upgrade-tips:hover,.trustreviews-version-upgrade span:hover+#trustreviews-upgrade-tips{opacity:1;visibility:visible}#trustreviews-upgrade-tips>a{display:inline-block;width:100%;font-size:14px;font-weight:700;text-align:center;margin:10px 0 0;padding:5px 0 0;border-top:1px solid #ccc;text-transform:uppercase}.trustreviews-toolbar{padding:15px 20px;background-color:#fff;border-bottom:1px solid #cfd9db}@media (min-width:783px){.trustreviews-toolbar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}}.trustreviews-toolbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-bottom:0;margin-right:20px;min-width:0}.trustreviews-toolbar-title-input{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;width:100%}.trustreviews-toolbar-title-input{font-size:18px;font-weight:400;line-height:1.4em;margin:0;padding:0}.trustreviews-toolbar-control{display:-webkit-box;display:-ms-flexbox;display:flex}.trustreviews-toolbar-control button{margin-left:20px!important}.trustreviews-toolbar-control input[type=text]{width:200px;height:34px;font-size:14px}.trustreviews-toolbar-options label{display:block;padding:0 0 0 4px}.trustreviews-admin .type-trustreviews_collection .title.column-title{font-size:0}.trustreviews-admin .type-trustreviews_collection .title.column-title .row-actions,.trustreviews-admin .type-trustreviews_collection .title.column-title strong{line-height:1.5em}.trustreviews-builder-workspace{display:block;position:relative;width:100%;overflow-y:hidden;box-sizing:border-box}.trustreviews-builder-preview{font-size:14px;grid-area:preview;min-height:0;min-width:0;padding:20px;line-height:1.75}.trustreviews-builder-options{box-sizing:border-box;position:fixed;top:32px;bottom:0;right:0;width:300px;overflow:hidden;transition:all .3s;z-index:1;overflow-y:auto;background:#fafafa}.trustreviews-builder-options.trustreviews-block-options{position:relative;width:100%}.trustreviews .wp-review-hidden{opacity:.5!important}.trustreviews .wp-review-hide{position:absolute;right:8px;bottom:8px;color:#fff!important;font-size:9px!important;font-weight:600!important;line-height:12px!important;text-decoration:none!important;text-transform:uppercase!important;padding:4px!important;opacity:.85;border-radius:3px!important;border-color:#0062cc!important;background-color:#427fbf!important}.trustreviews .wp-review-hide:hover{background-color:#1d62ab!important}#trustreviews-rate_us-wrap{display:block;position:fixed;left:0;top:100%;width:auto;font-size:16px;z-index:99999}#trustreviews-rate_us{padding:18px;opacity:0;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,opacity .3s ease;transition:transform .3s ease,opacity .3s ease,-webkit-transform .3s ease}#trustreviews-rate_us.trustreviews-flash-visible{opacity:1;-webkit-transform:translate(0,-100%);-ms-transform:translate(0,-100%);transform:translate(0,-100%);text-align:left}#trustreviews-rate_us.trustreviews-flash-visible.trustreviews-flash-gout{opacity:.5;-webkit-transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease;transition:opacity 150ms ease}.trustreviews-rate_us-content{padding:15px;background:#fff;border-radius:5px;box-shadow:0 1px 2px RGB(60 64 67/30%),0 2px 6px 2px RGB(60 64 67/15%)}.trustreviews-rate_us-head{font-size:22px;font-weight:600;margin:0 0 20px 0}.trustreviews-rate_us-body{display:flex;align-items:center;font-size:18px}#trustreviews-rate_us-feedback svg,.trustreviews-rate_us-body svg{display:inline-block;padding:2px 4px;width:24px;height:24px;cursor:pointer;vertical-align:middle}.trustreviews-rate_us-body svg use{fill:#fa8e08}.trustreviews-rate_us-body svg:hover~svg use{fill:#ccc}#trustreviews-rate_us-feedback{font-size:18px;line-height:30px;text-align:center}#trustreviews-rate_us-feedback input{width:100%}#trustreviews-rate_us-feedback textarea{width:100%;height:128px}#trustreviews-rate_us-feedback button{margin:0 10px;padding:5px 15px;cursor:pointer}.trustreviews-overview-workspace{position:relative;font-size:14px;margin:20px}.trustreviews-overview-places{position:absolute;top:-50px;right:0}#trustreviews-overview-rating{font-size:15px}#trustreviews-overview-rating .trustreviews-rating{color:#fb8e28!important;font-weight:700!important}#trustreviews-overview-rating .trustreviews-stars{line-height:12px}#trustreviews-overview-rating .wp-star svg{vertical-align:middle}.trustreviews-overview-h{margin:0 0 6px;color:#000;font-size:15px;font-weight:600}#trustreviews-overview-stats>div{line-height:32px}.trustreviews-stat-val{float:right;color:#29af4c;font-size:18px;font-weight:600}.trustreviews-stat-val.trustreviews-stat-up{color:#29af4c}.trustreviews-stat-val.trustreviews-stat-down{color:#e94135}.trustreviews-stat-val:after{position:absolute;right:6px;font-size:16px}.trustreviews-stat-val.trustreviews-stat-up:after{content:"⇧"}.trustreviews-stat-val.trustreviews-stat-down:after{content:"⇩"}.trustreviews-card{margin:0;padding:0;color:#36476c;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;position:relative;background:#fff;border-radius:0}.trustreviews-card-bordered{border:0;border-radius:10px}.trustreviews-card-body{padding:20px}.trustreviews-card-fh{max-height:500px;overflow-y:auto}.trustreviews-card-header{font-size:15px;font-weight:600;padding:10px 20px;background-color:#f6f7fa}.trustreviews-shadow{border-radius:10px;box-shadow:0 4px 4px RGB(54 71 108/15%)}.trustreviews-feedback span:first-child{display:inline-flex;align-items:center;vertical-align:sub!important}.nav-tab.nav-tab-active{box-shadow:none;background:#fff;border-bottom-color:#fff}.trustreviews-settings-workspace{font-size:14px;margin:20px;padding:20px;background:#fff}.trustreviews-settings-workspace p{font-size:14px}.trustreviews-settings-workspace .trustreviews-alert{max-width:500px;word-wrap:break-word}.trustreviews-warn{padding:10px;margin:20px 0 10px;font-size:15px;line-height:26px;font-weight:600;color:#000;border:1px solid #ccc;border-radius:3px;background-color:#ffeb3b}.trustreviews-support-question{padding-bottom:10px}.trustreviews-support-workspace{font-size:15px;line-height:22px;margin:20px;padding:20px;background:#fff}.trustreviews-support-workspace p{font-size:15px}.trustreviews-support-workspace #fig p{line-height:24px}.trustreviews-support-workspace img{width:100%}.trustreviews-support-workspace .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}.trustreviews-support-workspace .trustreviews-flex-col3>b:first-child,.trustreviews-support-workspace .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.box-img{padding:15px;margin:0 0 10px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#fig hr{border-top:1px solid #bbb;border-bottom:2px solid #eee}#fig .trustreviews-flex-row{align-items:center!important;text-align:left;margin-bottom:40px}#fig .trustreviews-flex-col,#fig .trustreviews-flex-col3{padding:0 20px;line-height:24px}#fig .trustreviews-flex-col3:first-child,#fig .trustreviews-flex-col:first-child{padding-right:10px}#fig img{width:100%}#fig .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}#fig .trustreviews-flex-col3>b:first-child,#fig .trustreviews-flex-col>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 RGB(0 0 0/26%)}.trustreviews-field,.trustreviews-field *{box-sizing:border-box}.trustreviews-field{padding:0 0 15px 0;margin-top:1em;margin-bottom:1em;border-bottom:1px dashed #ddd}@media (min-width:600px){.trustreviews-field{display:flex;flex-wrap:wrap}.trustreviews-field-label{flex:0 0 28%;padding-right:2%}.trustreviews-field-option{flex:0 0 75%}}.trustreviews-field input[type=text]{margin:0;padding:5px 8px;border-radius:2px}.trustreviews-field select{width:15em;margin-left:0}.trustreviews-flex-row{display:flex;flex-flow:row wrap;width:100%}.trustreviews-flex-col,.trustreviews-flex-col2,.trustreviews-flex-col3,.trustreviews-flex-col4,.trustreviews-flex-col6,.trustreviews-flex-col7{width:100%;box-sizing:border-box}.trustreviews-flex-col3+.trustreviews-flex-col3,.trustreviews-flex-col3:first-child,.trustreviews-flex-col6:first-child,.trustreviews-flex-col:first-child{padding-right:10px}@media (min-width:800px){.trustreviews-flex-col{width:50%}.trustreviews-flex-col2{width:25%}.trustreviews-flex-col3{width:30%}.trustreviews-flex-col4{width:40%}.trustreviews-flex-col6{width:60%}.trustreviews-flex-col7{width:70%}}.trustreviews-alert{font-size:14px;line-height:1.846;border:none;color:#fff;padding:15px;border:1px solid transparent;border-radius:3px}.trustreviews-alert-dismissable,.trustreviews-alert-dismissible{padding-right:35px}.trustreviews-alert-success{color:#fff;border-color:#d6e9c6;background-color:#4caf50}.trustreviews-alert-warning{background-color:#a22525}.trustreviews-alert .alert-link,.trustreviews-alert a:not(.close){color:#fff;font-weight:700}.trustreviews-builder-platforms{position:relative;box-sizing:border-box}.trustreviews-connect-text{font-size:14px;font-weight:600;margin:0 0 10px 0;color:#ffaf02;text-transform:uppercase;text-decoration:underline}.trustreviews-builder-top{padding:10px;color:#23282d;font-size:13px;font-weight:600;line-height:1.4em;cursor:pointer;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fafafa url("../img/button-down-black.svg") no-repeat right}.trustreviews-builder-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.trustreviews-builder-inside{border-top:none;padding:10px 10px 0;line-height:16px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.trustreviews-builder-inside .trustreviews-builder-option{margin:10px 0 0;position:relative}.trustreviews-builder-inside .trustreviews-builder-option:first-child{margin-top:0}.trustreviews-builder-inside .trustreviews-builder-option:last-child{margin-bottom:10px}.trustreviews-builder-inside button,.trustreviews-builder-inside input[type=text],.trustreviews-builder-inside select,.trustreviews-builder-inside textarea{width:100%;clear:both;border-spacing:0}.trustreviews-builder-inside pre{margin:0;color:#b73434;font-size:10px;line-height:16px;padding:4px;background:#fff;overflow:auto}.trustreviews-builder-connect{display:inline-block;margin:0 10px 5px 0;padding:6px;font-weight:600;font-size:12px;color:#fff;border:none;cursor:pointer;text-align:center;background:#eee;border-radius:3px;text-transform:uppercase}.trustreviews-builder-connect:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-builder-connect:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-btn{color:#fff;border:0;outline:0;cursor:pointer;font-weight:600;font-size:12px;padding:5px 10px;text-transform:uppercase;background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 2px 4px RGB(0 0 0/24%);text-decoration:none;user-select:none}.trustreviews-connect-btn:hover{background:#ef8d14;box-shadow:0 0 2px RGB(0 0 0/12%),0 3px 5px RGB(0 0 0/24%)}.trustreviews-connect-btn:active{background:#fa8e08;box-shadow:0 0 2px RGB(0 0 0/12%),0 0 1px RGB(0 0 0/24%)}.trustreviews-connect-google-inside{padding:0 1px}.trustreviews-connections{padding-bottom:10px}.trustreviews-connection{cursor:move}.trustreviews-connect-business{display:block;color:#333;text-align:left;margin:10px 0 0;border:1px solid #ccc;background:#fafafa url(../img/button-down-black.svg) no-repeat right}.trustreviews-connect-business:hover{box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)}.trustreviews-connect-business:active{box-shadow:0 0 2px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.24)}.trustreviews-connect-business+div{padding:4px;border:1px solid #ccc;border-top:0}.trustreviews-connect-select{display:none!important}.trustreviews-platform-multiple .trustreviews-connect-select{display:inline-block!important}img.trustreviews-connect-photo{width:24px;height:24px;margin-right:10px;border-radius:50%;border:1px solid #ccc;vertical-align:middle}.trustreviews-connect-photo-change{margin-right:10px}.trustreviews-connect-error{color:#e60909;font-size:13px}.trustreviews-connection-checkbox{display:none;margin:10px 0 0 6px}.trustreviews-platform-multiple .trustreviews-connection-checkbox{display:block}.trustreviews-quest{position:absolute;top:6px;right:3px;width:16px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;border:1px solid #ccc;border-radius:50px;background:#eee}.trustreviews-quest.trustreviews-quest-top{top:0}.trustreviews-quest.trustreviews-quest-top22{top:22px}.trustreviews-quest:hover{border:1px solid #999}.trustreviews-quest-help{display:none;margin:0 0 10px 0;padding:4px;font-size:13px;line-height:18px;background:#eee}.trustreviews-well{padding:10px;margin:10px 0;border-radius:3px;border:1px solid #d9d9d9;background:#f1f1f1}#rating_temp{height:260px;font-size:12px;word-break:break-all}#trustreviews-connect-wizard[data-platform] [data-platform]{display:none}#trustreviews-connect-wizard[data-platform=google] [data-platform=google]{display:block}#trustreviews-connect-wizard[data-platform=yelp] [data-platform=yelp]{display:block}#trustreviews-connect-wizard p{color:#ef4e4e;font-size:15px;font-weight:600}#trustreviews-connect-wizard p span{display:inline-block;color:#fff;padding:1px;width:18px;height:18px;font-size:12px;text-align:center;line-height:18px;border-radius:50%;text-shadow:1px 1px 0 #777;background:#4cc310}#trustreviews-connect-wizard input,#trustreviews-connect-wizard select{width:45%;min-height:30px;vertical-align:bottom;border-radius:4px;border:1px solid #8c8f94}#trustreviews-connect-wizard button{display:block;width:45%;height:30px;margin:0 auto}#trustreviews-connect-wizard .trustreviews-wiz-arr{position:relative}#trustreviews-connect-wizard .trustreviews-wiz-arr:after{content:"↙";position:absolute;top:0;left:0;font-size:50px} -
fb-reviews-widget/trunk/assets/css/public-main-rtl.css
r3406362 r3439940 1 .wpac,.wpac a,.wpac abbr,.wpac acronym,.wpac address,.wpac applet,.wpac b,.wpac big,.wpac blockquote,.wpac caption,.wpac cite,.wpac code,.wpac dd,.wpac del,.wpac dfn,.wpac div,.wpac dl,.wpac dt,.wpac em,.wpac fieldset,.wpac font,.wpac form,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac hr,.wpac i,.wpac img,.wpac input,.wpac ins,.wpac kbd,.wpac label,.wpac legend,.wpac li,.wpac object,.wpac ol,.wpac option,.wpac p,.wpac pre,.wpac q,.wpac s,.wpac samp,.wpac select,.wpac small,.wpac span,.wpac strike,.wpac strong,.wpac sub,.wpac sup,.wpac table,.wpac tbody,.wpac td,.wpac textarea,.wpac tfoot,.wpac th,.wpac thead,.wpac tr,.wpac tt,.wpac ul,.wpac var{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:100% 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto;right:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;padding:0!important;position:static!important;quotes:"" ""!important;left:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;text-shadow:none!important;-webkit-transition:none!important;transition:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.wpac,.wpac address,.wpac blockquote,.wpac caption,.wpac dd,.wpac div,.wpac dl,.wpac dt,.wpac fieldset,.wpac form,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac hr,.wpac ol,.wpac option,.wpac p,.wpac pre,.wpac select,.wpac textarea,.wpac ul{display:block}.wpac table{display:table}.wpac tbody{display:table-row-group}.wpac tr{display:table-row}.wpac td{display:table-cell}.wpac ul{list-style-type:none!important}.wpac li{display:list-item;min-height:auto!important;min-width:auto!important}.wpac a,.wpac a *,.wpac input[type=checkbox],.wpac input[type=radio],.wpac input[type=submit],.wpac select{cursor:pointer!important}.wpac a:hover{text-decoration:none!important}.wpac button,.wpac input[type=submit]{height:auto!important;text-align:center!important}.wpac input[type=hidden]{display:none}.wpac select{-webkit-appearance:menulist!important;-moz-appearance:menulist!important;appearance:menulist!important}.wpac input[type=checkbox]{-webkit-appearance:checkbox!important;-moz-appearance:checkbox!important;appearance:checkbox!important}.wpac input[type=checkbox]:after,.wpac input[type=checkbox]:before{content:none!important;border:0!important}.wpac input[type=radio]{-webkit-appearance:radio!important;-moz-appearance:radio!important;appearance:radio!important}.wpac input[type=radio]:after,.wpac input[type=radio]:before{content:none!important;border:0!important}.wpac li:after,.wpac li:before{content:""!important}.wpac input,.wpac select{vertical-align:middle!important}.wpac input,.wpac select,.wpac textarea{border:1px solid #ccc!important}.wpac table{border-collapse:collapse!important;border-spacing:0!important}.wpac [dir=rtl]{direction:ltr!important}.wpac img{border:0!important}.wpac svg{vertical-align:middle!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.wpac{font-size:14px!important;line-height:20px!important;direction:inherit!important;text-align:inherit!important;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;color:#333!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:600!important;margin:0 0 0 6px!important;vertical-align:middle!important}.trustreviews .trustreviews-stars svg{display:inline-block!important;width:22px!important;height:22px!important;padding:0 0 0 4px!important;line-height:22px!important;vertical-align:middle!important}.trustreviews .trustreviews-stars svg use{fill:#0866ff;color:#0866ff}.trustreviews [data-rev=google] .trustreviews-stars svg use{fill:#fb8e28;color:#fb8e28}.trustreviews [data-rev=yelp] .trustreviews-stars svg use{fill:#d80027;color:#d80027}.trustreviews .trustreviews-powered{color:#555!important;margin:6px 0 0!important}.trustreviews .trustreviews-powered[data-platform=google] img{max-width:144px!important}.trustreviews .trustreviews-powered[data-platform=yelp] img{max-height:25px!important;vertical-align:sub!important}.trustreviews .trustreviews-powered[data-platform=facebook] span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews .trustreviews-list-review{margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-left:10px!important}[dir=rtl] .trustreviews-left{padding-right:10px!important}.trustreviews .trustreviews-left img{border:none!important;float:right!important;height:50px!important;width:50px!important;margin-left:10px!important;overflow:hidden!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left img{float:none!important}.trustreviews .trustreviews-place .trustreviews-stars svg{width:20px!important;height:20px!important;vertical-align:middle!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;margin:0 0 2px!important;padding-left:6px!important;text-decoration:none!important}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-left:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews.wpac .trustreviews-name{font-size:100%!important}.trustreviews.wpac .trustreviews-hide{display:none}.trustreviews.wpac .trustreviews-name a{color:#333!important;font-size:100%!important;text-decoration:none!important}.trustreviews.wpac .trustreviews-left img{width:50px!important;height:50px!important;border-radius:50%!important}.trustreviews.wpac a.trustreviews-name{color:#154fc1!important;text-decoration:none!important;white-space:normal!important;text-overflow:ellipsis!important}.trustreviews.wpac .trustreviews-list-review .trustreviews-stars{display:inline-block;margin-left:4px!important}.trustreviews.wpac.wp-dark .trustreviews-name a{color:#eee!important}.trustreviews-fb{padding:1px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:right!important;direction:rtl!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{position:relative!important;margin:0 10px!important;padding:15px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:4px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;left:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;right:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{margin:15px auto 8px!important}.trustreviews .trustreviews-wr a{color:#fff!important;padding:6px 15px 10px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:-1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 4px 0 0;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important}1 :root{--rpi-star-size:22px;--rpi-star-color:#fb8e28;--rpi-star-empty:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z' fill='none' stroke='%23cccccc' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");--rpi-star-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.7881 3.21068C11.2364 2.13274 12.7635 2.13273 13.2118 3.21068L15.2938 8.2164L20.6979 8.64964C21.8616 8.74293 22.3335 10.1952 21.4469 10.9547L17.3295 14.4817L18.5874 19.7551C18.8583 20.8908 17.6229 21.7883 16.6266 21.1798L11.9999 18.3538L7.37329 21.1798C6.37697 21.7883 5.14158 20.8908 5.41246 19.7551L6.67038 14.4817L2.55303 10.9547C1.66639 10.1952 2.13826 8.74293 3.302 8.64964L8.70609 8.2164L10.7881 3.21068Z'/%3E%3C/svg%3E")}.rpi-star,.rpi-stars-tripadvisor,.rpi-stars-yelp{display:flex;align-items:center;gap:4px}.rpi-star[data-rating]::before{content:attr(data-rating);color:var(--rpi-star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-star[data-rating]::after{content:'';width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-position:center!important;-webkit-mask-size:contain!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-position:center!important;mask-size:contain!important}.rpi-stars{--stars:5;--stars-max:5;position:relative!important;display:inline-block!important;width:calc(var(--stars) * var(--rpi-star-size))!important;height:var(--rpi-star-size)!important;background-color:transparent!important;background-image:var(--rpi-star-empty)!important;background-repeat:repeat-x!important;background-position:right center!important;background-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-star+.rpi-stars{--stars-offset:1;--stars:calc(var(--stars-max) - var(--stars-offset))}.rpi-stars::before{content:''!important;position:absolute!important;inset:0!important;width:clamp(0%,calc(((var(--rating) - var(--stars-offset,0))/ (var(--stars-max) - var(--stars-offset,0))) * 100%),100%)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:repeat-x!important;-webkit-mask-position:left center!important;-webkit-mask-size:var(--rpi-star-size) var(--rpi-star-size)!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:repeat-x!important;mask-position:left center!important;mask-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-stars-yelp{--empty-color:#cccccc;--five-color:#fb433c;--four-color:#ff643d;--three-color:#ff8742;--two-color:#ffad48;--one-color:#ffcc4b;--rpi-star-size:20px;--rating:0;--gap:3px;--radius:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-yelp i{position:relative!important;display:inline-block!important;font-style:normal!important;flex:0 0 auto!important;width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;border-radius:var(--radius)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(-90deg,var(--star-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important;box-sizing:border-box!important}.rpi-stars-yelp i::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:70% 70%!important;mask-position:center!important}.rpi-stars-yelp[data-rating]::before{content:attr(data-rating);color:var(--star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-yelp i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-yelp i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-yelp i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-yelp i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-yelp i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-yelp[data-stars^="1"]{--rating:1.5;--star-color:var(--one-color)}.rpi-stars-yelp[data-stars="1"]{--rating:1}.rpi-stars-yelp[data-stars^="2"]{--rating:2.5;--star-color:var(--two-color)}.rpi-stars-yelp[data-stars="2"]{--rating:2}.rpi-stars-yelp[data-stars^="3"]{--rating:3.5;--star-color:var(--three-color)}.rpi-stars-yelp[data-stars="3"]{--rating:3}.rpi-stars-yelp[data-stars^="4"]{--rating:4.5;--star-color:var(--four-color)}.rpi-stars-yelp[data-stars="4"]{--rating:4}.rpi-stars-yelp[data-stars^="5"]{--rating:5;--star-color:var(--five-color)}.rpi-stars-tripadvisor{--empty-color:#ffffff;--border-color:#5ba672;--fill-color:#5ba672;--rpi-dot-size:18px;--rating:0;--gap:4px;--border:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-tripadvisor i{width:var(--rpi-dot-size)!important;height:var(--rpi-dot-size)!important;display:inline-block!important;position:relative!important;flex:0 0 auto!important;box-sizing:border-box!important;border-radius:999px!important;border:var(--border) solid var(--border-color)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(-90deg,var(--fill-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important}.rpi-stars-tripadvisor[data-rating]::before{content:attr(data-rating);color:var(--fill-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-tripadvisor i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-tripadvisor[data-stars^="1"]{--rating:1.5}.rpi-stars-tripadvisor[data-stars="1"]{--rating:1}.rpi-stars-tripadvisor[data-stars^="2"]{--rating:2.5}.rpi-stars-tripadvisor[data-stars="2"]{--rating:2}.rpi-stars-tripadvisor[data-stars^="3"]{--rating:3.5}.rpi-stars-tripadvisor[data-stars="3"]{--rating:3}.rpi-stars-tripadvisor[data-stars^="4"]{--rating:4.5}.rpi-stars-tripadvisor[data-stars="4"]{--rating:4}.rpi-stars-tripadvisor[data-stars^="5"]{--rating:5}.rpi-star-fb{--size:18px;--color:#fa3e3e;--radius:2px;--tail:6px;position:relative!important;display:flex!important;align-items:center!important;width:var(--size);height:var(--size);background-color:var(--color)!important;border-radius:var(--radius);white-space:nowrap!important;font-size:calc(var(--size) - 2px)!important;line-height:1!important;vertical-align:middle!important;text-indent:calc(var(--size) + 6px)!important}.rpi-star-fb[data-rating="1"]{--color:#cccccc}.rpi-star-fb::before{content:'';position:absolute;right:4px;bottom:-4px;width:0;height:0;border-top:5px solid var(--color);border-left:6px solid transparent}.rpi-star-fb::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:60% 60%!important;mask-position:center!important}.trustreviews,.trustreviews *,.trustreviews ::after,.trustreviews ::before{box-sizing:border-box}.trustreviews{display:block;direction:rtl;font-size:var(--font-size, 16px);font-family:var(--font-family);font-style:normal;font-weight:400;text-align:start;line-height:normal;overflow:visible;text-decoration:none;list-style-type:disc;box-sizing:border-box;visibility:visible!important}.trustreviews div,.trustreviews span{margin:0;padding:0;color:inherit;font:inherit;line-height:normal;letter-spacing:normal;text-transform:none;text-decoration:none;border:0;background:100% 0}.trustreviews a{color:inherit;text-decoration:none;background:100% 0;cursor:pointer;outline:0}.trustreviews a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.trustreviews img{display:block;max-width:100%;height:auto;border:0;vertical-align:middle}.trustreviews i{font-style:normal;font-weight:inherit;line-height:0;vertical-align:middle}.trustreviews svg{display:inline-block;width:auto;height:auto;vertical-align:middle;overflow:visible}.trustreviews svg use{opacity:1;visibility:visible}.trustreviews .trustreviews-flex{display:inline-flex;align-items:center;gap:var(--gap,2px);flex-direction:var(--dir,column);align-items:var(--align,star);flex-wrap:var(--wrap,nowrap);overflow:var(--overflow,visible)}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:700!important;vertical-align:middle!important;line-height:normal!important}.trustreviews .trustreviews-powered{color:#555!important}.trustreviews [data-platform=google] .trustreviews-powered img{max-width:144px!important}.trustreviews [data-platform=yelp] .trustreviews-powered img{max-height:25px!important;vertical-align:sub!important}.trustreviews [data-platform=facebook] .trustreviews-powered span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=tripadvisor] .trustreviews-powered span{color:#5ba672!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=facebook],.trustreviews [data-rev=facebook]{--rpi-star-color:#4569f5}.trustreviews .trustreviews-list-review{position:relative;margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-left:10px!important}[dir=rtl] .trustreviews-left{padding-right:10px!important}.trustreviews .trustreviews-img{min-width:50px!important;max-width:none!important;height:50px!important;overflow:hidden!important;border:none!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews [data-rev=google] .trustreviews-img{overflow:visible!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;padding-left:6px!important;text-decoration:none!important}.trustreviews .trustreviews-review .trustreviews-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-header .trustreviews-name{font-size:120%!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-left:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews-fb{padding:2px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews-ta{padding:3px;width:16px!important;height:16px!important;border-radius:50%;background:#00eb5b!important}.trustreviews-feedback span:first-child{margin-left:8px}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:right!important;direction:rtl!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{display:flex;flex-direction:column;gap:12px;position:relative!important;margin:0 10px!important;padding:16px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:12px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;left:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;right:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:visible!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{display:flex}.trustreviews .trustreviews-wr a{color:#fff!important;padding:4px 12px 8px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:-1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 4px 0 0;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important} -
fb-reviews-widget/trunk/assets/css/public-main.css
r3406362 r3439940 1 .wpac,.wpac a,.wpac abbr,.wpac acronym,.wpac address,.wpac applet,.wpac b,.wpac big,.wpac blockquote,.wpac caption,.wpac cite,.wpac code,.wpac dd,.wpac del,.wpac dfn,.wpac div,.wpac dl,.wpac dt,.wpac em,.wpac fieldset,.wpac font,.wpac form,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac hr,.wpac i,.wpac img,.wpac input,.wpac ins,.wpac kbd,.wpac label,.wpac legend,.wpac li,.wpac object,.wpac ol,.wpac option,.wpac p,.wpac pre,.wpac q,.wpac s,.wpac samp,.wpac select,.wpac small,.wpac span,.wpac strike,.wpac strong,.wpac sub,.wpac sup,.wpac table,.wpac tbody,.wpac td,.wpac textarea,.wpac tfoot,.wpac th,.wpac thead,.wpac tr,.wpac tt,.wpac ul,.wpac var{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;text-shadow:none!important;-webkit-transition:none!important;transition:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.wpac,.wpac address,.wpac blockquote,.wpac caption,.wpac dd,.wpac div,.wpac dl,.wpac dt,.wpac fieldset,.wpac form,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac hr,.wpac ol,.wpac option,.wpac p,.wpac pre,.wpac select,.wpac textarea,.wpac ul{display:block}.wpac table{display:table}.wpac tbody{display:table-row-group}.wpac tr{display:table-row}.wpac td{display:table-cell}.wpac ul{list-style-type:none!important}.wpac li{display:list-item;min-height:auto!important;min-width:auto!important}.wpac a,.wpac a *,.wpac input[type=checkbox],.wpac input[type=radio],.wpac input[type=submit],.wpac select{cursor:pointer!important}.wpac a:hover{text-decoration:none!important}.wpac button,.wpac input[type=submit]{height:auto!important;text-align:center!important}.wpac input[type=hidden]{display:none}.wpac select{-webkit-appearance:menulist!important;-moz-appearance:menulist!important;appearance:menulist!important}.wpac input[type=checkbox]{-webkit-appearance:checkbox!important;-moz-appearance:checkbox!important;appearance:checkbox!important}.wpac input[type=checkbox]:after,.wpac input[type=checkbox]:before{content:none!important;border:0!important}.wpac input[type=radio]{-webkit-appearance:radio!important;-moz-appearance:radio!important;appearance:radio!important}.wpac input[type=radio]:after,.wpac input[type=radio]:before{content:none!important;border:0!important}.wpac li:after,.wpac li:before{content:""!important}.wpac input,.wpac select{vertical-align:middle!important}.wpac input,.wpac select,.wpac textarea{border:1px solid #ccc!important}.wpac table{border-collapse:collapse!important;border-spacing:0!important}.wpac [dir=rtl]{direction:rtl!important}.wpac img{border:0!important}.wpac svg{vertical-align:middle!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.wpac{font-size:14px!important;line-height:20px!important;direction:inherit!important;text-align:inherit!important;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;color:#333!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:600!important;margin:0 6px 0 0!important;vertical-align:middle!important}.trustreviews .trustreviews-stars svg{display:inline-block!important;width:22px!important;height:22px!important;padding:0 4px 0 0!important;line-height:22px!important;vertical-align:middle!important}.trustreviews .trustreviews-stars svg use{fill:#0866ff;color:#0866ff}.trustreviews [data-rev=google] .trustreviews-stars svg use{fill:#fb8e28;color:#fb8e28}.trustreviews [data-rev=yelp] .trustreviews-stars svg use{fill:#d80027;color:#d80027}.trustreviews .trustreviews-powered{color:#555!important;margin:6px 0 0!important}.trustreviews .trustreviews-powered[data-platform=google] img{max-width:144px!important}.trustreviews .trustreviews-powered[data-platform=yelp] img{max-height:25px!important;vertical-align:sub!important}.trustreviews .trustreviews-powered[data-platform=facebook] span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews .trustreviews-list-review{margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-right:10px!important}[dir=rtl] .trustreviews-left{padding-left:10px!important}.trustreviews .trustreviews-left img{border:none!important;float:left!important;height:50px!important;width:50px!important;margin-right:10px!important;overflow:hidden!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left img{float:none!important}.trustreviews .trustreviews-place .trustreviews-stars svg{width:20px!important;height:20px!important;vertical-align:middle!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;margin:0 0 2px!important;padding-right:6px!important;text-decoration:none!important}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-right:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews.wpac .trustreviews-name{font-size:100%!important}.trustreviews.wpac .trustreviews-hide{display:none}.trustreviews.wpac .trustreviews-name a{color:#333!important;font-size:100%!important;text-decoration:none!important}.trustreviews.wpac .trustreviews-left img{width:50px!important;height:50px!important;border-radius:50%!important}.trustreviews.wpac a.trustreviews-name{color:#154fc1!important;text-decoration:none!important;white-space:normal!important;text-overflow:ellipsis!important}.trustreviews.wpac .trustreviews-list-review .trustreviews-stars{display:inline-block;margin-right:4px!important}.trustreviews.wpac.wp-dark .trustreviews-name a{color:#eee!important}.trustreviews-fb{padding:1px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:left!important;direction:ltr!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{position:relative!important;margin:0 10px!important;padding:15px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:4px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;right:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;left:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(-50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{margin:15px auto 8px!important}.trustreviews .trustreviews-wr a{color:#fff!important;padding:6px 15px 10px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 0 0 4px;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important}1 :root{--rpi-star-size:22px;--rpi-star-color:#fb8e28;--rpi-star-empty:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z' fill='none' stroke='%23cccccc' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");--rpi-star-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.7881 3.21068C11.2364 2.13274 12.7635 2.13273 13.2118 3.21068L15.2938 8.2164L20.6979 8.64964C21.8616 8.74293 22.3335 10.1952 21.4469 10.9547L17.3295 14.4817L18.5874 19.7551C18.8583 20.8908 17.6229 21.7883 16.6266 21.1798L11.9999 18.3538L7.37329 21.1798C6.37697 21.7883 5.14158 20.8908 5.41246 19.7551L6.67038 14.4817L2.55303 10.9547C1.66639 10.1952 2.13826 8.74293 3.302 8.64964L8.70609 8.2164L10.7881 3.21068Z'/%3E%3C/svg%3E")}.rpi-star,.rpi-stars-tripadvisor,.rpi-stars-yelp{display:flex;align-items:center;gap:4px}.rpi-star[data-rating]::before{content:attr(data-rating);color:var(--rpi-star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-star[data-rating]::after{content:'';width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-position:center!important;-webkit-mask-size:contain!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-position:center!important;mask-size:contain!important}.rpi-stars{--stars:5;--stars-max:5;position:relative!important;display:inline-block!important;width:calc(var(--stars) * var(--rpi-star-size))!important;height:var(--rpi-star-size)!important;background-color:transparent!important;background-image:var(--rpi-star-empty)!important;background-repeat:repeat-x!important;background-position:left center!important;background-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-star+.rpi-stars{--stars-offset:1;--stars:calc(var(--stars-max) - var(--stars-offset))}.rpi-stars::before{content:''!important;position:absolute!important;inset:0!important;width:clamp(0%,calc(((var(--rating) - var(--stars-offset,0))/ (var(--stars-max) - var(--stars-offset,0))) * 100%),100%)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:repeat-x!important;-webkit-mask-position:left center!important;-webkit-mask-size:var(--rpi-star-size) var(--rpi-star-size)!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:repeat-x!important;mask-position:left center!important;mask-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-stars-yelp{--empty-color:#cccccc;--five-color:#fb433c;--four-color:#ff643d;--three-color:#ff8742;--two-color:#ffad48;--one-color:#ffcc4b;--rpi-star-size:20px;--rating:0;--gap:3px;--radius:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-yelp i{position:relative!important;display:inline-block!important;font-style:normal!important;flex:0 0 auto!important;width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;border-radius:var(--radius)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(90deg,var(--star-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important;box-sizing:border-box!important}.rpi-stars-yelp i::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:70% 70%!important;mask-position:center!important}.rpi-stars-yelp[data-rating]::before{content:attr(data-rating);color:var(--star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-yelp i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-yelp i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-yelp i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-yelp i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-yelp i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-yelp[data-stars^="1"]{--rating:1.5;--star-color:var(--one-color)}.rpi-stars-yelp[data-stars="1"]{--rating:1}.rpi-stars-yelp[data-stars^="2"]{--rating:2.5;--star-color:var(--two-color)}.rpi-stars-yelp[data-stars="2"]{--rating:2}.rpi-stars-yelp[data-stars^="3"]{--rating:3.5;--star-color:var(--three-color)}.rpi-stars-yelp[data-stars="3"]{--rating:3}.rpi-stars-yelp[data-stars^="4"]{--rating:4.5;--star-color:var(--four-color)}.rpi-stars-yelp[data-stars="4"]{--rating:4}.rpi-stars-yelp[data-stars^="5"]{--rating:5;--star-color:var(--five-color)}.rpi-stars-tripadvisor{--empty-color:#ffffff;--border-color:#5ba672;--fill-color:#5ba672;--rpi-dot-size:18px;--rating:0;--gap:4px;--border:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-tripadvisor i{width:var(--rpi-dot-size)!important;height:var(--rpi-dot-size)!important;display:inline-block!important;position:relative!important;flex:0 0 auto!important;box-sizing:border-box!important;border-radius:999px!important;border:var(--border) solid var(--border-color)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(90deg,var(--fill-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important}.rpi-stars-tripadvisor[data-rating]::before{content:attr(data-rating);color:var(--fill-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-tripadvisor i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-tripadvisor[data-stars^="1"]{--rating:1.5}.rpi-stars-tripadvisor[data-stars="1"]{--rating:1}.rpi-stars-tripadvisor[data-stars^="2"]{--rating:2.5}.rpi-stars-tripadvisor[data-stars="2"]{--rating:2}.rpi-stars-tripadvisor[data-stars^="3"]{--rating:3.5}.rpi-stars-tripadvisor[data-stars="3"]{--rating:3}.rpi-stars-tripadvisor[data-stars^="4"]{--rating:4.5}.rpi-stars-tripadvisor[data-stars="4"]{--rating:4}.rpi-stars-tripadvisor[data-stars^="5"]{--rating:5}.rpi-star-fb{--size:18px;--color:#fa3e3e;--radius:2px;--tail:6px;position:relative!important;display:flex!important;align-items:center!important;width:var(--size);height:var(--size);background-color:var(--color)!important;border-radius:var(--radius);white-space:nowrap!important;font-size:calc(var(--size) - 2px)!important;line-height:1!important;vertical-align:middle!important;text-indent:calc(var(--size) + 6px)!important}.rpi-star-fb[data-rating="1"]{--color:#cccccc}.rpi-star-fb::before{content:'';position:absolute;left:4px;bottom:-4px;width:0;height:0;border-top:5px solid var(--color);border-right:6px solid transparent}.rpi-star-fb::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:60% 60%!important;mask-position:center!important}.trustreviews,.trustreviews *,.trustreviews ::after,.trustreviews ::before{box-sizing:border-box}.trustreviews{display:block;direction:ltr;font-size:var(--font-size, 16px);font-family:var(--font-family);font-style:normal;font-weight:400;text-align:start;line-height:normal;overflow:visible;text-decoration:none;list-style-type:disc;box-sizing:border-box;visibility:visible!important}.trustreviews div,.trustreviews span{margin:0;padding:0;color:inherit;font:inherit;line-height:normal;letter-spacing:normal;text-transform:none;text-decoration:none;border:0;background:0 0}.trustreviews a{color:inherit;text-decoration:none;background:0 0;cursor:pointer;outline:0}.trustreviews a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.trustreviews img{display:block;max-width:100%;height:auto;border:0;vertical-align:middle}.trustreviews i{font-style:normal;font-weight:inherit;line-height:0;vertical-align:middle}.trustreviews svg{display:inline-block;width:auto;height:auto;vertical-align:middle;overflow:visible}.trustreviews svg use{opacity:1;visibility:visible}.trustreviews .trustreviews-flex{display:inline-flex;align-items:center;gap:var(--gap,2px);flex-direction:var(--dir,column);align-items:var(--align,star);flex-wrap:var(--wrap,nowrap);overflow:var(--overflow,visible)}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:700!important;vertical-align:middle!important;line-height:normal!important}.trustreviews .trustreviews-powered{color:#555!important}.trustreviews [data-platform=google] .trustreviews-powered img{max-width:144px!important}.trustreviews [data-platform=yelp] .trustreviews-powered img{max-height:25px!important;vertical-align:sub!important}.trustreviews [data-platform=facebook] .trustreviews-powered span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=tripadvisor] .trustreviews-powered span{color:#5ba672!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=facebook],.trustreviews [data-rev=facebook]{--rpi-star-color:#4569f5}.trustreviews .trustreviews-list-review{position:relative;margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-right:10px!important}[dir=rtl] .trustreviews-left{padding-left:10px!important}.trustreviews .trustreviews-img{min-width:50px!important;max-width:none!important;height:50px!important;overflow:hidden!important;border:none!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews [data-rev=google] .trustreviews-img{overflow:visible!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;padding-right:6px!important;text-decoration:none!important}.trustreviews .trustreviews-review .trustreviews-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-header .trustreviews-name{font-size:120%!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-right:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews-fb{padding:2px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews-ta{padding:3px;width:16px!important;height:16px!important;border-radius:50%;background:#00eb5b!important}.trustreviews-feedback span:first-child{margin-right:8px}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:left!important;direction:ltr!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{display:flex;flex-direction:column;gap:12px;position:relative!important;margin:0 10px!important;padding:16px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:12px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;right:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;left:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(-50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:visible!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{display:flex}.trustreviews .trustreviews-wr a{color:#fff!important;padding:4px 12px 8px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 0 0 4px;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important} -
fb-reviews-widget/trunk/assets/js/admin-main.js
r3406362 r3439940 1 var TrustReviews=TrustReviews||{}; 2 TrustReviews.Admin={stars:function(c,d,k){for(var t="",n=1;6>n;n++){var y=c-n;t=0<=y?t+this.star("",d,k):-1<y&&0>y?-.75>y?t+this.star("-o","#ccc",k):-.25<y?t+this.star("",d,k):t+this.star("-half",d,k):t+this.star("-o","#ccc",k)}return t},star:function(c,d,k){switch(c){case "-half":c='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star-o" style="stroke:'+d+';stroke-width:1.5"/><use href="#'+TRUSTREVIEWS_VARS.slg+'-star-half" style="fill:'+d+'" clip-path="url(#'+TRUSTREVIEWS_VARS.slg+'-clip-half)"/>';break; 3 case "-o":c='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star-o" style="stroke:#ccc;stroke-width:1.5"/>';break;default:c='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star" style="fill:'+d+'"/>'}return'<svg viewBox="0 0 24 24" width="'+k+'" height="'+k+'">'+c+"</svg>"},review:function(c){var d=TRUSTREVIEWS_VARS.slg;const k=document.createElement("div");k.className=d+"-list-review"+(""===c.hide?"":" wp-review-hidden");k.dataset.rev=String(c.provider||"");const t=document.createElement("div");t.className=d+"-right"; 4 k.appendChild(t);var n=document.createElement("a");n.className=d+"-name";n.target="_blank";n.rel="nofollow noopener";n.href=this.safeUrl(c.author_url);n.textContent=c.author_name||"";t.appendChild(n);n=document.createElement("div");n.className=d+"-time";n.dataset.time=String(c.time||"");t.appendChild(n);n=document.createElement("div");n.className=d+"-feedback";t.appendChild(n);var y=this.stars(Number(c.rating)||0,"#fb8e28",16);if("string"===typeof y){const F=document.createElement("span");F.innerHTML= 5 y;n.appendChild(F)}else y instanceof Node&&n.appendChild(y);y=document.createElement("span");y.className=d+"-text";this.trimtext(y,c.text||"",50);n.appendChild(y);d=document.createElement("a");d.href="#";d.className="wp-review-hide";d.dataset.id=String(c.id||"");d.textContent=(""===c.hide?"Hide":"Show")+" review";t.appendChild(d);return k},trimtext:function(c,d,k){if(d)if(d=String(d),k&&d.length>k){var t=d.substring(0,k).indexOf(" ")+1;if(1>t||k-t>k/2)t=k;k="";if(0<t){var n=d.substring(0,t-1);k=d.substring(t- 6 1)}else n=d;c.appendChild(document.createTextNode(n));k&&(d=document.createElement("span"),d.textContent="... ",c.appendChild(d),d=document.createElement("span"),d.className="wp-more",d.textContent=k,c.appendChild(d),k=document.createElement("span"),k.className="wp-more-toggle",k.textContent="read more",c.appendChild(k))}else c.textContent=d},safeUrl:function(c){if(!c)return"#";c=String(c).trim();return/^https?:\/\//i.test(c)?c:"#"},s2dmy:function(c){c=(c/86400).toFixed(0);return 30<c?365<c?Math.round(c/ 7 365)+" years":Math.round(c/30)+" months":c+" days"},review_hide:function(c){let d=TRUSTREVIEWS_VARS.slg;jQuery.post(ajaxurl,{id:c.attr("data-id"),feed_id:jQuery('input[name="'+d+'_feed[post_id]"]').val(),action:d+"_hide_review",_wpnonce:jQuery("#_wpnonce").val()},function(k){var t=c.parent().parent();k.hide?(c.text("show review"),t.addClass("wp-review-hidden")):(c.text("hide review"),t.removeClass("wp-review-hidden"))},"json")}}; 8 jQuery(document).ready(function(c){function d(D,v){return c(D.replace(/(\.|#)/g,"$1"+k+"-").replace(/\-_/g,"_"),v)}let k=TRUSTREVIEWS_VARS.slg;c("."+k+"-admin-page a.nav-tab").on("click",function(D){var v=c(this),G=v.attr("href");c(G).show().siblings(".tab-content").hide();v.addClass("nav-tab-active").siblings().removeClass("nav-tab-active");D.preventDefault()});var t=d("#rate_us");if(t.length){var n=d("#rate_us-feedback"),y=d("#rate_us-feedback-stars");-1<window.location.href.indexOf("_feed_id=")&& 9 !window[k+"_rateus"]&&t.addClass(k+"-flash-visible");c("svg",t).click(function(){var v=c(this).index()+1;3<v?(c.post({url:ajaxurl,type:"POST",dataType:"json",data:{rate:v,action:k+"_rateus_ajax",_wpnonce:c("#_wpnonce").val()},success:function(G){console.log(G)}}),v=0<(1*Math.random()).toFixed(0)?"https://g.page/r/CZIR4rrOZJnLEBM/review":"https://wordpress.org/support/plugin/"+TRUSTREVIEWS_VARS.pluginName+"/reviews/?rate="+v+"#new-post",window.open(v,"_blank"),D()):(y.attr("data-rate",v),y.html(TrustReviews.Admin.stars(v, 10 "#fb8e28",24)),n.dialog({modal:!0,width:"50%",maxWidth:"600px"}),c(".ui-widget-overlay").bind("click",function(){n.dialog("close")}))});d(".rate_us-cancel").click(function(){n.dialog("close")});d(".rate_us-send").click(function(){c.post({url:ajaxurl,type:"POST",dataType:"json",data:{action:k+"_rateus_ajax_feedback",rate:y.attr("data-rate"),email:c("input",n).val(),msg:c("textarea",n).val(),_wpnonce:c("#_wpnonce").val()},success:function(v){n.dialog({title:"Feedback sent"});n.html('<b style="color:#4cc74b">Thank you for your feedback!<br>We received it and will investigate your suggestions.</b>'); 11 D();setTimeout(function(){n.fadeOut(500,function(){n.dialog("close")})},1500)}})});function D(){setTimeout(function(){t.addClass(k+"-flash-gout");t.removeClass(k+"-flash-visible");t.removeClass(k+"-flash-gout");window[k+"_rateus"]=1},1E3)}}if(d("#overview-rating").length){var F=6,I=d("#overview-places"),L=d("#overview-months"),C=d("#overview-rating"),K=d("#overview-reviews"),J=null;I.change(function(){D(this.value)});L.change(function(){F=this.value;D(I.val())});D(0,function(v){c.each(v.places,function(G, 12 H){I.append(c("<option>",{value:H.id,text:H.name}))})});function D(v,G){var H={action:k+"_overview_ajax",_wpnonce:jQuery("#_wpnonce").val()};v&&(H.pid=v);jQuery.post({url:ajaxurl,type:"POST",dataType:"json",data:H,success:function(r){if(r){var h=1<r.places.length?r.places.find(B=>B.id==v):r.places[0],x=null;if(r.stats_minmax.length){var q={},w=0,z=((new Date).getTime()/1E3).toFixed(0);for(var a=0;a<r.stats_minmax.length;a++){var e=r.stats_minmax[a],b=e.biz_id;w=!w||e.time<w?e.time:w;q[b]?(q[b]={time:parseInt(z- 13 q[b].time),rating:parseFloat((e.rating-q[b].rating).toFixed(1)),review_count:parseInt(e.review_count-q[b].review_count)},x=x?{time:q[b].time,rating:x.rating+q[b].rating,review_count:x.review_count+q[b].review_count}:q[b],delete q[b]):q[b]={time:w,rating:e.rating,review_count:e.review_count}}}q=d("#overview-stats");q.html("Not calculated yet");x&&(w=x.rating,z=x.review_count,q.html(('<div class="{slg}-overview-h">While using the plugin</div><div>Usage time: <span class="{slg}-stat-val {slg}-stat-up">'+ 14 TrustReviews.Admin.s2dmy(x.time)+'</span></div><div>Rating up: <span class="{slg}-stat-val {slg}-stat-'+(0>w?"down":0<w?"up":"")+'">'+w+'</span></div><div>Reviews up: <span class="{slg}-stat-val {slg}-stat-'+(0>z?"down":0<z?"up":"")+'">'+z+"</span></div>").replace(/{slg}/g,k)));C.html(('<div class="{slg}"><div class="{slg}-overview-h">'+h.name+'</div><div><span class="{slg}-rating">'+r.rating+'</span><span class="{slg}-stars">'+TrustReviews.Admin.stars(r.rating,"#fb8e28",20)+'</span></div><div class="{slg}-powered">Based on '+ 15 r.review_count+" reviews</div>"+(h.updated?'<div class="{slg}-powered">Last updated: <span class="{slg}-time">'+WPacTime.getTime(parseInt(h.updated),TrustReviews.Plugin.lang(),"ago")+"</span></div>":"")+"</div>").replace(/{slg}/g,k));var l=document.createElement("div");l.className=k+" wpac";c.each(r.reviews,function(B,E){l.appendChild(TrustReviews.Admin.review(E))});K.html("");K[0].appendChild(l);TrustReviews.Plugin.timeago();TrustReviews.Plugin.read_more();c(".wp-review-hide",K).unbind("click").click(function(){TrustReviews.Admin.review_hide(c(this)); 16 return!1});x={};for(h=0;h<r.stats.length;h++)q=r.stats[h],w=q.biz_id,x[w]=x[w]||[],x[w].push({time:parseInt(q.time),rating:parseFloat(q.rating),review_count:parseInt(q.review_count)});h=parseInt((r.stats[0].time-r.stats[r.stats.length-1].time)/2592E3);w=4<h?F:h||1;h={};z=new Date;for(a=0;a<w;a++)for(g in q=new Date(z.getFullYear(),z.getMonth()-a,1),e=(new Date(z.getFullYear(),z.getMonth()+1-a,0)).getTime(),b=q.toLocaleString("default",{month:"short"})+" "+q.getFullYear().toString().slice(-2),h[b]= 17 h[b]||{},x){var f=0,u=x[g];do{q=u[f++];var A=1E3*q.time;h[b][g]=h[b][g]||{};h[b][g].count=parseInt(q.review_count)}while(A>e&&f<u.length)}x=[];q=[];w=[];z={};for(m in h){a=0;for(p in h[m])a+=h[m][p].count,e=r.places.find(B=>B.id==p),z[e.name]=z[e.name]||{},z[e.name].data=z[e.name].data||[],z[e.name].data.unshift(h[m][p].count);x.unshift(m);q.unshift(a)}for(tt in z)w.push({name:tt,data:z[tt].data});h={series:[{name:"Reviews",data:q}],chart:{height:350,type:"bar"},plotOptions:{bar:{dataLabels:{position:"top"}}}, 18 dataLabels:{enabled:!0,offsetY:-20,style:{fontSize:"12px",colors:["#304758"]}},tooltip:{enabled:!0,intersect:!1,custom:function(){return""}},xaxis:{categories:x,axisBorder:{show:!1},axisTicks:{show:!1},tooltip:{enabled:!0}},yaxis:{axisBorder:{show:!1},axisTicks:{show:!1}},title:{text:"Monthly reviews count",align:"center",style:{color:"#444"}}};J?J.updateOptions({series:[{name:"Reviews",data:q}],xaxis:{categories:x}}):(J=new ApexCharts(document.querySelector("#chart"),h),J.render());G&&G(r)}else window.location.href= 19 TRUSTREVIEWS_VARS.builderUrl}})}}});TrustReviews=TrustReviews||{}; 20 TrustReviews.Builder=function(c,d){function k(){if(!r("title").value)return r("title").focus(),!1;r("save").innerText="Auto save, wait";r("save").disabled=!0;c.post(ajaxurl,{post_id:r("post_id").value,title:r("title").value,content:x().value,action:d.slg+"_feed_save_ajax",_wpnonce:c("#_wpnonce").val()},function(a){for(var e=document.querySelectorAll("."+d.slg),b=0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);r("collection_preview").innerHTML=a;c(".wp-review-hide").unbind("click").click(function(){TrustReviews.Admin.review_hide(c(this)); 21 return!1});r("post_id").value?(a=h("#rate_us"),!a.length||a.hasClass(d.slg+"-flash-visible")||window[d.slg+"_rateus"]||a.addClass(d.slg+"-flash-visible")):(a=document.querySelector("."+d.slg).getAttribute("data-id"),r("post_id").value=a,window.location.href=window.location.href+"&"+d.slg+"_feed_id="+a+"&"+d.slg+"_feed_new=1");r("save").innerText="Save & Update";r("save").disabled=!1;q=null})}function t(a){var e=h(".connect-btn");e.click(function(){var b=h(".connect-id"),l=e.parent().attr("data-platform"); 22 if(!b.val())return b.focus(),!1;b="yelp"==l?/.+\/biz\/(.*?)(\?|\/|$)/.exec(b.val())[1]:b.val();var f=h(".connect-lang").val();e[0].innerHTML="Please wait...";e[0].disabled=!0;n({id:b,lang:f,platform:l,local_img:!0},a,1);return!1})}function n(a,e,b){var l=a.platform;h(".connect-btn");r("save").innerText="Auto save, wait";r("save").disabled=!0;c.post(ajaxurl,{id:decodeURIComponent(a.id),lang:a.lang,local_img:a.local_img||!1,token:a.token,feed_id:c('input[name="'+d.slg+'_feed[post_id]"]').val(),action:d.slg+ 23 "_connect_"+l,v:(new Date).getTime(),_wpnonce:c("#_wpnonce").val()},function(f){console.log("connect_debug:",f);var u=h(".connect-error");if("success"==f.status){try{h("#connect-wizard").dialog("close")}catch(A){}F({id:f.result.id,lang:a.lang,name:f.result.name,photo:f.result.photo,refresh:!0,local_img:a.local_img,platform:l,props:{default_photo:f.result.photo}},e);C()}else switch(f.result.error_message){case "usage_limit":c("#dialog").dialog({width:"50%",maxWidth:"600px"});break;case "bot_check":if(1< 24 b)break;v(d.gAppUrl+"/botcheck?authcode="+e,640,480,function(){n(a,e,b+1)});break;default:0<=f.result.error_message.indexOf("The provided Place ID is no longer valid")?u[0].innerHTML='It seems Google place which you are trying to connect does not have a physical address (it\'s virtual or service area), unfortunately, Google Places API does not support such locations, it\'s a limitation of Google, not the plugin.<br><br>However, you can try to connect your Google reviews in our new cloud service <a href="https://trust.reviews" target="_blank">Trust.Reviews</a> and show it on your WordPress site through universal <b>HTML/JavaScript</b> code.': 25 u[0].innerHTML="<b>Error</b>: "+f.result.error_message}},"json")}function y(a){h(".connect-facebook").click(function(){var e=G(16);v(d.fbAuthUrl+"?state="+d.authcode+":"+e,670,520,function(){c.ajax({url:d.fbAppUrl+"/accounts?temp_code="+e,dataType:"jsonp",success:function(b){b&&b.length&&(c.each(b,function(l,f){F({id:f.id,name:f.name,photo:"https://graph.facebook.com/"+f.id+"/picture",platform:"facebook",rating_count:"",props:{default_photo:"https://graph.facebook.com/"+f.id+"/picture"}},a)}),C())}})}); 26 return!1})}function F(a,e,b){var l=I(a),f=c("#"+l);f.length||(f=c('<div class="'+d.slg+'-connection"></div>')[0],f.id=l,void 0!=a.lang&&f.setAttribute("data-lang",a.lang),f.setAttribute("data-platform",a.platform),f.innerHTML=L(a,b),h(".connections")[0].appendChild(f),h(".toggle",f).unbind("click").click(function(){c(this).toggleClass("toggled");c(this).next().slideToggle()}),h(".connect-photo-change",f).on("click",function(u){u.preventDefault();J(f,void 0,function(){C()});return!1}),h(".connect-photo-default", 27 f).on("click",function(u){D(f,a.props.default_photo);C();return!1}),c('input[type="text"]',f).keyup(function(){clearTimeout(q);q=setTimeout(C,1500)}),c('input[type="checkbox"]',f).click(function(){C()}),c("select."+d.slg+"-connect-lang",f).change(function(){a.lang=this.value;f.id=I(a);f.setAttribute("data-lang",this.value);n(a,e,1);return!1}),c('input[name="local_img"]',f).unbind("click").click(function(){a.local_img=this.checked;n(a,e,1)}),h(".connect-reconnect",f).click(function(){n(a,e,1);return!1}), 28 h(".connect-delete",f).click(function(){confirm("Are you sure to delete this business?")&&(c(f).remove(),C());return!1}))}function I(a){var e=d.slg+"-"+a.platform+"-"+a.id.replace(/\//g,"");null!=a.lang&&(e+=a.lang);return e}function L(a,e){var b=a.name;a.lang&&(b+=" ("+a.lang+")");a.photo=a.photo||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";var l=document.createElement("option");l.value="google"==a.platform&&a.props&&a.props.pid?a.props.pid:a.id;var f=a.platform; 29 f=f.charAt(0).toUpperCase()+f.slice(1);l.text=f+": "+a.name;e='<div class="{slg}-toggle {slg}-builder-connect {slg}-connect-business"><input type="checkbox" class="{slg}-connect-select" onclick="event.stopPropagation();" '+(e?"checked":"")+" /> "+b+(a.address?" ("+a.address+")":"")+'</div><div style="display:none">';b=a.props;l="";for(prop in b)"platform"!=prop&&Object.prototype.hasOwnProperty.call(b,prop)&&(l+='<input type="hidden" name="'+prop+'" value="'+b[prop]+'" class="{slg}-connect-prop" readonly />'); 30 return(e+l+'<input type="hidden" name="id" value="'+a.id+'" readonly />'+(a.address?'<input type="hidden" name="address" value="'+a.address+'" readonly />':"")+(a.access_token?'<input type="hidden" name="access_token" value="'+a.access_token+'" readonly />':"")+'<div class="{slg}-builder-option"><img src="'+a.photo+'" alt="'+a.name+'" class="{slg}-connect-photo"><a href="#" class="{slg}-connect-photo-change">Change</a><a href="#" class="{slg}-connect-photo-default">Default</a><input type="hidden" name="photo" class="{slg}-connect-photo-hidden" value="'+ 31 a.photo+'" tabindex="2"/></div><div class="{slg}-builder-option"><input type="text" name="name" value="'+a.name+'" /></div>'+(void 0!=a.website?'<div class="{slg}-builder-option"><input type="text" name="website" value="'+a.website+'" /></div>':"")+(void 0!=a.lang?'<div class="{slg}-builder-option">'+H("Show all connected languages",a.lang)+"</div>":"")+(void 0!=a.review_count?'<div class="{slg}-builder-option"><input type="text" name="review_count" value="'+a.review_count+'" placeholder="Total number of reviews" /><span class="{slg}-quest {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help">Google return only 5 most helpful reviews and does not return information about total number of reviews and you can type here it manually.</div></div>': 32 "")+("facebook"==a.platform?'<div class="{slg}-builder-option"><input type="text" name="rating_count" value="'+(a.rating_count||"")+'" placeholder="Reviews count adder" /><span class="{slg}-quest {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help">Facebook returns incorrect number of reviews for some pages. We reported a <a href="https://developers.facebook.com/support/bugs/570160061284085/" target="_blank">bug</a>, which, unfortunately, has not been fixed.<br>If you have this situation and your FB reviews count is incorrect, just <b>enter the difference between the current and the correct reviews count</b> in this option and the plugin will show the correct count.</div></div>': 33 "")+(void 0!=a.refresh?'<div class="{slg}-builder-option"><label><input type="checkbox" name="refresh" '+(a.refresh?"checked":"")+'>Update reviews daily</label><span class="{slg}-quest {slg}-quest-top {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help">'+("google"==a.platform?"The plugin uses the Google Places API to get your reviews. <b>The API only returns the 5 most helpful reviews (it's a limitation of Google, not the plugin)</b>. This option calls the Places API once in 24 hours (to keep the plugin's free and avoid a Google Billing) to check for a new reviews and if there are, adds to the plugin. Thus slowly building up a database of reviews.<br><br>Also if you see the new reviews on Google map, but after some time it's not added to the plugin, it means that Google does not include these reviews to the API and the plugin can't get this.<br><br>If you need to show <b>all reviews</b>, please use <a href=\"https://trust.reviews\" target=\"_blank\">Business plugin</a> which uses a Google My Business API without API key and billing.": 34 "")+("yelp"==a.platform?"The plugin uses the Yelp API to get your reviews. <b>The API only returns the 3 most helpful reviews without sorting possibility.</b> When Yelp changes the 3 most helpful the plugin will automatically add the new one to your database. Thus slowly building up a database of reviews.":"")+"</div></div>":"")+'<div class="{slg}-builder-option"><label><input type="checkbox" name="local_img" '+(a.local_img?"checked":"")+">Save images locally (GDPR)</label></div>"+("facebook"!=a.platform? 35 '<div class="{slg}-builder-option"><button class="{slg}-connect-reconnect">Reconnect</button></div>':"")+'<div class="{slg}-builder-option"><button class="{slg}-connect-delete">Delete connection</button></div></div>').replace(/{slg}/g,d.slg)}function C(){var a=[],e=document.querySelectorAll("."+d.slg+"-connection");for(E in e)if(Object.prototype.hasOwnProperty.call(e,E)){var b=e[E].querySelector("."+d.slg+"-connect-select");if(!b||null===b.offsetParent||b.checked){var l={};b=e[E].getAttribute("data-lang"); 36 var f=e[E].getAttribute("data-platform"),u=e[E].querySelectorAll("input");void 0!=b&&(l.lang=b);for(var A in u)if(Object.prototype.hasOwnProperty.call(u,A)){b=u[A];var B=b.getAttribute("name");B&&(b.className==d.slg+"-connect-prop"?(l.props=l.props||{},l.props[B]=b.value):l[B]="checkbox"==b.type?b.checked:b.value)}l.platform=f;a.push(l)}}e={};var E=document.querySelector("."+d.slg+"-connect-options").querySelectorAll("input[name],select,textarea");for(var M in E)Object.prototype.hasOwnProperty.call(E, 37 M)&&(b=E[M],B=b.getAttribute("name"),"checkbox"==b.type?e[B]=b.checked:void 0!=b.value&&(e[B]="textarea"==b.type||"word_filter"==B||"word_exclude"==B?encodeURIComponent(b.value):b.value));x().value=JSON.stringify({connections:a,options:e});a.length&&(a=a[0],r("title").value||(r("title").value=a.name),k())}function K(a,e){var b=e.conns,l=b.options;if(Array.isArray(b.connections))b=b.connections;else{var f=[];if(Array.isArray(b.google)){for(var u=0;u<b.google.length;u++)b.google[u].platform="google"; 38 f=f.concat(b.google)}if(Array.isArray(b.facebook)){for(u=0;u<b.facebook.length;u++)b.facebook[u].platform="facebook";f=f.concat(b.facebook)}if(Array.isArray(b.yelp)){for(u=0;u<b.yelp.length;u++)b.yelp[u].platform="yelp";f=f.concat(b.yelp)}b=f}for(f=0;f<b.length;f++)F(b[f],e.authcode,!0);for(var A in l)Object.prototype.hasOwnProperty.call(l,A)&&(e=a.querySelector('input[name="'+A+'"],select[name="'+A+'"],textarea[name="'+A+'"]'))&&(b=e.getAttribute("name"),"boolean"===typeof l[A]?e.checked=l[A]:(e.value= 39 "textarea"==e.type||"word_filter"==b||"word_exclude"==b?decodeURIComponent(l[A]):l[A],-1<A.indexOf("_photo")&&e.value&&(e.parentNode.querySelector("img").src=e.value)))}function J(a,e,b){e||(e=wp.media.frames.file_frame=wp.media({title:c(this).data("uploader_title"),button:{text:c(this).data("uploader_button_text")},multiple:!1}),e.on("select",function(){var l=e.state().get("selection").first().toJSON();D(a,l.url);b&&b(l.url)}));e.open()}function D(a,e){var b=h(".connect-photo-hidden",a);a=h(".connect-photo", 40 a);b.val(e);a.attr("src",e);a.show();C()}function v(a,e,b,l){function f(){B&&0==B.closed?setTimeout(f,100):l()}var u=u||screen.height/2-b/2,A=A||screen.width/2-e/2,B=window.open(a,"","location=1,status=1,resizable=yes,width="+e+",height="+b+",top="+u+",left="+A);setTimeout(f,100)}function G(a){for(var e="",b=0;b<a;b++)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return e}function H(a,e){for(var b="",l=0;l<w.length;l++)b+='<option value="'+ 41 w[l][0]+'"'+(e==w[l][0]?' selected="selected"':"")+">"+w[l][1]+"</option>";return'<select class="{slg}-connect-lang" name="lang"><option value=""'+(e?"":' selected="selected"')+">"+a+"</option>"+b+"</select>"}function r(a){return window[d.slg+"_"+a]}function h(a,e){return c(a.replace(/(\.|#)/g,"$1"+d.slg+"-").replace(/\-_/g,"_"),e)}function x(){return document.getElementById(d.slg+"-builder-connection")}var q=null;const w=[["ar","Arabic"],["bg","Bulgarian"],["bn","Bengali"],["ca","Catalan"],["cs", 42 "Czech"],["da","Danish"],["de","German"],["el","Greek"],["en","English"],["es","Spanish"],["eu","Basque"],["eu","Basque"],["fa","Farsi"],["fi","Finnish"],["fil","Filipino"],["fr","French"],["gl","Galician"],["gu","Gujarati"],["hi","Hindi"],["hr","Croatian"],["hu","Hungarian"],["id","Indonesian"],["it","Italian"],["iw","Hebrew"],["ja","Japanese"],["kn","Kannada"],["ko","Korean"],["lt","Lithuanian"],["lv","Latvian"],["ml","Malayalam"],["mr","Marathi"],["nl","Dutch"],["no","Norwegian"],["pl","Polish"], 43 ["pt","Portuguese"],["pt-BR","Portuguese (Brazil)"],["pt-PT","Portuguese (Portugal)"],["ro","Romanian"],["ru","Russian"],["sk","Slovak"],["sl","Slovenian"],["sr","Serbian"],["sv","Swedish"],["ta","Tamil"],["te","Telugu"],["th","Thai"],["tl","Tagalog"],["tr","Turkish"],["uk","Ukrainian"],["vi","Vietnamese"],["zh","Chinese (Simplified)"],["zh-Hant","Chinese (Traditional)"]];var z='<div class="{slg}-builder-platforms {slg}-builder-inside"><div class="{slg}-connect-text">Connect Reviews</div><div class="{slg}-builder-connect {slg}-connect-facebook"><svg viewBox="0 0 100 100" width="24" height="24" style="border-radius:50%;background:#0866FF;padding:1px;box-sizing:border-box;"><use xlink:href="#{slg}-logo-f"></use></svg></div><div class="{slg}-builder-connect" data-platform="google"><svg viewBox="0 0 512 512" width="24" height="24"><use xlink:href="#{slg}-logo-g"></use></svg></div><div class="{slg}-builder-connect" data-platform="yelp"><svg viewBox="0 0 533.33 533.33" width="24" height="24"><use xlink:href="#{slg}-logo-y"></use></svg></div><div class="{slg}-connections"></div></div><div class="{slg}-connect-options"><div class="{slg}-builder-inside"><div class="{slg}-builder-option">Layout<select id="view_mode" name="view_mode"><option value="slider" selected="selected">Slider</option><option value="grid">Grid</option><option value="list">List</option></select></div></div><div class="{slg}-builder-top {slg}-toggle">Common Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option">Pagination<input type="text" name="pagination" value=""></div><div class="{slg}-builder-option">Maximum characters before \'read more\' link<input type="text" name="text_size" value=""></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_center" value="">Show rating by center</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_photo" value="">Hide business photo</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_name" value="">Hide business name</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_based_on" value="">Hide \'Based on ... reviews\'</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_writereview" value="">Hide \'review us on G\' button</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_social" value="">Hide rating header, leave only reviews</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_reviews" value="">Hide reviews, leave only rating header</label></div></div><div class="{slg}-builder-top {slg}-toggle">Slider Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option">Speed in second<input type="text" name="slider_speed" value="" placeholder="Default: 5"></div><div class="{slg}-builder-option">Text height<input type="text" name="slider_text_height" value="" placeholder="Default: 100px"></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_autoplay" value="" checked>Auto-play</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_hide_prevnext" value="">Hide prev & next buttons</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_hide_dots" value="">Hide dots</label></div></div><div class="{slg}-builder-top {slg}-toggle">Style Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option"><label><input type="checkbox" name="dark_theme">Dark background</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_backgnd" value="">Hide reviews background</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="show_round" value="">Round reviews borders</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="show_shadow" value="">Show reviews shadow</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="centered" value="">Place by center (only if max-width is set)</label></div><div class="{slg}-builder-option">Container max-width<input type="text" name="max_width" value="" placeholder="for instance: 300px"><small>Be careful: this will make reviews unresponsive</small></div><div class="{slg}-builder-option">Container max-height<input type="text" name="max_height" value="" placeholder="for instance: 500px"></div></div><div class="{slg}-builder-top {slg}-toggle">Advance Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option"><label><input type="checkbox" name="lazy_load_img" checked>Lazy load images</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="google_def_rev_link">Use default Google reviews link</label><span class="{slg}-quest {slg}-quest-top {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help" style="display:none;">If the direct link to all reviews <b>https://search.google.com/local/reviews?placeid=<PLACE_ID></b> does not work with your Google place (leads to 404), please use this option to use the default reviews link to Google map.</div></div><div class="{slg}-builder-option"><label><input type="checkbox" name="open_link" checked>Open links in new Window</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="nofollow_link" checked>Use no follow links</label></div><div class="{slg}-builder-option">Reviewer avatar size<select name="reviewer_avatar_size"><option value="56" selected="selected">Small: 56px</option><option value="128">Medium: 128px</option><option value="256">Large: 256px</option></select></div><div class="{slg}-builder-option">Cache data<select name="cache"><option value="1">1 Hour</option><option value="3">3 Hours</option><option value="6">6 Hours</option><option value="12" selected="selected">12 Hours</option><option value="24">1 Day</option><option value="48">2 Days</option><option value="168">1 Week</option><option value="">Disable (NOT recommended)</option></select></div><div class="{slg}-builder-option">Reviews limit<input type="text" name="reviews_limit" value=""></div></div></div><div id="{slg}-connect-wizard" title="Easy steps to connect reviews" style="display:none;"><div data-platform="google"><iframe id="grc" src="https://app.trustembed.com/grc?authcode={{authcode}}" style="width:100%;height:400px"></iframe><small class="grw-connect-error"></small></div><div data-platform="yelp"><p><span>1</span> Find your Yelp business on yelp.com</p><p><span>2</span> Copy & paste Yelp business URL to the field below</p><p><input type="text" class="{slg}-connect-id" value="" placeholder="Yelp business link" />'+ 44 H("Choose language if needed")+'</p><p><span>3</span> Click CONNECT REVIEWS button</p><button class="{slg}-connect-btn">Connect Reviews</button></div><small class="{slg}-connect-error"></small></div>';return THIS={init:function(){var a=document.querySelector(d.opt_el);if(a){a.innerHTML=z.replace(/{slg}/g,d.slg).replace("{{authcode}}",d.authcode);d.conns&&d.conns.connections&&d.conns.connections.length&&K(a,d);var e=h("#connect-wizard");h(".builder-connect[data-platform]").click(function(){let b=this.getAttribute("data-platform"); 45 e.attr("data-platform",b);e.dialog({modal:!0,width:"50%",maxWidth:"600px"})});window.onmessage=function(b){if("https://app.trustembed.com"===b.origin&&b.data)switch(b=b.data,b.action){case "connect":n(b,b.authcode,1)}};t(d.authcode);y(d.authcode);h('.connect-options input[type="text"],.connect-options textarea').keyup(function(){clearTimeout(q);q=setTimeout(C,1500)});h('.connect-options input[type="checkbox"],.connect-options select').change(function(){C()});h(".toggle",a).unbind("click").click(function(){c(this).toggleClass("toggled"); 46 c(this).next().slideToggle()});h(".connections").sortable&&(h(".connections").sortable({stop:function(b,l){C()}}),h(".connections").disableSelection());c(".wp-review-hide").click(function(){TrustReviews.Admin.review_hide(c(this));return!1});h("#_save").click(function(){C();return!1});window.addEventListener("beforeunload",function(b){if(q)return(b||window.event).returnValue="It looks like you have been editing something. If you leave before saving, your changes will be lost."})}}}}; 1 var rpi=rpi||{}; 2 rpi.Toast=function(d){function c(k){h||(h=document.createElement("div"),h.className="rpi-toast",h.innerHTML="<style>.rpi-toast{position:fixed;bottom:20px;right:20px;z-index:999999;display:flex;flex-direction:column;gap:8px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;}.rpi-toast-msg{min-width:220px;max-width:320px;padding:10px 14px;border-radius:8px;background:#ffffff;color:#000000;box-shadow:0 10px 30px rgba(0,0,0,.15);display:flex;align-items:center;gap:8px;font-size:13px;opacity:0;transform:translateY(60px);transition:transform .45s ease,opacity .45s ease;}.rpi-toast--success{background:#16a34a;color:#ffffff;}.rpi-toast--error{background:#dc2626;color:#ffffff;}.rpi-toast__close{background:none;border:0;font-size:18px;line-height:1;cursor:pointer;color:inherit;}</style>",document.body.appendChild(h)); 3 "left"===k?(h.style.left="20px",h.style.right=""):(h.style.right="20px",h.style.left="");return h}d=d||{};let h=document.querySelector(".rpi-toast");return{show:function(k){function q(){C.parentNode.removeChild(C)}function A(){C.style.opacity="0";C.style.transform="translateY(60px)";setTimeout(q,300)}k=k||{};if(k.msg){var H=(null!=k.timeout?k.timeout:d.timeout)||30,G=k.type||"default",L=c(k.position||d.position||"right"),C=document.createElement("div");C.className="rpi-toast-msg";"success"===G?C.className+= 4 " rpi-toast--success":"error"===G&&(C.className+=" rpi-toast--error");C.innerHTML='<span style="flex:1;">'+k.msg+'</span><button type="button" class="rpi-toast__close">×</button>';L.appendChild(C);requestAnimationFrame(function(){C.style.opacity="1";C.style.transform="translateY(0)"});(k=C.querySelector(".rpi-toast__close"))&&k.addEventListener("click",function(D){D.stopPropagation();q()});0<H&&setTimeout(A,1E3*H);return C}}}};var TrustReviews=TrustReviews||{}; 5 TrustReviews.Admin={stars:function(d,c,h){for(var k="",q=1;6>q;q++){var A=d-q;k=0<=A?k+this.star("",c,h):-1<A&&0>A?-.75>A?k+this.star("-o","#ccc",h):-.25<A?k+this.star("",c,h):k+this.star("-half",c,h):k+this.star("-o","#ccc",h)}return k},star:function(d,c,h){switch(d){case "-half":d='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star-o" style="stroke:'+c+';stroke-width:1.5"/><use href="#'+TRUSTREVIEWS_VARS.slg+'-star-half" style="fill:'+c+'" clip-path="url(#'+TRUSTREVIEWS_VARS.slg+'-clip-half)"/>';break; 6 case "-o":d='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star-o" style="stroke:#ccc;stroke-width:1.5"/>';break;default:d='<use href="#'+TRUSTREVIEWS_VARS.slg+'-star" style="fill:'+c+'"/>'}return'<svg viewBox="0 0 24 24" width="'+h+'" height="'+h+'">'+d+"</svg>"},review:function(d){var c=TRUSTREVIEWS_VARS.slg;const h=document.createElement("div");h.className=c+"-list-review"+(""===d.hide?"":" wp-review-hidden");h.dataset.rev=String(d.provider||"");const k=document.createElement("div");k.className=c+"-flex"; 7 h.appendChild(k);var q=document.createElement("a");q.className=c+"-name";q.target="_blank";q.rel="nofollow noopener";q.href=this.safeUrl(d.author_url);q.textContent=d.author_name||"";k.appendChild(q);q=document.createElement("div");q.className=c+"-time";q.dataset.time=String(d.time||"");k.appendChild(q);q=document.createElement("div");q.className=c+"-feedback";k.appendChild(q);var A=document.createElement("span");A.className="rpi-stars";A.setAttribute("style","--rpi-fill-percent:"+20*d.rating+"%;--rpi-star-size:16px;vertical-align:middle!important"); 8 q.appendChild(A);A=document.createElement("span");A.className=c+"-text";this.trimtext(A,d.text||"",50);q.appendChild(A);c=document.createElement("a");c.href="#";c.className="wp-review-hide";c.dataset.id=String(d.id||"");c.textContent=(""===d.hide?"Hide":"Show")+" review";k.appendChild(c);return h},trimtext:function(d,c,h){if(c)if(c=String(c),h&&c.length>h){var k=c.substring(0,h).indexOf(" ")+1;if(1>k||h-k>h/2)k=h;h="";if(0<k){var q=c.substring(0,k-1);h=c.substring(k-1)}else q=c;d.appendChild(document.createTextNode(q)); 9 h&&(c=document.createElement("span"),c.textContent="... ",d.appendChild(c),c=document.createElement("span"),c.className="wp-more",c.textContent=h,d.appendChild(c),h=document.createElement("span"),h.className="wp-more-toggle",h.textContent="read more",d.appendChild(h))}else d.textContent=c},safeUrl:function(d){if(!d)return"#";d=String(d).trim();return/^https?:\/\//i.test(d)?d:"#"},s2dmy:function(d){d=(d/86400).toFixed(0);return 30<d?365<d?Math.round(d/365)+" years":Math.round(d/30)+" months":d+" days"}, 10 review_hide:function(d){let c=TRUSTREVIEWS_VARS.slg;jQuery.post(ajaxurl,{id:d.attr("data-id"),feed_id:jQuery('input[name="'+c+'_feed[post_id]"]').val(),action:c+"_hide_review",_wpnonce:jQuery("#_wpnonce").val()},function(h){var k=d.parent().parent();h.hide?(d.text("show review"),k.addClass("wp-review-hidden")):(d.text("hide review"),k.removeClass("wp-review-hidden"))},"json")}}; 11 jQuery(document).ready(function(d){function c(F,z){return d(F.replace(/(\.|#)/g,"$1"+h+"-").replace(/\-_/g,"_"),z)}let h=TRUSTREVIEWS_VARS.slg;d("."+h+"-admin-page a.nav-tab").on("click",function(F){var z=d(this),I=z.attr("href");d(I).show().siblings(".tab-content").hide();z.addClass("nav-tab-active").siblings().removeClass("nav-tab-active");F.preventDefault()});var k=c("#rate_us");if(k.length){var q=c("#rate_us-feedback"),A=c("#rate_us-feedback-stars");-1<window.location.href.indexOf("_feed_id=")&& 12 !window[h+"_rateus"]&&k.addClass(h+"-flash-visible");d("svg",k).click(function(){var z=d(this).index()+1;3<z?(d.post({url:ajaxurl,type:"POST",dataType:"json",data:{rate:z,action:h+"_rateus_ajax",_wpnonce:d("#_wpnonce").val()},success:function(I){console.log(I)}}),z=0<(1*Math.random()).toFixed(0)?"https://g.page/r/CZIR4rrOZJnLEBM/review":"https://wordpress.org/support/plugin/"+TRUSTREVIEWS_VARS.pluginName+"/reviews/?rate="+z+"#new-post",window.open(z,"_blank"),F()):(A.attr("data-rate",z),A.html(TrustReviews.Admin.stars(z, 13 "#fb8e28",24)),q.dialog({modal:!0,width:"50%",maxWidth:"600px"}),d(".ui-widget-overlay").bind("click",function(){q.dialog("close")}))});c(".rate_us-cancel").click(function(){q.dialog("close")});c(".rate_us-send").click(function(){d.post({url:ajaxurl,type:"POST",dataType:"json",data:{action:h+"_rateus_ajax_feedback",rate:A.attr("data-rate"),email:d("input",q).val(),msg:d("textarea",q).val(),_wpnonce:d("#_wpnonce").val()},success:function(z){q.dialog({title:"Feedback sent"});q.html('<b style="color:#4cc74b">Thank you for your feedback!<br>We received it and will investigate your suggestions.</b>'); 14 F();setTimeout(function(){q.fadeOut(500,function(){q.dialog("close")})},1500)}})});function F(){setTimeout(function(){k.addClass(h+"-flash-gout");k.removeClass(h+"-flash-visible");k.removeClass(h+"-flash-gout");window[h+"_rateus"]=1},1E3)}}if(c("#overview-rating").length){var H=6,G=c("#overview-places"),L=c("#overview-months"),C=c("#overview-rating"),D=c("#overview-reviews"),M=null;G.change(function(){F(this.value)});L.change(function(){H=this.value;F(G.val())});F(0,function(z){d.each(z.places,function(I, 15 J){G.append(d("<option>",{value:J.id,text:J.name}))})});function F(z,I){var J={action:h+"_overview_ajax",_wpnonce:jQuery("#_wpnonce").val()};z&&(J.pid=z);jQuery.post({url:ajaxurl,type:"POST",dataType:"json",data:J,success:function(t){if(t){var l=1<t.places.length?t.places.find(x=>x.id==z):t.places[0],B=null;if(t.stats_minmax.length){var u={},w=0,y=((new Date).getTime()/1E3).toFixed(0);for(var b=0;b<t.stats_minmax.length;b++){var e=t.stats_minmax[b],a=e.biz_id;w=!w||e.time<w?e.time:w;u[a]?(u[a]={time:parseInt(y- 16 u[a].time),rating:parseFloat((e.rating-u[a].rating).toFixed(1)),review_count:parseInt(e.review_count-u[a].review_count)},B=B?{time:u[a].time,rating:B.rating+u[a].rating,review_count:B.review_count+u[a].review_count}:u[a],delete u[a]):u[a]={time:w,rating:e.rating,review_count:e.review_count}}}u=c("#overview-stats");u.html("Not calculated yet");B&&(w=B.rating,y=B.review_count,u.html(('<div class="{slg}-overview-h">While using the plugin</div><div>Usage time: <span class="{slg}-stat-val {slg}-stat-up">'+ 17 TrustReviews.Admin.s2dmy(B.time)+'</span></div><div>Rating up: <span class="{slg}-stat-val {slg}-stat-'+(0>w?"down":0<w?"up":"")+'">'+w+'</span></div><div>Reviews up: <span class="{slg}-stat-val {slg}-stat-'+(0>y?"down":0<y?"up":"")+'">'+y+"</span></div>").replace(/{slg}/g,h)));C.html(('<div class="{slg}"><div class="{slg}-flex" style="--dir:column;--gap:8px;--align:center"><div class="{slg}-overview-h">'+l.name+'</div><div class="{slg}-flex" style="--dir:row;--align:center"><span class="{slg}-rating">'+ 18 t.rating+'</span><span class="rpi-stars" style="--rpi-fill-percent:'+20*t.rating+'%"></span></div><div class="{slg}-powered">Based on '+t.review_count+" reviews</div>"+(l.updated?'<div class="{slg}-powered">Last updated: <span class="{slg}-time">'+WPacTime.getTime(parseInt(l.updated),TrustReviews.Plugin.lang(),"ago")+"</span></div>":"")+"</div></div>").replace(/{slg}/g,h));var n=document.createElement("div");n.className=h+" wpac";d.each(t.reviews,function(x,E){n.appendChild(TrustReviews.Admin.review(E))}); 19 D.html("");D[0].appendChild(n);TrustReviews.Plugin.timeago();TrustReviews.Plugin.read_more();d(".wp-review-hide",D).unbind("click").click(function(){TrustReviews.Admin.review_hide(d(this));return!1});B={};for(l=0;l<t.stats.length;l++)u=t.stats[l],w=u.biz_id,B[w]=B[w]||[],B[w].push({time:parseInt(u.time),rating:parseFloat(u.rating),review_count:parseInt(u.review_count)});l=parseInt((t.stats[0].time-t.stats[t.stats.length-1].time)/2592E3);w=4<l?H:l||1;l={};y=new Date;for(b=0;b<w;b++)for(g in u=new Date(y.getFullYear(), 20 y.getMonth()-b,1),e=(new Date(y.getFullYear(),y.getMonth()+1-b,0)).getTime(),a=u.toLocaleString("default",{month:"short"})+" "+u.getFullYear().toString().slice(-2),l[a]=l[a]||{},B){var f=0,v=B[g];do{u=v[f++];var r=1E3*u.time;l[a][g]=l[a][g]||{};l[a][g].count=parseInt(u.review_count)}while(r>e&&f<v.length)}B=[];u=[];w=[];y={};for(m in l){b=0;for(p in l[m])b+=l[m][p].count,e=t.places.find(x=>x.id==p),y[e.name]=y[e.name]||{},y[e.name].data=y[e.name].data||[],y[e.name].data.unshift(l[m][p].count);B.unshift(m); 21 u.unshift(b)}for(tt in y)w.push({name:tt,data:y[tt].data});l={series:[{name:"Reviews",data:u}],chart:{height:350,type:"bar"},plotOptions:{bar:{dataLabels:{position:"top"}}},dataLabels:{enabled:!0,offsetY:-20,style:{fontSize:"12px",colors:["#304758"]}},tooltip:{enabled:!0,intersect:!1,custom:function(){return""}},xaxis:{categories:B,axisBorder:{show:!1},axisTicks:{show:!1},tooltip:{enabled:!0}},yaxis:{axisBorder:{show:!1},axisTicks:{show:!1}},title:{text:"Monthly reviews count",align:"center",style:{color:"#444"}}}; 22 M?M.updateOptions({series:[{name:"Reviews",data:u}],xaxis:{categories:B}}):(M=new ApexCharts(document.querySelector("#chart"),l),M.render());I&&I(t)}else window.location.href=TRUSTREVIEWS_VARS.builderUrl}})}}});TrustReviews=TrustReviews||{}; 23 TrustReviews.Builder=function(d,c){function h(){if(!t("title").value)return t("title").focus(),!1;t("save").innerText="Auto save, wait";t("save").disabled=!0;d.post(ajaxurl,{post_id:t("post_id").value,title:t("title").value,content:B().value,action:c.slg+"_feed_save_ajax",_wpnonce:d("#_wpnonce").val()},function(b){for(var e=document.querySelectorAll("."+c.slg),a=0;a<e.length;a++)e[a].parentNode.removeChild(e[a]);t("collection_preview").innerHTML=b;d(".wp-review-hide").unbind("click").click(function(){TrustReviews.Admin.review_hide(d(this)); 24 return!1});t("post_id").value||(b=document.querySelector("."+c.slg).getAttribute("data-id"),e=document.querySelector("."+c.slg+"-toolbar-control"),a=document.createElement("label"),a.innerHTML='<span id="'+c.slg+'_sc_msg">Copy Shortcode </span><input id="'+c.slg+'_sc" type="text" value="['+c.slg+" id="+b+']" data-shortcode="['+c.slg+" id="+b+"]\" onclick=\"this.select(); document.execCommand('copy'); window."+c.slg+'_sc_msg.innerHTML = \'Shortcode Copied! Paste on page. \';" readonly="">',e.insertBefore(a, 25 window[c.slg+"_save"]),t("post_id").value=b);b=l("#rate_us");!b.length||b.hasClass(c.slg+"-flash-visible")||window[c.slg+"_rateus"]||b.addClass(c.slg+"-flash-visible");t("save").innerText="Save & Update";t("save").disabled=!1;w=null})}function k(b){var e=l(".connect-btn");e.click(function(){var a=l(".connect-id"),n=e.parent().attr("data-platform");if(!a.val())return a.focus(),!1;a="yelp"==n?/.+\/biz\/(.*?)(\?|\/|$)/.exec(a.val())[1]:a.val();var f=l(".connect-lang").val();e[0].innerHTML="Please wait..."; 26 e[0].disabled=!0;q({id:a,lang:f,platform:n,local_img:!0},b,1);return!1})}function q(b,e,a,n){const f=b.map_url||b.props.map_url,v=b.platform;l(".connect-btn");t("save").innerText="Auto save, wait...";t("save").disabled=!0;d.post(ajaxurl,{map_url:f,id:b.id,lang:b.lang,local_img:b.local_img||!0,token:b.token,feed_id:d('input[name="'+c.slg+'_feed[post_id]"]').val(),action:c.slg+"_connect_"+v,v:(new Date).getTime(),_wpnonce:d("#_wpnonce").val()},function(r){const x=[];let E="success";r.error?.message&& 27 (E="error",x.push("<b>Error:</b> "+r.error.message));0<r.quota?.remaining&&x.push(`<b>${r.quota.remaining} attempts remaining (without your API key).</b>`);if("success"===r.status&&r.result)window.connector.style.display="none",H({id:r.result.id,lang:b.lang,name:r.result.name,photo:r.result.photo,refresh:!0,local_img:b.local_img||!0,platform:v,props:{map_url:f,default_photo:r.result.photo2}},e),D(),x.push(`${"refresh"===b.event?"Reviews updated":"Widget saved"} successfully.`);else if(1>r.quota?.remaining){var O= 28 x.push;var K=r.quota.reset_in_seconds;if(0>=K)r="0 minutes";else{r=Math.floor(K/86400);var N=Math.floor(K%86400/3600);K=Math.ceil(K%3600/60);r=r?r+" day"+(1<r?"s":"")+(N?" "+N+" hour"+(1<N?"s":""):""):N?N+" hour"+(1<N?"s":""):K+" minute"+(1<K?"s":"")}O.call(x,`Request limit reached. Please try after ${r}.`)}u.show({msg:x.join("<br>"),type:E});n&&n()},"json")}function A(b){l(".connect-facebook").click(function(){var e=J(16);I(c.fbAuthUrl+"?state="+c.authcode+":"+e,670,520,function(){d.ajax({url:c.fbAppUrl+ 29 "/accounts?temp_code="+e,dataType:"jsonp",success:function(a){a&&a.length&&(d.each(a,function(n,f){H({id:f.id,name:f.name,photo:"https://graph.facebook.com/"+f.id+"/picture",platform:"facebook",rating_count:"",props:{default_photo:"https://graph.facebook.com/"+f.id+"/picture"}},b)}),D())}})});return!1})}function H(b,e,a){const n=L(b);let f=d("#"+n);f.length?f=f[0]:(f=d('<div class="'+c.slg+'-connection"></div>')[0],f.id=n,f.setAttribute("data-platform",b.platform),l(".connections")[0].appendChild(f)); 30 void 0!=b.lang&&f.setAttribute("data-lang",b.lang);f.innerHTML=C(b,a);l(".toggle",f).unbind("click").click(function(){d(this).toggleClass("toggled");d(this).next().slideToggle()});l(".connect-photo-change",f).on("click",function(v){v.preventDefault();F(f,void 0,function(){D()});return!1});l(".connect-photo-default",f).on("click",function(v){z(f,b.props.default_photo);D();return!1});d('input[type="text"]',f).keyup(function(){clearTimeout(w);w=setTimeout(D,1500)});d('input[type="checkbox"]',f).click(function(){D()}); 31 d("select."+c.slg+"-connect-lang",f).change(function(){b.lang=this.value;f.id=L(b);f.setAttribute("data-lang",this.value);G(b,e,1);return!1});d('input[name="local_img"]',f).unbind("click").click(function(){b.local_img=this.checked;G(b,e,1)});l(".connect-reconnect",f).click(function(){G(b,e,1);return!1});l(".connect-delete",f).click(function(){confirm("Are you sure to delete this business?")&&(d(f).remove(),D());return!1})}function G(b,e){b.event="refresh";q(b,e,1)}function L(b){var e=c.slg+"-"+b.platform+ 32 "-"+b.id.replace(/\//g,"");null!=b.lang&&(e+=b.lang);return e}function C(b,e){var a=b.name;b.lang&&(a+=" ("+b.lang+")");b.photo=b.photo||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";var n=document.createElement("option");n.value="google"==b.platform&&b.props&&b.props.pid?b.props.pid:b.id;var f=b.platform;f=f.charAt(0).toUpperCase()+f.slice(1);n.text=f+": "+b.name;e='<div class="{slg}-toggle {slg}-builder-connect {slg}-connect-business"><input type="checkbox" class="{slg}-connect-select" onclick="event.stopPropagation();" '+ 33 (e?"checked":"")+" /> "+a+(b.address?" ("+b.address+")":"")+'</div><div style="display:none">';a=b.props;n="";for(prop in a)"platform"!=prop&&Object.prototype.hasOwnProperty.call(a,prop)&&(n+='<input type="hidden" name="'+prop+'" value="'+a[prop]+'" class="{slg}-connect-prop" readonly />');e=e+n+'<input type="hidden" name="id" value="'+b.id+'" readonly />'+(b.address?'<input type="hidden" name="address" value="'+b.address+'" readonly />':"")+(b.access_token?'<input type="hidden" name="access_token" value="'+ 34 b.access_token+'" readonly />':"")+'<div class="{slg}-builder-option"><img src="'+b.photo+'" alt="'+b.name+'" class="{slg}-connect-photo"><a href="#" class="{slg}-connect-photo-change">Change</a><a href="#" class="{slg}-connect-photo-default">Default</a><input type="hidden" name="photo" class="{slg}-connect-photo-hidden" value="'+b.photo+'" tabindex="2"/></div><div class="{slg}-builder-option"><input type="text" name="name" value="'+b.name+'" /></div>'+(void 0!=b.website?'<div class="{slg}-builder-option"><input type="text" name="website" value="'+ 35 b.website+'" /></div>':"");if(void 0!=b.lang){a=b.lang;n="";for(f=0;f<y.length;f++)n+='<option value="'+y[f][0]+'"'+(a==y[f][0]?' selected="selected"':"")+">"+y[f][1]+"</option>";a='<div class="{slg}-builder-option"><select class="{slg}-connect-lang" name="lang"><option value=""'+((a?"":' selected="selected"')+">Show all connected languages</option>"+n+"</select></div>")}else a="";return(e+a+(void 0!=b.review_count?'<div class="{slg}-builder-option"><input type="text" name="review_count" value="'+ 36 b.review_count+'" placeholder="Total number of reviews" /><span class="{slg}-quest {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help">Google return only 5 most helpful reviews and does not return information about total number of reviews and you can type here it manually.</div></div>':"")+("facebook"==b.platform?'<div class="{slg}-builder-option"><input type="text" name="rating_count" value="'+(b.rating_count||"")+'" placeholder="Reviews count adder" /><span class="{slg}-quest {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help">Facebook returns incorrect number of reviews for some pages. We reported a <a href="https://developers.facebook.com/support/bugs/570160061284085/" target="_blank">bug</a>, which, unfortunately, has not been fixed.<br>If you have this situation and your FB reviews count is incorrect, just <b>enter the difference between the current and the correct reviews count</b> in this option and the plugin will show the correct count.</div></div>': 37 "")+'<div class="{slg}-builder-option"><label><input type="checkbox" name="local_img" checked>Save images locally (GDPR)</label></div>'+("facebook"!=b.platform?'<div class="{slg}-builder-option"><button class="{slg}-connect-reconnect">Reconnect</button></div>':"")+'<div class="{slg}-builder-option"><button class="{slg}-connect-delete">Delete connection</button></div></div>').replace(/{slg}/g,c.slg)}function D(){var b=[],e=document.querySelectorAll("."+c.slg+"-connection");for(E in e)if(Object.prototype.hasOwnProperty.call(e, 38 E)){var a=e[E].querySelector("."+c.slg+"-connect-select");if(!a||null===a.offsetParent||a.checked){var n={};a=e[E].getAttribute("data-lang");var f=e[E].getAttribute("data-platform"),v=e[E].querySelectorAll("input");void 0!=a&&(n.lang=a);for(var r in v)if(Object.prototype.hasOwnProperty.call(v,r)){a=v[r];var x=a.getAttribute("name");x&&(a.className==c.slg+"-connect-prop"?(n.props=n.props||{},n.props[x]=a.value):n[x]="checkbox"==a.type?a.checked:a.value)}n.platform=f;b.push(n)}}e={};var E=document.querySelector("."+ 39 c.slg+"-connect-options").querySelectorAll("input[name],select,textarea");for(var O in E)Object.prototype.hasOwnProperty.call(E,O)&&(a=E[O],x=a.getAttribute("name"),"checkbox"==a.type?e[x]=a.checked:void 0!=a.value&&(e[x]="textarea"==a.type||"word_filter"==x||"word_exclude"==x?encodeURIComponent(a.value):a.value));B().value=JSON.stringify({connections:b,options:e});b.length&&(b=b[0],t("title").value||(t("title").value=b.name),h())}function M(b,e){var a=e.conns,n=a.options;if(Array.isArray(a.connections))a= 40 a.connections;else{var f=[];if(Array.isArray(a.google)){for(var v=0;v<a.google.length;v++)a.google[v].platform="google";f=f.concat(a.google)}if(Array.isArray(a.facebook)){for(v=0;v<a.facebook.length;v++)a.facebook[v].platform="facebook";f=f.concat(a.facebook)}if(Array.isArray(a.yelp)){for(v=0;v<a.yelp.length;v++)a.yelp[v].platform="yelp";f=f.concat(a.yelp)}a=f}for(f=0;f<a.length;f++)H(a[f],e.authcode,!0);for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e=b.querySelector('input[name="'+r+ 41 '"],select[name="'+r+'"],textarea[name="'+r+'"]'))&&(a=e.getAttribute("name"),"boolean"===typeof n[r]?e.checked=n[r]:(e.value="textarea"==e.type||"word_filter"==a||"word_exclude"==a?decodeURIComponent(n[r]):n[r],-1<r.indexOf("_photo")&&e.value&&(e.parentNode.querySelector("img").src=e.value)))}function F(b,e,a){e||(e=wp.media.frames.file_frame=wp.media({title:d(this).data("uploader_title"),button:{text:d(this).data("uploader_button_text")},multiple:!1}),e.on("select",function(){var n=e.state().get("selection").first().toJSON(); 42 z(b,n.url);a&&a(n.url)}));e.open()}function z(b,e){var a=l(".connect-photo-hidden",b);b=l(".connect-photo",b);a.val(e);b.attr("src",e);b.show();D()}function I(b,e,a,n){function f(){x&&0==x.closed?setTimeout(f,100):n()}var v=v||screen.height/2-a/2,r=r||screen.width/2-e/2,x=window.open(b,"","location=1,status=1,resizable=yes,width="+e+",height="+a+",top="+v+",left="+r);setTimeout(f,100)}function J(b){for(var e="",a=0;a<b;a++)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62* 43 Math.random()));return e}function t(b){return window[c.slg+"_"+b]}function l(b,e){return d(b.replace(/(\.|#)/g,"$1"+c.slg+"-").replace(/\-_/g,"_"),e)}function B(){return document.getElementById(c.slg+"-builder-connection")}const u=rpi.Toast({timeout:25});var w=null;const y=[["ar","Arabic"],["bg","Bulgarian"],["bn","Bengali"],["ca","Catalan"],["cs","Czech"],["da","Danish"],["de","German"],["el","Greek"],["en","English"],["es","Spanish"],["eu","Basque"],["eu","Basque"],["fa","Farsi"],["fi","Finnish"], 44 ["fil","Filipino"],["fr","French"],["gl","Galician"],["gu","Gujarati"],["hi","Hindi"],["hr","Croatian"],["hu","Hungarian"],["id","Indonesian"],["it","Italian"],["iw","Hebrew"],["ja","Japanese"],["kn","Kannada"],["ko","Korean"],["lt","Lithuanian"],["lv","Latvian"],["ml","Malayalam"],["mr","Marathi"],["nl","Dutch"],["no","Norwegian"],["pl","Polish"],["pt","Portuguese"],["pt-BR","Portuguese (Brazil)"],["pt-PT","Portuguese (Portugal)"],["ro","Romanian"],["ru","Russian"],["sk","Slovak"],["sl","Slovenian"], 45 ["sr","Serbian"],["sv","Swedish"],["ta","Tamil"],["te","Telugu"],["th","Thai"],["tl","Tagalog"],["tr","Turkish"],["uk","Ukrainian"],["vi","Vietnamese"],["zh","Chinese (Simplified)"],["zh-Hant","Chinese (Traditional)"]];return THIS={init:function(){var b=document.querySelector(c.opt_el);if(b){b.innerHTML='<div class="{slg}-builder-platforms {slg}-builder-inside"><div class="{slg}-connect-text">Connect Reviews</div><div class="{slg}-builder-connect {slg}-connect-facebook"><svg viewBox="0 0 100 100" width="24" height="24" style="border-radius:50%;background:#0866ff;padding:2px;box-sizing:border-box;"><use xlink:href="#{slg}-logo-f"></use></svg></div><div class="{slg}-builder-connect" data-platform="google"><svg viewBox="0 0 512 512" width="24" height="24"><use xlink:href="#{slg}-logo-g"></use></svg></div><div class="{slg}-builder-connect" data-platform="yelp"><svg viewBox="0 0 533.33 533.33" width="24" height="24"><use xlink:href="#{slg}-logo-y"></use></svg></div><div class="{slg}-builder-connect" data-platform="tripadvisor"><svg viewBox="0 0 132 86" width="24" height="24" style="border-radius:50%;background:#00eb5b;padding:3px;box-sizing:border-box;"><use xlink:href="#{slg}-logo-ta"></use></svg></div><div class="{slg}-connections"></div></div><div class="{slg}-connect-options"><div class="{slg}-builder-inside"><div class="{slg}-builder-option">Layout<select id="view_mode" name="view_mode"><option value="slider" selected="selected">Slider</option><option value="grid">Grid</option><option value="list">List</option></select></div></div><div class="{slg}-builder-top {slg}-toggle">Common Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option">Pagination<input type="text" name="pagination" value=""></div><div class="{slg}-builder-option">Maximum characters before \'read more\' link<input type="text" name="text_size" value=""></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_center" value="">Show rating by center</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_photo" value="">Hide business photo</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_name" value="">Hide business name</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_based_on" value="">Hide \'Based on ... reviews\'</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_writereview" value="">Hide \'review us on G\' button</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="header_hide_social" value="">Hide rating header, leave only reviews</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_reviews" value="">Hide reviews, leave only rating header</label></div></div><div class="{slg}-builder-top {slg}-toggle">Slider Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option">Speed in second<input type="text" name="slider_speed" value="" placeholder="Default: 5"></div><div class="{slg}-builder-option">Text height<input type="text" name="slider_text_height" value="" placeholder="Default: 100px"></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_autoplay" value="" checked>Auto-play</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_hide_prevnext" value="">Hide prev & next buttons</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="slider_hide_dots" value="">Hide dots</label></div></div><div class="{slg}-builder-top {slg}-toggle">Style Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option"><label><input type="checkbox" name="dark_theme">Dark background</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="hide_backgnd" value="">Hide reviews background</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="show_round" value="" checked>Round reviews borders</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="show_shadow" value="">Show reviews shadow</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="centered" value="">Place by center (only if max-width is set)</label></div><div class="{slg}-builder-option">Container max-width<input type="text" name="max_width" value="" placeholder="for instance: 300px"><small>Be careful: this will make reviews unresponsive</small></div><div class="{slg}-builder-option">Container max-height<input type="text" name="max_height" value="" placeholder="for instance: 500px"></div></div><div class="{slg}-builder-top {slg}-toggle">Advance Options</div><div class="{slg}-builder-inside" style="display:none"><div class="{slg}-builder-option"><label><input type="checkbox" name="lazy_load_img" checked>Lazy load images</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="google_def_rev_link">Use default Google reviews link</label><span class="{slg}-quest {slg}-quest-top {slg}-toggle" title="Click to help">?</span><div class="{slg}-quest-help" style="display:none;">If the direct link to all reviews <b>https://search.google.com/local/reviews?placeid=<PLACE_ID></b> does not work with your Google place (leads to 404), please use this option to use the default reviews link to Google map.</div></div><div class="{slg}-builder-option"><label><input type="checkbox" name="open_link" checked>Open links in new Window</label></div><div class="{slg}-builder-option"><label><input type="checkbox" name="nofollow_link" checked>Use no follow links</label></div><div class="{slg}-builder-option">Reviewer avatar size<select name="reviewer_avatar_size"><option value="56" selected="selected">Small: 56px</option><option value="128">Medium: 128px</option><option value="256">Large: 256px</option></select></div><div class="{slg}-builder-option">Cache data<select name="cache"><option value="1">1 Hour</option><option value="3">3 Hours</option><option value="6">6 Hours</option><option value="12" selected="selected">12 Hours</option><option value="24">1 Day</option><option value="48">2 Days</option><option value="168">1 Week</option><option value="">Disable (NOT recommended)</option></select></div><div class="{slg}-builder-option">Reviews limit<input type="text" name="reviews_limit" value=""></div></div></div><iframe id="connector" src="https://app.trustembed.com/connect?authcode={{authcode}}&lang={{lang}}" style="display:none;position:absolute;top:0;width:100%;height:100%;"></iframe>'.replace(/{slg}/g, 46 c.slg).replace("{{authcode}}",c.authcode).replace("{{lang}}",c.lang);c.conns&&c.conns.connections&&c.conns.connections.length&&M(b,c);l(".builder-connect[data-platform]").click(function(){document.body.appendChild(window.connector);const a=new URL(window.connector.src);a.searchParams.set("platform",this.getAttribute("data-platform"));window.connector.src=a.toString();window.connector.style.display="block";window.connector.contentWindow.postMessage({action:"focus"},"*")});window.onmessage=function(a){if("https://app.trustembed.com"=== 47 a.origin&&a.data)switch(a=a.data,a.action){case "connect":q(a,a.authcode,1,function(){window.connector.contentWindow.postMessage({action:"connect_done"},"*")});break;case "close":window.connector.style.display="none"}};k(c.authcode);A(c.authcode);l('.connect-options input[type="text"],.connect-options textarea').keyup(function(){clearTimeout(w);w=setTimeout(D,1500)});l('.connect-options input[type="checkbox"],.connect-options select').change(function(){D()});l(".toggle",b).unbind("click").click(function(){d(this).toggleClass("toggled"); 48 d(this).next().slideToggle()});l(".connections").sortable&&(l(".connections").sortable({stop:function(a,n){D()}}),l(".connections").disableSelection());d(".wp-review-hide").click(function(){TrustReviews.Admin.review_hide(d(this));return!1});l("#_save").click(function(){return(new URL(window.location.href)).searchParams.has(c.slg+"_feed_id")?(D(),!1):!0});var e=!1;document.querySelector("."+c.slg+"-builder form").addEventListener("submit",function(){e=!0});window.addEventListener("beforeunload",function(a){const n= 49 new URL(window.location.href);!t("post_id").value||e||n.searchParams.has(c.slg+"_feed_id")&&!w||(a.preventDefault(),a.returnValue="")})}}}}; -
fb-reviews-widget/trunk/assets/src/css/admin-main.css
r3406362 r3439940 308 308 309 309 .trustreviews .wp-review-hide { 310 position: absolute; 311 right: 8px; 312 bottom: 8px; 310 313 color: #fff !important; 311 font-size: 12px !important;314 font-size: 9px !important; 312 315 font-weight: 600 !important; 313 line-height: 26px !important;316 line-height: 12px !important; 314 317 text-decoration: none !important; 315 318 text-transform: uppercase !important; 316 padding: 2px 8px !important; 319 padding: 4px !important; 320 opacity: 0.85; 317 321 border-radius: 3px !important; 318 322 border-color: #0062cc !important; … … 376 380 377 381 .trustreviews-rate_us-body { 382 display: flex; 383 align-items: center; 378 384 font-size: 18px; 379 385 } … … 438 444 color: #fb8e28 !important; 439 445 font-weight: 700 !important; 446 } 447 448 #trustreviews-overview-rating .trustreviews-stars { 449 line-height: 12px; 440 450 } 441 451 … … 862 872 text-align: center; 863 873 background: #eee; 874 border-radius: 3px; 864 875 text-transform: uppercase; 865 876 } -
fb-reviews-widget/trunk/assets/src/css/public-main.css
r3406362 r3439940 1 /*-------------------------------- Reset CSS --------------------------------*/ 2 .trustreviews, 3 .trustreviews *, 4 .trustreviews *::before, 5 .trustreviews *::after { 6 box-sizing: border-box; 7 } 8 9 .trustreviews { 10 display: block; 11 direction: ltr; 12 font-size: var(--font-size, 16px); 13 font-family: var(--font-family); 14 font-style: normal; 15 font-weight: normal; 16 text-align: start; 17 line-height: normal; 18 overflow: visible; 19 text-decoration: none; 20 list-style-type: disc; 21 box-sizing: border-box; 22 visibility: visible !important; 23 } 24 25 .trustreviews div, 26 .trustreviews span { 27 margin: 0; 28 padding: 0; 29 color: inherit; 30 font: inherit; 31 line-height: normal; 32 letter-spacing: normal; 33 text-transform: none; 34 text-decoration: none; 35 border: 0; 36 background: transparent; 37 } 38 39 .trustreviews a { 40 color: inherit; 41 text-decoration: none; 42 background: transparent; 43 cursor: pointer; 44 outline: none; 45 } 46 47 .trustreviews a:focus-visible { 48 outline: 2px solid currentColor; 49 outline-offset: 2px; 50 } 51 52 .trustreviews img { 53 display: block; 54 max-width: 100%; 55 height: auto; 56 border: 0; 57 vertical-align: middle; 58 } 59 60 .trustreviews i { 61 font-style: normal; 62 font-weight: inherit; 63 line-height: 0; 64 vertical-align: middle; 65 } 66 67 .trustreviews svg { 68 display: inline-block; 69 width: auto; 70 height: auto; 71 vertical-align: middle; 72 overflow: visible; 73 } 74 75 .trustreviews svg use { 76 opacity: 1; 77 visibility: visible; 78 } 79 80 /*-------------------------------- Main CSS --------------------------------*/ 81 .trustreviews .trustreviews-flex { 82 display: inline-flex; 83 align-items: center; 84 gap: var(--gap, 2px); 85 flex-direction: var(--dir, column); 86 align-items: var(--align, star); 87 flex-wrap: var(--wrap, nowrap); 88 overflow: var(--overflow, visible); 89 } 90 1 91 .trustreviews .trustreviews-rating { 2 92 color: #0866ff !important; 3 93 font-size: 21px !important; 4 font-weight: 600 !important; 5 margin: 0 6px 0 0 !important; 94 font-weight: 700 !important; 6 95 vertical-align: middle !important; 7 } 8 9 .trustreviews .trustreviews-stars svg { 10 display: inline-block !important; 11 width: 22px !important; 12 height: 22px !important; 13 padding: 0 4px 0 0 !important; 14 line-height: 22px !important; 15 vertical-align: middle !important; 16 } 17 18 .trustreviews .trustreviews-stars svg use { 19 fill: #0866ff; 20 color: #0866ff; 21 } 22 23 .trustreviews [data-rev=google] .trustreviews-stars svg use { 24 fill: #fb8e28; 25 color: #fb8e28; 26 } 27 28 .trustreviews [data-rev=yelp] .trustreviews-stars svg use { 29 fill: #d80027; 30 color: #d80027; 96 line-height: normal !important; 31 97 } 32 98 33 99 .trustreviews .trustreviews-powered { 34 100 color: #555 !important; 35 margin: 6px 0 0 !important; 36 } 37 38 .trustreviews .trustreviews-powered[data-platform=google] img { 101 } 102 103 .trustreviews [data-platform=google] .trustreviews-powered img { 39 104 max-width: 144px !important; 40 105 } 41 106 42 .trustreviews .trustreviews-powered[data-platform=yelp]img {107 .trustreviews [data-platform=yelp] .trustreviews-powered img { 43 108 max-height: 25px !important; 44 109 vertical-align: sub !important; 45 110 } 46 111 47 .trustreviews .trustreviews-powered[data-platform=facebook]span {48 color: #0866 FF!important;112 .trustreviews [data-platform=facebook] .trustreviews-powered span { 113 color: #0866ff !important; 49 114 font-weight: 600 !important; 50 115 opacity: 0.8 !important; 51 116 } 52 117 118 .trustreviews [data-platform=tripadvisor] .trustreviews-powered span { 119 color: #5ba672 !important; 120 font-weight: 600 !important; 121 opacity: 0.8 !important; 122 } 123 124 .trustreviews [data-rev=facebook], 125 .trustreviews [data-platform=facebook] { 126 --rpi-star-color: #4569f5; 127 } 128 53 129 .trustreviews .trustreviews-list-review { 130 position: relative; 54 131 margin-top: 15px !important; 55 132 } … … 68 145 } 69 146 70 .trustreviews .trustreviews-left img { 147 .trustreviews .trustreviews-img { 148 min-width: 50px !important; 149 max-width: none !important; 150 height: 50px !important; 151 overflow: hidden !important; 71 152 border: none !important; 72 float: left !important;73 height: 50px !important;74 width: 50px !important;75 margin-right: 10px !important;76 overflow: hidden !important;77 153 border-radius: 50% !important; 78 154 box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24) !important; 155 } 156 157 .trustreviews [data-rev=google] .trustreviews-img { 158 overflow: visible !important; 79 159 } 80 160 … … 93 173 } 94 174 95 .trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left img {96 float: none !important;97 }98 99 .trustreviews .trustreviews-place .trustreviews-stars svg {100 width: 20px !important;101 height: 20px !important;102 vertical-align: middle !important;103 }104 105 175 .trustreviews .trustreviews-name { 106 176 color: black !important; 107 177 font-size: 100% !important; 108 178 font-weight: bold !important; 109 margin: 0 0 2px !important;110 179 padding-right: 6px !important; 111 180 text-decoration: none !important; 181 } 182 183 .trustreviews .trustreviews-review .trustreviews-name { 184 white-space: nowrap; 185 text-overflow: ellipsis; 186 overflow: hidden; 112 187 } 113 188 … … 115 190 color: #427fed !important; 116 191 text-decoration: none !important; 192 } 193 194 .trustreviews .trustreviews-header .trustreviews-name { 195 font-size: 120% !important; 117 196 } 118 197 … … 165 244 } 166 245 167 .trustreviews.wpac .trustreviews-name {168 font-size: 100% !important;169 }170 171 .trustreviews.wpac .trustreviews-hide {172 display: none;173 }174 175 .trustreviews.wpac .trustreviews-name a {176 color: #333 !important;177 font-size: 100% !important;178 text-decoration: none !important;179 }180 181 .trustreviews.wpac .trustreviews-left img {182 width: 50px !important;183 height: 50px !important;184 border-radius: 50% !important;185 }186 187 .trustreviews.wpac a.trustreviews-name {188 color: #154fc1 !important;189 text-decoration: none !important;190 white-space: normal !important;191 text-overflow: ellipsis !important;192 }193 194 .trustreviews.wpac .trustreviews-list-review .trustreviews-stars {195 display: inline-block;196 margin-right: 4px !important;197 }198 199 .trustreviews.wpac.wp-dark .trustreviews-name a {200 color: #eee !important;201 }202 203 246 .trustreviews-fb { 204 padding: 1px;247 padding: 2px; 205 248 width: 16px !important; 206 249 height: 16px !important; … … 209 252 } 210 253 211 /*-------------------------------- row --------------------------------*/ 254 .trustreviews-ta { 255 padding: 3px; 256 width: 16px !important; 257 height: 16px !important; 258 border-radius: 50%; 259 background: #00eb5b !important; 260 } 261 262 .trustreviews-feedback span:first-child { 263 margin-right: 8px; 264 } 265 266 /*-------------------------------- Row --------------------------------*/ 212 267 .trustreviews { 213 268 display: block !important; … … 317 372 .trustreviews .trustreviews-header-inner, 318 373 .trustreviews .trustreviews-review-inner { 374 display: flex; 375 flex-direction: column; 376 gap: 12px; 319 377 position: relative !important; 320 378 margin: 0 10px !important; 321 padding: 1 5px !important;379 padding: 16px !important; 322 380 width: 100% !important; 323 381 } … … 328 386 329 387 .trustreviews .trustreviews-review-inner.trustreviews-round { 330 border-radius: 4px !important;388 border-radius: 12px !important; 331 389 } 332 390 … … 431 489 } 432 490 433 /*-------------------------------- slider overrides --------------------------------*/491 /*-------------------------------- Slider overrides --------------------------------*/ 434 492 .trustreviews .trustreviews-review .trustreviews-left { 435 493 display: block !important; 436 overflow: hidden!important;494 overflow: visible !important; 437 495 white-space: nowrap !important; 438 496 text-overflow: ellipsis !important; … … 447 505 height: 100px !important; 448 506 overflow-y: auto !important; 449 /*padding-right: 10px!important;*/450 507 } 451 508 … … 471 528 } 472 529 473 /*-------------------------------- writereview button --------------------------------*/530 /*-------------------------------- Writereview button --------------------------------*/ 474 531 .trustreviews .trustreviews-wr { 475 margin: 15px auto 8px !important;532 display: flex; 476 533 } 477 534 478 535 .trustreviews .trustreviews-wr a { 479 536 color: #fff !important; 480 padding: 6px 15px 10px !important;537 padding: 4px 12px 8px !important; 481 538 outline: none !important; 482 539 border-radius: 27px !important; … … 509 566 } 510 567 511 /*-------------------------------- slider --------------------------------*/568 /*-------------------------------- Slider --------------------------------*/ 512 569 .trustreviews[data-layout=slider] .trustreviews-reviews { 513 570 margin: 0 20px !important; … … 528 585 } 529 586 530 /*-------------------------------- grid --------------------------------*/587 /*-------------------------------- Grid --------------------------------*/ 531 588 .trustreviews[data-layout=grid] .trustreviews-reviews { 532 589 margin: 10px !important; -
fb-reviews-widget/trunk/assets/src/js/admin-builder.js
r3393291 r3439940 6 6 TrustReviews.Builder = function($, data) { 7 7 8 const TOAST = rpi.Toast({timeout: 25}); 8 9 const AUTOSAVE_KEYUP_TIMEOUT = 1500; 9 10 var AUTOSAVE_TIMEOUT = null; … … 71 72 72 73 '<div class="{slg}-builder-connect {slg}-connect-facebook">' + 73 '<svg viewBox="0 0 100 100" width="24" height="24" style="border-radius:50%;background:#0866 FF;padding:1px;box-sizing:border-box;">' +74 '<svg viewBox="0 0 100 100" width="24" height="24" style="border-radius:50%;background:#0866ff;padding:2px;box-sizing:border-box;">' + 74 75 '<use xlink:href="#{slg}-logo-f"></use>' + 75 76 '</svg>' + … … 82 83 '<div class="{slg}-builder-connect" data-platform="yelp">' + 83 84 '<svg viewBox="0 0 533.33 533.33" width="24" height="24"><use xlink:href="#{slg}-logo-y"></use></svg>' + 85 '</div>' + 86 87 '<div class="{slg}-builder-connect" data-platform="tripadvisor">' + 88 '<svg viewBox="0 0 132 86" width="24" height="24" style="border-radius:50%;background:#00eb5b;padding:3px;box-sizing:border-box;">' + 89 '<use xlink:href="#{slg}-logo-ta"></use>' + 90 '</svg>' + 84 91 '</div>' + 85 92 … … 205 212 '<div class="{slg}-builder-option">' + 206 213 '<label>' + 207 '<input type="checkbox" name="show_round" value="" >' +214 '<input type="checkbox" name="show_round" value="" checked>' + 208 215 'Round reviews borders' + 209 216 '</label>' + … … 290 297 '</div>' + 291 298 292 '<div id="{slg}-connect-wizard" title="Easy steps to connect reviews" style="display:none;">' + 293 '<div data-platform="google">' + 294 /*'<p>' + 295 '<span>1</span> ' + 296 'Find your Google place on the map below (<u class="{slg}-wiz-arr">Enter a location</u>) and copy found <u><b>Place ID</b></u>' + 297 '</p>' + 298 '<iframe src="https://geo-devrel-javascript-samples.web.app/samples/places-placeid-finder/app/dist" loading="lazy" style="width:100%;height:250px"></iframe>' + 299 '<small style="font-size:13px;color:#555">If you can\'t find your place on this map, please read <a href="' + data.supportUrl + '&{slg}_tab=fig#pid" target="_blank">this manual how to find any Google Place ID</a>.</small>' + 300 '<p>' + 301 '<span>2</span> ' + 302 'Paste copied <u><b>Place ID</b></u> in this field and select language if needed' + 303 '</p>' +*/ 304 '<iframe id="grc" src="https://app.trustembed.com/grc?authcode={{authcode}}" style="width:100%;height:400px"></iframe>' + 305 '<small class="grw-connect-error"></small>' + 306 '</div>' + 307 '<div data-platform="yelp">' + 308 '<p>' + 309 '<span>1</span> ' + 310 'Find your Yelp business on yelp.com' + 311 '</p>' + 312 '<p>' + 313 '<span>2</span> ' + 314 'Copy & paste Yelp business URL to the field below' + 315 '</p>' + 316 '<p>' + 317 '<input type="text" class="{slg}-connect-id" value="" placeholder="Yelp business link" />' + lang('Choose language if needed') + 318 '</p>' + 319 '<p>' + 320 '<span>3</span> Click CONNECT REVIEWS button' + 321 '</p>' + 322 '<button class="{slg}-connect-btn">Connect Reviews</button>' + 323 '</div>' + 324 '<small class="{slg}-connect-error"></small>' + 325 '</div>'; 299 '<iframe id="connector" src="https://app.trustembed.com/connect?authcode={{authcode}}&lang={{lang}}" style="display:none;position:absolute;top:0;width:100%;height:100%;"></iframe>'; 326 300 327 301 function feed_save_ajax() { … … 355 329 356 330 if (!el('post_id').value) { 357 var post_id = document.querySelector('.' + data.slg).getAttribute('data-id'); 331 const post_id = document.querySelector('.' + data.slg).getAttribute('data-id'); 332 const toolbar_el = document.querySelector('.' + data.slg + '-toolbar-control'); 333 const label = document.createElement('label'); 334 label.innerHTML = '<span id="' + data.slg + '_sc_msg">Copy Shortcode </span><input id="' + data.slg + '_sc" type="text" value="[' + data.slg + ' id=' + post_id + ']" data-shortcode="[' + data.slg + ' id=' + post_id + ']" onclick="this.select(); document.execCommand(\'copy\'); window.' + data.slg + '_sc_msg.innerHTML = \'Shortcode Copied! Paste on page. \';" readonly="">'; 335 toolbar_el.insertBefore(label, window[data.slg + '_save']); 358 336 el('post_id').value = post_id; 359 window.location.href = window.location.href + '&' + data.slg + '_feed_id=' + post_id + '&' + data.slg + '_feed_new=1';360 } else {361 var $rateus = jq('#rate_us'); 362 if ($rateus.length && !$rateus.hasClass(data.slg + '-flash-visible') && !window[data.slg + '_rateus']) {363 $rateus.addClass(data.slg + '-flash-visible');364 }337 //window.location.href = window.location.href + '&' + data.slg + '_feed_id=' + post_id + '&' + data.slg + '_feed_new=1'; 338 } 339 340 var $rateus = jq('#rate_us'); 341 if ($rateus.length && !$rateus.hasClass(data.slg + '-flash-visible') && !window[data.slg + '_rateus']) { 342 $rateus.addClass(data.slg + '-flash-visible'); 365 343 } 366 344 … … 415 393 } 416 394 417 function connect_ajax(params, authcode, attempt) { 418 419 var platform = params.platform, 420 connect_btn = jq('.connect-btn'); 421 422 el('save').innerText = 'Auto save, wait'; 395 function connect_ajax(params, authcode, attempt, cb) { 396 397 const map_url = params.map_url || params.props.map_url; 398 const platform = params.platform; 399 const connect_btn = jq('.connect-btn'); 400 401 el('save').innerText = 'Auto save, wait...'; 423 402 el('save').disabled = true; 424 403 425 404 $.post(ajaxurl, { 426 id : decodeURIComponent(params.id), 405 map_url : map_url, 406 id : params.id, 427 407 lang : params.lang, 428 local_img : params.local_img || false,408 local_img : params.local_img || true, 429 409 token : params.token, 430 410 feed_id : $('input[name="' + data.slg + '_feed[post_id]"]').val(), … … 434 414 }, function(res) { 435 415 436 console.log('connect_debug:', res); 437 438 //connect_btn[0].innerHTML = 'Connect ' + (platform.charAt(0).toUpperCase() + platform.slice(1)); 439 //connect_btn[0].disabled = false; 440 441 var error_el = jq('.connect-error'); 442 443 if (res.status == 'success') { 444 445 //error_el[0].innerHTML = ''; 446 447 try { jq('#connect-wizard').dialog('close'); } catch (e) {} 448 449 var connection_params = { 416 const msg = []; 417 let msgType = 'success'; 418 419 if (res.error?.message) { 420 msgType = 'error'; 421 msg.push('<b>Error:</b> ' + res.error.message); 422 } 423 424 if (res.quota?.remaining > 0) { 425 msg.push(`<b>${res.quota.remaining} attempts remaining (without your API key).</b>`); 426 } 427 428 if (res.status === 'success' && res.result) { 429 window.connector.style.display = 'none'; 430 connection_add({ 450 431 id : res.result.id, 451 432 lang : params.lang, … … 453 434 photo : res.result.photo, 454 435 refresh : true, 455 local_img : params.local_img ,436 local_img : params.local_img || true, 456 437 platform : platform, 457 438 props : { 458 default_photo : res.result.photo 439 map_url : map_url, 440 default_photo : res.result.photo2 459 441 } 460 }; 461 462 connection_add(connection_params, authcode); 442 }, authcode); 463 443 serialize_connections(); 464 465 } else { 466 467 switch (res.result.error_message) { 468 469 case 'usage_limit': 470 $('#dialog').dialog({width: '50%', maxWidth: '600px'}); 471 break; 472 473 case 'bot_check': 474 if (attempt > 1) { 475 return; 476 } 477 popup(data.gAppUrl + '/botcheck?authcode=' + authcode, 640, 480, function() { 478 connect_ajax(params, authcode, attempt + 1); 479 }); 480 break; 481 482 default: 483 if (res.result.error_message.indexOf('The provided Place ID is no longer valid') >= 0) { 484 error_el[0].innerHTML = 'It seems Google place which you are trying to connect ' + 485 'does not have a physical address (it\'s virtual or service area), ' + 486 'unfortunately, Google Places API does not support such locations, it\'s a limitation of Google, not the plugin.<br><br>' + 487 'However, you can try to connect your Google reviews in our new cloud service ' + 488 '<a href="https://trust.reviews" target="_blank">Trust.Reviews</a> ' + 489 'and show it on your WordPress site through universal <b>HTML/JavaScript</b> code.'; 490 } else { 491 error_el[0].innerHTML = '<b>Error</b>: ' + res.result.error_message; 492 } 493 } 494 } 444 msg.push(`${params.event === 'refresh' ? 'Reviews updated' : 'Widget saved'} successfully.`); 445 } else if (res.quota?.remaining < 1) { 446 msg.push(`Request limit reached. Please try after ${formatResetTime(res.quota.reset_in_seconds)}.`); 447 } 448 449 450 TOAST.show({msg: msg.join('<br>'), type: msgType}); 451 452 cb && cb(); 495 453 496 454 }, 'json'); 455 } 456 457 function formatResetTime(seconds) { 458 if (seconds <= 0) return '0 minutes'; 459 460 const d = Math.floor(seconds / 86400); 461 const h = Math.floor((seconds % 86400) / 3600); 462 const m = Math.ceil((seconds % 3600) / 60); 463 464 if (d) return d + ' day' + (d > 1 ? 's' : '') + (h ? ' ' + h + ' hour' + (h > 1 ? 's' : '') : ''); 465 if (h) return h + ' hour' + (h > 1 ? 's' : ''); 466 return m + ' minute' + (m > 1 ? 's' : ''); 497 467 } 498 468 … … 545 515 function connection_add(conn, authcode, checked) { 546 516 547 var connected_id = connection_id(conn), 548 connected_el = $('#' + connected_id); 549 550 if (!connected_el.length) { 517 const connected_id = connection_id(conn); 518 let connected_el = $('#' + connected_id); 519 520 if (connected_el.length) { 521 connected_el = connected_el[0]; 522 } else { 551 523 connected_el = $('<div class="' + data.slg + '-connection"></div>')[0]; 552 524 connected_el.id = connected_id; 553 if (conn.lang != undefined) {554 connected_el.setAttribute('data-lang', conn.lang);555 }556 525 connected_el.setAttribute('data-platform', conn.platform); 557 connected_el.innerHTML = connection_render(conn, checked);558 526 559 527 var connections_el = jq('.connections')[0]; 560 528 connections_el.appendChild(connected_el); 561 562 jq('.toggle', connected_el).unbind('click').click(function () { 563 $(this).toggleClass('toggled'); 564 $(this).next().slideToggle(); 565 }); 566 567 var file_frame; 568 jq('.connect-photo-change', connected_el).on('click', function(e) { 569 e.preventDefault(); 570 upload_photo(connected_el, file_frame, function() { 571 serialize_connections(); 572 }); 573 return false; 574 }); 575 576 jq('.connect-photo-default', connected_el).on('click', function(e) { 577 change_photo(connected_el, conn.props.default_photo); 578 serialize_connections(); 579 return false; 580 }); 581 582 $('input[type="text"]', connected_el).keyup(function() { 583 clearTimeout(AUTOSAVE_TIMEOUT); 584 AUTOSAVE_TIMEOUT = setTimeout(serialize_connections, AUTOSAVE_KEYUP_TIMEOUT); 585 }); 586 587 $('input[type="checkbox"]', connected_el).click(function() { 529 } 530 531 if (conn.lang != undefined) { 532 connected_el.setAttribute('data-lang', conn.lang); 533 } 534 connected_el.innerHTML = connection_render(conn, checked); 535 536 jq('.toggle', connected_el).unbind('click').click(function () { 537 $(this).toggleClass('toggled'); 538 $(this).next().slideToggle(); 539 }); 540 541 var file_frame; 542 jq('.connect-photo-change', connected_el).on('click', function(e) { 543 e.preventDefault(); 544 upload_photo(connected_el, file_frame, function() { 588 545 serialize_connections(); 589 546 }); 590 591 $('select.' + data.slg + '-connect-lang', connected_el).change(function() { 592 conn.lang = this.value; 593 connected_el.id = connection_id(conn); 594 connected_el.setAttribute('data-lang', this.value); 595 connect_ajax(conn, authcode, 1); 596 return false; 597 }); 598 599 $('input[name="local_img"]', connected_el).unbind('click').click(function() { 600 conn.local_img = this.checked; 601 connect_ajax(conn, authcode, 1); 602 }); 603 604 jq('.connect-reconnect', connected_el).click(function() { 605 connect_ajax(conn, authcode, 1); 606 return false; 607 }); 608 609 jq('.connect-delete', connected_el).click(function() { 610 if (confirm('Are you sure to delete this business?')) { 611 $(connected_el).remove(); 612 serialize_connections(); 613 } 614 return false; 615 }); 616 } 547 return false; 548 }); 549 550 jq('.connect-photo-default', connected_el).on('click', function(e) { 551 change_photo(connected_el, conn.props.default_photo); 552 serialize_connections(); 553 return false; 554 }); 555 556 $('input[type="text"]', connected_el).keyup(function() { 557 clearTimeout(AUTOSAVE_TIMEOUT); 558 AUTOSAVE_TIMEOUT = setTimeout(serialize_connections, AUTOSAVE_KEYUP_TIMEOUT); 559 }); 560 561 $('input[type="checkbox"]', connected_el).click(function() { 562 serialize_connections(); 563 }); 564 565 $('select.' + data.slg + '-connect-lang', connected_el).change(function() { 566 conn.lang = this.value; 567 connected_el.id = connection_id(conn); 568 connected_el.setAttribute('data-lang', this.value); 569 reconnect(conn, authcode, 1); 570 return false; 571 }); 572 573 $('input[name="local_img"]', connected_el).unbind('click').click(function() { 574 conn.local_img = this.checked; 575 reconnect(conn, authcode, 1); 576 }); 577 578 jq('.connect-reconnect', connected_el).click(function() { 579 reconnect(conn, authcode, 1); 580 return false; 581 }); 582 583 jq('.connect-delete', connected_el).click(function() { 584 if (confirm('Are you sure to delete this business?')) { 585 $(connected_el).remove(); 586 serialize_connections(); 587 } 588 return false; 589 }); 590 } 591 592 function reconnect(conn, authcode) { 593 conn.event = 'refresh'; 594 connect_ajax(conn, authcode, 1); 617 595 } 618 596 … … 696 674 '</div>' : '' ) + 697 675 698 (conn.refresh != undefined ? 699 '<div class="{slg}-builder-option">' + 700 '<label>' + 701 '<input type="checkbox" name="refresh" ' + (conn.refresh ? 'checked' : '') + '>' + 702 'Update reviews daily' + 703 '</label>' + 704 '<span class="{slg}-quest {slg}-quest-top {slg}-toggle" title="Click to help">?</span>' + 705 '<div class="{slg}-quest-help">' + 706 (conn.platform == 'google' ? 'The plugin uses the Google Places API to get your reviews. <b>The API only returns the 5 most helpful reviews (it\'s a limitation of Google, not the plugin)</b>. This option calls the Places API once in 24 hours (to keep the plugin\'s free and avoid a Google Billing) to check for a new reviews and if there are, adds to the plugin. Thus slowly building up a database of reviews.<br><br>Also if you see the new reviews on Google map, but after some time it\'s not added to the plugin, it means that Google does not include these reviews to the API and the plugin can\'t get this.<br><br>If you need to show <b>all reviews</b>, please use <a href="https://trust.reviews" target="_blank">Business plugin</a> which uses a Google My Business API without API key and billing.' : '') + 707 (conn.platform == 'yelp' ? 'The plugin uses the Yelp API to get your reviews. <b>The API only returns the 3 most helpful reviews without sorting possibility.</b> When Yelp changes the 3 most helpful the plugin will automatically add the new one to your database. Thus slowly building up a database of reviews.' : '') + 708 '</div>' + 709 '</div>' : '' ) + 710 711 '<div class="{slg}-builder-option">' + 712 '<label>' + 713 '<input type="checkbox" name="local_img" ' + (conn.local_img ? 'checked' : '') + '>' + 676 '<div class="{slg}-builder-option">' + 677 '<label>' + 678 '<input type="checkbox" name="local_img" checked>' + 714 679 'Save images locally (GDPR)' + 715 680 '</label>' + … … 955 920 if (!OPTS_EL) return; 956 921 957 OPTS_EL.innerHTML = HTML_CONTENT.replace(/{slg}/g, data.slg).replace('{{authcode}}', data.authcode) ;922 OPTS_EL.innerHTML = HTML_CONTENT.replace(/{slg}/g, data.slg).replace('{{authcode}}', data.authcode).replace('{{lang}}', data.lang); 958 923 959 924 if (data.conns && data.conns.connections && data.conns.connections.length) { … … 961 926 } 962 927 963 var $connect_wizard_el = jq('#connect-wizard');928 //var $connect_wizard_el = jq('#connect-wizard'); 964 929 965 930 jq('.builder-connect[data-platform]').click(function () { 966 let platform = this.getAttribute('data-platform'); 967 $connect_wizard_el.attr('data-platform', platform); 968 $connect_wizard_el.dialog({modal: true, width: '50%', maxWidth: '600px'}); 931 document.body.appendChild(window.connector); 932 933 const url = new URL(window.connector.src); 934 url.searchParams.set('platform', this.getAttribute('data-platform')); 935 window.connector.src = url.toString(); 936 937 window.connector.style.display = 'block'; 938 window.connector.contentWindow.postMessage({action: 'focus'}, '*'); 939 940 //let platform = this.getAttribute('data-platform'); 941 //$connect_wizard_el.attr('data-platform', platform); 942 //$connect_wizard_el.dialog({modal: true, width: '50%', maxWidth: '600px'}); 969 943 }); 970 944 … … 976 950 switch (data.action) { 977 951 case 'connect': 978 connect_ajax(data, data.authcode, 1); 952 connect_ajax(data, data.authcode, 1, function() { 953 window.connector.contentWindow.postMessage({action: 'connect_done'}, '*'); 954 }); 955 break; 956 case 'close': 957 window.connector.style.display = 'none'; 979 958 break; 980 959 } … … 1016 995 1017 996 jq('#_save').click(function() { 1018 serialize_connections(); 1019 return false; 997 const url = new URL(window.location.href); 998 if (url.searchParams.has(data.slg + '_feed_id')) { 999 serialize_connections(); 1000 return false; 1001 } else { 1002 return true; 1003 } 1020 1004 }); 1021 1005 1006 let _isSubmit = false; 1007 const form = document.querySelector('.' + data.slg + '-builder form'); 1008 form.addEventListener('submit', function () { 1009 _isSubmit = true; 1010 }); 1011 1012 // Confirmation alert before close the page if unautosave 1022 1013 window.addEventListener('beforeunload', function(e) { 1023 if (!AUTOSAVE_TIMEOUT) return undefined;1024 1025 var msg = 'It looks like you have been editing something. If you leave before saving, your changes will be lost.';1026 (e || window.event).returnValue = msg;1027 return msg;1014 const url = new URL(window.location.href); 1015 if (el('post_id').value && !_isSubmit && (!url.searchParams.has(data.slg + '_feed_id') || AUTOSAVE_TIMEOUT)) { 1016 e.preventDefault(); 1017 e.returnValue = ''; 1018 } 1028 1019 }); 1029 1020 } -
fb-reviews-widget/trunk/assets/src/js/admin-main.js
r3406362 r3439940 51 51 52 52 const right = document.createElement('div'); 53 right.className = slg + '- right';53 right.className = slg + '-flex'; 54 54 root.appendChild(right); 55 55 … … 71 71 right.appendChild(feedback); 72 72 73 const stars = this.stars(Number(review.rating) || 0, '#fb8e28', 16); 74 if (typeof stars === 'string') { 75 const swrap = document.createElement('span'); 76 swrap.innerHTML = stars; 77 feedback.appendChild(swrap); 78 } else if (stars instanceof Node) { 79 feedback.appendChild(stars); 80 } 73 const stars = document.createElement('span'); 74 stars.className = 'rpi-stars'; 75 stars.setAttribute('style', '--rpi-fill-percent:' + (review.rating * 20) + '%;--rpi-star-size:16px;vertical-align:middle!important'); 76 feedback.appendChild(stars); 81 77 82 78 const text = document.createElement('span'); … … 406 402 $rating.html( 407 403 ('<div class="{slg}">' + 408 '<div class="{slg}-overview-h">' + place.name + '</div>' + 409 '<div>' + 410 '<span class="{slg}-rating">' + res.rating + '</span>' + 411 '<span class="{slg}-stars">' + TrustReviews.Admin.stars(res.rating, '#fb8e28', 20) + '</span>' + 404 '<div class="{slg}-flex" style="--dir:column;--gap:8px;--align:center">' + 405 '<div class="{slg}-overview-h">' + place.name + '</div>' + 406 '<div class="{slg}-flex" style="--dir:row;--align:center">' + 407 '<span class="{slg}-rating">' + res.rating + '</span>' + 408 '<span class="rpi-stars" style="--rpi-fill-percent:' + (res.rating * 20) + '%"></span>' + 409 '</div>' + 410 '<div class="{slg}-powered">Based on ' + res.review_count + ' reviews</div>' + 411 412 (place.updated ? 413 '<div class="{slg}-powered">Last updated: ' + 414 '<span class="{slg}-time">' + 415 WPacTime.getTime(parseInt(place.updated), TrustReviews.Plugin.lang(), 'ago') + 416 '</span>' + 417 '</div>' : '') + 412 418 '</div>' + 413 '<div class="{slg}-powered">Based on ' + res.review_count + ' reviews</div>' +414 415 (place.updated ?416 '<div class="{slg}-powered">Last updated: ' +417 '<span class="{slg}-time">' +418 WPacTime.getTime(parseInt(place.updated), TrustReviews.Plugin.lang(), 'ago') +419 '</span>' +420 '</div>' : '') +421 419 '</div>').replace(/{slg}/g, slg) 422 420 ); -
fb-reviews-widget/trunk/assets/src/sass/admin-main.scss
r3406362 r3439940 310 310 311 311 .#{$slg} .wp-review-hide { 312 position: absolute; 313 right: 8px; 314 bottom: 8px; 312 315 color: #fff !important; 313 font-size: 12px !important;316 font-size: 9px !important; 314 317 font-weight: 600 !important; 315 line-height: 26px !important;318 line-height: 12px !important; 316 319 text-decoration: none !important; 317 320 text-transform: uppercase !important; 318 padding: 2px 8px !important; 321 padding: 4px !important; 322 opacity: .85; 319 323 border-radius: 3px !important; 320 324 border-color: #0062cc !important; … … 378 382 379 383 .#{$slg}-rate_us-body { 384 display: flex; 385 align-items: center; 380 386 font-size: 18px; 381 387 } … … 440 446 color: #fb8e28 !important; 441 447 font-weight: 700 !important; 448 } 449 450 ##{$slg}-overview-rating .#{$slg}-stars { 451 line-height: 12px; 442 452 } 443 453 … … 867 877 text-align: center; 868 878 background: #eee; 879 border-radius: 3px; 869 880 text-transform: uppercase; 870 881 } -
fb-reviews-widget/trunk/assets/src/sass/public-main.scss
r3406362 r3439940 1 1 $slg: trustreviews; 2 2 3 /*-------------------------------- Reset CSS --------------------------------*/ 4 .#{$slg}, 5 .#{$slg} *, 6 .#{$slg} *::before, 7 .#{$slg} *::after { 8 box-sizing: border-box; 9 } 10 11 .#{$slg} { 12 display: block; 13 direction: ltr; 14 font-size: var(--font-size, 16px); 15 font-family: var(--font-family); 16 font-style: normal; 17 font-weight: normal; 18 text-align: start; 19 line-height: normal; 20 overflow: visible; 21 text-decoration: none; 22 list-style-type: disc; 23 box-sizing: border-box; 24 visibility: visible!important; 25 } 26 27 .#{$slg} div, 28 .#{$slg} span { 29 margin: 0; 30 padding: 0; 31 color: inherit; 32 font: inherit; 33 line-height: normal; 34 letter-spacing: normal; 35 text-transform: none; 36 text-decoration: none; 37 border: 0; 38 background: transparent; 39 } 40 41 .#{$slg} a { 42 color: inherit; 43 text-decoration: none; 44 background: transparent; 45 cursor: pointer; 46 outline: none; 47 } 48 49 .#{$slg} a:focus-visible { 50 outline: 2px solid currentColor; 51 outline-offset: 2px; 52 } 53 54 .#{$slg} img { 55 display: block; 56 max-width: 100%; 57 height: auto; 58 border: 0; 59 vertical-align: middle; 60 } 61 62 .#{$slg} i { 63 font-style: normal; 64 font-weight: inherit; 65 line-height: 0; 66 vertical-align: middle; 67 } 68 69 .#{$slg} svg { 70 display: inline-block; 71 width: auto; 72 height: auto; 73 vertical-align: middle; 74 overflow: visible; 75 } 76 77 .#{$slg} svg use { 78 opacity: 1; 79 visibility: visible; 80 } 81 82 /*-------------------------------- Main CSS --------------------------------*/ 83 .#{$slg} .#{$slg}-flex { 84 display: inline-flex; 85 align-items: center; 86 gap: var(--gap, 2px); 87 flex-direction: var(--dir, column); 88 align-items: var(--align, star); 89 flex-wrap: var(--wrap, nowrap); 90 overflow: var(--overflow, visible); 91 } 92 3 93 .#{$slg} .#{$slg}-rating { 4 color: #0866ff!important; 5 font-size: 21px!important; 6 font-weight: 600!important; 7 margin: 0 6px 0 0!important; 8 vertical-align: middle!important 9 } 10 11 .#{$slg} .#{$slg}-stars svg { 12 display: inline-block!important; 13 width: 22px!important; 14 height: 22px!important; 15 padding: 0 4px 0 0!important; 16 line-height: 22px!important; 17 vertical-align: middle!important 18 } 19 20 .#{$slg} .#{$slg}-stars svg use { 21 fill: #0866ff; 22 color: #0866ff; 23 } 24 25 .#{$slg} [data-rev="google"] .#{$slg}-stars svg use { 26 fill: #fb8e28; 27 color: #fb8e28; 28 } 29 30 .#{$slg} [data-rev="yelp"] .#{$slg}-stars svg use { 31 fill: #d80027; 32 color: #d80027; 94 color: #0866ff !important; 95 font-size: 21px !important; 96 font-weight: 700 !important; 97 vertical-align: middle !important; 98 line-height: normal !important; 33 99 } 34 100 35 101 .#{$slg} .#{$slg}-powered { 36 color: #555!important; 37 margin: 6px 0 0!important 38 } 39 40 .#{$slg} .#{$slg}-powered[data-platform="google"] img { 41 max-width: 144px !important; 42 } 43 44 .#{$slg} .#{$slg}-powered[data-platform="yelp"] img { 45 max-height: 25px !important; 46 vertical-align: sub !important; 47 } 48 49 .#{$slg} .#{$slg}-powered[data-platform="facebook"] span { 50 color: #0866FF !important; 51 font-weight: 600 !important; 52 opacity: 0.8 !important; 102 color: #555 !important; 103 } 104 105 .#{$slg} [data-platform=google] .#{$slg}-powered img { 106 max-width: 144px !important; 107 } 108 109 .#{$slg} [data-platform=yelp] .#{$slg}-powered img { 110 max-height: 25px !important; 111 vertical-align: sub !important; 112 } 113 114 .#{$slg} [data-platform=facebook] .#{$slg}-powered span { 115 color: #0866ff !important; 116 font-weight: 600 !important; 117 opacity: 0.8 !important; 118 } 119 120 .#{$slg} [data-platform=tripadvisor] .#{$slg}-powered span { 121 color: #5ba672 !important; 122 font-weight: 600 !important; 123 opacity: 0.8 !important; 124 } 125 126 .#{$slg} [data-rev="facebook"], 127 .#{$slg} [data-platform="facebook"] { 128 --rpi-star-color: #4569f5; 53 129 } 54 130 55 131 .#{$slg} .#{$slg}-list-review { 56 margin-top: 15px!important 132 position: relative; 133 margin-top: 15px !important; 57 134 } 58 135 59 136 .#{$slg} .#{$slg}-left { 60 display: table-cell!important; 61 vertical-align: top!important 62 } 63 64 [dir="ltr"] .#{$slg}-left { 65 padding-right: 10px!important 66 } 67 68 [dir="rtl"] .#{$slg}-left { 69 padding-left: 10px!important 70 } 71 72 .#{$slg} .#{$slg}-left img { 73 border: none!important; 74 float: left!important; 75 height: 50px!important; 76 width: 50px!important; 77 margin-right: 10px!important; 78 overflow: hidden!important; 79 border-radius: 50%!important; 80 box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)!important 137 display: table-cell !important; 138 vertical-align: top !important; 139 } 140 141 [dir=ltr] .#{$slg}-left { 142 padding-right: 10px !important; 143 } 144 145 [dir=rtl] .#{$slg}-left { 146 padding-left: 10px !important; 147 } 148 149 .#{$slg} .#{$slg}-img { 150 min-width: 50px !important; 151 max-width: none !important; 152 height: 50px !important; 153 overflow: hidden !important; 154 border: none !important; 155 border-radius: 50% !important; 156 box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24) !important; 157 } 158 159 .#{$slg} [data-rev="google"] .#{$slg}-img { 160 overflow: visible!important; 81 161 } 82 162 83 163 .#{$slg} .#{$slg}-right { 84 display: table-cell !important;85 vertical-align: top !important;86 width: 10000px !important164 display: table-cell !important; 165 vertical-align: top !important; 166 width: 10000px !important; 87 167 } 88 168 … … 95 175 } 96 176 97 .#{$slg} .#{$slg}-place.#{$slg}-place-center .#{$slg}-left img {98 float: none !important;99 }100 101 .#{$slg} .#{$slg}-place .#{$slg}-stars svg {102 width: 20px!important;103 height: 20px!important;104 vertical-align: middle!important105 }106 107 177 .#{$slg} .#{$slg}-name { 108 color: black!important; 109 font-size: 100%!important; 110 font-weight: bold!important; 111 margin: 0 0 2px!important; 112 padding-right: 6px!important; 113 text-decoration: none!important 178 color: black !important; 179 font-size: 100% !important; 180 font-weight: bold !important; 181 padding-right: 6px !important; 182 text-decoration: none !important; 183 } 184 185 .#{$slg} .#{$slg}-review .#{$slg}-name { 186 white-space: nowrap; 187 text-overflow: ellipsis; 188 overflow: hidden; 114 189 } 115 190 116 191 .#{$slg} a.#{$slg}-name { 117 color: #427fed!important; 118 text-decoration: none!important 192 color: #427fed !important; 193 text-decoration: none !important; 194 } 195 196 .#{$slg} .#{$slg}-header .#{$slg}-name { 197 font-size: 120% !important; 119 198 } 120 199 121 200 .#{$slg} .#{$slg}-time { 122 color: #555 !important;123 font-size: 13px !important201 color: #555 !important; 202 font-size: 13px !important; 124 203 } 125 204 126 205 .#{$slg} .#{$slg}-text { 127 color: #222 !important;128 font-size: 15px !important;129 line-height: 24px !important;130 max-width: 100% !important;131 overflow: hidden !important;132 white-space: pre-wrap !important;133 word-break: break-word !important206 color: #222 !important; 207 font-size: 15px !important; 208 line-height: 24px !important; 209 max-width: 100% !important; 210 overflow: hidden !important; 211 white-space: pre-wrap !important; 212 word-break: break-word !important; 134 213 } 135 214 136 215 .#{$slg} .#{$slg}-text .#{$slg}-stars { 137 padding-right: 7px !important216 padding-right: 7px !important; 138 217 } 139 218 140 219 .#{$slg} .wp-more { 141 display: none 220 display: none; 142 221 } 143 222 144 223 .#{$slg} .wp-more-toggle { 145 color: #136aaf !important;146 cursor: pointer !important;147 text-decoration: none !important224 color: #136aaf !important; 225 cursor: pointer !important; 226 text-decoration: none !important; 148 227 } 149 228 150 229 .#{$slg} .#{$slg}-url { 151 230 display: block; 152 margin: 10px 0 !important;153 color: #136aaf !important;154 text-align: center !important231 margin: 10px 0 !important; 232 color: #136aaf !important; 233 text-align: center !important; 155 234 } 156 235 157 236 .#{$slg}.wp-dark .#{$slg}-name { 158 color: #eee !important237 color: #eee !important; 159 238 } 160 239 161 240 .#{$slg}.wp-dark .#{$slg}-time { 162 color: #bbb !important241 color: #bbb !important; 163 242 } 164 243 165 244 .#{$slg}.wp-dark .#{$slg}-text { 166 color: #ececec!important 167 } 168 169 .#{$slg}.wpac .#{$slg}-name { 170 font-size: 100%!important 171 } 172 173 .#{$slg}.wpac .#{$slg}-hide { 174 display: none 175 } 176 177 .#{$slg}.wpac .#{$slg}-name a { 178 color: #333!important; 179 font-size: 100%!important; 180 text-decoration: none!important 181 } 182 183 .#{$slg}.wpac .#{$slg}-left img { 184 width: 50px!important; 185 height: 50px!important; 186 border-radius: 50%!important 187 } 188 189 .#{$slg}.wpac a.#{$slg}-name { 190 color: #154fc1!important; 191 text-decoration: none!important; 192 white-space: normal!important; 193 text-overflow: ellipsis!important; 194 } 195 196 .#{$slg}.wpac .#{$slg}-list-review .#{$slg}-stars { 197 display: inline-block; 198 margin-right: 4px!important 199 } 200 201 .#{$slg}.wpac.wp-dark .#{$slg}-name a { 202 color: #eee!important 245 color: #ececec !important; 203 246 } 204 247 205 248 .#{$slg}-fb { 206 padding: 1px; 207 width: 16px!important; 208 height: 16px!important; 209 border-radius: 50%; 210 background: #0866ff!important; 211 } 212 213 /*-------------------------------- row --------------------------------*/ 249 padding: 2px; 250 width: 16px !important; 251 height: 16px !important; 252 border-radius: 50%; 253 background: #0866ff !important; 254 } 255 256 .#{$slg}-ta { 257 padding: 3px; 258 width: 16px !important; 259 height: 16px !important; 260 border-radius: 50%; 261 background: #00eb5b !important; 262 } 263 264 .#{$slg}-feedback span:first-child { 265 margin-right: 8px; 266 } 267 268 /*-------------------------------- Row --------------------------------*/ 214 269 .#{$slg} { 215 display: block !important;216 width: 100% !important;217 padding-bottom: 20px !important;218 text-align: left !important;219 direction: ltr !important;220 box-sizing: border-box !important;270 display: block !important; 271 width: 100% !important; 272 padding-bottom: 20px !important; 273 text-align: left !important; 274 direction: ltr !important; 275 box-sizing: border-box !important; 221 276 } 222 277 223 278 .#{$slg} .#{$slg}-row { 224 display: -ms-flexbox !important;225 display: flex !important;226 flex-wrap: nowrap !important;227 align-items: center !important;228 -ms-flex-wrap: nowrap !important;229 -ms-flex-align: center !important;279 display: -ms-flexbox !important; 280 display: flex !important; 281 flex-wrap: nowrap !important; 282 align-items: center !important; 283 -ms-flex-wrap: nowrap !important; 284 -ms-flex-align: center !important; 230 285 } 231 286 232 287 /*-------------------------------- Row cols --------------------------------*/ 233 288 .#{$slg} .#{$slg}-row-xs { 234 -ms-flex-wrap: wrap !important;235 flex-wrap: wrap !important;289 -ms-flex-wrap: wrap !important; 290 flex-wrap: wrap !important; 236 291 } 237 292 … … 309 364 /*-------------------------------- Reviews --------------------------------*/ 310 365 .#{$slg} .#{$slg}-content { 311 position: relative !important;312 min-width: 0 !important;366 position: relative !important; 367 min-width: 0 !important; 313 368 } 314 369 315 370 .#{$slg} .#{$slg}-content-inner { 316 position: relative !important;371 position: relative !important; 317 372 } 318 373 319 374 .#{$slg} .#{$slg}-header-inner, 320 375 .#{$slg} .#{$slg}-review-inner { 321 position: relative!important; 322 margin: 0 10px!important; 323 padding: 15px!important; 324 width: 100%!important; 376 display: flex; 377 flex-direction: column; 378 gap: 12px; 379 position: relative !important; 380 margin: 0 10px !important; 381 padding: 16px !important; 382 width: 100% !important; 325 383 } 326 384 327 385 .#{$slg}:not(.wp-dark) .#{$slg}-review-inner.#{$slg}-backgnd { 328 background: #fafafa !important;386 background: #fafafa !important; 329 387 } 330 388 331 389 .#{$slg} .#{$slg}-review-inner.#{$slg}-round { 332 border-radius: 4px!important390 border-radius: 12px !important; 333 391 } 334 392 335 393 .#{$slg} .#{$slg}-review-inner.#{$slg}-shadow { 336 box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)!important394 box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24) !important; 337 395 } 338 396 339 397 .#{$slg} .#{$slg}-review-inner > svg { 340 position: absolute !important;341 top: 10px !important;342 right: 10px !important;343 width: 18px !important;344 height: 18px !important;398 position: absolute !important; 399 top: 10px !important; 400 right: 10px !important; 401 width: 18px !important; 402 height: 18px !important; 345 403 } 346 404 347 405 .#{$slg} .#{$slg}-reviews { 348 display: flex !important;349 display: -ms-flexbox !important;350 overflow: hidden !important;406 display: flex !important; 407 display: -ms-flexbox !important; 408 overflow: hidden !important; 351 409 scrollbar-width: none; 352 410 } 353 411 354 412 .#{$slg} .#{$slg}-reviews::-webkit-scrollbar { 355 display: none !important;413 display: none !important; 356 414 } 357 415 358 416 .#{$slg} .#{$slg}-review { 359 417 display: flex; 360 position: relative !important;361 justify-content: center !important;362 align-items: center !important;363 flex-shrink: 0 !important;418 position: relative !important; 419 justify-content: center !important; 420 align-items: center !important; 421 flex-shrink: 0 !important; 364 422 } 365 423 366 424 /*-------------------------------- Slider buttons --------------------------------*/ 367 425 .#{$slg} .#{$slg}-controls { 368 position: absolute !important;369 top: 50% !important;370 width: 100% !important;426 position: absolute !important; 427 top: 50% !important; 428 width: 100% !important; 371 429 } 372 430 373 431 .#{$slg} .#{$slg}-btns { 374 position: absolute!important; 375 height: 33px!important; 376 width: 33px!important; 377 text-align: center!important; 378 cursor: pointer!important; 379 border-radius: 50%!important; 380 user-select: none!important; 381 transition: all .2s ease-in-out!important; 382 } 432 position: absolute !important; 433 height: 33px !important; 434 width: 33px !important; 435 text-align: center !important; 436 cursor: pointer !important; 437 border-radius: 50% !important; 438 user-select: none !important; 439 transition: all 0.2s ease-in-out !important; 440 } 441 383 442 .#{$slg} .#{$slg}-btns svg path { 384 443 fill: #aaa; 385 444 } 445 386 446 .#{$slg} .#{$slg}-btns:hover svg path { 387 fill: #555!important; 388 } 447 fill: #555 !important; 448 } 449 389 450 .#{$slg} .#{$slg}-btns.#{$slg}-prev { 390 left: 0px!important; 391 margin-left: -5px!important; 392 } 451 left: 0px !important; 452 margin-left: -5px !important; 453 } 454 393 455 .#{$slg} .#{$slg}-btns.#{$slg}-next { 394 right: 0px !important;395 margin-right: -5px !important;456 right: 0px !important; 457 margin-right: -5px !important; 396 458 } 397 459 398 460 /*-------------------------------- Slider dots --------------------------------*/ 399 461 .#{$slg} .#{$slg}-dots { 400 position: absolute !important;401 left: 50% !important;462 position: absolute !important; 463 left: 50% !important; 402 464 display: flex !important; 403 465 gap: 12px !important; 404 466 align-items: center !important; 405 transform: translate(-50%, 0) !important;406 text-align: center !important;467 transform: translate(-50%, 0) !important; 468 text-align: center !important; 407 469 } 408 470 409 471 .#{$slg} .#{$slg}-dot { 410 display: inline-block !important;472 display: inline-block !important; 411 473 width: 6px !important; 412 474 height: 6px !important; 413 background: #cccccc !important;414 border-radius: 20px !important;415 cursor: pointer !important;416 opacity: 0.4 !important;417 transition: all .2s ease-in-out!important;475 background: #cccccc !important; 476 border-radius: 20px !important; 477 cursor: pointer !important; 478 opacity: 0.4 !important; 479 transition: all 0.2s ease-in-out !important; 418 480 } 419 481 420 482 .#{$slg} .#{$slg}-dot:hover { 421 opacity: 1 !important;483 opacity: 1 !important; 422 484 } 423 485 … … 425 487 width: 8px !important; 426 488 height: 8px !important; 427 opacity: 1 !important;489 opacity: 1 !important; 428 490 background: #427fed !important; 429 491 } 430 492 431 /*-------------------------------- slider overrides --------------------------------*/493 /*-------------------------------- Slider overrides --------------------------------*/ 432 494 .#{$slg} .#{$slg}-review .#{$slg}-left { 433 display: block !important;434 overflow: hidden!important;435 white-space: nowrap !important;436 text-overflow: ellipsis !important;495 display: block !important; 496 overflow: visible !important; 497 white-space: nowrap !important; 498 text-overflow: ellipsis !important; 437 499 line-height: 24px !important; 438 500 } 439 501 440 502 .#{$slg} .#{$slg}-review .#{$slg}-stars { 441 margin: 15px 0 7px !important;503 margin: 15px 0 7px !important; 442 504 } 443 505 444 506 .#{$slg} .#{$slg}-review .#{$slg}-feedback { 445 height: 100px!important; 446 overflow-y: auto!important; 447 /*padding-right: 10px!important;*/ 507 height: 100px !important; 508 overflow-y: auto !important; 448 509 } 449 510 450 511 .#{$slg} .#{$slg}-review .#{$slg}-feedback::-webkit-scrollbar { 451 width: 4px !important;512 width: 4px !important; 452 513 } 453 514 454 515 .#{$slg} .#{$slg}-review .#{$slg}-feedback::-webkit-scrollbar-track { 455 -webkit-box-shadow: inset 0 0 6px rgba(0, 0,0,0.3)!important;456 -webkit-border-radius: 4px !important;457 border-radius: 4px !important;516 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3) !important; 517 -webkit-border-radius: 4px !important; 518 border-radius: 4px !important; 458 519 } 459 520 460 521 .#{$slg} .#{$slg}-review .#{$slg}-feedback::-webkit-scrollbar-thumb { 461 -webkit-border-radius: 10px !important;462 border-radius: 10px !important;463 background: #ccc !important;464 -webkit-box-shadow: inset 0 0 6px rgba(0, 0,0,0.5)!important;522 -webkit-border-radius: 10px !important; 523 border-radius: 10px !important; 524 background: #ccc !important; 525 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5) !important; 465 526 } 466 527 467 528 .#{$slg} .#{$slg}-review .#{$slg}-feedback::-webkit-scrollbar-thumb:window-inactive { 468 background: #ccc !important;469 } 470 471 /*-------------------------------- writereview button --------------------------------*/529 background: #ccc !important; 530 } 531 532 /*-------------------------------- Writereview button --------------------------------*/ 472 533 .#{$slg} .#{$slg}-wr { 473 margin: 15px auto 8px !important;534 display: flex; 474 535 } 475 536 476 537 .#{$slg} .#{$slg}-wr a { 477 color: #fff !important;478 padding: 6px 15px 10px!important;538 color: #fff !important; 539 padding: 4px 12px 8px !important; 479 540 outline: none !important; 480 border-radius: 27px !important;481 background: #0a6cff !important;482 white-space: nowrap !important;483 text-shadow: 1px 1px 0 #888 !important;484 box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)!important;485 user-select: none !important;486 transition: all .2s ease-in-out!important;541 border-radius: 27px !important; 542 background: #0a6cff !important; 543 white-space: nowrap !important; 544 text-shadow: 1px 1px 0 #888 !important; 545 box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24) !important; 546 user-select: none !important; 547 transition: all 0.2s ease-in-out !important; 487 548 } 488 549 489 550 .#{$slg} .#{$slg}-wr a:hover { 490 background: #1f67e7 !important;491 box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 3px 5px rgba(0, 0, 0, .24)!important;551 background: #1f67e7 !important; 552 box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 3px 5px rgba(0, 0, 0, 0.24) !important; 492 553 } 493 554 494 555 .#{$slg} .#{$slg}-wr a:active { 495 background: #0a6cff !important;496 box-shadow: none !important;556 background: #0a6cff !important; 557 box-shadow: none !important; 497 558 } 498 559 … … 507 568 } 508 569 509 /*-------------------------------- slider --------------------------------*/510 .#{$slg}[data-layout= "slider"] .#{$slg}-reviews {511 margin: 0 20px !important;512 padding: 10px 0 15px !important;513 overflow-x: scroll !important;514 flex-wrap: nowrap !important;515 -ms-flex-wrap: nowrap !important;516 scroll-snap-type: x mandatory !important;517 scroll-behavior: smooth !important;518 -webkit-overflow-scrolling: touch !important;519 } 520 521 .#{$slg}[data-layout= "slider"] .#{$slg}-review {522 scroll-snap-align: start !important;523 transform-origin: center center !important;524 transform: scale(1) !important;525 transition: transform 0.5s !important;526 } 527 528 /*-------------------------------- grid --------------------------------*/529 .#{$slg}[data-layout= "grid"] .#{$slg}-reviews {530 margin: 10px !important;531 padding: 0 !important;570 /*-------------------------------- Slider --------------------------------*/ 571 .#{$slg}[data-layout=slider] .#{$slg}-reviews { 572 margin: 0 20px !important; 573 padding: 10px 0 15px !important; 574 overflow-x: scroll !important; 575 flex-wrap: nowrap !important; 576 -ms-flex-wrap: nowrap !important; 577 scroll-snap-type: x mandatory !important; 578 scroll-behavior: smooth !important; 579 -webkit-overflow-scrolling: touch !important; 580 } 581 582 .#{$slg}[data-layout=slider] .#{$slg}-review { 583 scroll-snap-align: start !important; 584 transform-origin: center center !important; 585 transform: scale(1) !important; 586 transition: transform 0.5s !important; 587 } 588 589 /*-------------------------------- Grid --------------------------------*/ 590 .#{$slg}[data-layout=grid] .#{$slg}-reviews { 591 margin: 10px !important; 592 padding: 0 !important; 532 593 flex-wrap: wrap !important; 533 -ms-flex-wrap: wrap !important;534 } 535 536 .#{$slg}[data-layout= "grid"] .#{$slg}-review-inner {537 margin: 10px !important;538 } 539 540 .#{$slg}[data-layout= "grid"] .#{$slg}-header-inner {541 margin: 0 10px !important;542 padding: 0 !important;543 } 594 -ms-flex-wrap: wrap !important; 595 } 596 597 .#{$slg}[data-layout=grid] .#{$slg}-review-inner { 598 margin: 10px !important; 599 } 600 601 .#{$slg}[data-layout=grid] .#{$slg}-header-inner { 602 margin: 0 10px !important; 603 padding: 0 !important; 604 } -
fb-reviews-widget/trunk/fbrev.php
r3406362 r3439940 4 4 Plugin URI: https://wordpress.org/plugins/fb-reviews-widget 5 5 Description: Combine Google reviews, Yelp reviews and Facebook Recommendations in a single widget, block or shortcode. Build a trusted website! 6 Version: 2. 66 Version: 2.7 7 7 Author: Trust.Reviews <[email protected]> 8 8 Author URI: https://trust.reviews -
fb-reviews-widget/trunk/includes/class-activator.php
r3038815 r3439940 34 34 35 35 public function register() { 36 add_action('init', array($this, 'check_version')); 37 add_filter('https_ssl_verify', '__return_false'); 38 add_filter('block_local_requests', '__return_false'); 36 add_action('init', array($this, 'init')); 37 } 38 39 public function init() { 40 if (is_admin()) { 41 $this->check_version(); 42 } 39 43 } 40 44 … … 79 83 update_option(Plugin::SLG . '_revupd_cron', '1'); 80 84 } elseif ($last_active_version !== $current_version) { 81 $this->exist_install($current_version, $last_active_version); 82 update_option(Plugin::SLG . '_version', $current_version); 83 update_option(Plugin::SLG . '_revupd_cron', '1'); 85 $this->exist_install($last_active_version); 86 if (get_option(Plugin::SLG . '_debug_mode') !== '1') { 87 update_option(Plugin::SLG . '_version', $current_version); 88 update_option(Plugin::SLG . '_revupd_cron', '1'); 89 } 84 90 } 85 91 } … … 92 98 } 93 99 94 private function exist_install($ current_version, $last_active_version) {100 private function exist_install($last_active_version) { 95 101 $this->update_db($last_active_version); 96 102 } … … 99 105 global $wpdb; 100 106 101 switch($last_active_version) { 102 case version_compare($last_active_version, '2.0', '<'): 103 $this->first_install(); 104 } 107 if (version_compare($last_active_version, '2.0', '<')) { 108 $this->first_install(); 109 } 110 111 if (version_compare($last_active_version, '2.7', '<')) { 112 113 $rev = $wpdb->prefix . Database::REVIEW_TABLE; 114 $biz = $wpdb->prefix . Database::BUSINESS_TABLE; 115 116 // add column map_url 117 $columns = $wpdb->get_col("SHOW COLUMNS FROM {$biz}", 0); 118 if (!in_array('map_url', $columns, true)) { 119 $wpdb->query("ALTER TABLE {$biz} ADD map_url VARCHAR(512)"); 120 } 121 122 // add columns images, reply, reply_time 123 $columns = array_flip( 124 $wpdb->get_col("SHOW COLUMNS FROM {$rev}", 0) 125 ); 126 foreach ([ 127 'review_id' => 'VARCHAR(64)', 128 'images' => 'TEXT', 129 'reply' => 'TEXT', 130 'reply_time' => 'INTEGER' 131 ] as $col => $type) { 132 if (!isset($columns[$col])) { 133 $wpdb->query("ALTER TABLE {$rev} ADD {$col} {$type}"); 134 } 135 } 136 137 // set default platform google 138 $wpdb->query("UPDATE {$rev} SET platform = 'google' WHERE platform IS NULL OR platform = ''"); 139 140 // set review_id 141 $wpdb->query( 142 "UPDATE {$rev} r 143 JOIN {$biz} b ON b.id = r.biz_id 144 SET r.review_id = MD5(CONCAT( 145 r.platform, ':', b.pid, ':', 146 COALESCE( 147 NULLIF(r.author_url, ''), 148 CONCAT(COALESCE(NULLIF(r.author_name, ''), ''), ':', r.time) 149 ) 150 )) 151 WHERE r.review_id IS NULL OR r.review_id = ''" 152 ); 153 154 $this->database->create_text_table(); 155 $this->database->migrate_review_texts(); 156 } 157 158 /*if (version_compare($last_active_version, '2.8', '<')) { 159 160 $rev = $wpdb->prefix . Database::REVIEW_TABLE; 161 162 // remove duplicates 163 $wpdb->query("DELETE r1 FROM {$rev} r1 INNER JOIN {$rev} r2 ON r1.platform = r2.platform AND r1.review_id = r2.review_id AND r1.id < r2.id"); 164 165 // add index platform and review_id 166 $idx = Plugin::PFX . 'platform_review_idx'; 167 $exists = $wpdb->get_var("SHOW INDEX FROM {$rev} WHERE Key_name = '{$idx}'"); 168 if (!$exists) { 169 $wpdb->query("ALTER TABLE {$rev} ADD UNIQUE INDEX {$idx} (platform, review_id)"); 170 } 171 }*/ 105 172 } 106 173 … … 164 231 * Delete all options of the plugin on a multisite 165 232 */ 166 public function delete_all_options($multisite = false ) {233 public function delete_all_options($multisite = false, $except = array()) { 167 234 $network_wide = get_option(Plugin::SLG . '_is_multisite'); 168 235 if ($multisite && $network_wide) { 169 $this->delete_all_options_multisite( );170 } else { 171 $this->delete_all_options_single_site( );172 } 173 } 174 175 private function delete_all_options_multisite( ) {176 global $wpdb; 177 178 $site_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs"); 179 180 foreach($site_ids as $site_id) { 181 switch_to_blog($site_id); 182 $this->delete_all_options_single_site( );183 restore_current_blog(); 184 } 185 } 186 187 private function delete_all_options_single_site( ) {236 $this->delete_all_options_multisite($except); 237 } else { 238 $this->delete_all_options_single_site($except); 239 } 240 } 241 242 private function delete_all_options_multisite($except = array()) { 243 global $wpdb; 244 245 $site_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs"); 246 247 foreach($site_ids as $site_id) { 248 switch_to_blog($site_id); 249 $this->delete_all_options_single_site($except); 250 restore_current_blog(); 251 } 252 } 253 254 private function delete_all_options_single_site($except = array()) { 188 255 foreach ($this->options() as $opt) { 189 delete_option($opt); 256 if (!in_array($opt, $except)) { 257 delete_option($opt); 258 } 190 259 } 191 260 } -
fb-reviews-widget/trunk/includes/class-assets.php
r3041780 r3439940 10 10 11 11 private static $css_assets = array( 12 //'rpi-star-yelp-css' => 'https://cdn.reviewsplugin.com/assets/css/star-yelp.css', 13 'rpi-star-yelp-css' => 'https://cdn.reviewsplugin.com/assets/css/stars.css', 12 14 Plugin::SLG . '-admin-main-css' => 'css/admin-main', 13 Plugin::SLG . '-public-clean-css' => 'css/public-clean',15 //Plugin::SLG . '-public-clean-css' => 'css/public-clean', 14 16 Plugin::SLG . '-public-main-css' => 'css/public-main', 15 17 ); 16 18 17 19 private static $js_assets = array( 20 'rpi-toast-js' => 'https://cdn.reviewsplugin.com/assets/js/toast.js', 18 21 Plugin::SLG . '-admin-main-js' => 'js/admin-main', 19 22 Plugin::SLG . '-admin-builder-js' => 'js/admin-builder', 20 23 Plugin::SLG . '-admin-apexcharts-js' => 'js/admin-apexcharts', 21 24 Plugin::SLG . '-public-time-js' => 'js/public-time', 22 Plugin::SLG . '-public-main-js' => 'js/public-main' ,25 Plugin::SLG . '-public-main-js' => 'js/public-main' 23 26 ); 24 27 … … 72 75 public function register_styles() { 73 76 $styles = array( 77 'rpi-star-yelp-css', 74 78 Plugin::SLG . '-admin-main-css', 75 79 Plugin::SLG . '-public-main-css' 76 80 ); 77 if ($this->debug) {81 /*if ($this->debug) { 78 82 array_push($styles, Plugin::SLG . '-public-clean-css'); 79 } 83 }*/ 80 84 $this->register_styles_loop($styles); 81 85 } … … 83 87 public function register_scripts() { 84 88 $scripts = array( 89 'rpi-toast-js', 85 90 Plugin::SLG . '-admin-main-js', 86 91 Plugin::SLG . '-public-main-js', … … 116 121 117 122 if ($this->debug) { 123 wp_enqueue_script('rpi-toast-js'); 118 124 wp_enqueue_script(Plugin::SLG . '-admin-builder-js'); 119 125 } … … 126 132 public function enqueue_public_styles() { 127 133 if ($this->debug) { 128 wp_enqueue_style(Plugin::SLG . '-public-clean-css'); 129 wp_style_add_data(Plugin::SLG . '-public-clean-css', 'rtl', 'replace'); 134 wp_enqueue_style('rpi-star-yelp-css'); 135 //wp_enqueue_style(Plugin::SLG . '-public-clean-css'); 136 //wp_style_add_data(Plugin::SLG . '-public-clean-css', 'rtl', 'replace'); 130 137 } 131 138 wp_enqueue_style(Plugin::SLG . '-public-main-css'); … … 153 160 154 161 public function get_css_asset($asset) { 155 return $this->url . ($this->debug ? 'src/' : '') . self::$css_assets[$asset] . '.css'; 162 $css = self::$css_assets[$asset]; 163 return strpos($css, 'https:') === 0 ? $css : $this->url . ($this->debug ? 'src/' : '') . $css . '.css'; 156 164 } 157 165 158 166 public function get_js_asset($asset) { 159 $ src = $this->debug && !strrpos($asset, 'apexcharts') ? 'src/' : '';160 return $this->url . $src . self::$js_assets[$asset]. '.js';167 $js = self::$js_assets[$asset]; 168 return strpos($js, 'https:') === 0 ? $js : $this->url . ($this->debug ? 'src/' : '') . $js . '.js'; 161 169 } 162 170 -
fb-reviews-widget/trunk/includes/class-builder-page.php
r3251386 r3439940 165 165 slg : '<?php echo Plugin::SLG; ?>', 166 166 opt_el : '#{slg}-builder-option', 167 lang : '<?php echo get_locale(); ?>', 167 168 authcode : '<?php echo get_option(Plugin::SLG . '_auth_code'); ?>', 168 169 fbAppUrl : '<?php echo Plugin::FB_APP_URL; ?>', -
fb-reviews-widget/trunk/includes/class-plugin-settings.php
r3125572 r3439940 31 31 $activation_time = get_option(Plugin::SLG . '_activation_time'); 32 32 $debug_mode = get_option(Plugin::SLG . '_debug_mode') == '1'; 33 $debug_display = $debug_mode ? 'flex' : 'none'; 33 34 34 35 $revupd_cron = get_option(Plugin::SLG . '_revupd_cron') == '1'; … … 173 174 </div> 174 175 </div> 175 <div class="{slg}-field" style="display:none"> 176 <div class="{slg}-field-label"> 177 <label>Debug mode is currently <b><?php echo $debug_mode ? 'enabled' : 'disabled' ?></b></label> 178 </div> 179 <div class="wp-review-field-option"> 180 <?php wp_nonce_field(Plugin::SLG . '-wpnonce_debug_mode', Plugin::SLG . '-form_nonce_debug_mode'); ?> 181 <input type="submit" name="debug_mode" class="button" value="<?php echo $debug_mode ? 'Disable' : 'Enable'; ?>" /> 182 </div> 183 </div> 184 <div class="{slg}-field" style="display:none"> 176 <div class="{slg}-field" style="display:<?php echo $debug_display; ?>"> 185 177 <div class="{slg}-field-label"> 186 178 <label>Execute db update manually</label> … … 192 184 </div> 193 185 </div> 186 <div class="{slg}-field" style="display:<?php echo $debug_display; ?>"> 187 <div class="{slg}-field-label"> 188 <label>Debug mode is currently <b><?php echo $debug_mode ? 'enabled' : 'disabled' ?></b></label> 189 </div> 190 <div class="wp-review-field-option"> 191 <?php wp_nonce_field(Plugin::SLG . '-wpnonce_debug_mode', Plugin::SLG . '-form_nonce_debug_mode'); ?> 192 <input type="submit" name="debug_mode" class="button" value="<?php echo $debug_mode ? 'Disable' : 'Enable'; ?>" /> 193 </div> 194 </div> 194 195 </form> 195 196 </div> -
fb-reviews-widget/trunk/includes/class-plugin.php
r3406362 r3439940 10 10 use WP_TrustReviews\Includes\Admin\Admin_Rateus_Ajax; 11 11 12 use WP_TrustReviews\Includes\Core\Google_Dao; 13 use WP_TrustReviews\Includes\Core\Connect_Helper; 12 14 use WP_TrustReviews\Includes\Core\Core; 13 15 use WP_TrustReviews\Includes\Core\Connect_Google; … … 16 18 final class Plugin { 17 19 18 const VER = '2. 6';20 const VER = '2.7'; 19 21 const SLG = 'trustreviews'; 20 const PFX = 'trustreviews_';22 const PFX = self::SLG . '_'; 21 23 const NAME = 'fb-reviews-widget'; 22 24 … … 127 129 $feed_block->register(); 128 130 129 $connect_google = new Connect_Google($helper); 131 $connect_helper = new Connect_Helper(); 132 $google_dao = new Google_Dao($connect_helper); 133 $connect_google = new Connect_Google($helper, $google_dao, $connect_helper); 130 134 131 135 $reviews_cron = new Reviews_Cron($connect_google, $feed_deserializer); … … 187 191 188 192 public function deactivate() { 189 $this->deactivator->deactivate(); 193 $hook = Plugin::SLG . '_revupd_schedule'; 194 $next_scheduled = wp_next_scheduled($hook); 195 196 if ($next_scheduled) { 197 wp_unschedule_event($next_scheduled, $hook); 198 update_option(Plugin::SLG . '_revupd_cron_timeout', ''); 199 } 190 200 } 191 201 } -
fb-reviews-widget/trunk/includes/class-reviews-cron.php
r3021668 r3439940 81 81 82 82 // Clear feed cache 83 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $id . '_reviews' , false);83 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $id . '_reviews'); 84 84 85 85 // Check execution time -
fb-reviews-widget/trunk/includes/class-settings-save.php
r3125572 r3439940 77 77 78 78 if (isset($_POST['reset_all'])) { 79 $reset_all_multisite = sanitize_text_field(wp_unslash($_POST['reset_all_multisite']));79 $reset_all_multisite = isset($_POST['reset_all_multisite']) ? sanitize_text_field(wp_unslash($_POST['reset_all_multisite'])) : null; 80 80 $this->activator->drop_db($reset_all_multisite); 81 $this->activator->delete_all_options($reset_all_multisite );81 $this->activator->delete_all_options($reset_all_multisite, array(Plugin::SLG . '_debug_mode')); 82 82 $this->activator->delete_all_feeds($reset_all_multisite); 83 83 $this->reviews_cron->deactivate(); -
fb-reviews-widget/trunk/includes/class-view-svg.php
r3406362 r3439940 27 27 <path d="M317.119,340.347c-9.001,9.076-1.39,25.586-1.39,25.586l67.757,113.135c0,0,11.124,14.915,20.762,14.915 c9.683,0,19.246-7.952,19.246-7.952l53.567-76.567c0,0,5.395-9.658,5.52-18.12c0.193-12.034-17.947-15.33-17.947-15.33 l-126.816-40.726C337.815,335.292,325.39,331.994,317.119,340.347z M310.69,283.325c6.489,11.004,24.389,7.798,24.389,7.798 l126.532-36.982c0,0,17.242-7.014,19.704-16.363c2.415-9.352-2.845-20.637-2.845-20.637l-60.468-71.225 c0,0-5.24-9.006-16.113-9.912c-11.989-1.021-19.366,13.489-19.366,13.489l-71.494,112.505 C311.029,261.999,304.709,273.203,310.69,283.325z M250.91,239.461c14.9-3.668,17.265-25.314,17.265-25.314l-1.013-180.14 c0,0-2.247-22.222-12.232-28.246c-15.661-9.501-20.303-4.541-24.79-3.876l-105.05,39.033c0,0-10.288,3.404-15.646,11.988 c-7.651,12.163,7.775,29.972,7.775,29.972l109.189,148.831C226.407,231.708,237.184,242.852,250.91,239.461z M224.967,312.363 c0.376-13.894-16.682-22.239-16.682-22.239L95.37,233.079c0,0-16.732-6.899-24.855-2.091c-6.224,3.677-11.738,10.333-12.277,16.216 l-7.354,90.528c0,0-1.103,15.685,2.963,22.821c5.758,10.128,24.703,3.074,24.703,3.074L210.37,334.49 C215.491,331.048,224.471,330.739,224.967,312.363z M257.746,361.219c-11.315-5.811-24.856,6.224-24.856,6.224l-88.265,97.17 c0,0-11.012,14.858-8.212,23.982c2.639,8.552,7.007,12.802,13.187,15.797l88.642,27.982c0,0,10.747,2.231,18.884-0.127 c11.552-3.349,9.424-21.433,9.424-21.433l2.003-131.563C268.552,379.253,268.101,366.579,257.746,361.219z" fill="#D80027"/> 28 28 </g> 29 <g id="{slg}-logo-ta" height="44" width="44" fill="none" fill-rule="evenodd"> 30 <path fill="#002B11" d="M44.508 49.657c0 6.436-5.218 11.654-11.653 11.654s-11.653-5.218-11.653-11.654c0-6.435 5.218-11.654 11.653-11.654s11.653 5.218 11.653 11.654m54.028-11.654c-6.435 0-11.653 5.218-11.653 11.654S92.1 61.311 98.536 61.311s11.653-5.218 11.653-11.654c-.002-6.432-5.215-11.647-11.647-11.65zm32.855 11.654c0 18.136-14.715 32.84-32.855 32.84a32.7 32.7 0 0 1-22.31-8.74L65.71 85.196 55.19 73.744a32.7 32.7 0 0 1-22.317 8.754C14.746 82.497.036 67.792.036 49.656a32.75 32.75 0 0 1 10.71-24.27L0 13.693h23.876c25.263-17.195 58.467-17.195 83.73 0h23.814l-10.745 11.692a32.75 32.75 0 0 1 10.716 24.271m-76.305 0c0-12.274-9.95-22.225-22.223-22.225S10.64 37.383 10.64 49.657s9.95 22.225 22.223 22.225 22.222-9.948 22.223-22.222zm35.284-33.18a64.13 64.13 0 0 0-49.326 0c14.03 5.37 24.667 17.915 24.667 32.54 0-14.624 10.635-27.17 24.66-32.538zm30.395 33.18c0-12.274-9.95-22.225-22.223-22.225s-22.223 9.95-22.223 22.224S86.268 71.88 98.54 71.88s22.223-9.95 22.223-22.225"/> 31 </g> 29 32 <g id="{slg}-dots" fill="none" fill-rule="evenodd" width="12" height="12"> 30 33 <circle cx="6" cy="3" r="1" fill="#000"/> -
fb-reviews-widget/trunk/includes/class-view.php
r3406362 r3439940 35 35 36 36 ?> 37 <div class="{slg} wpac<?php if ($options->dark_theme) { ?> wp-dark<?php } ?>"<?php if ($style) { ?> style="<?php echo $style;?>"<?php } ?> data-id="<?php echo $feed_id; ?>" data-layout="<?php echo $options->view_mode; ?>" data-exec="false">37 <div class="{slg}<?php if ($options->dark_theme) { ?> wp-dark<?php } ?>"<?php if ($style) { ?> style="<?php echo $style;?>"<?php } ?> data-id="<?php echo $feed_id; ?>" data-layout="<?php echo $options->view_mode; ?>" data-exec="false"> 38 38 <?php 39 39 switch ($options->view_mode) { … … 49 49 $this->view_svg->render(); 50 50 ?> 51 <span class="{slg}-hide" style="display:none"><style><?php if (is_rtl()) { ?>:root{--rpi-star-size:22px;--rpi-star-color:#fb8e28;--rpi-star-empty:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z' fill='none' stroke='%23cccccc' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");--rpi-star-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.7881 3.21068C11.2364 2.13274 12.7635 2.13273 13.2118 3.21068L15.2938 8.2164L20.6979 8.64964C21.8616 8.74293 22.3335 10.1952 21.4469 10.9547L17.3295 14.4817L18.5874 19.7551C18.8583 20.8908 17.6229 21.7883 16.6266 21.1798L11.9999 18.3538L7.37329 21.1798C6.37697 21.7883 5.14158 20.8908 5.41246 19.7551L6.67038 14.4817L2.55303 10.9547C1.66639 10.1952 2.13826 8.74293 3.302 8.64964L8.70609 8.2164L10.7881 3.21068Z'/%3E%3C/svg%3E")}.rpi-star,.rpi-stars-tripadvisor,.rpi-stars-yelp{display:flex;align-items:center;gap:4px}.rpi-star[data-rating]::before{content:attr(data-rating);color:var(--rpi-star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-star[data-rating]::after{content:'';width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-position:center!important;-webkit-mask-size:contain!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-position:center!important;mask-size:contain!important}.rpi-stars{--stars:5;--stars-max:5;position:relative!important;display:inline-block!important;width:calc(var(--stars) * var(--rpi-star-size))!important;height:var(--rpi-star-size)!important;background-color:transparent!important;background-image:var(--rpi-star-empty)!important;background-repeat:repeat-x!important;background-position:right center!important;background-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-star+.rpi-stars{--stars-offset:1;--stars:calc(var(--stars-max) - var(--stars-offset))}.rpi-stars::before{content:''!important;position:absolute!important;inset:0!important;width:clamp(0%,calc(((var(--rating) - var(--stars-offset,0))/ (var(--stars-max) - var(--stars-offset,0))) * 100%),100%)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:repeat-x!important;-webkit-mask-position:left center!important;-webkit-mask-size:var(--rpi-star-size) var(--rpi-star-size)!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:repeat-x!important;mask-position:left center!important;mask-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-stars-yelp{--empty-color:#cccccc;--five-color:#fb433c;--four-color:#ff643d;--three-color:#ff8742;--two-color:#ffad48;--one-color:#ffcc4b;--rpi-star-size:20px;--rating:0;--gap:3px;--radius:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-yelp i{position:relative!important;display:inline-block!important;font-style:normal!important;flex:0 0 auto!important;width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;border-radius:var(--radius)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(-90deg,var(--star-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important;box-sizing:border-box!important}.rpi-stars-yelp i::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:70% 70%!important;mask-position:center!important}.rpi-stars-yelp[data-rating]::before{content:attr(data-rating);color:var(--star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-yelp i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-yelp i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-yelp i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-yelp i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-yelp i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-yelp[data-stars^="1"]{--rating:1.5;--star-color:var(--one-color)}.rpi-stars-yelp[data-stars="1"]{--rating:1}.rpi-stars-yelp[data-stars^="2"]{--rating:2.5;--star-color:var(--two-color)}.rpi-stars-yelp[data-stars="2"]{--rating:2}.rpi-stars-yelp[data-stars^="3"]{--rating:3.5;--star-color:var(--three-color)}.rpi-stars-yelp[data-stars="3"]{--rating:3}.rpi-stars-yelp[data-stars^="4"]{--rating:4.5;--star-color:var(--four-color)}.rpi-stars-yelp[data-stars="4"]{--rating:4}.rpi-stars-yelp[data-stars^="5"]{--rating:5;--star-color:var(--five-color)}.rpi-stars-tripadvisor{--empty-color:#ffffff;--border-color:#5ba672;--fill-color:#5ba672;--rpi-dot-size:18px;--rating:0;--gap:4px;--border:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-tripadvisor i{width:var(--rpi-dot-size)!important;height:var(--rpi-dot-size)!important;display:inline-block!important;position:relative!important;flex:0 0 auto!important;box-sizing:border-box!important;border-radius:999px!important;border:var(--border) solid var(--border-color)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(-90deg,var(--fill-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important}.rpi-stars-tripadvisor[data-rating]::before{content:attr(data-rating);color:var(--fill-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-tripadvisor i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-tripadvisor[data-stars^="1"]{--rating:1.5}.rpi-stars-tripadvisor[data-stars="1"]{--rating:1}.rpi-stars-tripadvisor[data-stars^="2"]{--rating:2.5}.rpi-stars-tripadvisor[data-stars="2"]{--rating:2}.rpi-stars-tripadvisor[data-stars^="3"]{--rating:3.5}.rpi-stars-tripadvisor[data-stars="3"]{--rating:3}.rpi-stars-tripadvisor[data-stars^="4"]{--rating:4.5}.rpi-stars-tripadvisor[data-stars="4"]{--rating:4}.rpi-stars-tripadvisor[data-stars^="5"]{--rating:5}.rpi-star-fb{--size:18px;--color:#fa3e3e;--radius:2px;--tail:6px;position:relative!important;display:flex!important;align-items:center!important;width:var(--size);height:var(--size);background-color:var(--color)!important;border-radius:var(--radius);white-space:nowrap!important;font-size:calc(var(--size) - 2px)!important;line-height:1!important;vertical-align:middle!important;text-indent:calc(var(--size) + 6px)!important}.rpi-star-fb[data-rating="1"]{--color:#cccccc}.rpi-star-fb::before{content:'';position:absolute;right:4px;bottom:-4px;width:0;height:0;border-top:5px solid var(--color);border-left:6px solid transparent}.rpi-star-fb::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:60% 60%!important;mask-position:center!important}.trustreviews,.trustreviews *,.trustreviews ::after,.trustreviews ::before{box-sizing:border-box}.trustreviews{display:block;direction:rtl;font-size:var(--font-size, 16px);font-family:var(--font-family);font-style:normal;font-weight:400;text-align:start;line-height:normal;overflow:visible;text-decoration:none;list-style-type:disc;box-sizing:border-box;visibility:visible!important}.trustreviews div,.trustreviews span{margin:0;padding:0;color:inherit;font:inherit;line-height:normal;letter-spacing:normal;text-transform:none;text-decoration:none;border:0;background:100% 0}.trustreviews a{color:inherit;text-decoration:none;background:100% 0;cursor:pointer;outline:0}.trustreviews a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.trustreviews img{display:block;max-width:100%;height:auto;border:0;vertical-align:middle}.trustreviews i{font-style:normal;font-weight:inherit;line-height:0;vertical-align:middle}.trustreviews svg{display:inline-block;width:auto;height:auto;vertical-align:middle;overflow:visible}.trustreviews svg use{opacity:1;visibility:visible}.trustreviews .trustreviews-flex{display:inline-flex;align-items:center;gap:var(--gap,2px);flex-direction:var(--dir,column);align-items:var(--align,star);flex-wrap:var(--wrap,nowrap);overflow:var(--overflow,visible)}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:700!important;vertical-align:middle!important;line-height:normal!important}.trustreviews .trustreviews-powered{color:#555!important}.trustreviews [data-platform=google] .trustreviews-powered img{max-width:144px!important}.trustreviews [data-platform=yelp] .trustreviews-powered img{max-height:25px!important;vertical-align:sub!important}.trustreviews [data-platform=facebook] .trustreviews-powered span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=tripadvisor] .trustreviews-powered span{color:#5ba672!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=facebook],.trustreviews [data-rev=facebook]{--rpi-star-color:#4569f5}.trustreviews .trustreviews-list-review{position:relative;margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-left:10px!important}[dir=rtl] .trustreviews-left{padding-right:10px!important}.trustreviews .trustreviews-img{min-width:50px!important;max-width:none!important;height:50px!important;overflow:hidden!important;border:none!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews [data-rev=google] .trustreviews-img{overflow:visible!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;padding-left:6px!important;text-decoration:none!important}.trustreviews .trustreviews-review .trustreviews-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-header .trustreviews-name{font-size:120%!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-left:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews-fb{padding:2px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews-ta{padding:3px;width:16px!important;height:16px!important;border-radius:50%;background:#00eb5b!important}.trustreviews-feedback span:first-child{margin-left:8px}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:right!important;direction:rtl!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{display:flex;flex-direction:column;gap:12px;position:relative!important;margin:0 10px!important;padding:16px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:12px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;left:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;right:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:visible!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{display:flex}.trustreviews .trustreviews-wr a{color:#fff!important;padding:4px 12px 8px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:-1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 4px 0 0;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important}<?php } else { ?>:root{--rpi-star-size:22px;--rpi-star-color:#fb8e28;--rpi-star-empty:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z' fill='none' stroke='%23cccccc' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");--rpi-star-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.7881 3.21068C11.2364 2.13274 12.7635 2.13273 13.2118 3.21068L15.2938 8.2164L20.6979 8.64964C21.8616 8.74293 22.3335 10.1952 21.4469 10.9547L17.3295 14.4817L18.5874 19.7551C18.8583 20.8908 17.6229 21.7883 16.6266 21.1798L11.9999 18.3538L7.37329 21.1798C6.37697 21.7883 5.14158 20.8908 5.41246 19.7551L6.67038 14.4817L2.55303 10.9547C1.66639 10.1952 2.13826 8.74293 3.302 8.64964L8.70609 8.2164L10.7881 3.21068Z'/%3E%3C/svg%3E")}.rpi-star,.rpi-stars-tripadvisor,.rpi-stars-yelp{display:flex;align-items:center;gap:4px}.rpi-star[data-rating]::before{content:attr(data-rating);color:var(--rpi-star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-star[data-rating]::after{content:'';width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-position:center!important;-webkit-mask-size:contain!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-position:center!important;mask-size:contain!important}.rpi-stars{--stars:5;--stars-max:5;position:relative!important;display:inline-block!important;width:calc(var(--stars) * var(--rpi-star-size))!important;height:var(--rpi-star-size)!important;background-color:transparent!important;background-image:var(--rpi-star-empty)!important;background-repeat:repeat-x!important;background-position:left center!important;background-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-star+.rpi-stars{--stars-offset:1;--stars:calc(var(--stars-max) - var(--stars-offset))}.rpi-stars::before{content:''!important;position:absolute!important;inset:0!important;width:clamp(0%,calc(((var(--rating) - var(--stars-offset,0))/ (var(--stars-max) - var(--stars-offset,0))) * 100%),100%)!important;background-color:var(--rpi-star-color)!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:repeat-x!important;-webkit-mask-position:left center!important;-webkit-mask-size:var(--rpi-star-size) var(--rpi-star-size)!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:repeat-x!important;mask-position:left center!important;mask-size:var(--rpi-star-size) var(--rpi-star-size)!important}.rpi-stars-yelp{--empty-color:#cccccc;--five-color:#fb433c;--four-color:#ff643d;--three-color:#ff8742;--two-color:#ffad48;--one-color:#ffcc4b;--rpi-star-size:20px;--rating:0;--gap:3px;--radius:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-yelp i{position:relative!important;display:inline-block!important;font-style:normal!important;flex:0 0 auto!important;width:var(--rpi-star-size)!important;height:var(--rpi-star-size)!important;border-radius:var(--radius)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(90deg,var(--star-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important;box-sizing:border-box!important}.rpi-stars-yelp i::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:70% 70%!important;mask-position:center!important}.rpi-stars-yelp[data-rating]::before{content:attr(data-rating);color:var(--star-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-yelp i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-yelp i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-yelp i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-yelp i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-yelp i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-yelp[data-stars^="1"]{--rating:1.5;--star-color:var(--one-color)}.rpi-stars-yelp[data-stars="1"]{--rating:1}.rpi-stars-yelp[data-stars^="2"]{--rating:2.5;--star-color:var(--two-color)}.rpi-stars-yelp[data-stars="2"]{--rating:2}.rpi-stars-yelp[data-stars^="3"]{--rating:3.5;--star-color:var(--three-color)}.rpi-stars-yelp[data-stars="3"]{--rating:3}.rpi-stars-yelp[data-stars^="4"]{--rating:4.5;--star-color:var(--four-color)}.rpi-stars-yelp[data-stars="4"]{--rating:4}.rpi-stars-yelp[data-stars^="5"]{--rating:5;--star-color:var(--five-color)}.rpi-stars-tripadvisor{--empty-color:#ffffff;--border-color:#5ba672;--fill-color:#5ba672;--rpi-dot-size:18px;--rating:0;--gap:4px;--border:3px;display:inline-flex!important;gap:var(--gap)!important;line-height:0!important;vertical-align:top!important}.rpi-stars-tripadvisor i{width:var(--rpi-dot-size)!important;height:var(--rpi-dot-size)!important;display:inline-block!important;position:relative!important;flex:0 0 auto!important;box-sizing:border-box!important;border-radius:999px!important;border:var(--border) solid var(--border-color)!important;background-color:var(--empty-color)!important;background-image:linear-gradient(90deg,var(--fill-color) 0 calc(var(--fill,0) * 1%),transparent calc(var(--fill,0) * 1%))!important;background-repeat:no-repeat!important;background-size:100% 100%!important}.rpi-stars-tripadvisor[data-rating]::before{content:attr(data-rating);color:var(--fill-color);font-size:var(--head-grade-fs, 18px);font-weight:var(--head-grade-weight,900)}.rpi-stars-tripadvisor i:first-child{--fill:clamp(0, (var(--rating) - 0) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(2){--fill:clamp(0, (var(--rating) - 1) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(3){--fill:clamp(0, (var(--rating) - 2) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(4){--fill:clamp(0, (var(--rating) - 3) * 100, 100)}.rpi-stars-tripadvisor i:nth-child(5){--fill:clamp(0, (var(--rating) - 4) * 100, 100)}.rpi-stars-tripadvisor[data-stars^="1"]{--rating:1.5}.rpi-stars-tripadvisor[data-stars="1"]{--rating:1}.rpi-stars-tripadvisor[data-stars^="2"]{--rating:2.5}.rpi-stars-tripadvisor[data-stars="2"]{--rating:2}.rpi-stars-tripadvisor[data-stars^="3"]{--rating:3.5}.rpi-stars-tripadvisor[data-stars="3"]{--rating:3}.rpi-stars-tripadvisor[data-stars^="4"]{--rating:4.5}.rpi-stars-tripadvisor[data-stars="4"]{--rating:4}.rpi-stars-tripadvisor[data-stars^="5"]{--rating:5}.rpi-star-fb{--size:18px;--color:#fa3e3e;--radius:2px;--tail:6px;position:relative!important;display:flex!important;align-items:center!important;width:var(--size);height:var(--size);background-color:var(--color)!important;border-radius:var(--radius);white-space:nowrap!important;font-size:calc(var(--size) - 2px)!important;line-height:1!important;vertical-align:middle!important;text-indent:calc(var(--size) + 6px)!important}.rpi-star-fb[data-rating="1"]{--color:#cccccc}.rpi-star-fb::before{content:'';position:absolute;left:4px;bottom:-4px;width:0;height:0;border-top:5px solid var(--color);border-right:6px solid transparent}.rpi-star-fb::after{content:''!important;position:absolute!important;inset:0!important;background-color:#fff!important;-webkit-mask-image:var(--rpi-star-mask)!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-size:70% 70%!important;-webkit-mask-position:center!important;mask-image:var(--rpi-star-mask)!important;mask-repeat:no-repeat!important;mask-size:60% 60%!important;mask-position:center!important}.trustreviews,.trustreviews *,.trustreviews ::after,.trustreviews ::before{box-sizing:border-box}.trustreviews{display:block;direction:ltr;font-size:var(--font-size, 16px);font-family:var(--font-family);font-style:normal;font-weight:400;text-align:start;line-height:normal;overflow:visible;text-decoration:none;list-style-type:disc;box-sizing:border-box;visibility:visible!important}.trustreviews div,.trustreviews span{margin:0;padding:0;color:inherit;font:inherit;line-height:normal;letter-spacing:normal;text-transform:none;text-decoration:none;border:0;background:0 0}.trustreviews a{color:inherit;text-decoration:none;background:0 0;cursor:pointer;outline:0}.trustreviews a:focus-visible{outline:2px solid currentColor;outline-offset:2px}.trustreviews img{display:block;max-width:100%;height:auto;border:0;vertical-align:middle}.trustreviews i{font-style:normal;font-weight:inherit;line-height:0;vertical-align:middle}.trustreviews svg{display:inline-block;width:auto;height:auto;vertical-align:middle;overflow:visible}.trustreviews svg use{opacity:1;visibility:visible}.trustreviews .trustreviews-flex{display:inline-flex;align-items:center;gap:var(--gap,2px);flex-direction:var(--dir,column);align-items:var(--align,star);flex-wrap:var(--wrap,nowrap);overflow:var(--overflow,visible)}.trustreviews .trustreviews-rating{color:#0866ff!important;font-size:21px!important;font-weight:700!important;vertical-align:middle!important;line-height:normal!important}.trustreviews .trustreviews-powered{color:#555!important}.trustreviews [data-platform=google] .trustreviews-powered img{max-width:144px!important}.trustreviews [data-platform=yelp] .trustreviews-powered img{max-height:25px!important;vertical-align:sub!important}.trustreviews [data-platform=facebook] .trustreviews-powered span{color:#0866ff!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=tripadvisor] .trustreviews-powered span{color:#5ba672!important;font-weight:600!important;opacity:.8!important}.trustreviews [data-platform=facebook],.trustreviews [data-rev=facebook]{--rpi-star-color:#4569f5}.trustreviews .trustreviews-list-review{position:relative;margin-top:15px!important}.trustreviews .trustreviews-left{display:table-cell!important;vertical-align:top!important}[dir=ltr] .trustreviews-left{padding-right:10px!important}[dir=rtl] .trustreviews-left{padding-left:10px!important}.trustreviews .trustreviews-img{min-width:50px!important;max-width:none!important;height:50px!important;overflow:hidden!important;border:none!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews [data-rev=google] .trustreviews-img{overflow:visible!important}.trustreviews .trustreviews-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.trustreviews .trustreviews-place.trustreviews-place-center{text-align:center!important}.trustreviews .trustreviews-place.trustreviews-place-center .trustreviews-left{display:block!important}.trustreviews .trustreviews-name{color:#000!important;font-size:100%!important;font-weight:700!important;padding-right:6px!important;text-decoration:none!important}.trustreviews .trustreviews-review .trustreviews-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trustreviews a.trustreviews-name{color:#427fed!important;text-decoration:none!important}.trustreviews .trustreviews-header .trustreviews-name{font-size:120%!important}.trustreviews .trustreviews-time{color:#555!important;font-size:13px!important}.trustreviews .trustreviews-text{color:#222!important;font-size:15px!important;line-height:24px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.trustreviews .trustreviews-text .trustreviews-stars{padding-right:7px!important}.trustreviews .wp-more{display:none}.trustreviews .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.trustreviews .trustreviews-url{display:block;margin:10px 0!important;color:#136aaf!important;text-align:center!important}.trustreviews.wp-dark .trustreviews-name{color:#eee!important}.trustreviews.wp-dark .trustreviews-time{color:#bbb!important}.trustreviews.wp-dark .trustreviews-text{color:#ececec!important}.trustreviews-fb{padding:2px;width:16px!important;height:16px!important;border-radius:50%;background:#0866ff!important}.trustreviews-ta{padding:3px;width:16px!important;height:16px!important;border-radius:50%;background:#00eb5b!important}.trustreviews-feedback span:first-child{margin-right:8px}.trustreviews{display:block!important;width:100%!important;padding-bottom:20px!important;text-align:left!important;direction:ltr!important;box-sizing:border-box!important}.trustreviews .trustreviews-row{display:-ms-flexbox!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;-ms-flex-wrap:nowrap!important;-ms-flex-align:center!important}.trustreviews .trustreviews-row-xs{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-xs .trustreviews-content,.trustreviews .trustreviews-row-xs .trustreviews-header,.trustreviews .trustreviews-row-xs .trustreviews-review{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.trustreviews .trustreviews-row-xl .trustreviews-header+.trustreviews-content{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.trustreviews .trustreviews-row-l .trustreviews-header+.trustreviews-content{-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content{-ms-flex:0 0 66.666666%;flex:0 0 66.666666%;max-width:66.666666%}.trustreviews .trustreviews-row-s .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-x .trustreviews-header,.trustreviews .trustreviews-row-x .trustreviews-header+.trustreviews-content,.trustreviews .trustreviews-row-x .trustreviews-review{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.trustreviews .trustreviews-row-m .trustreviews-header+.trustreviews-content .trustreviews-review,.trustreviews .trustreviews-row-s .trustreviews-header,.trustreviews .trustreviews-row-s .trustreviews-review{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.trustreviews .trustreviews-row-l .trustreviews-review,.trustreviews .trustreviews-row-m .trustreviews-header,.trustreviews .trustreviews-row-m .trustreviews-review{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.trustreviews .trustreviews-row-l .trustreviews-header,.trustreviews .trustreviews-row-xl .trustreviews-review{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.trustreviews .trustreviews-row-xl .trustreviews-header{-ms-flex:0 0 16.666666%;flex:0 0 16.666666%;max-width:16.666666%}.trustreviews .trustreviews-content{position:relative!important;min-width:0!important}.trustreviews .trustreviews-content-inner{position:relative!important}.trustreviews .trustreviews-header-inner,.trustreviews .trustreviews-review-inner{display:flex;flex-direction:column;gap:12px;position:relative!important;margin:0 10px!important;padding:16px!important;width:100%!important}.trustreviews:not(.wp-dark) .trustreviews-review-inner.trustreviews-backgnd{background:#fafafa!important}.trustreviews .trustreviews-review-inner.trustreviews-round{border-radius:12px!important}.trustreviews .trustreviews-review-inner.trustreviews-shadow{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-review-inner>svg{position:absolute!important;top:10px!important;right:10px!important;width:18px!important;height:18px!important}.trustreviews .trustreviews-reviews{display:flex!important;display:-ms-flexbox!important;overflow:hidden!important;scrollbar-width:none}.trustreviews .trustreviews-reviews::-webkit-scrollbar{display:none!important}.trustreviews .trustreviews-review{display:flex;position:relative!important;justify-content:center!important;align-items:center!important;flex-shrink:0!important}.trustreviews .trustreviews-controls{position:absolute!important;top:50%!important;width:100%!important}.trustreviews .trustreviews-btns{position:absolute!important;height:33px!important;width:33px!important;text-align:center!important;cursor:pointer!important;border-radius:50%!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-btns svg path{fill:#aaa}.trustreviews .trustreviews-btns:hover svg path{fill:#555!important}.trustreviews .trustreviews-btns.trustreviews-prev{left:0!important;margin-left:-5px!important}.trustreviews .trustreviews-btns.trustreviews-next{right:0!important;margin-right:-5px!important}.trustreviews .trustreviews-dots{position:absolute!important;left:50%!important;display:flex!important;gap:12px!important;align-items:center!important;transform:translate(-50%,0)!important;text-align:center!important}.trustreviews .trustreviews-dot{display:inline-block!important;width:6px!important;height:6px!important;background:#ccc!important;border-radius:20px!important;cursor:pointer!important;opacity:.4!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-dot:hover{opacity:1!important}.trustreviews .trustreviews-dot.active{width:8px!important;height:8px!important;opacity:1!important;background:#427fed!important}.trustreviews .trustreviews-review .trustreviews-left{display:block!important;overflow:visible!important;white-space:nowrap!important;text-overflow:ellipsis!important;line-height:24px!important}.trustreviews .trustreviews-review .trustreviews-stars{margin:15px 0 7px!important}.trustreviews .trustreviews-review .trustreviews-feedback{height:100px!important;overflow-y:auto!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar{width:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)!important}.trustreviews .trustreviews-review .trustreviews-feedback::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.trustreviews .trustreviews-wr{display:flex}.trustreviews .trustreviews-wr a{color:#fff!important;padding:4px 12px 8px!important;outline:0!important;border-radius:27px!important;background:#0a6cff!important;white-space:nowrap!important;text-shadow:1px 1px 0 #888!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important;user-select:none!important;transition:all .2s ease-in-out!important}.trustreviews .trustreviews-wr a:hover{background:#1f67e7!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 3px 5px rgba(0,0,0,.24)!important}.trustreviews .trustreviews-wr a:active{background:#0a6cff!important;box-shadow:none!important}.trustreviews .trustreviews-wr a svg{display:inline-block;width:16px;height:16px;padding:1px;margin:0 0 0 4px;background:#fff;border-radius:50%}.trustreviews[data-layout=slider] .trustreviews-reviews{margin:0 20px!important;padding:10px 0 15px!important;overflow-x:scroll!important;flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important}.trustreviews[data-layout=slider] .trustreviews-review{scroll-snap-align:start!important;transform-origin:center center!important;transform:scale(1)!important;transition:transform .5s!important}.trustreviews[data-layout=grid] .trustreviews-reviews{margin:10px!important;padding:0!important;flex-wrap:wrap!important;-ms-flex-wrap:wrap!important}.trustreviews[data-layout=grid] .trustreviews-review-inner{margin:10px!important}.trustreviews[data-layout=grid] .trustreviews-header-inner{margin:0 10px!important;padding:0!important}<?php } ?>.{slg}-hide{display:none!important}</style></span> 51 52 </div> 52 53 <?php … … 70 71 <div class="{slg}-header"> 71 72 <div class="{slg}-header-inner"> 72 <div class="{slg}- place<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?>">73 <div class="{slg}-flex<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?>" style="--gap:12px;--dir:row;"> 73 74 <?php $this->place( 74 75 $businesses[0]->rating, … … 112 113 <div class="{slg}-header"> 113 114 <div class="{slg}-header-inner"> 114 <div class="{slg}- place<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?>">115 <div class="{slg}-flex<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?>" style="--gap:12px;--dir:row;"> 115 116 <?php $this->place( 116 117 $businesses[0]->rating, … … 165 166 ?> 166 167 <div class="{slg}-list"> 167 <?php foreach ($businesses as $business) { ?> 168 <div class="{slg}-place<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?>"> 169 <?php $this->place( 170 $business->rating, 171 $business, 172 $business->photo, 173 $reviews, 174 $options 175 ); ?> 176 </div> 177 <?php } 178 if (!$options->hide_reviews) { ?> 168 <div class="{slg}-flex" style="--dir:row;--align:center;--gap:12px;--wrap:wrap"> 169 <?php foreach ($businesses as $business) { ?> 170 <div class="{slg}-place<?php if ($options->header_center) { ?> {slg}-place-center<?php } ?> {slg}-flex" style="--dir:row;--align:star;--gap:12px"> 171 <?php $this->place( 172 $business->rating, 173 $business, 174 $business->photo, 175 $reviews, 176 $options 177 ); ?> 178 </div> 179 <?php } ?> 180 </div> 181 <?php if (!$options->hide_reviews) { ?> 179 182 <div class="{slg}-content-inner"> 180 183 <?php $this->place_reviews($reviews, $options, $is_admin); ?> … … 188 191 ?> 189 192 <?php if (!$options->header_hide_photo) { ?> 190 <div class="{slg}-left"> 191 <img src="<?php echo esc_url($place_img); ?>" alt="<?php echo esc_attr($place->name); ?>" width="50" height="50" title="<?php echo esc_attr($place->name); ?>"> 192 </div> 193 <img src="<?php echo esc_url($place_img); ?>" class="{slg}-img" alt="<?php echo esc_attr($place->name); ?>" width="50" height="50" title="<?php echo esc_attr($place->name); ?>"> 193 194 <?php } ?> 194 <div class="{slg}- right">195 <div class="{slg}-flex" data-platform="<?php echo $place->provider; ?>" style="--dir:column;--gap:8px"> 195 196 <?php if (!$options->header_hide_name) { ?> 196 197 <div class="{slg}-name"> … … 200 201 <?php } ?> 201 202 202 <?php $this->place_rating($rating, $place->review_count, $ options->hide_based_on); ?>203 <?php $this->place_rating($rating, $place->review_count, $place->provider, $options->hide_based_on); ?> 203 204 204 205 <?php if ($show_powered) { $this->powered($place, $options); } ?> … … 215 216 } 216 217 217 function place_rating($rating, $review_count, $hide_based_on) { 218 ?> 219 <div> 220 <span class="{slg}-rating"><?php echo $rating; ?></span> 221 <span class="{slg}-stars"><?php $this->stars($rating); ?></span> 218 function place_rating($rating, $review_count, $provider, $hide_based_on) { 219 ?> 220 <div class="{slg}-flex" style="--gap:0;--dir:row;--align:center"> 221 <?php $this->stars($rating, $provider, true) ?> 222 222 </div> 223 223 <?php if (!$hide_based_on && isset($review_count)) { ?> … … 259 259 <div class="{slg}-list-review<?php echo $addcls; ?><?php if ($hr) { echo ' {slg}-hide'; } ?>" data-rev="<?php echo $review->provider; ?>"> 260 260 <?php if (!$options->hide_avatar) { ?> 261 <div class="{slg}- left">261 <div class="{slg}-flex" style="--dir:row;--align:star;--gap:12px"> 262 262 <?php 263 263 $default_avatar = Plugin::ASSETS_URL() . 'img/guest.png'; … … 271 271 $default_avatar = str_replace('s128', 's' . $options->reviewer_avatar_size, $default_avatar); 272 272 } 273 $this->image($author_img, $review->author_name, $options->lazy_load_img, $default_avatar);273 $this->image($author_img, '{slg}-img', $review->author_name, $options->lazy_load_img, $default_avatar); 274 274 ?> 275 </div> 276 <?php } ?> 277 <div class="{slg}-right"> 278 <?php 279 if (strlen($review->author_url) > 0) { 280 $this->anchor($review->author_url, '{slg}-name', $review->author_name, $options->open_link, $options->nofollow_link); 281 } else { 282 if (strlen($review->author_name) > 0) { 283 $author_name = $review->author_name; 275 <div class="{slg}-flex" style="--dir:column;--align:star;--gap:4px"> 276 <?php 277 if (strlen($review->author_url) > 0) { 278 $this->anchor($review->author_url, '{slg}-name', $review->author_name, $options->open_link, $options->nofollow_link); 284 279 } else { 285 $author_name = __('Google User', Plugin::NAME); 280 if (strlen($review->author_name) > 0) { 281 $author_name = $review->author_name; 282 } else { 283 $author_name = __('Google User', Plugin::NAME); 284 } 285 ?><div class="{slg}-name"><?php echo $author_name; ?></div><?php 286 286 } 287 ?> <div class="{slg}-name"><?php echo $author_name; ?></div><?php288 }289 ?>290 <div class="{slg}-time" data-time="<?php echo $review->time; ?>"><?php echo esc_html(gmdate("H:i d M y", (int)$review->time)); ?></div>291 <div class="{slg}-feedback">292 < span class="{slg}-stars"><?php echo $this->stars($review->rating); ?></span>293 < span class="{slg}-text"><?php echo $this->trim_text($review->text, $options->text_size); ?></span>294 </div>295 <?php if ($is_admin) {296 echo '<a href="#" class="wp-review-hide" data-id=' . $review->id . '>' . ($review->hide == '' ? 'Hide' : 'Show') . ' review</a>';297 } ?>298 < /div>287 ?> 288 <div class="{slg}-time" data-time="<?php echo $review->time; ?>"><?php echo esc_html(gmdate("H:i d M y", (int)$review->time)); ?></div> 289 <div class="{slg}-feedback"> 290 <?php echo $this->stars($review->rating, $review->provider); ?> 291 <span class="{slg}-text"><?php echo $this->trim_text($review->text, $options->text_size); ?></span> 292 </div> 293 <?php if ($is_admin && !empty($review->id)) { 294 echo '<a href="#" class="wp-review-hide" data-id=' . $review->id . '>' . ($review->hide == '' ? 'Hide' : 'Show') . ' review</a>'; 295 } ?> 296 </div> 297 </div> 298 <?php } ?> 299 299 </div> 300 300 <?php … … 309 309 <div class="{slg}-review<?php if ($hr) { echo ' {slg}-hide'; } ?>" data-rev="<?php echo $review->provider; ?>"> 310 310 <div class="{slg}-review-inner<?php echo $addcls; ?>"> 311 <div class="{slg}- left">311 <div class="{slg}-flex" style="--gap:12px;--dir:row;--align:center"> 312 312 <?php 313 313 // Google reviewer avatar … … 322 322 $default_avatar = str_replace('s128', 's' . $options->reviewer_avatar_size, $default_avatar); 323 323 } 324 $this->image($author_img, $review->author_name, $options->lazy_load_img, $default_avatar); 325 326 // Google reviewer name 327 if (strlen($review->author_url) > 0) { 328 $this->anchor($review->author_url, '{slg}-name', $review->author_name, $options->open_link, $options->nofollow_link); 329 } else { 330 if (strlen($review->author_name) > 0) { 331 $author_name = $review->author_name; 324 $this->image($author_img, '{slg}-img', $review->author_name, $options->lazy_load_img, $default_avatar); 325 ?><div class="{slg}-flex" style="--gap:6px;--dir:column;--align:star;--overflow:hidden"><?php 326 // Google reviewer name 327 if (strlen($review->author_url) > 0) { 328 $this->anchor($review->author_url, '{slg}-name', $review->author_name, $options->open_link, $options->nofollow_link); 332 329 } else { 333 $author_name = __('Google User', Plugin::NAME); 330 if (strlen($review->author_name) > 0) { 331 $author_name = $review->author_name; 332 } else { 333 $author_name = __('Google User', Plugin::NAME); 334 } 335 ?><div class="{slg}-name"><?php echo $author_name; ?></div><?php 334 336 } 335 ?><div class="{slg}-name"><?php echo $author_name; ?></div><?php 336 } 337 ?> 338 <div class="{slg}-time" data-time="<?php echo $review->time; ?>"><?php echo esc_html(gmdate("H:i d M y", (int)$review->time)); ?></div> 339 </div> 340 <div class="{slg}-stars"><?php echo $this->stars($review->rating); ?></div> 337 ?> 338 <div class="{slg}-time" data-time="<?php echo $review->time; ?>"><?php echo esc_html(gmdate("H:i d M y", (int)$review->time)); ?></div> 339 </div> 340 </div> 341 <?php echo $this->stars($review->rating, $review->provider); ?> 341 342 <div> 342 343 <div class="{slg}-feedback" <?php if (strlen($options->slider_text_height) > 0) {?> style="height:<?php echo $options->slider_text_height; ?>!important"<?php } ?>> … … 345 346 <?php } ?> 346 347 </div> 347 <?php if ($is_admin && isset($review->id)) {348 echo '<a href="#" class="wp-review-hide" data-id=' . $review->id . '>' . ($review->hide == '' ? 'Hide' : 'Show') . ' review</a>';349 } ?>350 </div>351 <?php $this->social_logo($review->provider);?>348 </div> 349 <?php $this->social_logo($review->provider); 350 if ($is_admin && isset($review->id)) { 351 echo '<a href="#" class="wp-review-hide" data-id=' . $review->id . '>' . ($review->hide == '' ? 'Hide' : 'Show') . ' review</a>'; 352 } ?> 352 353 </div> 353 354 </div> … … 355 356 } 356 357 357 function stars($rating) { 358 foreach (array(1,2,3,4,5) as $val) { 359 $score = $rating - $val; 360 if ($score >= 0) { 361 ?><svg width="22" height="22" viewBox="0 0 24 24"><use xlink:href="#{slg}-star"/></svg><?php 362 } else if ($score > -1 && $score < 0) { 363 ?><svg width="22" height="22" viewBox="0 0 24 24"><use xlink:href="#{slg}-star-o" style="stroke:currentColor;stroke-width:1.5"/><use href="#{slg}-star-half" clip-path="url(#{slg}-clip-half)"/></svg><?php 364 } else { 365 ?><svg width="22" height="22" viewBox="0 0 24 24"><use xlink:href="#{slg}-star-o" style="stroke:#ccc;stroke-width:1.5"/></svg><?php 366 } 358 function stars($rating, $provider = '', $rat_star = false) { 359 switch ($provider) { 360 case 'facebook': 361 if ($rat_star) { 362 if ($rat_star) { 363 ?><span class="rpi-star" data-rating="<?php echo $rating; ?>"></span><?php 364 } 365 ?><span class="rpi-stars" style="--rating:<?php echo $rating; ?>"></span><?php 366 } else { 367 $text = ($rating < 2 ? "doesn't" : "") . ' recommends'; 368 ?><span class="rpi-star-fb" data-rating="<?php echo $rating; ?>"><?php echo $text; ?></span><?php 369 } 370 break; 371 case 'yelp': 372 case 'tripadvisor': 373 $data_atts = ' data-stars="' . floor($rating * 2) / 2 . '"'; 374 $data_atts .= $rat_star ? ' data-rating="' . $rating . '"' : ''; 375 ?><span class="rpi-stars-<?php echo $provider; ?>"<?php echo $data_atts; ?>><i></i><i></i><i></i><i></i><i></i></span><?php 376 break; 377 default: 378 if ($rat_star) { 379 ?><span class="rpi-star" data-rating="<?php echo $rating; ?>"></span><?php 380 } 381 ?><span class="rpi-stars" style="--rating:<?php echo $rating; ?>"></span><?php 367 382 } 368 383 } … … 381 396 private function social_logo($prov) { 382 397 switch ($prov) { 383 case 'google': 384 $this->google_logo(); 385 break; 386 case 'facebook': 387 $this->facebook_logo(); 388 break; 389 case 'yelp': 390 $this->yelp_logo(); 391 break; 398 case 'google' : $this->google_logo(); break; 399 case 'facebook' : $this->facebook_logo(); break; 400 case 'yelp' : $this->yelp_logo(); break; 401 case 'tripadvisor' : $this->tripadvisor_logo(); break; 392 402 } 393 403 } … … 405 415 } 406 416 417 private function tripadvisor_logo() { 418 ?><svg viewBox="0 0 132 86" width="44" height="44" class="{slg}-ta"><use xlink:href="#{slg}-logo-ta"/></svg><?php 419 } 420 407 421 private function powered($biz, $opt) { 408 ?><div class="{slg}-powered " data-platform="<?php echo $biz->provider; ?>"><?php422 ?><div class="{slg}-powered {slg}-flex" data-platform="<?php echo $biz->provider; ?>" style="--gap: 2px;--dir:row;--align:center"><?php 409 423 switch ($biz->provider) { 410 424 case 'google': … … 416 430 case 'yelp': 417 431 ?>powered by <?php echo $this->anchor($biz->url, '', '<img src="' . Plugin::ASSETS_URL() . 'img/yelp-logo.png" alt="Yelp logo" width="60" height="31" title="Yelp logo">', $opt->open_link, $opt->nofollow_link); ?><?php 432 break; 433 case 'tripadvisor': 434 ?>powered by <span>TripAdvisor</span><?php 418 435 break; 419 436 } … … 429 446 } 430 447 431 function image($src, $alt, $lazy, $def_ava = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', $atts = '') { 432 $src = esc_url($src); 433 $alt = esc_attr($alt); 434 $def_ava = esc_url($def_ava); 435 ?><img src="<?php echo $src; ?>" <?php if ($lazy) { ?>loading="lazy"<?php } ?> alt="<?php echo $alt; ?>" onerror="this.onerror=null;this.src='<?php echo $def_ava; ?>';" <?php echo $atts; ?>><?php 448 function image($src, $cls = '', $alt, $lazy, $def_ava = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', $atts = '') { 449 ?><img src="<?php echo esc_url($src); ?>" <?php if ($lazy) { ?>loading="lazy"<?php } ?> class="<?php echo esc_attr($cls); ?>" alt="<?php echo esc_attr($alt); ?>" onerror="this.onerror=null;this.src='<?php echo esc_url($def_ava); ?>';" <?php echo $atts; ?>><?php 436 450 } 437 451 -
fb-reviews-widget/trunk/includes/core/class-connect-google.php
r3251386 r3439940 13 13 14 14 private $helper; 15 16 public function __construct(Helper $helper) { 15 private $google_dao; 16 private $connect_helper; 17 18 public function __construct(Helper $helper, Google_Dao $google_dao, Connect_Helper $connect_helper) { 17 19 $this->helper = $helper; 20 $this->google_dao = $google_dao; 21 $this->connect_helper = $connect_helper; 18 22 19 23 add_action('wp_ajax_' . Plugin::SLG . '_hide_review', array($this, 'hide_review')); … … 44 48 // Cache clear 45 49 if ($_POST['feed_id']) { 46 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $_POST['feed_id'] . '_reviews' , false);50 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $_POST['feed_id'] . '_reviews'); 47 51 } else { 48 52 $feed_ids = get_option(Plugin::SLG . '_feed_ids'); … … 50 54 $ids = explode(",", $feed_ids); 51 55 foreach ($ids as $id) { 52 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $id . '_reviews' , false);56 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $id . '_reviews'); 53 57 } 54 58 } … … 64 68 65 69 public function connect_google() { 66 if (current_user_can('manage_options')) { 67 if (isset($_POST['_wpnonce']) === false) { 68 $error = __('Unable to call request. Make sure you are accessing this page from the Wordpress dashboard.', Plugin::NAME); 69 $response = compact('error'); 70 } else { 71 check_admin_referer(Plugin::SLG . '_wpnonce'); 72 73 if (isset($_POST['key'])) { 74 $key = sanitize_text_field(wp_unslash($_POST['key'])); 75 if (strlen($key) > 0) { 76 update_option(Plugin::SLG . '_google_api_key', $key); 77 } 78 } 79 $google_api_key = get_option(Plugin::SLG . '_google_api_key'); 80 81 $id = sanitize_text_field(wp_unslash($_POST['id'])); 82 $lang = sanitize_text_field(wp_unslash($_POST['lang'])); 83 $local_img = sanitize_text_field(wp_unslash($_POST['local_img'])); 84 $token = sanitize_text_field(wp_unslash($_POST['token'])); 85 86 if ($google_api_key && strlen($google_api_key) > 0) { 87 $url = $this->api_url($id, $google_api_key, $lang); 88 } else { 89 $url = 'https://app.trustembed.com/grc/details/json?pid=' . $id . '&token=' . $token . 90 '&siteurl=' . get_option('siteurl') . '&authcode=' . get_option(Plugin::SLG . '_auth_code'); 91 92 /*$url = Plugin::G_APP_URL . '/get/json' . 93 '?siteurl=' . get_option('siteurl') . 94 '&authcode=' . get_option(Plugin::SLG . '_auth_code') . 95 '&pid=' . $id;*/ 96 if ($lang && strlen($lang) > 0) { 97 $url = $url . '&lang=' . $lang; 98 } 99 } 100 101 $res = wp_remote_get($url); 102 $body = wp_remote_retrieve_body($res); 103 $body_json = json_decode($body); 104 105 if ($body_json && isset($body_json->result)) { 106 107 if ($google_api_key && strlen($google_api_key) > 0) { 108 $photo = $this->business_avatar($body_json->result, $google_api_key); 109 $body_json->result->business_photo = $photo; 110 } 111 112 $this->save_google_reviews($body_json->result, $local_img); 113 114 $result = array( 115 'id' => $body_json->result->place_id, 116 'name' => $body_json->result->name, 117 'photo' => isset($body_json->result->business_photo) && strlen($body_json->result->business_photo) 118 ? $body_json->result->business_photo : Plugin::G_BIZ_LOGO(), 119 'reviews' => $body_json->result->reviews 120 ); 121 $status = 'success'; 122 123 if ($_POST['feed_id']) { 124 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $_POST['feed_id'] . '_reviews', false); 125 } 126 } else { 127 $result = $body_json; 128 $status = 'failed'; 129 } 130 $response = compact('status', 'result'); 131 } 132 header('Content-type: text/javascript'); 133 echo json_encode($response); 134 die(); 135 } 70 if (!current_user_can('manage_options')) { 71 return; 72 } 73 74 $response = array( 75 'status' => 'failed', 76 'result' => null, 77 'error' => null, 78 'quota' => null, 79 ); 80 81 if (!isset($_POST['_wpnonce'])) { 82 $response['error'] = __('Unable to call request. Make sure you are accessing this page from the Wordpress dashboard.', Plugin::NAME); 83 wp_send_json($response); 84 } 85 86 check_admin_referer(Plugin::SLG . '_wpnonce'); 87 88 if (isset($_POST['key'])) { 89 $key = sanitize_text_field(wp_unslash($_POST['key'])); 90 if (strlen($key) > 0) { 91 update_option(Plugin::SLG . '_google_api_key', $key); 92 } 93 } 94 95 $google_api_key = get_option(Plugin::SLG . '_google_api_key'); 96 $lang = sanitize_text_field(wp_unslash($_POST['lang'])); 97 $local_img = sanitize_text_field(wp_unslash($_POST['local_img'])); 98 99 if ($google_api_key && strlen($google_api_key) > 0) { 100 $id = sanitize_text_field(wp_unslash($_POST['id'])); 101 $url = $this->api_url($id, $google_api_key, $lang); 102 $res = wp_remote_get($url); 103 } else { 104 $params = array( 105 'url' => isset($_POST['map_url']) ? wp_unslash($_POST['map_url']) : '', 106 ); 107 108 if (!empty($lang)) { 109 $params['lang'] = $lang; 110 } 111 112 $res = wp_remote_post('https://app.trustembed.com/connect/reviews', array( 113 'body' => $params 114 )); 115 } 116 117 if (is_wp_error($res)) { 118 $response['error'] = $res->get_error_message(); 119 wp_send_json($response); 120 } 121 122 $body = wp_remote_retrieve_body($res); 123 $body_json = json_decode($body); 124 125 if (!$body_json) { 126 $response['error'] = 'Invalid JSON response'; 127 wp_send_json($response); 128 } 129 130 $response['error'] = isset($body_json->error) ? $body_json->error : null; 131 $response['quota'] = isset($body_json->quota) ? $body_json->quota : null; 132 133 if (isset($body_json->result)) { 134 if ($google_api_key && strlen($google_api_key) > 0) { 135 $photo = $this->business_avatar($body_json->result, $google_api_key); 136 $body_json->result->business_photo = $photo; 137 } 138 139 $this->save_google_reviews($body_json->result, $local_img); 140 141 $response['result'] = array( 142 'id' => $body_json->result->place_id, 143 'name' => $body_json->result->name, 144 'photo' => empty($body_json->result->photo) ? Plugin::G_BIZ_LOGO() : $body_json->result->photo, 145 'photo2' => empty($body_json->result->business_photo) ? Plugin::G_BIZ_LOGO() : $body_json->result->business_photo, 146 'reviews' => isset($body_json->result->reviews) ? $body_json->result->reviews : array(), 147 ); 148 149 $response['status'] = 'success'; 150 151 if (!empty($_POST['feed_id'])) { 152 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . sanitize_text_field(wp_unslash($_POST['feed_id'])) . '_reviews'); 153 } 154 } 155 156 wp_send_json($response); 136 157 } 137 158 … … 150 171 $url = $this->api_url($pid, $google_api_key, $reviews_lang, 'newest'); 151 172 152 } else {173 } /*else { 153 174 154 175 $url = 'https://app.trustembed.com/grc/details/json?pid=' . $id . '&token=' . $token . 155 176 '&siteurl=' . get_option('siteurl') . '&authcode=' . get_option(Plugin::SLG . '_auth_code') . '&time=' . time(); 156 177 157 /*$url = Plugin::G_APP_URL . '/update/json' .158 '?siteurl=' . get_option('siteurl') .159 '&authcode=' . get_option(Plugin::SLG . '_auth_code') .160 '&pid=' . $pid .161 '&time=' . time();*/162 178 if ($reviews_lang && strlen($reviews_lang) > 0) { 163 179 $url = $url . '&lang=' . $reviews_lang; 164 180 } 165 } 181 }*/ 166 182 167 183 if (strlen($url) > 0) { … … 240 256 241 257 if ($_POST['feed_id']) { 242 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $_POST['feed_id'] . '_reviews' , false);258 delete_transient(Plugin::SLG . '_feed_' . Plugin::VER . '_' . $_POST['feed_id'] . '_reviews'); 243 259 } 244 260 } else { … … 256 272 function save_google_reviews($place, $local_img) { 257 273 $place->pid = $place->place_id; 258 $place->photo = isset($place->business_photo) ? $place->business_photo : Plugin::G_BIZ_LOGO();259 274 $place->review_count = $place->user_ratings_total; 275 $place->photo = $this->google_dao->get_place_photo($place, $local_img); 260 276 $place->address = isset($place->formatted_address) ? $place->formatted_address : ''; 261 277 foreach ($place->reviews as $review) { 262 278 $review->author_img = $review->profile_photo_url; 263 279 } 264 $this-> save_reviews($place, $local_img, 'google');280 $this->google_dao->save($place, $local_img); 265 281 } 266 282 267 283 function save_yelp_reviews($place, $local_img) { 284 $platform = 'yelp'; 268 285 $place->pid = $place->id; 286 $place->platform = $platform; 269 287 foreach ($place->reviews as $review) { 270 288 $review->time = strtotime($review->time_created); … … 272 290 $review->author_img = $review->user->image_url; 273 291 $review->author_url = $review->user->profile_url; 274 } 275 $this->save_reviews($place, $local_img, 'yelp'); 276 } 277 278 function save_reviews($place, $local_img, $platform) { 292 $review->platform = $platform; 293 } 294 $this->google_dao->save($place, $local_img); 295 } 296 297 /*function save_reviews($place, $local_img, $platform) { 279 298 global $wpdb; 280 299 … … 286 305 ); 287 306 307 if (empty($place->business_photo)) { 308 $place_img = Plugin::G_BIZ_LOGO(); 309 } else { 310 if ($local_img === true || $local_img == 'true') { 311 $img_name = $place->pid . '_' . md5($place->name); 312 $place_img = $this->upload_image($place->business_photo, $img_name); 313 } else { 314 $place_img = $place->business_photo; 315 } 316 } 317 288 318 // Insert or update Google place 289 319 if ($biz_id) { … … 301 331 $update_params['review_count'] = $review_count; 302 332 } 303 if ( isset($place->photo) && strlen($place->photo) > 0) {304 $update_params['photo'] = $place ->photo;333 if (!empty($place_img)) { 334 $update_params['photo'] = $place_img; 305 335 } 306 336 $wpdb->update($wpdb->prefix . Database::BUSINESS_TABLE, $update_params, array('ID' => $biz_id)); … … 340 370 'pid' => $place->pid, 341 371 'name' => $place->name, 342 'photo' => $place ->photo,372 'photo' => $place_img, 343 373 'address' => $place->address, 344 374 'rating' => $place_rating, … … 434 464 } 435 465 } 436 } 466 }*/ 437 467 438 468 function api_url($placeid, $google_api_key, $reviews_lang = '', $reviews_sort = '') { … … 458 488 'https://maps.googleapis.com/maps/api/place/photo' 459 489 ); 460 return $this-> upload_image($url, $response_result_json->place_id);490 return $this->connect_helper->upload_image($url, $response_result_json->place_id); 461 491 } 462 492 return null; 463 493 } 464 494 465 function upload_image($url, $name) {495 /*function upload_image($url, $name) { 466 496 $res = wp_remote_get($url, array('timeout' => 8)); 467 497 … … 482 512 $upload = wp_upload_bits($filename, null, $bits); 483 513 return $upload['url']; 484 } 514 }*/ 485 515 486 516 } -
fb-reviews-widget/trunk/includes/core/class-core.php
r3406362 r3439940 152 152 153 153 // Get reviews 154 $reviews_where = $is_admin ? '' : ' AND hide = \'\''; 155 156 $reviews_lang = strlen($biz->lang) > 0 ? $biz->lang : 'en'; 157 $reviews_where = $reviews_where . ' AND (language = \'' . $reviews_lang . '\' OR language = \'\' OR language IS NULL)'; 158 159 $revs = $wpdb->get_results( 160 $wpdb->prepare( 161 "SELECT * FROM " . $wpdb->prefix . Database::REVIEW_TABLE . 162 " WHERE biz_id = %d" . $reviews_where . " ORDER BY time DESC", $place->id 163 ) 164 ); 154 $hidden_ids = array(); 155 $where_plain = $is_admin ? '' : " AND r2.hide = ''"; 156 $where_r = $is_admin ? '' : " AND r.hide = ''"; 157 158 if (isset($options->hidden) && !$is_admin) { 159 $hidden_ids = $this->parse_hidden_ids($options->hidden); 160 if (!empty($hidden_ids)) { 161 $hidden_phs = implode(',', array_fill(0, count($hidden_ids), '%d')); 162 $where_plain .= ' AND r2.id NOT IN (' . $hidden_phs . ')'; 163 $where_r .= ' AND r.id NOT IN (' . $hidden_phs . ')'; 164 } 165 } 166 167 if (empty($biz->lang)) { 168 169 $sql = "SELECT r.* 170 FROM {$wpdb->prefix}" . Database::REVIEW_TABLE . " r 171 WHERE r.biz_id = %d{$where_r} 172 AND r.author_url IS NOT NULL 173 AND NOT EXISTS ( 174 SELECT 1 175 FROM {$wpdb->prefix}" . Database::REVIEW_TABLE . " r2 176 WHERE r2.biz_id = r.biz_id 177 AND r2.author_url = r.author_url{$where_plain} 178 AND ( 179 r2.time > r.time 180 OR (r2.time = r.time AND r2.id > r.id) 181 ) 182 ) 183 ORDER BY r.time DESC, r.id DESC"; 184 185 $params = array_merge([$place->id], $hidden_ids, $hidden_ids); 186 187 } else { 188 189 $sql = "SELECT r2.* 190 FROM {$wpdb->prefix}" . Database::REVIEW_TABLE . " r2 191 WHERE r2.biz_id = %d{$where_plain} AND (r2.language = %s OR r2.language IS NULL) 192 ORDER BY r2.time DESC"; 193 194 $params = array_merge([$place->id], $hidden_ids); 195 $params[] = $biz->lang; 196 } 197 198 $revs = $wpdb->get_results($wpdb->prepare($sql, $params)); 165 199 166 200 // Setup photo 167 $place->photo = strlen($biz->photo) > 0 ? $biz->photo : (strlen($place->photo) > 0 ? $place->photo : Plugin::G_BIZ_LOGO());201 $place->photo = empty($biz->photo) ? (empty($place->photo) ? Plugin::G_BIZ_LOGO() : $place->photo) : $biz->photo; 168 202 169 203 // Calculate reviews count -
fb-reviews-widget/trunk/includes/core/class-database.php
r3021668 r3439940 9 9 const BUSINESS_TABLE = Plugin::PFX . 'biz'; 10 10 11 const REVIEW_TABLE = Plugin::PFX . 'review';11 const REVIEW_TABLE = Plugin::PFX . 'review'; 12 12 13 const STATS_TABLE = Plugin::PFX . 'stats'; 13 const TEXT_TABLE = self::REVIEW_TABLE . '_text'; 14 15 const STATS_TABLE = Plugin::PFX . 'stats'; 14 16 15 17 public function create() { … … 30 32 "rating DOUBLE PRECISION,". 31 33 "url VARCHAR(255),". 34 "map_url VARCHAR(512),". 32 35 "website VARCHAR(255),". 33 36 "review_count INTEGER,". … … 38 41 ") " . $charset_collate . ";"; 39 42 40 dbDelta($sql);43 $this->execsql($sql); 41 44 42 45 $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . self::REVIEW_TABLE . " (". 43 46 "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,". 44 47 "biz_id BIGINT(20) UNSIGNED NOT NULL,". 48 "review_id VARCHAR(64) NOT NULL,". 45 49 "rating INTEGER NOT NULL,". 46 "text VARCHAR(10000),".50 "text TEXT,". 47 51 "time INTEGER NOT NULL,". 48 52 "url VARCHAR(255),". … … 51 55 "author_url VARCHAR(255),". 52 56 "author_img VARCHAR(255),". 57 "images TEXT,". 58 "reply TEXT,". 59 "reply_time INTEGER,". 53 60 "platform VARCHAR(127),". 54 61 "hide VARCHAR(1) DEFAULT '' NOT NULL,". … … 57 64 ") " . $charset_collate . ";"; 58 65 59 dbDelta($sql); 66 $this->execsql($sql); 67 68 $this->create_text_table(); 60 69 61 70 $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . self::STATS_TABLE . " (". … … 69 78 ") " . $charset_collate . ";"; 70 79 80 $this->execsql($sql); 81 } 82 83 public function create_text_table() { 84 global $wpdb; 85 86 $charset_collate = $wpdb->get_charset_collate(); 87 88 $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . self::TEXT_TABLE . " (". 89 "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,". 90 "review_id VARCHAR(64) NOT NULL,". 91 "lang VARCHAR(10) NOT NULL,". 92 "text TEXT,". 93 "PRIMARY KEY (`id`),". 94 "UNIQUE INDEX " . Plugin::PFX . "review_lang_idx (`review_id`, `lang`),". 95 "INDEX idx_review_id (`review_id`)". 96 ") " . $charset_collate . ";"; 97 98 $this->execsql($sql); 99 } 100 101 public function migrate_review_texts() { 102 global $wpdb; 103 104 $text_table = $wpdb->prefix . self::TEXT_TABLE; 105 $rev_table = $wpdb->prefix . self::REVIEW_TABLE; 106 107 $wpdb->query( 108 "INSERT INTO {$text_table} (review_id, lang, text) 109 SELECT 110 r.review_id, 111 r.language AS lang, 112 r.text 113 FROM {$rev_table} r 114 WHERE r.text IS NOT NULL AND r.text <> '' 115 AND r.review_id IS NOT NULL AND r.review_id <> '' 116 AND r.language IS NOT NULL AND r.language <> '' 117 AND (r.hide IS NULL OR r.hide <> '1') 118 ON DUPLICATE KEY UPDATE text = VALUES(text)" 119 ); 120 121 $this->log_error($wpdb->last_error); 122 } 123 124 private function execsql($sql) { 125 global $wpdb; 126 127 if (!function_exists('dbDelta')) { 128 require_once ABSPATH . 'wp-admin/includes/upgrade.php'; 129 } 130 71 131 dbDelta($sql); 132 133 $this->log_error($wpdb->last_error); 72 134 } 73 135 74 136 public function drop() { 75 137 global $wpdb; 76 77 $wpdb->query("DROP TABLE " . $wpdb->prefix . self::BUSINESS_TABLE . ";");78 $wpdb->query("DROP TABLE " . $wpdb->prefix . self::REVIEW_TABLE . ";");79 $wpdb->query("DROP TABLE " . $wpdb->prefix . self::STATS_TABLE . ";");138 $wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . self::BUSINESS_TABLE . ";"); 139 $wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . self::REVIEW_TABLE . ";"); 140 $wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . self::TEXT_TABLE . ";"); 141 $wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . self::STATS_TABLE . ";"); 80 142 } 81 143 144 private function log_error($last_error) { 145 if (isset($last_error) && strlen($last_error) > 0) { 146 $now = (int) floor(microtime(true) * 1000); 147 update_option(Plugin::SLG . '_last_error', $now . ': ' . $last_error); 148 } 149 } 82 150 } -
fb-reviews-widget/trunk/readme.txt
r3406362 r3439940 1 1 === Reviews Widget for Google, Yelp & Recommendations === 2 2 Contributors: widgetpack 3 Tags: reviews, google reviews, yelp reviews, facebook recommendations, widget 4 Requires at least: 3.0.1 3 Tags: reviews, google reviews, facebook, tripadvisor, yelp reviews 4 Requires PHP: 5.2 5 Requires at least: 4.7 5 6 Tested up to: 6.9 6 Stable tag: 2.6 7 Requires PHP: 5.2 7 Stable tag: 2.7 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Combine Google reviews, Yelp reviews and Facebook Recommendations in a single widget, block or shortcode. Build a trusted website!11 Combine Facebook Recommendations, Google, Yelp and TripAdvisor reviews in a single widget, block or shortcode. Build a trusted website! 12 12 13 13 == Description == 14 14 15 ⭐ **Reviews Widget for Google, Yelp & Facebook** is a simple and powerful WordPress plugin that displays real customer reviews from threemajor platforms into combined feed.16 17 --- 18 19 ## ⭐ Unified feed — Google + Yelp + Facebook together20 21 📌 This plugin brings together reviews from ** Google**, **Yelp**, and **Facebook Recommendations** into a single combined feed.15 ⭐ **Reviews Widget for Facebook, Google, Yelp & TripAdvisor** is a simple and powerful WordPress plugin that displays real customer reviews from major platforms into combined feed. 16 17 --- 18 19 ## ⭐ Unified feed — Google + Facebook + Yelp + TripAdvisor together! 20 21 📌 This plugin brings together reviews from **Facebook Recommendations**, **Google**, **Yelp**, and **TripAdvisor** into a single combined feed. 22 22 📌 You no longer need separate plugins for each platform — everything is managed in one place using one widget, one shortcode and one settings panel. 23 23 📌 This reduces setup time, avoids plugin conflicts and keeps your site lighter and easier to manage. … … 190 190 == Changelog == 191 191 192 = 2.7 = 193 * Major rewrite of the plugin architecture 194 * New Google reviews connection wizard 195 * Added support for Facebook recommendations with platform icons 196 * Improved and stabilized Yelp reviews integration 197 * Added support for TripAdvisor reviews 198 * Ability to combine reviews from multiple platforms into a single feed or separately 199 * Fully redesigned reviews data structure with multilingual text support 200 * Complete refactor of frontend styles 201 * Performance improvements 202 * Major bug fixes 203 192 204 = 2.6 = 193 205 * Updated star icons for better clarity and consistency
Note: See TracChangeset
for help on using the changeset viewer.