easyannotation
Version:
Image annotation in JavaScript
1 lines • 160 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).easyannotation={})}(this,(function(e){"use strict";class t extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});this.addStyleElement(e),this.shadowRootEl=e}addStyleElement(e){let t=document.createElement("style");t.type="text/css",t.textContent=".dark{--background-color:#3d3d3d;--text-color:#eaeaea;--hover-color:#3c3c3c;--dropdown-hover-color:#3c3c3c;--toolbar-backgroud-color:#101010;--dialog-background-color:#393939;--dialog-label-color:#c8c8c8;--drop-down-border-color:#717171;--sub-dropdown-back-color:#3d3d3d;--dropdown-backg-color:#393939;--dropdown-border-color:#7f7f7f;--dropdown-item-color:#8a8a8a}.default-btn-gradient{--color-stop-1:#000;--color-stop-2:#000;--color-stop-3:#000}.default-toolbar{position:absolute;height:30px;top:-30px;background-color:var(--toolbar-backgroud-color,#ededed);border:1px solid #101010;border-bottom:none}.more-items-toolbar{top:30px;right:1px;border-top:none;height:auto;min-height:30px;border-bottom:1px solid #101010}.default-toolbar-item{height:100%;text-align:center;cursor:pointer;position:relative;float:left;box-sizing:border-box}.default-toolbar-item-pressed{box-shadow:inset 0 0 10px #9a9a9a;-webkit-box-shadow:inset 0 0 10px #9a9a9a;-moz-box-shadow:inset 0 0 10px #9a9a9a;border-radius:5px;transition:border-radius .5s}.default-svg-text-element{cursor:default;-ms-user-select:none;-webkit-user-select:none;user-select:none}@media (hover:hover) and (pointer:fine){.default-toolbar-item:hover{background-color:var(--hover-color,#b0b0b0)}}.default-toolbar-item svg{height:72%;margin-top:5px}.toolbar-url-icon{background-position:0 0;background-repeat:no-repeat;background-size:contain}.default-annotator-container{position:absolute;touch-action:none;-ms-touch-action:none}.default-annotator-select-rect{stroke-width:1px;stroke:#000;fill:transparent;stroke-dasharray:1}.annotator-back-line{stroke:transparent;stroke-width:25}.anotator-resize-element{stroke:#111;stroke-width:1;fill:#e8e8e8;opacity:.8}.annotator-rotate-dash-line{stroke-width:.8;stroke:#000;stroke-dasharray:4}.annotator-rotate-element{fill:#e0e0e0;stroke:#545454;stroke-width:6px}.default-annotator-line{stroke-width:2}.default-annotator-callout-shadow{fill:#000;fill-opacity:.5;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#calloutFilter258);transform:translate(5px,10px)}.default-annotator-callout{fill-rule:evenodd;stroke:#000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1}.default-annotator-text{stroke-width:1;stroke-dasharray:3,2;stroke-opacity:.5;fill:transparent;stroke:#000}.default-annotator-text span{cursor:default}.default-dialog{width:300px;height:200px;top:30px;border:1px solid #909090;position:absolute;display:none;background-color:var(--dialog-background-color,#fbfbfb);box-shadow:2px 3px rgba(32,32,32,.12156862745098039);border-radius:4px;z-index:12000}.default-dialog .body{width:300px;height:130px;padding:30px 10px 10px 20px;margin:0 auto}.default-dialog .btn-container .button{width:80px}.default-dialog .btn-container{width:100%;height:30px;text-align:center}.default-dialog .body *{float:left}.default-dialog .body select{margin-left:10px}.default-dialog .body .sample,.default-dialog div.button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;user-select:none}.default-dialog .body .sample{border:1px dotted #a0a0a0;padding:0 20px;margin-top:10px;margin-bottom:7px;width:220px;text-align:center;max-height:80px;overflow:hidden;white-space:nowrap}.default-dialog div.button{float:left;width:20px;height:20px;border:1px solid #d9d9d9;text-align:center;border-radius:3px;margin-left:5px;cursor:default;color:var(--dialog-button-color,#000)}.default-dialog div.hover-button:hover{background-color:#e1e1e1}.default-dialog div.press-button{background-color:#d0d0d0}.default-dialog .label{margin-right:5px;padding-top:5px;clear:left;width:110px;touch-action:none;-ms-touch-action:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;font-family:Poppins,sans-serif;font-size:14px;color:var(--dialog-label-color,#666)}.default-dialog .slider{-webkit-appearance:none;appearance:none;width:150px;height:7px;background:#d3d3d3;outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s;margin:15px 0 15px 90px}.default-dialog .transparency{background:linear-gradient(90deg,transparent,#000),url('data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>');margin-left:0!important}.default-dialog .slider::-moz-range-thumb,.default-dialog .slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#c6c6c6;cursor:pointer;border-radius:10px}.default-dialog .slider:disabled{background-color:#eaeaea;cursor:default}.default-dialog .slider:disabled::-moz-range-thumb,.default-dialog .slider:disabled::-webkit-slider-thumb{background-color:#ececec;border-color:#d2d2d2;cursor:default}.arrow-style-dropdown,.arrow-style-dropdown .body{width:75px!important}.arrow-style-dropdown .value{width:53px!important}.default-drop-down{width:150px;height:25px;border:1px solid var(--drop-down-border-color,#c8c8c8);margin-top:3px}.default-drop-down .body{width:150px;height:25px;padding:0}.default-drop-down .value{width:126px;height:25px;border-right:1px solid var(--dropdown-border-color,#c8c8c8)}.default-drop-down .arrow{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--dropdown-border-color,#424242);margin-top:10px;margin-left:6px}.default-drop-down .right-arrow{border-color:transparent #464646;border-style:solid;border-width:5px 0 5px 5px;height:0;width:0;position:absolute;margin:3px 0 0 130px!important}.default-drop-down.dark .right-arrow{border-color:transparent #e0e0e0}.subdrop-down{margin-left:139px!important;background-color:var(--sub-dropdown-back-color,#fefefe);width:150px!important;margin-top:-20px!important;display:none;border:1px solid #c8c8c8;overflow:hidden}.subdrop-down .option>div:not(.checked){margin-left:0!important;float:left!important;margin-top:5px!important}.blur-option{width:100px}.blur-option div{background-repeat:no-repeat;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='black' d='M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z'></path></svg>\");width:20px;height:20px;float:right!important;margin-right:10px}.subdrop-down .option{padding-left:3px;position:relative}.option .checked{background:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\"><path d=\"M8.51 15.36l5.48 5.47 9.5-9.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" stroke=\"%23000\"/></svg>');background-size:18px 18px;background-position:-20px -18px;width:18px!important;height:18px;position:absolute;right:1px;top:2px}.default-drop-down .options-container{width:100%;display:none;border:1px solid var(--dropdown-border-color,#e0e0e0);margin-left:-1px;padding-right:1px;background:var(--dropdown-backg-color,#fff);position:relative;z-index:10000}.subdrop-down.dark .blur-option div,.subdrop-down.dark .option .checked{filter:opacity(100%) contrast(0)}.blur-option .filter-blur-1px{filter:blur(1px)}.blur-option .filter-blur-2px{filter:blur(2px)}.blur-option .filter-blur-5px{filter:blur(5px)}.blur-option .filter-blur-10px{filter:blur(10px)}.blur-option .filter-blur-20px{filter:blur(20px)}.blur-option .filter-blur-50px{filter:blur(50px)}.subdrop-down.dark .blur-option .filter-blur-1px{filter:opacity(100%) contrast(0) blur(1px)}.subdrop-down.dark .blur-option .filter-blur-2px{filter:opacity(100%) contrast(0) blur(2px)}.subdrop-down.dark .blur-option .filter-blur-5px{filter:opacity(100%) contrast(0) blur(5px)}.subdrop-down.dark .blur-option .filter-blur-10px{filter:opacity(100%) contrast(0) blur(10px)}.subdrop-down.dark .blur-option .filter-blur-20px{filter:opacity(100%) contrast(0) blur(20px)}.subdrop-down.dark .blur-option .filter-blur-50px{filter:opacity(100%) contrast(0) blur(50px)}.default-drop-down .options-container .option{height:25px;width:100%;border:1px solid transparent;cursor:default;color:var(--drop-down-option-color,#000)}.default-drop-down.dark .options-container .option{color:#e0e0e0}.default-drop-down .options-container .option:hover{border:1px solid #e0e0e0;background-color:var(--dropdown-hover-color,#f5f5f5)}.default-drop-down .options-container .option>*{margin:3px auto;float:none;width:85%}.default-drop-down.dark .options-container .option>.fill-pattern{filter:opacity(100%) contrast(0)}.default-drop-down .options-container .option>.padding{width:10px}.default-drop-down .value *{width:90%;margin:5px auto;float:none}.default-dialog .body .color-picker{width:150px;height:25px;border:1px solid var(--drop-down-border-color,#e0e0e0);margin-top:5px}.fill-pattern1{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='0' y1='20' x2='12' y2='0'/></svg>\")}.fill-pattern2{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='0' y1='0' x2='12' y2='20'/></svg>\")}.fill-pattern3{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='6' y1='0' x2='6' y2='20'/></svg>\")}.fill-pattern4{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='0' y1='5' x2='12' y2='5'/><line stroke='black' x1='0' y1='15' x2='12' y2='15'/></svg>\")}.fill-pattern5{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='6' y1='0' x2='6' y2='20'/><line stroke='black' x1='0' y1='5' x2='12' y2='5'/><line stroke='black' x1='0' y1='15' x2='12' y2='15'/></svg>\")}.fill-pattern6{background-image:url(\"data:image/svg+xml;utf8,<svg width='12px' height='20px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><line stroke='black' x1='0' y1='20' x2='12' y2='0'/><line stroke='black' x1='0' y1='0' x2='12' y2='20'/></svg>\")}.fill-pattern7{background-image:url(\"data:image/svg+xml;utf8,<svg width='10px' height='10px' viewBox='0 0 12 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 20 L12 0 M0 0 L12 20'></path></svg>\")}.fill-pattern8{background-image:url(\"data:image/svg+xml;utf8,<svg width='10px' height='10px' viewBox='0 0 10 10' version='1.1' xmlns='http://www.w3.org/2000/svg'><rect width='10' height='10' fill='transparent'/><circle cx='4' cy='4' r='1' fill='black'/></svg>\")}.fill-pattern9{background-image:url(\"data:image/svg+xml;utf8,<svg width='10px' height='10px' viewBox='0 0 10 10' version='1.1' xmlns='http://www.w3.org/2000/svg'><rect width='10' height='10' fill='transparent'/><circle cx='3' cy='3' r='2' fill='black'/></svg>\")}.arrow-style{height:20px;background-repeat:no-repeat}.default-drop-down.dark .arrow-style{filter:contrast(0)}.arrow-style0{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M39 8 L3 8 M3 5 L1 8 L3 11 z'/></svg>\")}.arrow-style1{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L5 5 M0 8 L5 11 M0 8 L40 8'/></svg>\")}.arrow-style2{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 6 L4 6 L4 10 L0 10 z M4 8 L39 8'/></svg>\")}.arrow-style3{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M1 8 L4 5 L7 8 L4 11 z M1 8 L41 8'/></svg>\")}.arrow-style4{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M2 5 A 3 3 0 1 0 5 5 z M0 8 L39 8'/></svg>\")}.arrow-style5{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M1 5 L1 11 M0 8 L40 8'/></svg>\")}.arrow-style-end0{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L36 8 M36 5 L39 8 L36 11 z'/></svg>\")}.arrow-style-end1{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L40 8 M40 8 L35 5 M40 8 L35 11'/></svg>\")}.arrow-style-end2{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L35 8 M35 5 M0 8 L35 8 M35 6 L39 6 L39 10 L 35 10 z'/></svg>\")}.arrow-style-end3{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L35 8 M35 8 L38 5 L41 8 L 38 11 z'/></svg>\")}.arrow-style-end4{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L37 8 M37 5 M0 8 L37 8 M37 5 A 3 3 0 1 0 39 5 z'/></svg>\")}.arrow-style-end5{background-image:url(\"data:image/svg+xml;utf8,<svg width='50px' height='20px' viewBox='0 0 50 20' version='1.1' xmlns='http://www.w3.org/2000/svg'><path stroke='black' d='M0 8 L40 8 M40 5 L40 11'/></svg>\")}.arrow-style-none{background-color:var(--dropdown-item-color,#000);width:39px!important;margin-left:5px!important;margin-top:12px!important;height:2px!important}.arrow-no-fill{fill:transparent!important}.arrow-no-stroke{stroke:none!important}.fill-value div{margin-top:3px!important}.image-uploader{font-size:1000px;opacity:0}.image-uploader-text{width:100%;height:100%;position:absolute;text-align:center;font-size:calc(5.35714vw - .32143rem)}.btn-disabled svg *{fill:#909090!important}.btn-disabled,.btn-disabled svg *{cursor:default!important}.shake{animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;stroke:red!important}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.default-drop-down .value input{width:97%;margin-top:0;height:23px;border:none;padding-left:3px;background-color:var(--drop-down-input-back-color,#fff);color:var(--drop-down-input-color,#000)}.default-text-sel-rect{fill:transparent;stroke:#000;stroke-width:1;stroke-dasharray:1;display:none}.default-toolbar-more-btn{background-image:url(\"data:image/svg+xml;utf8,<svg width='10px' height='10px' viewBox='0 0 10 10' version='1.1' xmlns='http://www.w3.org/2000/svg'><circle stroke='black' cx='5' cy='5' r='5'/></svg>\")}.default-toolbar-submenu{position:absolute;width:28px;background-color:#d5d5d5;margin-top:30px;border:1px solid #101010;border-top:none;right:-1px}.default-toolbar-submenu-item{height:30px;margin-left:3px}.default-text-ann-btn-container{width:100%;height:40px;background:hsla(0,0%,51.8%,.7490196078431373);margin-top:-2px}.default-text-ann-btn-container.dark{background:rgba(52,52,52,.7490196078431373)}.default-text-ann-btn-container path{fill:var(--text-color,#2a2a2a);stroke:var(--text-color,#2a2a2a)}.default-text-ann-btn-container div{width:28px;height:26px;float:right;margin:4px 2px 2px;border-radius:3px;cursor:pointer}.mobile-dropdown-container{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;z-index:1000000!important}.default-mobile-dropdown-container{background-color:#eaeaea}.default-mobile-dropdown-container .option{height:30px!important;border-bottom:1px solid #fff;margin-left:3px!important;padding:10px 20px 0 0}.mobile-dropdown-container .sub-item>div{float:left}.mobile-dropdown-container .sub-item>div.right-arrow{width:6px;height:6px;float:right;border:solid #a2a2a2;border-width:0 2px 2px 0;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);margin:4px 10px 0 0}.mobile-sub-dropdown{width:100%!important;height:100%!important;background-color:#eaeaea}.mobile-sub-option{width:100%;height:40px;border-bottom:1px solid #fff}.mobile-hide-elem,.mobile-show-elem{-webkit-animation-name:show-elem;-webkit-animation-duration:.3s;animation-name:show-elem;animation-duration:.3s;display:block;left:100%;position:absolute;animation-fill-mode:forwards;margin-left:0!important;z-index:100;top:0;height:100%;margin-top:40px!important}@-webkit-keyframes show-elem{0%{left:100%}to{left:0}}@keyframes show-elem{0%{left:100%}to{left:0}}.mobile-hide-elem{animation-name:hide-elem;-webkit-animation-name:hide-elem;left:0}@-webkit-keyframes hide-elem{0%{left:0}to{left:100%}}@keyframes hide-elem{0%{left:0}to{left:100%}}.mobile-sub-option>div.padding{width:20px!important}.mobile-sub-option .checked{margin-right:23px}.default-mobile-buttons{width:100%;height:40px;background-color:#eaeaea;border-bottom:1px solid #bababa}.default-mobile-buttons .back-button{float:left;width:6px;height:6px;border:solid #a2a2a2;border-width:2px 0 0 2px;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);margin:12px 0 0 25px}.default-mobile-buttons .close-button{float:right;width:40px;height:40px;margin:5px 10px 0 0}.default-mobile-buttons .close-button:after,.default-mobile-buttons .close-button:before{position:absolute;content:\" \";height:30px;width:2px;background-color:#989898;margin-left:15px}.default-mobile-buttons .close-button:before{transform:rotate(45deg)}.default-mobile-buttons .close-button:after{transform:rotate(-45deg)}.ea-mobile-dialog{position:fixed;top:0;left:0;border:none;width:100vw;height:100vh}.default-toolbar-item svg ellipse,.default-toolbar-item svg line,.default-toolbar-item svg path,.default-toolbar-item svg polygon,.default-toolbar-item svg rect{fill:transparent;stroke:#000}.default-toolbar-item svg .ea-delete-item,.default-toolbar-item svg .ea-draw-color-item,.default-toolbar-item svg .ea-fill-color-item,.default-toolbar-item svg .ea-font-item{fill:#000}.default-toolbar-item svg .ea-callout{fill:transparent;stroke-width:12px}.default-toolbar-item svg .ea-close-item,.default-toolbar-item svg .ea-free-draw,.default-toolbar-item svg .ea-more-button,.default-toolbar-item svg .ea-picture-item,.default-toolbar-item svg .ea-save-item,.default-toolbar-item svg .ea-settings-item,.default-toolbar-item svg .ea-text-item{fill:#000}.default-toolbar-item.dark svg ellipse,.default-toolbar-item.dark svg line,.default-toolbar-item.dark svg path,.default-toolbar-item.dark svg polygon,.default-toolbar-item.dark svg rect{fill:transparent;stroke:#a6a6a6}.default-toolbar-item.dark svg .ea-close-item,.default-toolbar-item.dark svg .ea-delete-item,.default-toolbar-item.dark svg .ea-draw-color-item,.default-toolbar-item.dark svg .ea-fill-color-item,.default-toolbar-item.dark svg .ea-free-draw,.default-toolbar-item.dark svg .ea-more-button,.default-toolbar-item.dark svg .ea-picture-item,.default-toolbar-item.dark svg .ea-save-item,.default-toolbar-item.dark svg .ea-settings-item,.default-toolbar-item.dark svg .ea-text-item{fill:#a6a6a6}.default-toolbar-item.dark svg .ea-arrow-item,.default-toolbar-item.dark svg .ea-circle-item{stroke-width:2px}.default-toolbar-item.dark svg .ea-callout{stroke-width:20px}.btn-disabled.dark svg *{fill:#3d3d3d!important}.btn-disabled:hover{background:transparent!important}.ea-color-picker{opacity:0;display:none;z-index:100000;position:fixed;border-radius:3px;background-color:#fff;width:230px;height:280px;top:0;left:0;border:1px solid #e1e1e1}.ea-picker-visible{display:block;transition:opacity .3s;opacity:1}.ea-color-picker .ea-color-selection{width:100%}.ea-color-picker .ea-palette-container{width:100%;position:relative}.ea-color-picker .ea-palette{background:linear-gradient(0deg,#000,transparent) repeat scroll 0 0,transparent linear-gradient(270deg,#00ff81,#fff) repeat scroll 0 0;height:125px}.ea-color-picker .ea-palette:before,.ea-color-picker .ea-swatches-panel>div:before{position:absolute;content:\"\";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>');background-size:auto;background-size:.5em;border-radius:.15em;z-index:-1}.ea-color-picker .ea-picker{position:absolute;height:15px;width:15px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ea-color-picker .ea-selection-bottom{width:100%;height:60px}.ea-color-picker .ea-color-sample{float:left;width:2em;height:2em;border-radius:50em;margin:7px}.ea-color-picker .ea-color-chooser{height:7px;width:155px;float:left;margin:12px 0 0 10px;position:relative}.ea-color-picker .ea-slider{height:8px;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:3px}.ea-color-picker .ea-transparency{background:linear-gradient(90deg,transparent,#000),url('data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>');background-size:auto,auto;background-size:100%,.25em}.ea-color-picker .ea-slider-picker{top:-4px;width:13px;height:13px;background-color:#fff;border:1px solid grey}.ea-picker-target{cursor:pointer}.ea-color-picker .ea-swatches-panel{width:100%;height:60px;padding-left:10px}.ea-color-picker .ea-swatches-panel>div{width:23px;height:23px;position:relative;float:left;margin:3px;cursor:pointer}.ea-color-picker .ea-swatches-panel>div:before{background-size:6px;border-radius:2px}.ea-color-picker .ea-picker-buttons{width:100%;text-align:center}.ea-color-picker .ea-picker-buttons button{width:80px}.default-annotator-container foreignObject textarea{background-color:var(--background-color,#fff);color:var(--text-color,#000)}",e.appendChild(t)}appendChild(e){return this.shadowRootEl.appendChild(e)}insertBefore(e,t){return this.shadowRootEl.insertBefore(e,t)}removeChild(e){return this.shadowRootEl.removeChild(e)}}class i{}class r extends i{constructor(){super(...arguments),this.enabled=!0}setEnabled(e){e!=this.enabled&&(this.enabled=e,e?this.element.classList.remove("btn-disabled"):this.element.classList.add("btn-disabled"))}}class s extends r{constructor(){super(),this.pushed=!1,this.iconSVG=""}setPushed(e){this.pushed=e}}class n{constructor(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}}var o,l,a,d=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],c=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];class h{static checkMobile(){let e=!1;var t;return t=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&window.innerWidth<=720&&window.innerHeight<=1280&&(e=!0),e}static isMobileDevice(){return this.isMobile}static isPhone(){return this._isMobilePhone}static isEdge(){return this._isEdge}static getBrowserSpec(){let e,t=navigator.userAgent,i=t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(i[1])?(e=/\brv[ :]+(\d+)/g.exec(t)||[],{name:"IE",version:e[1]||""}):"Chrome"===i[1]&&(e=t.match(/\b(OPR|Edge)\/(\d+)/),null!=e)?{name:e[1].replace("OPR","Opera"),version:e[2]}:(i=i[2]?[i[1],i[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(e=t.match(/version\/(\d+)/i))&&i.splice(1,1,e[1]),{name:i[0],version:i[1]})}static fixIOSSlider(e){/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&(e.addEventListener("touchstart",this.onSliderTouch),e.addEventListener("touchmove",this.onSliderTouch))}static exportToPNG(e,t,i,r){let s=t.width.baseVal.value,o=t.height.baseVal.value,l=document.createElement("canvas"),a=l.getContext("2d");l.width=s,l.height=o,a.drawImage(e,0,0,s,o);let h,p,u=new DOMParser,g=t.outerHTML,m=g.indexOf("<foreignObject");for(;m>=0;)h=g.lastIndexOf("<g",m),p=g.indexOf("</g>",m+20),g=g.substring(0,h)+g.substr(p+4),m=g.indexOf("<foreignObject");let f,b=u.parseFromString(g,"text/xml"),w=b.getElementsByTagName("defs")[0],v=w.getElementsByTagName("pattern"),x=v.length;for(f=0;f<x;f++)if(0===v[f].id.indexOf("mainFillPattern")){w.removeChild(v[f]);break}let y=b.getElementsByTagName("svg")[0].firstChild,S=new Array;for(;y;){if("g"==y.nodeName.toLowerCase()){let e=y.firstChild;if("rect"==e.nodeName.toLowerCase()){let t=y.transform.baseVal.getItem(0).matrix,i=t.e,r=t.f,s=e,n=s.getAttribute("filter");if(s.classList.contains("blur-rect")&&n&&n.indexOf("#bluringFilter")>0){let e=n.substr(5,n.length-6),t=w.firstChild;for(;t;){if("filter"==t.nodeName.toLowerCase()&&t.id==e){let e=t.firstChild.getAttribute("stdDeviation");S.push({x:s.x.baseVal.value+i,y:s.y.baseVal.value+r,w:s.width.baseVal.value,h:s.height.baseVal.value,b:parseFloat(e)});break}t=t.nextSibling}}}}y=y.nextSibling}let E=new Blob([g],{type:"image/svg+xml"}),k=URL.createObjectURL(E),A=new Image;i&&(A.crossOrigin="anonymous"),A.onload=function(){let t=document,l=t.createElement("canvas"),a=l.getContext("2d"),h=function(){a.drawImage(A,0,0),URL.revokeObjectURL(k);let e=l.toDataURL("image/png");r(e)},p=function(r,s){let o=t.createElement("canvas"),l=o.getContext("2d"),u=r[s],g=u.w,m=u.h;o.width=g,o.height=m,l.drawImage(e,u.x,u.y,g,m,0,0,g,m);let f=l.getImageData(0,0,g,m);(class{static blurData(e,t){!function(e,t){let i,r,s,o,l,a,h,p,u,g,m,f,b,w,v,x,y,S,E,k,A,L,C,D,M=e.data,T=e.width,N=e.height,I=t+t+1,O=T-1,R=N-1,z=t+1,P=z*(z+1)/2,V=new n,B=null,G=V,H=null,F=null,X=d[t],_=c[t];for(s=1;s<I;s++)G=G.next=new n,s===z&&(B=G);for(G.next=V,h=a=0,r=0;r<N;r++){for(x=y=S=E=p=u=g=m=0,f=z*(k=M[a]),b=z*(A=M[a+1]),w=z*(L=M[a+2]),v=z*(C=M[a+3]),p+=P*k,u+=P*A,g+=P*L,m+=P*C,G=V,s=0;s<z;s++)G.r=k,G.g=A,G.b=L,G.a=C,G=G.next;for(s=1;s<z;s++)o=a+((O<s?O:s)<<2),p+=(G.r=k=M[o])*(D=z-s),u+=(G.g=A=M[o+1])*D,g+=(G.b=L=M[o+2])*D,m+=(G.a=C=M[o+3])*D,x+=k,y+=A,S+=L,E+=C,G=G.next;for(H=V,F=B,i=0;i<T;i++)M[a+3]=C=m*X>>_,0!==C?(C=255/C,M[a]=(p*X>>_)*C,M[a+1]=(u*X>>_)*C,M[a+2]=(g*X>>_)*C):M[a]=M[a+1]=M[a+2]=0,p-=f,u-=b,g-=w,m-=v,f-=H.r,b-=H.g,w-=H.b,v-=H.a,o=h+((o=i+t+1)<O?o:O)<<2,x+=H.r=M[o],y+=H.g=M[o+1],S+=H.b=M[o+2],E+=H.a=M[o+3],p+=x,u+=y,g+=S,m+=E,H=H.next,f+=k=F.r,b+=A=F.g,w+=L=F.b,v+=C=F.a,x-=k,y-=A,S-=L,E-=C,F=F.next,a+=4;h+=T}for(i=0;i<T;i++){for(y=S=E=x=u=g=m=p=0,a=i<<2,f=z*(k=M[a]),b=z*(A=M[a+1]),w=z*(L=M[a+2]),v=z*(C=M[a+3]),p+=P*k,u+=P*A,g+=P*L,m+=P*C,G=V,s=0;s<z;s++)G.r=k,G.g=A,G.b=L,G.a=C,G=G.next;for(l=T,s=1;s<=t;s++)a=l+i<<2,p+=(G.r=k=M[a])*(D=z-s),u+=(G.g=A=M[a+1])*D,g+=(G.b=L=M[a+2])*D,m+=(G.a=C=M[a+3])*D,x+=k,y+=A,S+=L,E+=C,G=G.next,s<R&&(l+=T);for(a=i,H=V,F=B,r=0;r<N;r++)o=a<<2,M[o+3]=C=m*X>>_,C>0?(C=255/C,M[o]=(p*X>>_)*C,M[o+1]=(u*X>>_)*C,M[o+2]=(g*X>>_)*C):M[o]=M[o+1]=M[o+2]=0,p-=f,u-=b,g-=w,m-=v,f-=H.r,b-=H.g,w-=H.b,v-=H.a,o=i+((o=r+z)<R?o:R)*T<<2,p+=x+=H.r=M[o],u+=y+=H.g=M[o+1],g+=S+=H.b=M[o+2],m+=E+=H.a=M[o+3],H=H.next,f+=k=F.r,b+=A=F.g,w+=L=F.b,v+=C=F.a,x-=k,y-=A,S-=L,E-=C,F=F.next,a+=T}}(e,t)}}).blurData(f,Math.floor(2.5*u.b)),l.putImageData(f,0,0);let b=o.toDataURL("image/png"),w=new Image(g,m);i&&(w.crossOrigin="anonymous"),w.onload=function(){a.drawImage(w,u.x,u.y),s<r.length-1?p(r,s+1):h()},w.src=b};l.width=s,l.height=o,a.drawImage(e,0,0,s,o),0==S.length?h():p(S,0)},A.src=k}static on(e,t,i){let r;r=Array.isArray(e)?e:[e];for(let e of r)for(let r of t)e.addEventListener(r,i,{capture:!1})}static un(e,t,i){let r;r=Array.isArray(e)?e:[e];for(let e of r)for(let r of t)e.removeEventListener(r,i,{capture:!1})}static getEvent(e){let t=e;return t.touches&&(t=t.touches[0]),t}static getTarget(e){let t=e.originalTarget||e.relatedTarget||e.target,i=e.originalTarget;if(i)try{i.className}catch(i){t=e.relatedTarget||e.target}return t}}h.isMobile=!!(navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i)),h._isMobilePhone=h.checkMobile(),h._isEdge=window.navigator.userAgent.indexOf("Edge")>-1,h.onSliderTouch=e=>{if(e.touches.length){let t=e.target,i=t.getBoundingClientRect(),r=(e.touches[0].screenX-i.left)*parseInt(t.max,10)/i.width;t.value=Math.round(r)+""}};class p{constructor(){this.height=200,this.orientationChange=()=>{let e=this.container,t=window.screen;e.style.height=t.height+"px",e.style.width=t.width+"px"},this.onTouchMove=e=>{e.preventDefault()}}static getOpenDialog(){return this.openDialog}show(e,t,i){p.openDialog=this;let r=e.getBoundingClientRect(),s=this,n=s.container,o=h.isPhone();if(s.callback=i,n.setAttribute("part","dialog"),e.parentElement.appendChild(n),n.style.display="block",o)n.classList.add("ea-mobile-dialog"),n.addEventListener("touchmove",s.onTouchMove),window.addEventListener("orientationchange",s.orientationChange);else{let t=e.parentElement.getBoundingClientRect();n.style.left=r.left-t.left+"px",r.top+s.height>window.innerHeight&&(n.style.top=window.innerHeight-(r.top+s.height)+"px"),n.style.height=s.height+"px"}setTimeout(()=>{h.isMobileDevice()?window.addEventListener("touchstart",this.hideDialog):window.addEventListener("click",this.hideDialog)},500)}hideDialog(e){let t=h.getTarget(e),i=this.container,r=h.getEvent(e),s=i.getBoundingClientRect();if(!(r.clientX<=s.right&&r.clientX>=s.left&&r.clientY<=s.bottom&&r.clientY>=s.top)){if(r.rangeParent&&"INPUT"==r.rangeParent.nodeName)return;for(;t;){if(t==i)return;let e=t.className;if("string"==typeof e&&e.indexOf("ea-color-picker")>=0)return;t=t.parentElement}this.hide()}}hide(){p.openDialog=null;let e=this;h.isMobileDevice()?window.removeEventListener("touchstart",e.hideDialog):window.removeEventListener("click",e.hideDialog),e.container.parentElement&&e.container.parentElement.removeChild(e.container)}addBaseButtons(e,t,i){let r=document.createElement("div");r.className="btn-container",e.appendChild(r),r.appendChild(t),r.appendChild(i),t.className="button",t.style.marginRight="20px",i.className="button",t.innerHTML="OK",i.innerHTML="Cancel"}}p.openDialog=null;class u{constructor(e,t,i,r){this.showMoreIcons=()=>{let e=this,t=e.submenuContainer;if(!t){t=document.createElement("div"),t.classList.add("default-toolbar"),t.classList.add("more-items-toolbar"),""!=e.config.ui&&t.classList.add(e.config.ui),e.container.appendChild(t);let i="default-toolbar-submenu-item";for(let r of e.submenuItems)r.element.classList.contains(i)||r.element.classList.add(i),t.appendChild(r.element);h.isMobileDevice()?window.addEventListener("touchstart",e.hideSubMenu):window.addEventListener("mousedown",e.hideSubMenu),e.submenuContainer=t}"block"==t.style.display?t.style.display="none":t.style.display="block"},this.hideSubMenu=e=>{let t=h.getTarget(e),i=this.submenuContainer;if(i){for(;t;){if(t==i)return;if(!(t instanceof HTMLElement||t instanceof SVGElement))break;t=t.parentElement}i.style.display="none"}};let s=this;s.items=t,s.itemClickHandler=i,s.parent=r,s.config=e,s.init(e)}init(e){let t=document.createElement("div");t.className="default-toolbar "+e.ui,t.setAttribute("part","toolbar");for(let i of this.items){let r=this.getUIElement(e,i);i.element=r,t.appendChild(r)}e.annotatorContainer.appendChild(t),this.container=t}getContainer(){return this.container}getUIElement(e,t){let i=this,r=document.createElement("div");return r.className="default-toolbar-item "+e.ui,t.itemId&&(r.id=t.itemId),t.title&&(r.title=t.title),r.onclick=e=>{p.getOpenDialog()&&p.getOpenDialog().hide(),e.stopPropagation(),i.itemClickHandler.call(i.parent,e,t),i.submenuContainer&&(i.submenuContainer.style.display="none")},t.iconSVG?r.innerHTML=t.iconSVG:t.iconURL&&(r.style.backgroundImage=t.iconURL,r.className+=" toolbar-url-icon"),r}deselectAll(e){let t;for(t of this.items)t!=e&&t instanceof s&&t.setPushed(!1)}doLayout(){let e,t=this,i=t.items,r=i.length,s=i.length,n=t.container,o=n.getBoundingClientRect().width,l=o/s;for(l=Math.min(30,Math.max(24,l)),e=l*i.length;e>o;)s--,l=o/s,l=Math.min(30,Math.max(24,l)),e=l*s;if(s<r){let e,o;for(t.submenuItems||(t.submenuItems=[]),e=s-2;e<r-1;e++)o=i[e],t.submenuItems.push(o),n.removeChild(o.element);let l=t.showMenuItemsButton;if(null==l){l=document.createElement("div");let e=t.config.ui;l.innerHTML="<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path class=\"ea-button ea-more-button\" d='M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z'></path></svg>",l.classList.add("default-toolbar-item"),""!==e&&l.classList.add(e),l.addEventListener("click",t.showMoreIcons),n.appendChild(l)}}}}class g{static getNextAnnotatorIdx(){return this.annotatorIdx++}static getSVGElement(e){var t;let i=e.annotatorContainer.getElementsByTagName("svg"),r=null,s="easyAnnotatorSVGContainer"+e.annotatorIdx;if((null===(t=e.annotatorContainer)||void 0===t?void 0:t.shadowRoot)&&(i=e.annotatorContainer.shadowRoot.querySelectorAll("svg")),i.length)for(let e=0;e<i.length;e++)if(i[e].id==s){r=i[e];break}return r||(r=document.createElementNS("http://www.w3.org/2000/svg","svg")),r}static createTransform(e){return this.getSVGElement(e).createSVGTransform()}static getDefs(e){let t,i=this.getSVGElement(e),r=i.getElementsByTagName("defs");return 0==r.length?(t=document.createElementNS("http://www.w3.org/2000/svg","defs"),i.appendChild(t)):t=r[0],t}static addToDefs(e,t){let i,r=t.id,s=this.getDefs(e),n=s.getElementsByTagName(t.tagName),o=n.length;for(i=0;i<o;i++)if(n[i].id==r)return;s.appendChild(t)}static createBlurFilter(e,t){let i=document.createElementNS("http://www.w3.org/2000/svg","filter");return i.setAttribute("id","blurFilter_"+e.annotatorIdx+"_"+this.filterIdx++),i.setAttribute("width","200%"),i.setAttribute("height","200%"),i.setAttribute("x","-50%"),i.setAttribute("y","-50%"),i.innerHTML='<feGaussianBlur stdDeviation="'+parseFloat(t.value)+'"/>',g.addToDefs(e,i),i}static createShadowFilter(e,t,i){let r=document.createElementNS("http://www.w3.org/2000/svg","filter");return r.setAttribute("id","blurFilter_"+e.annotatorIdx+"_"+this.filterIdx++),r.setAttribute("width","200%"),r.setAttribute("height","200%"),r.setAttribute("x","-50%"),r.setAttribute("y","-50%"),this.setShadowFilterValue(r,t,i),g.addToDefs(e,r),r}static setShadowFilterValue(e,t,i){let r=parseFloat(t.value),s="";i&&(s='<feGaussianBlur in="SourceGraphic" stdDeviation="'+parseInt(i.value,10)+'" result="DROPBLUR"></feGaussianBlur>'),s+='<feGaussianBlur in="SourceGraphic" stdDeviation="'+r+'" result="DROP"></feGaussianBlur> <feOffset in="SHADOW" result="DROPSHADOW" dx="'+r+'" dy="'+r+'"></feOffset> <feColorMatrix type="matrix" in="DROPSHADOW" result="FINALSHADOW" values="1 0 0 0 0\t\t\t\t\t 0 1 0 0 0 \t\t\t\t\t 0 0 1 0 0 \t\t\t\t\t 0 0 0 0.7 0"> </feColorMatrix> <feMerge> <feMergeNode in="FINALHADOW"></feMergeNode> <feMergeNode in="'+(i?"DROPBLUR":"SourceGraphic")+'"></feMergeNode> </feMerge>',e.innerHTML=s}static createFillPattern(e,t,i){if(t>0){let r=this.getDefs(e);if(i)try{i.parentNode==r&&r.removeChild(i)}catch(e){}let s="fillPattern_"+this.annotatorIdx+"_"+this.patternIdx+"_"+t,n=document.createElementNS("http://www.w3.org/2000/svg","pattern");n.id=s,n.setAttribute("patternUnits","userSpaceOnUse"),n.setAttribute("viewBox","0 0 12 20");let o=["M0 20 L12 0","M0 0 L12 20","M6 0 L6 20","M0 10 L12 10","M0 10 L12 10 M6 0 L6 20","M0 20 L12 0 M0 0 L12 20","M0 20 L12 0 M0 0 L12 20","M 5,5 A 1 1 0 1 0 2 5","M 5,5 A 3 3 0 1 0 2 5"];return t<=6?(n.setAttribute("width","12"),n.setAttribute("height","20")):(n.setAttribute("width","10"),n.setAttribute("height","10")),t<=o.length&&(n.innerHTML='<path d="'+o[t-1]+'"/>'),r.appendChild(n),n}}static createArrowMarker(e,t,i,r){let s=document.createElementNS("http://www.w3.org/2000/svg","marker"),n=this.getDefs(e),o=null,l="";switch(i&&n.removeChild(i),t||(t=0),s.setAttribute("id","arrowMarker_"+this.annotatorIdx+"_"+this.arrowMarkerIdx++),s.setAttribute("markerWidth","7"),s.setAttribute("markerHeight","8"),s.setAttribute("refX","5"),s.setAttribute("refY","4"),s.setAttribute("orient","auto"),t){case 0:o=document.createElementNS("http://www.w3.org/2000/svg","polygon"),r?o.setAttribute("points","1,4 6,1 6,7"):o.setAttribute("points","0,1 6,4 0,7");break;case 1:o=document.createElementNS("http://www.w3.org/2000/svg","polyline"),r?(s.setAttribute("refX","1"),o.setAttribute("points","6,1 0 4 6,7")):o.setAttribute("points","1,7 6,4 1,1"),l=" arrow-no-fill";break;case 2:o=document.createElementNS("http://www.w3.org/2000/svg","polyline"),o.setAttribute("points","0,0 5,0 5,5 0,5 0,0"),s.setAttribute("refY","3");break;case 3:o=document.createElementNS("http://www.w3.org/2000/svg","polyline"),o.setAttribute("points","1,3.5 3.5,1 6,3.5 3.5,6"),s.setAttribute("refY","3.5");break;case 4:o=document.createElementNS("http://www.w3.org/2000/svg","circle"),o.setAttribute("cx","3"),o.setAttribute("cy","3"),o.setAttribute("r","3"),s.setAttribute("refY","3"),s.setAttribute("refX","3"),l=" arrow-no-stroke";break;case 5:o=document.createElementNS("http://www.w3.org/2000/svg","polyline"),o.setAttribute("points","1,0 1,8"),s.setAttribute("refX","1")}return o.style.strokeLinejoin="miter",s.appendChild(o),n.appendChild(s),o.setAttribute("class","default-arrow-head "+e.ui+l),[s,o]}}g.annotatorIdx=0,g.patternIdx=0,g.arrowMarkerIdx=0,g.filterIdx=0,function(e){e[e.SOLID=0]="SOLID",e[e.DOTTED=1]="DOTTED",e[e.DASHED=2]="DASHED"}(o||(o={})),(l=e.ArrowType||(e.ArrowType={}))[l.NONE=0]="NONE",l[l.ARROW=1]="ARROW",l[l.OPEN_ARROW=2]="OPEN_ARROW",l[l.RECT=3]="RECT",l[l.DIAMOND_ARROW=4]="DIAMOND_ARROW",l[l.OVAL_ARROW=5]="OVAL_ARROW",l[l.LINE_ARROW=6]="LINE_ARROW",(a=e.EffectType||(e.EffectType={}))[a.BLUR=1]="BLUR",a[a.SHADOW=2]="SHADOW";class m{constructor(e,t){this.properties=[],this.RESIZE_ELEM_SIZE=8,this.fillPattern=null,this.x=0,this.y=0,this.filters={},this.drawStyle={startArrow:0,endArrow:0,width:2,type:o.SOLID,color:"#000"},this.fillStyle={fillType:0,color:"#000"},this.startDrag=(e,t)=>{let i=this;i.startX=e,i.startY=t,i.isDragging=!0,i.elementMatrix=i.svgGroupElement.transform.baseVal.getItem(0).matrix.translate(0,0),i.parent.startDrag(e,t),i.onSelectHandler&&i.onSelectHandler(i)},this.onTouchStart=e=>{let t=e.changedTouches[0];e.stopPropagation(),this.setSelected(!0),this.startDrag(t.screenX,t.screenY)},this.onMouseDown=e=>{this.doMouseDown(e)},this.onTouchEnd=e=>{this.isDragging=!1},this.onMouseUp=e=>{this.isDragging=!1},this.onTouchMove=e=>{let t=this;if(e.stopImmediatePropagation(),e.preventDefault(),e.stopPropagation(),t.isDragging){let i=e.changedTouches[0];t.move(i.screenX,i.screenY,i)}},this.onMouseMove=e=>{let t=this;if(t.isDragging){e.stopPropagation();let i=this.getPixelRatio();t.move(e.screenX/i,e.screenY/i,e)}};let i=this;i.config=e,i.parent=t,i.width=200*e.sizePercentage,i.height=80*e.sizePercentage,i.init()}getElement(){return this.svgGroupElement}clean(){}init(){let e=document.createElementNS("http://www.w3.org/2000/svg","g"),t=this;e.transform.baseVal.appendItem(g.createTransform(t.config)),e.addEventListener("touchstart",t.onTouchStart,{passive:!1}),e.addEventListener("touchend",t.onTouchEnd,{passive:!1}),e.addEventListener("touchmove",t.onTouchMove,{passive:!1}),e.addEventListener("mousedown",t.onMouseDown),e.addEventListener("mouseup",t.onMouseUp),e.addEventListener("mousemove",t.onMouseMove),e.style.zIndex="100",this.svgGroupElement=e,t.elementMatrix=t.svgGroupElement.transform.baseVal.getItem(0).matrix.translate(0,0)}doMouseDown(e){e.stopPropagation(),this.setSelected(!0);let t=this.getPixelRatio();this.startDrag(e.screenX/t,e.screenY/t)}getPixelRatio(){return h.isEdge()?window.devicePixelRatio:1}processMouseUp(){this.isDragging=!1}move(e,t,i){const r=this.svgGroupElement.getScreenCTM().a;this.moveBy((e-this.startX)/r,(t-this.startY)/r,i)}moveBy(e,t,i){let r=this.svgGroupElement.transform.baseVal.getItem(0);r.setMatrix(this.elementMatrix.translate(e,t)),this.svgGroupElement.transform.baseVal.replaceItem(r,0)}createResizeElement(e){let t=document.createElementNS("http://www.w3.org/2000/svg","circle");return t.transform.baseVal.appendItem(g.createTransform(this.config)),t.setAttribute("class","anotator-resize-element"),h.isMobileDevice()?(t.setAttribute("r","10"),t.setAttribute("cx","5"),t.setAttribute("cy","5")):(t.setAttribute("r","8"),t.setAttribute("cx","4"),t.setAttribute("cy","4")),t.style.display="none",t}intersects(e,t,i,r){return!1}containsPoint(e,t){return!1}setStrokeType(e){}getStrokeType(){return this.drawStyle?this.drawStyle.type:-1}getStrokeWidth(){return this.drawStyle?this.drawStyle.width:-1}setStrokeWidth(e){}setDrawColor(e){}setFillColor(e){}setFillType(e){}setSelected(e){this.selected=e}_setStrokeType(e,t){let i="none",r="unset";this.drawStyle.type=t;let s=e.style;switch(t){case o.DOTTED:let e=parseInt(s.strokeWidth,10);if(isNaN(e))return;i="1 "+(e*(e<7?2:1.5)).toString(),r="round";break;case o.DASHED:i="10%"}s.strokeDasharray=i,s.strokeLinecap=r}_setStrokeWidth(e,t){let i=e.style;i.strokeWidth=t.toString(),this.drawStyle.type==o.DOTTED&&(i.strokeDasharray="1 "+(t*(t<7?2:1.5)).toString(),i.strokeLinecap="round")}setDrawStyle(e){let t=this.drawStyle;t.type=e.type,t.width=e.width,t.color=e.color,t.startArrow=e.startArrow,t.endArrow=e.endArrow,e.color&&this.setDrawColor(e.color),e.width&&this.setStrokeWidth(e.width),e.type&&this.setStrokeType(e.type)}getDrawStyle(){return this.drawStyle}setFillStyle(t){let i=this,r=i.fillStyle,s=!1,n=!1;void 0!==t.color&&r.color!=t.color&&(r.color=t.color,s=!0),void 0!==t.fillType&&r.fillType!=t.fillType&&(r.fillType=t.fillType,n=!0),s&&i.setFillColor(t.color),n&&i.setFillType(t.fillType),void 0!==t.opacity&&r.opacity!=t.opacity&&(r.opacity=t.opacity,i.setOpacity(r.opacity));let o=!1,l=!1,a=i.filters,d=g.getDefs(i.config);if(a[e.EffectType.BLUR]&&(d.removeChild(a[e.EffectType.BLUR]),a[e.EffectType.BLUR]=null),a[e.EffectType.SHADOW]&&(d.removeChild(a[e.EffectType.SHADOW]),a[e.EffectType.SHADOW]=null),t.effects&&t.effects.length)for(let r of t.effects){let s=null;switch(r.effectType){case e.EffectType.BLUR:if(o=!0,t.effects.length>1)for(let i of t.effects)if(i.effectType==e.EffectType.SHADOW){l=!0,s=i;break}if(a[e.EffectType.BLUR])a[e.EffectType.BLUR].innerHTML='<feGaussianBlur stdDeviation="'+parseInt(r.value,10)+'"/>';else if(l){let t=g.createShadowFilter(i.config,r,s);i.baseSVGElement.setAttribute("filter","url(#"+t.id+")"),a[e.EffectType.BLUR]=t}else{let t=g.createBlurFilter(i.config,r);i.baseSVGElement.setAttribute("filter","url(#"+t.id+")"),a[e.EffectType.BLUR]=t}break;case e.EffectType.SHADOW:if(l=!0,o)break;if(a[e.EffectType.SHADOW])g.setShadowFilterValue(a[e.EffectType.SHADOW],r);else{let t=g.createShadowFilter(i.config,r);i.baseSVGElement.setAttribute("filter","url(#"+t.id+")"),a[e.EffectType.SHADOW]=t}}}o||l||i.baseSVGElement.setAttribute("filter","none"),r.effects=t.effects}getFillStyle(){return this.fillStyle}setOpacity(e){e>100?e=100:e<0&&(e=0),this.baseSVGElement&&(this.baseSVGElement.style.opacity=(e/100).toString())}isOnTop(){return!1}toXML(){return null}fromXML(e){}getWidth(){return this.width}getHeight(){return this.height}loadXMLDraw(e){let t=this;t.setDrawStyle({width:t.getXMLNumber(e,"dw"),type:t.getXMLNumber(e,"dt"),color:e.getAttribute("dc")||"#000",startArrow:t.getXMLNumber(e,"sa"),endArrow:t.getXMLNumber(e,"ea")})}loadXMLFill(e){let t=this;this.setFillStyle({fillType:t.getXMLNumber(e,"ft"),color:e.getAttribute("fc")||"#000",opacity:t.getXMLNumber(e,"op")});for(let i in t.filters){let r=document.createElement("f");r.setAttribute("i",i),r.setAttribute("v",t.filters[i]),e.appendChild(r)}}getXMLNumber(e,t){let i=e.getAttribute(t),r=0;return i&&(r=parseInt(i,10),isNaN(r)&&(r=0)),r}toJSON(){return null}fromJSON(e){}addDraw(e){let t=this.drawStyle;e.setAttribute("dw",t.width.toString()),e.setAttribute("dt",t.type.toString()),e.setAttribute("dc",t.color),e.setAttribute("sa",t.startArrow.toString()),e.setAttribute("ea",t.endArrow.toString())}addFill(e){let t=this.fillStyle;e.setAttribute("ft",t.fillType.toString()),e.setAttribute("fc",t.color),t.opacity&&e.setAttribute("op",t.opacity.toString())}addJSONDraw(e){let t=this.drawStyle;e.dw=t.width,e.dt=t.type,e.dc=t.color,e.sa=t.startArrow,e.ea=t.endArrow}loadJSONDraw(e){this.setDrawStyle({width:e.dw,type:e.dt,color:e.dc,startArrow:parseInt(e.sa,10),endArrow:parseInt(e.ea,10)})}loadJSONFill(e){this.setFillStyle({fillType:e.ft,color:e.fc,opacity:e.op})}addJSONFill(e){let t=this.fillStyle;e.ft=t.fillType,e.fc=t.color,e.op=t.opacity}getProperties(){return this.properties}getType(){return""}}class f{