1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[551],{2639:(A,y,f)=>{f.d(y,{R:()=>S});var u=f(5e3);let C=(()=>{class n{static detectSwipe(e){const t=e.changedTouches||e.originalEvent&&e.originalEvent.changedTouches;if(t){if("touchstart"===e.type)return n.initialTouchStartX=t[0].clientX,n.initialTouchStartY=t[0].clientY,!0;if("touchend"===e.type){const r=t[0].clientY;if(Math.abs(t[0].clientX-n.initialTouchStartX)>20||Math.abs(r-n.initialTouchStartY)>20)return e.stopPropagation(),e.preventDefault(),!1}return!0}return!1}}return n.initialTouchStartX=0,n.initialTouchStartY=0,n})(),S=(()=>{class n{constructor(e){this.element=e,this.filters=[],this.lastFileCount=0,this.multiple=!0,this.autoClear=!1,this.accept="*",this.height=100,this.files=[],this.upload=new u.vpe,this.fileOver=new u.vpe,this.filesChange=new u.vpe,this.initFilters()}get nativeElement(){return this.element.nativeElement}initFilters(){this.filters.push({name:"accept",fn:this.acceptFilter}),this.filters.push({name:"fileSize",fn:this.fileSizeFilter})}ngOnDestroy(){delete this.fileElement}ngOnInit(){this.enableSelection(),this.multiple&&this.paramFileElm().setAttribute("multiple",this.multiple),setTimeout(()=>{},0)}ngOnChanges(e){e.accept&&this.paramFileElm().setAttribute("accept",e.accept.currentValue)}acceptFilter(e){return function g(n,s,e){if(!n)return!0;const t=n.split(",");let i,r;for(let o=t.length-1;o>=0;--o)if(r=t[o],r=r.replace(/(^\s+|\s+$)/g,""),r=r.replace(/\*/g,".*"),i=new RegExp(r,"gi"),s.search(i)>=0||"."===r.substring(0,1)&&(r="\\"+r,i=new RegExp(r+"$","i"),(e||s).search(i)>=0))return!0;return!1}(this.accept,e.type,e.name)}fileSizeFilter(e){return!(this.maxSize&&e.size>this.maxSize)}changeFn(e){const t=e.__files_||e.target&&e.target.files;!t||(this.stopEvent(e),this.handleFiles(t))}clickHandler(e){if(this.nativeElement.getAttribute("disabled"))return!1;const t=C.detectSwipe(e);return!1!==t?t:(this.paramFileElm().click(),this.beforeSelect(),!1)}beforeSelect(){this.fileElement.value=null}enableSelection(){if(this.isFileInput(this.nativeElement)){const e=()=>this.beforeSelect();return this.nativeElement.addEventListener("click",e),void this.nativeElement.addEventListener("touchstart",e)}{const e=t=>this.clickHandler(t);this.nativeElement.addEventListener("click",e),this.nativeElement.addEventListener("touchstart",e),this.nativeElement.addEventListener("touchend",e)}}paramFileElm(){if(this.fileElement)return this.fileElement;if(this.isFileInput(this.nativeElement))return this.fileElement=this.nativeElement;const t=this.createInvisibleFileInputWrap();return this.fileElement=t.getElementsByTagName("input")[0],this.fileElement.addEventListener("change",this.changeFn.bind(this)),this.nativeElement.appendChild(t),this.fileElement}createInvisibleFileInputWrap(){const e=this.createFileInput(),t=document.createElement("label");return t.style.visibility="hidden",t.style.position="absolute",t.style.overflow="hidden",t.style.width="0px",t.style.height="0px",t.style.border="none",t.style.margin="0px",t.style.padding="0px",t.setAttribute("tabindex","-1"),t.appendChild(e),t}createFileInput(){const e=document.createElement("input");return e.type="file",e}onDrop(e){this.closeDrags();const t=this.eventToFiles(e);!t.length||(this.stopEvent(e),this.handleFiles(t))}onDragOver(e){const t=this.eventToTransfer(e),i=this.eventToFiles(e);this.validDrag=!i.length||this.isFilesValid(i),t.dropEffect="copy",this.stopEvent(e),this.fileOver.emit(!0)}onDragLeave(e){this.closeDrags(),(!this.element||e.currentTarget!==this.nativeElement)&&(this.stopEvent(e),this.fileOver.emit(!1))}closeDrags(){}getFileFilterFailName(e){for(const t of this.filters)if(!t.fn.call(this,e))return t.name;return!1}isFileValid(e){return!(this.accept||this.filters&&this.filters.length)||!this.getFileFilterFailName(e)}isFilesValid(e){for(const t of e)if(!this.isFileValid(t))return!1;return!0}getValidFiles(e){const t=[];for(const i of e)this.isFileValid(i)&&t.push(i);return t.reverse()}getInvalidFiles(e){const t=[];for(let i=e.length-1;i>=0;--i){const r=this.getFileFilterFailName(e[i]);"string"==typeof r&&t.push({file:e[i],type:r})}return t}handleFiles(e){const t=this.getValidFiles(e);t.length&&this.que(t),this.isEmptyAfterSelection()&&(this.nativeElement.value="")}removeFile(e,t){this.stopEvent(t),this.files.splice(this.files.indexOf(e),1),this.filesChange.emit(this.files),this.lastFileCount=this.files.length}que(e){this.files=this.multiple&&this.files||[],Array.prototype.push.apply(this.files,e),this.filesChange.emit(this.files),this.autoClear&&this.files.splice(0),this.lastFileCount=this.files.length}eventToTransfer(e){return e.dataTransfer?e.dataTransfer:null}eventToFiles(e){const t=this.eventToTransfer(e);return t.files&&t.files.length?t.files:t.items&&t.items.length?t.items:[]}isEmptyAfterSelection(){return!!this.nativeElement.attributes.multiple}stopEvent(e){e.preventDefault(),e.stopPropagation()}isFileInput(e){const t=e.getAttribute("type");return"input"===e.tagName.toLowerCase()&&t&&"file"===t.toLowerCase()}filesToWriteableObject(e){const t=[];for(const i of e)t.push({type:i.type,kind:i.kind});return t}}return n.\u0275fac=function(e){return new(e||n)(u.Y36(u.SBq))},n.\u0275cmp=u.Xpm({type:n,selectors:[["ng-component"]],hostBindings:function(e,t){1&e&&u.NdJ("drop",function(r){return t.onDrop(r)})("dragover",function(r){return t.onDragOver(r)})("dragleave",function(r){return t.onDragLeave(r)})},inputs:{multiple:"multiple",autoClear:"autoClear",accept:"accept",maxSize:"maxSize",height:"height",files:"files"},outputs:{upload:"upload",fileOver:"fileOver",filesChange:"filesChange"},features:[u.TTD],decls:0,vars:0,template:function(e,t){},encapsulation:2}),n})()},7679:(A,y,f)=>{f.d(y,{T:()=>v});var u=f(9808),d=f(2382),g=f(5e3);let v=(()=>{class h{}
1return h.\u0275fac=function(E){return new(E||h)},h.\u0275mod=g.oAB({type:h}),h.\u0275inj=g.cJS({imports:[[u.ez,d.u5,d.UX]]}),h})()},1558:(A,y,f)=>{f.d(y,{p:()=>d});var u=f(5e3);let d=(()=>{class g{constructor(){this.units=["B","kB","MB","GB","TB","PB"]}transform(h,m=1){if(0===h)return"0 B";void 0===m&&(m=1);const E=Math.floor(Math.log(h)/Math.log(1024));return(h/Math.pow(1024,Math.floor(E))).toFixed(m)+" "+this.units[E]}}return g.\u0275fac=function(h){return new(h||g)},g.\u0275pipe=u.Yjl({name:"fileSize",type:g,pure:!0}),g})()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.