| /** |
| * Copyright (c) HashiCorp, Inc. |
| * SPDX-License-Identifier: MPL-2.0 |
| */ |
| |
| import Component from '@ember/component'; |
| import { computed } from '@ember/object'; |
| |
| export default Component.extend({ |
| 'data-test-radial-progress': true, |
| tagName: 'svg', |
| classNames: 'radial-progress', |
| attributeBindings: ['size:width', 'size:height', 'viewBox', 'data-test-radial-progress'], |
| progressDecimal: null, |
| size: 20, |
| strokeWidth: 1, |
| |
| viewBox: computed('size', function () { |
| const s = this.size; |
| return `0 0 ${s} ${s}`; |
| }), |
| centerValue: computed('size', function () { |
| return this.size / 2; |
| }), |
| r: computed('size', 'strokeWidth', function () { |
| return (this.size - this.strokeWidth) / 2; |
| }), |
| c: computed('r', function () { |
| return 2 * Math.PI * this.r; |
| }), |
| dashArrayOffset: computed('c', 'progressDecimal', function () { |
| return this.c * (1 - this.progressDecimal); |
| }), |
| }); |