@patternfly/elements 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +4399 -699
- package/package.json +11 -1
- package/pf-accordion/BaseAccordion.js +155 -220
- package/pf-accordion/BaseAccordion.js.map +1 -1
- package/pf-accordion/BaseAccordionHeader.d.ts +1 -0
- package/pf-accordion/BaseAccordionHeader.js +69 -71
- package/pf-accordion/BaseAccordionHeader.js.map +1 -1
- package/pf-accordion/BaseAccordionPanel.js +2 -2
- package/pf-accordion/BaseAccordionPanel.js.map +1 -1
- package/pf-accordion/pf-accordion-header.js +9 -4
- package/pf-accordion/pf-accordion-header.js.map +1 -1
- package/pf-accordion/pf-accordion-panel.js +1 -1
- package/pf-accordion/pf-accordion-panel.js.map +1 -1
- package/pf-accordion/pf-accordion.js +1 -1
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-avatar/BaseAvatar.js +1 -1
- package/pf-avatar/BaseAvatar.js.map +1 -1
- package/pf-avatar/pf-avatar.js +1 -1
- package/pf-avatar/pf-avatar.js.map +1 -1
- package/pf-badge/BaseBadge.js +1 -1
- package/pf-badge/BaseBadge.js.map +1 -1
- package/pf-badge/pf-badge.js +1 -1
- package/pf-badge/pf-badge.js.map +1 -1
- package/pf-banner/README.md +60 -0
- package/pf-banner/pf-banner.css +96 -0
- package/pf-banner/pf-banner.d.ts +52 -0
- package/pf-banner/pf-banner.js +85 -0
- package/pf-banner/pf-banner.js.map +1 -0
- package/pf-button/BaseButton.js +17 -16
- package/pf-button/BaseButton.js.map +1 -1
- package/pf-button/pf-button.js +1 -1
- package/pf-button/pf-button.js.map +1 -1
- package/pf-card/BaseCard.css +2 -2
- package/pf-card/BaseCard.js +2 -2
- package/pf-card/BaseCard.js.map +1 -1
- package/pf-card/pf-card.css +4 -4
- package/pf-card/pf-card.js +2 -2
- package/pf-card/pf-card.js.map +1 -1
- package/pf-clipboard-copy/BaseClipboardCopy.js +1 -1
- package/pf-clipboard-copy/BaseClipboardCopy.js.map +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.js +36 -33
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-code-block/BaseCodeBlock.js +1 -1
- package/pf-code-block/BaseCodeBlock.js.map +1 -1
- package/pf-code-block/pf-code-block.js +14 -11
- package/pf-code-block/pf-code-block.js.map +1 -1
- package/pf-icon/BaseIcon.js +39 -41
- package/pf-icon/BaseIcon.js.map +1 -1
- package/pf-icon/pf-icon.js +2 -2
- package/pf-icon/pf-icon.js.map +1 -1
- package/pf-jump-links/pf-jump-links-item.js +17 -14
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.js +1 -1
- package/pf-jump-links/pf-jump-links-list.js.map +1 -1
- package/pf-jump-links/pf-jump-links.js +37 -34
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-label/BaseLabel.js +1 -1
- package/pf-label/BaseLabel.js.map +1 -1
- package/pf-label/pf-label.js +2 -2
- package/pf-label/pf-label.js.map +1 -1
- package/pf-modal/pf-modal.js +46 -45
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-panel/pf-panel.js +7 -6
- package/pf-panel/pf-panel.js.map +1 -1
- package/pf-popover/pf-popover.d.ts +2 -2
- package/pf-popover/pf-popover.js +67 -55
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-progress/README.md +33 -0
- package/pf-progress/pf-progress.css +210 -0
- package/pf-progress/pf-progress.d.ts +111 -0
- package/pf-progress/pf-progress.js +218 -0
- package/pf-progress/pf-progress.js.map +1 -0
- package/pf-progress-stepper/pf-progress-step.js +11 -10
- package/pf-progress-stepper/pf-progress-step.js.map +1 -1
- package/pf-progress-stepper/pf-progress-stepper.js +16 -13
- package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
- package/pf-spinner/BaseSpinner.js +1 -1
- package/pf-spinner/BaseSpinner.js.map +1 -1
- package/pf-spinner/pf-spinner.js +1 -1
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-switch/BaseSwitch.js +44 -47
- package/pf-switch/BaseSwitch.js.map +1 -1
- package/pf-switch/pf-switch.js +1 -1
- package/pf-switch/pf-switch.js.map +1 -1
- package/pf-table/README.md +43 -0
- package/pf-table/pf-caption.css +9 -0
- package/pf-table/pf-caption.d.ts +14 -0
- package/pf-table/pf-caption.js +22 -0
- package/pf-table/pf-caption.js.map +1 -0
- package/pf-table/pf-table.css +223 -0
- package/pf-table/pf-table.d.ts +663 -0
- package/pf-table/pf-table.js +767 -0
- package/pf-table/pf-table.js.map +1 -0
- package/pf-table/pf-tbody.css +16 -0
- package/pf-table/pf-tbody.d.ts +15 -0
- package/pf-table/pf-tbody.js +26 -0
- package/pf-table/pf-tbody.js.map +1 -0
- package/pf-table/pf-td.css +105 -0
- package/pf-table/pf-td.d.ts +18 -0
- package/pf-table/pf-td.js +52 -0
- package/pf-table/pf-td.js.map +1 -0
- package/pf-table/pf-th.css +93 -0
- package/pf-table/pf-th.d.ts +27 -0
- package/pf-table/pf-th.js +96 -0
- package/pf-table/pf-th.js.map +1 -0
- package/pf-table/pf-thead.css +19 -0
- package/pf-table/pf-thead.d.ts +16 -0
- package/pf-table/pf-thead.js +37 -0
- package/pf-table/pf-thead.js.map +1 -0
- package/pf-table/pf-tr.css +87 -0
- package/pf-table/pf-tr.d.ts +34 -0
- package/pf-table/pf-tr.js +164 -0
- package/pf-table/pf-tr.js.map +1 -0
- package/pf-tabs/BaseTab.d.ts +3 -0
- package/pf-tabs/BaseTab.js +32 -31
- package/pf-tabs/BaseTab.js.map +1 -1
- package/pf-tabs/BaseTabPanel.js +11 -5
- package/pf-tabs/BaseTabPanel.js.map +1 -1
- package/pf-tabs/BaseTabs.js +116 -135
- package/pf-tabs/BaseTabs.js.map +1 -1
- package/pf-tabs/pf-tab-panel.js +1 -1
- package/pf-tabs/pf-tab-panel.js.map +1 -1
- package/pf-tabs/pf-tab.d.ts +1 -1
- package/pf-tabs/pf-tab.js +2 -2
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.d.ts +2 -0
- package/pf-tabs/pf-tabs.js +6 -2
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-text-input/README.md +9 -0
- package/pf-text-input/pf-text-input.css +261 -0
- package/pf-text-input/pf-text-input.d.ts +174 -0
- package/pf-text-input/pf-text-input.js +262 -0
- package/pf-text-input/pf-text-input.js.map +1 -0
- package/pf-tile/pf-tile.js +1 -1
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-timestamp/pf-timestamp.js +15 -10
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-tooltip/BaseTooltip.css +1 -5
- package/pf-tooltip/BaseTooltip.d.ts +3 -0
- package/pf-tooltip/BaseTooltip.js +18 -9
- package/pf-tooltip/BaseTooltip.js.map +1 -1
- package/pf-tooltip/pf-tooltip.css +66 -4
- package/pf-tooltip/pf-tooltip.d.ts +25 -3
- package/pf-tooltip/pf-tooltip.js +144 -5
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pfe.min.js +257 -137
- package/pfe.min.js.map +4 -4
- package/react/pf-accordion/pf-accordion-header.d.ts +3 -5
- package/react/pf-accordion/pf-accordion-panel.d.ts +3 -5
- package/react/pf-accordion/pf-accordion.d.ts +3 -5
- package/react/pf-avatar/pf-avatar.d.ts +3 -5
- package/react/pf-badge/pf-badge.d.ts +3 -5
- package/react/pf-banner/pf-banner.d.ts +4 -0
- package/react/pf-banner/pf-banner.js +10 -0
- package/react/pf-button/pf-button.d.ts +3 -5
- package/react/pf-card/pf-card.d.ts +3 -5
- package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +3 -5
- package/react/pf-code-block/pf-code-block.d.ts +3 -5
- package/react/pf-icon/pf-icon.d.ts +3 -5
- package/react/pf-jump-links/pf-jump-links-item.d.ts +3 -5
- package/react/pf-jump-links/pf-jump-links-list.d.ts +3 -5
- package/react/pf-jump-links/pf-jump-links.d.ts +3 -5
- package/react/pf-label/pf-label.d.ts +3 -5
- package/react/pf-modal/pf-modal.d.ts +3 -5
- package/react/pf-panel/pf-panel.d.ts +3 -5
- package/react/pf-popover/pf-popover.d.ts +3 -5
- package/react/pf-progress/pf-progress.d.ts +4 -0
- package/react/pf-progress/pf-progress.js +10 -0
- package/react/pf-progress-stepper/pf-progress-step.d.ts +3 -5
- package/react/pf-progress-stepper/pf-progress-stepper.d.ts +3 -5
- package/react/pf-spinner/pf-spinner.d.ts +3 -5
- package/react/pf-switch/pf-switch.d.ts +3 -5
- package/react/pf-table/pf-caption.d.ts +4 -0
- package/react/pf-table/pf-caption.js +10 -0
- package/react/pf-table/pf-table.d.ts +4 -0
- package/react/pf-table/pf-table.js +10 -0
- package/react/pf-table/pf-tbody.d.ts +4 -0
- package/react/pf-table/pf-tbody.js +10 -0
- package/react/pf-table/pf-td.d.ts +4 -0
- package/react/pf-table/pf-td.js +10 -0
- package/react/pf-table/pf-th.d.ts +4 -0
- package/react/pf-table/pf-th.js +10 -0
- package/react/pf-table/pf-thead.d.ts +4 -0
- package/react/pf-table/pf-thead.js +10 -0
- package/react/pf-table/pf-tr.d.ts +4 -0
- package/react/pf-table/pf-tr.js +10 -0
- package/react/pf-tabs/pf-tab-panel.d.ts +3 -5
- package/react/pf-tabs/pf-tab.d.ts +3 -5
- package/react/pf-tabs/pf-tab.js +1 -1
- package/react/pf-tabs/pf-tabs.d.ts +3 -5
- package/react/pf-text-input/pf-text-input.d.ts +4 -0
- package/react/pf-text-input/pf-text-input.js +10 -0
- package/react/pf-tile/pf-tile.d.ts +3 -5
- package/react/pf-timestamp/pf-timestamp.d.ts +3 -5
- package/react/pf-tooltip/pf-tooltip.d.ts +3 -5
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { PropertyValues } from 'lit';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* A progress bar gives the user a visual representation of their completion status of an ongoing process or task.
|
|
5
|
+
*
|
|
6
|
+
* @summary Display completion status of ongoing process or task.
|
|
7
|
+
*
|
|
8
|
+
* @cssprop {<length>} --pf-c-progress--GridGap
|
|
9
|
+
* Gap between the sections of the progress bar.
|
|
10
|
+
* {@default `1rem`}
|
|
11
|
+
*
|
|
12
|
+
* @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor
|
|
13
|
+
* Color of the progress bar.
|
|
14
|
+
* {@default `#06c`}
|
|
15
|
+
*
|
|
16
|
+
* @cssprop {<length>} --pf-c-progress__bar--Height
|
|
17
|
+
* Height of the progress bar.
|
|
18
|
+
* {@default `1rem`}
|
|
19
|
+
*
|
|
20
|
+
* @cssprop {<color>} --pf-c-progress__bar--BackgroundColor
|
|
21
|
+
* Background color of the progress bar.
|
|
22
|
+
* {@default `#ffffff`}
|
|
23
|
+
*
|
|
24
|
+
* @cssprop {<color>} --pf-c-progress__status-icon--Color
|
|
25
|
+
* Color of the status icon.
|
|
26
|
+
* {@default `#151515`}
|
|
27
|
+
*
|
|
28
|
+
* @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft
|
|
29
|
+
* Margin left of the status icon.
|
|
30
|
+
* {@default `0.5rem`}
|
|
31
|
+
*
|
|
32
|
+
* @cssprop {<length>} --pf-c-progress__indicator--Height
|
|
33
|
+
* Height of the progress bar indicator.
|
|
34
|
+
* {@default `1rem`}
|
|
35
|
+
*
|
|
36
|
+
* @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor
|
|
37
|
+
* Background color of the progress bar indicator.
|
|
38
|
+
* {@default `#ffffff`}
|
|
39
|
+
*
|
|
40
|
+
* @cssprop {<color>} --pf-c-progress--m-success__bar--BackgroundColor
|
|
41
|
+
* Background color of the progress bar when variant is success.
|
|
42
|
+
* {@default `#3e8635`}
|
|
43
|
+
*
|
|
44
|
+
* @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor
|
|
45
|
+
* Background color of the progress bar when variant is warning.
|
|
46
|
+
* {@default `#f0ab00`}
|
|
47
|
+
*
|
|
48
|
+
* @cssprop {<color>} --pf-c-progress--m-danger__bar--BackgroundColor
|
|
49
|
+
* Background color of the progress bar when variant is danger.
|
|
50
|
+
* {@default `#c9190b`}
|
|
51
|
+
*
|
|
52
|
+
* @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color
|
|
53
|
+
* Color of the status icon when variant is success.
|
|
54
|
+
* {@default `#3e8635`}
|
|
55
|
+
*
|
|
56
|
+
* @cssprop {<color>} --pf-c-progress--m-warning__status-icon--Color
|
|
57
|
+
* Color of the status icon when variant is warning.
|
|
58
|
+
* {@default `#f0ab00`}
|
|
59
|
+
*
|
|
60
|
+
* @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color
|
|
61
|
+
* Color of the status icon when variant is danger.
|
|
62
|
+
* {@default `#c9190b`}
|
|
63
|
+
*
|
|
64
|
+
* @cssprop {<color>} --pf-c-progress--m-success--m-inside__measure--Color
|
|
65
|
+
* Color of the progress bar measure when variant is success and measure location is inside.
|
|
66
|
+
* {@default `#ffffff`}
|
|
67
|
+
*
|
|
68
|
+
* @cssprop {<length>} --pf-c-progress--m-outside__measure--FontSize
|
|
69
|
+
* Font size of the progress bar measure when measure location is outside.
|
|
70
|
+
* {@default `0.875rem`}
|
|
71
|
+
*
|
|
72
|
+
* @cssprop {<length>} --pf-c-progress--m-sm__bar--Height
|
|
73
|
+
* Height of the progress bar when the size is small.
|
|
74
|
+
* {@default `0.5rem`}
|
|
75
|
+
*
|
|
76
|
+
* @cssprop {<length>} --pf-c-progress--m-sm__description--FontSize
|
|
77
|
+
* Font size of the progress bar description when the size is small.
|
|
78
|
+
* {@default `0.875rem`}
|
|
79
|
+
*
|
|
80
|
+
* @cssprop {<length>} --pf-c-progress--m-lg__bar--Height
|
|
81
|
+
* Height of the progress bar when the size is large.
|
|
82
|
+
* {@default `1.5rem`}
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
export declare class PfProgress extends LitElement {
|
|
86
|
+
#private;
|
|
87
|
+
static readonly styles: import("lit").CSSResult[];
|
|
88
|
+
/** Represents the value of the progress bar */
|
|
89
|
+
value: number;
|
|
90
|
+
/** Description (title) above the progress bar */
|
|
91
|
+
description?: string;
|
|
92
|
+
/** Indicate whether to truncate the string description (title) */
|
|
93
|
+
descriptionTruncated: boolean;
|
|
94
|
+
/** Maximum value for the progress bar */
|
|
95
|
+
max: number;
|
|
96
|
+
/** Minimum value for the progress bar */
|
|
97
|
+
min: number;
|
|
98
|
+
/** Size of the progress bar (height) */
|
|
99
|
+
size?: 'sm' | 'lg';
|
|
100
|
+
/** Where the percentage will be displayed with the progress element */
|
|
101
|
+
measureLocation?: 'outside' | 'inside' | 'none';
|
|
102
|
+
/** Variant of the progress bar */
|
|
103
|
+
variant?: 'success' | 'danger' | 'warning';
|
|
104
|
+
willUpdate(changed: PropertyValues<this>): void;
|
|
105
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
106
|
+
}
|
|
107
|
+
declare global {
|
|
108
|
+
interface HTMLElementTagNameMap {
|
|
109
|
+
'pf-progress': PfProgress;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
var _PfProgress_instances, _PfProgress_internals, _PfProgress_calculatedPercentage_get, _PfProgress_icon_get;
|
|
2
|
+
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
3
|
+
import { LitElement, html } from 'lit';
|
|
4
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
5
|
+
import { customElement } from 'lit/decorators/custom-element.js';
|
|
6
|
+
import { property } from 'lit/decorators/property.js';
|
|
7
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
8
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
|
9
|
+
import { css } from "lit";
|
|
10
|
+
const styles = css `*{box-sizing:border-box}#container{--_pf-c-progress__bar--before--BackgroundColorWithOpacity:#0066cc33;--_pf-c-progress--m-success__bar--BackgroundColorWithOpacity:#3e863533;--_pf-c-progress--m-warning__bar--BackgroundColorWithOpacity:#f0ab0033;--_pf-c-progress--m-danger__bar--BackgroundColorWithOpacity:#c9190b33;--pf-c-progress--GridGap:var(--pf-global--spacer--md, 1rem);--pf-c-progress__bar--before--BackgroundColor:var(--pf-global--primary-color--100, #0066cc);--pf-c-progress__bar--Height:var(--pf-global--spacer--md, 1rem);--pf-c-progress__bar--BackgroundColor:var(--pf-global--BackgroundColor--light-100, #ffffff);--pf-c-progress__status-icon--Color:var(--pf-global--Color--100, #151515);--pf-c-progress__status-icon--MarginLeft:var(--pf-global--spacer--sm, 0.5rem);--pf-c-progress__indicator--Height:var(--pf-c-progress__bar--Height);--pf-c-progress__indicator--BackgroundColor:var(--pf-c-progress__bar--before--BackgroundColor);--pf-c-progress--m-success__bar--BackgroundColor:var(--pf-global--success-color--100, #3e8635);--pf-c-progress--m-warning__bar--BackgroundColor:var(--pf-global--warning-color--100, #f0ab00);--pf-c-progress--m-danger__bar--BackgroundColor:var(--pf-global--danger-color--100, #c9190b);--pf-c-progress--m-success__status-icon--Color:var(--pf-global--success-color--100, #3e8635);--pf-c-progress--m-warning__status-icon--Color:var(--pf-global--warning-color--100, #f0ab00);--pf-c-progress--m-danger__status-icon--Color:var(--pf-global--danger-color--100, #c9190b);--pf-c-progress--m-success--m-inside__measure--Color:var(--pf-global--Color--light-100, #ffffff);--pf-c-progress--m-outside__measure--FontSize:var(--pf-global--FontSize--sm, 0.875rem);--pf-c-progress--m-sm__bar--Height:var(--pf-global--spacer--sm, 0.5rem);--pf-c-progress--m-sm__description--FontSize:var(--pf-global--FontSize--sm, 0.875rem);--pf-c-progress--m-lg__bar--Height:var(--pf-global--spacer--lg, 1.5rem);display:grid;align-items:end;grid-gap:var(--pf-c-progress--GridGap);grid-template-columns:1fr auto;grid-template-rows:1fr auto;width:100%}.sm{--pf-c-progress__bar--Height:var(--pf-c-progress--m-sm__bar--Height);--pf-c-progress__indicator--Height:var(--pf-c-progress--m-sm__bar--Height)}.sm #description{font-size:var(--pf-c-progress--m-sm__description--FontSize)}.lg{--pf-c-progress__bar--Height:var(--pf-c-progress--m-lg__bar--Height);--pf-c-progress__indicator--Height:var(--pf-c-progress--m-lg__bar--Height)}.outside #description{grid-column:1/3}.outside #status{grid-column:2/3;grid-row:2/3;align-self:center}.outside progress,.outside span{display:inline-block;font-size:var(--pf-c-progress--m-outside__measure--FontSize);grid-column:1/2}.singleline{grid-template-rows:1fr}.singleline #description{display:none;visibility:hidden}.singleline progress,.singleline span{grid-row:1/2;grid-column:1/2}.singleline #status{grid-row:1/2;grid-column:2/3}.outside,.singleline{grid-template-columns:1fr fit-content(50%)}#container.success{--pf-c-progress__bar--before--BackgroundColor:var(--pf-c-progress--m-success__bar--BackgroundColor);--_pf-c-progress__bar--before--BackgroundColorWithOpacity:var(--_pf-c-progress--m-success__bar--BackgroundColorWithOpacity);--pf-c-progress__status-icon--Color:var(--pf-c-progress--m-success__status-icon--Color)}#container.warning{--pf-c-progress__bar--before--BackgroundColor:var(--pf-c-progress--m-warning__bar--BackgroundColor);--_pf-c-progress__bar--before--BackgroundColorWithOpacity:var(--_pf-c-progress--m-warning__bar--BackgroundColorWithOpacity);--pf-c-progress__status-icon--Color:var(--pf-c-progress--m-warning__status-icon--Color)}#container.danger{--pf-c-progress__bar--before--BackgroundColor:var(--pf-c-progress--m-danger__bar--BackgroundColor);--_pf-c-progress__bar--before--BackgroundColorWithOpacity:var(--_pf-c-progress--m-danger__bar--BackgroundColorWithOpacity);--pf-c-progress__status-icon--Color:var(--pf-c-progress--m-danger__status-icon--Color)}#description{word-break:break-word;grid-column:1/2}.descriptionTruncated #description{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}#status{grid-column:2/3;grid-row:1/2;text-align:right;word-break:break-word;display:flex;align-items:center;justify-content:end}pf-icon{margin-left:var(--pf-c-progress__status-icon--MarginLeft);color:var(--pf-c-progress__status-icon--Color)}progress{position:relative;grid-column:1/3;grid-row:2/3;align-self:center;height:var(--pf-c-progress__bar--Height);background-color:var(--pf-c-progress__bar--BackgroundColor)}.indicator{position:absolute;top:0;left:0;height:var(--pf-c-progress__indicator--Height);background-color:var(--pf-c-progress__indicator--BackgroundColor)}.indicator{width:100%;height:var(--pf-c-progress__bar--Height);display:block}span{grid-column:1/3;grid-row:2/3;text-align:center;color:var(--pf-c-progress--m-success--m-inside__measure--Color)}span::after{content:attr(data-value);position:relative;height:100%}progress[value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--_pf-c-progress__bar--before--BackgroundColorWithOpacity);width:100%;height:var(--pf-c-progress__bar--Height)}progress:not([value]){-webkit-appearance:none;-moz-appearance:none;appearance:none}progress[value]::-webkit-progress-bar{background:var(--_pf-c-progress__bar--before--BackgroundColorWithOpacity)}progress[value]::-moz-progress-bar{background:var(--pf-c-progress__bar--before--BackgroundColor)}progress[value]::-webkit-progress-value{background-size:100% 100%;background-image:linear-gradient(90deg,var(--pf-c-progress__bar--before--BackgroundColor) 100%,var(--pf-c-progress__bar--before--BackgroundColor) 100%)}pf-tooltip{height:.01px}`;
|
|
11
|
+
const ICONS = new Map(Object.entries({
|
|
12
|
+
success: { icon: 'circle-check' },
|
|
13
|
+
danger: { icon: 'circle-xmark' },
|
|
14
|
+
warning: { icon: 'triangle-exclamation' }
|
|
15
|
+
}));
|
|
16
|
+
/**
|
|
17
|
+
* A progress bar gives the user a visual representation of their completion status of an ongoing process or task.
|
|
18
|
+
*
|
|
19
|
+
* @summary Display completion status of ongoing process or task.
|
|
20
|
+
*
|
|
21
|
+
* @cssprop {<length>} --pf-c-progress--GridGap
|
|
22
|
+
* Gap between the sections of the progress bar.
|
|
23
|
+
* {@default `1rem`}
|
|
24
|
+
*
|
|
25
|
+
* @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor
|
|
26
|
+
* Color of the progress bar.
|
|
27
|
+
* {@default `#06c`}
|
|
28
|
+
*
|
|
29
|
+
* @cssprop {<length>} --pf-c-progress__bar--Height
|
|
30
|
+
* Height of the progress bar.
|
|
31
|
+
* {@default `1rem`}
|
|
32
|
+
*
|
|
33
|
+
* @cssprop {<color>} --pf-c-progress__bar--BackgroundColor
|
|
34
|
+
* Background color of the progress bar.
|
|
35
|
+
* {@default `#ffffff`}
|
|
36
|
+
*
|
|
37
|
+
* @cssprop {<color>} --pf-c-progress__status-icon--Color
|
|
38
|
+
* Color of the status icon.
|
|
39
|
+
* {@default `#151515`}
|
|
40
|
+
*
|
|
41
|
+
* @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft
|
|
42
|
+
* Margin left of the status icon.
|
|
43
|
+
* {@default `0.5rem`}
|
|
44
|
+
*
|
|
45
|
+
* @cssprop {<length>} --pf-c-progress__indicator--Height
|
|
46
|
+
* Height of the progress bar indicator.
|
|
47
|
+
* {@default `1rem`}
|
|
48
|
+
*
|
|
49
|
+
* @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor
|
|
50
|
+
* Background color of the progress bar indicator.
|
|
51
|
+
* {@default `#ffffff`}
|
|
52
|
+
*
|
|
53
|
+
* @cssprop {<color>} --pf-c-progress--m-success__bar--BackgroundColor
|
|
54
|
+
* Background color of the progress bar when variant is success.
|
|
55
|
+
* {@default `#3e8635`}
|
|
56
|
+
*
|
|
57
|
+
* @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor
|
|
58
|
+
* Background color of the progress bar when variant is warning.
|
|
59
|
+
* {@default `#f0ab00`}
|
|
60
|
+
*
|
|
61
|
+
* @cssprop {<color>} --pf-c-progress--m-danger__bar--BackgroundColor
|
|
62
|
+
* Background color of the progress bar when variant is danger.
|
|
63
|
+
* {@default `#c9190b`}
|
|
64
|
+
*
|
|
65
|
+
* @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color
|
|
66
|
+
* Color of the status icon when variant is success.
|
|
67
|
+
* {@default `#3e8635`}
|
|
68
|
+
*
|
|
69
|
+
* @cssprop {<color>} --pf-c-progress--m-warning__status-icon--Color
|
|
70
|
+
* Color of the status icon when variant is warning.
|
|
71
|
+
* {@default `#f0ab00`}
|
|
72
|
+
*
|
|
73
|
+
* @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color
|
|
74
|
+
* Color of the status icon when variant is danger.
|
|
75
|
+
* {@default `#c9190b`}
|
|
76
|
+
*
|
|
77
|
+
* @cssprop {<color>} --pf-c-progress--m-success--m-inside__measure--Color
|
|
78
|
+
* Color of the progress bar measure when variant is success and measure location is inside.
|
|
79
|
+
* {@default `#ffffff`}
|
|
80
|
+
*
|
|
81
|
+
* @cssprop {<length>} --pf-c-progress--m-outside__measure--FontSize
|
|
82
|
+
* Font size of the progress bar measure when measure location is outside.
|
|
83
|
+
* {@default `0.875rem`}
|
|
84
|
+
*
|
|
85
|
+
* @cssprop {<length>} --pf-c-progress--m-sm__bar--Height
|
|
86
|
+
* Height of the progress bar when the size is small.
|
|
87
|
+
* {@default `0.5rem`}
|
|
88
|
+
*
|
|
89
|
+
* @cssprop {<length>} --pf-c-progress--m-sm__description--FontSize
|
|
90
|
+
* Font size of the progress bar description when the size is small.
|
|
91
|
+
* {@default `0.875rem`}
|
|
92
|
+
*
|
|
93
|
+
* @cssprop {<length>} --pf-c-progress--m-lg__bar--Height
|
|
94
|
+
* Height of the progress bar when the size is large.
|
|
95
|
+
* {@default `1.5rem`}
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
let PfProgress = class PfProgress extends LitElement {
|
|
99
|
+
constructor() {
|
|
100
|
+
super(...arguments);
|
|
101
|
+
_PfProgress_instances.add(this);
|
|
102
|
+
_PfProgress_internals.set(this, this.attachInternals());
|
|
103
|
+
/** Represents the value of the progress bar */
|
|
104
|
+
this.value = 0;
|
|
105
|
+
/** Indicate whether to truncate the string description (title) */
|
|
106
|
+
this.descriptionTruncated = false;
|
|
107
|
+
/** Maximum value for the progress bar */
|
|
108
|
+
this.max = 100;
|
|
109
|
+
/** Minimum value for the progress bar */
|
|
110
|
+
this.min = 0;
|
|
111
|
+
}
|
|
112
|
+
willUpdate(changed) {
|
|
113
|
+
if (changed.has('value') || changed.has('min') || changed.has('max')) {
|
|
114
|
+
__classPrivateFieldGet(this, _PfProgress_internals, "f").ariaValueNow = __classPrivateFieldGet(this, _PfProgress_instances, "a", _PfProgress_calculatedPercentage_get).toString();
|
|
115
|
+
}
|
|
116
|
+
if (__classPrivateFieldGet(this, _PfProgress_instances, "a", _PfProgress_icon_get)) {
|
|
117
|
+
import('@patternfly/elements/pf-icon/pf-icon.js');
|
|
118
|
+
}
|
|
119
|
+
if (this.descriptionTruncated) {
|
|
120
|
+
import('@patternfly/elements/pf-tooltip/pf-tooltip.js');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
render() {
|
|
124
|
+
const { size, measureLocation, variant, description, descriptionTruncated } = this;
|
|
125
|
+
const icon = __classPrivateFieldGet(this, _PfProgress_instances, "a", _PfProgress_icon_get);
|
|
126
|
+
const singleLine = description?.length === 0;
|
|
127
|
+
const pct = __classPrivateFieldGet(this, _PfProgress_instances, "a", _PfProgress_calculatedPercentage_get);
|
|
128
|
+
const width = `${pct}%`;
|
|
129
|
+
return html `
|
|
130
|
+
<div id="container" class="${classMap({
|
|
131
|
+
[size ?? '']: !!size,
|
|
132
|
+
[measureLocation ?? '']: !!measureLocation,
|
|
133
|
+
[variant ?? '']: !!variant,
|
|
134
|
+
singleLine,
|
|
135
|
+
descriptionTruncated,
|
|
136
|
+
})}">
|
|
137
|
+
|
|
138
|
+
<div id="description" aria-hidden="true">${description ?? ''}</div>
|
|
139
|
+
|
|
140
|
+
${!descriptionTruncated ? '' : html `
|
|
141
|
+
<pf-tooltip content="${this.description ?? ''}"
|
|
142
|
+
trigger="description"></pf-tooltip>
|
|
143
|
+
`}
|
|
144
|
+
|
|
145
|
+
${measureLocation === 'none' ? '' : html `
|
|
146
|
+
<div id="status" aria-hidden="true">
|
|
147
|
+
${measureLocation !== 'inside' ? '' : width}
|
|
148
|
+
<pf-icon set="fas"
|
|
149
|
+
icon="${ifDefined(icon)}"
|
|
150
|
+
size="md"
|
|
151
|
+
?hidden="${!icon}"
|
|
152
|
+
></pf-icon>
|
|
153
|
+
</div>
|
|
154
|
+
`}
|
|
155
|
+
|
|
156
|
+
<progress id="progress"
|
|
157
|
+
max="100"
|
|
158
|
+
value="${pct}"
|
|
159
|
+
aria-valuemin="0"
|
|
160
|
+
aria-valuenow="${pct}"
|
|
161
|
+
aria-valuemax="100"
|
|
162
|
+
></progress>
|
|
163
|
+
|
|
164
|
+
${measureLocation !== 'inside' ? '' : html `
|
|
165
|
+
<span id="progress-span"
|
|
166
|
+
style="${styleMap({ width })}"
|
|
167
|
+
data-value="${width}"></span>
|
|
168
|
+
`}
|
|
169
|
+
</div>`;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
_PfProgress_internals = new WeakMap();
|
|
173
|
+
_PfProgress_instances = new WeakSet();
|
|
174
|
+
_PfProgress_calculatedPercentage_get = function _PfProgress_calculatedPercentage_get() {
|
|
175
|
+
const { value, min, max } = this;
|
|
176
|
+
const percentage = Math.round((value - min) / (max - min) * 100);
|
|
177
|
+
if (Number.isNaN(percentage) || percentage < 0) {
|
|
178
|
+
return 0;
|
|
179
|
+
}
|
|
180
|
+
return Math.min(percentage, 100);
|
|
181
|
+
};
|
|
182
|
+
_PfProgress_icon_get = function _PfProgress_icon_get() {
|
|
183
|
+
return ICONS.get(this.variant ?? '')?.icon;
|
|
184
|
+
};
|
|
185
|
+
PfProgress.styles = [styles];
|
|
186
|
+
__decorate([
|
|
187
|
+
property({ reflect: true, type: Number })
|
|
188
|
+
], PfProgress.prototype, "value", void 0);
|
|
189
|
+
__decorate([
|
|
190
|
+
property()
|
|
191
|
+
], PfProgress.prototype, "description", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
property({
|
|
194
|
+
type: Boolean,
|
|
195
|
+
reflect: true,
|
|
196
|
+
attribute: 'description-truncated',
|
|
197
|
+
})
|
|
198
|
+
], PfProgress.prototype, "descriptionTruncated", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
property({ type: Number, reflect: true })
|
|
201
|
+
], PfProgress.prototype, "max", void 0);
|
|
202
|
+
__decorate([
|
|
203
|
+
property({ type: Number, reflect: true })
|
|
204
|
+
], PfProgress.prototype, "min", void 0);
|
|
205
|
+
__decorate([
|
|
206
|
+
property()
|
|
207
|
+
], PfProgress.prototype, "size", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
property({ attribute: 'measure-location' })
|
|
210
|
+
], PfProgress.prototype, "measureLocation", void 0);
|
|
211
|
+
__decorate([
|
|
212
|
+
property()
|
|
213
|
+
], PfProgress.prototype, "variant", void 0);
|
|
214
|
+
PfProgress = __decorate([
|
|
215
|
+
customElement('pf-progress')
|
|
216
|
+
], PfProgress);
|
|
217
|
+
export { PfProgress };
|
|
218
|
+
//# sourceMappingURL=pf-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-progress.js","sourceRoot":"","sources":["pf-progress.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyValues } from 'lit';\nimport { LitElement, html } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport styles from './pf-progress.css';\n\nconst ICONS = new Map(Object.entries({\n success: { icon: 'circle-check' },\n danger: { icon: 'circle-xmark' },\n warning: { icon: 'triangle-exclamation' }\n}));\n\n/**\n * A progress bar gives the user a visual representation of their completion status of an ongoing process or task.\n *\n * @summary Display completion status of ongoing process or task.\n *\n * @cssprop {<length>} --pf-c-progress--GridGap\n * Gap between the sections of the progress bar.\n * {@default `1rem`}\n *\n * @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor\n * Color of the progress bar.\n * {@default `#06c`}\n *\n * @cssprop {<length>} --pf-c-progress__bar--Height\n * Height of the progress bar.\n * {@default `1rem`}\n *\n * @cssprop {<color>} --pf-c-progress__bar--BackgroundColor\n * Background color of the progress bar.\n * {@default `#ffffff`}\n *\n * @cssprop {<color>} --pf-c-progress__status-icon--Color\n * Color of the status icon.\n * {@default `#151515`}\n *\n * @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft\n * Margin left of the status icon.\n * {@default `0.5rem`}\n *\n * @cssprop {<length>} --pf-c-progress__indicator--Height\n * Height of the progress bar indicator.\n * {@default `1rem`}\n *\n * @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor\n * Background color of the progress bar indicator.\n * {@default `#ffffff`}\n *\n * @cssprop {<color>} --pf-c-progress--m-success__bar--BackgroundColor\n * Background color of the progress bar when variant is success.\n * {@default `#3e8635`}\n *\n * @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor\n * Background color of the progress bar when variant is warning.\n * {@default `#f0ab00`}\n *\n * @cssprop {<color>} --pf-c-progress--m-danger__bar--BackgroundColor\n * Background color of the progress bar when variant is danger.\n * {@default `#c9190b`}\n *\n * @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color\n * Color of the status icon when variant is success.\n * {@default `#3e8635`}\n *\n * @cssprop {<color>} --pf-c-progress--m-warning__status-icon--Color\n * Color of the status icon when variant is warning.\n * {@default `#f0ab00`}\n *\n * @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color\n * Color of the status icon when variant is danger.\n * {@default `#c9190b`}\n *\n * @cssprop {<color>} --pf-c-progress--m-success--m-inside__measure--Color\n * Color of the progress bar measure when variant is success and measure location is inside.\n * {@default `#ffffff`}\n *\n * @cssprop {<length>} --pf-c-progress--m-outside__measure--FontSize\n * Font size of the progress bar measure when measure location is outside.\n * {@default `0.875rem`}\n *\n * @cssprop {<length>} --pf-c-progress--m-sm__bar--Height\n * Height of the progress bar when the size is small.\n * {@default `0.5rem`}\n *\n * @cssprop {<length>} --pf-c-progress--m-sm__description--FontSize\n * Font size of the progress bar description when the size is small.\n * {@default `0.875rem`}\n *\n * @cssprop {<length>} --pf-c-progress--m-lg__bar--Height\n * Height of the progress bar when the size is large.\n * {@default `1.5rem`}\n *\n */\n@customElement('pf-progress')\nexport class PfProgress extends LitElement {\n static readonly styles = [styles];\n\n #internals = this.attachInternals();\n\n /** Represents the value of the progress bar */\n @property({ reflect: true, type: Number }) value = 0;\n\n /** Description (title) above the progress bar */\n @property() description?: string;\n\n /** Indicate whether to truncate the string description (title) */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'description-truncated',\n }) descriptionTruncated = false;\n\n /** Maximum value for the progress bar */\n @property({ type: Number, reflect: true }) max = 100;\n\n /** Minimum value for the progress bar */\n @property({ type: Number, reflect: true }) min = 0;\n\n /** Size of the progress bar (height) */\n @property() size?: 'sm' | 'lg';\n\n /** Where the percentage will be displayed with the progress element */\n @property({ attribute: 'measure-location' }) measureLocation?: 'outside' | 'inside' | 'none';\n\n /** Variant of the progress bar */\n @property() variant?: 'success' | 'danger' | 'warning';\n\n get #calculatedPercentage(): number {\n const { value, min, max } = this;\n const percentage = Math.round((value - min) / (max - min) * 100);\n if (Number.isNaN(percentage) || percentage < 0) {\n return 0;\n }\n return Math.min(percentage, 100);\n }\n\n get #icon() {\n return ICONS.get(this.variant ?? '')?.icon;\n }\n\n override willUpdate(changed: PropertyValues<this>) {\n if (changed.has('value') || changed.has('min') || changed.has('max')) {\n this.#internals.ariaValueNow = this.#calculatedPercentage.toString();\n }\n if (this.#icon) {\n import('@patternfly/elements/pf-icon/pf-icon.js');\n }\n if (this.descriptionTruncated) {\n import('@patternfly/elements/pf-tooltip/pf-tooltip.js');\n }\n }\n\n render() {\n const { size, measureLocation, variant, description, descriptionTruncated } = this;\n const icon = this.#icon;\n const singleLine = description?.length === 0;\n const pct = this.#calculatedPercentage;\n const width = `${pct}%`;\n\n return html`\n <div id=\"container\" class=\"${classMap({\n [size ?? '']: !!size,\n [measureLocation ?? '']: !!measureLocation,\n [variant ?? '']: !!variant,\n singleLine,\n descriptionTruncated,\n })}\">\n\n <div id=\"description\" aria-hidden=\"true\">${description ?? ''}</div>\n\n ${!descriptionTruncated ? '' : html`\n <pf-tooltip content=\"${this.description ?? ''}\"\n trigger=\"description\"></pf-tooltip>\n `}\n\n ${measureLocation === 'none' ? '' : html`\n <div id=\"status\" aria-hidden=\"true\">\n ${measureLocation !== 'inside' ? '' : width}\n <pf-icon set=\"fas\"\n icon=\"${ifDefined(icon)}\"\n size=\"md\"\n ?hidden=\"${!icon}\"\n ></pf-icon>\n </div>\n `}\n\n <progress id=\"progress\"\n max=\"100\"\n value=\"${pct}\"\n aria-valuemin=\"0\"\n aria-valuenow=\"${pct}\"\n aria-valuemax=\"100\"\n ></progress>\n\n ${measureLocation !== 'inside' ? '' : html`\n <span id=\"progress-span\"\n style=\"${styleMap({ width })}\"\n data-value=\"${width}\"></span>\n `}\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-progress': PfProgress;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
var _PfProgressStep_slots, _PfProgressStep_internals;
|
|
1
2
|
var PfProgressStep_1;
|
|
2
|
-
import { __decorate } from "tslib";
|
|
3
|
+
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
3
4
|
import { LitElement, html } from 'lit';
|
|
4
5
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
5
6
|
import { property } from 'lit/decorators/property.js';
|
|
@@ -29,17 +30,13 @@ let PfProgressStep = PfProgressStep_1 = class PfProgressStep extends LitElement
|
|
|
29
30
|
super(...arguments);
|
|
30
31
|
/** Indicates if this item is the current active item. */
|
|
31
32
|
this.current = false;
|
|
32
|
-
this
|
|
33
|
-
this
|
|
33
|
+
_PfProgressStep_slots.set(this, new SlotController(this, 'title', 'description'));
|
|
34
|
+
_PfProgressStep_internals.set(this, new InternalsController(this, {
|
|
34
35
|
role: 'listitem',
|
|
35
|
-
});
|
|
36
|
+
}));
|
|
36
37
|
}
|
|
37
|
-
static { this.parentTagName = 'pf-progress-stepper'; }
|
|
38
|
-
static { this.styles = [style]; }
|
|
39
|
-
#slots;
|
|
40
|
-
#internals;
|
|
41
38
|
render() {
|
|
42
|
-
const hasDescription = !!this.description ?? this
|
|
39
|
+
const hasDescription = !!this.description ?? __classPrivateFieldGet(this, _PfProgressStep_slots, "f").hasSlotted('description');
|
|
43
40
|
const icon = this.icon ?? ICONS.get(this.variant ?? 'default')?.icon;
|
|
44
41
|
const set = this.iconSet ?? ICONS.get(this.variant ?? 'default')?.set;
|
|
45
42
|
const { parentTagName } = this.constructor;
|
|
@@ -61,10 +58,14 @@ let PfProgressStep = PfProgressStep_1 = class PfProgressStep extends LitElement
|
|
|
61
58
|
updated(changed) {
|
|
62
59
|
super.updated?.(changed);
|
|
63
60
|
if (changed.has('current')) {
|
|
64
|
-
this
|
|
61
|
+
__classPrivateFieldGet(this, _PfProgressStep_internals, "f").ariaCurrent = String(!!this.current);
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
};
|
|
65
|
+
_PfProgressStep_slots = new WeakMap();
|
|
66
|
+
_PfProgressStep_internals = new WeakMap();
|
|
67
|
+
PfProgressStep.parentTagName = 'pf-progress-stepper';
|
|
68
|
+
PfProgressStep.styles = [style];
|
|
68
69
|
__decorate([
|
|
69
70
|
property()
|
|
70
71
|
], PfProgressStep.prototype, "description", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-progress-step.js","sourceRoot":"","sources":["pf-progress-step.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pf-progress-step.js","sourceRoot":"","sources":["pf-progress-step.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyValues } from 'lit';\nimport type { PfProgressStepper } from './pf-progress-stepper.js';\n\nimport { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { SlotController } from '@patternfly/pfe-core/controllers/slot-controller.js';\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-progress-step.css';\n\nconst ICONS = new Map(Object.entries({\n success: { icon: 'circle-check' },\n danger: { icon: 'circle-exclamation' },\n warning: { icon: 'triangle-exclamation' },\n info: { icon: 'resources-full', set: 'patternfly' },\n}));\n\n/**\n * @slot -\n * Short description of the current step.\n * @slot description\n * Longer description of the current step.\n * @slot icon\n * Overrides the icon property\n *\n */\n@customElement('pf-progress-step')\nexport class PfProgressStep extends LitElement {\n protected static parentTagName = 'pf-progress-stepper';\n\n static readonly styles = [style];\n\n /** Optional extended description of the step */\n @property() description?: string;\n\n /** Step Icon */\n @property() icon?: string;\n\n /** Step icon set */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Describes the state of the current item */\n @property({ reflect: true }) variant?: 'pending' | 'info' | 'success' | 'warning' | 'danger';\n\n /** Indicates if this item is the current active item. */\n @property({ type: Boolean, reflect: true }) current = false;\n\n #slots = new SlotController(this, 'title', 'description');\n\n #internals = new InternalsController(this, {\n role: 'listitem',\n });\n\n render() {\n const hasDescription = !!this.description ?? this.#slots.hasSlotted('description');\n const icon = this.icon ?? ICONS.get(this.variant ?? 'default')?.icon;\n const set = this.iconSet ?? ICONS.get(this.variant ?? 'default')?.set;\n const { parentTagName } = (this.constructor as typeof PfProgressStep);\n const { compact = false } = this.closest<PfProgressStepper>(parentTagName) ?? {};\n return html`\n <div id=\"connector\" class=\"${classMap({ compact })}\">\n <slot id=\"icon\" name=\"icon\">\n <pf-icon ?hidden=\"${!icon}\"\n icon=\"${ifDefined(icon)}\"\n set=\"${ifDefined(set)}\"></pf-icon>\n </slot>\n </div>\n <div id=\"main\" class=\"${classMap({ compact })}\">\n <slot id=\"title\"></slot>\n <slot id=\"description\" name=\"description\" ?hidden=\"${!hasDescription}\">${this.description}</slot>\n </div>\n `;\n }\n\n updated(changed: PropertyValues<this>) {\n super.updated?.(changed);\n if (changed.has('current')) {\n this.#internals.ariaCurrent = String(!!this.current);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-progress-step': PfProgressStep;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
var _PfProgressStepper_instances, _PfProgressStepper_internals, _PfProgressStepper_mo, _PfProgressStepper_onMutation;
|
|
1
2
|
var PfProgressStepper_1;
|
|
2
|
-
import { __decorate } from "tslib";
|
|
3
|
+
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
3
4
|
import { LitElement, html } from 'lit';
|
|
4
5
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
5
6
|
import { property } from 'lit/decorators/property.js';
|
|
@@ -13,11 +14,6 @@ import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
|
13
14
|
* A **progress stepper** displays a timeline of tasks in a workflow and tracks the user's current progress through this workflow.
|
|
14
15
|
*/
|
|
15
16
|
let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends LitElement {
|
|
16
|
-
static { this.childTagName = 'pf-progress-step'; }
|
|
17
|
-
static { this.styles = [style]; }
|
|
18
|
-
static { this.formAssociated = true; }
|
|
19
|
-
#internals;
|
|
20
|
-
#mo;
|
|
21
17
|
get value() {
|
|
22
18
|
const { childTagName } = this.constructor;
|
|
23
19
|
const steps = this.querySelectorAll(childTagName);
|
|
@@ -27,21 +23,19 @@ let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends Li
|
|
|
27
23
|
}
|
|
28
24
|
constructor() {
|
|
29
25
|
super();
|
|
26
|
+
_PfProgressStepper_instances.add(this);
|
|
30
27
|
/** Whether to use the vertical layout */
|
|
31
28
|
this.vertical = false;
|
|
32
29
|
/** Whether to use the center alignment */
|
|
33
30
|
this.center = false;
|
|
34
31
|
/** Whether to use the compact layout */
|
|
35
32
|
this.compact = false;
|
|
36
|
-
this
|
|
33
|
+
_PfProgressStepper_internals.set(this, new InternalsController(this, {
|
|
37
34
|
role: 'progressbar',
|
|
38
35
|
ariaValueNow: this.value.toString(),
|
|
39
|
-
});
|
|
40
|
-
this
|
|
41
|
-
this
|
|
42
|
-
}
|
|
43
|
-
#onMutation() {
|
|
44
|
-
this.#internals.ariaValueNow = this.value.toString();
|
|
36
|
+
}));
|
|
37
|
+
_PfProgressStepper_mo.set(this, new MutationObserver(() => __classPrivateFieldGet(this, _PfProgressStepper_instances, "m", _PfProgressStepper_onMutation).call(this)));
|
|
38
|
+
__classPrivateFieldGet(this, _PfProgressStepper_mo, "f").observe(this, { childList: true });
|
|
45
39
|
}
|
|
46
40
|
render() {
|
|
47
41
|
return html `
|
|
@@ -49,6 +43,15 @@ let PfProgressStepper = PfProgressStepper_1 = class PfProgressStepper extends Li
|
|
|
49
43
|
`;
|
|
50
44
|
}
|
|
51
45
|
};
|
|
46
|
+
_PfProgressStepper_internals = new WeakMap();
|
|
47
|
+
_PfProgressStepper_mo = new WeakMap();
|
|
48
|
+
_PfProgressStepper_instances = new WeakSet();
|
|
49
|
+
_PfProgressStepper_onMutation = function _PfProgressStepper_onMutation() {
|
|
50
|
+
__classPrivateFieldGet(this, _PfProgressStepper_internals, "f").ariaValueNow = this.value.toString();
|
|
51
|
+
};
|
|
52
|
+
PfProgressStepper.childTagName = 'pf-progress-step';
|
|
53
|
+
PfProgressStepper.styles = [style];
|
|
54
|
+
PfProgressStepper.formAssociated = true;
|
|
52
55
|
__decorate([
|
|
53
56
|
property({ type: Boolean, reflect: true })
|
|
54
57
|
], PfProgressStepper.prototype, "vertical", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-progress-stepper.js","sourceRoot":"","sources":["pf-progress-stepper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pf-progress-stepper.js","sourceRoot":"","sources":["pf-progress-stepper.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;;;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAE/F,OAAO,yCAAyC,CAAC;AAEjD;;GAEG;AAEH,IAAa,iBAAiB,yBAA9B,MAAa,iBAAkB,SAAQ,UAAU;IA2B/C,IAAI,KAAK;QACP,MAAM,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,WAAwC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAiB,YAAY,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAyB,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAClC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;;QA7BV,yCAAyC;QACG,aAAQ,GAAG,KAAK,CAAC;QAE7D,0CAA0C;QACE,WAAM,GAAG,KAAK,CAAC;QAE3D,wCAAwC;QAKI,YAAO,GAAG,KAAK,CAAC;QAE5D,uCAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE;YACzC,IAAI,EAAE,aAAa;YACnB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;SACpC,CAAC,EAAC;QAEH,gCAAM,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,uBAAA,IAAI,mEAAY,MAAhB,IAAI,CAAc,CAAC,EAAC;QAYnD,uBAAA,IAAI,6BAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAMD,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;;;;;;IAPC,uBAAA,IAAI,oCAAW,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvD,CAAC;AAzCgB,8BAAY,GAAG,kBAAkB,AAArB,CAAsB;AAEnC,wBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAE1B,gCAAc,GAAG,IAAI,AAAP,CAAQ;AAGe;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAAkB;AAGjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAgB;AAOf;IAJ3C,QAAQ,CAAC;QACR,MAAM,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,WAAwC,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAiB,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IACD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAiB;AAlBjD,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAiD7B;SAjDY,iBAAiB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { observed } from '@patternfly/pfe-core/decorators/observed.js';\n\nimport style from './pf-progress-stepper.css';\n\nimport { PfProgressStep } from './pf-progress-step.js';\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\n/**\n * A **progress stepper** displays a timeline of tasks in a workflow and tracks the user's current progress through this workflow.\n */\n@customElement('pf-progress-stepper')\nexport class PfProgressStepper extends LitElement {\n protected static childTagName = 'pf-progress-step';\n\n static readonly styles = [style];\n\n static formAssociated = true;\n\n /** Whether to use the vertical layout */\n @property({ type: Boolean, reflect: true }) vertical = false;\n\n /** Whether to use the center alignment */\n @property({ type: Boolean, reflect: true }) center = false;\n\n /** Whether to use the compact layout */\n @observed(function(this: PfProgressStepper) {\n const { childTagName } = (this.constructor as typeof PfProgressStepper);\n this.querySelectorAll<PfProgressStep>(childTagName).forEach(step => step.requestUpdate());\n })\n @property({ type: Boolean, reflect: true }) compact = false;\n\n #internals = new InternalsController(this, {\n role: 'progressbar',\n ariaValueNow: this.value.toString(),\n });\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n get value() {\n const { childTagName } = (this.constructor as typeof PfProgressStepper);\n const steps = this.querySelectorAll<PfProgressStep>(childTagName);\n const current = this.querySelector(`${childTagName}[current]`);\n const n = Array.from(steps).indexOf(current as PfProgressStep) + 1;\n return (n / steps.length) * 100;\n }\n\n constructor() {\n super();\n this.#mo.observe(this, { childList: true });\n }\n\n #onMutation() {\n this.#internals.ariaValueNow = this.value.toString();\n }\n\n render() {\n return html`\n <slot role=\"listbox\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-progress-stepper': PfProgressStepper;\n }\n}\n"]}
|
|
@@ -27,7 +27,6 @@ class BaseSpinner extends LitElement {
|
|
|
27
27
|
/** Preset sizes for the spinner */
|
|
28
28
|
this.size = 'xl';
|
|
29
29
|
}
|
|
30
|
-
static { this.styles = [styles]; }
|
|
31
30
|
render() {
|
|
32
31
|
return html `
|
|
33
32
|
<svg role="progressbar" viewBox="0 0 100 100">
|
|
@@ -36,6 +35,7 @@ class BaseSpinner extends LitElement {
|
|
|
36
35
|
`;
|
|
37
36
|
}
|
|
38
37
|
}
|
|
38
|
+
BaseSpinner.styles = [styles];
|
|
39
39
|
__decorate([
|
|
40
40
|
property({ reflect: true })
|
|
41
41
|
], BaseSpinner.prototype, "size", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSpinner.js","sourceRoot":"","sources":["BaseSpinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAWtD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAsB,WAAY,SAAQ,UAAU;IAApD;;QAGE,mCAAmC;QACN,SAAI,GAAgB,IAAI,CAAC;IAYxD,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseSpinner.js","sourceRoot":"","sources":["BaseSpinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;;AAWtD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAsB,WAAY,SAAQ,UAAU;IAApD;;QAGE,mCAAmC;QACN,SAAI,GAAgB,IAAI,CAAC;IAYxD,CAAC;IAPU,MAAM;QACb,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAde,kBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAGL;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAA0B;AAGzB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkE;SAP1E,WAAW","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\n\nimport styles from './BaseSpinner.css';\n\nexport type SpinnerSize = (\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n);\n\n/**\n * Base spinner class\n *\n * @cssprop {<length>} --pf-c-spinner--diameter {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Width {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Height {@default `3.375rem`}\n * @cssprop {<color>} --pf-c-spinner--Color {@default `#06c`}\n * @cssprop {<length>} --pf-c-spinner--m-sm--diameter {@default `0.625rem`}\n * @cssprop {<length>} --pf-c-spinner--m-md--diameter {@default `1.125rem`}\n * @cssprop {<length>} --pf-c-spinner--m-lg--diameter {@default `1.5rem`}\n * @cssprop {<length>} --pf-c-spinner--m-xl--diameter {@default `3.375rem`}\n * @cssprop {<time>} --pf-c-spinner--AnimationDuration {@default `1.4s`}\n * @cssprop {<string>} --pf-c-spinner--AnimationTimingFunction {@default `linear`}\n * @cssprop {<number>} --pf-c-spinner--stroke-width {@default `10`}\n * @cssprop {<color>} --pf-c-spinner__path--Stroke {@default `#06c`}\n * @cssprop {<number>} --pf-c-spinner__path--StrokeWidth {@default `10`}\n * @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}\n */\n\nexport abstract class BaseSpinner extends LitElement {\n static readonly styles = [styles];\n\n /** Preset sizes for the spinner */\n @property({ reflect: true }) size: SpinnerSize = 'xl';\n\n /** Custom diameter of spinner set as CSS variable */\n @property({ reflect: true }) diameter?: `${string}${'px' | '%' | 'rem' | 'em' | 'fr' | 'pt'}`;\n\n override render() {\n return html`\n <svg role=\"progressbar\" viewBox=\"0 0 100 100\">\n <circle cx=\"50\" cy=\"50\" r=\"45\" fill=\"none\" />\n </svg>\n `;\n }\n}\n"]}
|
package/pf-spinner/pf-spinner.js
CHANGED
|
@@ -25,11 +25,11 @@ const styles = css `[hidden]{display:none!important}div{display:contents}svg{wid
|
|
|
25
25
|
* @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}
|
|
26
26
|
*/
|
|
27
27
|
let PfSpinner = class PfSpinner extends BaseSpinner {
|
|
28
|
-
static { this.styles = [...BaseSpinner.styles, styles]; }
|
|
29
28
|
render() {
|
|
30
29
|
return html `<div style=${styleMap({ '--pf-c-spinner--diameter': this.diameter })}>${super.render()}</div>`;
|
|
31
30
|
}
|
|
32
31
|
};
|
|
32
|
+
PfSpinner.styles = [...BaseSpinner.styles, styles];
|
|
33
33
|
PfSpinner = __decorate([
|
|
34
34
|
customElement('pf-spinner')
|
|
35
35
|
], PfSpinner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-spinner.js","sourceRoot":"","sources":["pf-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;;;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AAGH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"pf-spinner.js","sourceRoot":"","sources":["pf-spinner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;;;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AAGH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IAExC,MAAM;QACJ,OAAO,IAAI,CAAA,cAAc,QAAQ,CAAC,EAAE,0BAA0B,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC7G,CAAC;;AAHe,gBAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAAlC,CAAmC;AAD9C,SAAS;IADrB,aAAa,CAAC,YAAY,CAAC;GACf,SAAS,CAKrB;SALY,SAAS","sourcesContent":["import { html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport { BaseSpinner } from './BaseSpinner.js';\nimport styles from './pf-spinner.css';\n\n/**\n * A **spinner** is used to indicate to users that an action is in progress. For actions\n * that may take a long time, use a progress bar instead.\n *\n * @cssprop {<length>} --pf-c-spinner--diameter {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Width {@default `3.375rem`}\n * @cssprop {<length>} --pf-c-spinner--Height {@default `3.375rem`}\n * @cssprop {<color>} --pf-c-spinner--Color {@default `#06c`}\n * @cssprop {<length>} --pf-c-spinner--m-sm--diameter {@default `0.625rem`}\n * @cssprop {<length>} --pf-c-spinner--m-md--diameter {@default `1.125rem`}\n * @cssprop {<length>} --pf-c-spinner--m-lg--diameter {@default `1.5rem`}\n * @cssprop {<length>} --pf-c-spinner--m-xl--diameter {@default `3.375rem`}\n * @cssprop {<time>} --pf-c-spinner--AnimationDuration {@default `1.4s`}\n * @cssprop {<string>} --pf-c-spinner--AnimationTimingFunction {@default `linear`}\n * @cssprop {<number>} --pf-c-spinner--stroke-width {@default `10`}\n * @cssprop {<color>} --pf-c-spinner__path--Stroke {@default `#06c`}\n * @cssprop {<number>} --pf-c-spinner__path--StrokeWidth {@default `10`}\n * @cssprop {<string>} --pf-c-spinner__path--AnimationTimingFunction {@default `ease-in-out`}\n */\n\n@customElement('pf-spinner')\nexport class PfSpinner extends BaseSpinner {\n static readonly styles = [...BaseSpinner.styles, styles];\n render() {\n return html`<div style=${styleMap({ '--pf-c-spinner--diameter': this.diameter })}>${super.render()}</div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-spinner': PfSpinner;\n }\n}\n"]}
|