URL: https://fddtestsocket.clientveb.com/
Submission: On April 12 via automatic, source certstream-suspicious

Summary

This website contacted 2 IPs in 2 countries across 3 domains to perform 10 HTTP transactions. The main IP is 52.25.140.200, located in Boardman, United States and belongs to AMAZON-02, US. The main domain is fddtestsocket.clientveb.com.
TLS certificate: Issued by R3 on March 28th 2021. Valid for: 3 months.
This is the only time fddtestsocket.clientveb.com was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
8 52.25.140.200 16509 (AMAZON-02)
2 2a00:1450:400... 15169 (GOOGLE)
10 2
Domain Requested by
5 fddtestsocket.clientveb.com fddtestsocket.clientveb.com
3 4bappapi.clientveb.net fddtestsocket.clientveb.com
2 fonts.googleapis.com fddtestsocket.clientveb.com
10 3

This site contains no links.

Subject Issuer Validity Valid
4badminapi.clientveb.net
R3
2021-03-28 -
2021-06-26
3 months crt.sh
upload.video.google.com
GTS CA 1O1
2021-03-16 -
2021-06-08
3 months crt.sh
4bappapi.clientveb.net
R3
2021-03-15 -
2021-06-13
3 months crt.sh

This page contains 1 frames:

Primary Page: https://fddtestsocket.clientveb.com/
Frame ID: 694290F0DD069ECAFF67AB0784C6D716
Requests: 10 HTTP requests in this frame

Screenshot


Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /nginx(?:\/([\d.]+))?/i

Page Statistics

10
Requests

50 %
HTTPS

50 %
IPv6

3
Domains

3
Subdomains

2
IPs

2
Countries

3459 kB
Transfer

3469 kB
Size

0
Cookies

Redirected requests

There were HTTP redirect chains for the following requests:

10 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
fddtestsocket.clientveb.com/
2 KB
1 KB
Document
General
Full URL
https://fddtestsocket.clientveb.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 / Express
Resource Hash
bc76e6893b8b18ad2f51dec75205ac2f6bc6706e795bf5de0e6fe07b00265d4f

Request headers

Host
fddtestsocket.clientveb.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site
none
Sec-Fetch-Mode
navigate
Sec-Fetch-User
?1
Sec-Fetch-Dest
document
Accept-Encoding
gzip, deflate, br
Accept-Language
en-US
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Server
nginx/1.16.1
Date
Mon, 12 Apr 2021 07:39:15 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
X-Powered-By
Express
Vary
Origin
Access-Control-Allow-Credentials
true
Access-Control-Expose-Headers
x-auth-token
Cache-Control
public, max-age=0
Last-Modified
Thu, 18 Mar 2021 14:35:36 GMT
ETag
W/"8ca-17845c3652c"
Content-Encoding
gzip
simple-line-icons.css
fddtestsocket.clientveb.com/assets/fonts/simple-line-icons/css/
16 KB
16 KB
Stylesheet
General
Full URL
https://fddtestsocket.clientveb.com/assets/fonts/simple-line-icons/css/simple-line-icons.css
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 / Express
Resource Hash
ac2e6d92136770d2907ffd5476ee197399e63f6bffdaf71bf7a36b76c9619217

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Date
Mon, 12 Apr 2021 07:39:15 GMT
Last-Modified
Thu, 18 Mar 2021 14:55:58 GMT
Server
nginx/1.16.1
X-Powered-By
Express
ETag
W/"3ffe-17845d6090a"
Vary
Origin
Content-Type
text/css; charset=UTF-8
Access-Control-Expose-Headers
x-auth-token
Cache-Control
public, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Accept-Ranges
bytes
Content-Length
16382
iconsminds.css
fddtestsocket.clientveb.com/assets/fonts/iconsmind-s/css/
60 KB
60 KB
Stylesheet
General
Full URL
https://fddtestsocket.clientveb.com/assets/fonts/iconsmind-s/css/iconsminds.css
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 / Express
Resource Hash
c1b47be0af3c03e41484d2d61969b1515be6509cebdecafd21d7d98edef26964

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Date
Mon, 12 Apr 2021 07:39:16 GMT
Last-Modified
Thu, 18 Mar 2021 14:55:19 GMT
Server
nginx/1.16.1
X-Powered-By
Express
ETag
W/"ee77-17845d57180"
Vary
Origin
Content-Type
text/css; charset=UTF-8
Access-Control-Expose-Headers
x-auth-token
Cache-Control
public, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Accept-Ranges
bytes
Content-Length
61047
index.de2c.css
fddtestsocket.clientveb.com/assets/css/
315 KB
315 KB
Stylesheet
General
Full URL
https://fddtestsocket.clientveb.com/assets/css/index.de2c.css
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 / Express
Resource Hash
bb5e188cd7eac4aceb2766ba14ef1586671dd3c0a0e94769050f922434cc0733

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Date
Mon, 12 Apr 2021 07:39:16 GMT
Last-Modified
Thu, 18 Mar 2021 14:35:58 GMT
Server
nginx/1.16.1
X-Powered-By
Express
ETag
W/"4eadc-17845c3ba41"
Vary
Origin
Content-Type
text/css; charset=UTF-8
Access-Control-Expose-Headers
x-auth-token
Cache-Control
public, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Accept-Ranges
bytes
Content-Length
322268
index.de2c.js
fddtestsocket.clientveb.com/assets/js/
3 MB
3 MB
Script
General
Full URL
https://fddtestsocket.clientveb.com/assets/js/index.de2c.js
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 / Express
Resource Hash
a852872e45148e89e4d1ef5c2ac7cbeb2f09b3ca8b6b2b1af5bde653f69d0d00

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Date
Mon, 12 Apr 2021 07:39:16 GMT
Last-Modified
Thu, 18 Mar 2021 14:46:31 GMT
Server
nginx/1.16.1
X-Powered-By
Express
ETag
W/"2fdd55-17845cd63fb"
Vary
Origin
Content-Type
application/javascript; charset=UTF-8
Access-Control-Expose-Headers
x-auth-token
Cache-Control
public, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Accept-Ranges
bytes
Content-Length
3136853
css
fonts.googleapis.com/
8 KB
797 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Nunito:300,400,400i,600,700
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/assets/css/index.de2c.css
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:801::200a Frankfurt am Main, Germany, ASN15169 (GOOGLE, US),
Reverse DNS
Software
ESF /
Resource Hash
17b8baa7c837a0b8d12d0f55f3f69d1b5212f9d0dd95a66e4cab9ba5fa779654
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-Xss-Protection 0

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

strict-transport-security
max-age=31536000
content-encoding
gzip
x-content-type-options
nosniff
cross-origin-resource-policy
cross-origin
alt-svc
h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
x-xss-protection
0
last-modified
Mon, 12 Apr 2021 05:41:36 GMT
server
ESF
date
Mon, 12 Apr 2021 07:39:17 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
expires
Mon, 12 Apr 2021 07:39:17 GMT
css
fonts.googleapis.com/
5 KB
625 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700&display=swap
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/assets/css/index.de2c.css
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:801::200a Frankfurt am Main, Germany, ASN15169 (GOOGLE, US),
Reverse DNS
Software
ESF /
Resource Hash
63335463672d8be67b46c8c88a3558edc2cb401fda7077f972e563e39914795d
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-Xss-Protection 0

Request headers

Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

strict-transport-security
max-age=31536000
content-encoding
gzip
x-content-type-options
nosniff
cross-origin-resource-policy
cross-origin
alt-svc
h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
x-xss-protection
0
last-modified
Mon, 12 Apr 2021 06:58:21 GMT
server
ESF
date
Mon, 12 Apr 2021 07:39:17 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
expires
Mon, 12 Apr 2021 07:39:17 GMT
/
4bappapi.clientveb.net/socket/
103 B
428 B
XHR
General
Full URL
https://4bappapi.clientveb.net/socket/?EIO=3&transport=polling&t=NZ51Joh
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/assets/js/index.de2c.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 /
Resource Hash
739631e31acf394ba5c6da66b0caac9c67cd25549749310c18c02cf8808ed516

Request headers

Accept
*/*
Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Access-Control-Allow-Origin
https://fddtestsocket.clientveb.com
Date
Mon, 12 Apr 2021 07:39:18 GMT
Access-Control-Allow-Credentials
true
Server
nginx/1.16.1
Connection
keep-alive
Content-Length
103
Content-Type
text/plain; charset=UTF-8
/
4bappapi.clientveb.net/socket/
100 B
425 B
XHR
General
Full URL
https://4bappapi.clientveb.net/socket/?EIO=3&transport=polling&t=NZ51J-L&sid=B0xlbNwFF4_jCvXuAAAw
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/assets/js/index.de2c.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 /
Resource Hash
137e2595cb2d398bbc5b31e622f4851f79a91e311ae5e081c9368b2b24994fd8

Request headers

Accept
*/*
Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Access-Control-Allow-Origin
https://fddtestsocket.clientveb.com
Date
Mon, 12 Apr 2021 07:39:18 GMT
Access-Control-Allow-Credentials
true
Server
nginx/1.16.1
Connection
keep-alive
Content-Length
100
Content-Type
text/plain; charset=UTF-8
/
4bappapi.clientveb.net/socket/
3 B
326 B
XHR
General
Full URL
https://4bappapi.clientveb.net/socket/?EIO=3&transport=polling&t=NZ51K1I&sid=B0xlbNwFF4_jCvXuAAAw
Requested by
Host: fddtestsocket.clientveb.com
URL: https://fddtestsocket.clientveb.com/assets/js/index.de2c.js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.25.140.200 Boardman, United States, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-52-25-140-200.us-west-2.compute.amazonaws.com
Software
nginx/1.16.1 /
Resource Hash
62325dfc1fc675255519674da6e2c4aad5f51cc6c3217ed3c6fbf6cabe0d86b0

Request headers

Accept
*/*
Referer
https://fddtestsocket.clientveb.com/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36

Response headers

Access-Control-Allow-Origin
https://fddtestsocket.clientveb.com
Date
Mon, 12 Apr 2021 07:39:19 GMT
Access-Control-Allow-Credentials
true
Server
nginx/1.16.1
Connection
keep-alive
Content-Length
3
Content-Type
text/plain; charset=UTF-8

Verdicts & Comments Add Verdict or Comment

23 JavaScript Global Variables

These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.

object| ontransitionrun object| ontransitionstart object| ontransitioncancel object| cookieStore function| showDirectoryPicker function| showOpenFilePicker function| showSaveFilePicker object| trustedTypes boolean| crossOriginIsolated string| theme function| setImmediate function| clearImmediate function| swal function| sweetAlert object| __SECRET_EMOTION__ object| __core-js_shared__ function| P object| mongoose function| Buffer function| Color function| Chart function| _ object| regeneratorRuntime

0 Cookies

2 Console Messages

Source Level URL
Text
console-api warning URL: https://fddtestsocket.clientveb.com/assets/js/index.de2c.js(Line 2)
Message:
quill Overwriting modules/ImageResize with class zl{constructor(e,t={}){this.quill=e,this.options=t,this.handleClick=this.handleClick.bind(this),this.handleMousedown=this.handleMousedown.bind(this),this.handleMouseup=this.handleMouseup.bind(this),this.handleDrag=this.handleDrag.bind(this),this.checkImage=this.checkImage.bind(this),this.boxes=[],document.execCommand("enableObjectResizing",!1,"false"),this.quill.root.addEventListener("click",this.handleClick,!1)}handleClick(e){if(e.target&&e.target.tagName&&"IMG"==e.target.tagName.toUpperCase()){if(this.img===e.target)return;this.img&&this.hide(),this.show(e.target)}else this.img&&this.hide()}show(e){this.img=e,this.showResizers(),this.showSizeDisplay();const t=this.img.getBoundingClientRect();this.positionBoxes(t),this.positionSizeDisplay(t)}hide(){this.hideResizers(),this.hideSizeDisplay(),this.img=void 0}showResizers(){this.setUserSelect("none"),this.addBox("nwse-resize"),this.addBox("nesw-resize"),this.addBox("nwse-resize"),this.addBox("nesw-resize"),document.addEventListener("keyup",this.checkImage,!0),this.quill.root.addEventListener("input",this.checkImage,!0)}hideResizers(){document.removeEventListener("keyup",this.checkImage),this.quill.root.removeEventListener("input",this.checkImage),this.setUserSelect(""),this.setCursor(""),this.boxes.forEach(e=>document.body.removeChild(e)),this.dragBox=void 0,this.dragStartX=void 0,this.preDragWidth=void 0,this.boxes=[]}addBox(e){const t=document.createElement("div"),n={position:"absolute",height:"12px",width:"12px",backgroundColor:"white",border:"1px solid #777",boxSizing:"border-box",opacity:"0.80",cursor:e};this.extend(t.style,n,this.options.handleStyles||{}),t.addEventListener("mousedown",this.handleMousedown,!1),document.body.appendChild(t),this.boxes.push(t)}extend(e,...t){return t.forEach(t=>{for(let n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}),e}positionBoxes(e){[{left:e.left-6,top:e.top-6},{left:e.left+e.width-6,top:e.top-6},{left:e.left+e.width-6,top:e.top+e.height-6},{left:e.left-6,top:e.top+e.height-6}].forEach((e,t)=>{this.extend(this.boxes[t].style,{top:Math.round(e.top+window.pageYOffset)+"px",left:Math.round(e.left+window.pageXOffset)+"px"})})}handleMousedown(e){this.dragBox=e.target,this.dragStartX=e.clientX,this.preDragWidth=this.img.width||this.img.naturalWidth,this.setCursor(this.dragBox.style.cursor),document.addEventListener("mousemove",this.handleDrag,!1),document.addEventListener("mouseup",this.handleMouseup,!1)}handleMouseup(){this.setCursor(""),document.removeEventListener("mousemove",this.handleDrag),document.removeEventListener("mouseup",this.handleMouseup)}handleDrag(e){if(!this.img)return;this.dragBox==this.boxes[0]||this.dragBox==this.boxes[3]?this.img.width=Math.round(this.preDragWidth-e.clientX-this.dragStartX):this.img.width=Math.round(this.preDragWidth+e.clientX-this.dragStartX);const t=this.img.getBoundingClientRect();this.positionBoxes(t),this.positionSizeDisplay(t)}setUserSelect(e){["userSelect","mozUserSelect","webkitUserSelect","msUserSelect"].forEach(t=>{this.quill.root.style[t]=e,document.documentElement.style[t]=e})}setCursor(e){[document.body,this.img,this.quill.root].forEach(t=>t.style.cursor=e)}checkImage(){this.img&&this.hide()}showSizeDisplay(){if(!this.options.displaySize)return;this.display=document.createElement("div");this.extend(this.display.style,{position:"absolute",font:"12px/1.0 Arial, Helvetica, sans-serif",padding:"4px 8px",textAlign:"center",backgroundColor:"white",color:"#333",border:"1px solid #777",boxSizing:"border-box",opacity:"0.80",cursor:"default"},this.options.displayStyles||{}),document.body.appendChild(this.display)}hideSizeDisplay(){document.body.removeChild(this.display),this.display=void 0}positionSizeDisplay(e){if(!this.display||!this.img)return;const t=this.getCurrentSize();if(this.display.innerHTML=t.join(" &times; "),t[0]>120&&t[1]>30){const t=this.display.getBoundingClientRect();this.extend(this.display.style,{left:Math.round(e.left+e.width+window.pageXOffset-t.width-8)+"px",top:Math.round(e.top+e.height+window.pageYOffset-t.height-8)+"px"})}else this.extend(this.display.style,{left:Math.round(e.left+e.width+window.pageXOffset+8)+"px",top:Math.round(e.top+e.height+window.pageYOffset+8)+"px"})}getCurrentSize(){return[this.img.width,Math.round(this.img.width/this.img.naturalWidth*this.img.naturalHeight)]}}
console-api warning URL: https://fddtestsocket.clientveb.com/assets/js/index.de2c.js(Line 2)
Message:
quill Overwriting modules/ImageResize with class zl{constructor(e,t={}){this.quill=e,this.options=t,this.handleClick=this.handleClick.bind(this),this.handleMousedown=this.handleMousedown.bind(this),this.handleMouseup=this.handleMouseup.bind(this),this.handleDrag=this.handleDrag.bind(this),this.checkImage=this.checkImage.bind(this),this.boxes=[],document.execCommand("enableObjectResizing",!1,"false"),this.quill.root.addEventListener("click",this.handleClick,!1)}handleClick(e){if(e.target&&e.target.tagName&&"IMG"==e.target.tagName.toUpperCase()){if(this.img===e.target)return;this.img&&this.hide(),this.show(e.target)}else this.img&&this.hide()}show(e){this.img=e,this.showResizers(),this.showSizeDisplay();const t=this.img.getBoundingClientRect();this.positionBoxes(t),this.positionSizeDisplay(t)}hide(){this.hideResizers(),this.hideSizeDisplay(),this.img=void 0}showResizers(){this.setUserSelect("none"),this.addBox("nwse-resize"),this.addBox("nesw-resize"),this.addBox("nwse-resize"),this.addBox("nesw-resize"),document.addEventListener("keyup",this.checkImage,!0),this.quill.root.addEventListener("input",this.checkImage,!0)}hideResizers(){document.removeEventListener("keyup",this.checkImage),this.quill.root.removeEventListener("input",this.checkImage),this.setUserSelect(""),this.setCursor(""),this.boxes.forEach(e=>document.body.removeChild(e)),this.dragBox=void 0,this.dragStartX=void 0,this.preDragWidth=void 0,this.boxes=[]}addBox(e){const t=document.createElement("div"),n={position:"absolute",height:"12px",width:"12px",backgroundColor:"white",border:"1px solid #777",boxSizing:"border-box",opacity:"0.80",cursor:e};this.extend(t.style,n,this.options.handleStyles||{}),t.addEventListener("mousedown",this.handleMousedown,!1),document.body.appendChild(t),this.boxes.push(t)}extend(e,...t){return t.forEach(t=>{for(let n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}),e}positionBoxes(e){[{left:e.left-6,top:e.top-6},{left:e.left+e.width-6,top:e.top-6},{left:e.left+e.width-6,top:e.top+e.height-6},{left:e.left-6,top:e.top+e.height-6}].forEach((e,t)=>{this.extend(this.boxes[t].style,{top:Math.round(e.top+window.pageYOffset)+"px",left:Math.round(e.left+window.pageXOffset)+"px"})})}handleMousedown(e){this.dragBox=e.target,this.dragStartX=e.clientX,this.preDragWidth=this.img.width||this.img.naturalWidth,this.setCursor(this.dragBox.style.cursor),document.addEventListener("mousemove",this.handleDrag,!1),document.addEventListener("mouseup",this.handleMouseup,!1)}handleMouseup(){this.setCursor(""),document.removeEventListener("mousemove",this.handleDrag),document.removeEventListener("mouseup",this.handleMouseup)}handleDrag(e){if(!this.img)return;this.dragBox==this.boxes[0]||this.dragBox==this.boxes[3]?this.img.width=Math.round(this.preDragWidth-e.clientX-this.dragStartX):this.img.width=Math.round(this.preDragWidth+e.clientX-this.dragStartX);const t=this.img.getBoundingClientRect();this.positionBoxes(t),this.positionSizeDisplay(t)}setUserSelect(e){["userSelect","mozUserSelect","webkitUserSelect","msUserSelect"].forEach(t=>{this.quill.root.style[t]=e,document.documentElement.style[t]=e})}setCursor(e){[document.body,this.img,this.quill.root].forEach(t=>t.style.cursor=e)}checkImage(){this.img&&this.hide()}showSizeDisplay(){if(!this.options.displaySize)return;this.display=document.createElement("div");this.extend(this.display.style,{position:"absolute",font:"12px/1.0 Arial, Helvetica, sans-serif",padding:"4px 8px",textAlign:"center",backgroundColor:"white",color:"#333",border:"1px solid #777",boxSizing:"border-box",opacity:"0.80",cursor:"default"},this.options.displayStyles||{}),document.body.appendChild(this.display)}hideSizeDisplay(){document.body.removeChild(this.display),this.display=void 0}positionSizeDisplay(e){if(!this.display||!this.img)return;const t=this.getCurrentSize();if(this.display.innerHTML=t.join(" &times; "),t[0]>120&&t[1]>30){const t=this.display.getBoundingClientRect();this.extend(this.display.style,{left:Math.round(e.left+e.width+window.pageXOffset-t.width-8)+"px",top:Math.round(e.top+e.height+window.pageYOffset-t.height-8)+"px"})}else this.extend(this.display.style,{left:Math.round(e.left+e.width+window.pageXOffset+8)+"px",top:Math.round(e.top+e.height+window.pageYOffset+8)+"px"})}getCurrentSize(){return[this.img.width,Math.round(this.img.width/this.img.naturalWidth*this.img.naturalHeight)]}}