__init__.py
 1  # SPDX-License-Identifier: MIT
 2  #
 3  # Copyright (c) 2021 The Anvil Extras project team members listed at
 4  # https://github.com/anvilistas/anvil-extras/graphs/contributors
 5  #
 6  # This software is published at https://github.com/anvilistas/anvil-extras
 7  from anvil.js import get_dom_node
 8  
 9  from anvil_extras import ProgressBar
10  from anvil_extras.utils._component_helpers import _html_injector
11  
12  from ._anvil_designer import DeterminateTemplate
13  
14  __version__ = "3.1.0"
15  
16  _html_injector.css(ProgressBar.css)
17  
18  
19  class Determinate(DeterminateTemplate):
20      def __init__(self, **properties):
21          self.indicator_dom_node = get_dom_node(self.indicator_panel)
22          self.role = "ae-progress-track"
23          self.indicator_panel.role = "ae-progress-indicator"
24          self._props = properties
25          self.init_components(**properties)
26  
27      @property
28      def progress(self):
29          return self._props.get("progress")
30  
31      @progress.setter
32      def progress(self, value):
33          self._props["progress"] = value
34          self.indicator_dom_node.style.setProperty("width", f"{value:%}")
35  
36      @property
37      def track_colour(self):
38          return self._props.get("track_colour")
39  
40      @track_colour.setter
41      def track_colour(self, value):
42          self._props["track_colour"] = value
43          self.background = value
44  
45      @property
46      def indicator_colour(self):
47          return self._props.get("indicator_colour")
48  
49      @indicator_colour.setter
50      def indicator_colour(self, value):
51          self._props["indicator_colour"] = value
52          self.indicator_panel.background = value