{"version":3,"sources":["webpack:///webpack/bootstrap 187eb46b52eb21de1960","webpack:///external \"girder_lib\"","webpack:///delegated ./node_modules/underscore/modules/index-all.js from dll-reference girder_lib","webpack:///delegated ./src/rest.js from dll-reference girder_lib","webpack:///./~/@girder/large_image_annotation/annotations/geojs/common.js","webpack:///delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib","webpack:///delegated ./node_modules/jquery/dist/jquery.js from dll-reference girder_lib","webpack:///delegated ./src/events.js from dll-reference girder_lib","webpack:///external \"girder_plugin_large_image\"","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/models/AnnotationModel.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:///./~/@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/views/imageViewerSelectWidget.js","webpack:///delegated ./src/views/View.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/AccessWidget.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/cjs/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/hierarchyWidget.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/auth.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/views/widgets/ItemListWidget.js from dll-reference girder_lib","webpack:///delegated ./src/pluginUtils.js from dll-reference girder_plugin_large_image","webpack:///delegated ./node_modules/@girder/large_image/views/configView.js from dll-reference girder_plugin_large_image","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 ./src/views/widgets/SearchFieldWidget.js from dll-reference girder_lib","webpack:///delegated ./src/models/AccessControlledModel.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/HierarchyWidget.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/dialog.js from dll-reference girder_lib","webpack:///delegated ./src/models/MetadataMixin.js from dll-reference girder_lib","webpack:///delegated ./src/views/widgets/UploadWidget.js from dll-reference girder_lib","webpack:///delegated ./src/router.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","AnnotationModel","AccessControlledModel","resourceName","maxDetails","maxCentroids","initialize","get","attributes","updated","Date","now","_region","sort","sortdir","_viewArea","_elements","ElementCollection","elements","listenTo","toJSON","set","fetchCentroids","url","altUrl","restOpts","data","centroids","limit","xhrFields","responseType","error","done","resp","dv","DataView","z0","z1","byteLength","getUint8","Error","Uint8Array","slice","result","JSON","parse","decodeURIComponent","escape","String","fromCharCode","apply","default","r","g","b","polyline_closed","props","_elementQuery","propsdict","propskeys","forEach","key","i","Object","assign","closed","undefined","returned","id","Array","Float32Array","s","Uint32Array","getUint32","toString","substr","getFloat32","length","count","partial","_centroids","fetch","opts","alert","extraPath","ignoreError","_inFetch","_refresh","_pageElements","then","trigger","always","_nextFetch","nextFetch","reset","sync","fail","err","refresh","val","self","save","options","method","isNew","console","warn","contentType","processData","stringify","destroy","stopListening","collection","delete","name","xhr","unset","geojson","non_geojson","layer","overlays","overlayElementTypes","filter","includes","setView","bounds","zoom","maxZoom","noFetch","sizeX","sizeY","right","bottom","xoverlap","yoverlap","minxoverlap","minyoverlap","canskip","abs","_lastZoom","lastRegion","max","every","prototype","MetadataMixin","ConfigView","View","events","event","preventDefault","$","empty","_saveSettings","prop","getSettings","settings","render","$el","html","viewers","breadcrumb","PluginConfigBreadcrumbWidget","pluginName","el","parentView","list","clearSettings","icon","text","timeout","responseJSON","message","largeImageConfig","convert","geometry","convertOne","properties","startsWith","has","geom","annotationType","features","chain","mapObject","compact","heatmapColorTable","record","values","range0","range1","colorRange","rangeValues","normalizeRange","convertHeatmap","tileLayer","layers","find","l","window","geo","maxLevel","scaleZoomFactor","heatmapLayer","createLayer","colorTable","points","d","heatmap","createFeature","radius","scaleWithZoom","blurRadius","gaussian","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","func","interpretation","concat","types","polygon","line","Collection","model","pageLimit","sortField","sortDir","SORT_DESC","ImageViewerSelectWidget","itemId","imageModel","_annotationList","AnnotationListWidget","rest","arguments","append","setViewer","currentViewer","setElement","_selectViewer","largeImageAnnotation","SearchFieldWidget","addMode","normal","holes","inner","h","outer","first","push","hole","geojs","Backbone","ElementModel","comparator","AnnotationCollection","annotations","collections","models","views","Model","idAttribute","router","route","evt","currentTarget","click","stopPropagation","_drawn","Set","_viewer","_sort","users","UserCollection","eventStream","createResp","_liconfig","_confList","annotationList","columns","format","constant","_lastSort","defaultSort","dir","reduce","e","_fetchUsers","item","accessLevel","getAccessLevel","creationAccess","canDraw","annotationAPI","drawn","apiRoot","confList","AccessType","viewer","clear","_displayAnnotation","closest","startedOn","add","drawAnnotation","removeAnnotation","toggleClass","anyOn","some","_displayAllAnnotations","isDrawn","_deleteAnnotation","parents","escapedHtml","yesText","confirmCallback","_uploadAnnotation","uploadWidget","UploadWidget","title","parent","parentType","multiFile","otherParams","reference","identifier","fileId","userId","on","_uploadWidget","_changePermissions","at","clone","updateAccess","access","public","publicFlags","each","loopmodel","AccessWidget","hideRecurseOption","noAccessFlag","when","HierarchyWidget","call","parentModel","ownAnnotation","root","folderId","recurse","ownsAnnot","addAccessControl","before","editAnnotAccess","delegateEvents","defaultUpdateModel","fetchAccess","modelType","ImageViewerWidgetAnnotationExtension","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","geoOn","pan","setBounds","getUnclampBoundsForOverlay","setUnclampBoundsForOverlay","newValue","_getOverlayTransformProjString","overlay","transformInfo","transform","xOffset","xoffset","yOffset","yoffset","matrix","s11","s12","s21","s22","scale","_getOverlayRelativeScale","projString","log2","_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","tilesMaxBounds","level","pow","tilesAtZoom","ceil","hasAlpha","present","centroidFeature","immediateUpdate","feature","idx","deleteLayer","deleteFeature","oldOverlayIds","updatedOverlayIds","overlayLayer","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","_update","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","currentBooleanOperation","resolve","modeOptions","promise","annot","overlayOpacity","_setEventTypes","_eventTypes","eventType","overlayEventType","_guid","extensions","ItemListWidget","ViewerWidget","addLargeImageAnnotationBadge","numAnnotations","flag","thumbnail","cid","badge","appendTo","attr","largeImageAnnotationConfig","items","toArray","hasAnyLargeImage","needCounts","_annotationCount","_annotationReferenced","join","headers","keys","rid","pug","require","template","locals","pug_html","pug_mixins","pug_interp","pug_debug_filename","pug_debug_line","pug_debug_sources","locals_for_with","ADMIN","classes","anyDrawn","$$obj","pug_index0","$$l","column","toUpperCase","pug_index1","creatorModel","creator","updatedModel","updater","pug_index2","toLocaleString","WRITE","pug_index3","rethrow","module","exports"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1CD;;;;AACA;;;;AACA;;AACA;;;;AAEA;;;;AACA;;;;AACA;;AAEA;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;ACGA;;;AAIA;;;AAPA;;AACA;;;;AAGA;;AACA;;AAGA;;IAAYY,oB;;;;;;;;AACZ,0CAAwB,wBAAxB,EAAkDA,oBAAlD;;;AAEAC,4BAAkBC,OAAlB,CACI,wBADJ,EAEI,CAAC,MAAD,CAFJ,EAGI,4BAHJ,EAII,8VAJJ,E;;;;;;ACXA;AACA;AACA,EAAE,KAA4D;AAC9D;AACA;AACA,CAAC,sBAAsB;;AAEvB;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA,KAAK;AACL;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;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;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;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D,wBAAwB;;AAErF;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gFAAgF,4BAA4B,gBAAgB;AAC5H,gFAAgF,2BAA2B,gBAAgB;AAC3H,uDAAuD,oDAAoD,gBAAgB;AAC3H,uDAAuD,oDAAoD,gBAAgB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;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;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;;AAEA;AACA;;AAEA,OAAO,kBAAkB,YAAY,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE;AAC/D,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE;AAC/D,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AAC/E,6BAA6B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AAC/E;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,UAAU,OAAO,UAAU,OAAO,SAAS;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;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;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,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCnqCc;AACX7Q,eAAW,eADA;AAEXE,eAAW,YAFA;AAGXG,eAAW;AAHA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCAA;AACXL,eAAW,eADA;AAEXE,eAAW,YAFA;AAGXG,eAAW,CAHA;AAIX1B,cAAU,CAJC;AAKXmS,YAAQ,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP;AALG,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCAA;AACX5Q,eAAW,YADA;AAEXG,eAAW,CAFA;AAGXL,eAAW;AAHA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCAA;AACXA,eAAW,eADA;AAEXE,eAAW,YAFA;AAGXG,eAAW;AAHA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBCAA;AACXL,eAAW,eA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;AAC5FzI,qBAAOzD,OAAP,CAAe,cAAf,EAA+BuD,oBAA/B;AACH,CAFD,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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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 = \"/dsa/static/built/\";\n\n \t__webpack_require__(28);\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 83);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 187eb46b52eb21de1960","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/modules/index-all.js from dll-reference girder_lib\n// module id = 1\n// module chunks = 0","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 = 2\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))(123);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/PluginUtils.js from dll-reference girder_lib\n// module id = 4\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 = 5\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 = 6\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 = 7\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 _ from 'underscore';\nimport AccessControlledModel from '@girder/core/models/AccessControlledModel';\nimport { restRequest } from '@girder/core/rest';\nimport MetadataMixin from '@girder/core/models/MetadataMixin';\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 */\nlet AnnotationModel = AccessControlledModel.extend({\n resourceName: 'annotation',\n\n defaults: {\n annotation: {},\n maxDetails: 250000,\n maxCentroids: 2000000\n },\n\n initialize() {\n if (!this.get('updated')) {\n this.attributes.updated = '' + Date.now(); // eslint-disable-line backbone/no-model-attributes\n }\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: {\n sort: 'size',\n sortdir: -1,\n centroids: true,\n limit: this.get('maxCentroids'),\n _: (this.get('updated') || this.get('created')) + '_' + this.get('_version')\n },\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: Object.assign({}, this._region, {_: (this.get('updated') || this.get('created')) + '_' + this.get('_version')})\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 } else {\n this._nextFetch = null;\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 if (this._pageElements !== false) {\n nextFetch();\n }\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 this.attributes.updated = '' + Date.now(); // eslint-disable-line backbone/no-model-attributes\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 this.attributes.updated = '' + Date.now(); // eslint-disable-line backbone/no-model-attributes\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_.extend(AnnotationModel.prototype, MetadataMixin);\n\nexport default AnnotationModel;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/models/AnnotationModel.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';\nimport largeImageConfig from '@girder/large_image/views/configView';\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: largeImageConfig.getSettings,\n\n /**\n * Clear the settings so that getSettings will refetch them.\n */\n clearSettings: largeImageConfig.clearSettings\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 = 16\n// module chunks = 0","module.exports = (__webpack_require__(0))(23);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/backbone/backbone.js from dll-reference girder_lib\n// module id = 17\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 /* when scaleWithZoom is set, use the base pixel level of the first tile\n * layer for scaling rather than the 0-resolution level. */\n const tileLayer = map.layers().find((l) => l instanceof window.geo.tileLayer && l.options && l.options.maxLevel !== undefined);\n const scaleZoomFactor = tileLayer ? 2 ** -tileLayer.options.maxLevel : 1;\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) * (record.scaleWithZoom ? scaleZoomFactor : 1),\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';\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))(64);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/AccessWidget.js from dll-reference girder_lib\n// module id = 26\n// module chunks = 0","module.exports = (__webpack_require__(0))(8);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/constants.js from dll-reference girder_lib\n// module id = 27\n// module chunks = 0","import { registerPluginNamespace } from '@girder/core/pluginUtils';\nimport SearchFieldWidget from '@girder/core/views/widgets/SearchFieldWidget';\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\nSearchFieldWidget.addMode(\n 'li_annotation_metadata',\n ['item'],\n 'Annotation Metadata search',\n 'You can search specific annotation metadata keys by adding \"key:\" to your search. Otherwise, all primary metadata keys are searched. For example \"key:quality good\" would find any items with annotations that have attributes with a key named quality (case sensitive) that contains the word \"good\" (case insensitive) anywhere in its value.'\n);\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/main.js","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n var trimLeft = /^\\s+/;\n var trimRight = /\\s+$/;\n function tinycolor(color, opts) {\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 var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, 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 = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n }\n tinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\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 getLuminance() {\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 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 setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(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 if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\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 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 return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(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 lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\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\n tinycolor.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 } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\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 //\n function inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\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 if (typeof color == \"string\") {\n color = stringInputToObject(color);\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 } 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 } 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 if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\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]\n function 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]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\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:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\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]\n function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\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 if (s === 0) {\n r = g = b = l; // achromatic\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\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 h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\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 return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\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\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\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 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\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\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 return hex.join(\"\");\n }\n\n // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function _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 function _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 function _greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n function _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 function _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n function _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.\n function _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\n function _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n }\n function _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n }\n function _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\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 function _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\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 return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\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 // `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\"\n tinycolor.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 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 if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // \n var 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]`\n var hexNames = tinycolor.hexNames = flip(names);\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function 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\n function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(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\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function 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 // \n function 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\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function () {\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 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).\n function 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}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\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 {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\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 return false;\n }\n function 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 || {\n level: \"AA\",\n size: \"small\"\n };\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 {\n level: level,\n size: size\n };\n }\n\n return tinycolor;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@girder/large_image_annotation/~/tinycolor2/cjs/tinycolor.js\n// module id = 29\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 'click .g-annotation-toggle-select': '_displayAnnotation',\n 'click .g-annotation-toggle-all': '_displayAllAnnotations',\n 'click .g-annotation-delete': '_deleteAnnotation',\n 'click .g-annotation-upload': '_uploadAnnotation',\n 'click .g-annotation-permissions': '_changePermissions',\n 'click .g-annotation-metadata': '_annotationMetadata',\n 'click .g-annotation-row'(evt) {\n var $el = $(evt.currentTarget);\n $el.find('.g-annotation-toggle-select').click();\n },\n 'click .g-annotation-row a,.g-annotation-toggle-select'(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 restRequest({\n type: 'GET',\n url: 'annotation/folder/' + this.model.get('folderId') + '/create'\n }).done((createResp) => {\n this.createResp = createResp;\n restRequest({\n url: `folder/${this.model.get('folderId')}/yaml_config/.large_image_config.yaml`\n }).done((val) => {\n this._liconfig = val || {};\n this._confList = this._liconfig.annotationList || {\n columns: [{\n type: 'record',\n value: 'name'\n }, {\n type: 'record',\n value: 'creator',\n format: 'user'\n }, {\n type: 'record',\n value: 'created',\n format: 'date'\n }]\n };\n this.collection.comparator = _.constant(0);\n this._lastSort = this._confList.defaultSort || [{\n type: 'record',\n value: 'updated',\n dir: 'up'\n }, {\n type: 'record',\n value: 'updated',\n dir: 'down'\n }];\n this.collection.sortField = JSON.stringify(this._lastSort.reduce((result, e) => {\n result.push([\n (e.type === 'metadata' ? 'annotation.attributes.' : '') + e.value,\n e.dir === 'down' ? 1 : -1\n ]);\n if (e.type === 'record') {\n result.push([\n `annotation.${e.value}`,\n e.dir === 'down' ? 1 : -1\n ]);\n }\n return result;\n }, []));\n this.collection.fetch({\n itemId: this.model.id,\n sort: this.collection.sortField || 'created',\n sortdir: -1\n }).done(() => {\n this._fetchUsers();\n });\n });\n });\n },\n\n render() {\n this.$el.html(annotationList({\n item: this.model,\n accessLevel: this.model.getAccessLevel(),\n creationAccess: this.createResp,\n annotations: this.collection,\n users: this.users,\n canDraw: this._viewer && this._viewer.annotationAPI(),\n drawn: this._drawn,\n apiRoot: getApiRoot(),\n confList: this._confList,\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 if (!this._viewer || !this._viewer.annotationAPI()) {\n return;\n }\n const $el = $(evt.currentTarget).closest('.g-annotation-row');\n const id = $el.data('annotationId');\n const annotation = this.collection.get(id);\n const startedOn = $el.find('.g-annotation-toggle-select i.icon-eye').length;\n if (!startedOn) {\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 $el.find('.g-annotation-toggle-select i').toggleClass('icon-eye', !startedOn).toggleClass('icon-eye-off', !!startedOn);\n const anyOn = this.collection.some((annotation) => this._drawn.has(annotation.id));\n this.$el.find('th.g-annotation-toggle i').toggleClass('icon-eye', !!anyOn).toggleClass('icon-eye-off', !anyOn);\n },\n\n _displayAllAnnotations(evt) {\n if (!this._viewer || !this._viewer.annotationAPI()) {\n return;\n }\n const anyOn = this.collection.some((annotation) => this._drawn.has(annotation.id));\n this.collection.forEach((annotation) => {\n const id = annotation.id;\n let isDrawn = this._drawn.has(annotation.id);\n if (anyOn && isDrawn) {\n this._drawn.delete(id);\n this._viewer.removeAnnotation(annotation);\n isDrawn = false;\n } else if (!anyOn && !isDrawn) {\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 isDrawn = true;\n }\n this.$el.find(`.g-annotation-row[data-annotation-id=\"${id}\"] .g-annotation-toggle-select i`).toggleClass('icon-eye', !!isDrawn).toggleClass('icon-eye-off', !isDrawn);\n });\n this.$el.find('th.g-annotation-toggle i').toggleClass('icon-eye', !anyOn).toggleClass('icon-eye-off', !!anyOn);\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 noAccessFlag: true\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 this.users.add({'_id': model.get('updatedId')});\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 'jquery';\n\nimport { wrap } from '@girder/core/utilities/PluginUtils';\nimport { restRequest } from '@girder/core/rest';\nimport AccessWidget from '@girder/core/views/widgets/AccessWidget';\nimport HierarchyWidget from '@girder/core/views/widgets/HierarchyWidget';\n\nimport AnnotationModel from '../models/AnnotationModel';\n\nwrap(HierarchyWidget, 'render', function (render) {\n render.call(this);\n\n if (this.parentModel.get('_modelType') === 'folder') {\n ownAnnotation(this, this.parentModel.id);\n }\n});\n\nfunction ownAnnotation(root, folderId) {\n restRequest({\n type: 'GET',\n url: 'annotation/folder/' + folderId + '/present',\n data: {\n recurse: true\n }\n }).done((ownsAnnot) => {\n if (ownsAnnot) {\n addAccessControl(root);\n }\n });\n}\n\nfunction addAccessControl(root) {\n if (root.$('.g-edit-annotation-access').length === 0) {\n if (root.$('.g-folder-actions-menu > .divider').length > 0) {\n root.$('.g-folder-actions-menu > .divider').before(\n '
  • ' +\n '' +\n '' +\n 'Annotation access control' +\n '' +\n '
  • '\n );\n } else {\n root.$('ul.g-folder-actions-menu').append(\n '
  • ' +\n '' +\n '' +\n 'Annotation access control' +\n '' +\n '
  • '\n );\n }\n root.events['click .g-edit-annotation-access'] = editAnnotAccess;\n root.delegateEvents();\n }\n}\n\nfunction editAnnotAccess() {\n restRequest({\n type: 'GET',\n url: 'annotation/folder/' + this.parentModel.get('_id'),\n data: {\n recurse: true,\n limit: 1\n }\n }).done((resp) => {\n const model = new AnnotationModel(resp[0]);\n model.get('annotation').name = 'Your Annotations';\n model.save = () => {};\n model.updateAccess = (settings) => {\n const access = {\n access: model.get('access'),\n public: model.get('public'),\n publicFlags: model.get('publicFlags')\n };\n const defaultUpdateModel = new AnnotationModel();\n defaultUpdateModel.id = this.parentModel.get('_id');\n defaultUpdateModel.altUrl = 'annotation/folder';\n defaultUpdateModel.set(access);\n defaultUpdateModel.updateAccess(settings);\n model.trigger('g:accessListSaved');\n };\n model.fetchAccess(true)\n .done(() => {\n new AccessWidget({// eslint-disable-line no-new\n el: $('#g-dialog-container'),\n modelType: 'annotation',\n model,\n hideRecurseOption: false,\n parentView: this,\n noAccessFlag: true\n });\n });\n });\n}\n\nexport default HierarchyWidget;\n\n\n\n// WEBPACK FOOTER //\n// ./~/@girder/large_image_annotation/views/hierarchyWidget.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 let yOffset = transformInfo.yoffset || 0;\n const matrix = transformInfo.matrix || [[1, 0], [0, 1]];\n let s11 = matrix[0][0];\n let s12 = matrix[0][1];\n let s21 = matrix[1][0];\n let s22 = matrix[1][1];\n\n const scale = 2 ** this._getOverlayRelativeScale(overlay);\n if (scale && scale !== 1) {\n s11 /= scale;\n s12 /= scale;\n s21 /= scale;\n s22 /= scale;\n xOffset *= scale;\n yOffset *= scale;\n }\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 * Given an overlay with a transform matrix, compute an approximate\n * scale compaared to the base.\n *\n * @param {object} overlay The overlay annotation record.\n * @returns {number} The approximate scale as an integer power of two.\n */\n _getOverlayRelativeScale: function (overlay) {\n const transformInfo = overlay.transform || {};\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 scale = Math.sqrt(Math.abs(s11 * s22 - s12 * s21)) || 1;\n return Math.floor(Math.log2(scale));\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 (typeof layerParams.url === 'function' || levelDifference) {\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 let levelDifference = this.levels - overlayImageMetadata.levels;\n\n levelDifference -= this._getOverlayRelativeScale(overlay);\n\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 let immediateUpdate = false;\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 immediateUpdate = true;\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('geojsonReader', {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 if (immediateUpdate) {\n this.featureLayer._update();\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 if (annotation !== this._highlightAnnotation || element !== this._highlightElement) {\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 }\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 * @param {object} [options.modeOptions] Additional options to pass to\n * the annotationLayer mode.\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 const opts = {};\n if (layer.currentBooleanOperation) {\n opts.currentBooleanOperation = layer.currentBooleanOperation();\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, opts);\n }\n\n layer.removeAllAnnotations();\n layer.geoOff(window.geo.event.annotation.state);\n defer.resolve(elements, annotations, opts);\n }\n );\n layer.mode(type, undefined, options.modeOptions);\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 _guid: guid\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 HierarchyWidget from './hierarchyWidget';\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 HierarchyWidget,\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, flag) {\n const thumbnail = $('.large_image_thumbnail[g-item-cid=\"' + item.cid + '\"]', parent).first();\n if (!thumbnail.length) {\n return;\n }\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', !flag ? `${numAnnotations} annotation${numAnnotations === 1 ? '' : 's'}` : 'Referenced by an annotation')\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 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 delete item._annotationReferenced;\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 (id === 'referenced') {\n Object.keys(count).forEach((rid) => {\n if (this.collection.get(rid)) {\n this.collection.get(rid)._annotationReferenced = true;\n }\n });\n } else 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 if (!item._annotationReferenced) {\n addLargeImageAnnotationBadge(item, this.$el, item._annotationCount);\n } else {\n addLargeImageAnnotationBadge(item, this.$el, '*', true);\n }\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 creationAccess\\n a.g-annotation-upload(title='Upload annotation')\\n i.icon-upload\\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.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 \\u002F\\u002F\\n th.g-annotation-select\\n input.g-select-all(type='checkbox')\\n th.g-annotation-toggle\\n a.g-annotation-toggle-all(class=canDraw ? 'disabled' : '', title='Hide or show all annotations')\\n - let anyDrawn = annotations.models.some((annotation) =\\u003E drawn.has(annotation.id))\\n if anyDrawn\\n i.icon-eye\\n else\\n i.icon-eye-off\\n for column in confList.columns || []\\n if column.type !== 'record' || column.value !== 'controls'\\n th.g-annotation-column\\n if column.title !== undefined\\n = column.title\\n else\\n = `${column.value.substr(0, 1).toUpperCase()}${column.value.substr(1)}`\\n th.g-annotation-actions\\n tbody\\n for annotation in annotations.models\\n -\\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 var updatedModel = users.get(annotation.get('updatedId'));\\n var updater = updatedModel ? updatedModel.get('login') : annotation.get('updatedId');\\n tr.g-annotation-row(data-annotation-id=annotation.id)\\n \\u002F\\u002F\\n td.g-annotation-select\\n input(type='checkbox', title='Select annotation for bulk actions')\\n td.g-annotation-toggle\\n a.g-annotation-toggle-select(class=canDraw ? 'disabled' : '', title='Show annotation')\\n if drawn.has(annotation.id)\\n i.icon-eye\\n else\\n i.icon-eye-off\\n for column in confList.columns || []\\n if column.type !== 'record' || column.value !== 'controls'\\n -\\n var value = (column.type === 'record' ? annotation.get(column.value) || annotation.get('annotation')[column.value] : (column.type === 'metadata' ? ((annotation.get('annotation').attributes || {})[column.value] || '') : '')) || '';\\n if (column.type === 'record' && column.value === 'creator') {\\n value = creator;\\n }\\n if (column.type === 'record' && column.value === 'updatedId') {\\n value = updater;\\n }\\n td.g-annotation-entry(title=value)\\n if column.format === 'user'\\n a(href=`#user\\u002F${annotation.get(column.value) || annotation.get(column.value + 'Id')}`)\\n = value\\n else if column.format === 'date'\\n = (new Date(value)).toLocaleString()\\n else\\n = value\\n td.g-annotation-actions\\n \\u002F\\u002F\\n if annotation.get('_accessLevel') \\u003E= AccessType.WRITE\\n a.g-annotation-edit(title='Edit annotation')\\n i.icon-cog\\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, confList, creationAccess, 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 (creationAccess) {\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-upload\\\" title=\\\"Upload annotation\\\"\\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-upload\\\"\\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 (annotations.length) {\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-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 = 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-download\\\"\\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 + \"\\u003C!--\";\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 + \"th.g-annotation-select\";\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 + \"\\n\";\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 + \" input.g-select-all(type='checkbox')--\\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-toggle\\\"\\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 + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"g-annotation-toggle-all\",canDraw ? 'disabled' : ''], [false,true]), false, true)+\" title=\\\"Hide or show all annotations\\\"\") + \"\\u003E\";\n;pug_debug_line = 25;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nlet anyDrawn = annotations.models.some((annotation) => drawn.has(annotation.id))\n;pug_debug_line = 26;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (anyDrawn) {\n;pug_debug_line = 27;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-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 29;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-eye-off\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fth\\u003E\";\n;pug_debug_line = 30;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\n// iterate confList.columns || []\n;(function(){\n var $$obj = confList.columns || [];\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\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 + \"\\u003Cth class=\\\"g-annotation-column\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.title !== undefined) {\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 = column.title) ? \"\" : pug_interp));\n}\nelse {\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 + (pug.escape(null == (pug_interp = `${column.value.substr(0, 1).toUpperCase()}${column.value.substr(1)}`) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fth\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\n;pug_debug_line = 31;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\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 + \"\\u003Cth class=\\\"g-annotation-column\\\"\\u003E\";\n;pug_debug_line = 33;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.title !== undefined) {\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 = column.title) ? \"\" : pug_interp));\n}\nelse {\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 + (pug.escape(null == (pug_interp = `${column.value.substr(0, 1).toUpperCase()}${column.value.substr(1)}`) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fth\\u003E\";\n}\n }\n }\n}).call(this);\n\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 + \"\\u003Cth class=\\\"g-annotation-actions\\\"\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Fthead\\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 + \"\\u003Ctbody\\u003E\";\n;pug_debug_line = 39;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_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var annotation = $$obj[pug_index1];\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar name = annotation.get('annotation').name;\nvar creatorModel = users.get(annotation.get('creatorId'));\nvar creator = creatorModel ? creatorModel.get('login') : annotation.get('creatorId');\nvar updatedModel = users.get(annotation.get('updatedId'));\nvar updater = updatedModel ? updatedModel.get('login') : annotation.get('updatedId');\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 + \"\\u003Ctr\" + (\" class=\\\"g-annotation-row\\\"\"+pug.attr(\"data-annotation-id\", annotation.id, true, true)) + \"\\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 + \"\\u003C!--\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"td.g-annotation-select\";\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 + \"\\n\";\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 + \" input(type='checkbox', title='Select annotation for bulk actions')--\\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 + \"\\u003Ctd class=\\\"g-annotation-toggle\\\"\\u003E\";\n;pug_debug_line = 51;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(\"class\", pug.classes([\"g-annotation-toggle-select\",canDraw ? 'disabled' : ''], [false,true]), false, true)+\" title=\\\"Show annotation\\\"\") + \"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (drawn.has(annotation.id)) {\n;pug_debug_line = 53;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-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 55;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-eye-off\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\n// iterate confList.columns || []\n;(function(){\n var $$obj = confList.columns || [];\n if ('number' == typeof $$obj.length) {\n for (var pug_index2 = 0, $$l = $$obj.length; pug_index2 < $$l; pug_index2++) {\n var column = $$obj[pug_index2];\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar value = (column.type === 'record' ? annotation.get(column.value) || annotation.get('annotation')[column.value] : (column.type === 'metadata' ? ((annotation.get('annotation').attributes || {})[column.value] || '') : '')) || '';\nif (column.type === 'record' && column.value === 'creator') {\n value = creator;\n}\nif (column.type === 'record' && column.value === 'updatedId') {\n value = updater;\n}\n;pug_debug_line = 66;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-entry\\\"\"+pug.attr(\"title\", value, true, true)) + \"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.format === 'user') {\n;pug_debug_line = 68;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(column.value) || annotation.get(column.value + 'Id')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 69;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 = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (column.format === 'date') {\n;pug_debug_line = 71;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(value)).toLocaleString()) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 73;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 = value) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index2 in $$obj) {\n $$l++;\n var column = $$obj[pug_index2];\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar value = (column.type === 'record' ? annotation.get(column.value) || annotation.get('annotation')[column.value] : (column.type === 'metadata' ? ((annotation.get('annotation').attributes || {})[column.value] || '') : '')) || '';\nif (column.type === 'record' && column.value === 'creator') {\n value = creator;\n}\nif (column.type === 'record' && column.value === 'updatedId') {\n value = updater;\n}\n;pug_debug_line = 66;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-entry\\\"\"+pug.attr(\"title\", value, true, true)) + \"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.format === 'user') {\n;pug_debug_line = 68;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(column.value) || annotation.get(column.value + 'Id')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 69;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 = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (column.format === 'date') {\n;pug_debug_line = 71;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(value)).toLocaleString()) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 73;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 = value) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n}\n }\n }\n}).call(this);\n\n;pug_debug_line = 74;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 = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003C!--\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"if annotation.get('_accessLevel') \\u003E= AccessType.WRITE\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \" a.g-annotation-edit(title='Edit annotation')\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \" i.icon-cog--\\u003E\";\n;pug_debug_line = 79;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 = 80;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 = 81;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 = 82;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 = 83;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 = 84;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 = 85;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 = 86;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_index1 in $$obj) {\n $$l++;\n var annotation = $$obj[pug_index1];\n;pug_debug_line = 40;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar name = annotation.get('annotation').name;\nvar creatorModel = users.get(annotation.get('creatorId'));\nvar creator = creatorModel ? creatorModel.get('login') : annotation.get('creatorId');\nvar updatedModel = users.get(annotation.get('updatedId'));\nvar updater = updatedModel ? updatedModel.get('login') : annotation.get('updatedId');\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 + \"\\u003Ctr\" + (\" class=\\\"g-annotation-row\\\"\"+pug.attr(\"data-annotation-id\", annotation.id, true, true)) + \"\\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 + \"\\u003C!--\";\n;pug_debug_line = 48;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"td.g-annotation-select\";\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 + \"\\n\";\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 + \" input(type='checkbox', title='Select annotation for bulk actions')--\\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 + \"\\u003Ctd class=\\\"g-annotation-toggle\\\"\\u003E\";\n;pug_debug_line = 51;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(\"class\", pug.classes([\"g-annotation-toggle-select\",canDraw ? 'disabled' : ''], [false,true]), false, true)+\" title=\\\"Show annotation\\\"\") + \"\\u003E\";\n;pug_debug_line = 52;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (drawn.has(annotation.id)) {\n;pug_debug_line = 53;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-eye\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\nelse {\n;pug_debug_line = 55;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-eye-off\\\"\\u003E\\u003C\\u002Fi\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Ftd\\u003E\";\n;pug_debug_line = 56;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\n// iterate confList.columns || []\n;(function(){\n var $$obj = confList.columns || [];\n if ('number' == typeof $$obj.length) {\n for (var pug_index3 = 0, $$l = $$obj.length; pug_index3 < $$l; pug_index3++) {\n var column = $$obj[pug_index3];\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar value = (column.type === 'record' ? annotation.get(column.value) || annotation.get('annotation')[column.value] : (column.type === 'metadata' ? ((annotation.get('annotation').attributes || {})[column.value] || '') : '')) || '';\nif (column.type === 'record' && column.value === 'creator') {\n value = creator;\n}\nif (column.type === 'record' && column.value === 'updatedId') {\n value = updater;\n}\n;pug_debug_line = 66;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-entry\\\"\"+pug.attr(\"title\", value, true, true)) + \"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.format === 'user') {\n;pug_debug_line = 68;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(column.value) || annotation.get(column.value + 'Id')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 69;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 = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (column.format === 'date') {\n;pug_debug_line = 71;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(value)).toLocaleString()) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 73;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 = value) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index3 in $$obj) {\n $$l++;\n var column = $$obj[pug_index3];\n;pug_debug_line = 57;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.type !== 'record' || column.value !== 'controls') {\n;pug_debug_line = 58;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nvar value = (column.type === 'record' ? annotation.get(column.value) || annotation.get('annotation')[column.value] : (column.type === 'metadata' ? ((annotation.get('annotation').attributes || {})[column.value] || '') : '')) || '';\nif (column.type === 'record' && column.value === 'creator') {\n value = creator;\n}\nif (column.type === 'record' && column.value === 'updatedId') {\n value = updater;\n}\n;pug_debug_line = 66;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-entry\\\"\"+pug.attr(\"title\", value, true, true)) + \"\\u003E\";\n;pug_debug_line = 67;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\nif (column.format === 'user') {\n;pug_debug_line = 68;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(column.value) || annotation.get(column.value + 'Id')}`, true, true)) + \"\\u003E\";\n;pug_debug_line = 69;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 = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (column.format === 'date') {\n;pug_debug_line = 71;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(value)).toLocaleString()) ? \"\" : pug_interp));\n}\nelse {\n;pug_debug_line = 73;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 = value) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\";\n}\n }\n }\n}).call(this);\n\n;pug_debug_line = 74;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 = 75;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\u003C!--\";\n;pug_debug_line = 76;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"if annotation.get('_accessLevel') \\u003E= AccessType.WRITE\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 77;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \" a.g-annotation-edit(title='Edit annotation')\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \"\\n\";\n;pug_debug_line = 78;pug_debug_filename = \"\\u002Fopt\\u002Fgirder\\u002Fgirder\\u002Fweb_client\\u002Fnode_modules\\u002F@girder\\u002Flarge_image_annotation\\u002Ftemplates\\u002FannotationListWidget.pug\";\npug_html = pug_html + \" i.icon-cog--\\u003E\";\n;pug_debug_line = 79;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 = 80;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 = 81;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 = 82;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 = 83;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 = 84;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 = 85;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 = 86;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,\"confList\" in locals_for_with?locals_for_with.confList:typeof confList!==\"undefined\"?confList:undefined,\"creationAccess\" in locals_for_with?locals_for_with.creationAccess:typeof creationAccess!==\"undefined\"?creationAccess: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 = 64\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 = 65\n// module chunks = 0","module.exports = (__webpack_require__(0))(10);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/auth.js from dll-reference girder_lib\n// module id = 66\n// module chunks = 0","module.exports = (__webpack_require__(7))(106);\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__(7))(107);\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))(164);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/ItemListWidget.js from dll-reference girder_lib\n// module id = 69\n// module chunks = 0","module.exports = (__webpack_require__(7))(195);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/pluginUtils.js from dll-reference girder_plugin_large_image\n// module id = 70\n// module chunks = 0","module.exports = (__webpack_require__(7))(20);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./node_modules/@girder/large_image/views/configView.js from dll-reference girder_plugin_large_image\n// module id = 71\n// module chunks = 0","module.exports = (__webpack_require__(0))(253);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/PluginConfigBreadcrumbWidget.js from dll-reference girder_lib\n// module id = 72\n// module chunks = 0","module.exports = (__webpack_require__(0))(27);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/collections/Collection.js from dll-reference girder_lib\n// module id = 73\n// module chunks = 0","module.exports = (__webpack_require__(0))(29);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/SearchFieldWidget.js from dll-reference girder_lib\n// module id = 74\n// module chunks = 0","module.exports = (__webpack_require__(0))(41);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/models/AccessControlledModel.js from dll-reference girder_lib\n// module id = 75\n// module chunks = 0","module.exports = (__webpack_require__(0))(45);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/HierarchyWidget.js from dll-reference girder_lib\n// module id = 76\n// module chunks = 0","module.exports = (__webpack_require__(0))(51);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/collections/UserCollection.js from dll-reference girder_lib\n// module id = 77\n// module chunks = 0","module.exports = (__webpack_require__(0))(52);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/utilities/EventStream.js from dll-reference girder_lib\n// module id = 78\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 = 79\n// module chunks = 0","module.exports = (__webpack_require__(0))(62);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/models/MetadataMixin.js from dll-reference girder_lib\n// module id = 80\n// module chunks = 0","module.exports = (__webpack_require__(0))(67);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/views/widgets/UploadWidget.js from dll-reference girder_lib\n// module id = 81\n// module chunks = 0","module.exports = (__webpack_require__(0))(9);\n\n\n//////////////////\n// WEBPACK FOOTER\n// delegated ./src/router.js from dll-reference girder_lib\n// module id = 82\n// module chunks = 0"],"sourceRoot":""}