{"version":3,"sources":["webpack:///webpack/bootstrap 34a594011d80887a9b65","webpack:///external \"girder_lib\"","webpack:///delegated ./node_modules/underscore/underscore.js from dll-reference girder_lib","webpack:///./~/@girder/large_image_annotation/annotations/geojs/common.js","webpack:///delegated ./src/rest.js from dll-reference girder_lib","webpack:///delegated ./src/events.js from dll-reference girder_lib","webpack:///delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib","webpack:///./~/@girder/large_image_annotation/annotations/defaults/index.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/coordinates/array.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/coordinates/point.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/rectangle.js","webpack:///./~/@girder/large_image_annotation/annotations/rotate.js","webpack:///./~/@girder/large_image_annotation/annotations/style.js","webpack:///./~/@girder/large_image_annotation/views/configView.js","webpack:///delegated ./node_modules/pug-runtime/index.js from dll-reference girder_lib","webpack:///delegated ./node_modules/backbone/backbone.js from dll-reference girder_lib","webpack:///delegated ./node_modules/jquery/dist/jquery.js from dll-reference girder_lib","webpack:///external \"girder_plugin_large_image\"","webpack:///./~/@girder/large_image_annotation/annotations/convert.js","webpack:///./~/@girder/large_image_annotation/annotations/convertFeatures.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/convert.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/index.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/index.js","webpack:///./~/@girder/large_image_annotation/collections/AnnotationCollection.js","webpack:///./~/@girder/large_image_annotation/models/AnnotationModel.js","webpack:///./~/@girder/large_image_annotation/views/imageViewerSelectWidget.js","webpack:///delegated ./src/views/View.js from dll-reference girder_lib","webpack:///delegated ./src/constants.js from dll-reference girder_lib","webpack:///./~/@girder/large_image_annotation/main.js","webpack:///./~/@girder/large_image_annotation/~/tinycolor2/tinycolor.js","webpack:///./~/@girder/large_image_annotation/annotations/defaults/circle.js","webpack:///./~/@girder/large_image_annotation/annotations/defaults/ellipse.js","webpack:///./~/@girder/large_image_annotation/annotations/defaults/point.js","webpack:///./~/@girder/large_image_annotation/annotations/defaults/polyline.js","webpack:///./~/@girder/large_image_annotation/annotations/defaults/rectangle.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/coordinates/index.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/index.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/circle.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/ellipse.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/line.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/point.js","webpack:///./~/@girder/large_image_annotation/annotations/geojs/types/polygon.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/circle.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/ellipse.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/point.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/polyline.js","webpack:///./~/@girder/large_image_annotation/annotations/geometry/rectangle.js","webpack:///./~/@girder/large_image_annotation/annotations/index.js","webpack:///./~/@girder/large_image_annotation/collections/ElementCollection.js","webpack:///./~/@girder/large_image_annotation/collections/index.js","webpack:///./~/@girder/large_image_annotation/index.js","webpack:///./~/@girder/large_image_annotation/models/ElementModel.js","webpack:///./~/@girder/large_image_annotation/models/index.js","webpack:///./~/@girder/large_image_annotation/routes.js","webpack:///./~/@girder/large_image_annotation/views/annotationListWidget.js","webpack:///./~/@girder/large_image_annotation/views/imageViewerWidget/base.js","webpack:///./~/@girder/large_image_annotation/views/imageViewerWidget/geojs.js","webpack:///./~/@girder/large_image_annotation/views/imageViewerWidget/index.js","webpack:///./~/@girder/large_image_annotation/views/index.js","webpack:///./~/@girder/large_image_annotation/views/itemList.js","webpack:///./~/@girder/large_image_annotation/templates/annotationListWidget.pug","webpack:///./~/@girder/large_image_annotation/templates/imageViewerAnnotationList.pug","webpack:///./~/@girder/large_image_annotation/templates/largeImageAnnotationConfig.pug","webpack:///./~/@girder/large_image_annotation/stylesheets/annotationListWidget.styl","webpack:///./~/@girder/large_image_annotation/stylesheets/itemList.styl","webpack:///delegated ./src/views/widgets/ItemListWidget.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/PluginConfigBreadcrumbWidget.js from dll-reference girder_lib","webpack:///delegated ./src/collections/Collection.js from dll-reference girder_lib","webpack:///delegated ./node_modules/@girder/large_image/views/imageViewerSelectWidget.js from dll-reference girder_plugin_large_image","webpack:///delegated ./node_modules/@girder/large_image/views/imageViewerWidget/index.js from dll-reference girder_plugin_large_image","webpack:///delegated ./src/models/AccessControlledModel.js from dll-reference girder_lib","webpack:///delegated ./src/collections/UserCollection.js from dll-reference girder_lib","webpack:///delegated ./src/utilities/EventStream.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/AccessWidget.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/UploadWidget.js from dll-reference girder_lib","webpack:///delegated ./src/pluginUtils.js from dll-reference girder_plugin_large_image","webpack:///delegated ./src/dialog.js from dll-reference girder_lib","webpack:///delegated ./src/router.js from dll-reference girder_lib","webpack:///delegated ./src/auth.js from dll-reference girder_lib"],"names":["defaults","common","annotation","type","_","extend","rectangle","ellipse","circle","polyline","point","array","a","map","pt","x","y","z","element","p","coordinates","ang","Math","atan2","ang0","indexOf","min","PI","p1","p2","p3","p4","top","left","rotation","height","sqrt","width","center","rotate","cos","sin","style","memoizeColorAlpha","entries","colorAlpha","color","tccolor","value","rgb","toHexString","alpha","getAlpha","json","label","fillColor","fillOpacity","lineColor","strokeColor","strokeOpacity","lineWidth","strokeWidth","ConfigView","View","events","event","preventDefault","$","empty","_saveSettings","key","prop","initialize","getSettings","settings","render","$el","html","viewers","breadcrumb","PluginConfigBreadcrumbWidget","pluginName","el","parentView","url","data","list","JSON","stringify","error","done","clearSettings","trigger","icon","text","timeout","fail","resp","responseJSON","message","callback","convert","geometry","convertOne","properties","startsWith","has","geom","id","annotationType","features","chain","mapObject","compact","heatmapColorTable","record","values","range0","range1","max","r","g","b","colorRange","rangeValues","normalizeRange","length","i","val","undefined","convertHeatmap","layer","heatmapLayer","createLayer","colorTable","points","d","heatmap","createFeature","radius","blurRadius","gaussian","scaleWithZoom","position","intensity","minIntensity","maxIntensity","updateDelay","_ownLayer","convertGridToHeatmap","x0","origin","y0","dx","dy","gridWidth","floor","convertGridToContour","contour","stepped","minColor","zeroColor","maxColor","converters","griddata_contour","griddata_heatmap","convertFeatures","forEach","func","interpretation","concat","err","console","types","Error","polygon","line","Collection","resourceName","model","AnnotationModel","pageLimit","sortField","sortDir","SORT_DESC","AccessControlledModel","maxDetails","maxCentroids","_region","get","sort","sortdir","_viewArea","_elements","ElementCollection","elements","listenTo","toJSON","set","fetchCentroids","altUrl","restOpts","centroids","limit","xhrFields","responseType","dv","DataView","z0","z1","byteLength","getUint8","Uint8Array","slice","result","parse","decodeURIComponent","escape","String","fromCharCode","apply","default","polyline_closed","props","_elementQuery","propsdict","propskeys","Object","assign","closed","returned","Array","Float32Array","s","Uint32Array","getUint32","toString","substr","getFloat32","count","partial","_centroids","fetch","opts","alert","extraPath","ignoreError","_inFetch","_refresh","_pageElements","then","always","_nextFetch","nextFetch","reset","sync","refresh","self","save","options","method","isNew","warn","contentType","processData","destroy","stopListening","collection","delete","name","xhr","unset","geojson","non_geojson","overlays","overlayElementTypes","filter","includes","setView","bounds","zoom","maxZoom","noFetch","sizeX","sizeY","right","bottom","xoverlap","yoverlap","minxoverlap","minyoverlap","canskip","abs","_lastZoom","lastRegion","every","ImageViewerSelectWidget","itemId","imageModel","_annotationList","AnnotationListWidget","rest","arguments","append","setViewer","currentViewer","setElement","_selectViewer","largeImageAnnotation","normal","holes","inner","h","outer","first","push","hole","geojs","Backbone","ElementModel","comparator","AnnotationCollection","annotations","collections","models","views","Model","idAttribute","router","route","evt","currentTarget","find","click","stopPropagation","_drawn","Set","_viewer","_sort","users","UserCollection","eventStream","_fetchUsers","item","accessLevel","getAccessLevel","canDraw","annotationAPI","drawn","apiRoot","AccessType","viewer","clear","_displayAnnotation","parent","add","drawAnnotation","removeAnnotation","_deleteAnnotation","parents","escapedHtml","yesText","confirmCallback","_uploadAnnotation","uploadWidget","UploadWidget","title","parentType","multiFile","otherParams","reference","identifier","fileId","userId","on","_uploadWidget","_changePermissions","at","clone","updateAccess","access","public","publicFlags","each","loopmodel","AccessWidget","hideRecurseOption","when","ImageViewerWidgetAnnotationExtension","constant","drawRegion","startDrawMode","guid","s4","random","substring","GeojsImageViewerWidgetExtension","_annotations","_featureOpacity","_unclampBoundsForOverlay","_globalAnnotationOpacity","globalAnnotationOpacity","_globalAnnotationFillOpacity","globalAnnotationFillOpacity","_highlightFeatureSizeLimit","highlightFeatureSizeLimit","clearRegion","_hoverEvents","hoverEvents","_postRender","featureLayer","setGlobalAnnotationOpacity","setGlobalAnnotationFillOpacity","annotationLayer","showLabels","geo","window","geoOn","pan","setBounds","getUnclampBoundsForOverlay","setUnclampBoundsForOverlay","newValue","_getOverlayTransformProjString","overlay","transformInfo","transform","xOffset","xoffset","yOffset","yoffset","matrix","s11","s12","s21","s22","projString","_countDrawnImageOverlays","numOverlays","obj","annotationOverlays","_addPixelmapLayerParams","layerParams","pixelmapElement","levelDifference","keepLower","girderId","pixelmapData","boundaries","valuesWithBoundaries","categoryMap","categories","category","_generateOverlayLayerParams","overlayImageMetadata","overlayImageId","params","util","pixelCoordinateParams","node","tileWidth","tileHeight","useCredentials","autoshareRenderer","renderer","opacity","levels","minLevel","maxLevel","tilesMaxBounds","level","scale","pow","tilesAtZoom","ceil","hasAlpha","present","centroidFeature","feature","idx","deleteLayer","deleteFeature","oldOverlayIds","updatedOverlayIds","overlayLayer","layers","off","featureList","unitsPerPixel","stroke","_shownIds","fill","_centroidLastZoom","verticesPerFeature","vpf","j","k","updateStyleFromArray","modified","draw","clampBoundsY","clampBoundsX","overlayItemId","response","conflictingLayers","layerType","proj","gcs","moveToTop","featureEvents","mouseclick","mouseoff","mouseon","mouseover","mouseout","_onMouseFeature","scheduleAnimationFrame","createFileReader","read","selectionAPI","featureType","_mutateFeaturePropertiesForHighlight","shown","highlightAnnotation","_highlightAnnotation","_highlightElement","annotationId","hideAnnotation","_hideAnnotation","_hideElement","datalen","highlightannot","highlightelem","hideannot","hideelem","isMatch","_lastFeatureProp","fillOpacityArray","strokeOpacityArray","newOpacity","zoomRange","overlayLayers","_mergeRegions","origval","addval","drawMode","addToExisting","round","flat","defer","Deferred","mode","geoOff","state","keepExisting","removeAllAnnotations","resolve","promise","annot","overlayOpacity","_setEventTypes","_eventTypes","eventType","overlayEventType","extensions","ItemListWidget","ViewerWidget","addLargeImageAnnotationBadge","numAnnotations","thumbnail","cid","badge","appendTo","attr","toggleClass","largeImageAnnotationConfig","items","toArray","hasAnyLargeImage","some","needCounts","_annotationCount","join","headers","pug","require","template","locals","pug_html","pug_mixins","pug_interp","pug_debug_filename","pug_debug_line","pug_debug_sources","locals_for_with","Date","WRITE","ADMIN","$$obj","pug_index0","$$l","creatorModel","creator","toLocaleString","call","rethrow","module","exports"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AL,EAA8B,eAA9B,EAA+C,UAAUW,aAAV,EAAyB;AAAA;AAAA;;AACpEA,kBAAcvF,KAAd,CAAoB,IAApB,EAA0BxN,qBAAEyS,IAAF,CAAOC,SAAP,CAA1B;AADoE;AAEpE,SAAKH,eAAL,CACKK,SADL,CACe,KAAKC,aADpB,EAEKtO,MAFL;AAFoE;AAKpE,WAAO,IAAP;AACH,CAND;;kBAQe6N,iC;;;;;;ACtCf,6C;;;;;;ACAA,6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEA;;;AAIA;;;AANA;;AAGA;;AACA;;AAGA;;IAAYY,oB;;;;;;AACZ,0CAAwB,wBAAxB,EAAkDA,oBAAlD,E;;;;;;ACRA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,sBAAsB,8BAA8B;AACpD,sBAAsB,8BAA8B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,mBAAmB,OAAO;AACzD,+BAA+B,mBAAmB,OAAO;AACzD,+BAA+B,mBAAmB,OAAO;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,wCAAwC;AACxC,wCAAwC;AACxC;;AAEA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,sDAAsD;AACtD,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,mBAAmB,yCAAyC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAwC;AAC3D,mBAAmB,yCAAyC;AAC5D,mBAAmB,yCAAyC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAuC;AAC1D,mBAAmB,wCAAwC;AAC3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+DAA+D,WAAW;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;;AAEnF;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8EAA8E,4BAA4B,gBAAgB;AAC1H,8EAA8E,2BAA2B,gBAAgB;AACzH,qDAAqD,oDAAoD,gBAAgB;AACzH,qDAAqD,oDAAoD,gBAAgB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,KAAK,kBAAkB,YAAY,kBAAkB;AACrD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,YAAY;;AAExC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,UAAU,OAAO,UAAU,OAAO,SAAS;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,IAA0C;AACnD,IAAI,kCAAO,aAAa,kBAAkB;AAAA,oGAAC;AAC3C;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBC1qCc;AACX7P,eAAW,eADA;AAEXE,eAAW,YAFA;AAGXG,eAAW;AAHA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCAA;AACXL,eAAW,eADA;AAEXE,eAAW,YAFA;AAGXG,eAAW,CAHA;AAIX1B,cAAU,CAJC;AAKXmR,YAAQ,CAAC,CAAD,EAAI,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","file":"plugin.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/built/\";\n\n \t__webpack_require__(27);\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 78);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 34a594011d80887a9b65","module.exports = girder_lib;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"girder_lib\"\n// module id = 0\n// module chunks = 0","module.exports = (__webpack_require__(0))(3);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/underscore/underscore.js from dll-reference girder_lib\n// module id = 1\n// module chunks = 0","import _ from 'underscore';\n\nimport * as defaults from '../defaults';\n\n/**\n * Convert properties from geojs options to annotation\n * elements that all types have in common. At the moment,\n * this handles style information, but could be expanded\n * to handle labels, names, id's, etc.\n *\n * @param {annotation} annotation A geojs native annotation object\n * @param {string} type Override the detected output type\n * @returns {object}\n */\nfunction common(annotation, type) {\n type = type || annotation.type();\n return _.extend({}, defaults[type] || {});\n}\n\nexport default common;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/common.js","module.exports = (__webpack_require__(0))(4);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/rest.js from dll-reference girder_lib\n// module id = 3\n// module chunks = 0","module.exports = (__webpack_require__(0))(5);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/events.js from dll-reference girder_lib\n// module id = 4\n// module chunks = 0","module.exports = (__webpack_require__(0))(84);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib\n// module id = 5\n// module chunks = 0","import rectangle from './rectangle';\nimport ellipse from './ellipse';\nimport circle from './circle';\nimport polyline from './polyline';\nimport point from './point';\n\nexport {\n rectangle,\n ellipse,\n circle,\n polyline,\n point\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/index.js","import _ from 'underscore';\n\nimport point from './point';\n\n/**\n * Convert an array of point objects to an array of\n * annotation coordinates.\n */\nfunction array(a) {\n return _.map(a, point);\n}\n\nexport default array;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/coordinates/array.js","/**\n * Convert a geojs point object to an annotation\n * coordinate.\n */\nfunction point(pt) {\n return [pt.x, pt.y, pt.z || 0];\n}\n\nexport default point;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/coordinates/point.js","import _ from 'underscore';\n\nimport common from '../common';\n\n/**\n * Convert a geojs rectangle annotation to the large_image\n * annotation schema.\n */\nfunction rectangle(annotation) {\n const element = common(annotation);\n let p = annotation.coordinates();\n /* Sort the coordinates so they are always in the same winding order. */\n let ang = [\n Math.atan2(p[1].y - p[0].y, p[1].x - p[0].x),\n Math.atan2(p[2].y - p[1].y, p[2].x - p[1].x),\n Math.atan2(p[3].y - p[2].y, p[3].x - p[2].x),\n Math.atan2(p[0].y - p[3].y, p[0].x - p[3].x)\n ];\n let ang0 = ang.indexOf(Math.min(...ang));\n if (ang[(ang0 + 1) % 4] - ang[ang0] > Math.PI) {\n p = [p[0], p[3], p[2], p[1]];\n ang = [\n Math.atan2(p[1].y - p[0].y, p[1].x - p[0].x),\n Math.atan2(p[2].y - p[1].y, p[2].x - p[1].x),\n Math.atan2(p[3].y - p[2].y, p[3].x - p[2].x),\n Math.atan2(p[0].y - p[3].y, p[0].x - p[3].x)\n ];\n ang0 = ang.indexOf(Math.min(...ang));\n }\n /* If rotate, bias toward the more flat direction. */\n if (ang[ang0] < -0.75 * Math.PI) {\n ang0 += 1;\n }\n /* Sort the coordinates so that they are in a predictable order */\n const p1 = p[ang0 % 4],\n p2 = p[(ang0 + 1) % 4],\n p3 = p[(ang0 + 2) % 4],\n p4 = p[(ang0 + 3) % 4];\n const top = [p3.x - p2.x, p3.y - p2.y];\n const left = [p2.x - p1.x, p2.y - p1.y];\n\n // determine the rotation of the top line of the rectangle\n const rotation = Math.atan2(top[1], top[0]);\n const height = Math.sqrt(left[0] * left[0] + left[1] * left[1]);\n const width = Math.sqrt(top[0] * top[0] + top[1] * top[1]);\n const center = [\n 0.25 * (p1.x + p2.x + p3.x + p4.x),\n 0.25 * (p1.y + p2.y + p3.y + p4.y),\n 0\n ];\n\n return _.extend(element, {\n type: 'rectangle',\n center,\n width,\n height,\n rotation\n });\n}\n\nexport default rectangle;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/rectangle.js","/**\n * Returns a function that rotates a coordinate the given\n * amount about a center point.\n */\nexport default function rotate(rotation, center) {\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n center = center || [0, 0];\n\n return function (point) {\n const x = point[0] - center[0];\n const y = point[1] - center[1];\n return [\n x * cos - y * sin + center[0],\n x * sin + y * cos + center[1]\n ];\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/rotate.js","import tc from 'tinycolor2';\n\nvar memoizeColorAlpha = {entries: 0};\n\nfunction colorAlpha(color) {\n if (memoizeColorAlpha[color]) {\n return memoizeColorAlpha[color];\n }\n var tccolor = tc(color),\n value = {\n rgb: tccolor.toHexString(),\n alpha: tccolor.getAlpha()\n };\n memoizeColorAlpha.entries += 1;\n if (memoizeColorAlpha.entries > 100) {\n memoizeColorAlpha = {entries: 0};\n }\n memoizeColorAlpha[color] = value;\n return value;\n}\n\nexport default function style(json) {\n var color;\n const style = {};\n\n if (json.label) {\n style.label = json.label;\n }\n if (json.fillColor) {\n color = colorAlpha(json.fillColor);\n style.fillColor = color.rgb;\n style.fillOpacity = color.alpha;\n }\n if (json.lineColor) {\n color = colorAlpha(json.lineColor);\n style.strokeColor = color.rgb;\n style.strokeOpacity = color.alpha;\n }\n if (json.lineWidth) {\n style.strokeWidth = json.lineWidth;\n }\n return style;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/style.js","import View from '@girder/core/views/View';\n\nimport PluginConfigBreadcrumbWidget from '@girder/core/views/widgets/PluginConfigBreadcrumbWidget';\nimport { restRequest } from '@girder/core/rest';\nimport events from '@girder/core/events';\n\nimport ConfigViewTemplate from '../templates/largeImageAnnotationConfig.pug';\n\n/**\n * Show the default quota settings for users and collections.\n */\nvar ConfigView = View.extend({\n events: {\n 'submit #g-large-image-form': function (event) {\n event.preventDefault();\n this.$('#g-large-image-error-message').empty();\n this._saveSettings([{\n key: 'large_image.annotation_history',\n value: this.$('.g-large-image-annotation-history-show').prop('checked')\n }]);\n }\n },\n initialize: function () {\n ConfigView.getSettings((settings) => {\n this.settings = settings;\n this.render();\n });\n },\n\n render: function () {\n this.$el.html(ConfigViewTemplate({\n settings: this.settings,\n viewers: ConfigView.viewers\n }));\n if (!this.breadcrumb) {\n this.breadcrumb = new PluginConfigBreadcrumbWidget({\n pluginName: 'Large image annotation',\n el: this.$('.g-config-breadcrumb-container'),\n parentView: this\n }).render();\n }\n\n return this;\n },\n\n _saveSettings: function (settings) {\n /* Now save the settings */\n return restRequest({\n type: 'PUT',\n url: 'system/setting',\n data: {\n list: JSON.stringify(settings)\n },\n error: null\n }).done(() => {\n /* Clear the settings that may have been loaded. */\n ConfigView.clearSettings();\n events.trigger('g:alert', {\n icon: 'ok',\n text: 'Settings saved.',\n type: 'success',\n timeout: 4000\n });\n }).fail((resp) => {\n this.$('#g-large-image-error-message').text(\n resp.responseJSON.message\n );\n });\n }\n}, {\n /* Class methods and objects */\n\n /**\n * Get settings if we haven't yet done so. Either way, call a callback\n * when we have settings.\n *\n * @param {function} callback a function to call after the settings are\n * fetched. If the settings are already present, this is called\n * without any delay.\n */\n getSettings: function (callback) {\n if (!ConfigView.settings) {\n restRequest({\n type: 'GET',\n url: 'large_image/settings'\n }).done((resp) => {\n ConfigView.settings = resp;\n if (callback) {\n callback(ConfigView.settings);\n }\n });\n } else {\n if (callback) {\n callback(ConfigView.settings);\n }\n }\n },\n\n /**\n * Clear the settings so that getSettings will refetch them.\n */\n clearSettings: function () {\n delete ConfigView.settings;\n }\n});\n\nexport default ConfigView;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/configView.js","module.exports = (__webpack_require__(0))(0);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/pug-runtime/index.js from dll-reference girder_lib\n// module id = 13\n// module chunks = 0","module.exports = (__webpack_require__(0))(14);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/backbone/backbone.js from dll-reference girder_lib\n// module id = 14\n// module chunks = 0","module.exports = (__webpack_require__(0))(2);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/jquery/dist/jquery.js from dll-reference girder_lib\n// module id = 15\n// module chunks = 0","module.exports = girder_plugin_large_image;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"girder_plugin_large_image\"\n// module id = 16\n// module chunks = 0","import _ from 'underscore';\n\nimport * as geometry from './geometry';\nimport * as defaults from './defaults';\nimport style from './style';\n\nfunction convertOne(properties) {\n return function (annotation, key) {\n if (('' + key).startsWith('_')) {\n return;\n }\n const type = annotation.type;\n annotation = _.defaults({}, annotation, defaults[type] || {});\n if (!_.has(geometry, type)) {\n return;\n }\n const geom = geometry[type](annotation);\n return {\n type: 'Feature',\n id: annotation.id,\n geometry: { type: geom.type, coordinates: geom.coordinates },\n properties: _.extend({element: annotation, annotationType: geom.annotationType}, properties, style(annotation))\n };\n };\n}\n\nexport default function convert(json, properties = {}) {\n const features = _.chain(json)\n .mapObject(convertOne(properties))\n .compact()\n .value();\n\n return {\n type: 'FeatureCollection',\n features\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/convert.js","/**\n * Create a color table that can be used for a heatmap.\n *\n * @param record: the heatmap or griddata heatmap annotation element.\n * @param values: a list of data values.\n * @returns: an object with:\n * color: a color object that can be passed to the heatmap.\n * min: the minIntensity for the heatmap.\n * max: the maxIntensity for the heatmap.\n */\nfunction heatmapColorTable(record, values) {\n let range0 = 0;\n let range1 = 1;\n let min = 0;\n let max = null;\n let color = {\n 0: {r: 0, g: 0, b: 0, a: 0},\n 1: {r: 1, g: 1, b: 0, a: 1}\n };\n if (record.colorRange && record.rangeValues) {\n if (record.normalizeRange || !values.length) {\n for (let i = 0; i < record.colorRange.length && i < record.rangeValues.length; i += 1) {\n let val = Math.max(0, Math.min(1, record.rangeValues[i]));\n color[val] = record.colorRange[i];\n if (val >= 1) {\n break;\n }\n }\n } else if (record.colorRange.length >= 2 && record.rangeValues.length >= 2) {\n range0 = range1 = record.rangeValues[0] || 0;\n for (let i = 1; i < record.rangeValues.length; i += 1) {\n let val = record.rangeValues[i] || 0;\n if (val < range0) {\n range0 = val;\n }\n if (val > range1) {\n range1 = val;\n }\n }\n if (range0 === range1) {\n range0 -= 1;\n }\n min = undefined;\n for (let i = 0; i < record.colorRange.length && i < record.rangeValues.length; i += 1) {\n let val = (record.rangeValues[i] - range0) / ((range1 - range0) || 1);\n if (val <= 0 || min === undefined) {\n min = record.rangeValues[i];\n }\n max = record.rangeValues[i];\n val = Math.max(0, Math.min(1, val));\n color[val] = record.colorRange[i];\n if (val >= 1) {\n break;\n }\n }\n }\n }\n return {\n color: color,\n min: min,\n max: max\n };\n}\n\n/**\n * Convert a heatmap annotation to a geojs feature.\n *\n * @param record: the heatmap annotation element.\n * @param properties: a property map of additional data, such as the original\n * annotation id.\n * @param layer: the layer where this may be added.\n */\nfunction convertHeatmap(record, properties, layer) {\n /* Heatmaps need to be in their own layer */\n const map = layer.map();\n const heatmapLayer = map.createLayer('feature', {features: ['heatmap']});\n const colorTable = heatmapColorTable(record, record.points.map((d) => d[3]));\n const heatmap = heatmapLayer.createFeature('heatmap', {\n style: {\n radius: record.radius || 25,\n blurRadius: 0,\n gaussian: true,\n color: colorTable.color,\n scaleWithZoom: record.scaleWithZoom || false\n },\n position: (d) => ({x: d[0], y: d[1], z: d[2]}),\n intensity: (d) => d[3] || 0,\n minIntensity: colorTable.min,\n maxIntensity: colorTable.max,\n updateDelay: 100\n }).data(record.points);\n heatmap._ownLayer = true;\n return [heatmap];\n}\n\n/**\n * Convert a griddata heatmap annotation to a geojs feature.\n *\n * @param record: the griddata heatmap annotation element.\n * @param properties: a property map of additional data, such as the original\n * annotation id.\n * @param layer: the layer where this may be added.\n */\nfunction convertGridToHeatmap(record, properties, layer) {\n /* Heatmaps need to be in their own layer */\n const map = layer.map();\n const heatmapLayer = map.createLayer('feature', {features: ['heatmap']});\n const x0 = (record.origin || [0, 0, 0])[0] || 0;\n const y0 = (record.origin || [0, 0, 0])[1] || 0;\n const z = (record.origin || [0, 0, 0])[2] || 0;\n const dx = (record.dx || 1);\n const dy = (record.dy || 1);\n const colorTable = heatmapColorTable(record, record.values);\n const heatmap = heatmapLayer.createFeature('heatmap', {\n style: {\n radius: record.radius || 25,\n blurRadius: 0,\n gaussian: true,\n color: colorTable.color\n },\n position: (d, i) => ({\n x: x0 + dx * (i % record.gridWidth),\n y: y0 + dy * Math.floor(i / record.gridWidth),\n z: z}),\n intensity: (d) => d || 0,\n minIntensity: colorTable.min,\n maxIntensity: colorTable.max,\n updateDelay: 100\n }).data(record.values);\n heatmap._ownLayer = true;\n return [heatmap];\n}\n\n/**\n * Convert a griddata heatmap contour to a geojs feature.\n *\n * @param record: the griddata contour annotation element.\n * @param properties: a property map of additional data, such as the original\n * annotation id.\n * @param layer: the layer where this may be added.\n */\nfunction convertGridToContour(record, properties, layer) {\n let min = record.values[0] || 0;\n let max = min;\n for (let i = 1; i < record.values.length; i += 1) {\n if (record.values[i] > max) {\n max = record.values[i];\n }\n if (record.values[i] < max) {\n min = record.values[i];\n }\n }\n if (min >= 0) {\n min = -1; /* any negative number will do */\n }\n const contour = layer.createFeature('contour', {\n style: {\n value: (d) => d || 0\n },\n contour: {\n gridWidth: record.gridWidth,\n x0: (record.origin || [])[0] || 0,\n y0: (record.origin || [])[1] || 0,\n dx: record.dx || 1,\n dy: record.dy || 1,\n stepped: false,\n colorRange: [\n record.minColor || {r: 0, g: 0, b: 1, a: 1},\n record.zeroColor || {r: 0, g: 0, b: 0, a: 0},\n record.maxColor || {r: 1, g: 1, b: 0, a: 1}\n ],\n rangeValues: [min, 0, Math.max(0, max)]\n }\n }).data(record.values);\n return [contour];\n}\n\nconst converters = {\n griddata_contour: convertGridToContour,\n griddata_heatmap: convertGridToHeatmap,\n heatmap: convertHeatmap\n};\n\nfunction convertFeatures(json, properties = {}, layer) {\n try {\n var features = [];\n json.forEach((element) => {\n const func = converters[element.type + '_' + element.interpretation] || converters[element.type];\n if (func) {\n features = features.concat(func(element, properties, layer));\n }\n });\n return features;\n } catch (err) {\n console.error(err);\n }\n}\n\nexport {\n convertFeatures,\n heatmapColorTable\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/convertFeatures.js","import _ from 'underscore';\n\nimport * as types from './types';\n\n/**\n * Convert a geojs annotation object into an annotation\n * element defined by the json schema.\n *\n * @param {annotation} annotation A geojs annotation object\n * @returns {object}\n */\nfunction convert(annotation) {\n var type = annotation.type();\n if (!_.has(types, type)) {\n throw new Error(\n `Unknown annotation type \"${type}\"`\n );\n }\n return types[type](annotation);\n}\n\nexport default convert;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/convert.js","import point from './point';\nimport rectangle from './rectangle';\nimport ellipse from './ellipse';\nimport circle from './circle';\nimport polygon from './polygon';\nimport line from './line';\n\nexport {\n point,\n rectangle,\n ellipse,\n circle,\n polygon,\n line\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/index.js","import rectangle from './rectangle';\nimport ellipse from './ellipse';\nimport circle from './circle';\nimport polyline from './polyline';\nimport point from './point';\n\nexport {\n rectangle,\n ellipse,\n circle,\n polyline,\n point\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/index.js","import Collection from '@girder/core/collections/Collection';\nimport { SORT_DESC } from '@girder/core/constants';\n\nimport AnnotationModel from '../models/AnnotationModel';\n\nexport default Collection.extend({\n resourceName: 'annotation',\n model: AnnotationModel,\n // this is a large number so that we probably never need to page\n // annotations.\n pageLimit: 10000,\n sortField: 'created',\n sortDir: SORT_DESC\n});\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/collections/AnnotationCollection.js","import _ from 'underscore';\nimport AccessControlledModel from '@girder/core/models/AccessControlledModel';\nimport { restRequest } from '@girder/core/rest';\n\nimport ElementCollection from '../collections/ElementCollection';\nimport convert from '../annotations/convert';\nimport { convertFeatures } from '../annotations/convertFeatures';\n\nimport style from '../annotations/style.js';\n\n/**\n * Define a backbone model representing an annotation.\n * An annotation contains zero or more \"elements\" or\n * geometric primitives that are represented in the\n * embedded \"elements\" attribute. This attribute is\n * an \"ElementCollection\" that triggers events when\n * any of the \"ElementModel\"'s contained within change.\n *\n * This model listens to changes in the element collection\n * and updates its own attribute in response. Users\n * should not modify the \"elements\" attribute directly.\n */\nexport default AccessControlledModel.extend({\n resourceName: 'annotation',\n\n defaults: {\n annotation: {},\n maxDetails: 250000,\n maxCentroids: 2000000\n },\n\n initialize() {\n this._region = {\n maxDetails: this.get('maxDetails'),\n sort: 'size',\n sortdir: -1\n };\n /* amount of annotations to request compared to visible area. 1 will\n * request exactly the visible area of the map, 2 will get a region\n * twice as big in each direction. */\n this._viewArea = 3;\n this._elements = new ElementCollection(\n this.get('annotation').elements || []\n );\n this._elements.annotation = this;\n\n this.listenTo(this._elements, 'change add remove reset', () => {\n // copy the object to ensure a change event is triggered\n var annotation = _.extend({}, this.get('annotation'));\n\n annotation.elements = this._elements.toJSON();\n this.set('annotation', annotation);\n });\n },\n\n /**\n * Fetch the centroids and unpack the binary data.\n */\n fetchCentroids: function () {\n var url = (this.altUrl || this.resourceName) + '/' + this.get('_id');\n var restOpts = {\n url: url,\n data: {sort: 'size', sortdir: -1, centroids: true, limit: this.get('maxCentroids')},\n xhrFields: {\n responseType: 'arraybuffer'\n },\n error: null\n };\n\n return restRequest(restOpts).done((resp) => {\n let dv = new DataView(resp);\n let z0 = 0, z1 = dv.byteLength - 1;\n for (; dv.getUint8(z0) && z0 < dv.byteLength; z0 += 1);\n for (; dv.getUint8(z1) && z1 >= 0; z1 -= 1);\n if (z0 >= z1) {\n throw new Error('invalid centroid data');\n }\n let json = new Uint8Array(z0 + dv.byteLength - z1 - 1);\n json.set(new Uint8Array(resp.slice(0, z0)), 0);\n json.set(new Uint8Array(resp.slice(z1 + 1)), z0);\n let result = JSON.parse(decodeURIComponent(escape(String.fromCharCode.apply(null, json))));\n let defaults = {\n default: {\n fillColor: {r: 1, g: 120 / 255, b: 0},\n fillOpacity: 0.8,\n strokeColor: {r: 0, g: 0, b: 0},\n strokeOpacity: 1,\n strokeWidth: 1\n },\n rectangle: {\n fillColor: {r: 176 / 255, g: 222 / 255, b: 92 / 255},\n strokeColor: {r: 153 / 255, g: 153 / 255, b: 153 / 255},\n strokeWidth: 2\n },\n ellipse: {\n fillColor: {r: 176 / 255, g: 222 / 255, b: 92 / 255},\n strokeColor: {r: 153 / 255, g: 153 / 255, b: 153 / 255},\n strokeWidth: 2\n },\n circle: {\n fillColor: {r: 176 / 255, g: 222 / 255, b: 92 / 255},\n strokeColor: {r: 153 / 255, g: 153 / 255, b: 153 / 255},\n strokeWidth: 2\n },\n polyline: {\n strokeColor: {r: 1, g: 120 / 255, b: 0},\n strokeOpacity: 0.5,\n strokeWidth: 4\n },\n polyline_closed: {\n fillColor: {r: 176 / 255, g: 222 / 255, b: 92 / 255},\n strokeColor: {r: 153 / 255, g: 153 / 255, b: 153 / 255},\n strokeWidth: 2\n }\n };\n result.props = result._elementQuery.props.map((props) => {\n let propsdict = {};\n result._elementQuery.propskeys.forEach((key, i) => {\n propsdict[key] = props[i];\n });\n Object.assign(propsdict, style(propsdict));\n let type = propsdict.type + (propsdict.closed ? '_closed' : '');\n ['fillColor', 'strokeColor', 'strokeWidth', 'fillOpacity', 'strokeOpacity'].forEach((key) => {\n if (propsdict[key] === undefined) {\n propsdict[key] = (defaults[type] || defaults.default)[key];\n }\n if (propsdict[key] === undefined) {\n propsdict[key] = defaults.default[key];\n }\n });\n return propsdict;\n });\n dv = new DataView(resp, z0 + 1, z1 - z0 - 1);\n if (dv.byteLength !== result._elementQuery.returned * 28) {\n throw new Error('invalid centroid data size');\n }\n let centroids = {\n id: new Array(result._elementQuery.returned),\n x: new Float32Array(result._elementQuery.returned),\n y: new Float32Array(result._elementQuery.returned),\n r: new Float32Array(result._elementQuery.returned),\n s: new Uint32Array(result._elementQuery.returned)\n };\n let i, s;\n for (i = s = 0; s < dv.byteLength; i += 1, s += 28) {\n centroids.id[i] =\n ('0000000' + dv.getUint32(s, false).toString(16)).substr(-8) +\n ('0000000' + dv.getUint32(s + 4, false).toString(16)).substr(-8) +\n ('0000000' + dv.getUint32(s + 8, false).toString(16)).substr(-8);\n centroids.x[i] = dv.getFloat32(s + 12, true);\n centroids.y[i] = dv.getFloat32(s + 16, true);\n centroids.r[i] = dv.getFloat32(s + 20, true);\n centroids.s[i] = dv.getUint32(s + 24, true);\n }\n result.centroids = centroids;\n result.data = {length: result._elementQuery.returned};\n if (result._elementQuery.count > result._elementQuery.returned) {\n result.partial = true;\n }\n this._centroids = result;\n return result;\n });\n },\n\n /**\n * Fetch a single resource from the server. Triggers g:fetched on success,\n * or g:error on error.\n * To ignore the default error handler, pass\n * ignoreError: true\n * in your opts object.\n */\n fetch: function (opts) {\n if (this.altUrl === null && this.resourceName === null) {\n alert('Error: You must set an altUrl or a resourceName on your model.'); // eslint-disable-line no-alert\n return;\n }\n\n opts = opts || {};\n var restOpts = {\n url: (this.altUrl || this.resourceName) + '/' + this.get('_id'),\n /* Add our region request into the query */\n data: this._region\n };\n if (opts.extraPath) {\n restOpts.url += '/' + opts.extraPath;\n }\n if (opts.ignoreError) {\n restOpts.error = null;\n }\n this._inFetch = true;\n if (this._refresh) {\n delete this._pageElements;\n delete this._centroids;\n this._refresh = false;\n }\n return restRequest(restOpts).done((resp) => {\n const annotation = resp.annotation || {};\n const elements = annotation.elements || [];\n\n this.set(resp);\n if (this._pageElements === undefined && resp._elementQuery) {\n this._pageElements = resp._elementQuery.count > resp._elementQuery.returned;\n if (this._pageElements) {\n this._inFetch = 'centroids';\n this.fetchCentroids().then(() => {\n this._inFetch = true;\n if (opts.extraPath) {\n this.trigger('g:fetched.' + opts.extraPath);\n } else {\n this.trigger('g:fetched');\n }\n return null;\n }).always(() => {\n this._inFetch = false;\n if (this._nextFetch) {\n var nextFetch = this._nextFetch;\n this._nextFetch = null;\n nextFetch();\n }\n return null;\n });\n }\n }\n if (this._inFetch !== 'centroids') {\n if (opts.extraPath) {\n this.trigger('g:fetched.' + opts.extraPath);\n } else {\n this.trigger('g:fetched');\n }\n }\n this._elements.reset(elements, _.extend({sync: true}, opts));\n }).fail((err) => {\n this.trigger('g:error', err);\n }).always(() => {\n if (this._inFetch !== 'centroids') {\n this._inFetch = false;\n if (this._nextFetch) {\n var nextFetch = this._nextFetch;\n this._nextFetch = null;\n nextFetch();\n }\n }\n });\n },\n\n /**\n * Get/set for a refresh flag.\n *\n * @param {boolean} [val] If specified, set the refresh flag. If not\n * specified, return the refresh flag.\n * @returns {boolean|this}\n */\n refresh(val) {\n if (val === undefined) {\n return self._refresh;\n }\n self._refresh = val;\n return this;\n },\n\n /**\n * Perform a PUT or POST request on the annotation data depending\n * on whether the annotation is new or not. This mirrors somewhat\n * the api of `Backbone.Model.save`. For new models, the `itemId`\n * attribute is required.\n */\n save(options) {\n const data = _.extend({}, this.get('annotation'));\n let url;\n let method;\n let isNew = this.isNew();\n\n if (isNew) {\n if (!this.get('itemId')) {\n throw new Error('itemId is required to save new annotations');\n }\n url = `annotation?itemId=${this.get('itemId')}`;\n method = 'POST';\n } else {\n url = `annotation/${this.id}`;\n method = 'PUT';\n }\n\n if (this._pageElements === false || isNew) {\n this._pageElements = false;\n data.elements = _.map(data.elements, (element) => {\n element = _.extend({}, element);\n if (element.label && !element.label.value) {\n delete element.label;\n }\n return element;\n });\n } else {\n delete data.elements;\n // we don't want to override an annotation with a partial response\n if (this._pageElements === true) {\n console.warn('Cannot save elements of a paged annotation');\n }\n }\n\n return restRequest({\n url,\n method,\n contentType: 'application/json',\n processData: false,\n data: JSON.stringify(data)\n }).done((annotation) => {\n if (isNew) {\n // the elements array does not come back with this request\n annotation.elements = (this.get('annotation') || {}).elements || [];\n this.set(annotation);\n }\n this.trigger('sync', this, annotation, options);\n });\n },\n\n /**\n * Perform a DELETE request on the annotation model and remove all\n * event listeners. This mirrors the api of `Backbone.Model.destroy`\n * without the backbone specific options, which are not supported by\n * girder's base model either.\n */\n destroy(options) {\n this.stopListening();\n this.trigger('destroy', this, this.collection, options);\n return this.delete(options);\n },\n\n name() {\n return (this.get('annotation') || {}).name;\n },\n\n /**\n * Perform a DELETE request on the annotation model and reset the id\n * attribute, but don't remove event listeners.\n */\n delete(options) {\n this.trigger('g:delete', this, this.collection, options);\n let xhr = false;\n if (!this.isNew()) {\n xhr = restRequest({\n url: `annotation/${this.id}`,\n method: 'DELETE'\n });\n }\n this.unset('_id');\n return xhr;\n },\n\n /**\n * Return the annotation as a geojson FeatureCollection.\n *\n * WARNING: Not all annotations are representable in geojson.\n * Annotation types that cannot be converted will be ignored.\n */\n geojson() {\n const json = this.get('annotation') || {};\n const elements = json.elements || [];\n return convert(elements, {annotation: this.id});\n },\n\n /**\n * Return annotations that cannot be represented as geojson as geojs\n * features specifications.\n *\n * @param webglLayer: the parent feature layer.\n */\n non_geojson(layer) {\n const json = this.get('annotation') || {};\n const elements = json.elements || [];\n return convertFeatures(elements, {annotation: this.id}, layer);\n },\n\n /**\n * Return annotation elements that cannot be represented as geojs\n * features, such as image overlays.\n */\n overlays() {\n const overlayElementTypes = ['image', 'pixelmap'];\n const json = this.get('annotation') || {};\n const elements = json.elements || [];\n return elements.filter((element) => overlayElementTypes.includes(element.type));\n },\n\n /**\n * Set the view. If we are paging elements, possibly refetch the elements.\n * Callers should listen for the g:fetched event to know when new elements\n * have been fetched.\n *\n * @param {object} bounds the corners of the visible region. This is an\n * object with left, top, right, bottom in pixels.\n * @param {number} zoom the zoom factor.\n * @param {number} maxZoom the maximum zoom factor.\n * @param {boolean} noFetch Truthy to not perform a fetch if the view\n * changes.\n * @param {number} sizeX the maximum width to query.\n * @param {number} sizeY the maximum height to query.\n */\n setView(bounds, zoom, maxZoom, noFetch, sizeX, sizeY) {\n if (this._pageElements === false || this.isNew()) {\n return;\n }\n var width = bounds.right - bounds.left,\n height = bounds.bottom - bounds.top,\n xoverlap = (width * (this._viewArea - 1)) / 2,\n yoverlap = (height * (this._viewArea - 1)) / 2,\n minxoverlap = xoverlap / 2,\n minyoverlap = yoverlap / 2;\n var canskip = (this._region.left !== undefined &&\n bounds.left >= this._region.left + minxoverlap &&\n bounds.top >= this._region.top + minyoverlap &&\n bounds.right <= this._region.right - minxoverlap &&\n bounds.bottom <= this._region.bottom - minyoverlap &&\n Math.abs(this._lastZoom - zoom) < 1);\n if (canskip && !this._inFetch) {\n return;\n }\n var lastRegion = Object.assign({}, this._region);\n this._region.left = Math.max(0, bounds.left - xoverlap);\n this._region.top = Math.max(0, bounds.top - yoverlap);\n this._region.right = Math.min(sizeX || 1e6, bounds.right + xoverlap);\n this._region.bottom = Math.min(sizeY || 1e6, bounds.bottom + yoverlap);\n this._lastZoom = zoom;\n /* Don't ask for a minimum size; we show centroids if the data is\n * incomplete. */\n if (noFetch) {\n return;\n }\n if (['left', 'top', 'right', 'bottom', 'minumumSize'].every((key) => this._region[key] === lastRegion[key])) {\n return;\n }\n if (!this._nextFetch) {\n var nextFetch = () => {\n this.fetch();\n };\n if (this._inFetch) {\n this._nextFetch = nextFetch;\n } else {\n nextFetch();\n }\n }\n },\n\n /**\n * Return a backbone collection containing the annotation elements.\n */\n elements() {\n return this._elements;\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/models/AnnotationModel.js","import _ from 'underscore';\n\nimport { wrap } from '@girder/core/utilities/PluginUtils';\n\nimport ImageViewerSelectWidget from '@girder/large_image/views/imageViewerSelectWidget';\n\nimport imageViewerAnnotationList from '../templates/imageViewerAnnotationList.pug';\n\nimport AnnotationListWidget from './annotationListWidget';\n\nwrap(ImageViewerSelectWidget, 'initialize', function (initialize, settings) {\n this.itemId = settings.imageModel.id;\n this.model = settings.imageModel;\n this._annotationList = new AnnotationListWidget({\n model: this.model,\n parentView: this\n });\n initialize.apply(this, _.rest(arguments));\n});\n\nwrap(ImageViewerSelectWidget, 'render', function (render) {\n render.apply(this, _.rest(arguments));\n this.$el.append(imageViewerAnnotationList());\n this._annotationList\n .setViewer(this.currentViewer)\n .setElement(this.$('.g-annotation-list-container'))\n .render();\n return this;\n});\n\nwrap(ImageViewerSelectWidget, '_selectViewer', function (_selectViewer) {\n _selectViewer.apply(this, _.rest(arguments));\n this._annotationList\n .setViewer(this.currentViewer)\n .render();\n return this;\n});\n\nexport default ImageViewerSelectWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/imageViewerSelectWidget.js","module.exports = (__webpack_require__(0))(1);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/View.js from dll-reference girder_lib\n// module id = 25\n// module chunks = 0","module.exports = (__webpack_require__(0))(7);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/constants.js from dll-reference girder_lib\n// module id = 26\n// module chunks = 0","import { registerPluginNamespace } from '@girder/core/pluginUtils';\n\n// import modules for side effects\nimport './routes';\nimport './views/imageViewerSelectWidget';\n\n// expose symbols under girder.plugins\nimport * as largeImageAnnotation from './index';\nregisterPluginNamespace('large_image_annotation', largeImageAnnotation);\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/main.js","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@girder/large_image_annotation/~/tinycolor2/tinycolor.js\n// module id = 28\n// module chunks = 0","export default {\n fillColor: 'rgba(0,0,0,0)',\n lineColor: 'rgb(0,0,0)',\n lineWidth: 2\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/circle.js","export default {\n fillColor: 'rgba(0,0,0,0)',\n lineColor: 'rgb(0,0,0)',\n lineWidth: 2,\n rotation: 0,\n normal: [0, 0, 1]\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/ellipse.js","export default {\n lineColor: 'rgb(0,0,0)',\n lineWidth: 2,\n fillColor: 'rgba(0,0,0,0)'\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/point.js","export default {\n fillColor: 'rgba(0,0,0,0)',\n lineColor: 'rgb(0,0,0)',\n lineWidth: 2\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/polyline.js","export default {\n fillColor: 'rgba(0,0,0,0)',\n lineColor: 'rgb(0,0,0)',\n lineWidth: 2,\n rotation: 0,\n normal: [0, 0, 1]\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/defaults/rectangle.js","import point from './point';\nimport array from './array';\n\nexport {\n point,\n array\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/coordinates/index.js","import * as types from './types';\nimport * as coordinates from './coordinates';\nimport common from './common';\nimport convert from './convert';\n\nexport {\n types,\n coordinates,\n common,\n convert\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/index.js","import rectangle from './rectangle';\n\n/**\n * Convert a geojs circle annotation to the large_image\n * annotation schema.\n */\nfunction circle(annotation) {\n const element = rectangle(annotation);\n element.type = 'circle';\n element.radius = Math.max(element.width, element.height) / 2;\n delete element.width;\n delete element.height;\n delete element.rotation;\n delete element.normal;\n return element;\n}\n\nexport default circle;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/circle.js","import rectangle from './rectangle';\n\n/**\n * Convert a geojs ellipse annotation to the large_image\n * annotation schema.\n */\nfunction ellipse(annotation) {\n const element = rectangle(annotation);\n element.type = 'ellipse';\n return element;\n}\n\nexport default ellipse;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/ellipse.js","import _ from 'underscore';\n\nimport common from '../common';\nimport array from '../coordinates/array';\n\n/**\n * Convert a geojs line annotation to the large_image\n * annotation schema.\n */\nfunction line(annotation) {\n const element = common(annotation, 'polyline');\n const coordinates = array(annotation.coordinates());\n\n return _.extend(element, {\n type: 'polyline',\n closed: !!annotation.style('closed'),\n points: coordinates\n });\n}\n\nexport default line;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/line.js","import _ from 'underscore';\n\nimport common from '../common';\nimport pointCoordinate from '../coordinates/point';\n\n/**\n * Convert a geojs point annotation to the large_image\n * annotation schema.\n */\nfunction point(annotation) {\n const element = common(annotation);\n\n return _.extend(element, {\n type: 'point',\n center: pointCoordinate(annotation.coordinates()[0])\n });\n}\n\nexport default point;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/point.js","import _ from 'underscore';\n\nimport common from '../common';\nimport array from '../coordinates/array';\n\n/**\n * Convert a geojs polygon annotation to the large_image\n * annotation schema.\n */\nfunction polygon(annotation) {\n const element = common(annotation, 'polyline');\n let coordinates = annotation.coordinates();\n const holes = coordinates.inner ? coordinates.inner.map((h) => array(h)) : undefined;\n coordinates = array(coordinates.outer || coordinates);\n\n return _.extend(element, {\n type: 'polyline',\n closed: true,\n points: coordinates,\n holes\n });\n}\n\nexport default polygon;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geojs/types/polygon.js","export default function circle(json) {\n const center = json.center;\n const x = center[0];\n const y = center[1];\n const radius = json.radius;\n\n const left = x - radius;\n const right = x + radius;\n const top = y - radius;\n const bottom = y + radius;\n\n return {\n type: 'Polygon',\n coordinates: [[\n [left, top],\n [right, top],\n [right, bottom],\n [left, bottom],\n [left, top]\n ]],\n annotationType: 'circle'\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/circle.js","import _ from 'underscore';\n\nimport rotate from '../rotate';\n\nexport default function ellipse(json) {\n const center = json.center;\n const x = center[0];\n const y = center[1];\n const height = json.height;\n const width = json.width;\n const rotation = json.rotation || 0;\n\n const left = x - width / 2;\n const right = x + width / 2;\n const top = y - height / 2;\n const bottom = y + height / 2;\n\n return {\n type: 'Polygon',\n coordinates: [_.map([\n [left, top],\n [right, top],\n [right, bottom],\n [left, bottom],\n [left, top]\n ], rotate(rotation, center))],\n annotationType: 'ellipse'\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/ellipse.js","import _ from 'underscore';\n\nexport default function point(json) {\n return {\n type: 'Point',\n coordinates: _.first(json.center, 2),\n annotationType: 'point'\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/point.js","import _ from 'underscore';\n\nexport default function polyline(json) {\n const points = _.map(json.points, (p) => _.first(p, 2));\n var type;\n var coordinates;\n var annotationType;\n\n if (json.closed) {\n points.push(points[0]);\n coordinates = [points];\n if (json.holes) {\n const holes = (json.holes || []).map((hole) => {\n let result = hole.map((p) => _.first(p, 2));\n result.push(result[0]);\n return result;\n });\n coordinates = coordinates.concat(holes);\n }\n type = 'Polygon';\n annotationType = 'polygon';\n } else {\n type = 'LineString';\n coordinates = points;\n annotationType = 'line';\n }\n\n return {\n type,\n coordinates,\n annotationType\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/polyline.js","import _ from 'underscore';\n\nimport rotate from '../rotate';\n\nexport default function rectangle(json) {\n const center = json.center;\n const x = center[0];\n const y = center[1];\n const height = json.height;\n const width = json.width;\n const rotation = json.rotation || 0;\n\n const left = x - width / 2;\n const right = x + width / 2;\n const top = y - height / 2;\n const bottom = y + height / 2;\n\n return {\n type: 'Polygon',\n coordinates: [_.map([\n [left, top],\n [right, top],\n [right, bottom],\n [left, bottom],\n [left, top]\n ], rotate(rotation, center))],\n annotationType: 'rectangle'\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/geometry/rectangle.js","import convert from './convert';\nimport * as convertFeatures from './convertFeatures';\nimport rotate from './rotate';\nimport style from './style';\nimport * as geometry from './geometry';\nimport * as defaults from './defaults';\nimport * as geojs from './geojs';\n\nexport {\n convert,\n convertFeatures,\n rotate,\n style,\n geometry,\n defaults,\n geojs\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/annotations/index.js","import Backbone from 'backbone';\n\nimport ElementModel from '../models/ElementModel';\n\nexport default Backbone.Collection.extend({\n model: ElementModel,\n comparator: undefined\n});\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/collections/ElementCollection.js","import AnnotationCollection from './AnnotationCollection';\n\nexport {\n AnnotationCollection\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/collections/index.js","import * as annotations from './annotations';\nimport * as collections from './collections';\nimport * as models from './models';\nimport * as views from './views';\n\nexport {\n annotations,\n collections,\n models,\n views\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/index.js","import Backbone from 'backbone';\n\n/**\n * Define a \"view model\" representing an annotation element\n * (an individual shape. This model does not support REST\n * calls such as save/fetch/sync/delete because annotation\n * elements don't have endpoints. Instead this model exists\n * to support editing of the AnnotationModel on the client.\n */\nexport default Backbone.Model.extend({\n idAttribute: 'id'\n});\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/models/ElementModel.js","import AnnotationModel from './AnnotationModel';\n\nexport {\n AnnotationModel\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/models/index.js","import events from '@girder/core/events';\nimport router from '@girder/core/router';\nimport { exposePluginConfig } from '@girder/core/utilities/PluginUtils';\n\nimport ConfigView from './views/configView';\n\nexposePluginConfig('large_image_annotation', 'plugins/large_image_annotation/config');\n\nrouter.route('plugins/large_image_annotation/config', 'largeImageAnnotationConfig', function () {\n events.trigger('g:navigateTo', ConfigView);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/routes.js","import $ from 'jquery';\nimport _ from 'underscore';\n\nimport { AccessType } from '@girder/core/constants';\nimport eventStream from '@girder/core/utilities/EventStream';\nimport { getCurrentUser } from '@girder/core/auth';\nimport { confirm } from '@girder/core/dialog';\nimport { getApiRoot, restRequest } from '@girder/core/rest';\nimport AccessWidget from '@girder/core/views/widgets/AccessWidget';\nimport events from '@girder/core/events';\nimport UserCollection from '@girder/core/collections/UserCollection';\nimport UploadWidget from '@girder/core/views/widgets/UploadWidget';\nimport View from '@girder/core/views/View';\n\nimport AnnotationCollection from '../collections/AnnotationCollection';\n\nimport annotationList from '../templates/annotationListWidget.pug';\n\nimport '../stylesheets/annotationListWidget.styl';\n\nconst AnnotationListWidget = View.extend({\n events: {\n 'change .g-annotation-toggle': '_displayAnnotation',\n 'click .g-annotation-delete': '_deleteAnnotation',\n 'click .g-annotation-upload': '_uploadAnnotation',\n 'click .g-annotation-permissions': '_changePermissions',\n 'click .g-annotation-row'(evt) {\n var $el = $(evt.currentTarget);\n $el.find('.g-annotation-toggle > input').click();\n },\n 'click .g-annotation-row a,input'(evt) {\n evt.stopPropagation();\n }\n },\n\n initialize() {\n this._drawn = new Set();\n this._viewer = null;\n this._sort = {\n 'field': 'name',\n 'direction': 1\n };\n\n this.collection = this.collection || new AnnotationCollection([], {comparator: null});\n this.users = new UserCollection();\n\n this.listenTo(this.collection, 'all', this.render);\n this.listenTo(this.users, 'all', this.render);\n this.listenTo(eventStream, 'g:event.large_image_annotation.create', () => this.collection.fetch(null, true));\n this.listenTo(eventStream, 'g:event.large_image_annotation.remove', () => this.collection.fetch(null, true));\n\n this.collection.fetch({\n itemId: this.model.id,\n sort: 'created',\n sortdir: -1\n }).done(() => {\n this._fetchUsers();\n });\n },\n\n render() {\n this.$el.html(annotationList({\n item: this.model,\n accessLevel: this.model.getAccessLevel(),\n annotations: this.collection,\n users: this.users,\n canDraw: this._viewer && this._viewer.annotationAPI(),\n drawn: this._drawn,\n apiRoot: getApiRoot(),\n AccessType\n }));\n return this;\n },\n\n setViewer(viewer) {\n this._drawn.clear();\n this._viewer = viewer;\n return this;\n },\n\n _displayAnnotation(evt) {\n const $el = $(evt.currentTarget);\n const id = $el.parent().data('annotationId');\n const annotation = this.collection.get(id);\n if ($el.find('input').prop('checked')) {\n this._drawn.add(id);\n annotation.fetch().then(() => {\n if (this._drawn.has(id)) {\n this._viewer.drawAnnotation(annotation);\n }\n return null;\n });\n } else {\n this._drawn.delete(id);\n this._viewer.removeAnnotation(annotation);\n }\n },\n\n _deleteAnnotation(evt) {\n const $el = $(evt.currentTarget);\n const id = $el.parents('.g-annotation-row').data('annotationId');\n if (!id) {\n confirm({\n text: `Are you sure you want to delete ALL annotations?`,\n escapedHtml: true,\n yesText: 'Delete',\n confirmCallback: () => {\n restRequest({\n url: `annotation/item/${this.model.id}`,\n method: 'DELETE'\n }).done(() => {\n this.collection.fetch(null, true);\n });\n }\n });\n return;\n }\n const model = this.collection.get(id);\n\n confirm({\n text: `Are you sure you want to delete ${_.escape(model.get('annotation').name)}?`,\n escapedHtml: true,\n yesText: 'Delete',\n confirmCallback: () => {\n this._drawn.delete(id);\n model.destroy();\n }\n });\n },\n\n _uploadAnnotation() {\n var uploadWidget = new UploadWidget({\n el: $('#g-dialog-container'),\n title: 'Upload Annotation',\n parent: this.model,\n parentType: 'item',\n parentView: this,\n multiFile: true,\n otherParams: {reference: JSON.stringify({\n identifier: 'LargeImageAnnotationUpload',\n itemId: this.model.id,\n fileId: this.model.get('largeImage') && this.model.get('largeImage').fileId,\n userId: (getCurrentUser() || {}).id\n })}\n }).on('g:uploadFinished', () => {\n events.trigger('g:alert', {\n icon: 'ok',\n text: 'Uploaded annotations.',\n type: 'success',\n timeout: 4000\n });\n this.collection.fetch(null, true);\n }, this);\n this._uploadWidget = uploadWidget;\n uploadWidget.render();\n },\n\n _changePermissions(evt) {\n const $el = $(evt.currentTarget);\n let id = $el.parents('.g-annotation-row').data('annotationId');\n if (!id && this.collection.length === 1) {\n id = this.collection.at(0).id;\n }\n const model = id ? this.collection.get(id) : this.collection.at(0).clone();\n if (!id) {\n // if id is not set, override widget's saveAccessList\n model.get('annotation').name = 'All Annotations';\n model.save = () => {};\n model.updateAccess = () => {\n const access = {\n access: model.get('access'),\n public: model.get('public'),\n publicFlags: model.get('publicFlags')\n };\n this.collection.each((loopmodel) => {\n loopmodel.set(access);\n loopmodel.updateAccess();\n });\n this.collection.fetch(null, true);\n model.trigger('g:accessListSaved');\n };\n }\n new AccessWidget({\n el: $('#g-dialog-container'),\n type: 'annotation',\n hideRecurseOption: true,\n parentView: this,\n model\n }).on('g:accessListSaved', () => {\n this.collection.fetch(null, true);\n });\n },\n\n _fetchUsers() {\n this.collection.each((model) => {\n this.users.add({'_id': model.get('creatorId')});\n });\n $.when.apply($, this.users.map((model) => {\n return model.fetch();\n })).always(() => {\n this.render();\n });\n }\n});\n\nexport default AnnotationListWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/annotationListWidget.js","import _ from 'underscore';\n\nvar ImageViewerWidgetAnnotationExtension = {\n /**\n * Returns whether or not the view supports drawing and rendering\n * annotations.\n */\n annotationAPI: _.constant(false),\n\n /**\n * Render an annotation model on the image.\n *\n * @param {AnnotationModel} annotation\n */\n drawAnnotation: function (/* annotation */) {\n throw new Error('Viewer does not support drawing annotations');\n },\n\n /**\n * Remove an annotation from the image. This simply\n * finds a layer with the given id and removes it because\n * each annotation is contained in its own layer. If\n * the annotation is not drawn, this is a noop.\n *\n * @param {AnnotationModel} annotation\n */\n removeAnnotation: function (/* annotation */) {\n throw new Error('Viewer does not support drawing annotations');\n },\n\n /**\n * Set the image interaction mode to region drawing mode. This\n * method takes an optional `model` argument where the region will\n * be stored when created by the user. In any case, this method\n * returns a promise that resolves to an array defining the region:\n * [ left, top, width, height ]\n *\n * @param {Backbone.Model} [model] A model to set the region to\n * @returns {Promise}\n */\n drawRegion: function (/* model */) {\n throw new Error('Viewer does not support drawing annotations');\n },\n\n /**\n * Set the image interaction mode to draw the given type of annotation.\n *\n * @param {string} type An annotation type\n * @param {object} [options]\n * @param {boolean} [options.trigger=true]\n * Trigger a global event after creating each annotation element.\n * @returns {Promise}\n * Resolves to an array of generated annotation elements.\n */\n startDrawMode: function (/* type, options */) {\n throw new Error('Viewer does not support drawing annotations');\n }\n};\n\nexport default ImageViewerWidgetAnnotationExtension;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/imageViewerWidget/base.js","import $ from 'jquery';\nimport _ from 'underscore';\nimport Backbone from 'backbone';\n\nimport events from '@girder/core/events';\nimport { wrap } from '@girder/core/utilities/PluginUtils';\nimport { restRequest } from '@girder/core/rest';\n\nimport convertAnnotation from '../../annotations/geojs/convert';\n\n/**\n * Generate a new \"random\" element id (24 random 16 digits).\n */\nfunction guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4() + s4() + s4() + s4();\n}\n\nvar GeojsImageViewerWidgetExtension = function (viewer) {\n wrap(viewer, 'initialize', function (initialize) {\n var settings = arguments[1];\n\n this._annotations = {};\n this._featureOpacity = {};\n this._unclampBoundsForOverlay = true;\n this._globalAnnotationOpacity = settings.globalAnnotationOpacity || 1.0;\n this._globalAnnotationFillOpacity = settings.globalAnnotationFillOpacity || 1.0;\n this._highlightFeatureSizeLimit = settings.highlightFeatureSizeLimit || 10000;\n this.listenTo(events, 's:widgetDrawRegion', this.drawRegion);\n this.listenTo(events, 's:widgetDrawAddRegion', (model) => this.drawRegion(model, 'rectangle', true));\n this.listenTo(events, 's:widgetDrawPolygonRegion', (model) => this.drawRegion(model, 'polygon'));\n this.listenTo(events, 's:widgetDrawAddPolygonRegion', (model) => this.drawRegion(model, 'polygon', true));\n this.listenTo(events, 's:widgetClearRegion', this.clearRegion);\n this.listenTo(events, 'g:startDrawMode', this.startDrawMode);\n this._hoverEvents = settings.hoverEvents;\n return initialize.apply(this, _.rest(arguments));\n });\n\n return viewer.extend({\n _postRender: function () {\n // the feature layer is for annotations that are loaded\n this.featureLayer = this.viewer.createLayer('feature', {\n features: ['point', 'line', 'polygon', 'marker']\n });\n this.setGlobalAnnotationOpacity(this._globalAnnotationOpacity);\n this.setGlobalAnnotationFillOpacity(this._globalAnnotationFillOpacity);\n // the annotation layer is for annotations that are actively drawn\n this.annotationLayer = this.viewer.createLayer('annotation', {\n annotations: ['point', 'line', 'rectangle', 'ellipse', 'circle', 'polygon'],\n showLabels: false\n });\n var geo = window.geo; // this makes the style checker happy\n this.viewer.geoOn(geo.event.pan, () => {\n this.setBounds();\n });\n },\n\n annotationAPI: _.constant(true),\n\n /**\n * @returns whether to clamp viewer bounds when image overlays are\n * rendered\n */\n getUnclampBoundsForOverlay: function () {\n return this._unclampBoundsForOverlay;\n },\n\n /**\n *\n * @param {bool} newValue Set whether to clamp viewer bounds when image\n * overlays are rendered.\n */\n setUnclampBoundsForOverlay: function (newValue) {\n this._unclampBoundsForOverlay = newValue;\n },\n\n /**\n * Given an image overlay annotation element, compute and return\n * a proj-string representation of its transform specification.\n * @param {object} overlay A image annotation element.\n * @returns a proj-string representing how to overlay should be\n * transformed.\n */\n _getOverlayTransformProjString: function (overlay) {\n const transformInfo = overlay.transform || {};\n let xOffset = transformInfo.xoffset || 0;\n const yOffset = transformInfo.yoffset || 0;\n const matrix = transformInfo.matrix || [[1, 0], [0, 1]];\n const s11 = matrix[0][0];\n const s12 = matrix[0][1];\n const s21 = matrix[1][0];\n const s22 = matrix[1][1];\n\n let projString = '+proj=longlat +axis=enu';\n if (xOffset !== 0) {\n // negate x offset so positive values specified in the annotation\n // move overlays to the right\n xOffset = -1 * xOffset;\n projString = projString + ` +xoff=${xOffset}`;\n }\n if (yOffset !== 0) {\n projString = projString + ` +yoff=${yOffset}`;\n }\n if (s11 !== 1 || s12 !== 0 || s21 !== 0 || s22 !== 1) {\n // add affine matrix vals to projection string if not identity matrix\n projString = projString + ` +s11=${1 / s11} +s12=${s12} +s21=${s21} +s22=${1 / s22}`;\n }\n return projString;\n },\n\n /**\n * @returns The number of currently drawn overlay elements across\n * all annotations.\n */\n _countDrawnImageOverlays: function () {\n let numOverlays = 0;\n _.each(this._annotations, (value, key, obj) => {\n let annotationOverlays = value.overlays || [];\n numOverlays += annotationOverlays.length;\n });\n return numOverlays;\n },\n\n /**\n * Set additional parameters for pixelmap overlays.\n * @param {object} layerParams An object containing layer parameters. This should already have\n * generic properties for overlay annotations set, such as the URL, opacity, etc.\n * @param {object} pixelmapElement A pixelmap annotation element\n * @param {number} levelDifference The difference in zoom level between the base image and the overlay\n * @returns An object containing parameters needed to create a pixelmap layer.\n */\n _addPixelmapLayerParams(layerParams, pixelmapElement, levelDifference) {\n // For pixelmap overlays, there are additional parameters to set\n layerParams.keepLower = false;\n if (levelDifference !== 0) {\n layerParams.url = (x, y, z) => 'api/v1/item/' + pixelmapElement.girderId + `/tiles/zxy/${z - levelDifference}/${x}/${y}?encoding=PNG`;\n } else {\n layerParams.url = layerParams.url + '?encoding=PNG';\n }\n let pixelmapData = pixelmapElement.values;\n if (pixelmapElement.boundaries) {\n let valuesWithBoundaries = new Array(pixelmapData.length * 2);\n for (let i = 0; i < pixelmapData.length; i++) {\n valuesWithBoundaries[i * 2] = valuesWithBoundaries[i * 2 + 1] = pixelmapData[i];\n }\n pixelmapData = valuesWithBoundaries;\n }\n layerParams.data = pixelmapData;\n const categoryMap = pixelmapElement.categories;\n const boundaries = pixelmapElement.boundaries;\n layerParams.style = {\n color: (d, i) => {\n if (d < 0 || d >= categoryMap.length) {\n console.warn(`No category found at index ${d} in the category map.`);\n return 'rgba(0, 0, 0, 0)';\n }\n let color;\n let category = categoryMap[d];\n if (boundaries) {\n color = (i % 2 === 0) ? category.fillColor : category.strokeColor;\n } else {\n color = category.fillColor;\n }\n return color;\n }\n };\n return layerParams;\n },\n\n /**\n * Generate layer parameters for an image overlay layer\n * @param {object} overlayImageMetadata metadata such as size, tile size, and levels for the overlay image\n * @param {string} overlayImageId ID of a girder image item\n * @param {object} overlay information about the overlay such as opacity\n * @returns layer params for the image overlay layer\n */\n _generateOverlayLayerParams(overlayImageMetadata, overlayImageId, overlay) {\n const geo = window.geo;\n let params = geo.util.pixelCoordinateParams(\n this.viewer.node(), overlayImageMetadata.sizeX, overlayImageMetadata.sizeY, overlayImageMetadata.tileWidth, overlayImageMetadata.tileHeight\n );\n params.layer.useCredentials = true;\n params.layer.url = `api/v1/item/${overlayImageId}/tiles/zxy/{z}/{x}/{y}`;\n if (this._countDrawnImageOverlays() <= 6) {\n params.layer.autoshareRenderer = false;\n } else {\n params.layer.renderer = 'canvas';\n }\n params.layer.opacity = overlay.opacity || 1;\n params.layer.opacity *= this._globalAnnotationOpacity;\n\n const levelDifference = this.levels - overlayImageMetadata.levels;\n if (this.levels !== overlayImageMetadata.levels) {\n params.layer.url = (x, y, z) => 'api/v1/item/' + overlayImageId + `/tiles/zxy/${z - levelDifference}/${x}/${y}`;\n params.layer.minLevel = levelDifference;\n params.layer.maxLevel += levelDifference;\n\n params.layer.tilesMaxBounds = (level) => {\n var scale = Math.pow(2, params.layer.maxLevel - level);\n return {\n x: Math.floor(overlayImageMetadata.sizeX / scale),\n y: Math.floor(overlayImageMetadata.sizeY / scale)\n };\n };\n params.layer.tilesAtZoom = (level) => {\n var scale = Math.pow(2, params.layer.maxLevel - level);\n return {\n x: Math.ceil(overlayImageMetadata.sizeX / overlayImageMetadata.tileWidth / scale),\n y: Math.ceil(overlayImageMetadata.sizeY / overlayImageMetadata.tileHeight / scale)\n };\n };\n }\n if (overlay.type === 'pixelmap') {\n params.layer = this._addPixelmapLayerParams(params.layer, overlay, levelDifference);\n } else if (overlay.hasAlpha) {\n params.layer.keepLower = false;\n params.layer.url = (x, y, z) => 'api/v1/item/' + overlayImageId + `/tiles/zxy/${z - levelDifference}/${x}/${y}?encoding=PNG`;\n }\n return params.layer;\n },\n\n /**\n * Render an annotation model on the image. Currently, this is limited\n * to annotation types that can be (1) directly converted into geojson\n * primitives, (2) be represented as heatmaps, or (3) shown as image\n * overlays.\n *\n * Internally, this generates a new feature layer for the annotation\n * that is referenced by the annotation id. All \"elements\" contained\n * inside this annotation are drawn in the referenced layer.\n *\n * @param {AnnotationModel} annotation\n * @param {object} [options]\n * @param {boolean} [options.fetch=true] Enable fetching the annotation\n * from the server, including paging the results. If false, it is\n * assumed the elements already exist on the annotation object. This\n * is useful for temporarily showing annotations that are not\n * propagated to the server.\n */\n drawAnnotation: function (annotation, options) {\n if (!this.viewer) {\n return;\n }\n var geo = window.geo;\n options = _.defaults(options || {}, {fetch: true});\n var geojson = annotation.geojson();\n const overlays = annotation.overlays() || [];\n var present = _.has(this._annotations, annotation.id);\n var centroidFeature;\n if (present) {\n _.each(this._annotations[annotation.id].features, (feature, idx) => {\n if (idx || !annotation._centroids || feature.data().length !== annotation._centroids.data.length) {\n if (feature._ownLayer) {\n feature.layer().map().deleteLayer(feature.layer());\n } else {\n this.featureLayer.deleteFeature(feature);\n }\n } else {\n centroidFeature = feature;\n }\n });\n if (this._annotations[annotation.id].overlays) {\n // Ensure that overlay elements that have been deleted are not rendered on a re-draw\n _.each(this._annotations[annotation.id].overlays, (overlay) => {\n const oldOverlayIds = this._annotations[annotation.id].overlays.map((overlay) => overlay.id);\n const updatedOverlayIds = overlays.map((overlay) => overlay.id);\n _.each(oldOverlayIds, (id) => {\n if (!updatedOverlayIds.includes(id)) {\n const overlayLayer = this.viewer.layers().find((layer) => layer.id() === id);\n this.viewer.deleteLayer(overlayLayer);\n }\n });\n });\n }\n }\n this._annotations[annotation.id] = {\n features: centroidFeature ? [centroidFeature] : [],\n options: options,\n annotation: annotation,\n overlays: overlays\n };\n if (options.fetch && (!present || annotation.refresh() || annotation._inFetch === 'centroids')) {\n annotation.off('g:fetched', null, this).on('g:fetched', () => {\n // Trigger an event indicating to the listener that\n // mouseover states should reset.\n this.trigger(\n 'g:mouseResetAnnotation',\n annotation\n );\n this.drawAnnotation(annotation);\n }, this);\n this.setBounds({[annotation.id]: this._annotations[annotation.id]});\n if (annotation._inFetch === 'centroids') {\n return;\n }\n }\n annotation.refresh(false);\n var featureList = this._annotations[annotation.id].features;\n // draw centroids except for otherwise shown values\n if (annotation._centroids && !centroidFeature) {\n let feature = this.featureLayer.createFeature('point');\n featureList.push(feature);\n feature.data(annotation._centroids.data).position((d, i) => ({\n x: annotation._centroids.centroids.x[i],\n y: annotation._centroids.centroids.y[i]\n })).style({\n radius: (d, i) => {\n let r = annotation._centroids.centroids.r[i];\n if (!r) {\n return 8;\n }\n // the given value is the diagonal of the bounding box, so\n // to convert it to a circle radius means it must be\n // divided by 2 or by 2 * 4/pi.\n r /= 2.5 * this.viewer.unitsPerPixel(this.viewer.zoom());\n return r;\n },\n stroke: (d, i) => {\n return !annotation._shownIds || !annotation._shownIds.has(annotation._centroids.centroids.id[i]);\n },\n strokeColor: (d, i) => {\n let s = annotation._centroids.centroids.s[i];\n return annotation._centroids.props[s].strokeColor;\n },\n strokeOpacity: (d, i) => {\n let s = annotation._centroids.centroids.s[i];\n return annotation._centroids.props[s].strokeOpacity;\n },\n strokeWidth: (d, i) => {\n let s = annotation._centroids.centroids.s[i];\n return annotation._centroids.props[s].strokeWidth;\n },\n fill: (d, i) => {\n return !annotation._shownIds || !annotation._shownIds.has(annotation._centroids.centroids.id[i]);\n },\n fillColor: (d, i) => {\n let s = annotation._centroids.centroids.s[i];\n return annotation._centroids.props[s].fillColor;\n },\n fillOpacity: (d, i) => {\n let s = annotation._centroids.centroids.s[i];\n return annotation._centroids.props[s].fillOpacity;\n }\n });\n // bind an event so zoom updates radius\n annotation._centroidLastZoom = undefined;\n feature.geoOn(geo.event.pan, () => {\n if (this.viewer.zoom() !== annotation._centroidLastZoom) {\n annotation._centroidLastZoom = this.viewer.zoom();\n if (feature.verticesPerFeature) {\n let scale = 2.5 * this.viewer.unitsPerPixel(this.viewer.zoom());\n let vpf = feature.verticesPerFeature(),\n count = feature.data().length,\n radius = new Float32Array(vpf * count);\n for (var i = 0, j = 0; i < count; i += 1) {\n let r = annotation._centroids.centroids.r[i];\n if (r) {\n r /= scale;\n } else {\n r = 8;\n }\n for (var k = 0; k < vpf; k += 1, j += 1) {\n radius[j] = r;\n }\n }\n feature.updateStyleFromArray('radius', radius, true);\n } else {\n feature.modified().draw();\n }\n }\n });\n }\n // draw overlays\n if (this.getUnclampBoundsForOverlay() && this._annotations[annotation.id].overlays.length > 0) {\n this.viewer.clampBoundsY(false);\n this.viewer.clampBoundsX(false);\n }\n _.each(this._annotations[annotation.id].overlays, (overlay) => {\n const overlayItemId = overlay.girderId;\n restRequest({\n url: `item/${overlayItemId}/tiles`\n }).done((response) => {\n // Since overlay layers are created asynchronously, we need to ensure that an attempt\n // to draw the same overlays happening at roughly the same time does not create\n // extra layers\n const conflictingLayers = this.viewer.layers().filter(\n (layer) => layer.id() === overlay.id);\n if (conflictingLayers.length > 0) {\n _.each(conflictingLayers, (layer) => {\n this.viewer.deleteLayer(layer);\n });\n }\n const params = this._generateOverlayLayerParams(response, overlayItemId, overlay);\n const layerType = (overlay.type === 'pixelmap') ? 'pixelmap' : 'osm';\n const proj = this._getOverlayTransformProjString(overlay);\n const overlayLayer = this.viewer.createLayer(layerType, Object.assign({}, params, {id: overlay.id, gcs: proj}));\n this.annotationLayer.moveToTop();\n this.trigger('g:drawOverlayAnnotation', overlay, overlayLayer);\n const featureEvents = geo.event.feature;\n overlayLayer.geoOn(\n [\n featureEvents.mouseclick,\n featureEvents.mouseoff,\n featureEvents.mouseon,\n featureEvents.mouseover,\n featureEvents.mouseout\n ],\n (evt) => this._onMouseFeature(evt, annotation.elements().get(overlay.id), overlayLayer)\n );\n this.viewer.scheduleAnimationFrame(this.viewer.draw, true);\n }).fail((response) => {\n console.error(`There was an error overlaying image with ID ${overlayItemId}`);\n });\n });\n this._featureOpacity[annotation.id] = {};\n geo.createFileReader('jsonReader', {layer: this.featureLayer})\n .read(geojson, (features) => {\n if (features.length === 0) {\n features = annotation.non_geojson(this.featureLayer);\n if (features.length) {\n this.featureLayer.map().draw();\n }\n }\n _.each(features || [], (feature) => {\n var events = geo.event.feature;\n featureList.push(feature);\n\n feature.selectionAPI(this._hoverEvents);\n\n feature.geoOn(\n [\n events.mouseclick,\n events.mouseoff,\n events.mouseon,\n events.mouseover,\n events.mouseout\n ],\n (evt) => this._onMouseFeature(evt)\n );\n\n // store the original opacities for the elements in each feature\n const data = feature.data();\n if (annotation._centroids) {\n annotation._shownIds = new Set(feature.data().map((d) => d.id));\n }\n if (data.length <= this._highlightFeatureSizeLimit && !annotation._centroids) {\n this._featureOpacity[annotation.id][feature.featureType] = feature.data()\n .map(({id, properties}) => {\n return {\n id,\n fillOpacity: properties.fillOpacity,\n strokeOpacity: properties.strokeOpacity\n };\n });\n }\n });\n this._mutateFeaturePropertiesForHighlight(annotation.id, features);\n if (annotation._centroids && featureList[0]) {\n if (featureList[0].verticesPerFeature) {\n this.viewer.scheduleAnimationFrame(() => {\n let vpf = featureList[0].verticesPerFeature(),\n count = featureList[0].data().length,\n shown = new Float32Array(vpf * count);\n for (let i = 0, j = 0; i < count; i += 1) {\n let val = annotation._shownIds.has(annotation._centroids.centroids.id[i]) ? 0 : 1;\n for (let k = 0; k < vpf; k += 1, j += 1) {\n shown[j] = val;\n }\n }\n featureList[0].updateStyleFromArray({\n stroke: shown,\n fill: shown\n }, undefined, true);\n });\n } else {\n featureList[0].modified();\n }\n }\n this.viewer.scheduleAnimationFrame(this.viewer.draw, true);\n });\n },\n\n /**\n * Highlight the given annotation/element by reducing the opacity of all\n * other elements by 75%. For performance reasons, features with a large\n * number of elements are not modified. The limit for this behavior is\n * configurable via the constructor option `highlightFeatureSizeLimit`.\n *\n * Both arguments are optional. If no element is provided, then all\n * elements in the given annotation are highlighted. If no annotation\n * is provided, then highlighting state is reset and the original\n * opacities are used for all elements.\n *\n * @param {string?} annotation The id of the annotation to highlight\n * @param {string?} element The id of the element to highlight\n */\n highlightAnnotation: function (annotation, element) {\n this._highlightAnnotation = annotation;\n this._highlightElement = element;\n _.each(this._annotations, (layer, annotationId) => {\n const features = layer.features;\n this._mutateFeaturePropertiesForHighlight(annotationId, features);\n });\n this.viewer.scheduleAnimationFrame(this.viewer.draw);\n return this;\n },\n\n /**\n * Hide the given annotation/element by settings its opacity to 0. See\n * highlightAnnotation for caveats.\n *\n * If either argument is not provided, hiding is turned off.\n *\n * @param {string?} annotation The id of the annotation to hide\n * @param {string?} element The id of the element to hide\n */\n hideAnnotation: function (annotation, element) {\n this._hideAnnotation = annotation;\n this._hideElement = element;\n _.each(this._annotations, (layer, annotationId) => {\n const features = layer.features;\n this._mutateFeaturePropertiesForHighlight(annotationId, features);\n });\n this.viewer.scheduleAnimationFrame(this.viewer.draw);\n return this;\n },\n\n /**\n * Use geojs's `updateStyleFromArray` to modify the opacities of alli\n * elements in a feature. This method uses the private attributes\n * `_highlightAnntotation` and `_highlightElement` to determine which\n * element to modify.\n */\n _mutateFeaturePropertiesForHighlight: function (annotationId, features) {\n _.each(features, (feature) => {\n const data = this._featureOpacity[annotationId][feature.featureType];\n if (!data) {\n // skip highlighting code on features with a lot of entities because\n // this slows down interactivity considerably.\n return;\n }\n var prop = {\n datalen: data.length,\n annotationId: annotationId,\n fillOpacity: this._globalAnnotationFillOpacity,\n highlightannot: this._highlightAnnotation,\n highlightelem: this._highlightElement,\n hideannot: this._hideAnnotation,\n hideelem: this._hideElement\n };\n\n if (_.isMatch(feature._lastFeatureProp, prop)) {\n return;\n }\n\n // pre-allocate arrays for performance\n const fillOpacityArray = new Array(data.length);\n const strokeOpacityArray = new Array(data.length);\n\n for (let i = 0; i < data.length; i += 1) {\n const id = data[i].id;\n const fillOpacity = data[i].fillOpacity * this._globalAnnotationFillOpacity;\n const strokeOpacity = data[i].strokeOpacity;\n if (this._hideAnnotation && annotationId === this._hideAnnotation && id === this._hideElement) {\n fillOpacityArray[i] = 0;\n strokeOpacityArray[i] = 0;\n } else if (!this._highlightAnnotation ||\n (!this._highlightElement && annotationId === this._highlightAnnotation) ||\n this._highlightElement === id) {\n fillOpacityArray[i] = fillOpacity;\n strokeOpacityArray[i] = strokeOpacity;\n } else {\n fillOpacityArray[i] = fillOpacity * 0.25;\n strokeOpacityArray[i] = strokeOpacity * 0.25;\n }\n }\n\n feature.updateStyleFromArray('fillOpacity', fillOpacityArray);\n feature.updateStyleFromArray('strokeOpacity', strokeOpacityArray);\n feature._lastFeatureProp = prop;\n });\n // Also modify opacity of image overlay layers\n const overlays = this._annotations[annotationId].overlays || null;\n if (overlays) {\n _.each(overlays, (overlay) => {\n const overlayLayer = this.viewer.layers().find((layer) => layer.id() === overlay.id);\n if (overlayLayer) {\n let newOpacity = (overlay.opacity || 1) * this._globalAnnotationOpacity;\n if (this._highlightAnnotation && annotationId !== this._highlightAnnotation) {\n newOpacity = newOpacity * 0.25;\n }\n overlayLayer.opacity(newOpacity);\n }\n });\n }\n },\n\n /**\n * When the image visible bounds change, or an annotation is first created,\n * set the view information for any annotation which requires it.\n *\n * @param {object} [annotations] If set, a dictionary where the keys are\n * annotation ids and the values are an object which includes the\n * annotation options and a reference to the annotation. If not\n * specified, use `this._annotations` and update the view for all\n * relevant annotatioins.\n */\n setBounds: function (annotations) {\n var zoom = this.viewer.zoom(),\n bounds = this.viewer.bounds(),\n zoomRange = this.viewer.zoomRange();\n _.each(annotations || this._annotations, (annotation) => {\n if (annotation.options.fetch && annotation.annotation.setView) {\n annotation.annotation.setView(bounds, zoom, zoomRange.max, undefined, this.sizeX, this.sizeY);\n }\n });\n },\n\n /**\n * Remove an annotation from the image. If the annotation is not\n * drawn, this does nothing.\n *\n * @param {AnnotationModel} annotation\n */\n removeAnnotation: function (annotation) {\n annotation.off('g:fetched', null, this);\n // Trigger an event indicating to the listener that\n // mouseover states should reset.\n this.trigger(\n 'g:mouseResetAnnotation',\n annotation\n );\n if (_.has(this._annotations, annotation.id)) {\n _.each(this._annotations[annotation.id].features, (feature) => {\n if (feature._ownLayer) {\n feature.layer().map().deleteLayer(feature.layer());\n } else {\n this.featureLayer.deleteFeature(feature);\n }\n });\n _.each(this._annotations[annotation.id].overlays, (overlay) => {\n // Use filter instead of find to protect against multiple layers\n // for the same overlay element.\n const overlayLayers = this.viewer.layers().filter(\n (layer) => layer.id() === overlay.id);\n _.each(overlayLayers, (layer) => {\n this.trigger('g:removeOverlayAnnotation', overlay, layer);\n this.viewer.deleteLayer(layer);\n });\n });\n delete this._annotations[annotation.id];\n delete this._featureOpacity[annotation.id];\n\n // If removing an overlay annotation results in no more overlays drawn, and we've\n // previously un-clamped bounds for overlays, re-clamp bounds\n if (this._countDrawnImageOverlays() === 0 && this.getUnclampBoundsForOverlay()) {\n this.viewer.clampBoundsY(true);\n this.viewer.clampBoundsX(true);\n }\n this.viewer.scheduleAnimationFrame(this.viewer.draw);\n }\n },\n\n /**\n * Combine two regions into a multipolygon region.\n */\n _mergeRegions(origval, addval) {\n if (!origval || !origval.length || origval.length < 4 || origval === [-1, -1, -1, -1]) {\n return addval;\n }\n if (origval.length === 4) {\n origval = [\n origval[0], origval[1],\n origval[0] + origval[2], origval[1],\n origval[0] + origval[2], origval[1] + origval[3],\n origval[0], origval[1] + origval[3]\n ];\n } else if (origval.length === 6) {\n origval = [\n origval[0] - origval[3], origval[1] - origval[4],\n origval[0] + origval[3], origval[1] - origval[4],\n origval[0] + origval[3], origval[1] + origval[4],\n origval[0] - origval[3], origval[1] + origval[4]\n ];\n }\n if (addval.length === 4) {\n addval = [\n addval[0], addval[1],\n addval[0] + addval[2], addval[1],\n addval[0] + addval[2], addval[1] + addval[3],\n addval[0], addval[1] + addval[3]\n ];\n } else if (addval.length === 6) {\n addval = [\n addval[0] - addval[3], addval[1] - addval[4],\n addval[0] + addval[3], addval[1] - addval[4],\n addval[0] + addval[3], addval[1] + addval[4],\n addval[0] - addval[3], addval[1] + addval[4]\n ];\n }\n return origval.concat([-1, -1]).concat(addval);\n },\n\n /**\n * Set the image interaction mode to region drawing mode. This\n * method takes an optional `model` argument where the region will\n * be stored when created by the user. In any case, this method\n * returns a promise that resolves to an array defining the region:\n * [ left, top, width, height ]\n *\n * @param {Backbone.Model} [model] A model to set the region to\n * @param {string} [drawMode='rectangle'] An annotation drawing mode.\n * @param {boolean} [addToExisting=false] If truthy, add the new\n * annotation to any existing annotation making a multipolygon.\n * @returns {$.Promise}\n */\n drawRegion: function (model, drawMode, addToExisting) {\n model = model || new Backbone.Model();\n return this.startDrawMode(drawMode === 'polygon' ? drawMode : 'rectangle', {trigger: false}).then((elements) => {\n /*\n * Strictly speaking, the rectangle drawn here could be\n * rotated, but for simplicity we will set the region model\n * assuming it is not. To be more precise, we could expand the\n * region to contain the whole rotated rectangle. A better\n * solution would be to add a draw parameter to geojs that\n * draws a rectangle aligned with the image coordinates.\n */\n var element = elements[0];\n if (drawMode === 'polygon') {\n let values = element.points.map(([x, y, z]) => [Math.round(x), Math.round(y)]).flat();\n while (values.length > 0 && values.length <= 6) {\n values.push(values[0]);\n values.push(values[1]);\n }\n if (addToExisting) {\n values = this._mergeRegions(model.get('value'), values);\n }\n model.set('value', values, {trigger: true});\n } else {\n var width = Math.round(element.width);\n var height = Math.round(element.height);\n var left = Math.round(element.center[0] - element.width / 2);\n var top = Math.round(element.center[1] - element.height / 2);\n var values = [left, top, width, height];\n if (addToExisting) {\n values = this._mergeRegions(model.get('value'), values);\n }\n model.set('value', values, {trigger: true});\n }\n return model.get('value');\n });\n },\n\n clearRegion: function (model) {\n if (model) {\n model.set('value', [-1, -1, -1, -1], {trigger: true});\n }\n },\n\n /**\n * Set the image interaction mode to draw the given type of annotation.\n *\n * @param {string} type An annotation type, or null to turn off\n * drawing.\n * @param {object} [options]\n * @param {boolean} [options.trigger=true] Trigger a global event after\n * creating each annotation element.\n * @param {boolean} [options.keepExisting=false] If true, don't\n * remove extant annotations.\n * @returns {$.Promise}\n * Resolves to an array of generated annotation elements.\n */\n startDrawMode: function (type, options) {\n var layer = this.annotationLayer;\n var elements = [];\n var annotations = [];\n var defer = $.Deferred();\n var element;\n\n layer.mode(null);\n layer.geoOff(window.geo.event.annotation.state);\n options = _.defaults(options || {}, {trigger: true});\n if (!options.keepExisting) {\n layer.removeAllAnnotations();\n }\n layer.geoOn(\n window.geo.event.annotation.state,\n (evt) => {\n if (evt.annotation.state() !== window.geo.annotation.state.done) {\n return;\n }\n element = convertAnnotation(evt.annotation);\n if (!element.id) {\n element.id = guid();\n }\n elements.push(element);\n annotations.push(evt.annotation);\n\n if (options.trigger) {\n events.trigger('g:annotationCreated', element, evt.annotation);\n }\n\n layer.removeAllAnnotations();\n layer.geoOff(window.geo.event.annotation.state);\n defer.resolve(elements, annotations);\n }\n );\n layer.mode(type);\n return defer.promise();\n },\n\n setGlobalAnnotationOpacity: function (opacity) {\n this._globalAnnotationOpacity = opacity;\n if (this.featureLayer) {\n this.featureLayer.opacity(opacity);\n }\n Object.values(this._annotations).forEach((annot) => annot.features.forEach((feature) => {\n if (feature._ownLayer) {\n feature.layer().opacity(opacity);\n }\n }));\n _.each(this._annotations, (annotation) => {\n _.each(annotation.overlays, (overlay) => {\n const overlayLayer = this.viewer.layers().find((layer) => layer.id() === overlay.id);\n if (overlayLayer) {\n const overlayOpacity = overlay.opacity || 1;\n overlayLayer.opacity(opacity * overlayOpacity);\n }\n });\n });\n return this;\n },\n\n setGlobalAnnotationFillOpacity: function (opacity) {\n this._globalAnnotationFillOpacity = opacity;\n if (this.featureLayer) {\n _.each(this._annotations, (layer, annotationId) => {\n const features = layer.features;\n this._mutateFeaturePropertiesForHighlight(annotationId, features);\n });\n this.viewer.scheduleAnimationFrame(this.viewer.draw);\n }\n return this;\n },\n\n _setEventTypes: function () {\n var events = window.geo.event.feature;\n this._eventTypes = {\n [events.mouseclick]: 'g:mouseClickAnnotation',\n [events.mouseoff]: 'g:mouseOffAnnotation',\n [events.mouseon]: 'g:mouseOnAnnotation',\n [events.mouseover]: 'g:mouseOverAnnotation',\n [events.mouseout]: 'g:mouseOutAnnotation'\n };\n },\n\n _onMouseFeature: function (evt, overlay, overlayLayer) {\n var properties = evt.data.properties || {};\n var eventType;\n\n if (!this._eventTypes) {\n this._setEventTypes();\n }\n if (properties.element && properties.annotation) {\n eventType = this._eventTypes[evt.event];\n\n if (eventType) {\n this.trigger(\n eventType,\n properties.element,\n properties.annotation,\n evt\n );\n }\n } else if (overlay && overlayLayer) {\n // handle events for overlay layers like pixelmaps\n eventType = this._eventTypes[evt.event];\n if (eventType) {\n const overlayEventType = eventType + 'Overlay';\n this.trigger(overlayEventType, overlay, overlayLayer, evt);\n }\n }\n }\n });\n};\n\nexport default GeojsImageViewerWidgetExtension;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/imageViewerWidget/geojs.js","import geojs from './geojs';\n\nexport {\n geojs\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/imageViewerWidget/index.js","import * as viewers from '@girder/large_image/views/imageViewerWidget';\n\nimport ConfigView from './configView';\nimport ImageViewerSelectWidget from './imageViewerSelectWidget';\nimport ItemListWidget from './itemList';\nimport ImageViewerWidgetAnnotationExtension from './imageViewerWidget/base';\nimport * as extensions from './imageViewerWidget';\n\nfor (var key in viewers) {\n viewers[key] = viewers[key].extend(ImageViewerWidgetAnnotationExtension);\n if (extensions[key]) {\n viewers[key] = extensions[key](viewers[key]);\n }\n}\n\nexport {\n ConfigView,\n ImageViewerSelectWidget,\n ItemListWidget,\n viewers as ViewerWidget\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/index.js","import $ from 'jquery';\nimport _ from 'underscore';\n\nimport { restRequest } from '@girder/core/rest';\nimport { wrap } from '@girder/core/utilities/PluginUtils';\nimport ItemListWidget from '@girder/core/views/widgets/ItemListWidget';\n\nimport largeImageAnnotationConfig from './configView';\n\nimport '../stylesheets/itemList.styl';\n\nwrap(ItemListWidget, 'render', function (render) {\n render.apply(this, _.rest(arguments));\n\n function addLargeImageAnnotationBadge(item, parent, numAnnotations) {\n const thumbnail = $('a[g-item-cid=\"' + item.cid + '\"] .large_image_thumbnail', parent).first();\n\n let badge = thumbnail.find('.large_image_annotation_badge');\n if (badge.length === 0) {\n badge = $(`
`).appendTo(thumbnail);\n }\n // update badge\n badge\n .attr('title', `${numAnnotations} annotation${numAnnotations === 1 ? '' : 's'}`)\n .text(numAnnotations)\n .toggleClass('hidden', !numAnnotations);\n }\n\n largeImageAnnotationConfig.getSettings((settings) => {\n // don't render or already rendered\n if (settings['large_image.show_thumbnails'] === false || this.$('.large_image_annotation_badge').length > 0) {\n return;\n }\n const items = this.collection.toArray();\n const parent = this.$el;\n const hasAnyLargeImage = _.some(items, (item) => item.has('largeImage'));\n\n if (!hasAnyLargeImage) {\n return;\n }\n\n const needCounts = items.filter((item) => item._annotationCount === undefined && item.has('largeImage')).map((item) => {\n item._annotationCount = null; // pending\n return item.id;\n });\n let promise;\n if (!needCounts.length) {\n promise = $.Deferred().resolve({});\n } else {\n promise = restRequest({\n type: 'POST',\n url: 'annotation/counts',\n data: {\n items: needCounts.join(',')\n },\n headers: { 'X-HTTP-Method-Override': 'GET' },\n error: null\n }).done((resp) => {\n Object.entries(resp).forEach(([id, count]) => {\n if (this.collection.get(id)) {\n this.collection.get(id)._annotationCount = count;\n }\n });\n });\n }\n promise.then(() => {\n this.collection.forEach((item) => {\n if (item._annotationCount !== undefined) {\n addLargeImageAnnotationBadge(item, parent, item._annotationCount);\n }\n });\n return null;\n });\n });\n});\n\nexport default ItemListWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/itemList.js","var pug = require(\"!../../../pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\":\".g-annotation-list-header\\n i.icon-pencil\\n | Annotations\\n .btn-group.pull-right\\n if annotations.length\\n a.g-annotation-download(href=`${apiRoot}\\u002Fannotation\\u002Fitem\\u002F${item.id}`, title='Download annotations', download=`${item.get('name')}_annotations.json`)\\n i.icon-download\\n if accessLevel \\u003E= AccessType.WRITE\\n a.g-annotation-upload(title='Upload annotation')\\n i.icon-upload\\n if accessLevel \\u003E= AccessType.ADMIN && annotations.length\\n a.g-annotation-permissions(title='Adjust permissions')\\n i.icon-lock\\n a.g-annotation-delete(title='Delete')\\n i.icon-cancel\\n\\nif annotations.length\\n table.g-annotation-list.table.table-hover.table-condensed\\n thead\\n th.g-annotation-toggle\\n th.g-annotation-name Name\\n th.g-annotation-user Creator\\n th.g-annotation-date Date\\n th.g-annotation-actions\\n tbody\\n for annotation in annotations.models\\n - var name = annotation.get('annotation').name;\\n - var creatorModel = users.get(annotation.get('creatorId'));\\n - var creator = creatorModel ? creatorModel.get('login') : annotation.get('creatorId');\\n tr.g-annotation-row(data-annotation-id=annotation.id)\\n td.g-annotation-toggle\\n input(type='checkbox', disabled=!canDraw, checked=drawn.has(annotation.id), title='Show annotation')\\n td.g-annotation-name(title=name)\\n = name\\n\\n td.g-annotation-user\\n a(href=`#user\\u002F${annotation.get('creatorId')}`)\\n = creator\\n\\n td.g-annotation-date\\n = (new Date(annotation.get('created'))).toLocaleString()\\n td.g-annotation-actions\\n a.g-annotation-download(href=`${apiRoot}\\u002Fannotation\\u002F${annotation.id}`, title='Download', download=`${name}.json`)\\n i.icon-download\\n if annotation.get('_accessLevel') \\u003E= AccessType.ADMIN\\n a.g-annotation-permissions(title='Adjust permissions')\\n i.icon-lock\\n if annotation.get('_accessLevel') \\u003E= AccessType.WRITE\\n a.g-annotation-delete(title='Delete')\\n i.icon-cancel\\n\"};\n;var locals_for_with = (locals || {});(function (AccessType, Date, accessLevel, annotations, apiRoot, canDraw, drawn, item, users) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-annotation-list-header\\\"\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-pencil\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \" Annotations\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"btn-group pull-right\\\"\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotations.length) {\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-annotation-download\\\"\"+pug.attr(\"href\", `${apiRoot}/annotation/item/${item.id}`, true, true)+\" title=\\\"Download annotations\\\"\"+pug.attr(\"download\", `${item.get('name')}_annotations.json`, true, true)) + \"\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (accessLevel >= AccessType.WRITE) {\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-upload\\\" title=\\\"Upload annotation\\\"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-upload\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (accessLevel >= AccessType.ADMIN && annotations.length) {\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-permissions\\\" title=\\\"Adjust permissions\\\"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-delete\\\" title=\\\"Delete\\\"\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 17;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotations.length) {\n;pug_debug_line = 18;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctable class=\\\"g-annotation-list table table-hover table-condensed\\\"\\u003E\";\n;pug_debug_line = 19;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cthead\\u003E\";\n;pug_debug_line = 20;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cth class=\\\"g-annotation-toggle\\\"\\u003E\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cth class=\\\"g-annotation-name\\\"\\u003E\";\n;pug_debug_line = 21;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"Name\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cth class=\\\"g-annotation-user\\\"\\u003E\";\n;pug_debug_line = 22;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"Creator\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cth class=\\\"g-annotation-date\\\"\\u003E\";\n;pug_debug_line = 23;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"Date\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 24;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cth class=\\\"g-annotation-actions\\\"\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Fthead\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctbody\\u003E\";\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\n// iterate annotations.models\n;(function(){\n var $$obj = annotations.models;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var annotation = $$obj[pug_index0];\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar name = annotation.get('annotation').name;\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar creatorModel = users.get(annotation.get('creatorId'));\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar creator = creatorModel ? creatorModel.get('login') : annotation.get('creatorId');\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctr\" + (\" class=\\\"g-annotation-row\\\"\"+pug.attr(\"data-annotation-id\", annotation.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-toggle\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" type=\\\"checkbox\\\"\"+pug.attr(\"disabled\", !canDraw, true, true)+pug.attr(\"checked\", drawn.has(annotation.id), true, true)+\" title=\\\"Show annotation\\\"\") + \"\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd\" + (\" class=\\\"g-annotation-name\\\"\"+pug.attr(\"title\", name, true, true)) + \"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-user\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", `#user/${annotation.get('creatorId')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = creator) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-date\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = (new Date(annotation.get('created'))).toLocaleString()) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-actions\\\"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-annotation-download\\\"\"+pug.attr(\"href\", `${apiRoot}/annotation/${annotation.id}`, true, true)+\" title=\\\"Download\\\"\"+pug.attr(\"download\", `${name}.json`, true, true)) + \"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotation.get('_accessLevel') >= AccessType.ADMIN) {\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-permissions\\\" title=\\\"Adjust permissions\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotation.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-delete\\\" title=\\\"Delete\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var annotation = $$obj[pug_index0];\n;pug_debug_line = 27;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar name = annotation.get('annotation').name;\n;pug_debug_line = 28;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar creatorModel = users.get(annotation.get('creatorId'));\n;pug_debug_line = 29;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar creator = creatorModel ? creatorModel.get('login') : annotation.get('creatorId');\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctr\" + (\" class=\\\"g-annotation-row\\\"\"+pug.attr(\"data-annotation-id\", annotation.id, true, true)) + \"\\u003E\";\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-toggle\\\"\\u003E\";\n;pug_debug_line = 32;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" type=\\\"checkbox\\\"\"+pug.attr(\"disabled\", !canDraw, true, true)+pug.attr(\"checked\", drawn.has(annotation.id), true, true)+\" title=\\\"Show annotation\\\"\") + \"\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd\" + (\" class=\\\"g-annotation-name\\\"\"+pug.attr(\"title\", name, true, true)) + \"\\u003E\";\n;pug_debug_line = 34;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 36;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-user\\\"\\u003E\";\n;pug_debug_line = 37;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", `#user/${annotation.get('creatorId')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 38;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = creator) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-date\\\"\\u003E\";\n;pug_debug_line = 41;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + (pug.escape(null == (pug_interp = (new Date(annotation.get('created'))).toLocaleString()) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 42;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ctd class=\\\"g-annotation-actions\\\"\\u003E\";\n;pug_debug_line = 43;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"g-annotation-download\\\"\"+pug.attr(\"href\", `${apiRoot}/annotation/${annotation.id}`, true, true)+\" title=\\\"Download\\\"\"+pug.attr(\"download\", `${name}.json`, true, true)) + \"\\u003E\";\n;pug_debug_line = 44;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-download\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n;pug_debug_line = 45;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotation.get('_accessLevel') >= AccessType.ADMIN) {\n;pug_debug_line = 46;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-permissions\\\" title=\\\"Adjust permissions\\\"\\u003E\";\n;pug_debug_line = 47;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-lock\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (annotation.get('_accessLevel') >= AccessType.WRITE) {\n;pug_debug_line = 49;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ca class=\\\"g-annotation-delete\\\" title=\\\"Delete\\\"\\u003E\";\n;pug_debug_line = 50;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003Ci class=\\\"icon-cancel\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\";\n}}.call(this,\"AccessType\" in locals_for_with?locals_for_with.AccessType:typeof AccessType!==\"undefined\"?AccessType:undefined,\"Date\" in locals_for_with?locals_for_with.Date:typeof Date!==\"undefined\"?Date:undefined,\"accessLevel\" in locals_for_with?locals_for_with.accessLevel:typeof accessLevel!==\"undefined\"?accessLevel:undefined,\"annotations\" in locals_for_with?locals_for_with.annotations:typeof annotations!==\"undefined\"?annotations:undefined,\"apiRoot\" in locals_for_with?locals_for_with.apiRoot:typeof apiRoot!==\"undefined\"?apiRoot:undefined,\"canDraw\" in locals_for_with?locals_for_with.canDraw:typeof canDraw!==\"undefined\"?canDraw:undefined,\"drawn\" in locals_for_with?locals_for_with.drawn:typeof drawn!==\"undefined\"?drawn:undefined,\"item\" in locals_for_with?locals_for_with.item:typeof item!==\"undefined\"?item:undefined,\"users\" in locals_for_with?locals_for_with.users:typeof users!==\"undefined\"?users:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/templates/annotationListWidget.pug","var pug = require(\"!../../../pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FimageViewerAnnotationList.pug\":\".g-annotation-list-container\\n\"};\n;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FimageViewerAnnotationList.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-annotation-list-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/templates/imageViewerAnnotationList.pug","var pug = require(\"!../../../pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {\"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\":\".g-config-breadcrumb-container\\nform#g-large-image-form(role=\\\"form\\\")\\n .form-group\\n label Store annotation history\\n p.g-large-image-description\\n | Whenever annotations are saved, a record of the annotation's previous state can be kept.\\n .g-large-image-annotation-history-container\\n label.radio-inline\\n input.g-large-image-annotation-history-show(type=\\\"radio\\\", name=\\\"g-large-image-annotation-history\\\", checked=settings['large_image.annotation_history'] !== false ? 'checked': undefined)\\n | Record annotation history\\n label.radio-inline\\n input.g-large-image-annotation-history-hide(type=\\\"radio\\\", name=\\\"g-large-image-annotation-history\\\", checked=settings['large_image.annotation_history'] !== false ? undefined : 'checked')\\n | Don't store history\\n p#g-large-image-error-message.g-validation-failed-message\\n input.btn.btn-sm.btn-primary(type=\\\"submit\\\", value=\\\"Save\\\")\\n\"};\n;var locals_for_with = (locals || {});(function (settings) {;pug_debug_line = 1;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-config-breadcrumb-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 2;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cform id=\\\"g-large-image-form\\\" role=\\\"form\\\"\\u003E\";\n;pug_debug_line = 3;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Clabel\\u003E\";\n;pug_debug_line = 4;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"Store annotation history\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 5;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cp class=\\\"g-large-image-description\\\"\\u003E\";\n;pug_debug_line = 6;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"Whenever annotations are saved, a record of the annotation's previous state can be kept.\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 7;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cdiv class=\\\"g-large-image-annotation-history-container\\\"\\u003E\";\n;pug_debug_line = 8;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"radio-inline\\\"\\u003E\";\n;pug_debug_line = 9;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-large-image-annotation-history-show\\\"\"+\" type=\\\"radio\\\" name=\\\"g-large-image-annotation-history\\\"\"+pug.attr(\"checked\", settings['large_image.annotation_history'] !== false ? 'checked': undefined, true, true)) + \"\\u003E\";\n;pug_debug_line = 10;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"Record annotation history\\u003C\\u002Flabel\\u003E\";\n;pug_debug_line = 11;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Clabel class=\\\"radio-inline\\\"\\u003E\";\n;pug_debug_line = 12;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"g-large-image-annotation-history-hide\\\"\"+\" type=\\\"radio\\\" name=\\\"g-large-image-annotation-history\\\"\"+pug.attr(\"checked\", settings['large_image.annotation_history'] !== false ? undefined : 'checked', true, true)) + \"\\u003E\";\n;pug_debug_line = 13;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"Don't store history\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n;pug_debug_line = 14;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cp class=\\\"g-validation-failed-message\\\" id=\\\"g-large-image-error-message\\\"\\u003E\\u003C\\u002Fp\\u003E\";\n;pug_debug_line = 15;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FlargeImageAnnotationConfig.pug\";\npug_html = pug_html + \"\\u003Cinput class=\\\"btn btn-sm btn-primary\\\" type=\\\"submit\\\" value=\\\"Save\\\"\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"settings\" in locals_for_with?locals_for_with.settings:typeof settings!==\"undefined\"?settings:undefined));} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};\nmodule.exports = template;\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/templates/largeImageAnnotationConfig.pug","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@girder/large_image_annotation/stylesheets/annotationListWidget.styl\n// module id = 62\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@girder/large_image_annotation/stylesheets/itemList.styl\n// module id = 63\n// module chunks = 0","module.exports = (__webpack_require__(0))(125);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/ItemListWidget.js from dll-reference girder_lib\n// module id = 64\n// module chunks = 0","module.exports = (__webpack_require__(0))(164);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/PluginConfigBreadcrumbWidget.js from dll-reference girder_lib\n// module id = 65\n// module chunks = 0","module.exports = (__webpack_require__(0))(18);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/collections/Collection.js from dll-reference girder_lib\n// module id = 66\n// module chunks = 0","module.exports = (__webpack_require__(16))(20);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/@girder/large_image/views/imageViewerSelectWidget.js from dll-reference girder_plugin_large_image\n// module id = 67\n// module chunks = 0","module.exports = (__webpack_require__(16))(21);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/@girder/large_image/views/imageViewerWidget/index.js from dll-reference girder_plugin_large_image\n// module id = 68\n// module chunks = 0","module.exports = (__webpack_require__(0))(27);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/models/AccessControlledModel.js from dll-reference girder_lib\n// module id = 69\n// module chunks = 0","module.exports = (__webpack_require__(0))(35);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/collections/UserCollection.js from dll-reference girder_lib\n// module id = 70\n// module chunks = 0","module.exports = (__webpack_require__(0))(36);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/EventStream.js from dll-reference girder_lib\n// module id = 71\n// module chunks = 0","module.exports = (__webpack_require__(0))(42);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/AccessWidget.js from dll-reference girder_lib\n// module id = 72\n// module chunks = 0","module.exports = (__webpack_require__(0))(45);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/UploadWidget.js from dll-reference girder_lib\n// module id = 73\n// module chunks = 0","module.exports = (__webpack_require__(16))(49);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/pluginUtils.js from dll-reference girder_plugin_large_image\n// module id = 74\n// module chunks = 0","module.exports = (__webpack_require__(0))(6);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/dialog.js from dll-reference girder_lib\n// module id = 75\n// module chunks = 0","module.exports = (__webpack_require__(0))(8);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/router.js from dll-reference girder_lib\n// module id = 76\n// module chunks = 0","module.exports = (__webpack_require__(0))(9);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/auth.js from dll-reference girder_lib\n// module id = 77\n// module chunks = 0"],"sourceRoot":""}