Plugin Directory

Changeset 3100891


Ignore:
Timestamp:
06/11/2024 05:30:45 AM (22 months ago)
Author:
glomberg
Message:

Version: 2.135.

Location:
security-malware-firewall
Files:
1073 added
24 edited

Legend:

Unmodified
Added
Removed
  • security-malware-firewall/trunk/css/spbc-settings.min.css

    r3070519 r3100891  
    1 .circle{border-radius:50%;align-items:center;justify-content:center;position:relative;background-color:#03A9F4;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;border-radius:50%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:animation-circle 2s linear forwards}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}.spbc---hidden,.spbc_waf_reason{display:none}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4{margin:10px}#spbcTopWarning h4 span{margin-top:5px}#spbc_gdpr_open_modal:hover{cursor:pointer}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_compare_file_row_wrapper,.spbc_view_file_row,.spbc_view_file_row_wrapper{line-height:19px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:nth-child(1){text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_wrapper:nth-child(even){background:#ddd}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;font-size:1em;word-break:break-all}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_compare_file_row_wrapper:nth-child(even){background:#ddd}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{display:inline-block;width:45%;margin:0;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:0;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText,.spbcFullText-right{display:none;position:absolute;background:rgba(150,150,150,.9);padding:7px;z-index:20;color:#fff}.spbcFullText{top:-5px;border:1px solid #333;border-radius:5px}.spbcFullText-right{top:0;right:0;border:1px solid #333;border-radius:5px}.spbcFullText a{color:#fff}.spbcFullText a:hover{color:#ddd}#spbc_scan_accordion .column-primary{position:initial}#spbc_scan_accordion tbody tr{position:relative}.spbc_accordion_category_wrapper{padding:0 5px 10px;border:1px solid #d3d3d3;border-radius:3px;margin-bottom:5px}.spbc_accordion_category_header{color:#026E88;font-weight:800;margin-left:10px!important}div.pagination{margin:10px}ul.pagination{display:inline-block;margin:0}li.pagination{display:inline-block;margin-left:10px}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc_wrapper_settings{margin:10px 0 0}.spbc_page_header_info_common_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1%}.spbc_page_header_info__block_label{top:3px;left:3px;position:relative;background:#f4f4f4;border:1px solid #DDD;border-radius:3px;padding:2px 5px;font-size:10px;color:gray}.spbc_page_header_info__block_body{border:1px solid #DDD;background:#f4f4f4;padding:1%}.spbc_page_header_info__block_row{font-size:13px}.spbc_page_header_info_left_column{width:69%}.spbc_page_header_info__state_block{width:60%}.spbc_page_header_info_right_column{width:30%}.spbc_page_header_info__about_block{width:100%;height:calc(100% - 29px)}.spbc_page_header_info__about_block__divider{padding:5px}.spbc_page_header_info__error_block{width:100%}.spbc_page_buttons_wrapper{margin-bottom:-10px}.spbc_tabs_nav_wrapper{display:block;background-color:#fff;margin:15px 15px 0 0}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;font-size:14px;line-height:24px;color:#555;cursor:pointer;font-weight:400}.spbc_tab_nav--active,.spbc_tab_nav:hover{margin-bottom:-1px;border-bottom:2px solid #026E88}.spbc_tab_nav svg{stroke:#000;stroke-width:.5}.spbc_tab_nav--active{color:#026E88;font-weight:800}.spbc_tab_nav--active svg{stroke:#026E88;stroke-width:1}.spbc_tab{display:none;margin:0;background-color:#fff}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;margin-top:5px;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc__show_more_logs{display:none}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}#spbc_translate_plugin{margin-left:10px}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:normal normal bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==) left center no-repeat;background-size:100% 100%}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#FDE16D;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}p.spbc_hint{margin:0}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_auto_link,.spbc_manual_link,.spbc_manual_link_scan{text-decoration:none;font-size:13px;border-style:solid}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;display:inline-block;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;-webkit-appearance:none;-webkit-border-radius:2px;border-radius:2px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_auto_link:hover{color:#fff}.spbc_ring-container{position:absolute;z-index:99;top:-10px;right:10px}.spbc_circle{width:4px;height:4px;background-color:rgba(255,2,2,.65);border-radius:50%;position:absolute;top:15px;left:15px}.spbc_ringring{border:3px solid rgba(255,2,2,.65);-webkit-border-radius:30px;height:15px;width:15px;position:absolute;left:7px;top:7px;-webkit-animation:spbc_pulsate 1s ease-out;-webkit-animation-iteration-count:infinite;opacity:0}.spbc_manual_link,.spbc_manual_link_scan{border-color:#026E88;line-height:26px;height:28px;padding:0 10px 1px;border-width:1px;-webkit-appearance:none;white-space:nowrap;margin:0;cursor:pointer}@-webkit-keyframes spbc_pulsate{0%{-webkit-transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.spbc_manual_link_scan{color:#fff;background:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);display:inline-block;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link{background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#026E88!important;display:inline-block;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link:hover,button.ct_support_link{text-decoration:underline}.spbc-btn-as-link{padding:0;margin:0;vertical-align:baseline;color:gray;border:0;border-bottom:1px solid;cursor:pointer}#spbc-account-email[contenteditable=true]{padding:6px;background-color:#fff;border:1px solid #ccc}.spbc_long_desc,.spbc_popup_tip--wrapper{min-height:80px;max-width:500px;padding:10px;z-index:10}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc-links:visited{color:#fff}.spbc_long_desc{position:absolute;background:#5a5a5a;min-width:80px;color:#fff}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{width:10px;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;height:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__link,.spbc_long_desc__title{color:rgba(120,200,230,1)}.spbc_long_desc__angle{top:5px;left:-17px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{margin:0}.spbc_long_desc__link:hover{color:rgba(140,220,250,1)}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;min-width:80px;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:rgba(120,200,230,1);margin:0}.spbc_popup_tip--text{color:#fff!important}tr:hover .spbc_hint--wrapper{display:none}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;cursor:pointer}#spbc-modal-content{text-align:center}#spbc-modal-content>*{display:block;width:100%}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#DFD;color:#060;border:1px solid #060}.popup--red{background:#FDD;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body{height:100%;overflow-y:auto}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600}.spbc--status{position:relative;padding-left:26px}.spbc--marker-green::before,.spbc--marker-red::before,.spbc--marker-yellow::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;left:10px;top:4px}.spbc--marker-green::before{background:#1dda23}.spbc--marker-yellow::before{background:#ffb000}.spbc--marker-red::before{background:#d63638}
     1.circle,.circle-inner,.spbc_circle{border-radius:50%}.circle{align-items:center;justify-content:center;position:relative;background-color:#03A9F4;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:animation-circle 2s linear forwards}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}.spbc---hidden,.spbc_waf_reason{display:none}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4{margin:10px}#spbcTopWarning h4 span{margin-top:5px}#spbc_gdpr_open_modal:hover{cursor:pointer}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_compare_file_row_wrapper,.spbc_view_file_row,.spbc_view_file_row_wrapper{line-height:19px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:nth-child(1){text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_wrapper:nth-child(even){background:#ddd}.spbc_auto_link,.spbc_compare_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;font-size:1em;word-break:break-all}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_wrapper:nth-child(even){background:#ddd}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{display:inline-block;width:45%;margin:0;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:0;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText,.spbcFullText-right{display:none;position:absolute;background:rgba(150,150,150,.9);padding:7px;z-index:20;color:#fff}.spbcFullText{top:-5px;border:1px solid #333;border-radius:5px}.spbcFullText-right{top:0;right:0;border:1px solid #333;border-radius:5px}.spbcFullText a{color:#fff}.spbcFullText a:hover{color:#ddd}#spbc_scan_accordion .column-primary{position:initial}#spbc_scan_accordion tbody tr{position:relative}.spbc_accordion_category_wrapper{padding:0 5px 10px;border:1px solid #d3d3d3;border-radius:3px;margin-bottom:5px}.spbc_accordion_category_header{color:#026E88;font-weight:800;margin-left:10px!important}div.pagination{margin:10px}ul.pagination{display:inline-block;margin:0}li.pagination{display:inline-block;margin-left:10px}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc-btn-as-link,.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_settings{margin:10px 0 0}.spbc_page_header_info_common_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1%}.spbc_page_header_info__block_label{top:3px;left:3px;position:relative;background:#f4f4f4;border:1px solid #DDD;border-radius:3px;padding:2px 5px;font-size:10px;color:gray}.spbc_page_header_info__block_body{border:1px solid #DDD;background:#f4f4f4;padding:1%}.spbc_page_header_info__block_row{font-size:13px}.spbc_page_header_info_left_column{width:66%}.spbc_page_header_info__state_block{width:60%}.spbc_page_header_info_right_column{width:33%}.spbc_page_header_info__about_block{width:100%;height:calc(100% - 29px)}.spbc_page_header_info__about_block__divider{padding:5px}.spbc_page_header_info__error_block{width:100%}.spbc_page_buttons_wrapper{margin-bottom:-10px}.spbc_tabs_nav_wrapper{display:block;background-color:#fff;margin:15px 15px 0 0}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;font-size:14px;line-height:24px;color:#555;cursor:pointer;font-weight:400}.spbc_tab_nav--active,.spbc_tab_nav:hover{margin-bottom:-1px;border-bottom:2px solid #026E88}.spbc_tab_nav svg{stroke:#000;stroke-width:.5}.spbc_tab_nav--active{color:#026E88;font-weight:800}.spbc_tab_nav--active svg{stroke:#026E88;stroke-width:1}.spbc_tab{display:none;margin:0;background-color:#fff}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;margin-top:5px;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc__show_more_logs{display:none}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}#spbc_translate_plugin{margin-left:10px}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:normal normal bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==) left center no-repeat;background-size:100% 100%}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#FDE16D;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}p.spbc_hint{margin:0}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_auto_link,.spbc_manual_link,.spbc_manual_link_scan{text-decoration:none;display:inline-block;cursor:pointer}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:2px;border-radius:2px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_auto_link:hover{color:#fff}.spbc_ring-container{position:absolute;z-index:99;top:-10px;right:10px}.spbc_circle{width:4px;height:4px;background-color:rgba(255,2,2,.65);position:absolute;top:15px;left:15px}.spbc_ringring{border:3px solid rgba(255,2,2,.65);-webkit-border-radius:30px;height:15px;width:15px;position:absolute;left:7px;top:7px;-webkit-animation:spbc_pulsate 1s ease-out;-webkit-animation-iteration-count:infinite;opacity:0}.spbc_manual_link,.spbc_manual_link_scan{font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;margin:0}@-webkit-keyframes spbc_pulsate{0%{-webkit-transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}.spbc_manual_link_scan{color:#fff;background:#026E88;border-color:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link{background:#fff;border-color:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#026E88!important;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link:hover,button.ct_support_link{text-decoration:underline}.spbc-btn-as-link{padding:0;margin:0;color:gray;border:0;border-bottom:1px solid;cursor:pointer}#spbc-account-email[contenteditable=true]{padding:6px;background-color:#fff;border:1px solid #ccc}.spbc_long_desc,.spbc_popup_tip--wrapper{min-width:80px;min-height:80px;padding:10px;z-index:10}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc-links:visited{color:#fff}.spbc_long_desc{position:absolute;background:#5a5a5a;max-width:500px;color:#fff}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{width:10px;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;height:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__link,.spbc_long_desc__title{color:rgba(120,200,230,1)}.spbc_long_desc__angle{top:5px;left:-17px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{margin:0}.spbc_long_desc__link:hover{color:rgba(140,220,250,1)}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;max-width:500px;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:rgba(120,200,230,1);margin:0}.spbc_popup_tip--text{color:#fff!important}tr:hover .spbc_hint--wrapper{display:none}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;cursor:pointer}#spbc-modal-content{text-align:center}#spbc-modal-content>*{display:block;width:100%}.spbc-modal-header{font-size:15px;font-weight:500}.spbc-modal-buttons-block{display:flex!important;gap:10px;justify-content:center}.spbc-modal-button{width:40%;height:35px;font-size:14px;font-weight:500;border:1px solid #60656b;background:#fff;border-radius:5px;cursor:pointer}.spbc-modal-button:hover{background:#2ea2cc;color:#fff;border:1px solid #2ea2cc}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#DFD;color:#060;border:1px solid #060}.popup--red{background:#FDD;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body{height:100%;overflow-y:auto}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600}.spbc--status{position:relative;padding-left:26px}.spbc--marker-green::before,.spbc--marker-red::before,.spbc--marker-yellow::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;left:10px;top:4px}.spbc--marker-green::before{background:#1dda23}.spbc--marker-yellow::before{background:#ffb000}.spbc--marker-red::before{background:#d63638}
  • security-malware-firewall/trunk/inc/spbc-admin.php

    r3095959 r3100891  
    654654    if (isset($user->ID) && $user->ID > 0) {
    655655        $roles = (is_array($user->roles) && ! empty($user->roles) ? reset($user->roles) : null); // Takes only first role.
     656        $action = spbc_parse_action_from_admin_page_uri(Server::get('REQUEST_URI'));
    656657
    657658        $log_id = spbc_auth_log(array(
    658659            'username' => $user->get('user_login'),
    659             'event'    => 'view',
     660            'event'    => isset($action["action_event"]) ? $action["action_event"] : 'view',
    660661            'page'     => Server::get('REQUEST_URI'),
    661662            'blog_id'  => get_current_blog_id(),
     
    717718        $link = 'https://p.cleantalk.org/?featured=&product_id=4&user_token=' . $spbc->user_token . $utm_marks;
    718719        $out = '<b style="display: inline-block; margin-top: 10px;">'
    719                . ($make_it_right ? __('Make it right!', 'cleantalk') . ' ' : '')
     720               . ($make_it_right ? __('Make it right!', 'security-malware-firewall') . ' ' : '')
    720721               . sprintf(
    721                    __('%sGet premium%s', 'cleantalk'),
     722                   __('%sGet premium%s', 'security-malware-firewall'),
    722723                   $spbc->data["wl_mode_enabled"] ? $spbc->data["wl_support_url"] : '<a href="' . $link . '" target="_blank">',
    723724                   '</a>'
     
    11461147
    11471148                        <td><a class="spbc_auto_link" title="<?php echo Escape::escHtml($val['action_url']) ?>"><?php
    1148                             echo Escape::escHtml($val['parsed_action']); ?></td>
     1149                            echo Escape::escHtml($val['action_event']); ?></td>
    11491150                    </tr>
    11501151                    <?php
  • security-malware-firewall/trunk/inc/spbc-auth.php

    r3093704 r3100891  
    1111add_action('login_errors', 'spbc_fix_error_messages', 99999); // Filters error message
    1212add_action('wp_logout', 'spbc_wp_logout', 1);     // Hooks for authentificate
    13 add_action('login_header', 'spbc_login_form_notification', 1);
     13add_action('login_footer', 'spbc_login_form_notification', 1);
    1414
    1515if ( isset($spbc) && ($spbc instanceof \CleantalkSP\SpbctWP\State ) && $spbc->settings['2fa__enable'] ) {
     
    6464            $link = ! $spbc->data["wl_mode_enabled"] ? $link : $spbc->data["wl_brandname"];
    6565            $logo_img = $spbc->data["wl_mode_enabled"] ? "" : "<img style='vertical-align: bottom; width: 12px; height: 15px;' src='" . SPBC_PATH . "/images/logo_small.png'>";
    66             echo "<div style='position: absolute; bottom: 20px; right: 20px;'>"
     66            echo "<div style='position: relative; right: 20px;'>"
    6767                 . "<p style='text-align: right;'>"
    6868                 . __('Brute Force Protection by', 'security-malware-firewall')
  • security-malware-firewall/trunk/inc/spbc-settings.php

    r3093228 r3100891  
    17111711                echo '<div class="spbc_hide">'
    17121712                     . sprintf(
    1713                          __('Account at cleantalk.org is %s.', 'cleantalk'),
     1713                         __('Account at cleantalk.org is %s.', 'security-malware-firewall'),
    17141714                         '<b>' . $spbc->data['account_name_ob'] . '</b>'
    17151715                     )
     
    19301930function spbc_field_security_logs__prepare_data(&$table)
    19311931{
     1932    global $wpdb;
     1933
    19321934    if ($table->items_count) {
    19331935        foreach ($table->rows as $row) {
     
    19721974            }
    19731975
    1974 
    1975             $action = spbc_parse_action_from_admin_page_uri($url, $row->id);
    1976             $action = !empty($action['parsed_action']) ? $action['parsed_action'] : '';
    1977             $is_add_time = !empty($action['add_time']) ? $action['add_time'] : false;
     1976            $parse_action = spbc_parse_action_from_admin_page_uri($url);
     1977            $is_add_time = !empty($parse_action['add_time']) ? $parse_action['add_time'] : false;
     1978            $time = $row->page_time === null ? '(Calculating)' : '(' . strval($row->page_time) . ' seconds)';
    19781979
    19791980            switch ($row->event) {
    19801981                case 'view':
    1981                     $time = $row->page_time === null ? '(Calculating)' : '(' . strval($row->page_time) . ' seconds)';
    1982                     $event = $action !== '' ? $action . ' ' : __('Viewing admin page ', 'security-malware-firewall');
     1982                    $event = __('Viewing admin page ', 'security-malware-firewall');
     1983                    $event .= $is_add_time ? $time : '';
     1984                    break;
     1985                case 'viewing_posts_list':
     1986                    $event = __('Viewing the posts list', 'security-malware-firewall');
     1987                    $event .= $is_add_time ? $time : '';
     1988                    break;
     1989                case 'viewing_pages_list':
     1990                    $event = __('Viewing the pages list', 'security-malware-firewall');
     1991                    $event .= $is_add_time ? $time : '';
     1992                    break;
     1993                case 'editing_post':
     1994                    $event = __('Editing a post', 'security-malware-firewall');
     1995                    $event .= $is_add_time ? $time : '';
     1996                    break;
     1997                case 'editing_post_id':
     1998                    $event =  sprintf(
     1999                        __('Editing post %s', 'security-malware-firewall'),
     2000                        '"' . get_the_title($parse_action['post_id']) . '"' . $parse_action['page_action']
     2001                    );
     2002                    $event .= $is_add_time ? $time : '';
     2003                    break;
     2004                case 'activate_plugin_name':
     2005                    $event = sprintf(
     2006                        __('Activate plugin %s', 'security-malware-firewall'),
     2007                        '"' . $parse_action['plugin_name'] . '"'
     2008                    );
     2009                    $event .= $is_add_time ? $time : '';
     2010                    break;
     2011                case 'deactivate_plugin_name':
     2012                    $event = sprintf(
     2013                        __('Deactivate plugin %s', 'security-malware-firewall'),
     2014                        '"' . $parse_action['plugin_name'] . '"'
     2015                    );
     2016                    $event .= $is_add_time ? $time : '';
     2017                    break;
     2018                case 'uploading_plugin':
     2019                    $event = __('Uploading a plugin', 'security-malware-firewall');
     2020                    $event .= $is_add_time ? $time : '';
     2021                    break;
     2022                case 'adding_user':
     2023                    $event = __('Adding a user', 'security-malware-firewall');
     2024                    $event .= $is_add_time ? $time : '';
     2025                    break;
     2026                case 'deleting_user':
     2027                    $event = __('Deleting a user', 'security-malware-firewall');
    19832028                    $event .= $is_add_time ? $time : '';
    19842029                    break;
     
    22192264                'entry_timestamp' => date('M d Y, H:i:s', $row->entry_timestamp + $time_offset),
    22202265                'requests'        => $requests,
    2221                 'requests_per'    => '<b>' . spbc_report_tc_requests_per($row->ip_entry) . '</b>',
     2266                'requests_per'    => '<b>' . spbc_report_tc_requests_per($row->ip_entry, $row->status) . '</b>',
    22222267                'status'          => $status,
    22232268                'page_url'        => $page_url,
     
    31533198                'frontend_scan_results_approved',
    31543199            ),
     3200            'display' => (bool) $spbc->settings['scanner__frontend_analysis']
    31553201        ),
    31563202    );
    31573203
    31583204    foreach ($accordions_order as $_category => $data) {
     3205        if ( isset($data['display']) && ! $data['display'] ) {
     3206            continue;
     3207        }
    31593208        echo '<div class="spbc_accordion_category_wrapper">';
    31603209        echo '<h4 class="spbc_accordion_category_header">' .  $data['category_description'] . '</h4>';
     
    32563305                    'where'     => ' WHERE domain = "' . Post::get('domain', null, 'word') . '"',
    32573306                ),
    3258                 'order_by'          => array('spam_active' => 'asc'),
     3307                'order_by'          => array('domain' => 'asc'),
    32593308                'html_before'       =>
    32603309                    sprintf(__('Links for <b>%s</b> domain.', 'security-malware-firewall'), Post::get('domain', null, 'word')) . ' '
    3261                     . sprintf(__('%sSee all domains%s', 'security-malware-firewall'), '<a href="javascript://" onclick="spbc_scanner__switch_table(this, \'outbound_links\');">', '</a>')
     3310                    . sprintf(__('%sSee all domains%s', 'security-malware-firewall'), '<a href="javascript://" onclick="spbcScannerSwitchTable(this, \'outbound_links\');">', '</a>')
    32623311                    . '<br /><br />',
    32633312                'func_data_prepare' => 'spbc_field_scanner__prepare_data__links',
     
    32713320                    'page_url'    => array('heading' => __('Post Page', 'security-malware-firewall'),),
    32723321                    'link_text'   => array('heading' => __('Link Text', 'security-malware-firewall'),),
    3273                     'spam_active' => array(
    3274                         'heading' => __('Spam-active', 'security-malware-firewall'),
    3275                         'hint'    => __('Does link spotted in spam?', 'security-malware-firewall'),
    3276                     ),
    32773322                ),
    3278                 'sortable'          => array('link', 'page_url', 'spam_active'),
     3323                'sortable'        => array('link', 'page_url'),
    32793324            );
    32803325            break;
     
    33743419                    'entry_timestamp' => array('heading' => 'Last Request',),
    33753420                    'status'          => array('heading' => 'Status',),
    3376                     'requests'        => array('heading' => 'Requests', 'class' => ' tbl-width--100px'),
     3421                    'requests'        => array('heading' => 'Requests and attempts', 'class' => ' tbl-width--100px'),
    33773422                    'requests_per'    => array(
    33783423                        'heading' => 'Requests per '
     
    37043749                    ),
    37053750                ),
    3706                 'order_by'          => array('link_count' => 'desc'),
     3751                'order_by'          => array('domain' => 'desc'),
    37073752                'func_data_total'   => 'spbc_scanner_links_count_found__domains',
    37083753                'func_data_get'     => 'spbc_scanner_links_get_scanned__domains',
     
    44694514        json_encode(
    44704515            array(
    4471                 'html' => $table->displayRows('return'),
     4516                'html' => $table->displayRows(null, 'return'),
    44724517                'size' => $table->items_count,
    44734518            )
     
    44954540        json_encode(
    44964541            array(
    4497                 'html' => $table->displayRows('return'),
     4542                'html' => $table->displayRows(null, 'return'),
    44984543                'size' => $table->items_count,
    44994544            )
     
    45774622        : '';
    45784623
     4624    $two_fa_learn_more_link = ! $spbc->data["wl_mode_enabled"]
     4625        ? '<p><a class="spbc_long_desc__link" href="https://cleantalk.org/help/two-factor-auth" target="_blank">'
     4626          . __('Use this guide', 'security-malware-firewall')
     4627          . '</a>'
     4628          . ' ' . __('to see more details.', 'security-malware-firewall')
     4629          . '</p>'
     4630        : '';
     4631
    45794632    $descriptions = array(
    45804633        'secfw__enabled'              => array(
     
    46434696            'title' => __('Two factor authentication for administrators', 'security-malware-firewall'),
    46444697            'desc'  => __('Two-Factor Authentication for WordPress admin accounts will improve your website security and make it safer, if not impossible, for hackers to breach your WordPress account. Two-Factor Authentication works via e-mail. Authentication code will be sent to your admin email. When authorizing, a one-time code will be sent to your email. While entering the code, make sure that it does not contain spaces. With your first authorization, the ' . $spbc->data["wl_company_name"] . ' Security plugin remembers your browser and you won’t have to input your authorization code every time anymore. However, if you started to use a new device or a new browser then you are required to input your authorization code. The plugin will remember your browser for 30 days.', 'security-malware-firewall')
     4698                . $two_fa_learn_more_link
    46454699        ),
    46464700        'data__additional_headers'    => array(
  • security-malware-firewall/trunk/inc/spbc-tools.php

    r3070519 r3100891  
    2424}
    2525
    26 function spbc_report_tc_requests_per($ip = null)
    27 {
    28     global $wpdb;
    29 
    30     if (is_null($ip)) {
     26function spbc_report_tc_requests_per($ip = null, $status = null)
     27{
     28    global $wpdb, $spbc;
     29
     30    if (is_null($ip) || is_null($status)) {
    3131        return '-';
     32    }
     33
     34    $log_type = 0;
     35    if (strpos($status, 'BFP')) {
     36        $log_type = 1;
     37    }
     38    if (strpos($status, 'WAF')) {
     39        $log_type = 2;
    3240    }
    3341
     
    3543        'SELECT entries FROM ' . SPBC_TBL_TC_LOG
    3644        . ' WHERE ip = "' . $ip . '"'
     45        . ' AND log_type = ' . $log_type
    3746        . ' ORDER BY block_end_on DESC'
    3847        . ' LIMIT 1',
     
    4150
    4251    if (isset($c[0]) && isset($c[0]['entries'])) {
    43         return (string)$c[0]['entries'];
     52        $entries = (int)$c[0]['entries'];
     53        // @TODO this condition need to prevent anomalies on Firewall tab in admin panel, refactor it
     54        if ($entries > $spbc->settings['traffic_control__autoblock_amount']) {
     55            $entries = $spbc->settings['traffic_control__autoblock_amount'];
     56        }
     57
     58        return (string)$entries;
    4459    }
    4560
     
    617632            // reformat already gained actions
    618633            $action = spbc_parse_action_from_admin_page_uri($value['action_url']);
    619             $value['parsed_action'] = $action['parsed_action'];
     634            $value['action_event'] = $action['action_event'];
    620635        }
    621636    }
     
    644659            // parse url to user-friendly string
    645660            $action = spbc_parse_action_from_admin_page_uri($data['action_url']);
    646             $data['parsed_action'] = $action['parsed_action'];
     661            $data['action_event'] = $action['action_event'];
    647662            // collect parsed
    648663            $current_last_actions[] = $data;
     
    780795 * @param string $url - requested URL
    781796 * @param string $post_id - a WordPress post ID, default null
    782  * @return array ['parsed_action' => '', 'add_time' => bool]
     797 * @return array ['action_event' => '', 'add_time' => bool, 'post_id' => null, 'page_action' => null, 'plugin_name' => null]
    783798 */
    784799function spbc_parse_action_from_admin_page_uri($url, $post_id = null)
     
    798813        }
    799814    }
    800     $out = array('parsed_action' => 'Action of empty URL', 'add_time' => true);
     815    $out = array(
     816        'action_event' => 'Action of empty URL',
     817        'add_time' => true,
     818        'post_id' => null,
     819        'page_action' => null,
     820        'plugin_name' => null,
     821    );
    801822    if (!is_null($url)) {
    802823        switch ($url) {
     
    805826                ? true
    806827                : false):
    807                 $out['parsed_action'] = __('Viewing the posts list', 'security-malware-firewall');
     828                $out['action_event'] = 'viewing_posts_list';
    808829                break;
    809830            case ('/wp-admin/edit.php?post_type=page' == $url
     
    811832                ? true
    812833                : false):
    813                 $out['parsed_action'] = __('Viewing the pages list', 'security-malware-firewall');
     834                $out['action_event'] = 'viewing_pages_list';
    814835                break;
    815836            case (preg_match('#/wp-admin/post.php\?post=[\d\w]+&action=edit#', $url)
     
    838859                }
    839860                if ( is_int($post_id) ) {
    840                     $out['parsed_action'] = sprintf(
    841                         __('Editing post %s', 'security-malware-firewall'),
    842                         '"' . get_the_title($post_id) . '"' . $page_action
    843                     );
     861                    $out['action_event'] = 'editing_post_id';
     862                    $out['post_id'] = $post_id;
     863                    $out['page_action'] = $page_action;
    844864                } else {
    845                     $out['parsed_action'] = __('Editing a post', 'security-malware-firewall');
     865                    $out['action_event'] = 'editing_post';
    846866                }
    847867                break;
     
    850870                ? true
    851871                : false):
    852                 $out['parsed_action'] = sprintf(
    853                     __('Activate plugin %s', 'security-malware-firewall'),
    854                     '"' . $plugin_name . '"'
    855                 );
     872                $out['action_event'] = 'activate_plugin_name';
     873                $out['plugin_name'] = $plugin_name;
    856874                $out['add_time'] = false;
    857875                break;
     
    860878                ? true
    861879                : false):
    862                 $out['parsed_action'] = sprintf(
    863                     __('Deactivate plugin %s', 'security-malware-firewall'),
    864                     '"' . $plugin_name . '"'
    865                 );
     880                $out['action_event'] = 'deactivate_plugin_name';
     881                $out['plugin_name'] = $plugin_name;
    866882                $out['add_time'] = false;
    867883                break;
     
    870886                ? true
    871887                : false):
    872                 $out['parsed_action'] = __('Uploading a plugin', 'security-malware-firewall');
     888                $out['action_event'] = 'uploading_plugin';
    873889                $out['add_time'] = false;
    874890                break;
     
    877893                ? true
    878894                : false):
    879                 $out['parsed_action'] = __('Adding a user', 'security-malware-firewall');
     895                $out['action_event'] = 'adding_user';
    880896                $out['add_time'] = false;
    881897                break;
     
    884900                ? true
    885901                : false):
    886                 $out['parsed_action'] = __('Deleting user(s)', 'security-malware-firewall');
     902                $out['action_event'] = 'deleting_user';
    887903                $out['add_time'] = false;
    888904                break;
     
    891907                $file = !empty($matches[1]) && !empty($matches[1][0]) ? $matches[1][0] : '';
    892908                $the_action = !empty($matches[2]) && !empty($matches[2][0]) ? $matches[2][0] : '';
    893                 $out['parsed_action'] = !empty($file) && !empty($the_action) ? $file . '...' . $the_action : 'Admin action';
     909                $out['action_event'] = !empty($file) && !empty($the_action) ? $file . '...' . $the_action : 'view';
     910                $out['add_time'] = false;
    894911        }
    895912    }
  • security-malware-firewall/trunk/js/spbc-modal.min.js

    r3085528 r3100891  
    1 spbcModal={loaded:!1,loading:!1,opened:!1,opening:!1,load:function(e){this.loaded||(this.loading=!0,callback=function(e,t,o,d){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},"function"==typeof spbcSendAJAXRequest&&spbcSendAJAXRequest({action:e},{callback:callback,notJson:!0}))},putError:function(e){this.put("<h2>The error occurred</h2><p>"+e+'</p><a style="text-align: left;margin-top: 40px;" target="_blank"href="https://wordpress.org/support/plugin/security-malware-firewall">Contact tech support</a>')},put:function(e){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},open:function(){function e(){let e="";for(key in this.styles)key&&(e+=key+":"+this.styles[key]+";");return e}var t={styles:{"z-index":"9999",position:"fixed",top:"0",left:"0",width:"100%",height:"100%",background:"rgba(0,0,0,0.5)",display:"flex","justify-content":"center","align-items":"center"},toString:e},o={styles:{position:"relative",padding:"20px","max-width":"550px","max-height":"500px",background:"#FFF",border:"1px solid rgba(0,0,0,0.75)","border-radius":"4px","box-shadow":"7px 7px 5px 0px rgba(50,50,50,0.75)"},toString:e},d={styles:{position:"absolute",background:"#FFF",width:"20px",height:"20px",border:"2px solid rgba(0,0,0,0.75)","border-radius":"15px",cursor:"pointer",top:"-8px",right:"-8px"},toString:e},n={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(45deg)"},toString:e},s={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(-45deg)"},toString:e},a={styles:{"overflow-y":"auto","max-height":"460px","overflow-x":"hidden"},toString:e},l={styles:{overflow:"hidden"},toString:e},i=document.createElement("style"),l=(i.setAttribute("id","spbc-modal-styles"),i.innerHTML="body.spbc-modal-opened{"+l+"}",i.innerHTML+="#spbc-modal-overlay{"+t+"}",i.innerHTML+="#spbc-modal-close{"+d+"}",i.innerHTML+="#spbc-modal-close:before{"+n+"}",i.innerHTML+="#spbc-modal-close:after{"+s+"}",i.innerHTML+="#spbc-modal-content{"+a+"}",document.body.append(i),document.createElement("div")),t=(l.setAttribute("id","spbc-modal-overlay"),document.body.append(l),document.body.classList.add("spbc-modal-opened"),document.createElement("div")),d=(t.setAttribute("id","spbc-modal-inner"),t.setAttribute("style",o),l.append(t),document.createElement("div")),n=(d.setAttribute("id","spbc-modal-close"),t.append(d),document.createElement("div"));return this.loaded?n.innerHTML=this.loaded:n.innerHTML="Loading...",n.setAttribute("id","spbc-modal-content"),t.append(n),this.opened=!0,this},close:function(){spbcModal.loaded="",spbcModal.loading=!1,document.body.classList.remove("spbc-modal-opened"),document.getElementById("spbc-modal-overlay").remove(),document.getElementById("spbc-modal-styles").remove(),document.dispatchEvent(new CustomEvent("spbcModalClosed",{bubbles:!0}))}},document.addEventListener("click",function(e){(e.target&&"spbc-modal-overlay"===e.target.id||"spbc-modal-close"===e.target.id)&&spbcModal.close()}),document.addEventListener("spbcModalContentLoaded",function(e){spbcModal.opened&&spbcModal.loaded&&(document.getElementById("spbc-modal-content").innerHTML=spbcModal.loaded)});
     1spbcModal={loaded:!1,loading:!1,opened:!1,opening:!1,load:function(e){this.loaded||(this.loading=!0,callback=function(e,t,o,n){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},"function"==typeof spbcSendAJAXRequest&&spbcSendAJAXRequest({action:e},{callback:callback,notJson:!0}))},putError:function(e){this.put("<h2>The error occurred</h2><p>"+e+'</p><a style="text-align: left;margin-top: 40px;" target="_blank"href="https://wordpress.org/support/plugin/security-malware-firewall">Contact tech support</a>')},put:function(e){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},confirm:function(e,t="",o){spbcModal.loading=!1;var n,d=document.getElementById("spbc-modal-content");d&&(d.innerHTML="",(n=document.createElement("div")).className="spbc-modal-header",n.textContent=e,d.append(n),(e=document.createElement("div")).className="spbc-modal-text-block",d.append(e),(n=document.createElement("div")).className="spbc-modal-text",n.textContent=`If you agree, the file ${t} will be deleted`,e.append(n),(t=document.createElement("div")).className="spbc-modal-buttons-block",d.append(t),(e=document.createElement("button")).className="spbc-modal-button",e.textContent="Yes",e.onclick=function(){o(!0),spbcModal.close()},t.append(e),(n=document.createElement("button")).className="spbc-modal-button",n.textContent="No",n.onclick=function(){spbcModal.close()},t.append(n)),document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},open:function(){function e(){let e="";for(key in this.styles)key&&(e+=key+":"+this.styles[key]+";");return e}var t={styles:{"z-index":"9999",position:"fixed",top:"0",left:"0",width:"100%",height:"100%",background:"rgba(0,0,0,0.5)",display:"flex","justify-content":"center","align-items":"center"},toString:e},o={styles:{position:"relative",padding:"20px",margin:"10px","max-width":"550px","max-height":"500px",background:"#FFF",border:"1px solid rgba(0,0,0,0.75)","border-radius":"4px","box-shadow":"7px 7px 5px 0px rgba(50,50,50,0.75)"},toString:e},n={styles:{position:"absolute",background:"#FFF",width:"20px",height:"20px",border:"2px solid rgba(0,0,0,0.75)","border-radius":"15px",cursor:"pointer",top:"-8px",right:"-8px"},toString:e},d={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(45deg)"},toString:e},a={styles:{content:'""',display:"block",position:"absolute",background:"#000","border-radius":"1px",width:"2px",height:"16px",top:"2px",left:"9px",transform:"rotate(-45deg)"},toString:e},s={styles:{display:"grid",gap:"20px","overflow-y":"auto","max-height":"460px","overflow-x":"hidden"},toString:e},l={styles:{overflow:"hidden"},toString:e},c=document.createElement("style"),l=(c.setAttribute("id","spbc-modal-styles"),c.innerHTML="body.spbc-modal-opened{"+l+"}",c.innerHTML+="#spbc-modal-overlay{"+t+"}",c.innerHTML+="#spbc-modal-close{"+n+"}",c.innerHTML+="#spbc-modal-close:before{"+d+"}",c.innerHTML+="#spbc-modal-close:after{"+a+"}",c.innerHTML+="#spbc-modal-content{"+s+"}",document.body.append(c),document.createElement("div")),t=(l.setAttribute("id","spbc-modal-overlay"),document.body.append(l),document.body.classList.add("spbc-modal-opened"),document.createElement("div")),n=(t.setAttribute("id","spbc-modal-inner"),t.setAttribute("style",o),l.append(t),document.createElement("div")),d=(n.setAttribute("id","spbc-modal-close"),t.append(n),document.createElement("div"));return this.loaded?d.innerHTML=this.loaded:d.innerHTML="Loading...",d.setAttribute("id","spbc-modal-content"),t.append(d),this.opened=!0,this},close:function(){spbcModal.loaded="",spbcModal.loading=!1,document.body.classList.remove("spbc-modal-opened"),document.getElementById("spbc-modal-overlay").remove(),document.getElementById("spbc-modal-styles").remove(),document.dispatchEvent(new CustomEvent("spbcModalClosed",{bubbles:!0}))}},document.addEventListener("click",function(e){(e.target&&"spbc-modal-overlay"===e.target.id||"spbc-modal-close"===e.target.id)&&spbcModal.close()}),document.addEventListener("spbcModalContentLoaded",function(e){spbcModal.opened&&spbcModal.loaded&&(document.getElementById("spbc-modal-content").innerHTML=spbcModal.loaded)});
    22//# sourceMappingURL=spbc-modal.min.js.map
  • security-malware-firewall/trunk/js/spbc-modal.min.js.map

    r3085528 r3100891  
    1 {"version":3,"file":"spbc-modal.min.js","sources":["spbc-modal.js"],"sourcesContent":["/* Cleantalk Modal object */\nspbcModal = {\n\n    // Flags\n    loaded: false,\n    loading: false,\n    opened: false,\n    opening: false,\n\n    // Methods\n    load: function( action ) {\n        if ( ! this.loaded ) {\n            this.loading = true;\n            callback = function( result, data, params, obj ) {\n                spbcModal.loading = false;\n                spbcModal.loaded = result;\n                document.dispatchEvent(\n                    new CustomEvent( 'spbcModalContentLoaded', {\n                        bubbles: true,\n                    } ),\n                );\n            };\n            if ( typeof spbcSendAJAXRequest === 'function' ) {\n                spbcSendAJAXRequest( {'action': action}, {'callback': callback, 'notJson': true} );\n            }\n        }\n    },\n\n    putError: function( errorText ) {\n        let html = '<h2>The error occurred</h2>' +\n            '<p>' + errorText + '</p>' +\n            '<a style=\"text-align: left;' +\n            'margin-top: 40px;\" target=\"_blank\"' +\n            'href=\"https://wordpress.org/support/plugin/security-malware-firewall\">Contact tech support</a>';\n        this.put(html);\n    },\n\n    put: function( html ) {\n        spbcModal.loading = false;\n        spbcModal.loaded = html;\n        document.dispatchEvent(\n            new CustomEvent( 'spbcModalContentLoaded', {\n                bubbles: true,\n            } ),\n        );\n    },\n\n    open: function() {\n        /* Cleantalk Modal CSS start */\n        let renderCss = function() {\n            let cssStr = '';\n            for ( key in this.styles ) {\n                if (key) {\n                    cssStr += key + ':' + this.styles[key] + ';';\n                }\n            }\n            return cssStr;\n        };\n        let overlayCss = {\n            styles: {\n                'z-index': '9999',\n                'position': 'fixed',\n                'top': '0',\n                'left': '0',\n                'width': '100%',\n                'height': '100%',\n                'background': 'rgba(0,0,0,0.5)',\n                'display': 'flex',\n                'justify-content': 'center',\n                'align-items': 'center',\n            },\n            toString: renderCss,\n        };\n        let innerCss = {\n            styles: {\n                'position': 'relative',\n                'padding': '20px',\n                'max-width': '550px',\n                'max-height': '500px',\n                'background': '#FFF',\n                'border': '1px solid rgba(0,0,0,0.75)',\n                'border-radius': '4px',\n                'box-shadow': '7px 7px 5px 0px rgba(50,50,50,0.75)',\n            },\n            toString: renderCss,\n        };\n        let closeCss = {\n            styles: {\n                'position': 'absolute',\n                'background': '#FFF',\n                'width': '20px',\n                'height': '20px',\n                'border': '2px solid rgba(0,0,0,0.75)',\n                'border-radius': '15px',\n                'cursor': 'pointer',\n                'top': '-8px',\n                'right': '-8px',\n            },\n            toString: renderCss,\n        };\n        let closeCssBefore = {\n            styles: {\n                'content': '\"\"',\n                'display': 'block',\n                'position': 'absolute',\n                'background': '#000',\n                'border-radius': '1px',\n                'width': '2px',\n                'height': '16px',\n                'top': '2px',\n                'left': '9px',\n                'transform': 'rotate(45deg)',\n            },\n            toString: renderCss,\n        };\n        let closeCssAfter = {\n            styles: {\n                'content': '\"\"',\n                'display': 'block',\n                'position': 'absolute',\n                'background': '#000',\n                'border-radius': '1px',\n                'width': '2px',\n                'height': '16px',\n                'top': '2px',\n                'left': '9px',\n                'transform': 'rotate(-45deg)',\n            },\n            toString: renderCss,\n        };\n        let contentCss = {\n            styles: {\n                'overflow-y': 'auto',\n                'max-height': '460px',\n                'overflow-x': 'hidden',\n            },\n            toString: renderCss,\n        };\n        let bodyCss = {\n            styles: {\n                'overflow': 'hidden',\n            },\n            toString: renderCss,\n        };\n        let spbcModalStyle = document.createElement( 'style' );\n        spbcModalStyle.setAttribute( 'id', 'spbc-modal-styles' );\n        spbcModalStyle.innerHTML = 'body.spbc-modal-opened{' + bodyCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-overlay{' + overlayCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close{' + closeCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close:before{' + closeCssBefore + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close:after{' + closeCssAfter + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-content{' + contentCss + '}';\n        document.body.append( spbcModalStyle );\n        /* Cleantalk Modal CSS end */\n\n        let overlay = document.createElement( 'div' );\n        overlay.setAttribute( 'id', 'spbc-modal-overlay' );\n        document.body.append( overlay );\n\n        document.body.classList.add( 'spbc-modal-opened' );\n\n        let inner = document.createElement( 'div' );\n        inner.setAttribute( 'id', 'spbc-modal-inner' );\n        inner.setAttribute( 'style', innerCss );\n        overlay.append( inner );\n\n        let close = document.createElement( 'div' );\n        close.setAttribute( 'id', 'spbc-modal-close' );\n        inner.append( close );\n\n        let content = document.createElement( 'div' );\n        if ( this.loaded ) {\n            content.innerHTML = this.loaded;\n        } else {\n            content.innerHTML = 'Loading...';\n        }\n        content.setAttribute( 'id', 'spbc-modal-content' );\n        inner.append( content );\n\n        this.opened = true;\n\n        return this;\n    },\n\n    close: function() {\n        spbcModal.loaded = '';\n        spbcModal.loading = false;\n        document.body.classList.remove( 'spbc-modal-opened' );\n        document.getElementById( 'spbc-modal-overlay' ).remove();\n        document.getElementById( 'spbc-modal-styles' ).remove();\n        document.dispatchEvent(\n            new CustomEvent( 'spbcModalClosed', {\n                bubbles: true,\n            } ),\n        );\n    },\n\n};\n\n/* Cleantalk Modal helpers */\ndocument.addEventListener('click', function( e ) {\n    if ( e.target && e.target.id === 'spbc-modal-overlay' || e.target.id === 'spbc-modal-close' ) {\n        spbcModal.close();\n    }\n});\ndocument.addEventListener('spbcModalContentLoaded', function( e ) {\n    if ( spbcModal.opened && spbcModal.loaded ) {\n        document.getElementById( 'spbc-modal-content' ).innerHTML = spbcModal.loaded;\n    }\n});\n"],"names":["spbcModal","loaded","loading","opened","opening","load","action","this","callback","result","data","params","obj","document","dispatchEvent","CustomEvent","bubbles","spbcSendAJAXRequest","notJson","putError","errorText","put","html","open","renderCss","let","cssStr","key","styles","overlayCss","z-index","position","top","left","width","height","background","display","justify-content","align-items","toString","innerCss","padding","max-width","max-height","border","border-radius","box-shadow","closeCss","cursor","right","closeCssBefore","content","transform","closeCssAfter","contentCss","overflow-y","overflow-x","bodyCss","overflow","spbcModalStyle","createElement","overlay","setAttribute","innerHTML","body","append","inner","classList","add","close","remove","getElementById","addEventListener","e","target","id"],"mappings":"AACAA,UAAY,CAGRC,OAAQ,CAAA,EACRC,QAAS,CAAA,EACTC,OAAQ,CAAA,EACRC,QAAS,CAAA,EAGTC,KAAM,SAAUC,GACLC,KAAKN,SACRM,KAAKL,QAAU,CAAA,EACfM,SAAW,SAAUC,EAAQC,EAAMC,EAAQC,GACvCZ,UAAUE,QAAU,CAAA,EACpBF,UAAUC,OAASQ,EACnBI,SAASC,cACL,IAAIC,YAAa,yBAA0B,CACvCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,EACoC,YAA/B,OAAOC,qBACRA,oBAAqB,CAACX,OAAUA,CAAM,EAAG,CAACE,SAAYA,SAAUU,QAAW,CAAA,CAAI,CAAE,EAG7F,EAEAC,SAAU,SAAUC,GAMhBb,KAAKc,IALM,iCACCD,EAGR,iKACS,CACjB,EAEAC,IAAK,SAAUC,GACXtB,UAAUE,QAAU,CAAA,EACpBF,UAAUC,OAASqB,EACnBT,SAASC,cACL,IAAIC,YAAa,yBAA0B,CACvCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,EAEAO,KAAM,WAEc,SAAZC,IACAC,IAAIC,EAAS,GACb,IAAMC,OAAOpB,KAAKqB,OACVD,MACAD,GAAUC,IAAM,IAAMpB,KAAKqB,OAAOD,KAAO,KAGjD,OAAOD,CACX,CARAD,IASII,EAAa,CACbD,OAAQ,CACJE,UAAW,OACXC,SAAY,QACZC,IAAO,IACPC,KAAQ,IACRC,MAAS,OACTC,OAAU,OACVC,WAAc,kBACdC,QAAW,OACXC,kBAAmB,SACnBC,cAAe,QACnB,EACAC,SAAUhB,CACd,EACIiB,EAAW,CACXb,OAAQ,CACJG,SAAY,WACZW,QAAW,OACXC,YAAa,QACbC,aAAc,QACdR,WAAc,OACdS,OAAU,6BACVC,gBAAiB,MACjBC,aAAc,qCAClB,EACAP,SAAUhB,CACd,EACIwB,EAAW,CACXpB,OAAQ,CACJG,SAAY,WACZK,WAAc,OACdF,MAAS,OACTC,OAAU,OACVU,OAAU,6BACVC,gBAAiB,OACjBG,OAAU,UACVjB,IAAO,OACPkB,MAAS,MACb,EACAV,SAAUhB,CACd,EACI2B,EAAiB,CACjBvB,OAAQ,CACJwB,QAAW,KACXf,QAAW,QACXN,SAAY,WACZK,WAAc,OACdU,gBAAiB,MACjBZ,MAAS,MACTC,OAAU,OACVH,IAAO,MACPC,KAAQ,MACRoB,UAAa,eACjB,EACAb,SAAUhB,CACd,EACI8B,EAAgB,CAChB1B,OAAQ,CACJwB,QAAW,KACXf,QAAW,QACXN,SAAY,WACZK,WAAc,OACdU,gBAAiB,MACjBZ,MAAS,MACTC,OAAU,OACVH,IAAO,MACPC,KAAQ,MACRoB,UAAa,gBACjB,EACAb,SAAUhB,CACd,EACI+B,EAAa,CACb3B,OAAQ,CACJ4B,aAAc,OACdZ,aAAc,QACda,aAAc,QAClB,EACAjB,SAAUhB,CACd,EACIkC,EAAU,CACV9B,OAAQ,CACJ+B,SAAY,QAChB,EACAnB,SAAUhB,CACd,EACIoC,EAAiB/C,SAASgD,cAAe,OAAQ,EAWjDC,GAVJF,EAAeG,aAAc,KAAM,mBAAoB,EACvDH,EAAeI,UAAY,0BAA4BN,EAAU,IACjEE,EAAeI,WAAa,uBAAyBnC,EAAa,IAClE+B,EAAeI,WAAa,qBAAuBhB,EAAW,IAC9DY,EAAeI,WAAa,4BAA8Bb,EAAiB,IAC3ES,EAAeI,WAAa,2BAA6BV,EAAgB,IACzEM,EAAeI,WAAa,uBAAyBT,EAAa,IAClE1C,SAASoD,KAAKC,OAAQN,CAAe,EAGvB/C,SAASgD,cAAe,KAAM,GAMxCM,GALJL,EAAQC,aAAc,KAAM,oBAAqB,EACjDlD,SAASoD,KAAKC,OAAQJ,CAAQ,EAE9BjD,SAASoD,KAAKG,UAAUC,IAAK,mBAAoB,EAErCxD,SAASgD,cAAe,KAAM,GAKtCS,GAJJH,EAAMJ,aAAc,KAAM,kBAAmB,EAC7CI,EAAMJ,aAAc,QAAStB,CAAS,EACtCqB,EAAQI,OAAQC,CAAM,EAEVtD,SAASgD,cAAe,KAAM,GAItCT,GAHJkB,EAAMP,aAAc,KAAM,kBAAmB,EAC7CI,EAAMD,OAAQI,CAAM,EAENzD,SAASgD,cAAe,KAAM,GAW5C,OAVKtD,KAAKN,OACNmD,EAAQY,UAAYzD,KAAKN,OAEzBmD,EAAQY,UAAY,aAExBZ,EAAQW,aAAc,KAAM,oBAAqB,EACjDI,EAAMD,OAAQd,CAAQ,EAEtB7C,KAAKJ,OAAS,CAAA,EAEPI,IACX,EAEA+D,MAAO,WACHtE,UAAUC,OAAS,GACnBD,UAAUE,QAAU,CAAA,EACpBW,SAASoD,KAAKG,UAAUG,OAAQ,mBAAoB,EACpD1D,SAAS2D,eAAgB,oBAAqB,EAAED,OAAO,EACvD1D,SAAS2D,eAAgB,mBAAoB,EAAED,OAAO,EACtD1D,SAASC,cACL,IAAIC,YAAa,kBAAmB,CAChCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,CAEJ,EAGAH,SAAS4D,iBAAiB,QAAS,SAAUC,IACpCA,EAAEC,QAA0B,uBAAhBD,EAAEC,OAAOC,IAA+C,qBAAhBF,EAAEC,OAAOC,KAC9D5E,UAAUsE,MAAM,CAExB,CAAC,EACDzD,SAAS4D,iBAAiB,yBAA0B,SAAUC,GACrD1E,UAAUG,QAAUH,UAAUC,SAC/BY,SAAS2D,eAAgB,oBAAqB,EAAER,UAAYhE,UAAUC,OAE9E,CAAC"}
     1{"version":3,"file":"spbc-modal.min.js","sources":["spbc-modal.js"],"sourcesContent":["/* Cleantalk Modal object */\nspbcModal = {\n\n    // Flags\n    loaded: false,\n    loading: false,\n    opened: false,\n    opening: false,\n\n    // Methods\n    load: function( action ) {\n        if ( ! this.loaded ) {\n            this.loading = true;\n            callback = function( result, data, params, obj ) {\n                spbcModal.loading = false;\n                spbcModal.loaded = result;\n                document.dispatchEvent(\n                    new CustomEvent( 'spbcModalContentLoaded', {\n                        bubbles: true,\n                    } ),\n                );\n            };\n            if ( typeof spbcSendAJAXRequest === 'function' ) {\n                spbcSendAJAXRequest( {'action': action}, {'callback': callback, 'notJson': true} );\n            }\n        }\n    },\n\n    putError: function( errorText ) {\n        let html = '<h2>The error occurred</h2>' +\n            '<p>' + errorText + '</p>' +\n            '<a style=\"text-align: left;' +\n            'margin-top: 40px;\" target=\"_blank\"' +\n            'href=\"https://wordpress.org/support/plugin/security-malware-firewall\">Contact tech support</a>';\n        this.put(html);\n    },\n\n    put: function( html ) {\n        spbcModal.loading = false;\n        spbcModal.loaded = html;\n        document.dispatchEvent(\n            new CustomEvent( 'spbcModalContentLoaded', {\n                bubbles: true,\n            } ),\n        );\n    },\n\n    confirm: function(html, text = '', callback) {\n        spbcModal.loading = false;\n        let contentBlock = document.getElementById('spbc-modal-content');\n        if (contentBlock) {\n            contentBlock.innerHTML = '';\n\n            const headerBlock = document.createElement('div');\n            headerBlock.className = 'spbc-modal-header';\n            headerBlock.textContent = html;\n            contentBlock.append(headerBlock);\n\n            // Create text block\n            const textBlock = document.createElement('div');\n            textBlock.className = 'spbc-modal-text-block';\n            contentBlock.append(textBlock);\n\n            const textElem = document.createElement('div');\n            textElem.className = 'spbc-modal-text';\n            textElem.textContent = `If you agree, the file ${text} will be deleted`;\n            textBlock.append(textElem);\n\n            // Create buttons block\n            const buttonsBlock = document.createElement('div');\n            buttonsBlock.className = 'spbc-modal-buttons-block';\n            contentBlock.append(buttonsBlock);\n\n            const yesButton = document.createElement('button');\n            yesButton.className = 'spbc-modal-button';\n            yesButton.textContent = 'Yes';\n            yesButton.onclick = function() {\n                callback(true);\n                spbcModal.close();\n            };\n            buttonsBlock.append(yesButton);\n\n            const noButton = document.createElement('button');\n            noButton.className = 'spbc-modal-button';\n            noButton.textContent = 'No';\n            noButton.onclick = function() {\n                spbcModal.close();\n            };\n            buttonsBlock.append(noButton);\n        }\n        document.dispatchEvent(\n            new CustomEvent( 'spbcModalContentLoaded', {\n                bubbles: true,\n            } ),\n        );\n    },\n\n    open: function() {\n        /* Cleantalk Modal CSS start */\n        let renderCss = function() {\n            let cssStr = '';\n            for ( key in this.styles ) {\n                if (key) {\n                    cssStr += key + ':' + this.styles[key] + ';';\n                }\n            }\n            return cssStr;\n        };\n        let overlayCss = {\n            styles: {\n                'z-index': '9999',\n                'position': 'fixed',\n                'top': '0',\n                'left': '0',\n                'width': '100%',\n                'height': '100%',\n                'background': 'rgba(0,0,0,0.5)',\n                'display': 'flex',\n                'justify-content': 'center',\n                'align-items': 'center',\n            },\n            toString: renderCss,\n        };\n        let innerCss = {\n            styles: {\n                'position': 'relative',\n                'padding': '20px',\n                'margin': '10px',\n                'max-width': '550px',\n                'max-height': '500px',\n                'background': '#FFF',\n                'border': '1px solid rgba(0,0,0,0.75)',\n                'border-radius': '4px',\n                'box-shadow': '7px 7px 5px 0px rgba(50,50,50,0.75)',\n            },\n            toString: renderCss,\n        };\n        let closeCss = {\n            styles: {\n                'position': 'absolute',\n                'background': '#FFF',\n                'width': '20px',\n                'height': '20px',\n                'border': '2px solid rgba(0,0,0,0.75)',\n                'border-radius': '15px',\n                'cursor': 'pointer',\n                'top': '-8px',\n                'right': '-8px',\n            },\n            toString: renderCss,\n        };\n        let closeCssBefore = {\n            styles: {\n                'content': '\"\"',\n                'display': 'block',\n                'position': 'absolute',\n                'background': '#000',\n                'border-radius': '1px',\n                'width': '2px',\n                'height': '16px',\n                'top': '2px',\n                'left': '9px',\n                'transform': 'rotate(45deg)',\n            },\n            toString: renderCss,\n        };\n        let closeCssAfter = {\n            styles: {\n                'content': '\"\"',\n                'display': 'block',\n                'position': 'absolute',\n                'background': '#000',\n                'border-radius': '1px',\n                'width': '2px',\n                'height': '16px',\n                'top': '2px',\n                'left': '9px',\n                'transform': 'rotate(-45deg)',\n            },\n            toString: renderCss,\n        };\n        let contentCss = {\n            styles: {\n                'display': 'grid',\n                'gap': '20px',\n                'overflow-y': 'auto',\n                'max-height': '460px',\n                'overflow-x': 'hidden',\n            },\n            toString: renderCss,\n        };\n        let bodyCss = {\n            styles: {\n                'overflow': 'hidden',\n            },\n            toString: renderCss,\n        };\n        let spbcModalStyle = document.createElement( 'style' );\n        spbcModalStyle.setAttribute( 'id', 'spbc-modal-styles' );\n        spbcModalStyle.innerHTML = 'body.spbc-modal-opened{' + bodyCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-overlay{' + overlayCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close{' + closeCss + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close:before{' + closeCssBefore + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-close:after{' + closeCssAfter + '}';\n        spbcModalStyle.innerHTML += '#spbc-modal-content{' + contentCss + '}';\n        document.body.append( spbcModalStyle );\n        /* Cleantalk Modal CSS end */\n\n        let overlay = document.createElement( 'div' );\n        overlay.setAttribute( 'id', 'spbc-modal-overlay' );\n        document.body.append( overlay );\n\n        document.body.classList.add( 'spbc-modal-opened' );\n\n        let inner = document.createElement( 'div' );\n        inner.setAttribute( 'id', 'spbc-modal-inner' );\n        inner.setAttribute( 'style', innerCss );\n        overlay.append( inner );\n\n        let close = document.createElement( 'div' );\n        close.setAttribute( 'id', 'spbc-modal-close' );\n        inner.append( close );\n\n        let content = document.createElement( 'div' );\n        if ( this.loaded ) {\n            content.innerHTML = this.loaded;\n        } else {\n            content.innerHTML = 'Loading...';\n        }\n        content.setAttribute( 'id', 'spbc-modal-content' );\n        inner.append( content );\n\n        this.opened = true;\n\n        return this;\n    },\n\n    close: function() {\n        spbcModal.loaded = '';\n        spbcModal.loading = false;\n        document.body.classList.remove( 'spbc-modal-opened' );\n        document.getElementById( 'spbc-modal-overlay' ).remove();\n        document.getElementById( 'spbc-modal-styles' ).remove();\n        document.dispatchEvent(\n            new CustomEvent( 'spbcModalClosed', {\n                bubbles: true,\n            } ),\n        );\n    },\n\n};\n\n/* Cleantalk Modal helpers */\ndocument.addEventListener('click', function( e ) {\n    if ( e.target && e.target.id === 'spbc-modal-overlay' || e.target.id === 'spbc-modal-close' ) {\n        spbcModal.close();\n    }\n});\ndocument.addEventListener('spbcModalContentLoaded', function( e ) {\n    if ( spbcModal.opened && spbcModal.loaded ) {\n        document.getElementById( 'spbc-modal-content' ).innerHTML = spbcModal.loaded;\n    }\n});\n"],"names":["spbcModal","loaded","loading","opened","opening","load","action","this","callback","result","data","params","obj","document","dispatchEvent","CustomEvent","bubbles","spbcSendAJAXRequest","notJson","putError","errorText","put","html","confirm","text","let","noButton","contentBlock","getElementById","innerHTML","headerBlock","createElement","className","textContent","append","textBlock","textElem","buttonsBlock","yesButton","onclick","close","open","renderCss","cssStr","key","styles","overlayCss","z-index","position","top","left","width","height","background","display","justify-content","align-items","toString","innerCss","padding","margin","max-width","max-height","border","border-radius","box-shadow","closeCss","cursor","right","closeCssBefore","content","transform","closeCssAfter","contentCss","gap","overflow-y","overflow-x","bodyCss","overflow","spbcModalStyle","overlay","setAttribute","body","inner","classList","add","remove","addEventListener","e","target","id"],"mappings":"AACAA,UAAY,CAGRC,OAAQ,CAAA,EACRC,QAAS,CAAA,EACTC,OAAQ,CAAA,EACRC,QAAS,CAAA,EAGTC,KAAM,SAAUC,GACLC,KAAKN,SACRM,KAAKL,QAAU,CAAA,EACfM,SAAW,SAAUC,EAAQC,EAAMC,EAAQC,GACvCZ,UAAUE,QAAU,CAAA,EACpBF,UAAUC,OAASQ,EACnBI,SAASC,cACL,IAAIC,YAAa,yBAA0B,CACvCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,EACoC,YAA/B,OAAOC,qBACRA,oBAAqB,CAACX,OAAUA,CAAM,EAAG,CAACE,SAAYA,SAAUU,QAAW,CAAA,CAAI,CAAE,EAG7F,EAEAC,SAAU,SAAUC,GAMhBb,KAAKc,IALM,iCACCD,EAGR,iKACS,CACjB,EAEAC,IAAK,SAAUC,GACXtB,UAAUE,QAAU,CAAA,EACpBF,UAAUC,OAASqB,EACnBT,SAASC,cACL,IAAIC,YAAa,yBAA0B,CACvCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,EAEAO,QAAS,SAASD,EAAME,EAAO,GAAIhB,GAC/BR,UAAUE,QAAU,CAAA,EACpBuB,IAiCUC,EAjCNC,EAAed,SAASe,eAAe,oBAAoB,EAC3DD,IACAA,EAAaE,UAAY,IAEnBC,EAAcjB,SAASkB,cAAc,KAAK,GACpCC,UAAY,oBACxBF,EAAYG,YAAcX,EAC1BK,EAAaO,OAAOJ,CAAW,GAGzBK,EAAYtB,SAASkB,cAAc,KAAK,GACpCC,UAAY,wBACtBL,EAAaO,OAAOC,CAAS,GAEvBC,EAAWvB,SAASkB,cAAc,KAAK,GACpCC,UAAY,kBACrBI,EAASH,sCAAwCT,oBACjDW,EAAUD,OAAOE,CAAQ,GAGnBC,EAAexB,SAASkB,cAAc,KAAK,GACpCC,UAAY,2BACzBL,EAAaO,OAAOG,CAAY,GAE1BC,EAAYzB,SAASkB,cAAc,QAAQ,GACvCC,UAAY,oBACtBM,EAAUL,YAAc,MACxBK,EAAUC,QAAU,WAChB/B,EAAS,CAAA,CAAI,EACbR,UAAUwC,MAAM,CACpB,EACAH,EAAaH,OAAOI,CAAS,GAEvBZ,EAAWb,SAASkB,cAAc,QAAQ,GACvCC,UAAY,oBACrBN,EAASO,YAAc,KACvBP,EAASa,QAAU,WACfvC,UAAUwC,MAAM,CACpB,EACAH,EAAaH,OAAOR,CAAQ,GAEhCb,SAASC,cACL,IAAIC,YAAa,yBAA0B,CACvCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,EAEAyB,KAAM,WAEc,SAAZC,IACAjB,IAAIkB,EAAS,GACb,IAAMC,OAAOrC,KAAKsC,OACVD,MACAD,GAAUC,IAAM,IAAMrC,KAAKsC,OAAOD,KAAO,KAGjD,OAAOD,CACX,CARAlB,IASIqB,EAAa,CACbD,OAAQ,CACJE,UAAW,OACXC,SAAY,QACZC,IAAO,IACPC,KAAQ,IACRC,MAAS,OACTC,OAAU,OACVC,WAAc,kBACdC,QAAW,OACXC,kBAAmB,SACnBC,cAAe,QACnB,EACAC,SAAUf,CACd,EACIgB,EAAW,CACXb,OAAQ,CACJG,SAAY,WACZW,QAAW,OACXC,OAAU,OACVC,YAAa,QACbC,aAAc,QACdT,WAAc,OACdU,OAAU,6BACVC,gBAAiB,MACjBC,aAAc,qCAClB,EACAR,SAAUf,CACd,EACIwB,EAAW,CACXrB,OAAQ,CACJG,SAAY,WACZK,WAAc,OACdF,MAAS,OACTC,OAAU,OACVW,OAAU,6BACVC,gBAAiB,OACjBG,OAAU,UACVlB,IAAO,OACPmB,MAAS,MACb,EACAX,SAAUf,CACd,EACI2B,EAAiB,CACjBxB,OAAQ,CACJyB,QAAW,KACXhB,QAAW,QACXN,SAAY,WACZK,WAAc,OACdW,gBAAiB,MACjBb,MAAS,MACTC,OAAU,OACVH,IAAO,MACPC,KAAQ,MACRqB,UAAa,eACjB,EACAd,SAAUf,CACd,EACI8B,EAAgB,CAChB3B,OAAQ,CACJyB,QAAW,KACXhB,QAAW,QACXN,SAAY,WACZK,WAAc,OACdW,gBAAiB,MACjBb,MAAS,MACTC,OAAU,OACVH,IAAO,MACPC,KAAQ,MACRqB,UAAa,gBACjB,EACAd,SAAUf,CACd,EACI+B,EAAa,CACb5B,OAAQ,CACJS,QAAW,OACXoB,IAAO,OACPC,aAAc,OACdb,aAAc,QACdc,aAAc,QAClB,EACAnB,SAAUf,CACd,EACImC,EAAU,CACVhC,OAAQ,CACJiC,SAAY,QAChB,EACArB,SAAUf,CACd,EACIqC,EAAiBlE,SAASkB,cAAe,OAAQ,EAWjDiD,GAVJD,EAAeE,aAAc,KAAM,mBAAoB,EACvDF,EAAelD,UAAY,0BAA4BgD,EAAU,IACjEE,EAAelD,WAAa,uBAAyBiB,EAAa,IAClEiC,EAAelD,WAAa,qBAAuBqC,EAAW,IAC9Da,EAAelD,WAAa,4BAA8BwC,EAAiB,IAC3EU,EAAelD,WAAa,2BAA6B2C,EAAgB,IACzEO,EAAelD,WAAa,uBAAyB4C,EAAa,IAClE5D,SAASqE,KAAKhD,OAAQ6C,CAAe,EAGvBlE,SAASkB,cAAe,KAAM,GAMxCoD,GALJH,EAAQC,aAAc,KAAM,oBAAqB,EACjDpE,SAASqE,KAAKhD,OAAQ8C,CAAQ,EAE9BnE,SAASqE,KAAKE,UAAUC,IAAK,mBAAoB,EAErCxE,SAASkB,cAAe,KAAM,GAKtCS,GAJJ2C,EAAMF,aAAc,KAAM,kBAAmB,EAC7CE,EAAMF,aAAc,QAASvB,CAAS,EACtCsB,EAAQ9C,OAAQiD,CAAM,EAEVtE,SAASkB,cAAe,KAAM,GAItCuC,GAHJ9B,EAAMyC,aAAc,KAAM,kBAAmB,EAC7CE,EAAMjD,OAAQM,CAAM,EAEN3B,SAASkB,cAAe,KAAM,GAW5C,OAVKxB,KAAKN,OACNqE,EAAQzC,UAAYtB,KAAKN,OAEzBqE,EAAQzC,UAAY,aAExByC,EAAQW,aAAc,KAAM,oBAAqB,EACjDE,EAAMjD,OAAQoC,CAAQ,EAEtB/D,KAAKJ,OAAS,CAAA,EAEPI,IACX,EAEAiC,MAAO,WACHxC,UAAUC,OAAS,GACnBD,UAAUE,QAAU,CAAA,EACpBW,SAASqE,KAAKE,UAAUE,OAAQ,mBAAoB,EACpDzE,SAASe,eAAgB,oBAAqB,EAAE0D,OAAO,EACvDzE,SAASe,eAAgB,mBAAoB,EAAE0D,OAAO,EACtDzE,SAASC,cACL,IAAIC,YAAa,kBAAmB,CAChCC,QAAS,CAAA,CACb,CAAE,CACN,CACJ,CAEJ,EAGAH,SAAS0E,iBAAiB,QAAS,SAAUC,IACpCA,EAAEC,QAA0B,uBAAhBD,EAAEC,OAAOC,IAA+C,qBAAhBF,EAAEC,OAAOC,KAC9D1F,UAAUwC,MAAM,CAExB,CAAC,EACD3B,SAAS0E,iBAAiB,yBAA0B,SAAUC,GACrDxF,UAAUG,QAAUH,UAAUC,SAC/BY,SAASe,eAAgB,oBAAqB,EAAEC,UAAY7B,UAAUC,OAE9E,CAAC"}
  • security-malware-firewall/trunk/js/spbc-react-bundle.js

    r3093228 r3100891  
    2727/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
    2828
    29 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nclass SpbctPage extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n  constructor(props) {\n    super(props);\n    this.state = {\n      date: new Date()\n    };\n  }\n  componentDidMount() {\n    jQuery('#spbc_gdpr_open_modal').on('click', function () {\n      jQuery('#gdpr_dialog').dialog({\n        modal: true,\n        show: true,\n        position: {\n          my: \"center\",\n          at: \"center\",\n          of: window\n        },\n        width: +(jQuery('#wpbody').width() / 100 * 70),\n        // 70% of #wpbody\n        height: 'auto',\n        title: 'GDPR compliance',\n        draggable: false,\n        resizable: false,\n        closeText: \"Close\"\n      });\n    });\n    jQuery('#wpfooter').hide();\n\n    // Sync button\n    jQuery('#spbc_button__sync').on('click', function () {\n      jQuery('#spbc_button__sync_regular').hide();\n      jQuery('#spbc_button__sync_action').show();\n      spbcSendAJAXRequest({\n        action: 'spbc_sync'\n      }, {\n        timeout: 25000,\n        button: document.getElementById('spbc_button__sync'),\n        spinner: [jQuery('#spbc_button__sync .spbc_preloader_button')],\n        callback: function (result, data, params, obj) {\n          jQuery('#spbc_button__sync .spbc_success').show(300);\n          setTimeout(function () {\n            jQuery('#spbc_button__sync .spbc_success').hide(300);\n          }, 2000);\n          jQuery('#spbc_button__sync_regular').show();\n          jQuery('#spbc_button__sync_action').hide();\n          if (result.reload) {\n            spbc_switchTab(jQuery('.spbc_tab_nav-scanner')[0]);\n            document.location.reload();\n          }\n        }\n      });\n    });\n    if (spbcSettings.key_changed) {\n      jQuery('#spbc_button__sync').click();\n    }\n  }\n  render() {\n    //console.log(this.props);\n    const data = this.props.data;\n    let feedback;\n    if (data.feedback !== '') {\n      feedback = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        style: {\n          marginTop: \"1em\"\n        },\n        dangerouslySetInnerHTML: {\n          __html: data.feedback\n        }\n      });\n    }\n    let premium;\n    if (data.premium !== '') {\n      premium = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        style: {\n          marginTop: \"1em\"\n        },\n        dangerouslySetInnerHTML: {\n          __html: data.premium\n        }\n      });\n    }\n    let goToCleanTalk;\n    if (data.goToCleanTalkLink !== '') {\n      goToCleanTalk = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        id: \"goToCleanTalk\",\n        className: \"spbc-div-2\",\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-2px\",\n          marginRight: \"7px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n        id: \"goToCleanTalkLink\",\n        className: \"spbc_manual_link\",\n        style: {\n          display: \"flex\",\n          alignItems: \"center\"\n        },\n        target: \"_blank\",\n        href: data.goToCleanTalkLink\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_159)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M10.1669 7.69043H9.92542V5.16602C9.92542 4.81006 9.63684 4.52148 9.28089 4.52148C8.92494 4.52148 8.63636 4.81006 8.63636 5.16602V7.69043H7.34713V5.59575C7.34713 5.23979 7.05855 4.95121 6.70259 4.95121C6.34664 4.95121 6.05806 5.23979 6.05806 5.59575V7.69043H4.76883V6.45516C4.76883 6.09921 4.48025 5.81063 4.1243 5.81063C3.76834 5.81063 3.47977 6.09921 3.47977 6.45516V7.69043H3.23828C2.88233 7.69043 2.59375 7.97901 2.59375 8.33496C2.59375 8.69091 2.88233 8.97949 3.23828 8.97949H10.1669C10.5229 8.97949 10.8114 8.69091 10.8114 8.33496C10.8114 7.97901 10.5229 7.69043 10.1669 7.69043Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M7.15888 10.2695H3.23828C2.88233 10.2695 2.59375 10.5581 2.59375 10.9141C2.59375 11.27 2.88233 11.5586 3.23828 11.5586H7.15892C7.51487 11.5586 7.80345 11.27 7.80345 10.9141C7.80345 10.5581 7.51483 10.2695 7.15888 10.2695Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M22 1.68164C22 1.32569 21.7114 1.03711 21.3555 1.03711H0.644531C0.288578 1.03711 0 1.32569 0 1.68164V17.3808C0 17.7367 0.288578 18.0253 0.644531 18.0253H7.63224H14.3678H21.3555C21.7114 18.0253 22 17.7367 22 17.3808V1.68164ZM18.0461 15.9651L17.1296 16.5057L16.2131 15.9651C14.5561 14.9876 13.5266 13.1852 13.5266 11.2613V9.26421C14.26 9.0968 14.9079 8.6492 15.323 8.01566H18.9362C19.3471 8.64288 19.9864 9.08748 20.7109 9.25871V11.7362C20.5571 13.4779 19.5659 15.0685 18.0461 15.9651ZM1.28906 2.32617H20.7109V7.90394C20.359 7.7453 20.0664 7.4639 19.8993 7.10129C19.7939 6.87295 19.5654 6.72664 19.3139 6.72664H14.9453C14.6938 6.72664 14.4653 6.87291 14.36 7.10129C14.0948 7.6763 13.5147 8.04785 12.8822 8.04785C12.5262 8.04785 12.2376 8.33643 12.2376 8.69238V11.2613C12.2376 12.1256 12.4065 12.9698 12.7188 13.7527H1.28906V2.32617ZM1.28906 15.0418H13.4013C13.8409 15.6925 14.3938 16.2686 15.041 16.7363H1.28906V15.0418ZM19.2183 16.7363C19.7954 16.3193 20.2973 15.8161 20.7109 15.2507V16.7363H19.2183Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M18.3438 10.5598L16.8519 12.0518L16.3464 11.5464C16.0947 11.2947 15.6866 11.2947 15.4349 11.5464C15.1832 11.798 15.1832 12.2061 15.4349 12.4579L16.3961 13.4191C16.517 13.5399 16.6809 13.6079 16.8518 13.6079C17.0228 13.6079 17.1867 13.54 17.3075 13.4191L19.2553 11.4713C19.507 11.2197 19.507 10.8116 19.2553 10.5598C19.0036 10.3082 18.5955 10.3082 18.3438 10.5598Z\",\n        fill: \"#026E88\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_159\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", data.goToCleanTalkText));\n    }\n    let support;\n    if (data.support2Link !== '') {\n      support = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n        target: \"_blank\",\n        href: data.support2Link,\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-2px\",\n          textDecoration: \"none\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n        type: \"button\",\n        className: \"spbc_manual_link\",\n        style: {\n          display: \"flex\",\n          alignItems: \"center\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_165)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"mask\", {\n        id: \"mask0_2972_165\",\n        style: {\n          maskType: \"luminance\"\n        },\n        maskUnits: \"userSpaceOnUse\",\n        x: \"0\",\n        y: \"0\",\n        width: \"22\",\n        height: \"23\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M0 0.00195503H22V22.002H0V0.00195503Z\",\n        fill: \"white\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        mask: \"url(#mask0_2972_165)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.54492 16.1564C9.13342 19.1218 11.7492 21.3574 14.8875 21.3574C16.1852 21.3574 17.3933 20.975 18.4059 20.317L21.0435 21.0465L20.3139 18.409C20.9719 17.3963 21.3543 16.1882 21.3543 14.8906C21.3543 11.7523 19.1187 9.13651 16.1533 8.54801\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.40039 0.646486C4.11696 0.646486 0.644531 4.11892 0.644531 8.40234C0.644531 9.93796 1.09093 11.3693 1.86085 12.5738L0.95541 15.8473L4.22894 14.9419C5.43348 15.7118 6.86477 16.1582 8.40039 16.1582C12.6838 16.1582 16.1562 12.6858 16.1562 8.40234C16.1562 4.11892 12.6838 0.646486 8.40039 0.646486Z\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M9.04492 12.9355H7.75586V11.6465H9.04492V12.9355Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M6.46484 6.44727C6.46484 5.37936 7.33054 4.51367 8.39844 4.51367C9.46634 4.51367 10.332 5.37936 10.332 6.44727C10.332 7.0123 10.0896 7.52067 9.7031 7.87417L8.39844 9.06836V10.3574\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_165\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", data.support2Text));\n    }\n    let sync;\n    if (data.sync !== '') {\n      sync = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n        type: \"button\",\n        className: \"spbc_manual_link\",\n        id: \"spbc_button__sync\",\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-6px\",\n          marginRight: \"7px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\",\n        style: {\n          position: \"absolute\",\n          top: \"5px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_179)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M16.5 21.9991C16.4083 21.9991 16.3167 21.9808 16.2305 21.9441C16.0178 21.8534 11 19.668 11 15.1736V11.4905C11 11.1962 11.187 10.935 11.4666 10.8396L16.2791 9.20245C16.4221 9.15387 16.5779 9.15387 16.7209 9.20245L21.5334 10.8396C21.813 10.935 22 11.1962 22 11.4905V15.1736C22 19.668 16.9822 21.8534 16.7695 21.945C16.6833 21.9808 16.5917 21.9991 16.5 21.9991ZM12.375 11.9827V15.1727C12.375 18.228 15.543 20.065 16.5 20.549C17.457 20.065 20.625 18.228 20.625 15.1727V11.9827L16.5 10.5793L12.375 11.9827Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M16.2706 17.8756C16.0891 17.8756 15.9131 17.8041 15.7848 17.6739L13.9514 15.8406C13.6829 15.572 13.6829 15.1366 13.9514 14.868C14.22 14.5994 14.6554 14.5994 14.924 14.868L16.1973 16.1413L18.4706 13.1089C18.6961 12.8055 19.1288 12.7432 19.4331 12.9723C19.7365 13.1997 19.7979 13.6305 19.5697 13.9348L16.8197 17.6015C16.7005 17.761 16.5181 17.86 16.3183 17.8747C16.3027 17.8747 16.2871 17.8756 16.2706 17.8756Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M9.7075 19.25H2.52083C1.13025 19.25 0 18.1198 0 16.7292V2.52083C0 1.13025 1.13025 0 2.52083 0H13.0625C14.4531 0 15.5833 1.13025 15.5833 2.52083V7.49833C15.5833 7.87783 15.2753 8.18583 14.8958 8.18583C14.5163 8.18583 14.2083 7.87783 14.2083 7.49833V2.52083C14.2083 1.88925 13.6941 1.375 13.0625 1.375H2.52083C1.88925 1.375 1.375 1.88925 1.375 2.52083V16.7292C1.375 17.3608 1.88925 17.875 2.52083 17.875H9.7075C10.087 17.875 10.395 18.183 10.395 18.5625C10.395 18.942 10.087 19.25 9.7075 19.25Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M12.1458 8.70898H3.4375C3.058 8.70898 2.75 8.40098 2.75 8.02148C2.75 7.64198 3.058 7.33398 3.4375 7.33398H12.1458C12.5253 7.33398 12.8333 7.64198 12.8333 8.02148C12.8333 8.40098 12.5253 8.70898 12.1458 8.70898Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.47917 12.375H3.4375C3.058 12.375 2.75 12.067 2.75 11.6875C2.75 11.308 3.058 11 3.4375 11H8.47917C8.85867 11 9.16667 11.308 9.16667 11.6875C9.16667 12.067 8.85867 12.375 8.47917 12.375Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M7.5625 5.04102H3.4375C3.058 5.04102 2.75 4.73302 2.75 4.35352C2.75 3.97402 3.058 3.66602 3.4375 3.66602H7.5625C7.942 3.66602 8.25 3.97402 8.25 4.35352C8.25 4.73302 7.942 5.04102 7.5625 5.04102Z\",\n        fill: \"#026E88\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_179\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        id: \"spbc_button__sync_regular\",\n        style: {\n          paddingLeft: \"18px\"\n        }\n      }, data.sync), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        className: \"--hide\",\n        id: \"spbc_button__sync_action\",\n        style: {\n          paddingLeft: \"18px\"\n        }\n      }, data.syncProgress), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n        style: {\n          marginLeft: \"10px\",\n          marginTop: \"1px\"\n        },\n        className: \"spbc_preloader_button\",\n        src: data.syncUrl\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n        style: {\n          marginLeft: \"10px\"\n        },\n        className: \"spbc_success --hide\",\n        src: data.syncUrlProgress\n      }));\n    }\n    let spbcErrors = '';\n    if (data.spbcErrors) {\n      spbcErrors = data.spbcErrors;\n      spbcErrors = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        className: \"spbc_page_header_info__error_block\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n        htmlFor: \"spbc_page_header_info__error_block\",\n        className: \"spbc_page_header_info__block_label\"\n      }, \"Errors\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        id: \"spbc_page_header_info__error_block\",\n        className: \"spbc_page_header_info__block_body\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        className: \"error\",\n        style: {\n          margin: \"5px 0 5px\"\n        },\n        dangerouslySetInnerHTML: {\n          __html: spbcErrors\n        }\n      })));\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"wrap\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      style: {\n        display: \"flex\",\n        alignItems: \"center\",\n        height: \"40px\"\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h2\", null, data.brandname)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_common_wrapper\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_left_column\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__state_block\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n      htmlFor: \"spbc_page_header_info_block\",\n      className: \"spbc_page_header_info__block_label\"\n    }, \"State info\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      id: \"spbc_page_header_info_block\",\n      className: \"spbc_page_header_info__block_body\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.adminsOnlineCount\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\"\n    }, data.nextScanLaunchTime))), spbcErrors), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_right_column\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n      htmlFor: \"spbc_page_header_about_block\",\n      className: \"spbc_page_header_info__block_label\"\n    }, \"About CleanTalk\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      id: \"spbc_page_header_about_block\",\n      className: \"spbc_page_header_info__block_body\",\n      style: {\n        height: \"100%\"\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n      className: \"spbc_page_header_info__block_row\"\n    }, data.supportOf), \" \\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.supportLink\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.homepage\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.gdprCompliance\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.gdprDialog\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.twoFactorAuth\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.trademark\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, feedback), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, premium))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_buttons_wrapper\"\n    }, goToCleanTalk, support, \"\\xA0\\xA0\", sync));\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SpbctPage);\n\n//# sourceURL=webpack:///./js/src/react/components/SpbctPage.js?");
     29eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nclass SpbctPage extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n  constructor(props) {\n    super(props);\n    this.state = {\n      date: new Date()\n    };\n  }\n  componentDidMount() {\n    jQuery('#spbc_gdpr_open_modal').on('click', function () {\n      jQuery('#gdpr_dialog').dialog({\n        modal: true,\n        show: true,\n        position: {\n          my: \"center\",\n          at: \"center\",\n          of: window\n        },\n        width: +(jQuery('#wpbody').width() / 100 * 70),\n        // 70% of #wpbody\n        height: 'auto',\n        title: 'GDPR compliance',\n        draggable: false,\n        resizable: false,\n        closeText: \"Close\"\n      });\n    });\n    jQuery('#wpfooter').hide();\n\n    // Sync button\n    jQuery('#spbc_button__sync').on('click', function () {\n      jQuery('#spbc_button__sync_regular').hide();\n      jQuery('#spbc_button__sync_action').show();\n      spbcSendAJAXRequest({\n        action: 'spbc_sync'\n      }, {\n        timeout: 25000,\n        button: document.getElementById('spbc_button__sync'),\n        spinner: [jQuery('#spbc_button__sync .spbc_preloader_button')],\n        callback: function (result, data, params, obj) {\n          jQuery('#spbc_button__sync .spbc_success').show(300);\n          setTimeout(function () {\n            jQuery('#spbc_button__sync .spbc_success').hide(300);\n          }, 2000);\n          jQuery('#spbc_button__sync_regular').show();\n          jQuery('#spbc_button__sync_action').hide();\n          if (result.reload) {\n            spbc_switchTab(jQuery('.spbc_tab_nav-scanner')[0]);\n            document.location.reload();\n          }\n        }\n      });\n    });\n    if (spbcSettings.key_changed) {\n      jQuery('#spbc_button__sync').click();\n    }\n  }\n  render() {\n    //console.log(this.props);\n    const data = this.props.data;\n    let goToCleanTalk;\n    if (data.goToCleanTalkLink !== '') {\n      goToCleanTalk = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        id: \"goToCleanTalk\",\n        className: \"spbc-div-2\",\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-2px\",\n          marginRight: \"7px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n        id: \"goToCleanTalkLink\",\n        className: \"spbc_manual_link\",\n        style: {\n          display: \"flex\",\n          alignItems: \"center\"\n        },\n        target: \"_blank\",\n        href: data.goToCleanTalkLink\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_159)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M10.1669 7.69043H9.92542V5.16602C9.92542 4.81006 9.63684 4.52148 9.28089 4.52148C8.92494 4.52148 8.63636 4.81006 8.63636 5.16602V7.69043H7.34713V5.59575C7.34713 5.23979 7.05855 4.95121 6.70259 4.95121C6.34664 4.95121 6.05806 5.23979 6.05806 5.59575V7.69043H4.76883V6.45516C4.76883 6.09921 4.48025 5.81063 4.1243 5.81063C3.76834 5.81063 3.47977 6.09921 3.47977 6.45516V7.69043H3.23828C2.88233 7.69043 2.59375 7.97901 2.59375 8.33496C2.59375 8.69091 2.88233 8.97949 3.23828 8.97949H10.1669C10.5229 8.97949 10.8114 8.69091 10.8114 8.33496C10.8114 7.97901 10.5229 7.69043 10.1669 7.69043Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M7.15888 10.2695H3.23828C2.88233 10.2695 2.59375 10.5581 2.59375 10.9141C2.59375 11.27 2.88233 11.5586 3.23828 11.5586H7.15892C7.51487 11.5586 7.80345 11.27 7.80345 10.9141C7.80345 10.5581 7.51483 10.2695 7.15888 10.2695Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M22 1.68164C22 1.32569 21.7114 1.03711 21.3555 1.03711H0.644531C0.288578 1.03711 0 1.32569 0 1.68164V17.3808C0 17.7367 0.288578 18.0253 0.644531 18.0253H7.63224H14.3678H21.3555C21.7114 18.0253 22 17.7367 22 17.3808V1.68164ZM18.0461 15.9651L17.1296 16.5057L16.2131 15.9651C14.5561 14.9876 13.5266 13.1852 13.5266 11.2613V9.26421C14.26 9.0968 14.9079 8.6492 15.323 8.01566H18.9362C19.3471 8.64288 19.9864 9.08748 20.7109 9.25871V11.7362C20.5571 13.4779 19.5659 15.0685 18.0461 15.9651ZM1.28906 2.32617H20.7109V7.90394C20.359 7.7453 20.0664 7.4639 19.8993 7.10129C19.7939 6.87295 19.5654 6.72664 19.3139 6.72664H14.9453C14.6938 6.72664 14.4653 6.87291 14.36 7.10129C14.0948 7.6763 13.5147 8.04785 12.8822 8.04785C12.5262 8.04785 12.2376 8.33643 12.2376 8.69238V11.2613C12.2376 12.1256 12.4065 12.9698 12.7188 13.7527H1.28906V2.32617ZM1.28906 15.0418H13.4013C13.8409 15.6925 14.3938 16.2686 15.041 16.7363H1.28906V15.0418ZM19.2183 16.7363C19.7954 16.3193 20.2973 15.8161 20.7109 15.2507V16.7363H19.2183Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M18.3438 10.5598L16.8519 12.0518L16.3464 11.5464C16.0947 11.2947 15.6866 11.2947 15.4349 11.5464C15.1832 11.798 15.1832 12.2061 15.4349 12.4579L16.3961 13.4191C16.517 13.5399 16.6809 13.6079 16.8518 13.6079C17.0228 13.6079 17.1867 13.54 17.3075 13.4191L19.2553 11.4713C19.507 11.2197 19.507 10.8116 19.2553 10.5598C19.0036 10.3082 18.5955 10.3082 18.3438 10.5598Z\",\n        fill: \"#026E88\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_159\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", data.goToCleanTalkText));\n    }\n    let support;\n    if (data.support2Link !== '') {\n      support = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"a\", {\n        target: \"_blank\",\n        href: data.support2Link,\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-2px\",\n          textDecoration: \"none\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n        type: \"button\",\n        className: \"spbc_manual_link\",\n        style: {\n          display: \"flex\",\n          alignItems: \"center\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_165)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"mask\", {\n        id: \"mask0_2972_165\",\n        style: {\n          maskType: \"luminance\"\n        },\n        maskUnits: \"userSpaceOnUse\",\n        x: \"0\",\n        y: \"0\",\n        width: \"22\",\n        height: \"23\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M0 0.00195503H22V22.002H0V0.00195503Z\",\n        fill: \"white\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        mask: \"url(#mask0_2972_165)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.54492 16.1564C9.13342 19.1218 11.7492 21.3574 14.8875 21.3574C16.1852 21.3574 17.3933 20.975 18.4059 20.317L21.0435 21.0465L20.3139 18.409C20.9719 17.3963 21.3543 16.1882 21.3543 14.8906C21.3543 11.7523 19.1187 9.13651 16.1533 8.54801\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.40039 0.646486C4.11696 0.646486 0.644531 4.11892 0.644531 8.40234C0.644531 9.93796 1.09093 11.3693 1.86085 12.5738L0.95541 15.8473L4.22894 14.9419C5.43348 15.7118 6.86477 16.1582 8.40039 16.1582C12.6838 16.1582 16.1562 12.6858 16.1562 8.40234C16.1562 4.11892 12.6838 0.646486 8.40039 0.646486Z\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M9.04492 12.9355H7.75586V11.6465H9.04492V12.9355Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M6.46484 6.44727C6.46484 5.37936 7.33054 4.51367 8.39844 4.51367C9.46634 4.51367 10.332 5.37936 10.332 6.44727C10.332 7.0123 10.0896 7.52067 9.7031 7.87417L8.39844 9.06836V10.3574\",\n        stroke: \"#026E88\",\n        strokeWidth: \"1.26953\",\n        strokeMiterlimit: \"10\"\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_165\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", data.support2Text));\n    }\n    let sync;\n    if (data.sync !== '') {\n      sync = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", {\n        type: \"button\",\n        className: \"spbc_manual_link\",\n        id: \"spbc_button__sync\",\n        style: {\n          display: \"inline-block\",\n          position: \"relative\",\n          top: \"-6px\",\n          marginRight: \"7px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n        width: \"18\",\n        height: \"18\",\n        viewBox: \"0 0 22 22\",\n        fill: \"none\",\n        xmlns: \"http://www.w3.org/2000/svg\",\n        style: {\n          position: \"absolute\",\n          top: \"5px\"\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"g\", {\n        clipPath: \"url(#clip0_2972_179)\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M16.5 21.9991C16.4083 21.9991 16.3167 21.9808 16.2305 21.9441C16.0178 21.8534 11 19.668 11 15.1736V11.4905C11 11.1962 11.187 10.935 11.4666 10.8396L16.2791 9.20245C16.4221 9.15387 16.5779 9.15387 16.7209 9.20245L21.5334 10.8396C21.813 10.935 22 11.1962 22 11.4905V15.1736C22 19.668 16.9822 21.8534 16.7695 21.945C16.6833 21.9808 16.5917 21.9991 16.5 21.9991ZM12.375 11.9827V15.1727C12.375 18.228 15.543 20.065 16.5 20.549C17.457 20.065 20.625 18.228 20.625 15.1727V11.9827L16.5 10.5793L12.375 11.9827Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M16.2706 17.8756C16.0891 17.8756 15.9131 17.8041 15.7848 17.6739L13.9514 15.8406C13.6829 15.572 13.6829 15.1366 13.9514 14.868C14.22 14.5994 14.6554 14.5994 14.924 14.868L16.1973 16.1413L18.4706 13.1089C18.6961 12.8055 19.1288 12.7432 19.4331 12.9723C19.7365 13.1997 19.7979 13.6305 19.5697 13.9348L16.8197 17.6015C16.7005 17.761 16.5181 17.86 16.3183 17.8747C16.3027 17.8747 16.2871 17.8756 16.2706 17.8756Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M9.7075 19.25H2.52083C1.13025 19.25 0 18.1198 0 16.7292V2.52083C0 1.13025 1.13025 0 2.52083 0H13.0625C14.4531 0 15.5833 1.13025 15.5833 2.52083V7.49833C15.5833 7.87783 15.2753 8.18583 14.8958 8.18583C14.5163 8.18583 14.2083 7.87783 14.2083 7.49833V2.52083C14.2083 1.88925 13.6941 1.375 13.0625 1.375H2.52083C1.88925 1.375 1.375 1.88925 1.375 2.52083V16.7292C1.375 17.3608 1.88925 17.875 2.52083 17.875H9.7075C10.087 17.875 10.395 18.183 10.395 18.5625C10.395 18.942 10.087 19.25 9.7075 19.25Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M12.1458 8.70898H3.4375C3.058 8.70898 2.75 8.40098 2.75 8.02148C2.75 7.64198 3.058 7.33398 3.4375 7.33398H12.1458C12.5253 7.33398 12.8333 7.64198 12.8333 8.02148C12.8333 8.40098 12.5253 8.70898 12.1458 8.70898Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M8.47917 12.375H3.4375C3.058 12.375 2.75 12.067 2.75 11.6875C2.75 11.308 3.058 11 3.4375 11H8.47917C8.85867 11 9.16667 11.308 9.16667 11.6875C9.16667 12.067 8.85867 12.375 8.47917 12.375Z\",\n        fill: \"#026E88\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"path\", {\n        d: \"M7.5625 5.04102H3.4375C3.058 5.04102 2.75 4.73302 2.75 4.35352C2.75 3.97402 3.058 3.66602 3.4375 3.66602H7.5625C7.942 3.66602 8.25 3.97402 8.25 4.35352C8.25 4.73302 7.942 5.04102 7.5625 5.04102Z\",\n        fill: \"#026E88\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"defs\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"clipPath\", {\n        id: \"clip0_2972_179\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"rect\", {\n        width: \"22\",\n        height: \"22\",\n        fill: \"white\"\n      })))), \"\\xA0\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        id: \"spbc_button__sync_regular\",\n        style: {\n          paddingLeft: \"18px\"\n        }\n      }, data.sync), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        className: \"--hide\",\n        id: \"spbc_button__sync_action\",\n        style: {\n          paddingLeft: \"18px\"\n        }\n      }, data.syncProgress), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n        style: {\n          marginLeft: \"10px\",\n          marginTop: \"1px\"\n        },\n        className: \"spbc_preloader_button\",\n        src: data.syncUrl\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n        style: {\n          marginLeft: \"10px\"\n        },\n        className: \"spbc_success --hide\",\n        src: data.syncUrlProgress\n      }));\n    }\n    let spbcErrors = '';\n    if (data.spbcErrors) {\n      spbcErrors = data.spbcErrors;\n      spbcErrors = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        className: \"spbc_page_header_info__error_block\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n        htmlFor: \"spbc_page_header_info__error_block\",\n        className: \"spbc_page_header_info__block_label\"\n      }, \"Errors\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        id: \"spbc_page_header_info__error_block\",\n        className: \"spbc_page_header_info__block_body\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n        className: \"error\",\n        style: {\n          margin: \"5px 0 5px\"\n        },\n        dangerouslySetInnerHTML: {\n          __html: spbcErrors\n        }\n      })));\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"wrap\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      style: {\n        display: \"flex\",\n        alignItems: \"center\",\n        height: \"40px\"\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h2\", null, data.brandname)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_common_wrapper\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_left_column\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__state_block\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n      htmlFor: \"spbc_page_header_info_block\",\n      className: \"spbc_page_header_info__block_label\"\n    }, \"State info\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      id: \"spbc_page_header_info_block\",\n      className: \"spbc_page_header_info__block_body\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.adminsOnlineCount\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\"\n    }, data.nextScanLaunchTime))), spbcErrors), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info_right_column\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n      htmlFor: \"spbc_page_header_about_block\",\n      className: \"spbc_page_header_info__block_label\"\n    }, \"About CleanTalk\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      id: \"spbc_page_header_about_block\",\n      className: \"spbc_page_header_info__block_body\",\n      style: {\n        height: \"100%\"\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.supportLink\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.homepage\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.malwareCleaning\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.websiteSecurityAudit\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.gdprComplianceLink\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.trademark\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.feedback\n      }\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__about_block__divider\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.premium\n      }\n    })))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_buttons_wrapper\"\n    }, goToCleanTalk, support, \"\\xA0\\xA0\", sync), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_hide\"\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.gdprModalWindow\n      }\n    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n      className: \"spbc_page_header_info__block_row\",\n      dangerouslySetInnerHTML: {\n        __html: data.twoFactorAuth\n      }\n    })));\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SpbctPage);\n\n//# sourceURL=webpack:///./js/src/react/components/SpbctPage.js?");
    3030
    3131/***/ }),
     
    6767/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
    6868
    69 eval("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */if(true){(function(){'use strict';/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!=='undefined'&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==='function'){__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());}var React=__webpack_require__(/*! react */ \"./node_modules/react/index.js\");var Scheduler=__webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");var ReactSharedInternals=React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;var suppressWarning=false;function setSuppressWarning(newSuppressWarning){{suppressWarning=newSuppressWarning;}}// In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\nfunction warn(format){{if(!suppressWarning){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}printWarning('warn',format,args);}}}function error(format){{if(!suppressWarning){for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2];}printWarning('error',format,args);}}}function printWarning(level,format,args){// When changing this logic, you might want to also\n// update consoleWithStackDev.www.js as well.\n{var ReactDebugCurrentFrame=ReactSharedInternals.ReactDebugCurrentFrame;var stack=ReactDebugCurrentFrame.getStackAddendum();if(stack!==''){format+='%s';args=args.concat([stack]);}// eslint-disable-next-line react-internal/safe-string-coercion\nvar argsWithFormat=args.map(function(item){return String(item);});// Careful: RN currently depends on this prefix\nargsWithFormat.unshift('Warning: '+format);// We intentionally don't use spread (or .apply) directly because it\n// breaks IE9: https://github.com/facebook/react/issues/13610\n// eslint-disable-next-line react-internal/no-production-logging\nFunction.prototype.apply.call(console[level],console,argsWithFormat);}}var FunctionComponent=0;var ClassComponent=1;var IndeterminateComponent=2;// Before we know whether it is function or class\nvar HostRoot=3;// Root of a host tree. Could be nested inside another node.\nvar HostPortal=4;// A subtree. Could be an entry point to a different renderer.\nvar HostComponent=5;var HostText=6;var Fragment=7;var Mode=8;var ContextConsumer=9;var ContextProvider=10;var ForwardRef=11;var Profiler=12;var SuspenseComponent=13;var MemoComponent=14;var SimpleMemoComponent=15;var LazyComponent=16;var IncompleteClassComponent=17;var DehydratedFragment=18;var SuspenseListComponent=19;var ScopeComponent=21;var OffscreenComponent=22;var LegacyHiddenComponent=23;var CacheComponent=24;var TracingMarkerComponent=25;// -----------------------------------------------------------------------------\nvar enableClientRenderFallbackOnTextMismatch=true;// TODO: Need to review this code one more time before landing\n// the react-reconciler package.\nvar enableNewReconciler=false;// Support legacy Primer support on internal FB www\nvar enableLazyContextPropagation=false;// FB-only usage. The new API has different semantics.\nvar enableLegacyHidden=false;// Enables unstable_avoidThisFallback feature in Fiber\nvar enableSuspenseAvoidThisFallback=false;// Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\nvar disableCommentsAsDOMContainers=true;// Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\nvar enableCustomElementPropertySupport=false;// Disables children for <textarea> elements\nvar warnAboutStringRefs=false;// -----------------------------------------------------------------------------\n// Debugging and DevTools\n// -----------------------------------------------------------------------------\n// Adds user timing marks for e.g. state updates, suspense, and work loop stuff,\n// for an experimental timeline tool.\nvar enableSchedulingProfiler=true;// Helps identify side effects in render-phase lifecycle hooks and setState\nvar enableProfilerTimer=true;// Record durations for commit and passive effects phases.\nvar enableProfilerCommitHooks=true;// Phase param passed to onRender callback differentiates between an \"update\" and a \"cascading-update\".\nvar allNativeEvents=new Set();/**\n * Mapping from registration name to event name\n */var registrationNameDependencies={};/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */var possibleRegistrationNames={};// Trust the developer to only use possibleRegistrationNames in true\nfunction registerTwoPhaseEvent(registrationName,dependencies){registerDirectEvent(registrationName,dependencies);registerDirectEvent(registrationName+'Capture',dependencies);}function registerDirectEvent(registrationName,dependencies){{if(registrationNameDependencies[registrationName]){error('EventRegistry: More than one plugin attempted to publish the same '+'registration name, `%s`.',registrationName);}}registrationNameDependencies[registrationName]=dependencies;{var lowerCasedName=registrationName.toLowerCase();possibleRegistrationNames[lowerCasedName]=registrationName;if(registrationName==='onDoubleClick'){possibleRegistrationNames.ondblclick=registrationName;}}for(var i=0;i<dependencies.length;i++){allNativeEvents.add(dependencies[i]);}}var canUseDOM=!!(typeof window!=='undefined'&&typeof window.document!=='undefined'&&typeof window.document.createElement!=='undefined');var hasOwnProperty=Object.prototype.hasOwnProperty;/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */ // $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value){{// toStringTag is needed for namespaced types like Temporal.Instant\nvar hasToStringTag=typeof Symbol==='function'&&Symbol.toStringTag;var type=hasToStringTag&&value[Symbol.toStringTag]||value.constructor.name||'Object';return type;}}// $FlowFixMe only called in DEV, so void return is not possible.\nfunction willCoercionThrow(value){{try{testStringCoercion(value);return false;}catch(e){return true;}}}function testStringCoercion(value){// If you ended up here by following an exception call stack, here's what's\n// happened: you supplied an object or symbol value to React (as a prop, key,\n// DOM attribute, CSS property, string ref, etc.) and when React tried to\n// coerce it to a string using `'' + value`, an exception was thrown.\n//\n// The most common types that will cause this exception are `Symbol` instances\n// and Temporal objects like `Temporal.Instant`. But any object that has a\n// `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n// exception. (Library authors do this to prevent users from using built-in\n// numeric operators like `+` or comparison operators like `>=` because custom\n// methods are needed to perform accurate arithmetic or comparison.)\n//\n// To fix the problem, coerce this object or symbol value to a string before\n// passing it to React. The most reliable way is usually `String(value)`.\n//\n// To find which value is throwing, check the browser or debugger console.\n// Before this exception was thrown, there should be `console.error` output\n// that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n// problem and how that type was used: key, atrribute, input value prop, etc.\n// In most cases, this console output also shows the component and its\n// ancestor components where the exception happened.\n//\n// eslint-disable-next-line react-internal/safe-string-coercion\nreturn''+value;}function checkAttributeStringCoercion(value,attributeName){{if(willCoercionThrow(value)){error('The provided `%s` attribute is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',attributeName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkKeyStringCoercion(value){{if(willCoercionThrow(value)){error('The provided key is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkPropStringCoercion(value,propName){{if(willCoercionThrow(value)){error('The provided `%s` prop is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',propName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkCSSPropertyStringCoercion(value,propName){{if(willCoercionThrow(value)){error('The provided `%s` CSS property is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',propName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkHtmlStringCoercion(value){{if(willCoercionThrow(value)){error('The provided HTML markup uses a value of unsupported type %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkFormFieldValueStringCoercion(value){{if(willCoercionThrow(value)){error('Form field values (value, checked, defaultValue, or defaultChecked props)'+' must be strings, not %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED=0;// A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\nvar STRING=1;// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING=2;// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN=3;// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN=4;// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC=5;// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC=6;/* eslint-disable max-len */var ATTRIBUTE_NAME_START_CHAR=\":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";/* eslint-enable max-len */var ATTRIBUTE_NAME_CHAR=ATTRIBUTE_NAME_START_CHAR+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";var VALID_ATTRIBUTE_NAME_REGEX=new RegExp('^['+ATTRIBUTE_NAME_START_CHAR+']['+ATTRIBUTE_NAME_CHAR+']*$');var illegalAttributeNameCache={};var validatedAttributeNameCache={};function isAttributeNameSafe(attributeName){if(hasOwnProperty.call(validatedAttributeNameCache,attributeName)){return true;}if(hasOwnProperty.call(illegalAttributeNameCache,attributeName)){return false;}if(VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)){validatedAttributeNameCache[attributeName]=true;return true;}illegalAttributeNameCache[attributeName]=true;{error('Invalid attribute name: `%s`',attributeName);}return false;}function shouldIgnoreAttribute(name,propertyInfo,isCustomComponentTag){if(propertyInfo!==null){return propertyInfo.type===RESERVED;}if(isCustomComponentTag){return false;}if(name.length>2&&(name[0]==='o'||name[0]==='O')&&(name[1]==='n'||name[1]==='N')){return true;}return false;}function shouldRemoveAttributeWithWarning(name,value,propertyInfo,isCustomComponentTag){if(propertyInfo!==null&&propertyInfo.type===RESERVED){return false;}switch(typeof value){case'function':// $FlowIssue symbol is perfectly valid here\ncase'symbol':// eslint-disable-line\nreturn true;case'boolean':{if(isCustomComponentTag){return false;}if(propertyInfo!==null){return!propertyInfo.acceptsBooleans;}else{var prefix=name.toLowerCase().slice(0,5);return prefix!=='data-'&&prefix!=='aria-';}}default:return false;}}function shouldRemoveAttribute(name,value,propertyInfo,isCustomComponentTag){if(value===null||typeof value==='undefined'){return true;}if(shouldRemoveAttributeWithWarning(name,value,propertyInfo,isCustomComponentTag)){return true;}if(isCustomComponentTag){return false;}if(propertyInfo!==null){switch(propertyInfo.type){case BOOLEAN:return!value;case OVERLOADED_BOOLEAN:return value===false;case NUMERIC:return isNaN(value);case POSITIVE_NUMERIC:return isNaN(value)||value<1;}}return false;}function getPropertyInfo(name){return properties.hasOwnProperty(name)?properties[name]:null;}function PropertyInfoRecord(name,type,mustUseProperty,attributeName,attributeNamespace,sanitizeURL,removeEmptyString){this.acceptsBooleans=type===BOOLEANISH_STRING||type===BOOLEAN||type===OVERLOADED_BOOLEAN;this.attributeName=attributeName;this.attributeNamespace=attributeNamespace;this.mustUseProperty=mustUseProperty;this.propertyName=name;this.type=type;this.sanitizeURL=sanitizeURL;this.removeEmptyString=removeEmptyString;}// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties={};// These props are reserved by React. They shouldn't be written to the DOM.\nvar reservedProps=['children','dangerouslySetInnerHTML',// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue','defaultChecked','innerHTML','suppressContentEditableWarning','suppressHydrationWarning','style'];reservedProps.forEach(function(name){properties[name]=new PropertyInfoRecord(name,RESERVED,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset','accept-charset'],['className','class'],['htmlFor','for'],['httpEquiv','http-equiv']].forEach(function(_ref){var name=_ref[0],attributeName=_ref[1];properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable','draggable','spellCheck','value'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEANISH_STRING,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse','externalResourcesRequired','focusable','preserveAlpha'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEANISH_STRING,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML boolean attributes.\n['allowFullScreen','async',// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus','autoPlay','controls','default','defer','disabled','disablePictureInPicture','disableRemotePlayback','formNoValidate','hidden','loop','noModule','noValidate','open','playsInline','readOnly','required','reversed','scoped','seamless',// Microdata\n'itemScope'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEAN,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple','muted','selected'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEAN,true,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture','download'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,OVERLOADED_BOOLEAN,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that must be positive numbers.\n['cols','rows','size','span'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,POSITIVE_NUMERIC,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that must be numbers.\n['rowSpan','start'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,NUMERIC,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});var CAMELIZE=/[\\-\\:]([a-z])/g;var capitalize=function(token){return token[1].toUpperCase();};// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n['accent-height','alignment-baseline','arabic-form','baseline-shift','cap-height','clip-path','clip-rule','color-interpolation','color-interpolation-filters','color-profile','color-rendering','dominant-baseline','enable-background','fill-opacity','fill-rule','flood-color','flood-opacity','font-family','font-size','font-size-adjust','font-stretch','font-style','font-variant','font-weight','glyph-name','glyph-orientation-horizontal','glyph-orientation-vertical','horiz-adv-x','horiz-origin-x','image-rendering','letter-spacing','lighting-color','marker-end','marker-mid','marker-start','overline-position','overline-thickness','paint-order','panose-1','pointer-events','rendering-intent','shape-rendering','stop-color','stop-opacity','strikethrough-position','strikethrough-thickness','stroke-dasharray','stroke-dashoffset','stroke-linecap','stroke-linejoin','stroke-miterlimit','stroke-opacity','stroke-width','text-anchor','text-decoration','text-rendering','underline-position','underline-thickness','unicode-bidi','unicode-range','units-per-em','v-alphabetic','v-hanging','v-ideographic','v-mathematical','vector-effect','vert-adv-y','vert-origin-x','vert-origin-y','word-spacing','writing-mode','xmlns:xlink','x-height'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,null,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// String SVG attributes with the xlink namespace.\n['xlink:actuate','xlink:arcrole','xlink:role','xlink:show','xlink:title','xlink:type'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,'http://www.w3.org/1999/xlink',false,// sanitizeURL\nfalse);});// String SVG attributes with the xml namespace.\n['xml:base','xml:lang','xml:space'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,'http://www.w3.org/XML/1998/namespace',false,// sanitizeURL\nfalse);});// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex','crossOrigin'].forEach(function(attributeName){properties[attributeName]=new PropertyInfoRecord(attributeName,STRING,false,// mustUseProperty\nattributeName.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nvar xlinkHref='xlinkHref';properties[xlinkHref]=new PropertyInfoRecord('xlinkHref',STRING,false,// mustUseProperty\n'xlink:href','http://www.w3.org/1999/xlink',true,// sanitizeURL\nfalse);['src','href','action','formAction'].forEach(function(attributeName){properties[attributeName]=new PropertyInfoRecord(attributeName,STRING,false,// mustUseProperty\nattributeName.toLowerCase(),// attributeName\nnull,// attributeNamespace\ntrue,// sanitizeURL\ntrue);});// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n/* eslint-disable max-len */var isJavaScriptProtocol=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;var didWarn=false;function sanitizeURL(url){{if(!didWarn&&isJavaScriptProtocol.test(url)){didWarn=true;error('A future version of React will block javascript: URLs as a security precaution. '+'Use event handlers instead if you can. If you need to generate unsafe HTML try '+'using dangerouslySetInnerHTML instead. React was passed %s.',JSON.stringify(url));}}}/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */function getValueForProperty(node,name,expected,propertyInfo){{if(propertyInfo.mustUseProperty){var propertyName=propertyInfo.propertyName;return node[propertyName];}else{// This check protects multiple uses of `expected`, which is why the\n// react-internal/safe-string-coercion rule is disabled in several spots\n// below.\n{checkAttributeStringCoercion(expected,name);}if(propertyInfo.sanitizeURL){// If we haven't fully disabled javascript: URLs, and if\n// the hydration is successful of a javascript: URL, we\n// still want to warn on the client.\n// eslint-disable-next-line react-internal/safe-string-coercion\nsanitizeURL(''+expected);}var attributeName=propertyInfo.attributeName;var stringValue=null;if(propertyInfo.type===OVERLOADED_BOOLEAN){if(node.hasAttribute(attributeName)){var value=node.getAttribute(attributeName);if(value===''){return true;}if(shouldRemoveAttribute(name,expected,propertyInfo,false)){return value;}// eslint-disable-next-line react-internal/safe-string-coercion\nif(value===''+expected){return expected;}return value;}}else if(node.hasAttribute(attributeName)){if(shouldRemoveAttribute(name,expected,propertyInfo,false)){// We had an attribute but shouldn't have had one, so read it\n// for the error message.\nreturn node.getAttribute(attributeName);}if(propertyInfo.type===BOOLEAN){// If this was a boolean, it doesn't matter what the value is\n// the fact that we have it is the same as the expected.\nreturn expected;}// Even if this property uses a namespace we use getAttribute\n// because we assume its namespaced name is the same as our config.\n// To use getAttributeNS we need the local name which we don't have\n// in our config atm.\nstringValue=node.getAttribute(attributeName);}if(shouldRemoveAttribute(name,expected,propertyInfo,false)){return stringValue===null?expected:stringValue;// eslint-disable-next-line react-internal/safe-string-coercion\n}else if(stringValue===''+expected){return expected;}else{return stringValue;}}}}/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */function getValueForAttribute(node,name,expected,isCustomComponentTag){{if(!isAttributeNameSafe(name)){return;}if(!node.hasAttribute(name)){return expected===undefined?undefined:null;}var value=node.getAttribute(name);{checkAttributeStringCoercion(expected,name);}if(value===''+expected){return expected;}return value;}}/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */function setValueForProperty(node,name,value,isCustomComponentTag){var propertyInfo=getPropertyInfo(name);if(shouldIgnoreAttribute(name,propertyInfo,isCustomComponentTag)){return;}if(shouldRemoveAttribute(name,value,propertyInfo,isCustomComponentTag)){value=null;}if(isCustomComponentTag||propertyInfo===null){if(isAttributeNameSafe(name)){var _attributeName=name;if(value===null){node.removeAttribute(_attributeName);}else{{checkAttributeStringCoercion(value,name);}node.setAttribute(_attributeName,''+value);}}return;}var mustUseProperty=propertyInfo.mustUseProperty;if(mustUseProperty){var propertyName=propertyInfo.propertyName;if(value===null){var type=propertyInfo.type;node[propertyName]=type===BOOLEAN?false:'';}else{// Contrary to `setAttribute`, object properties are properly\n// `toString`ed by IE8/9.\nnode[propertyName]=value;}return;}// The rest are treated as attributes with special cases.\nvar attributeName=propertyInfo.attributeName,attributeNamespace=propertyInfo.attributeNamespace;if(value===null){node.removeAttribute(attributeName);}else{var _type=propertyInfo.type;var attributeValue;if(_type===BOOLEAN||_type===OVERLOADED_BOOLEAN&&value===true){// If attribute type is boolean, we know for sure it won't be an execution sink\n// and we won't require Trusted Type here.\nattributeValue='';}else{// `setAttribute` with objects becomes only `[object]` in IE8/9,\n// ('' + value) makes it output the correct toString()-value.\n{{checkAttributeStringCoercion(value,attributeName);}attributeValue=''+value;}if(propertyInfo.sanitizeURL){sanitizeURL(attributeValue.toString());}}if(attributeNamespace){node.setAttributeNS(attributeNamespace,attributeName,attributeValue);}else{node.setAttribute(attributeName,attributeValue);}}}// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE=Symbol.for('react.element');var REACT_PORTAL_TYPE=Symbol.for('react.portal');var REACT_FRAGMENT_TYPE=Symbol.for('react.fragment');var REACT_STRICT_MODE_TYPE=Symbol.for('react.strict_mode');var REACT_PROFILER_TYPE=Symbol.for('react.profiler');var REACT_PROVIDER_TYPE=Symbol.for('react.provider');var REACT_CONTEXT_TYPE=Symbol.for('react.context');var REACT_FORWARD_REF_TYPE=Symbol.for('react.forward_ref');var REACT_SUSPENSE_TYPE=Symbol.for('react.suspense');var REACT_SUSPENSE_LIST_TYPE=Symbol.for('react.suspense_list');var REACT_MEMO_TYPE=Symbol.for('react.memo');var REACT_LAZY_TYPE=Symbol.for('react.lazy');var REACT_SCOPE_TYPE=Symbol.for('react.scope');var REACT_DEBUG_TRACING_MODE_TYPE=Symbol.for('react.debug_trace_mode');var REACT_OFFSCREEN_TYPE=Symbol.for('react.offscreen');var REACT_LEGACY_HIDDEN_TYPE=Symbol.for('react.legacy_hidden');var REACT_CACHE_TYPE=Symbol.for('react.cache');var REACT_TRACING_MARKER_TYPE=Symbol.for('react.tracing_marker');var MAYBE_ITERATOR_SYMBOL=Symbol.iterator;var FAUX_ITERATOR_SYMBOL='@@iterator';function getIteratorFn(maybeIterable){if(maybeIterable===null||typeof maybeIterable!=='object'){return null;}var maybeIterator=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL];if(typeof maybeIterator==='function'){return maybeIterator;}return null;}var assign=Object.assign;// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth=0;var prevLog;var prevInfo;var prevWarn;var prevError;var prevGroup;var prevGroupCollapsed;var prevGroupEnd;function disabledLog(){}disabledLog.__reactDisabledLog=true;function disableLogs(){{if(disabledDepth===0){/* eslint-disable react-internal/no-production-logging */prevLog=console.log;prevInfo=console.info;prevWarn=console.warn;prevError=console.error;prevGroup=console.group;prevGroupCollapsed=console.groupCollapsed;prevGroupEnd=console.groupEnd;// https://github.com/facebook/react/issues/19099\nvar props={configurable:true,enumerable:true,value:disabledLog,writable:true};// $FlowFixMe Flow thinks console is immutable.\nObject.defineProperties(console,{info:props,log:props,warn:props,error:props,group:props,groupCollapsed:props,groupEnd:props});/* eslint-enable react-internal/no-production-logging */}disabledDepth++;}}function reenableLogs(){{disabledDepth--;if(disabledDepth===0){/* eslint-disable react-internal/no-production-logging */var props={configurable:true,enumerable:true,writable:true};// $FlowFixMe Flow thinks console is immutable.\nObject.defineProperties(console,{log:assign({},props,{value:prevLog}),info:assign({},props,{value:prevInfo}),warn:assign({},props,{value:prevWarn}),error:assign({},props,{value:prevError}),group:assign({},props,{value:prevGroup}),groupCollapsed:assign({},props,{value:prevGroupCollapsed}),groupEnd:assign({},props,{value:prevGroupEnd})});/* eslint-enable react-internal/no-production-logging */}if(disabledDepth<0){error('disabledDepth fell below zero. '+'This is a bug in React. Please file an issue.');}}}var ReactCurrentDispatcher=ReactSharedInternals.ReactCurrentDispatcher;var prefix;function describeBuiltInComponentFrame(name,source,ownerFn){{if(prefix===undefined){// Extract the VM specific prefix used by each line.\ntry{throw Error();}catch(x){var match=x.stack.trim().match(/\\n( *(at )?)/);prefix=match&&match[1]||'';}}// We use the prefix to ensure our stacks line up with native stack frames.\nreturn'\\n'+prefix+name;}}var reentry=false;var componentFrameCache;{var PossiblyWeakMap=typeof WeakMap==='function'?WeakMap:Map;componentFrameCache=new PossiblyWeakMap();}function describeNativeComponentFrame(fn,construct){// If something asked for a stack inside a fake render, it should get ignored.\nif(!fn||reentry){return'';}{var frame=componentFrameCache.get(fn);if(frame!==undefined){return frame;}}var control;reentry=true;var previousPrepareStackTrace=Error.prepareStackTrace;// $FlowFixMe It does accept undefined.\nError.prepareStackTrace=undefined;var previousDispatcher;{previousDispatcher=ReactCurrentDispatcher.current;// Set the dispatcher in DEV because this might be call in the render function\n// for warnings.\nReactCurrentDispatcher.current=null;disableLogs();}try{// This should throw.\nif(construct){// Something should be setting the props in the constructor.\nvar Fake=function(){throw Error();};// $FlowFixMe\nObject.defineProperty(Fake.prototype,'props',{set:function(){// We use a throwing setter instead of frozen or non-writable props\n// because that won't throw in a non-strict mode function.\nthrow Error();}});if(typeof Reflect==='object'&&Reflect.construct){// We construct a different control for this case to include any extra\n// frames added by the construct call.\ntry{Reflect.construct(Fake,[]);}catch(x){control=x;}Reflect.construct(fn,[],Fake);}else{try{Fake.call();}catch(x){control=x;}fn.call(Fake.prototype);}}else{try{throw Error();}catch(x){control=x;}fn();}}catch(sample){// This is inlined manually because closure doesn't do it for us.\nif(sample&&control&&typeof sample.stack==='string'){// This extracts the first frame from the sample that isn't also in the control.\n// Skipping one frame that we assume is the frame that calls the two.\nvar sampleLines=sample.stack.split('\\n');var controlLines=control.stack.split('\\n');var s=sampleLines.length-1;var c=controlLines.length-1;while(s>=1&&c>=0&&sampleLines[s]!==controlLines[c]){// We expect at least one stack frame to be shared.\n// Typically this will be the root most one. However, stack frames may be\n// cut off due to maximum stack limits. In this case, one maybe cut off\n// earlier than the other. We assume that the sample is longer or the same\n// and there for cut off earlier. So we should find the root most frame in\n// the sample somewhere in the control.\nc--;}for(;s>=1&&c>=0;s--,c--){// Next we find the first one that isn't the same which should be the\n// frame that called our sample function and the control.\nif(sampleLines[s]!==controlLines[c]){// In V8, the first line is describing the message but other VMs don't.\n// If we're about to return the first line, and the control is also on the same\n// line, that's a pretty good indicator that our sample threw at same line as\n// the control. I.e. before we entered the sample frame. So we ignore this result.\n// This can happen if you passed a class to function component, or non-function.\nif(s!==1||c!==1){do{s--;c--;// We may still have similar intermediate frames from the construct call.\n// The next one that isn't the same should be our match though.\nif(c<0||sampleLines[s]!==controlLines[c]){// V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\nvar _frame='\\n'+sampleLines[s].replace(' at new ',' at ');// If our component frame is labeled \"<anonymous>\"\n// but we have a user-provided \"displayName\"\n// splice it in to make the stack more readable.\nif(fn.displayName&&_frame.includes('<anonymous>')){_frame=_frame.replace('<anonymous>',fn.displayName);}{if(typeof fn==='function'){componentFrameCache.set(fn,_frame);}}// Return the line we found.\nreturn _frame;}}while(s>=1&&c>=0);}break;}}}}finally{reentry=false;{ReactCurrentDispatcher.current=previousDispatcher;reenableLogs();}Error.prepareStackTrace=previousPrepareStackTrace;}// Fallback to just using the name if we couldn't make it throw.\nvar name=fn?fn.displayName||fn.name:'';var syntheticFrame=name?describeBuiltInComponentFrame(name):'';{if(typeof fn==='function'){componentFrameCache.set(fn,syntheticFrame);}}return syntheticFrame;}function describeClassComponentFrame(ctor,source,ownerFn){{return describeNativeComponentFrame(ctor,true);}}function describeFunctionComponentFrame(fn,source,ownerFn){{return describeNativeComponentFrame(fn,false);}}function shouldConstruct(Component){var prototype=Component.prototype;return!!(prototype&&prototype.isReactComponent);}function describeUnknownElementTypeFrameInDEV(type,source,ownerFn){if(type==null){return'';}if(typeof type==='function'){{return describeNativeComponentFrame(type,shouldConstruct(type));}}if(typeof type==='string'){return describeBuiltInComponentFrame(type);}switch(type){case REACT_SUSPENSE_TYPE:return describeBuiltInComponentFrame('Suspense');case REACT_SUSPENSE_LIST_TYPE:return describeBuiltInComponentFrame('SuspenseList');}if(typeof type==='object'){switch(type.$$typeof){case REACT_FORWARD_REF_TYPE:return describeFunctionComponentFrame(type.render);case REACT_MEMO_TYPE:// Memo may contain any component type so we recursively resolve it.\nreturn describeUnknownElementTypeFrameInDEV(type.type,source,ownerFn);case REACT_LAZY_TYPE:{var lazyComponent=type;var payload=lazyComponent._payload;var init=lazyComponent._init;try{// Lazy may contain any component type so we recursively resolve it.\nreturn describeUnknownElementTypeFrameInDEV(init(payload),source,ownerFn);}catch(x){}}}}return'';}function describeFiber(fiber){var owner=fiber._debugOwner?fiber._debugOwner.type:null;var source=fiber._debugSource;switch(fiber.tag){case HostComponent:return describeBuiltInComponentFrame(fiber.type);case LazyComponent:return describeBuiltInComponentFrame('Lazy');case SuspenseComponent:return describeBuiltInComponentFrame('Suspense');case SuspenseListComponent:return describeBuiltInComponentFrame('SuspenseList');case FunctionComponent:case IndeterminateComponent:case SimpleMemoComponent:return describeFunctionComponentFrame(fiber.type);case ForwardRef:return describeFunctionComponentFrame(fiber.type.render);case ClassComponent:return describeClassComponentFrame(fiber.type);default:return'';}}function getStackByFiberInDevAndProd(workInProgress){try{var info='';var node=workInProgress;do{info+=describeFiber(node);node=node.return;}while(node);return info;}catch(x){return'\\nError generating stack: '+x.message+'\\n'+x.stack;}}function getWrappedName(outerType,innerType,wrapperName){var displayName=outerType.displayName;if(displayName){return displayName;}var functionName=innerType.displayName||innerType.name||'';return functionName!==''?wrapperName+\"(\"+functionName+\")\":wrapperName;}// Keep in sync with react-reconciler/getComponentNameFromFiber\nfunction getContextName(type){return type.displayName||'Context';}// Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\nfunction getComponentNameFromType(type){if(type==null){// Host root, text node or just invalid type.\nreturn null;}{if(typeof type.tag==='number'){error('Received an unexpected object in getComponentNameFromType(). '+'This is likely a bug in React. Please file an issue.');}}if(typeof type==='function'){return type.displayName||type.name||null;}if(typeof type==='string'){return type;}switch(type){case REACT_FRAGMENT_TYPE:return'Fragment';case REACT_PORTAL_TYPE:return'Portal';case REACT_PROFILER_TYPE:return'Profiler';case REACT_STRICT_MODE_TYPE:return'StrictMode';case REACT_SUSPENSE_TYPE:return'Suspense';case REACT_SUSPENSE_LIST_TYPE:return'SuspenseList';}if(typeof type==='object'){switch(type.$$typeof){case REACT_CONTEXT_TYPE:var context=type;return getContextName(context)+'.Consumer';case REACT_PROVIDER_TYPE:var provider=type;return getContextName(provider._context)+'.Provider';case REACT_FORWARD_REF_TYPE:return getWrappedName(type,type.render,'ForwardRef');case REACT_MEMO_TYPE:var outerName=type.displayName||null;if(outerName!==null){return outerName;}return getComponentNameFromType(type.type)||'Memo';case REACT_LAZY_TYPE:{var lazyComponent=type;var payload=lazyComponent._payload;var init=lazyComponent._init;try{return getComponentNameFromType(init(payload));}catch(x){return null;}}// eslint-disable-next-line no-fallthrough\n}}return null;}function getWrappedName$1(outerType,innerType,wrapperName){var functionName=innerType.displayName||innerType.name||'';return outerType.displayName||(functionName!==''?wrapperName+\"(\"+functionName+\")\":wrapperName);}// Keep in sync with shared/getComponentNameFromType\nfunction getContextName$1(type){return type.displayName||'Context';}function getComponentNameFromFiber(fiber){var tag=fiber.tag,type=fiber.type;switch(tag){case CacheComponent:return'Cache';case ContextConsumer:var context=type;return getContextName$1(context)+'.Consumer';case ContextProvider:var provider=type;return getContextName$1(provider._context)+'.Provider';case DehydratedFragment:return'DehydratedFragment';case ForwardRef:return getWrappedName$1(type,type.render,'ForwardRef');case Fragment:return'Fragment';case HostComponent:// Host component type is the display name (e.g. \"div\", \"View\")\nreturn type;case HostPortal:return'Portal';case HostRoot:return'Root';case HostText:return'Text';case LazyComponent:// Name comes from the type in this case; we don't have a tag.\nreturn getComponentNameFromType(type);case Mode:if(type===REACT_STRICT_MODE_TYPE){// Don't be less specific than shared/getComponentNameFromType\nreturn'StrictMode';}return'Mode';case OffscreenComponent:return'Offscreen';case Profiler:return'Profiler';case ScopeComponent:return'Scope';case SuspenseComponent:return'Suspense';case SuspenseListComponent:return'SuspenseList';case TracingMarkerComponent:return'TracingMarker';// The display name for this tags come from the user-provided type:\ncase ClassComponent:case FunctionComponent:case IncompleteClassComponent:case IndeterminateComponent:case MemoComponent:case SimpleMemoComponent:if(typeof type==='function'){return type.displayName||type.name||null;}if(typeof type==='string'){return type;}break;}return null;}var ReactDebugCurrentFrame=ReactSharedInternals.ReactDebugCurrentFrame;var current=null;var isRendering=false;function getCurrentFiberOwnerNameInDevOrNull(){{if(current===null){return null;}var owner=current._debugOwner;if(owner!==null&&typeof owner!=='undefined'){return getComponentNameFromFiber(owner);}}return null;}function getCurrentFiberStackInDev(){{if(current===null){return'';}// Safe because if current fiber exists, we are reconciling,\n// and it is guaranteed to be the work-in-progress version.\nreturn getStackByFiberInDevAndProd(current);}}function resetCurrentFiber(){{ReactDebugCurrentFrame.getCurrentStack=null;current=null;isRendering=false;}}function setCurrentFiber(fiber){{ReactDebugCurrentFrame.getCurrentStack=fiber===null?null:getCurrentFiberStackInDev;current=fiber;isRendering=false;}}function getCurrentFiber(){{return current;}}function setIsRendering(rendering){{isRendering=rendering;}}// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value){// The coercion safety check is performed in getToStringValue().\n// eslint-disable-next-line react-internal/safe-string-coercion\nreturn''+value;}function getToStringValue(value){switch(typeof value){case'boolean':case'number':case'string':case'undefined':return value;case'object':{checkFormFieldValueStringCoercion(value);}return value;default:// function, symbol are assigned as empty strings\nreturn'';}}var hasReadOnlyValue={button:true,checkbox:true,image:true,hidden:true,radio:true,reset:true,submit:true};function checkControlledValueProps(tagName,props){{if(!(hasReadOnlyValue[props.type]||props.onChange||props.onInput||props.readOnly||props.disabled||props.value==null)){error('You provided a `value` prop to a form field without an '+'`onChange` handler. This will render a read-only field. If '+'the field should be mutable use `defaultValue`. Otherwise, '+'set either `onChange` or `readOnly`.');}if(!(props.onChange||props.readOnly||props.disabled||props.checked==null)){error('You provided a `checked` prop to a form field without an '+'`onChange` handler. This will render a read-only field. If '+'the field should be mutable use `defaultChecked`. Otherwise, '+'set either `onChange` or `readOnly`.');}}}function isCheckable(elem){var type=elem.type;var nodeName=elem.nodeName;return nodeName&&nodeName.toLowerCase()==='input'&&(type==='checkbox'||type==='radio');}function getTracker(node){return node._valueTracker;}function detachTracker(node){node._valueTracker=null;}function getValueFromNode(node){var value='';if(!node){return value;}if(isCheckable(node)){value=node.checked?'true':'false';}else{value=node.value;}return value;}function trackValueOnNode(node){var valueField=isCheckable(node)?'checked':'value';var descriptor=Object.getOwnPropertyDescriptor(node.constructor.prototype,valueField);{checkFormFieldValueStringCoercion(node[valueField]);}var currentValue=''+node[valueField];// if someone has already defined a value or Safari, then bail\n// and don't track value will cause over reporting of changes,\n// but it's better then a hard failure\n// (needed for certain tests that spyOn input values and Safari)\nif(node.hasOwnProperty(valueField)||typeof descriptor==='undefined'||typeof descriptor.get!=='function'||typeof descriptor.set!=='function'){return;}var get=descriptor.get,set=descriptor.set;Object.defineProperty(node,valueField,{configurable:true,get:function(){return get.call(this);},set:function(value){{checkFormFieldValueStringCoercion(value);}currentValue=''+value;set.call(this,value);}});// We could've passed this the first time\n// but it triggers a bug in IE11 and Edge 14/15.\n// Calling defineProperty() again should be equivalent.\n// https://github.com/facebook/react/issues/11768\nObject.defineProperty(node,valueField,{enumerable:descriptor.enumerable});var tracker={getValue:function(){return currentValue;},setValue:function(value){{checkFormFieldValueStringCoercion(value);}currentValue=''+value;},stopTracking:function(){detachTracker(node);delete node[valueField];}};return tracker;}function track(node){if(getTracker(node)){return;}// TODO: Once it's just Fiber we can move this to node._wrapperState\nnode._valueTracker=trackValueOnNode(node);}function updateValueIfChanged(node){if(!node){return false;}var tracker=getTracker(node);// if there is no tracker at this point it's unlikely\n// that trying again will succeed\nif(!tracker){return true;}var lastValue=tracker.getValue();var nextValue=getValueFromNode(node);if(nextValue!==lastValue){tracker.setValue(nextValue);return true;}return false;}function getActiveElement(doc){doc=doc||(typeof document!=='undefined'?document:undefined);if(typeof doc==='undefined'){return null;}try{return doc.activeElement||doc.body;}catch(e){return doc.body;}}var didWarnValueDefaultValue=false;var didWarnCheckedDefaultChecked=false;var didWarnControlledToUncontrolled=false;var didWarnUncontrolledToControlled=false;function isControlled(props){var usesChecked=props.type==='checkbox'||props.type==='radio';return usesChecked?props.checked!=null:props.value!=null;}/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */function getHostProps(element,props){var node=element;var checked=props.checked;var hostProps=assign({},props,{defaultChecked:undefined,defaultValue:undefined,value:undefined,checked:checked!=null?checked:node._wrapperState.initialChecked});return hostProps;}function initWrapperState(element,props){{checkControlledValueProps('input',props);if(props.checked!==undefined&&props.defaultChecked!==undefined&&!didWarnCheckedDefaultChecked){error('%s contains an input of type %s with both checked and defaultChecked props. '+'Input elements must be either controlled or uncontrolled '+'(specify either the checked prop, or the defaultChecked prop, but not '+'both). Decide between using a controlled or uncontrolled input '+'element and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components',getCurrentFiberOwnerNameInDevOrNull()||'A component',props.type);didWarnCheckedDefaultChecked=true;}if(props.value!==undefined&&props.defaultValue!==undefined&&!didWarnValueDefaultValue){error('%s contains an input of type %s with both value and defaultValue props. '+'Input elements must be either controlled or uncontrolled '+'(specify either the value prop, or the defaultValue prop, but not '+'both). Decide between using a controlled or uncontrolled input '+'element and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components',getCurrentFiberOwnerNameInDevOrNull()||'A component',props.type);didWarnValueDefaultValue=true;}}var node=element;var defaultValue=props.defaultValue==null?'':props.defaultValue;node._wrapperState={initialChecked:props.checked!=null?props.checked:props.defaultChecked,initialValue:getToStringValue(props.value!=null?props.value:defaultValue),controlled:isControlled(props)};}function updateChecked(element,props){var node=element;var checked=props.checked;if(checked!=null){setValueForProperty(node,'checked',checked,false);}}function updateWrapper(element,props){var node=element;{var controlled=isControlled(props);if(!node._wrapperState.controlled&&controlled&&!didWarnUncontrolledToControlled){error('A component is changing an uncontrolled input to be controlled. '+'This is likely caused by the value changing from undefined to '+'a defined value, which should not happen. '+'Decide between using a controlled or uncontrolled input '+'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');didWarnUncontrolledToControlled=true;}if(node._wrapperState.controlled&&!controlled&&!didWarnControlledToUncontrolled){error('A component is changing a controlled input to be uncontrolled. '+'This is likely caused by the value changing from a defined to '+'undefined, which should not happen. '+'Decide between using a controlled or uncontrolled input '+'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');didWarnControlledToUncontrolled=true;}}updateChecked(element,props);var value=getToStringValue(props.value);var type=props.type;if(value!=null){if(type==='number'){if(value===0&&node.value===''||// We explicitly want to coerce to number here if possible.\n// eslint-disable-next-line\nnode.value!=value){node.value=toString(value);}}else if(node.value!==toString(value)){node.value=toString(value);}}else if(type==='submit'||type==='reset'){// Submit/reset inputs need the attribute removed completely to avoid\n// blank-text buttons.\nnode.removeAttribute('value');return;}{// When syncing the value attribute, the value comes from a cascade of\n// properties:\n//  1. The value React property\n//  2. The defaultValue React property\n//  3. Otherwise there should be no change\nif(props.hasOwnProperty('value')){setDefaultValue(node,props.type,value);}else if(props.hasOwnProperty('defaultValue')){setDefaultValue(node,props.type,getToStringValue(props.defaultValue));}}{// When syncing the checked attribute, it only changes when it needs\n// to be removed, such as transitioning from a checkbox into a text input\nif(props.checked==null&&props.defaultChecked!=null){node.defaultChecked=!!props.defaultChecked;}}}function postMountWrapper(element,props,isHydrating){var node=element;// Do not assign value if it is already set. This prevents user text input\n// from being lost during SSR hydration.\nif(props.hasOwnProperty('value')||props.hasOwnProperty('defaultValue')){var type=props.type;var isButton=type==='submit'||type==='reset';// Avoid setting value attribute on submit/reset inputs as it overrides the\n// default value provided by the browser. See: #12872\nif(isButton&&(props.value===undefined||props.value===null)){return;}var initialValue=toString(node._wrapperState.initialValue);// Do not assign value if it is already set. This prevents user text input\n// from being lost during SSR hydration.\nif(!isHydrating){{// When syncing the value attribute, the value property should use\n// the wrapperState._initialValue property. This uses:\n//\n//   1. The value React property when present\n//   2. The defaultValue React property when present\n//   3. An empty string\nif(initialValue!==node.value){node.value=initialValue;}}}{// Otherwise, the value attribute is synchronized to the property,\n// so we assign defaultValue to the same thing as the value property\n// assignment step above.\nnode.defaultValue=initialValue;}}// Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n// this is needed to work around a chrome bug where setting defaultChecked\n// will sometimes influence the value of checked (even after detachment).\n// Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n// We need to temporarily unset name to avoid disrupting radio button groups.\nvar name=node.name;if(name!==''){node.name='';}{// When syncing the checked attribute, both the checked property and\n// attribute are assigned at the same time using defaultChecked. This uses:\n//\n//   1. The checked React property when present\n//   2. The defaultChecked React property when present\n//   3. Otherwise, false\nnode.defaultChecked=!node.defaultChecked;node.defaultChecked=!!node._wrapperState.initialChecked;}if(name!==''){node.name=name;}}function restoreControlledState(element,props){var node=element;updateWrapper(node,props);updateNamedCousins(node,props);}function updateNamedCousins(rootNode,props){var name=props.name;if(props.type==='radio'&&name!=null){var queryRoot=rootNode;while(queryRoot.parentNode){queryRoot=queryRoot.parentNode;}// If `rootNode.form` was non-null, then we could try `form.elements`,\n// but that sometimes behaves strangely in IE8. We could also try using\n// `form.getElementsByName`, but that will only return direct children\n// and won't include inputs that use the HTML5 `form=` attribute. Since\n// the input might not even be in a form. It might not even be in the\n// document. Let's just use the local `querySelectorAll` to ensure we don't\n// miss anything.\n{checkAttributeStringCoercion(name,'name');}var group=queryRoot.querySelectorAll('input[name='+JSON.stringify(''+name)+'][type=\"radio\"]');for(var i=0;i<group.length;i++){var otherNode=group[i];if(otherNode===rootNode||otherNode.form!==rootNode.form){continue;}// This will throw if radio buttons rendered by different copies of React\n// and the same name are rendered into the same form (same as #1939).\n// That's probably okay; we don't support it just as we don't support\n// mixing React radio buttons with non-React ones.\nvar otherProps=getFiberCurrentPropsFromNode(otherNode);if(!otherProps){throw new Error('ReactDOMInput: Mixing React and non-React radio inputs with the '+'same `name` is not supported.');}// We need update the tracked value on the named cousin since the value\n// was changed but the input saw no event or value set\nupdateValueIfChanged(otherNode);// If this is a controlled radio button group, forcing the input that\n// was previously checked to update will cause it to be come re-checked\n// as appropriate.\nupdateWrapper(otherNode,otherProps);}}}// In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\nfunction setDefaultValue(node,type,value){if(// Focused number inputs synchronize on blur. See ChangeEventPlugin.js\ntype!=='number'||getActiveElement(node.ownerDocument)!==node){if(value==null){node.defaultValue=toString(node._wrapperState.initialValue);}else if(node.defaultValue!==toString(value)){node.defaultValue=toString(value);}}}var didWarnSelectedSetOnOption=false;var didWarnInvalidChild=false;var didWarnInvalidInnerHTML=false;/**\n * Implements an <option> host component that warns when `selected` is set.\n */function validateProps(element,props){{// If a value is not provided, then the children must be simple.\nif(props.value==null){if(typeof props.children==='object'&&props.children!==null){React.Children.forEach(props.children,function(child){if(child==null){return;}if(typeof child==='string'||typeof child==='number'){return;}if(!didWarnInvalidChild){didWarnInvalidChild=true;error('Cannot infer the option value of complex children. '+'Pass a `value` prop or use a plain string as children to <option>.');}});}else if(props.dangerouslySetInnerHTML!=null){if(!didWarnInvalidInnerHTML){didWarnInvalidInnerHTML=true;error('Pass a `value` prop if you set dangerouslyInnerHTML so React knows '+'which value should be selected.');}}}// TODO: Remove support for `selected` in <option>.\nif(props.selected!=null&&!didWarnSelectedSetOnOption){error('Use the `defaultValue` or `value` props on <select> instead of '+'setting `selected` on <option>.');didWarnSelectedSetOnOption=true;}}}function postMountWrapper$1(element,props){// value=\"\" should make a value attribute (#6219)\nif(props.value!=null){element.setAttribute('value',toString(getToStringValue(props.value)));}}var isArrayImpl=Array.isArray;// eslint-disable-next-line no-redeclare\nfunction isArray(a){return isArrayImpl(a);}var didWarnValueDefaultValue$1;{didWarnValueDefaultValue$1=false;}function getDeclarationErrorAddendum(){var ownerName=getCurrentFiberOwnerNameInDevOrNull();if(ownerName){return'\\n\\nCheck the render method of `'+ownerName+'`.';}return'';}var valuePropNames=['value','defaultValue'];/**\n * Validation function for `value` and `defaultValue`.\n */function checkSelectPropTypes(props){{checkControlledValueProps('select',props);for(var i=0;i<valuePropNames.length;i++){var propName=valuePropNames[i];if(props[propName]==null){continue;}var propNameIsArray=isArray(props[propName]);if(props.multiple&&!propNameIsArray){error('The `%s` prop supplied to <select> must be an array if '+'`multiple` is true.%s',propName,getDeclarationErrorAddendum());}else if(!props.multiple&&a