# Copyright (C) The Arvados Authors. All rights reserved. # # SPDX-License-Identifier: AGPL-3.0 try: from html import escape except ImportError: from cgi import escape import json import pkg_resources class WebChart(object): """Base class for a web chart. Subclasses must assign JSLIB and JSASSETS, and override the chartdata() method. """ JSLIB = None JSASSET = None STYLE = ''' body { background: #fafafa; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-size: 0.875rem; color: rgba(0, 0, 0, 0.87); font-weight: 400; } .card { background: #ffffff; box-shadow: 0px 1px 5px 0px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 3px 1px -2px rgba(0,0,0,0.12); border-radius: 4px; margin: 20px; } .content { padding: 2px 16px 8px 16px; } table { border-spacing: 0px; } tr { height: 36px; text-align: left; } th { padding-right: 4em; border-top: 1px solid rgba(224, 224, 224, 1); } td { padding-right: 2em; border-top: 1px solid rgba(224, 224, 224, 1); } #chart { margin-left: -20px; } ''' def __init__(self, label, summarizers): self.label = label self.summarizers = summarizers def html(self, beforechart='', afterchart=''): return '''