__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