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