@patternfly/elements 3.0.0 → 3.0.2
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 +490 -484
- package/package.json +1 -1
- package/pf-accordion/BaseAccordion.js +2 -1
- package/pf-accordion/BaseAccordion.js.map +1 -1
- package/pf-accordion/BaseAccordionHeader.js +4 -1
- package/pf-accordion/BaseAccordionHeader.js.map +1 -1
- package/pf-accordion/BaseAccordionPanel.d.ts +1 -1
- package/pf-accordion/pf-accordion-header.d.ts +1 -1
- package/pf-accordion/pf-accordion.d.ts +0 -5
- package/pf-accordion/pf-accordion.js +0 -5
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-accordion/test/pf-accordion.e2e.d.ts +1 -0
- package/pf-accordion/test/pf-accordion.e2e.js +11 -0
- package/pf-accordion/test/pf-accordion.e2e.js.map +1 -0
- package/pf-accordion/test/pf-accordion.spec.d.ts +1 -0
- package/pf-accordion/test/pf-accordion.spec.js +1222 -0
- package/pf-accordion/test/pf-accordion.spec.js.map +1 -0
- package/pf-avatar/BaseAvatar.d.ts +1 -1
- package/pf-avatar/test/pf-avatar.e2e.d.ts +1 -0
- package/pf-avatar/test/pf-avatar.e2e.js +11 -0
- package/pf-avatar/test/pf-avatar.e2e.js.map +1 -0
- package/pf-avatar/test/pf-avatar.spec.d.ts +1 -0
- package/pf-avatar/test/pf-avatar.spec.js +45 -0
- package/pf-avatar/test/pf-avatar.spec.js.map +1 -0
- package/pf-back-to-top/demo/demo.css +25 -0
- package/pf-back-to-top/pf-back-to-top.d.ts +1 -1
- package/pf-back-to-top/test/pf-back-to-top.e2e.d.ts +1 -0
- package/pf-back-to-top/test/pf-back-to-top.e2e.js +11 -0
- package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -0
- package/pf-back-to-top/test/pf-back-to-top.spec.d.ts +1 -0
- package/pf-back-to-top/test/pf-back-to-top.spec.js +267 -0
- package/pf-back-to-top/test/pf-back-to-top.spec.js.map +1 -0
- package/pf-background-image/pf-background-image.d.ts +1 -4
- package/pf-background-image/pf-background-image.js +1 -4
- package/pf-background-image/pf-background-image.js.map +1 -1
- package/pf-background-image/test/pf-background-image.e2e.d.ts +1 -0
- package/pf-background-image/test/pf-background-image.e2e.js +11 -0
- package/pf-background-image/test/pf-background-image.e2e.js.map +1 -0
- package/pf-background-image/test/pf-background-image.spec.d.ts +1 -0
- package/pf-background-image/test/pf-background-image.spec.js +89 -0
- package/pf-background-image/test/pf-background-image.spec.js.map +1 -0
- package/pf-badge/BaseBadge.d.ts +1 -1
- package/pf-badge/test/pf-badge.e2e.d.ts +1 -0
- package/pf-badge/test/pf-badge.e2e.js +11 -0
- package/pf-badge/test/pf-badge.e2e.js.map +1 -0
- package/pf-badge/test/pf-badge.spec.d.ts +1 -0
- package/pf-badge/test/pf-badge.spec.js +52 -0
- package/pf-badge/test/pf-badge.spec.js.map +1 -0
- package/pf-banner/pf-banner.d.ts +1 -10
- package/pf-banner/pf-banner.js +0 -9
- package/pf-banner/pf-banner.js.map +1 -1
- package/pf-banner/test/pf-banner.e2e.d.ts +1 -0
- package/pf-banner/test/pf-banner.e2e.js +11 -0
- package/pf-banner/test/pf-banner.e2e.js.map +1 -0
- package/pf-banner/test/pf-banner.spec.d.ts +1 -0
- package/pf-banner/test/pf-banner.spec.js +81 -0
- package/pf-banner/test/pf-banner.spec.js.map +1 -0
- package/pf-button/BaseButton.d.ts +7 -2
- package/pf-button/BaseButton.js +4 -1
- package/pf-button/BaseButton.js.map +1 -1
- package/pf-button/pf-button.d.ts +1 -17
- package/pf-button/pf-button.js +10 -18
- package/pf-button/pf-button.js.map +1 -1
- package/pf-button/test/pf-button.e2e.d.ts +1 -0
- package/pf-button/test/pf-button.e2e.js +11 -0
- package/pf-button/test/pf-button.e2e.js.map +1 -0
- package/pf-button/test/pf-button.spec.d.ts +1 -0
- package/pf-button/test/pf-button.spec.js +124 -0
- package/pf-button/test/pf-button.spec.js.map +1 -0
- package/pf-card/BaseCard.d.ts +1 -1
- package/pf-card/test/pf-card.e2e.d.ts +1 -0
- package/pf-card/test/pf-card.e2e.js +11 -0
- package/pf-card/test/pf-card.e2e.js.map +1 -0
- package/pf-card/test/pf-card.spec.d.ts +1 -0
- package/pf-card/test/pf-card.spec.js +160 -0
- package/pf-card/test/pf-card.spec.js.map +1 -0
- package/pf-chip/pf-chip-group.d.ts +8 -5
- package/pf-chip/pf-chip-group.js +10 -10
- package/pf-chip/pf-chip-group.js.map +1 -1
- package/pf-chip/pf-chip.d.ts +8 -5
- package/pf-chip/pf-chip.js +4 -4
- package/pf-chip/pf-chip.js.map +1 -1
- package/pf-chip/test/pf-chip-group.spec.d.ts +1 -0
- package/pf-chip/test/pf-chip-group.spec.js +189 -0
- package/pf-chip/test/pf-chip-group.spec.js.map +1 -0
- package/pf-chip/test/pf-chip.e2e.d.ts +1 -0
- package/pf-chip/test/pf-chip.e2e.js +11 -0
- package/pf-chip/test/pf-chip.e2e.js.map +1 -0
- package/pf-chip/test/pf-chip.spec.d.ts +1 -0
- package/pf-chip/test/pf-chip.spec.js +116 -0
- package/pf-chip/test/pf-chip.spec.js.map +1 -0
- package/pf-clipboard-copy/pf-clipboard-copy.css +4 -0
- package/pf-clipboard-copy/pf-clipboard-copy.d.ts +8 -3
- package/pf-clipboard-copy/pf-clipboard-copy.js +6 -4
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.d.ts +1 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +11 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.spec.d.ts +1 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.spec.js +103 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.spec.js.map +1 -0
- package/pf-code-block/BaseCodeBlock.js +2 -2
- package/pf-code-block/BaseCodeBlock.js.map +1 -1
- package/pf-code-block/pf-code-block.d.ts +1 -1
- package/pf-code-block/test/pf-code-block.e2e.d.ts +1 -0
- package/pf-code-block/test/pf-code-block.e2e.js +11 -0
- package/pf-code-block/test/pf-code-block.e2e.js.map +1 -0
- package/pf-code-block/test/pf-code-block.spec.d.ts +1 -0
- package/pf-code-block/test/pf-code-block.spec.js +89 -0
- package/pf-code-block/test/pf-code-block.spec.js.map +1 -0
- package/pf-dropdown/pf-dropdown-group.d.ts +1 -1
- package/pf-dropdown/pf-dropdown-group.js +4 -1
- package/pf-dropdown/pf-dropdown-group.js.map +1 -1
- package/pf-dropdown/pf-dropdown-item.d.ts +1 -2
- package/pf-dropdown/pf-dropdown-item.js +4 -2
- package/pf-dropdown/pf-dropdown-item.js.map +1 -1
- package/pf-dropdown/pf-dropdown-menu.d.ts +1 -2
- package/pf-dropdown/pf-dropdown-menu.js +8 -6
- package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
- package/pf-dropdown/pf-dropdown.d.ts +8 -6
- package/pf-dropdown/pf-dropdown.js +11 -11
- package/pf-dropdown/pf-dropdown.js.map +1 -1
- package/pf-dropdown/test/pf-dropdown.e2e.d.ts +1 -0
- package/pf-dropdown/test/pf-dropdown.e2e.js +11 -0
- package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -0
- package/pf-dropdown/test/pf-dropdown.spec.d.ts +1 -0
- package/pf-dropdown/test/pf-dropdown.spec.js +129 -0
- package/pf-dropdown/test/pf-dropdown.spec.js.map +1 -0
- package/pf-icon/BaseIcon.d.ts +1 -2
- package/pf-icon/BaseIcon.js +3 -4
- package/pf-icon/BaseIcon.js.map +1 -1
- package/pf-icon/demo/icons/rh/boba-tea.js +5 -0
- package/pf-icon/demo/icons/rh/lifecycle.js +3 -0
- package/pf-icon/test/pf-icon.e2e.d.ts +1 -0
- package/pf-icon/test/pf-icon.e2e.js +11 -0
- package/pf-icon/test/pf-icon.e2e.js.map +1 -0
- package/pf-icon/test/pf-icon.spec.d.ts +1 -0
- package/pf-icon/test/pf-icon.spec.js +130 -0
- package/pf-icon/test/pf-icon.spec.js.map +1 -0
- package/pf-icon/test/rh-icon-aed.js +2 -0
- package/pf-icon/test/rh-icon-api.js +2 -0
- package/pf-icon/test/rh-icon-atom.js +2 -0
- package/pf-icon/test/rh-icon-bike.js +2 -0
- package/pf-jump-links/pf-jump-links-item.d.ts +8 -2
- package/pf-jump-links/pf-jump-links-item.js +4 -1
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.d.ts +1 -1
- package/pf-jump-links/pf-jump-links.d.ts +1 -7
- package/pf-jump-links/pf-jump-links.js +1 -7
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-jump-links/test/pf-jump-links.e2e.d.ts +1 -0
- package/pf-jump-links/test/pf-jump-links.e2e.js +11 -0
- package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -0
- package/pf-jump-links/test/pf-jump-links.spec.d.ts +1 -0
- package/pf-jump-links/test/pf-jump-links.spec.js +85 -0
- package/pf-jump-links/test/pf-jump-links.spec.js.map +1 -0
- package/pf-label/BaseLabel.d.ts +1 -1
- package/pf-label/pf-label.d.ts +10 -24
- package/pf-label/pf-label.js +4 -21
- package/pf-label/pf-label.js.map +1 -1
- package/pf-label/test/pf-label.e2e.d.ts +1 -0
- package/pf-label/test/pf-label.e2e.js +11 -0
- package/pf-label/test/pf-label.e2e.js.map +1 -0
- package/pf-label/test/pf-label.spec.d.ts +1 -0
- package/pf-label/test/pf-label.spec.js +111 -0
- package/pf-label/test/pf-label.spec.js.map +1 -0
- package/pf-modal/pf-modal.d.ts +1 -6
- package/pf-modal/pf-modal.js +6 -8
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-modal/test/pf-modal.e2e.d.ts +1 -0
- package/pf-modal/test/pf-modal.e2e.js +13 -0
- package/pf-modal/test/pf-modal.e2e.js.map +1 -0
- package/pf-modal/test/pf-modal.spec.d.ts +1 -0
- package/pf-modal/test/pf-modal.spec.js +197 -0
- package/pf-modal/test/pf-modal.spec.js.map +1 -0
- package/pf-panel/pf-panel.d.ts +1 -1
- package/pf-panel/test/pf-panel.e2e.d.ts +1 -0
- package/pf-panel/test/pf-panel.e2e.js +11 -0
- package/pf-panel/test/pf-panel.e2e.js.map +1 -0
- package/pf-panel/test/pf-panel.spec.d.ts +1 -0
- package/pf-panel/test/pf-panel.spec.js +22 -0
- package/pf-panel/test/pf-panel.spec.js.map +1 -0
- package/pf-popover/pf-popover.d.ts +1 -5
- package/pf-popover/pf-popover.js +12 -7
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-popover/test/pf-popover.e2e.d.ts +1 -0
- package/pf-popover/test/pf-popover.e2e.js +11 -0
- package/pf-popover/test/pf-popover.e2e.js.map +1 -0
- package/pf-popover/test/pf-popover.spec.d.ts +1 -0
- package/pf-popover/test/pf-popover.spec.js +233 -0
- package/pf-popover/test/pf-popover.spec.js.map +1 -0
- package/pf-progress/demo/kitchen-sink.css +4 -0
- package/pf-progress/pf-progress.d.ts +1 -22
- package/pf-progress/pf-progress.js +1 -22
- package/pf-progress/pf-progress.js.map +1 -1
- package/pf-progress/test/pf-progress.e2e.d.ts +1 -0
- package/pf-progress/test/pf-progress.e2e.js +11 -0
- package/pf-progress/test/pf-progress.e2e.js.map +1 -0
- package/pf-progress/test/pf-progress.spec.d.ts +1 -0
- package/pf-progress/test/pf-progress.spec.js +45 -0
- package/pf-progress/test/pf-progress.spec.js.map +1 -0
- package/pf-progress-stepper/pf-progress-step.d.ts +1 -1
- package/pf-progress-stepper/pf-progress-stepper.d.ts +1 -1
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.d.ts +1 -0
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +11 -0
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -0
- package/pf-progress-stepper/test/pf-progress-stepper.spec.d.ts +1 -0
- package/pf-progress-stepper/test/pf-progress-stepper.spec.js +18 -0
- package/pf-progress-stepper/test/pf-progress-stepper.spec.js.map +1 -0
- package/pf-select/pf-option-group.d.ts +1 -1
- package/pf-select/pf-option-group.js +2 -0
- package/pf-select/pf-option-group.js.map +1 -1
- package/pf-select/pf-option.d.ts +1 -2
- package/pf-select/pf-option.js +3 -4
- package/pf-select/pf-option.js.map +1 -1
- package/pf-select/pf-select.d.ts +8 -3
- package/pf-select/pf-select.js +51 -21
- package/pf-select/pf-select.js.map +1 -1
- package/pf-select/test/pf-select.e2e.d.ts +1 -0
- package/pf-select/test/pf-select.e2e.js +11 -0
- package/pf-select/test/pf-select.e2e.js.map +1 -0
- package/pf-select/test/pf-select.spec.d.ts +1 -0
- package/pf-select/test/pf-select.spec.js +866 -0
- package/pf-select/test/pf-select.spec.js.map +1 -0
- package/pf-spinner/BaseSpinner.d.ts +1 -2
- package/pf-spinner/BaseSpinner.js +2 -4
- package/pf-spinner/BaseSpinner.js.map +1 -1
- package/pf-spinner/pf-spinner.d.ts +2 -2
- package/pf-spinner/pf-spinner.js +8 -1
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-spinner/test/pf-spinner.e2e.d.ts +1 -0
- package/pf-spinner/test/pf-spinner.e2e.js +11 -0
- package/pf-spinner/test/pf-spinner.e2e.js.map +1 -0
- package/pf-spinner/test/pf-spinner.spec.d.ts +1 -0
- package/pf-spinner/test/pf-spinner.spec.js +64 -0
- package/pf-spinner/test/pf-spinner.spec.js.map +1 -0
- package/pf-switch/BaseSwitch.d.ts +1 -1
- package/pf-switch/BaseSwitch.js +3 -3
- package/pf-switch/BaseSwitch.js.map +1 -1
- package/pf-switch/test/pf-switch.e2e.d.ts +1 -0
- package/pf-switch/test/pf-switch.e2e.js +11 -0
- package/pf-switch/test/pf-switch.e2e.js.map +1 -0
- package/pf-switch/test/pf-switch.spec.d.ts +1 -0
- package/pf-switch/test/pf-switch.spec.js +191 -0
- package/pf-switch/test/pf-switch.spec.js.map +1 -0
- package/pf-table/pf-caption.d.ts +1 -1
- package/pf-table/pf-table.d.ts +1 -3
- package/pf-table/pf-table.js +2 -4
- package/pf-table/pf-table.js.map +1 -1
- package/pf-table/pf-tbody.d.ts +1 -1
- package/pf-table/pf-td.d.ts +1 -1
- package/pf-table/pf-th.d.ts +1 -1
- package/pf-table/pf-th.js +3 -3
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.d.ts +1 -1
- package/pf-table/pf-tr.d.ts +1 -1
- package/pf-table/pf-tr.js +4 -4
- package/pf-table/pf-tr.js.map +1 -1
- package/pf-table/test/pf-table.e2e.d.ts +1 -0
- package/pf-table/test/pf-table.e2e.js +11 -0
- package/pf-table/test/pf-table.e2e.js.map +1 -0
- package/pf-table/test/pf-table.spec.d.ts +1 -0
- package/pf-table/test/pf-table.spec.js +17 -0
- package/pf-table/test/pf-table.spec.js.map +1 -0
- package/pf-tabs/BaseTab.d.ts +2 -2
- package/pf-tabs/BaseTab.js +4 -1
- package/pf-tabs/BaseTab.js.map +1 -1
- package/pf-tabs/BaseTabPanel.d.ts +1 -1
- package/pf-tabs/BaseTabs.d.ts +1 -3
- package/pf-tabs/BaseTabs.js +11 -12
- package/pf-tabs/BaseTabs.js.map +1 -1
- package/pf-tabs/pf-tab-panel.d.ts +1 -1
- package/pf-tabs/pf-tab.d.ts +1 -17
- package/pf-tabs/pf-tab.js +0 -16
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.d.ts +1 -12
- package/pf-tabs/pf-tabs.js +2 -13
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-tabs/test/pf-tabs.e2e.d.ts +1 -0
- package/pf-tabs/test/pf-tabs.e2e.js +13 -0
- package/pf-tabs/test/pf-tabs.e2e.js.map +1 -0
- package/pf-tabs/test/pf-tabs.spec.d.ts +1 -0
- package/pf-tabs/test/pf-tabs.spec.js +285 -0
- package/pf-tabs/test/pf-tabs.spec.js.map +1 -0
- package/pf-text-area/pf-text-area.d.ts +1 -2
- package/pf-text-area/pf-text-area.js +5 -5
- package/pf-text-area/pf-text-area.js.map +1 -1
- package/pf-text-area/test/pf-text-area.e2e.d.ts +1 -0
- package/pf-text-area/test/pf-text-area.e2e.js +11 -0
- package/pf-text-area/test/pf-text-area.e2e.js.map +1 -0
- package/pf-text-area/test/pf-text-area.spec.d.ts +1 -0
- package/pf-text-area/test/pf-text-area.spec.js +89 -0
- package/pf-text-area/test/pf-text-area.spec.js.map +1 -0
- package/pf-text-input/demo/demo.css +6 -0
- package/pf-text-input/pf-text-input.d.ts +8 -3
- package/pf-text-input/pf-text-input.js +4 -2
- package/pf-text-input/pf-text-input.js.map +1 -1
- package/pf-text-input/test/pf-text-input.e2e.d.ts +1 -0
- package/pf-text-input/test/pf-text-input.e2e.js +11 -0
- package/pf-text-input/test/pf-text-input.e2e.js.map +1 -0
- package/pf-text-input/test/pf-text-input.spec.d.ts +1 -0
- package/pf-text-input/test/pf-text-input.spec.js +20 -0
- package/pf-text-input/test/pf-text-input.spec.js.map +1 -0
- package/pf-tile/BaseTile.d.ts +1 -1
- package/pf-tile/pf-tile.d.ts +0 -12
- package/pf-tile/pf-tile.js +0 -12
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-tile/test/pf-tile.e2e.d.ts +1 -0
- package/pf-tile/test/pf-tile.e2e.js +11 -0
- package/pf-tile/test/pf-tile.e2e.js.map +1 -0
- package/pf-tile/test/pf-tile.spec.d.ts +1 -0
- package/pf-tile/test/pf-tile.spec.js +54 -0
- package/pf-tile/test/pf-tile.spec.js.map +1 -0
- package/pf-timestamp/pf-timestamp.d.ts +1 -1
- package/pf-timestamp/pf-timestamp.js +5 -1
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-timestamp/test/pf-timestamp.e2e.d.ts +1 -0
- package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
- package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -0
- package/pf-timestamp/test/pf-timestamp.spec.d.ts +1 -0
- package/pf-timestamp/test/pf-timestamp.spec.js +156 -0
- package/pf-timestamp/test/pf-timestamp.spec.js.map +1 -0
- package/pf-tooltip/BaseTooltip.d.ts +1 -1
- package/pf-tooltip/pf-tooltip.d.ts +1 -4
- package/pf-tooltip/pf-tooltip.js +6 -7
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pf-tooltip/test/pf-tooltip.e2e.d.ts +1 -0
- package/pf-tooltip/test/pf-tooltip.e2e.js +11 -0
- package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -0
- package/pf-tooltip/test/pf-tooltip.spec.d.ts +1 -0
- package/pf-tooltip/test/pf-tooltip.spec.js +53 -0
- package/pf-tooltip/test/pf-tooltip.spec.js.map +1 -0
- package/pfe.min.js +273 -266
- package/pfe.min.js.map +3 -3
- package/pf-accordion/README.md +0 -44
- package/pf-avatar/README.md +0 -31
- package/pf-back-to-top/README.md +0 -32
- package/pf-background-image/README.md +0 -37
- package/pf-badge/README.md +0 -57
- package/pf-banner/README.md +0 -60
- package/pf-button/README.md +0 -61
- package/pf-card/README.md +0 -34
- package/pf-chip/README.md +0 -20
- package/pf-clipboard-copy/README.md +0 -8
- package/pf-code-block/README.md +0 -77
- package/pf-dropdown/README.md +0 -46
- package/pf-icon/README.md +0 -86
- package/pf-icon/icons/fab/readme.svg +0 -1
- package/pf-jump-links/README.md +0 -27
- package/pf-label/README.md +0 -61
- package/pf-modal/README.md +0 -63
- package/pf-panel/README.md +0 -10
- package/pf-popover/README.md +0 -48
- package/pf-progress/README.md +0 -33
- package/pf-progress-stepper/README.md +0 -41
- package/pf-select/README.md +0 -21
- package/pf-spinner/README.md +0 -46
- package/pf-switch/README.md +0 -91
- package/pf-table/README.md +0 -43
- package/pf-tabs/README.md +0 -40
- package/pf-text-area/README.md +0 -11
- package/pf-text-input/README.md +0 -9
- package/pf-tile/README.md +0 -12
- package/pf-timestamp/README.md +0 -64
- package/pf-tooltip/README.md +0 -64
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { expect, html, fixture, fixtureCleanup, nextFrame } from '@open-wc/testing';
|
|
2
|
+
import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
|
|
3
|
+
import { clickElementAtCenter } from '@patternfly/pfe-tools/test/utils.js';
|
|
4
|
+
import { sendKeys, resetMouse } from '@web/test-runner-commands';
|
|
5
|
+
import { PfPopover } from '@patternfly/elements/pf-popover/pf-popover.js';
|
|
6
|
+
import { PfButton } from '@patternfly/elements/pf-button/pf-button.js';
|
|
7
|
+
function press(key) {
|
|
8
|
+
return async function () {
|
|
9
|
+
await sendKeys({ press: key });
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
describe('<pf-popover>', function () {
|
|
13
|
+
let element;
|
|
14
|
+
/** create a simple test fixture */
|
|
15
|
+
async function setupSimpleInstance() {
|
|
16
|
+
element = await fixture(html `<pf-popover></pf-popover>`);
|
|
17
|
+
}
|
|
18
|
+
/** Wait on the element's update cycle */
|
|
19
|
+
async function updateComplete() {
|
|
20
|
+
await element.updateComplete;
|
|
21
|
+
}
|
|
22
|
+
/** Asserts that an aXe audit on the page passes */
|
|
23
|
+
async function expectA11yAxe() {
|
|
24
|
+
await expect(element).to.be.accessible();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Assert that the accessibility tree reports the expected snapshot
|
|
28
|
+
* e.g. for a closed popover, does not announce popover child content
|
|
29
|
+
* e.g. for an opened popover, it does announce popover child content
|
|
30
|
+
* If the expected children snapshot is undefined, then assistive technology
|
|
31
|
+
* reports nothing at all, e.g. a popover element with no attrs and no children
|
|
32
|
+
*/
|
|
33
|
+
async function expectA11ySnapshot(expected = { role: 'WebArea', name: '' }) {
|
|
34
|
+
const snapshot = await a11ySnapshot();
|
|
35
|
+
expect(snapshot).to.deep.equal(expected);
|
|
36
|
+
}
|
|
37
|
+
function resetElement() {
|
|
38
|
+
document.querySelectorAll('pf-popover').forEach(e => e.remove());
|
|
39
|
+
// @ts-expect-error: resetting test state, so we don't mind the ts error.
|
|
40
|
+
element = undefined;
|
|
41
|
+
}
|
|
42
|
+
afterEach(resetElement);
|
|
43
|
+
afterEach(fixtureCleanup);
|
|
44
|
+
describe('simply instantiating', function () {
|
|
45
|
+
beforeEach(setupSimpleInstance);
|
|
46
|
+
it('should upgrade', async function () {
|
|
47
|
+
const klass = customElements.get('pf-popover');
|
|
48
|
+
expect(element)
|
|
49
|
+
.to.be.an.instanceOf(klass)
|
|
50
|
+
.and
|
|
51
|
+
.to.be.an.instanceOf(PfPopover);
|
|
52
|
+
});
|
|
53
|
+
it('should be accessible', expectA11yAxe);
|
|
54
|
+
it('imperatively instantiates', function () {
|
|
55
|
+
expect(document.createElement('pf-popover'))
|
|
56
|
+
.to.be.an.instanceof(PfPopover);
|
|
57
|
+
});
|
|
58
|
+
it('should not report anything to assistive technology', async function () {
|
|
59
|
+
const snapshot = await a11ySnapshot();
|
|
60
|
+
expect(snapshot.children).to.not.be.ok;
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('with a slotted trigger; and with heading, body, and footer attributes', function () {
|
|
64
|
+
// these tests are flaky, soo...
|
|
65
|
+
beforeEach(resetElement);
|
|
66
|
+
beforeEach(nextFrame);
|
|
67
|
+
beforeEach(resetElement);
|
|
68
|
+
beforeEach(nextFrame);
|
|
69
|
+
beforeEach(resetElement);
|
|
70
|
+
beforeEach(nextFrame);
|
|
71
|
+
/** create a test fixture with slotted trigger and content attrs */
|
|
72
|
+
beforeEach(async function setupPopoverWithSlottedTriggerAndContentAttrs() {
|
|
73
|
+
element = await fixture(html `
|
|
74
|
+
<pf-popover heading="Popover heading"
|
|
75
|
+
body="Popovers are triggered by click rather than hover."
|
|
76
|
+
footer="Popover footer">
|
|
77
|
+
<pf-button>Toggle popover</pf-button>
|
|
78
|
+
</pf-popover>
|
|
79
|
+
`);
|
|
80
|
+
});
|
|
81
|
+
it('should be accessible', expectA11yAxe);
|
|
82
|
+
it('should hide popover content from assistive technology', async function () {
|
|
83
|
+
const snapshot = await a11ySnapshot();
|
|
84
|
+
expect(snapshot.children?.find(x => x.role === 'dialog')).to.not.be.ok;
|
|
85
|
+
});
|
|
86
|
+
describe('tabbing to the trigger', function () {
|
|
87
|
+
beforeEach(resetElement);
|
|
88
|
+
beforeEach(async function setupPopoverWithSlottedTriggerAndContentAttrs() {
|
|
89
|
+
element = await fixture(html `
|
|
90
|
+
<pf-popover heading="Popover heading"
|
|
91
|
+
body="Popovers are triggered by click rather than hover."
|
|
92
|
+
footer="Popover footer">
|
|
93
|
+
<pf-button>Toggle popover</pf-button>
|
|
94
|
+
</pf-popover>
|
|
95
|
+
`);
|
|
96
|
+
});
|
|
97
|
+
beforeEach(updateComplete);
|
|
98
|
+
beforeEach(press('Tab'));
|
|
99
|
+
beforeEach(updateComplete);
|
|
100
|
+
it('doesn\'t steal tab order', function () {
|
|
101
|
+
expect(document.activeElement).to.be.an.instanceof(PfButton);
|
|
102
|
+
});
|
|
103
|
+
describe('and pressing Enter', function () {
|
|
104
|
+
beforeEach(updateComplete);
|
|
105
|
+
beforeEach(press('Enter'));
|
|
106
|
+
beforeEach(updateComplete);
|
|
107
|
+
it('should show popover content to assistive technology', async function () {
|
|
108
|
+
const snapshot = await a11ySnapshot();
|
|
109
|
+
expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;
|
|
110
|
+
});
|
|
111
|
+
describe('then pressing Enter again', function () {
|
|
112
|
+
beforeEach(updateComplete);
|
|
113
|
+
beforeEach(press('Enter'));
|
|
114
|
+
beforeEach(updateComplete);
|
|
115
|
+
it('should hide popover content from assistive technology', async function () {
|
|
116
|
+
const snapshot = await a11ySnapshot();
|
|
117
|
+
expect(snapshot?.children?.length).to.equal(1);
|
|
118
|
+
const dialog = snapshot.children?.find(x => x.role === 'dialog');
|
|
119
|
+
expect(dialog).to.not.be.ok;
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe('then pressing Escape', function () {
|
|
123
|
+
beforeEach(updateComplete);
|
|
124
|
+
beforeEach(press('Escape'));
|
|
125
|
+
beforeEach(updateComplete);
|
|
126
|
+
it('should hide popover content from assistive technology', async function () {
|
|
127
|
+
const snapshot = await a11ySnapshot();
|
|
128
|
+
expect(snapshot?.children?.length).to.equal(1);
|
|
129
|
+
const dialog = snapshot.children?.find(x => x.role === 'dialog');
|
|
130
|
+
expect(dialog).to.not.be.ok;
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('with a trigger and a sibling button', function () {
|
|
137
|
+
let btn1;
|
|
138
|
+
let btn2;
|
|
139
|
+
async function clickButton1() {
|
|
140
|
+
await clickElementAtCenter(btn1);
|
|
141
|
+
await resetMouse();
|
|
142
|
+
}
|
|
143
|
+
async function clickButton2() {
|
|
144
|
+
await clickElementAtCenter(btn2);
|
|
145
|
+
await resetMouse();
|
|
146
|
+
}
|
|
147
|
+
beforeEach(async function () {
|
|
148
|
+
const container = await fixture(html `
|
|
149
|
+
<div>
|
|
150
|
+
<pf-popover id="popover"
|
|
151
|
+
trigger="btn-1"
|
|
152
|
+
heading="Popover heading"
|
|
153
|
+
body="Popovers are triggered by click rather than hover."
|
|
154
|
+
footer="Popover footer"></pf-popover>
|
|
155
|
+
<button id="btn-1">Toggle popover 1</button>
|
|
156
|
+
<button id="btn-2">Toggle popover 2</button>
|
|
157
|
+
</div>
|
|
158
|
+
`);
|
|
159
|
+
element = container.querySelector('pf-popover');
|
|
160
|
+
btn1 = container.querySelector('#btn-1');
|
|
161
|
+
btn2 = container.querySelector('#btn-2');
|
|
162
|
+
});
|
|
163
|
+
it('starts closed', async function () {
|
|
164
|
+
const snapshot = await a11ySnapshot();
|
|
165
|
+
expect(snapshot.children?.find(x => x.role === 'dialog')).to.not.be.ok;
|
|
166
|
+
});
|
|
167
|
+
describe('clicking the trigger', function () {
|
|
168
|
+
beforeEach(updateComplete);
|
|
169
|
+
beforeEach(clickButton1);
|
|
170
|
+
beforeEach(updateComplete);
|
|
171
|
+
it('shows the popover', async function () {
|
|
172
|
+
const snapshot = await a11ySnapshot();
|
|
173
|
+
expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
describe('setting the trigger to the sibling button', function () {
|
|
177
|
+
beforeEach(updateComplete);
|
|
178
|
+
beforeEach(function () {
|
|
179
|
+
element.setAttribute('trigger', 'btn-2');
|
|
180
|
+
});
|
|
181
|
+
beforeEach(updateComplete);
|
|
182
|
+
describe('clicking the first button', function () {
|
|
183
|
+
beforeEach(updateComplete);
|
|
184
|
+
beforeEach(clickButton1);
|
|
185
|
+
beforeEach(updateComplete);
|
|
186
|
+
it('remains closed', async function () {
|
|
187
|
+
const snapshot = await a11ySnapshot();
|
|
188
|
+
expect(snapshot).to.deep.equal({
|
|
189
|
+
name: '',
|
|
190
|
+
role: 'WebArea',
|
|
191
|
+
children: [
|
|
192
|
+
{ role: 'button', name: 'Toggle popover 1', focused: true },
|
|
193
|
+
{ role: 'button', name: 'Toggle popover 2' },
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe('clicking the sibling button', function () {
|
|
199
|
+
beforeEach(updateComplete);
|
|
200
|
+
beforeEach(clickButton2);
|
|
201
|
+
beforeEach(updateComplete);
|
|
202
|
+
it('shows the popover', async function () {
|
|
203
|
+
const snapshot = await a11ySnapshot();
|
|
204
|
+
expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe('then pressing the Enter key', function () {
|
|
209
|
+
beforeEach(updateComplete);
|
|
210
|
+
// Close the popover
|
|
211
|
+
beforeEach(press('Enter'));
|
|
212
|
+
beforeEach(updateComplete);
|
|
213
|
+
it('closes the popover', async function () {
|
|
214
|
+
const snapshot = await a11ySnapshot();
|
|
215
|
+
expect(snapshot).to.deep.equal({
|
|
216
|
+
role: 'WebArea',
|
|
217
|
+
name: '',
|
|
218
|
+
children: [
|
|
219
|
+
{
|
|
220
|
+
name: 'Toggle popover 1',
|
|
221
|
+
role: 'button',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
name: 'Toggle popover 2',
|
|
225
|
+
role: 'button',
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
//# sourceMappingURL=pf-popover.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-popover.spec.js","sourceRoot":"","sources":["pf-popover.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html, fixture, fixtureCleanup, nextFrame } from '@open-wc/testing';\nimport { a11ySnapshot, type A11yTreeSnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\nimport { clickElementAtCenter } from '@patternfly/pfe-tools/test/utils.js';\nimport { sendKeys, resetMouse } from '@web/test-runner-commands';\nimport { PfPopover } from '@patternfly/elements/pf-popover/pf-popover.js';\nimport { PfButton } from '@patternfly/elements/pf-button/pf-button.js';\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\ndescribe('<pf-popover>', function() {\n let element: PfPopover;\n\n /** create a simple test fixture */\n async function setupSimpleInstance() {\n element = await fixture<PfPopover>(html`<pf-popover></pf-popover>`);\n }\n\n /** Wait on the element's update cycle */\n async function updateComplete() {\n await element.updateComplete;\n }\n\n /** Asserts that an aXe audit on the page passes */\n async function expectA11yAxe() {\n await expect(element).to.be.accessible();\n }\n\n /**\n * Assert that the accessibility tree reports the expected snapshot\n * e.g. for a closed popover, does not announce popover child content\n * e.g. for an opened popover, it does announce popover child content\n * If the expected children snapshot is undefined, then assistive technology\n * reports nothing at all, e.g. a popover element with no attrs and no children\n */\n async function expectA11ySnapshot(expected: A11yTreeSnapshot = { role: 'WebArea', name: '' }) {\n const snapshot = await a11ySnapshot();\n expect(snapshot).to.deep.equal(expected);\n }\n\n function resetElement() {\n document.querySelectorAll('pf-popover').forEach(e => e.remove());\n // @ts-expect-error: resetting test state, so we don't mind the ts error.\n element = undefined;\n }\n\n afterEach(resetElement);\n afterEach(fixtureCleanup);\n\n describe('simply instantiating', function() {\n beforeEach(setupSimpleInstance);\n it('should upgrade', async function() {\n const klass = customElements.get('pf-popover');\n expect(element)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfPopover);\n });\n it('should be accessible', expectA11yAxe);\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-popover'))\n .to.be.an.instanceof(PfPopover);\n });\n it('should not report anything to assistive technology', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children).to.not.be.ok;\n });\n });\n\n describe('with a slotted trigger; and with heading, body, and footer attributes', function() {\n // these tests are flaky, soo...\n beforeEach(resetElement);\n beforeEach(nextFrame);\n beforeEach(resetElement);\n beforeEach(nextFrame);\n beforeEach(resetElement);\n beforeEach(nextFrame);\n\n /** create a test fixture with slotted trigger and content attrs */\n beforeEach(async function setupPopoverWithSlottedTriggerAndContentAttrs() {\n element = await fixture<PfPopover>(html`\n <pf-popover heading=\"Popover heading\"\n body=\"Popovers are triggered by click rather than hover.\"\n footer=\"Popover footer\">\n <pf-button>Toggle popover</pf-button>\n </pf-popover>\n `);\n });\n\n it('should be accessible', expectA11yAxe);\n\n it('should hide popover content from assistive technology', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'dialog')).to.not.be.ok;\n });\n\n describe('tabbing to the trigger', function() {\n beforeEach(resetElement);\n beforeEach(async function setupPopoverWithSlottedTriggerAndContentAttrs() {\n element = await fixture<PfPopover>(html`\n <pf-popover heading=\"Popover heading\"\n body=\"Popovers are triggered by click rather than hover.\"\n footer=\"Popover footer\">\n <pf-button>Toggle popover</pf-button>\n </pf-popover>\n `);\n });\n\n beforeEach(updateComplete);\n beforeEach(press('Tab'));\n beforeEach(updateComplete);\n\n it('doesn\\'t steal tab order', function() {\n expect(document.activeElement).to.be.an.instanceof(PfButton);\n });\n\n describe('and pressing Enter', function() {\n beforeEach(updateComplete);\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('should show popover content to assistive technology', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;\n });\n describe('then pressing Enter again', function() {\n beforeEach(updateComplete);\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('should hide popover content from assistive technology', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot?.children?.length).to.equal(1);\n const dialog = snapshot.children?.find(x => x.role === 'dialog');\n expect(dialog).to.not.be.ok;\n });\n });\n describe('then pressing Escape', function() {\n beforeEach(updateComplete);\n beforeEach(press('Escape'));\n beforeEach(updateComplete);\n it('should hide popover content from assistive technology', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot?.children?.length).to.equal(1);\n const dialog = snapshot.children?.find(x => x.role === 'dialog');\n expect(dialog).to.not.be.ok;\n });\n });\n });\n });\n });\n\n describe('with a trigger and a sibling button', function() {\n let btn1: HTMLButtonElement;\n let btn2: HTMLButtonElement;\n\n async function clickButton1() {\n await clickElementAtCenter(btn1);\n await resetMouse();\n }\n\n async function clickButton2() {\n await clickElementAtCenter(btn2);\n await resetMouse();\n }\n\n beforeEach(async function() {\n const container = await fixture(html`\n <div>\n <pf-popover id=\"popover\"\n trigger=\"btn-1\"\n heading=\"Popover heading\"\n body=\"Popovers are triggered by click rather than hover.\"\n footer=\"Popover footer\"></pf-popover>\n <button id=\"btn-1\">Toggle popover 1</button>\n <button id=\"btn-2\">Toggle popover 2</button>\n </div>\n `);\n element = container.querySelector('pf-popover')!;\n btn1 = container.querySelector('#btn-1')!;\n btn2 = container.querySelector('#btn-2')!;\n });\n\n it('starts closed', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'dialog')).to.not.be.ok;\n });\n\n describe('clicking the trigger', function() {\n beforeEach(updateComplete);\n beforeEach(clickButton1);\n beforeEach(updateComplete);\n it('shows the popover', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;\n });\n });\n\n describe('setting the trigger to the sibling button', function() {\n beforeEach(updateComplete);\n beforeEach(function() {\n element.setAttribute('trigger', 'btn-2');\n });\n beforeEach(updateComplete);\n describe('clicking the first button', function() {\n beforeEach(updateComplete);\n beforeEach(clickButton1);\n beforeEach(updateComplete);\n it('remains closed', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot).to.deep.equal({\n name: '',\n role: 'WebArea',\n children: [\n { role: 'button', name: 'Toggle popover 1', focused: true },\n { role: 'button', name: 'Toggle popover 2' },\n ],\n });\n });\n });\n describe('clicking the sibling button', function() {\n beforeEach(updateComplete);\n beforeEach(clickButton2);\n beforeEach(updateComplete);\n it('shows the popover', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.role === 'dialog')).to.be.ok;\n });\n });\n });\n describe('then pressing the Enter key', function() {\n beforeEach(updateComplete);\n // Close the popover\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('closes the popover', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot).to.deep.equal({\n role: 'WebArea',\n name: '',\n children: [\n {\n name: 'Toggle popover 1',\n role: 'button',\n },\n {\n name: 'Toggle popover 2',\n role: 'button',\n },\n ],\n });\n });\n });\n });\n});\n"]}
|
|
@@ -2,85 +2,64 @@ import type { PropertyValues } from 'lit';
|
|
|
2
2
|
import { LitElement } from 'lit';
|
|
3
3
|
/**
|
|
4
4
|
* A progress bar gives the user a visual representation of their completion status of an ongoing process or task.
|
|
5
|
-
*
|
|
6
5
|
* @summary Display completion status of ongoing process or task.
|
|
7
|
-
*
|
|
8
6
|
* @cssprop {<length>} --pf-c-progress--GridGap
|
|
9
7
|
* Gap between the sections of the progress bar.
|
|
10
8
|
* {@default `1rem`}
|
|
11
|
-
*
|
|
12
9
|
* @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor
|
|
13
10
|
* Color of the progress bar.
|
|
14
11
|
* {@default `#06c`}
|
|
15
|
-
*
|
|
16
12
|
* @cssprop {<length>} --pf-c-progress__bar--Height
|
|
17
13
|
* Height of the progress bar.
|
|
18
14
|
* {@default `1rem`}
|
|
19
|
-
*
|
|
20
15
|
* @cssprop {<color>} --pf-c-progress__bar--BackgroundColor
|
|
21
16
|
* Background color of the progress bar.
|
|
22
17
|
* {@default `#ffffff`}
|
|
23
|
-
*
|
|
24
18
|
* @cssprop {<color>} --pf-c-progress__status-icon--Color
|
|
25
19
|
* Color of the status icon.
|
|
26
20
|
* {@default `#151515`}
|
|
27
|
-
*
|
|
28
21
|
* @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft
|
|
29
22
|
* Margin left of the status icon.
|
|
30
23
|
* {@default `0.5rem`}
|
|
31
|
-
*
|
|
32
24
|
* @cssprop {<length>} --pf-c-progress__indicator--Height
|
|
33
25
|
* Height of the progress bar indicator.
|
|
34
26
|
* {@default `1rem`}
|
|
35
|
-
*
|
|
36
27
|
* @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor
|
|
37
28
|
* Background color of the progress bar indicator.
|
|
38
29
|
* {@default `#ffffff`}
|
|
39
|
-
*
|
|
40
30
|
* @cssprop {<color>} --pf-c-progress--m-success__bar--BackgroundColor
|
|
41
31
|
* Background color of the progress bar when variant is success.
|
|
42
32
|
* {@default `#3e8635`}
|
|
43
|
-
*
|
|
44
33
|
* @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor
|
|
45
34
|
* Background color of the progress bar when variant is warning.
|
|
46
35
|
* {@default `#f0ab00`}
|
|
47
|
-
*
|
|
48
36
|
* @cssprop {<color>} --pf-c-progress--m-danger__bar--BackgroundColor
|
|
49
37
|
* Background color of the progress bar when variant is danger.
|
|
50
38
|
* {@default `#c9190b`}
|
|
51
|
-
*
|
|
52
39
|
* @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color
|
|
53
40
|
* Color of the status icon when variant is success.
|
|
54
41
|
* {@default `#3e8635`}
|
|
55
|
-
*
|
|
56
42
|
* @cssprop {<color>} --pf-c-progress--m-warning__status-icon--Color
|
|
57
43
|
* Color of the status icon when variant is warning.
|
|
58
44
|
* {@default `#f0ab00`}
|
|
59
|
-
*
|
|
60
45
|
* @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color
|
|
61
46
|
* Color of the status icon when variant is danger.
|
|
62
47
|
* {@default `#c9190b`}
|
|
63
|
-
*
|
|
64
48
|
* @cssprop {<color>} --pf-c-progress--m-success--m-inside__measure--Color
|
|
65
49
|
* Color of the progress bar measure when variant is success and measure location is inside.
|
|
66
50
|
* {@default `#ffffff`}
|
|
67
|
-
*
|
|
68
51
|
* @cssprop {<length>} --pf-c-progress--m-outside__measure--FontSize
|
|
69
52
|
* Font size of the progress bar measure when measure location is outside.
|
|
70
53
|
* {@default `0.875rem`}
|
|
71
|
-
*
|
|
72
54
|
* @cssprop {<length>} --pf-c-progress--m-sm__bar--Height
|
|
73
55
|
* Height of the progress bar when the size is small.
|
|
74
56
|
* {@default `0.5rem`}
|
|
75
|
-
*
|
|
76
57
|
* @cssprop {<length>} --pf-c-progress--m-sm__description--FontSize
|
|
77
58
|
* Font size of the progress bar description when the size is small.
|
|
78
59
|
* {@default `0.875rem`}
|
|
79
|
-
*
|
|
80
60
|
* @cssprop {<length>} --pf-c-progress--m-lg__bar--Height
|
|
81
61
|
* Height of the progress bar when the size is large.
|
|
82
62
|
* {@default `1.5rem`}
|
|
83
|
-
*
|
|
84
63
|
*/
|
|
85
64
|
export declare class PfProgress extends LitElement {
|
|
86
65
|
#private;
|
|
@@ -102,7 +81,7 @@ export declare class PfProgress extends LitElement {
|
|
|
102
81
|
/** Variant of the progress bar */
|
|
103
82
|
variant?: 'success' | 'danger' | 'warning';
|
|
104
83
|
willUpdate(changed: PropertyValues<this>): void;
|
|
105
|
-
render(): import("lit").TemplateResult<1>;
|
|
84
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
106
85
|
}
|
|
107
86
|
declare global {
|
|
108
87
|
interface HTMLElementTagNameMap {
|
|
@@ -11,89 +11,68 @@ const styles = css `* {\n box-sizing: border-box;\n}\n\n#container {\n --_pf-c
|
|
|
11
11
|
const ICONS = new Map(Object.entries({
|
|
12
12
|
success: { icon: 'circle-check' },
|
|
13
13
|
danger: { icon: 'circle-xmark' },
|
|
14
|
-
warning: { icon: 'triangle-exclamation' }
|
|
14
|
+
warning: { icon: 'triangle-exclamation' },
|
|
15
15
|
}));
|
|
16
16
|
/**
|
|
17
17
|
* A progress bar gives the user a visual representation of their completion status of an ongoing process or task.
|
|
18
|
-
*
|
|
19
18
|
* @summary Display completion status of ongoing process or task.
|
|
20
|
-
*
|
|
21
19
|
* @cssprop {<length>} --pf-c-progress--GridGap
|
|
22
20
|
* Gap between the sections of the progress bar.
|
|
23
21
|
* {@default `1rem`}
|
|
24
|
-
*
|
|
25
22
|
* @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor
|
|
26
23
|
* Color of the progress bar.
|
|
27
24
|
* {@default `#06c`}
|
|
28
|
-
*
|
|
29
25
|
* @cssprop {<length>} --pf-c-progress__bar--Height
|
|
30
26
|
* Height of the progress bar.
|
|
31
27
|
* {@default `1rem`}
|
|
32
|
-
*
|
|
33
28
|
* @cssprop {<color>} --pf-c-progress__bar--BackgroundColor
|
|
34
29
|
* Background color of the progress bar.
|
|
35
30
|
* {@default `#ffffff`}
|
|
36
|
-
*
|
|
37
31
|
* @cssprop {<color>} --pf-c-progress__status-icon--Color
|
|
38
32
|
* Color of the status icon.
|
|
39
33
|
* {@default `#151515`}
|
|
40
|
-
*
|
|
41
34
|
* @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft
|
|
42
35
|
* Margin left of the status icon.
|
|
43
36
|
* {@default `0.5rem`}
|
|
44
|
-
*
|
|
45
37
|
* @cssprop {<length>} --pf-c-progress__indicator--Height
|
|
46
38
|
* Height of the progress bar indicator.
|
|
47
39
|
* {@default `1rem`}
|
|
48
|
-
*
|
|
49
40
|
* @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor
|
|
50
41
|
* Background color of the progress bar indicator.
|
|
51
42
|
* {@default `#ffffff`}
|
|
52
|
-
*
|
|
53
43
|
* @cssprop {<color>} --pf-c-progress--m-success__bar--BackgroundColor
|
|
54
44
|
* Background color of the progress bar when variant is success.
|
|
55
45
|
* {@default `#3e8635`}
|
|
56
|
-
*
|
|
57
46
|
* @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor
|
|
58
47
|
* Background color of the progress bar when variant is warning.
|
|
59
48
|
* {@default `#f0ab00`}
|
|
60
|
-
*
|
|
61
49
|
* @cssprop {<color>} --pf-c-progress--m-danger__bar--BackgroundColor
|
|
62
50
|
* Background color of the progress bar when variant is danger.
|
|
63
51
|
* {@default `#c9190b`}
|
|
64
|
-
*
|
|
65
52
|
* @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color
|
|
66
53
|
* Color of the status icon when variant is success.
|
|
67
54
|
* {@default `#3e8635`}
|
|
68
|
-
*
|
|
69
55
|
* @cssprop {<color>} --pf-c-progress--m-warning__status-icon--Color
|
|
70
56
|
* Color of the status icon when variant is warning.
|
|
71
57
|
* {@default `#f0ab00`}
|
|
72
|
-
*
|
|
73
58
|
* @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color
|
|
74
59
|
* Color of the status icon when variant is danger.
|
|
75
60
|
* {@default `#c9190b`}
|
|
76
|
-
*
|
|
77
61
|
* @cssprop {<color>} --pf-c-progress--m-success--m-inside__measure--Color
|
|
78
62
|
* Color of the progress bar measure when variant is success and measure location is inside.
|
|
79
63
|
* {@default `#ffffff`}
|
|
80
|
-
*
|
|
81
64
|
* @cssprop {<length>} --pf-c-progress--m-outside__measure--FontSize
|
|
82
65
|
* Font size of the progress bar measure when measure location is outside.
|
|
83
66
|
* {@default `0.875rem`}
|
|
84
|
-
*
|
|
85
67
|
* @cssprop {<length>} --pf-c-progress--m-sm__bar--Height
|
|
86
68
|
* Height of the progress bar when the size is small.
|
|
87
69
|
* {@default `0.5rem`}
|
|
88
|
-
*
|
|
89
70
|
* @cssprop {<length>} --pf-c-progress--m-sm__description--FontSize
|
|
90
71
|
* Font size of the progress bar description when the size is small.
|
|
91
72
|
* {@default `0.875rem`}
|
|
92
|
-
*
|
|
93
73
|
* @cssprop {<length>} --pf-c-progress--m-lg__bar--Height
|
|
94
74
|
* Height of the progress bar when the size is large.
|
|
95
75
|
* {@default `1.5rem`}
|
|
96
|
-
*
|
|
97
76
|
*/
|
|
98
77
|
let PfProgress = class PfProgress extends LitElement {
|
|
99
78
|
constructor() {
|
|
@@ -1 +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
|
+
{"version":3,"file":"pf-progress.js","sourceRoot":"","sources":["pf-progress.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;;AAIvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;IACjC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;IAChC,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;CAC1C,CAAC,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;;QAGL,gCAAa,IAAI,CAAC,eAAe,EAAE,EAAC;QAEpC,+CAA+C;QACJ,UAAK,GAAG,CAAC,CAAC;QAKrD,kEAAkE;QAK/D,yBAAoB,GAAG,KAAK,CAAC;QAEhC,yCAAyC;QACE,QAAG,GAAG,GAAG,CAAC;QAErD,yCAAyC;QACE,QAAG,GAAG,CAAC,CAAC;IAqFrD,CAAC;IA7DU,UAAU,CAAC,OAA6B;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,uBAAA,IAAI,6BAAW,CAAC,YAAY,GAAG,uBAAA,IAAI,mEAAsB,CAAC,QAAQ,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,uBAAA,IAAI,mDAAM,EAAE,CAAC;YACf,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,CAAC,+CAA+C,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;QACnF,MAAM,IAAI,GAAG,uBAAA,IAAI,mDAAM,CAAC;QACxB,MAAM,UAAU,GAAG,WAAW,EAAE,MAAM,KAAK,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,uBAAA,IAAI,mEAAsB,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;QAExB,OAAO,IAAI,CAAA;mCACoB,QAAQ,CAAC;YAClC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;YACpB,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,eAAe;YAC1C,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO;YAC1B,UAAU;YACV,oBAAoB;SACrB,CAAC;;mDAEyC,WAAW,IAAI,EAAE;;UAE1D,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;+BACZ,IAAI,CAAC,WAAW,IAAI,EAAE;;SAE5C;;UAEC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;;YAEpC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;;2BAE1B,SAAS,CAAC,IAAI,CAAC;;8BAEZ,CAAC,IAAI;;;SAG1B;;;;6BAIoB,GAAG;;qCAEK,GAAG;;;;YAI5B,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;;yBAE3B,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;8BACd,KAAK;WACxB;aACE,CAAC;IACZ,CAAC;;;;;IAxEC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;;IAGC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AAC7C,CAAC;AA3Ce,iBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAKS;IAA1C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAW;AAGzC;IAAX,QAAQ,EAAE;+CAAsB;AAO9B;IAJF,QAAQ,CAAC;QACR,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,uBAAuB;KACnC,CAAC;wDAA8B;AAGW;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAW;AAGV;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAS;AAGvC;IAAX,QAAQ,EAAE;wCAAoB;AAGc;IAA5C,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;mDAAiD;AAGjF;IAAX,QAAQ,EAAE;2CAA4C;AA/B5C,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CA2GtB","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 * @summary Display completion status of ongoing process or task.\n * @cssprop {<length>} --pf-c-progress--GridGap\n * Gap between the sections of the progress bar.\n * {@default `1rem`}\n * @cssprop {<color>} --pf-c-progress__bar--before--BackgroundColor\n * Color of the progress bar.\n * {@default `#06c`}\n * @cssprop {<length>} --pf-c-progress__bar--Height\n * Height of the progress bar.\n * {@default `1rem`}\n * @cssprop {<color>} --pf-c-progress__bar--BackgroundColor\n * Background color of the progress bar.\n * {@default `#ffffff`}\n * @cssprop {<color>} --pf-c-progress__status-icon--Color\n * Color of the status icon.\n * {@default `#151515`}\n * @cssprop {<length>} --pf-c-progress__status-icon--MarginLeft\n * Margin left of the status icon.\n * {@default `0.5rem`}\n * @cssprop {<length>} --pf-c-progress__indicator--Height\n * Height of the progress bar indicator.\n * {@default `1rem`}\n * @cssprop {<color>} --pf-c-progress__indicator--BackgroundColor\n * Background color of the progress bar indicator.\n * {@default `#ffffff`}\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 * @cssprop {<color>} --pf-c-progress--m-warning__bar--BackgroundColor\n * Background color of the progress bar when variant is warning.\n * {@default `#f0ab00`}\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 * @cssprop {<color>} --pf-c-progress--m-success__status-icon--Color\n * Color of the status icon when variant is success.\n * {@default `#3e8635`}\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 * @cssprop {<color>} --pf-c-progress--m-danger__status-icon--Color\n * Color of the status icon when variant is danger.\n * {@default `#c9190b`}\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 * @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 * @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 * @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 * @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@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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { test } from '@playwright/test';
|
|
2
|
+
import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
|
|
3
|
+
const tagName = 'pf-progress';
|
|
4
|
+
test.describe(tagName, () => {
|
|
5
|
+
test('snapshot', async ({ page }) => {
|
|
6
|
+
const componentPage = new PfeDemoPage(page, tagName);
|
|
7
|
+
await componentPage.navigate();
|
|
8
|
+
await componentPage.snapshot();
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=pf-progress.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-progress.e2e.js","sourceRoot":"","sources":["pf-progress.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,aAAa,CAAC;AAE9B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-progress';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { expect, html, fixture } from '@open-wc/testing';
|
|
2
|
+
import { PfProgress } from '@patternfly/elements/pf-progress/pf-progress.js';
|
|
3
|
+
describe('<pf-progress>', function () {
|
|
4
|
+
let element;
|
|
5
|
+
beforeEach(async function () {
|
|
6
|
+
element = await fixture(html `
|
|
7
|
+
<pf-progress value="33"
|
|
8
|
+
title="Progress title"
|
|
9
|
+
label="Progress label">
|
|
10
|
+
</pf-progress>
|
|
11
|
+
`);
|
|
12
|
+
});
|
|
13
|
+
it('should upgrade', async function () {
|
|
14
|
+
const klass = customElements.get('pf-progress');
|
|
15
|
+
expect(element).to.be.an.instanceOf(klass).and.to.be.an.instanceOf(PfProgress);
|
|
16
|
+
});
|
|
17
|
+
it('should be accessible', async function () {
|
|
18
|
+
await expect(element).shadowDom.to.be.accessible();
|
|
19
|
+
});
|
|
20
|
+
it('should set the correct value on the progress bar', async function () {
|
|
21
|
+
const element = await fixture(html `
|
|
22
|
+
<pf-progress value="33">
|
|
23
|
+
</pf-progress>
|
|
24
|
+
`);
|
|
25
|
+
expect(element.value).to.equal(33);
|
|
26
|
+
});
|
|
27
|
+
it('should set the correct title on the progress bar', async function () {
|
|
28
|
+
const element = await fixture(html `
|
|
29
|
+
<pf-progress title="Progress title">
|
|
30
|
+
</pf-progress>
|
|
31
|
+
`);
|
|
32
|
+
expect(element.title).to.equal('Progress title');
|
|
33
|
+
});
|
|
34
|
+
it('should have the correct value with the max value set', async function () {
|
|
35
|
+
const max = Math.floor(Math.random() * 100);
|
|
36
|
+
const value = Math.floor(Math.random() * (max));
|
|
37
|
+
const element = await fixture(html `
|
|
38
|
+
<pf-progress value="${value}" max="${max}">
|
|
39
|
+
</pf-progress>
|
|
40
|
+
`);
|
|
41
|
+
expect(element.value).to.equal(value);
|
|
42
|
+
expect(element.max).to.equal(max);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=pf-progress.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-progress.spec.js","sourceRoot":"","sources":["pf-progress.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAE7E,QAAQ,CAAC,eAAe,EAAE;IACxB,IAAI,OAAmB,CAAC;IAExB,UAAU,CAAC,KAAK;QACd,OAAO,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;;;KAKvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK;QACxB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK;QAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;KAG7C,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK;QAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;KAG7C,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;4BACtB,KAAK,UAAU,GAAG;;KAEzC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, html, fixture } from '@open-wc/testing';\nimport { PfProgress } from '@patternfly/elements/pf-progress/pf-progress.js';\n\ndescribe('<pf-progress>', function() {\n let element: PfProgress;\n\n beforeEach(async function() {\n element = await fixture<PfProgress>(html`\n <pf-progress value=\"33\"\n title=\"Progress title\"\n label=\"Progress label\">\n </pf-progress>\n `);\n });\n\n it('should upgrade', async function() {\n const klass = customElements.get('pf-progress');\n expect(element).to.be.an.instanceOf(klass).and.to.be.an.instanceOf(PfProgress);\n });\n\n it('should be accessible', async function() {\n await expect(element).shadowDom.to.be.accessible();\n });\n\n it('should set the correct value on the progress bar', async function() {\n const element = await fixture<PfProgress>(html`\n <pf-progress value=\"33\">\n </pf-progress>\n `);\n expect(element.value).to.equal(33);\n });\n\n it('should set the correct title on the progress bar', async function() {\n const element = await fixture<PfProgress>(html`\n <pf-progress title=\"Progress title\">\n </pf-progress>\n `);\n expect(element.title).to.equal('Progress title');\n });\n\n it('should have the correct value with the max value set', async function() {\n const max = Math.floor(Math.random() * 100);\n const value = Math.floor(Math.random() * (max));\n\n const element = await fixture<PfProgress>(html`\n <pf-progress value=\"${value}\" max=\"${max}\">\n </pf-progress>\n `);\n expect(element.value).to.equal(value);\n expect(element.max).to.equal(max);\n });\n});\n"]}
|
|
@@ -23,7 +23,7 @@ export declare class PfProgressStep extends LitElement {
|
|
|
23
23
|
variant?: 'pending' | 'info' | 'success' | 'warning' | 'danger';
|
|
24
24
|
/** Indicates if this item is the current active item. */
|
|
25
25
|
current: boolean;
|
|
26
|
-
render(): import("lit").TemplateResult<1>;
|
|
26
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
27
27
|
updated(changed: PropertyValues<this>): void;
|
|
28
28
|
}
|
|
29
29
|
declare global {
|
|
@@ -16,7 +16,7 @@ export declare class PfProgressStepper extends LitElement {
|
|
|
16
16
|
compact: boolean;
|
|
17
17
|
get value(): number;
|
|
18
18
|
constructor();
|
|
19
|
-
render(): import("lit").TemplateResult<1>;
|
|
19
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
20
20
|
}
|
|
21
21
|
declare global {
|
|
22
22
|
interface HTMLElementTagNameMap {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { test } from '@playwright/test';
|
|
2
|
+
import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
|
|
3
|
+
const tagName = 'pf-progress-stepper';
|
|
4
|
+
test.describe(tagName, () => {
|
|
5
|
+
test('snapshot', async ({ page }) => {
|
|
6
|
+
const componentPage = new PfeDemoPage(page, tagName);
|
|
7
|
+
await componentPage.navigate();
|
|
8
|
+
await componentPage.snapshot();
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=pf-progress-stepper.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pf-progress-stepper.e2e.js","sourceRoot":"","sources":["pf-progress-stepper.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-progress-stepper';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|