@patternfly/elements 3.0.2 → 4.0.1
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 +8857 -8783
- package/form-control.css +127 -0
- package/package.json +12 -25
- package/pf-accordion/pf-accordion-header.css +23 -0
- package/pf-accordion/pf-accordion-header.d.ts +52 -43
- package/pf-accordion/pf-accordion-header.js +130 -87
- package/pf-accordion/pf-accordion-header.js.map +1 -1
- package/pf-accordion/pf-accordion-panel.css +15 -0
- package/pf-accordion/pf-accordion-panel.d.ts +27 -25
- package/pf-accordion/pf-accordion-panel.js +29 -43
- package/pf-accordion/pf-accordion-panel.js.map +1 -1
- package/pf-accordion/pf-accordion.d.ts +122 -65
- package/pf-accordion/pf-accordion.js +283 -94
- package/pf-accordion/pf-accordion.js.map +1 -1
- package/pf-accordion/test/pf-accordion.e2e.js +12 -0
- package/pf-accordion/test/pf-accordion.e2e.js.map +1 -1
- package/pf-accordion/test/pf-accordion.spec.js +366 -350
- package/pf-accordion/test/pf-accordion.spec.js.map +1 -1
- package/pf-avatar/pf-avatar.css +50 -24
- package/pf-avatar/pf-avatar.d.ts +29 -3
- package/pf-avatar/pf-avatar.js +51 -9
- package/pf-avatar/pf-avatar.js.map +1 -1
- package/pf-avatar/test/pf-avatar.e2e.js +12 -0
- package/pf-avatar/test/pf-avatar.e2e.js.map +1 -1
- package/pf-avatar/test/pf-avatar.spec.js +2 -3
- package/pf-avatar/test/pf-avatar.spec.js.map +1 -1
- package/pf-back-to-top/pf-back-to-top.css +10 -0
- package/pf-back-to-top/pf-back-to-top.d.ts +14 -18
- package/pf-back-to-top/pf-back-to-top.js +9 -30
- package/pf-back-to-top/pf-back-to-top.js.map +1 -1
- package/pf-back-to-top/test/pf-back-to-top.e2e.js +12 -0
- package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -1
- package/pf-background-image/pf-background-image.d.ts +4 -4
- package/pf-background-image/pf-background-image.js +1 -12
- package/pf-background-image/pf-background-image.js.map +1 -1
- package/pf-background-image/test/pf-background-image.e2e.js +12 -0
- package/pf-background-image/test/pf-background-image.e2e.js.map +1 -1
- package/pf-badge/pf-badge.css +4 -0
- package/pf-badge/pf-badge.d.ts +26 -22
- package/pf-badge/pf-badge.js +14 -27
- package/pf-badge/pf-badge.js.map +1 -1
- package/pf-badge/test/pf-badge.e2e.js +12 -0
- package/pf-badge/test/pf-badge.e2e.js.map +1 -1
- package/pf-banner/pf-banner.d.ts +16 -16
- package/pf-banner/pf-banner.js +1 -24
- package/pf-banner/pf-banner.js.map +1 -1
- package/pf-banner/test/pf-banner.e2e.js +12 -0
- package/pf-banner/test/pf-banner.e2e.js.map +1 -1
- package/pf-button/pf-button.css +22 -12
- package/pf-button/pf-button.d.ts +128 -122
- package/pf-button/pf-button.js +95 -172
- package/pf-button/pf-button.js.map +1 -1
- package/pf-button/test/pf-button.e2e.js +12 -0
- package/pf-button/test/pf-button.e2e.js.map +1 -1
- package/pf-card/pf-card.css +172 -43
- package/pf-card/pf-card.d.ts +41 -38
- package/pf-card/pf-card.js +37 -54
- package/pf-card/pf-card.js.map +1 -1
- package/pf-card/test/pf-card.e2e.js +12 -0
- package/pf-card/test/pf-card.e2e.js.map +1 -1
- package/pf-chip/pf-chip-group.css +9 -6
- package/pf-chip/pf-chip-group.d.ts +27 -14
- package/pf-chip/pf-chip-group.js +65 -94
- package/pf-chip/pf-chip-group.js.map +1 -1
- package/pf-chip/pf-chip.d.ts +20 -9
- package/pf-chip/pf-chip.js +1 -8
- package/pf-chip/pf-chip.js.map +1 -1
- package/pf-chip/test/pf-chip-group.spec.js +42 -22
- package/pf-chip/test/pf-chip-group.spec.js.map +1 -1
- package/pf-chip/test/pf-chip.e2e.js +12 -0
- package/pf-chip/test/pf-chip.e2e.js.map +1 -1
- package/pf-clipboard-copy/pf-clipboard-copy.css +83 -89
- package/pf-clipboard-copy/pf-clipboard-copy.d.ts +53 -18
- package/pf-clipboard-copy/pf-clipboard-copy.js +55 -44
- package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +12 -0
- package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -1
- package/pf-code-block/pf-code-block.css +7 -4
- package/pf-code-block/pf-code-block.d.ts +4 -25
- package/pf-code-block/pf-code-block.js +44 -23
- package/pf-code-block/pf-code-block.js.map +1 -1
- package/pf-code-block/test/pf-code-block.e2e.js +12 -0
- package/pf-code-block/test/pf-code-block.e2e.js.map +1 -1
- package/pf-dropdown/context.d.ts +2 -3
- package/pf-dropdown/context.js.map +1 -1
- package/pf-dropdown/pf-dropdown-group.d.ts +3 -9
- package/pf-dropdown/pf-dropdown-group.js +1 -5
- package/pf-dropdown/pf-dropdown-group.js.map +1 -1
- package/pf-dropdown/pf-dropdown-item.d.ts +21 -27
- package/pf-dropdown/pf-dropdown-item.js +1 -37
- package/pf-dropdown/pf-dropdown-item.js.map +1 -1
- package/pf-dropdown/pf-dropdown-menu.d.ts +4 -10
- package/pf-dropdown/pf-dropdown-menu.js +23 -23
- package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
- package/pf-dropdown/pf-dropdown.d.ts +8 -24
- package/pf-dropdown/pf-dropdown.js +1 -26
- package/pf-dropdown/pf-dropdown.js.map +1 -1
- package/pf-dropdown/test/pf-dropdown.e2e.js +12 -0
- package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -1
- package/pf-icon/pf-icon.css +22 -0
- package/pf-icon/pf-icon.d.ts +93 -4
- package/pf-icon/pf-icon.js +191 -13
- package/pf-icon/pf-icon.js.map +1 -1
- package/pf-icon/test/pf-icon.e2e.js +12 -0
- package/pf-icon/test/pf-icon.e2e.js.map +1 -1
- package/pf-icon/test/pf-icon.spec.js +102 -88
- package/pf-icon/test/pf-icon.spec.js.map +1 -1
- package/pf-jump-links/pf-jump-links-item.d.ts +4 -11
- package/pf-jump-links/pf-jump-links-item.js +8 -15
- package/pf-jump-links/pf-jump-links-item.js.map +1 -1
- package/pf-jump-links/pf-jump-links-list.d.ts +2 -2
- package/pf-jump-links/pf-jump-links-list.js +1 -5
- package/pf-jump-links/pf-jump-links-list.js.map +1 -1
- package/pf-jump-links/pf-jump-links.d.ts +2 -2
- package/pf-jump-links/pf-jump-links.js +23 -62
- package/pf-jump-links/pf-jump-links.js.map +1 -1
- package/pf-jump-links/test/pf-jump-links.e2e.js +12 -0
- package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -1
- package/pf-label/pf-label.css +38 -5
- package/pf-label/pf-label.d.ts +65 -69
- package/pf-label/pf-label.js +49 -90
- package/pf-label/pf-label.js.map +1 -1
- package/pf-label/test/pf-label.e2e.js +12 -0
- package/pf-label/test/pf-label.e2e.js.map +1 -1
- package/pf-label/test/pf-label.spec.js +26 -16
- package/pf-label/test/pf-label.spec.js.map +1 -1
- package/pf-modal/pf-modal.d.ts +17 -22
- package/pf-modal/pf-modal.js +13 -39
- package/pf-modal/pf-modal.js.map +1 -1
- package/pf-modal/test/pf-modal.e2e.js +12 -0
- package/pf-modal/test/pf-modal.e2e.js.map +1 -1
- package/pf-panel/pf-panel.d.ts +31 -3
- package/pf-panel/pf-panel.js +1 -10
- package/pf-panel/pf-panel.js.map +1 -1
- package/pf-panel/test/pf-panel.e2e.js +12 -0
- package/pf-panel/test/pf-panel.e2e.js.map +1 -1
- package/pf-popover/pf-popover.d.ts +66 -84
- package/pf-popover/pf-popover.js +33 -150
- package/pf-popover/pf-popover.js.map +1 -1
- package/pf-popover/test/pf-popover.e2e.js +12 -0
- package/pf-popover/test/pf-popover.e2e.js.map +1 -1
- package/pf-popover/test/pf-popover.spec.js +0 -11
- package/pf-popover/test/pf-popover.spec.js.map +1 -1
- package/pf-progress/pf-progress.d.ts +40 -40
- package/pf-progress/pf-progress.js +1 -61
- package/pf-progress/pf-progress.js.map +1 -1
- package/pf-progress/test/pf-progress.e2e.js +12 -0
- package/pf-progress/test/pf-progress.e2e.js.map +1 -1
- package/pf-progress-stepper/pf-progress-step.d.ts +2 -3
- package/pf-progress-stepper/pf-progress-step.js +4 -14
- package/pf-progress-stepper/pf-progress-step.js.map +1 -1
- package/pf-progress-stepper/pf-progress-stepper.d.ts +118 -2
- package/pf-progress-stepper/pf-progress-stepper.js +10 -12
- package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +12 -0
- package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -1
- package/pf-select/pf-option-group.d.ts +2 -2
- package/pf-select/pf-option-group.js +1 -5
- package/pf-select/pf-option-group.js.map +1 -1
- package/pf-select/pf-option.css +1 -1
- package/pf-select/pf-option.d.ts +4 -4
- package/pf-select/pf-option.js +20 -30
- package/pf-select/pf-option.js.map +1 -1
- package/pf-select/pf-select.css +14 -6
- package/pf-select/pf-select.d.ts +183 -40
- package/pf-select/pf-select.js +185 -260
- package/pf-select/pf-select.js.map +1 -1
- package/pf-select/test/pf-select.e2e.js +12 -0
- package/pf-select/test/pf-select.e2e.js.map +1 -1
- package/pf-select/test/pf-select.spec.js +1292 -613
- package/pf-select/test/pf-select.spec.js.map +1 -1
- package/pf-spinner/pf-spinner.css +27 -17
- package/pf-spinner/pf-spinner.d.ts +21 -17
- package/pf-spinner/pf-spinner.js +20 -24
- package/pf-spinner/pf-spinner.js.map +1 -1
- package/pf-spinner/test/pf-spinner.e2e.js +12 -0
- package/pf-spinner/test/pf-spinner.e2e.js.map +1 -1
- package/pf-switch/pf-switch.css +39 -13
- package/pf-switch/pf-switch.d.ts +48 -34
- package/pf-switch/pf-switch.js +114 -43
- package/pf-switch/pf-switch.js.map +1 -1
- package/pf-switch/test/pf-switch.e2e.js +12 -0
- package/pf-switch/test/pf-switch.e2e.js.map +1 -1
- package/pf-table/pf-caption.d.ts +2 -2
- package/pf-table/pf-caption.js +1 -4
- package/pf-table/pf-caption.js.map +1 -1
- package/pf-table/pf-table.d.ts +424 -424
- package/pf-table/pf-table.js +7 -645
- package/pf-table/pf-table.js.map +1 -1
- package/pf-table/pf-tbody.d.ts +2 -2
- package/pf-table/pf-tbody.js +1 -4
- package/pf-table/pf-tbody.js.map +1 -1
- package/pf-table/pf-td.d.ts +2 -2
- package/pf-table/pf-td.js +1 -4
- package/pf-table/pf-td.js.map +1 -1
- package/pf-table/pf-th.d.ts +2 -2
- package/pf-table/pf-th.js +1 -4
- package/pf-table/pf-th.js.map +1 -1
- package/pf-table/pf-thead.d.ts +2 -2
- package/pf-table/pf-thead.js +1 -4
- package/pf-table/pf-thead.js.map +1 -1
- package/pf-table/pf-tr.d.ts +1 -1
- package/pf-table/pf-tr.js +1 -4
- package/pf-table/pf-tr.js.map +1 -1
- package/pf-table/test/pf-table.e2e.js +12 -0
- package/pf-table/test/pf-table.e2e.js.map +1 -1
- package/pf-tabs/context.d.ts +2 -3
- package/pf-tabs/context.js.map +1 -1
- package/pf-tabs/pf-tab-panel.d.ts +3 -5
- package/pf-tabs/pf-tab-panel.js +1 -7
- package/pf-tabs/pf-tab-panel.js.map +1 -1
- package/pf-tabs/pf-tab.d.ts +37 -37
- package/pf-tabs/pf-tab.js +16 -54
- package/pf-tabs/pf-tab.js.map +1 -1
- package/pf-tabs/pf-tabs.d.ts +36 -37
- package/pf-tabs/pf-tabs.js +40 -78
- package/pf-tabs/pf-tabs.js.map +1 -1
- package/pf-tabs/test/pf-tabs.e2e.js +12 -0
- package/pf-tabs/test/pf-tabs.e2e.js.map +1 -1
- package/pf-tabs/test/pf-tabs.spec.js +11 -12
- package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
- package/pf-text-area/pf-text-area.d.ts +128 -134
- package/pf-text-area/pf-text-area.js +7 -131
- package/pf-text-area/pf-text-area.js.map +1 -1
- package/pf-text-area/test/pf-text-area.e2e.js +12 -0
- package/pf-text-area/test/pf-text-area.e2e.js.map +1 -1
- package/pf-text-input/pf-text-input.d.ts +129 -135
- package/pf-text-input/pf-text-input.js +7 -132
- package/pf-text-input/pf-text-input.js.map +1 -1
- package/pf-text-input/test/pf-text-input.e2e.js +12 -0
- package/pf-text-input/test/pf-text-input.e2e.js.map +1 -1
- package/pf-tile/pf-tile.d.ts +21 -20
- package/pf-tile/pf-tile.js +18 -35
- package/pf-tile/pf-tile.js.map +1 -1
- package/pf-tile/test/pf-tile.e2e.js +12 -0
- package/pf-tile/test/pf-tile.e2e.js.map +1 -1
- package/pf-timestamp/pf-timestamp.d.ts +2 -2
- package/pf-timestamp/pf-timestamp.js +1 -3
- package/pf-timestamp/pf-timestamp.js.map +1 -1
- package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
- package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -1
- package/pf-tooltip/pf-tooltip.d.ts +51 -50
- package/pf-tooltip/pf-tooltip.js +26 -106
- package/pf-tooltip/pf-tooltip.js.map +1 -1
- package/pf-tooltip/test/pf-tooltip.e2e.js +12 -0
- package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -1
- package/pfe.min.js +1194 -1006
- package/pfe.min.js.map +4 -4
- package/react/pf-accordion/pf-accordion-header.js +2 -2
- package/react/pf-accordion/pf-accordion-panel.js +2 -2
- package/react/pf-accordion/pf-accordion.js +2 -2
- package/react/pf-avatar/pf-avatar.d.ts +1 -1
- package/react/pf-avatar/pf-avatar.js +5 -3
- package/react/pf-back-to-top/pf-back-to-top.js +2 -2
- package/react/pf-background-image/pf-background-image.js +2 -2
- package/react/pf-badge/pf-badge.js +2 -2
- package/react/pf-banner/pf-banner.js +2 -2
- package/react/pf-button/pf-button.js +2 -2
- package/react/pf-card/pf-card.js +2 -2
- package/react/pf-chip/pf-chip-group.js +2 -2
- package/react/pf-chip/pf-chip.js +2 -2
- package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -1
- package/react/pf-clipboard-copy/pf-clipboard-copy.js +5 -3
- package/react/pf-code-block/pf-code-block.js +2 -2
- package/react/pf-dropdown/pf-dropdown-group.js +2 -2
- package/react/pf-dropdown/pf-dropdown-item.js +2 -2
- package/react/pf-dropdown/pf-dropdown-menu.js +2 -2
- package/react/pf-dropdown/pf-dropdown.js +2 -2
- package/react/pf-icon/pf-icon.js +2 -2
- package/react/pf-jump-links/pf-jump-links-item.js +2 -2
- package/react/pf-jump-links/pf-jump-links-list.js +2 -2
- package/react/pf-jump-links/pf-jump-links.js +2 -2
- package/react/pf-label/pf-label.js +2 -2
- package/react/pf-modal/pf-modal.js +2 -2
- package/react/pf-panel/pf-panel.js +2 -2
- package/react/pf-popover/pf-popover.js +2 -2
- package/react/pf-progress/pf-progress.js +2 -2
- package/react/pf-progress-stepper/pf-progress-step.js +2 -2
- package/react/pf-progress-stepper/pf-progress-stepper.js +2 -2
- package/react/pf-select/pf-option-group.js +2 -2
- package/react/pf-select/pf-option.js +2 -2
- package/react/pf-select/pf-select.d.ts +1 -1
- package/react/pf-select/pf-select.js +2 -3
- package/react/pf-spinner/pf-spinner.js +2 -2
- package/react/pf-switch/pf-switch.js +2 -2
- package/react/pf-table/pf-caption.js +2 -2
- package/react/pf-table/pf-table.js +2 -2
- package/react/pf-table/pf-tbody.js +2 -2
- package/react/pf-table/pf-td.js +2 -2
- package/react/pf-table/pf-th.js +2 -2
- package/react/pf-table/pf-thead.js +2 -2
- package/react/pf-table/pf-tr.js +2 -2
- package/react/pf-tabs/pf-tab-panel.js +2 -2
- package/react/pf-tabs/pf-tab.js +2 -2
- package/react/pf-tabs/pf-tabs.js +2 -2
- package/react/pf-text-area/pf-text-area.js +2 -2
- package/react/pf-text-input/pf-text-input.js +2 -2
- package/react/pf-tile/pf-tile.js +2 -2
- package/react/pf-timestamp/pf-timestamp.js +2 -2
- package/react/pf-tooltip/pf-tooltip.js +2 -2
- package/pf-accordion/BaseAccordion.d.ts +0 -61
- package/pf-accordion/BaseAccordion.js +0 -269
- package/pf-accordion/BaseAccordion.js.map +0 -1
- package/pf-accordion/BaseAccordionHeader.css +0 -39
- package/pf-accordion/BaseAccordionHeader.d.ts +0 -29
- package/pf-accordion/BaseAccordionHeader.js +0 -128
- package/pf-accordion/BaseAccordionHeader.js.map +0 -1
- package/pf-accordion/BaseAccordionPanel.css +0 -27
- package/pf-accordion/BaseAccordionPanel.d.ts +0 -7
- package/pf-accordion/BaseAccordionPanel.js +0 -33
- package/pf-accordion/BaseAccordionPanel.js.map +0 -1
- package/pf-avatar/BaseAvatar.css +0 -13
- package/pf-avatar/BaseAvatar.d.ts +0 -23
- package/pf-avatar/BaseAvatar.js +0 -62
- package/pf-avatar/BaseAvatar.js.map +0 -1
- package/pf-back-to-top/demo/demo.css +0 -25
- package/pf-badge/BaseBadge.css +0 -6
- package/pf-badge/BaseBadge.d.ts +0 -18
- package/pf-badge/BaseBadge.js +0 -16
- package/pf-badge/BaseBadge.js.map +0 -1
- package/pf-button/BaseButton.css +0 -68
- package/pf-button/BaseButton.d.ts +0 -51
- package/pf-button/BaseButton.js +0 -84
- package/pf-button/BaseButton.js.map +0 -1
- package/pf-card/BaseCard.css +0 -36
- package/pf-card/BaseCard.d.ts +0 -24
- package/pf-card/BaseCard.js +0 -51
- package/pf-card/BaseCard.js.map +0 -1
- package/pf-clipboard-copy/BaseClipboardCopy.css +0 -6
- package/pf-clipboard-copy/BaseClipboardCopy.d.ts +0 -18
- package/pf-clipboard-copy/BaseClipboardCopy.js +0 -25
- package/pf-clipboard-copy/BaseClipboardCopy.js.map +0 -1
- package/pf-code-block/BaseCodeBlock.css +0 -7
- package/pf-code-block/BaseCodeBlock.d.ts +0 -8
- package/pf-code-block/BaseCodeBlock.js +0 -22
- package/pf-code-block/BaseCodeBlock.js.map +0 -1
- package/pf-icon/BaseIcon.css +0 -22
- package/pf-icon/BaseIcon.d.ts +0 -41
- package/pf-icon/BaseIcon.js +0 -144
- package/pf-icon/BaseIcon.js.map +0 -1
- package/pf-label/BaseLabel.css +0 -44
- package/pf-label/BaseLabel.d.ts +0 -30
- package/pf-label/BaseLabel.js +0 -29
- package/pf-label/BaseLabel.js.map +0 -1
- package/pf-spinner/BaseSpinner.css +0 -20
- package/pf-spinner/BaseSpinner.d.ts +0 -27
- package/pf-spinner/BaseSpinner.js +0 -45
- package/pf-spinner/BaseSpinner.js.map +0 -1
- package/pf-switch/BaseSwitch.css +0 -36
- package/pf-switch/BaseSwitch.d.ts +0 -19
- package/pf-switch/BaseSwitch.js +0 -109
- package/pf-switch/BaseSwitch.js.map +0 -1
- package/pf-tabs/BaseTab.css +0 -60
- package/pf-tabs/BaseTab.d.ts +0 -32
- package/pf-tabs/BaseTab.js +0 -83
- package/pf-tabs/BaseTab.js.map +0 -1
- package/pf-tabs/BaseTabPanel.css +0 -7
- package/pf-tabs/BaseTabPanel.d.ts +0 -7
- package/pf-tabs/BaseTabPanel.js +0 -36
- package/pf-tabs/BaseTabPanel.js.map +0 -1
- package/pf-tabs/BaseTabs.css +0 -86
- package/pf-tabs/BaseTabs.d.ts +0 -38
- package/pf-tabs/BaseTabs.js +0 -221
- package/pf-tabs/BaseTabs.js.map +0 -1
- package/pf-tile/BaseTile.d.ts +0 -13
- package/pf-tile/BaseTile.js +0 -28
- package/pf-tile/BaseTile.js.map +0 -1
- package/pf-tooltip/BaseTooltip.css +0 -70
- package/pf-tooltip/BaseTooltip.d.ts +0 -16
- package/pf-tooltip/BaseTooltip.js +0 -54
- package/pf-tooltip/BaseTooltip.js.map +0 -1
|
@@ -3,22 +3,32 @@ import { html, render } from 'lit';
|
|
|
3
3
|
import { Logger } from '@patternfly/pfe-core/controllers/logger.js';
|
|
4
4
|
import { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';
|
|
5
5
|
import '@patternfly/pfe-tools/test/stub-logger.js';
|
|
6
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
7
|
+
// @ts-ignore: don't want to include these
|
|
8
|
+
import aed from './rh-icon-aed.js';
|
|
9
|
+
// @ts-ignore: don't want to include these
|
|
10
|
+
import api from './rh-icon-api.js';
|
|
11
|
+
// @ts-ignore: don't want to include these
|
|
12
|
+
import atom from './rh-icon-atom.js';
|
|
13
|
+
// @ts-ignore: don't want to include these
|
|
14
|
+
import bike from './rh-icon-bike.js';
|
|
15
|
+
/* eslint-enable @typescript-eslint/ban-ts-comment */
|
|
16
|
+
const TEST_ICONS = { aed, api, atom, bike };
|
|
17
|
+
async function expectIconsEqual(element, tpl) {
|
|
18
|
+
await oneEvent(element, 'load');
|
|
19
|
+
const rootNode = render(tpl, document.createDocumentFragment());
|
|
20
|
+
const actual = element.shadowRoot?.querySelector('svg');
|
|
21
|
+
const expected = rootNode.parentNode.querySelector('svg');
|
|
22
|
+
expect(actual?.outerHTML).to.equal(expected?.outerHTML);
|
|
23
|
+
}
|
|
6
24
|
describe('<pf-icon>', function () {
|
|
7
25
|
let element;
|
|
8
|
-
async function expectIconsEqual(actualIconUrl) {
|
|
9
|
-
await oneEvent(element, 'load', false);
|
|
10
|
-
const tpl = await import(actualIconUrl.pathname).then(x => x.default);
|
|
11
|
-
const rootNode = render(tpl, document.createDocumentFragment());
|
|
12
|
-
const actual = element.shadowRoot?.querySelector('svg');
|
|
13
|
-
const expected = rootNode.parentNode.querySelector('svg');
|
|
14
|
-
expect(actual?.outerHTML).to.equal(expected?.outerHTML);
|
|
15
|
-
}
|
|
16
26
|
beforeEach(async function () {
|
|
17
|
-
// @ts-expect-error: this is necessary to reset test state
|
|
18
|
-
PfIcon.getters = new Map();
|
|
19
|
-
PfIcon.io.disconnect();
|
|
20
27
|
element = await fixture(html `<pf-icon></pf-icon>`);
|
|
21
28
|
});
|
|
29
|
+
afterEach(function () {
|
|
30
|
+
PfIcon.reset();
|
|
31
|
+
});
|
|
22
32
|
it('imperatively instantiates', function () {
|
|
23
33
|
expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);
|
|
24
34
|
});
|
|
@@ -28,54 +38,57 @@ describe('<pf-icon>', function () {
|
|
|
28
38
|
.and
|
|
29
39
|
.to.be.an.instanceOf(PfIcon);
|
|
30
40
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
describe('with a custom icon set', function () {
|
|
42
|
-
const testIcons = ['aed', 'api', 'atom', 'bike'];
|
|
43
|
-
function getter(_, icon) {
|
|
44
|
-
return new URL(`./rh-icon-${icon}.js`, import.meta.url);
|
|
45
|
-
}
|
|
46
|
-
beforeEach(async function () {
|
|
47
|
-
// replace the default built-in icon set resolveIconName function
|
|
48
|
-
// with one that loads local icons. we don't want tests dependent on
|
|
49
|
-
// prod servers.
|
|
50
|
-
PfIcon.addIconSet('rh', getter);
|
|
51
|
-
element.set = 'rh';
|
|
41
|
+
describe('addIconSet', function () {
|
|
42
|
+
describe('when 1st argument is not a string', function () {
|
|
43
|
+
beforeEach(function () {
|
|
44
|
+
PfIcon.addIconSet(
|
|
45
|
+
// @ts-expect-error: testing bad input
|
|
46
|
+
{}, () => void 0);
|
|
47
|
+
});
|
|
48
|
+
it('should warn', function () {
|
|
49
|
+
expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the first argument to addIconSet must be a string.`);
|
|
50
|
+
});
|
|
52
51
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
describe('when 2nd argument is not a function', function () {
|
|
53
|
+
beforeEach(function () {
|
|
54
|
+
PfIcon.addIconSet('rh',
|
|
55
|
+
// @ts-expect-error: testing bad input
|
|
56
|
+
'haha');
|
|
57
|
+
});
|
|
58
|
+
it('should warn', function () {
|
|
59
|
+
expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the second argument to addIconSet must be a function.`);
|
|
58
60
|
});
|
|
59
|
-
}
|
|
60
|
-
it('should hide the fallback when it successfully upgrades', async function () {
|
|
61
|
-
element.innerHTML = `<p>Icon failed to load.</p>`;
|
|
62
|
-
// Check that the fallback is hidden when the icon is successfully loaded
|
|
63
|
-
element.icon = 'bike';
|
|
64
|
-
await oneEvent(element, 'load', false);
|
|
65
|
-
expect(element).shadowDom.to.equal(`
|
|
66
|
-
<div id="container" aria-hidden="true">
|
|
67
|
-
<span part="fallback" hidden>
|
|
68
|
-
<slot></slot>
|
|
69
|
-
</span>
|
|
70
|
-
</div>`);
|
|
71
61
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
describe('with a good resolve function', function () {
|
|
63
|
+
beforeEach(async function () {
|
|
64
|
+
// replace the default built-in icon set resolveIconName function
|
|
65
|
+
// with one that loads local icons. we don't want tests dependent on
|
|
66
|
+
// prod servers.
|
|
67
|
+
PfIcon.addIconSet('rh', (_, icon) => TEST_ICONS[icon]);
|
|
68
|
+
element.set = 'rh';
|
|
69
|
+
});
|
|
70
|
+
for (const [iconName, icon] of Object.entries(TEST_ICONS)) {
|
|
71
|
+
it('loads icons', async function () {
|
|
72
|
+
// wait for each test icon to be loaded, then move to the next one
|
|
73
|
+
element.icon = iconName;
|
|
74
|
+
await expectIconsEqual(element, icon);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
it('should hide the fallback when it successfully upgrades', async function () {
|
|
78
|
+
element.innerHTML = `<p>Icon failed to load.</p>`;
|
|
79
|
+
element.icon = 'bike';
|
|
80
|
+
await oneEvent(element, 'load');
|
|
81
|
+
expect(element.shadowRoot?.querySelector('[part=fallback]'))
|
|
82
|
+
.to.have.attribute('hidden');
|
|
83
|
+
});
|
|
84
|
+
it('should change color when pf-icon\'s color CSS property is changed', async function () {
|
|
85
|
+
const newColor = 'rgb(11, 12, 13)';
|
|
86
|
+
element.style.setProperty('color', newColor);
|
|
87
|
+
element.icon = 'atom';
|
|
88
|
+
await oneEvent(element, 'load');
|
|
89
|
+
const color = getComputedStyle(element.shadowRoot.querySelector('svg')).getPropertyValue('color');
|
|
90
|
+
expect(color).to.equal(newColor);
|
|
91
|
+
});
|
|
79
92
|
});
|
|
80
93
|
});
|
|
81
94
|
describe('changing size attribute', function () {
|
|
@@ -92,39 +105,40 @@ describe('<pf-icon>', function () {
|
|
|
92
105
|
});
|
|
93
106
|
}
|
|
94
107
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
<div id="container" aria-hidden="true">
|
|
111
|
-
<span part="fallback">
|
|
112
|
-
<slot></slot>
|
|
113
|
-
</span>
|
|
114
|
-
</div>`);
|
|
108
|
+
describe('when the icon has a custom set attribute', function () {
|
|
109
|
+
let element;
|
|
110
|
+
before(async function () {
|
|
111
|
+
element = await fixture(html `<pf-icon set="asdfasdf" icon="foo"></pf-icon>`);
|
|
112
|
+
});
|
|
113
|
+
describe('then the icon set is registered', function () {
|
|
114
|
+
beforeEach(async function () {
|
|
115
|
+
PfIcon.addIconSet('asdfasdf', () => import(`./rh-icon-${'bike'}.js`)
|
|
116
|
+
.then(m => m.default));
|
|
117
|
+
await oneEvent(element, 'load');
|
|
118
|
+
});
|
|
119
|
+
it(`should render the icon`, function () {
|
|
120
|
+
expectIconsEqual(element, bike);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
115
123
|
});
|
|
116
|
-
|
|
117
|
-
element
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
describe('when the icon has a fallback content', function () {
|
|
125
|
+
let element;
|
|
126
|
+
before(async function () {
|
|
127
|
+
element = await fixture(html `
|
|
128
|
+
<pf-icon icon="no-scrubs">
|
|
129
|
+
<p>Image failed to load.</p>.
|
|
130
|
+
</pf-icon>`);
|
|
131
|
+
await oneEvent(element, 'error');
|
|
132
|
+
});
|
|
133
|
+
it('should display the fallback', function () {
|
|
134
|
+
expect(element.shadowRoot.querySelector('svg')).to.not.be.ok;
|
|
135
|
+
expect(element).shadowDom.to.equal(`
|
|
136
|
+
<div id="container" aria-hidden="true">
|
|
137
|
+
<span part="fallback">
|
|
138
|
+
<slot></slot>
|
|
139
|
+
</span>
|
|
140
|
+
</div>`);
|
|
141
|
+
});
|
|
128
142
|
});
|
|
129
143
|
});
|
|
130
144
|
//# sourceMappingURL=pf-icon.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-icon.spec.js","sourceRoot":"","sources":["pf-icon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, oneEvent } from '@open-wc/testing';\nimport { html, render } from 'lit';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\n\ndescribe('<pf-icon>', function() {\n let element: PfIcon;\n\n async function expectIconsEqual(actualIconUrl: URL) {\n await oneEvent(element, 'load', false);\n const tpl = await import(actualIconUrl.pathname).then(x => x.default);\n const rootNode = render(tpl, document.createDocumentFragment());\n const actual = element.shadowRoot?.querySelector('svg');\n const expected = (rootNode.parentNode as DocumentFragment).querySelector('svg');\n expect(actual?.outerHTML).to.equal(expected?.outerHTML);\n }\n\n beforeEach(async function() {\n // @ts-expect-error: this is necessary to reset test state\n PfIcon.getters = new Map(); PfIcon.io.disconnect();\n element = await fixture(html`<pf-icon></pf-icon>`);\n });\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);\n });\n\n it('should upgrade', function() {\n expect(element, 'pf-icon should be an instance of PfIcon')\n .to.be.an.instanceOf(customElements.get('pf-icon'))\n .and\n .to.be.an.instanceOf(PfIcon);\n });\n\n it('should warn if the 2nd argument to addIconSet is not a function', function() {\n // @ts-expect-error: 3rd input is a string\n PfIcon.addIconSet('test', './', 'rh-icon-aed.svg');\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon.addIconSet(setName, getter)]: getter must be a function`);\n });\n\n it('should warn if there is no function provided to resolve the icon names', function() {\n // @ts-expect-error: testing bad input\n PfIcon.addIconSet('test', './');\n\n expect(Logger.warn).to.have.been.calledOnceWith('[PfIcon.addIconSet(setName, getter)]: getter must be a function');\n });\n\n describe('with a custom icon set', function() {\n const testIcons = ['aed', 'api', 'atom', 'bike'];\n\n function getter(_: string, icon: string) {\n return new URL(`./rh-icon-${icon}.js`, import.meta.url);\n }\n\n beforeEach(async function() {\n // replace the default built-in icon set resolveIconName function\n // with one that loads local icons. we don't want tests dependent on\n // prod servers.\n PfIcon.addIconSet('rh', getter);\n element.set = 'rh';\n });\n\n for (const iconName of testIcons) {\n it('loads icons', async function() {\n // wait for each test icon to be loaded, then move to the next one\n element.icon = iconName;\n await expectIconsEqual(getter('rh', iconName));\n });\n }\n\n it('should hide the fallback when it successfully upgrades', async function() {\n element.innerHTML = `<p>Icon failed to load.</p>`;\n // Check that the fallback is hidden when the icon is successfully loaded\n element.icon = 'bike';\n await oneEvent(element, 'load', false);\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\" hidden>\n <slot></slot>\n </span>\n </div>`);\n });\n\n it('should change color when pf-icon\\'s color CSS property is changed', async function() {\n const newColor = 'rgb(11, 12, 13)';\n element.style.setProperty('color', newColor);\n element.icon = 'atom';\n await oneEvent(element, 'load', false);\n const color = getComputedStyle(element.shadowRoot!.querySelector('svg')!).getPropertyValue('color');\n expect(color).to.equal(newColor);\n });\n });\n\n describe('changing size attribute', function() {\n const sizes: PfIcon['size'][] = ['sm', 'md', 'lg', 'xl'];\n let lastSize = { width: 0, height: 0 };\n\n for (const size of sizes) {\n it('should change size based on the attribute value', async function() {\n element.size = size;\n await element.updateComplete;\n const { width, height } = element.getBoundingClientRect();\n expect(width, `size \"${size}\" should be wider than the size below`).to.be.greaterThan(lastSize.width);\n expect(height, `size \"${size}\" should be taller than the size below`).to.be.greaterThan(lastSize.height);\n lastSize = { width, height };\n });\n }\n });\n\n it(`should fetch an icon even when the icon set is registered after the element upgrades`, async function() {\n const url = new URL('./rh-icon-bike.js', import.meta.url);\n element.set = 'asdfasdf';\n element.icon = 'foo';\n await element.updateComplete;\n PfIcon.addIconSet('asdfasdf', () => url);\n await oneEvent(element, 'load', false);\n await expectIconsEqual(url);\n });\n\n it(`should show fallback when given a valid icon set but invalid icon name, fallback provided`, async function() {\n element.innerHTML = '<p>Image failed to load.</p>.';\n element.icon = 'no-scrubs';\n await oneEvent(element, 'error', false);\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n\n it('should show fallback when given an invalid icon set, fallback provided', async function() {\n element.innerHTML = '<p>Image failed to load.</p>.';\n element.set = 'choopee-doopee-pie';\n element.icon = 'bike';\n await oneEvent(element, 'error', false);\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"pf-icon.spec.js","sourceRoot":"","sources":["pf-icon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, oneEvent } from '@open-wc/testing';\nimport { html, render, type TemplateResult } from 'lit';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore: don't want to include these\nimport aed from './rh-icon-aed.js';\n// @ts-ignore: don't want to include these\nimport api from './rh-icon-api.js';\n// @ts-ignore: don't want to include these\nimport atom from './rh-icon-atom.js';\n// @ts-ignore: don't want to include these\nimport bike from './rh-icon-bike.js';\n\n/* eslint-enable @typescript-eslint/ban-ts-comment */\n\nconst TEST_ICONS = { aed, api, atom, bike };\n\nasync function expectIconsEqual(element: PfIcon, tpl: TemplateResult) {\n await oneEvent(element, 'load');\n const rootNode = render(tpl, document.createDocumentFragment());\n const actual = element.shadowRoot?.querySelector('svg');\n const expected = (rootNode.parentNode as DocumentFragment).querySelector('svg');\n expect(actual?.outerHTML).to.equal(expected?.outerHTML);\n}\n\ndescribe('<pf-icon>', function() {\n let element: PfIcon;\n\n beforeEach(async function() {\n element = await fixture(html`<pf-icon></pf-icon>`);\n });\n\n afterEach(function() {\n PfIcon.reset();\n });\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);\n });\n\n it('should upgrade', function() {\n expect(element, 'pf-icon should be an instance of PfIcon')\n .to.be.an.instanceOf(customElements.get('pf-icon'))\n .and\n .to.be.an.instanceOf(PfIcon);\n });\n\n describe('addIconSet', function() {\n describe('when 1st argument is not a string', function() {\n beforeEach(function() {\n PfIcon.addIconSet(\n // @ts-expect-error: testing bad input\n {},\n () => void 0,\n );\n });\n it('should warn', function() {\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the first argument to addIconSet must be a string.`);\n });\n });\n\n describe('when 2nd argument is not a function', function() {\n beforeEach(function() {\n PfIcon.addIconSet(\n 'rh',\n // @ts-expect-error: testing bad input\n 'haha'\n );\n });\n it('should warn', function() {\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the second argument to addIconSet must be a function.`);\n });\n });\n\n describe('with a good resolve function', function() {\n beforeEach(async function() {\n // replace the default built-in icon set resolveIconName function\n // with one that loads local icons. we don't want tests dependent on\n // prod servers.\n PfIcon.addIconSet('rh', (_, icon: string) => TEST_ICONS[icon as keyof typeof TEST_ICONS]);\n element.set = 'rh';\n });\n\n for (const [iconName, icon] of Object.entries(TEST_ICONS)) {\n it('loads icons', async function() {\n // wait for each test icon to be loaded, then move to the next one\n element.icon = iconName;\n await expectIconsEqual(element, icon);\n });\n }\n\n it('should hide the fallback when it successfully upgrades', async function() {\n element.innerHTML = `<p>Icon failed to load.</p>`;\n element.icon = 'bike';\n await oneEvent(element, 'load');\n expect(element.shadowRoot?.querySelector('[part=fallback]'))\n .to.have.attribute('hidden');\n });\n\n it('should change color when pf-icon\\'s color CSS property is changed', async function() {\n const newColor = 'rgb(11, 12, 13)';\n element.style.setProperty('color', newColor);\n element.icon = 'atom';\n await oneEvent(element, 'load');\n const color = getComputedStyle(element.shadowRoot!.querySelector('svg')!).getPropertyValue('color');\n expect(color).to.equal(newColor);\n });\n });\n });\n\n describe('changing size attribute', function() {\n const sizes: PfIcon['size'][] = ['sm', 'md', 'lg', 'xl'];\n let lastSize = { width: 0, height: 0 };\n\n for (const size of sizes) {\n it('should change size based on the attribute value', async function() {\n element.size = size;\n await element.updateComplete;\n const { width, height } = element.getBoundingClientRect();\n expect(width, `size \"${size}\" should be wider than the size below`).to.be.greaterThan(lastSize.width);\n expect(height, `size \"${size}\" should be taller than the size below`).to.be.greaterThan(lastSize.height);\n lastSize = { width, height };\n });\n }\n });\n\n describe('when the icon has a custom set attribute', function() {\n let element: PfIcon;\n before(async function() {\n element = await fixture(html`<pf-icon set=\"asdfasdf\" icon=\"foo\"></pf-icon>`);\n });\n describe('then the icon set is registered', function() {\n beforeEach(async function() {\n PfIcon.addIconSet('asdfasdf', () =>\n import(`./rh-icon-${'bike'}.js`)\n .then(m => m.default));\n await oneEvent(element, 'load');\n });\n it(`should render the icon`, function() {\n expectIconsEqual(element, bike);\n });\n });\n });\n\n describe('when the icon has a fallback content', function() {\n let element: PfIcon;\n before(async function() {\n element = await fixture(html`\n <pf-icon icon=\"no-scrubs\">\n <p>Image failed to load.</p>.\n </pf-icon>`);\n await oneEvent(element, 'error');\n });\n it('should display the fallback', function() {\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
/**
|
|
3
3
|
* @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
|
|
4
4
|
* @cssprop --pf-c-jump-links__link--PaddingRight
|
|
@@ -10,20 +10,13 @@ import { LitElement } from 'lit';
|
|
|
10
10
|
export declare class PfJumpLinksItem extends LitElement {
|
|
11
11
|
#private;
|
|
12
12
|
static readonly styles: CSSStyleSheet[];
|
|
13
|
-
static readonly shadowRootOptions:
|
|
14
|
-
delegatesFocus: boolean;
|
|
15
|
-
mode: ShadowRootMode;
|
|
16
|
-
slotAssignment?: SlotAssignmentMode | undefined;
|
|
17
|
-
customElements?: CustomElementRegistry | undefined;
|
|
18
|
-
registry?: CustomElementRegistry | undefined;
|
|
19
|
-
};
|
|
13
|
+
static readonly shadowRootOptions: ShadowRootInit;
|
|
20
14
|
/** Whether this item is active. */
|
|
21
15
|
active: boolean;
|
|
22
16
|
/** hypertext reference for this link */
|
|
23
17
|
href?: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
private activeChanged;
|
|
18
|
+
render(): TemplateResult<1>;
|
|
19
|
+
protected activeChanged(): void;
|
|
27
20
|
}
|
|
28
21
|
declare global {
|
|
29
22
|
interface HTMLElementTagNameMap {
|
|
@@ -7,15 +7,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
|
|
|
7
7
|
import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
|
|
8
8
|
import { css } from "lit";
|
|
9
9
|
const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n row-gap: var(--pf-global--spacer--md, 1rem);\n}\n\na {\n position: relative;\n display: flex;\n cursor: pointer;\n flex: 1;\n padding-block-start: var(--pf-c-jump-links__link--PaddingTop,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n text-decoration: none;\n outline-offset: var(--pf-c-jump-links__link--OutlineOffset,\n calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));\n color: var(--pf-c-jump-links__link-text--Color,\n var(--pf-global--Color--200, #6a6e73));\n}\n\na::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: "";\n border-color: var(--pf-c-jump-links__link--before--BorderColor, transparent);\n border-style: solid;\n border-width:\n var(--pf-c-jump-links__link--before--BorderTopWidth,\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px)))\n var(--pf-c-jump-links__link--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__link--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__link--before--BorderLeftWidth, 0);\n}\n\na:hover {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--hover__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\na:focus {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--focus__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\n:host([active]) {\n --pf-c-jump-links__link--before--BorderTopWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderTopWidth,\n var(--pf-global--BorderWidth--lg, 3px));\n --pf-c-jump-links__link--before--BorderLeftWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth, 0);\n --pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,\n var(--pf-global--primary-color--100, #06c));\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,\n pfvar(--pf-global--Color--100, #151515));\n}\n`;
|
|
10
|
-
import {
|
|
11
|
-
/**
|
|
12
|
-
* @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
|
|
13
|
-
* @cssprop --pf-c-jump-links__link--PaddingRight
|
|
14
|
-
* @cssprop --pf-c-jump-links__link--PaddingBottom
|
|
15
|
-
* @cssprop --pf-c-jump-links__link--PaddingLeft
|
|
16
|
-
* @cssprop --pf-c-jump-links__link--OutlineOffset
|
|
17
|
-
* @cssprop --pf-c-jump-links__link-text--Color
|
|
18
|
-
*/
|
|
10
|
+
import { observes } from '@patternfly/pfe-core/decorators/observes.js';
|
|
19
11
|
let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
|
|
20
12
|
constructor() {
|
|
21
13
|
super(...arguments);
|
|
@@ -24,13 +16,11 @@ let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
|
|
|
24
16
|
this.active = false;
|
|
25
17
|
_PfJumpLinksItem_internals.set(this, InternalsController.of(this, { role: 'listitem' }));
|
|
26
18
|
}
|
|
27
|
-
connectedCallback() {
|
|
28
|
-
super.connectedCallback();
|
|
29
|
-
this.activeChanged();
|
|
30
|
-
}
|
|
31
19
|
render() {
|
|
32
20
|
return html `
|
|
33
|
-
<a href="${ifDefined(this.href)}"
|
|
21
|
+
<a href="${ifDefined(this.href)}"
|
|
22
|
+
@focus="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onFocus)}"
|
|
23
|
+
@click="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onClick)}">
|
|
34
24
|
<slot></slot>
|
|
35
25
|
</a>
|
|
36
26
|
<slot name="subsection"></slot>
|
|
@@ -53,13 +43,16 @@ PfJumpLinksItem.shadowRootOptions = {
|
|
|
53
43
|
...LitElement.shadowRootOptions,
|
|
54
44
|
delegatesFocus: true,
|
|
55
45
|
};
|
|
46
|
+
PfJumpLinksItem.version = "4.0.1";
|
|
56
47
|
__decorate([
|
|
57
|
-
observed('activeChanged'),
|
|
58
48
|
property({ type: Boolean, reflect: true })
|
|
59
49
|
], PfJumpLinksItem.prototype, "active", void 0);
|
|
60
50
|
__decorate([
|
|
61
51
|
property({ reflect: true })
|
|
62
52
|
], PfJumpLinksItem.prototype, "href", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
observes('active')
|
|
55
|
+
], PfJumpLinksItem.prototype, "activeChanged", null);
|
|
63
56
|
PfJumpLinksItem = __decorate([
|
|
64
57
|
customElement('pf-jump-links-item')
|
|
65
58
|
], PfJumpLinksItem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAWhE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QACS,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;;IAEhE,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;mBAClB,uBAAA,IAAI,4DAAS;mBACb,uBAAA,IAAI,4DAAS;;;;KAI3B,CAAC;IACJ,CAAC;IAGS,aAAa;QACrB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AArCe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;AAEzB,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAG0C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAgBjC;IADT,QAAQ,CAAC,QAAQ,CAAC;oDAGlB;AA9BU,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\n/**\n * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link\n * @cssprop --pf-c-jump-links__link--PaddingRight\n * @cssprop --pf-c-jump-links__link--PaddingBottom\n * @cssprop --pf-c-jump-links__link--PaddingLeft\n * @cssprop --pf-c-jump-links__link--OutlineOffset\n * @cssprop --pf-c-jump-links__link-text--Color\n */\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n render(): TemplateResult<1> {\n return html`\n <a href=\"${ifDefined(this.href)}\"\n @focus=\"${this.#onFocus}\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n @observes('active')\n protected activeChanged(): void {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
/**
|
|
3
3
|
* @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
|
|
4
4
|
* @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
|
|
@@ -6,7 +6,7 @@ import { LitElement } from 'lit';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class PfJumpLinksList extends LitElement {
|
|
8
8
|
static readonly styles: CSSStyleSheet[];
|
|
9
|
-
render():
|
|
9
|
+
render(): TemplateResult<1>;
|
|
10
10
|
}
|
|
11
11
|
declare global {
|
|
12
12
|
interface HTMLElementTagNameMap {
|
|
@@ -3,11 +3,6 @@ import { html, LitElement } from 'lit';
|
|
|
3
3
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
4
4
|
import { css } from "lit";
|
|
5
5
|
const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n --pf-c-jump-links__list--PaddingTop: 0;\n --pf-c-jump-links__list--PaddingBottom: 0;\n --pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,\n var(--pf-global--spacer--lg, 1.5rem));\n}\n`;
|
|
6
|
-
/**
|
|
7
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
|
|
8
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
|
|
9
|
-
* @cssprop --pf-c-jump-links__list__list__link--PaddingLeft
|
|
10
|
-
*/
|
|
11
6
|
let PfJumpLinksList = class PfJumpLinksList extends LitElement {
|
|
12
7
|
render() {
|
|
13
8
|
// TODO: add label
|
|
@@ -16,6 +11,7 @@ let PfJumpLinksList = class PfJumpLinksList extends LitElement {
|
|
|
16
11
|
}
|
|
17
12
|
};
|
|
18
13
|
PfJumpLinksList.styles = [style];
|
|
14
|
+
PfJumpLinksList.version = "4.0.1";
|
|
19
15
|
PfJumpLinksList = __decorate([
|
|
20
16
|
customElement('pf-jump-links-list')
|
|
21
17
|
], PfJumpLinksList);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAU1D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AADvC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n/**\n * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link\n * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom\n * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft\n */\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n render(): TemplateResult<1> {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
3
3
|
/**
|
|
4
4
|
* **Jump links** allow users to navigate to sections within a page.
|
|
@@ -61,7 +61,7 @@ export declare class PfJumpLinks extends LitElement {
|
|
|
61
61
|
connectedCallback(): void;
|
|
62
62
|
firstUpdated(): void;
|
|
63
63
|
updated(changed: Map<string, unknown>): void;
|
|
64
|
-
render():
|
|
64
|
+
render(): TemplateResult<1>;
|
|
65
65
|
}
|
|
66
66
|
declare global {
|
|
67
67
|
interface HTMLElementTagNameMap {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var _PfJumpLinks_instances, _PfJumpLinks_kids, _PfJumpLinks_tabindex, _PfJumpLinks_spy,
|
|
2
|
-
import { __classPrivateFieldGet,
|
|
1
|
+
var _PfJumpLinks_instances, _PfJumpLinks_kids, _PfJumpLinks_items_get, _PfJumpLinks_tabindex, _PfJumpLinks_spy, _PfJumpLinks_onSlotChange, _PfJumpLinks_onSelect, _PfJumpLinks_setActiveItem, _PfJumpLinks_onToggle;
|
|
2
|
+
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
3
3
|
import { html, LitElement } from 'lit';
|
|
4
4
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
5
5
|
import { property } from 'lit/decorators/property.js';
|
|
@@ -9,48 +9,6 @@ import { PfJumpLinksItem } from './pf-jump-links-item.js';
|
|
|
9
9
|
import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
10
10
|
import { css } from "lit";
|
|
11
11
|
const style = css `[hidden] {\n display: none !important;\n}\n\n:host {\n display: block;\n}\n\n#container {\n display: flex;\n flex-wrap: wrap;\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--md, 16px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n}\n\nslot {\n position: relative;\n display: var(--pf-c-jump-links__list--Display, flex);\n flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);\n padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);\n padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);\n padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n visibility: var(--pf-c-jump-links__list--Visibility, visible);\n}\n\nslot::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n content: "";\n border: solid var(--pf-c-jump-links__list--before--BorderColor,\n var(--pf-global--BorderColor--100, #d2d2d2));\n border-width:\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px))\n var(--pf-c-jump-links__list--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);\n}\n\n:host([vertical]) #container {\n --pf-c-jump-links__list--PaddingTop: var(--pf-c-jump-links--m-vertical__list--PaddingTop,\n var(--pf-global--spacer--md, 1rem));\n --pf-c-jump-links__list--PaddingRight: var(--pf-c-jump-links--m-vertical__list--PaddingRight, 0);\n --pf-c-jump-links__list--PaddingBottom: var(--pf-c-jump-links--m-vertical__list--PaddingBottom\n var(--pf-global--spacer--md, 1rem));\n --pf-c-jump-links__list--PaddingLeft: var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);\n --pf-c-jump-links__list--before--BorderTopWidth: var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);\n --pf-c-jump-links__list--before--BorderLeftWidth: var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth, \n var(--pf-global--BorderWidth--sm, 1px));\n --pf-c-jump-links__item--m-current__link--before--BorderTopWidth: var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);\n --pf-c-jump-links__item--m-current__link--before--BorderLeftWidth: var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,\n var(--pf-global--BorderWidth--lg, 3px));\n --pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);\n}\n\n:host([centered]) #container {\n justify-content: center;\n}\n\n:host([centered]) #label {\n text-align: center;\n}\n\n:host(:not([expandable])) #label {\n display: block;\n width: 100%;\n margin-block-end: var(--pf-c-jump-links__label--MarginBottom,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expandable]) {\n --pf-c-jump-links--m-expanded__toggle--MarginBottom:\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))\n ) + var(--pf-global--spacer--md, 1rem));\n}\n\nsummary {\n display: block;\n margin-block-start: var(--pf-c-jump-links__toggle--MarginTop,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem)));\n margin-block-end: var(--pf-c-jump-links__toggle--MarginBottom,\n var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))));\n margin-inline-start: var(--pf-c-jump-links__toggle--MarginLeft);\n color: var(--pf-c-jump-links__toggle-text--Color,\n var(--pf-global--Color--100, #151515));\n padding:\n var(--pf-c-button--PaddingTop,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingRight,\n var(--pf-global--spacer--md, 1rem))\n var(--pf-c-button--PaddingBottom,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\nsummary pf-icon {\n rotate: var(--pf-c-jump-links__toggle-icon--Rotate, 0);\n transition: var(--pf-c-jump-links__toggle-icon--Transition,\n var(--pf-global--Transition, all 250ms cubic-bezier(0.42, 0, 0.58, 1)));\n}\n\nsummary span {\n margin-inline-start: var(--pf-c-jump-links__toggle-text--MarginLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expanded]) #container {\n --pf-c-jump-links__toggle--MarginBottom: var(--pf-c-jump-links--m-expanded__toggle--MarginBottom,\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))) +\n var(--pf-global--spacer--md, 1rem)));\n --pf-c-jump-links__toggle-icon--Rotate: var(--pf-c-jump-links--m-expanded__toggle-icon--Rotate,\n 90deg);\n --pf-c-jump-links__toggle-icon--Color: var(--pf-c-jump-links--m-expanded__toggle-icon--Color,\n var(--pf-global--Color--100, #151515));\n --pf-c-jump-links__toggle-icon--Rotate: 90deg;\n}\n`;
|
|
12
|
-
/**
|
|
13
|
-
* **Jump links** allow users to navigate to sections within a page.
|
|
14
|
-
* @fires toggle - when the `expanded` disclosure widget is toggled
|
|
15
|
-
* @slot - Place pf-jump-links-items here
|
|
16
|
-
* @cssprop --pf-c-jump-links__list--Display
|
|
17
|
-
* @cssprop --pf-c-jump-links__list--FlexDirection
|
|
18
|
-
* @cssprop --pf-c-jump-links__list--PaddingTop -- padding around the list of links
|
|
19
|
-
* @cssprop --pf-c-jump-links__list--PaddingRight
|
|
20
|
-
* @cssprop --pf-c-jump-links__list--PaddingBottom
|
|
21
|
-
* @cssprop --pf-c-jump-links__list--PaddingLeft
|
|
22
|
-
* @cssprop --pf-c-jump-links__list--Visibility
|
|
23
|
-
* @cssprop --pf-c-jump-links__list--before--BorderColor
|
|
24
|
-
* @cssprop --pf-c-jump-links__list--before--BorderTopWidth
|
|
25
|
-
* @cssprop --pf-c-jump-links__list--before--BorderRightWidth
|
|
26
|
-
* @cssprop --pf-c-jump-links__list--before--BorderBottomWidth
|
|
27
|
-
* @cssprop --pf-c-jump-links__list--before--BorderLeftWidth
|
|
28
|
-
* @cssprop --pf-c-jump-links__toggle--MarginBottom--base
|
|
29
|
-
* @cssprop --pf-c-jump-links__toggle--MarginTop -- padding around the expandable jump links disclosure widget.
|
|
30
|
-
* @cssprop --pf-c-jump-links__toggle--MarginBottom
|
|
31
|
-
* @cssprop --pf-c-jump-links__toggle--MarginBottom--base
|
|
32
|
-
* @cssprop --pf-c-jump-links__toggle--MarginLeft
|
|
33
|
-
* @cssprop --pf-c-jump-links__toggle-text--Color
|
|
34
|
-
* @cssprop --pf-c-button--PaddingTop -- padding around the expandable jump links disclosure widget.
|
|
35
|
-
* @cssprop --pf-c-button--PaddingRight
|
|
36
|
-
* @cssprop --pf-c-button--PaddingBottom
|
|
37
|
-
* @cssprop --pf-c-button--PaddingLeft
|
|
38
|
-
* @cssprop --pf-c-jump-links__toggle-icon--Rotate
|
|
39
|
-
* @cssprop --pf-c-jump-links__toggle-icon--Transition
|
|
40
|
-
* @cssprop --pf-c-jump-links__toggle-text--MarginLeft
|
|
41
|
-
* @cssprop --pf-c-jump-links--m-expanded__toggle--MarginBottom
|
|
42
|
-
* @cssprop --pf-c-jump-links--m-expanded__toggle-icon--Rotate
|
|
43
|
-
* @cssprop --pf-c-jump-links--m-expanded__toggle-icon--Color
|
|
44
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--PaddingTop
|
|
45
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--PaddingRight
|
|
46
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--PaddingBottom
|
|
47
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--PaddingLeft
|
|
48
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--before--BorderTopWidth
|
|
49
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--before--BorderLeftWidth
|
|
50
|
-
* @cssprop --pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth
|
|
51
|
-
* @cssprop --pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth
|
|
52
|
-
* @cssprop --pf-c-jump-links--m-vertical__list--FlexDirection
|
|
53
|
-
*/
|
|
54
12
|
let PfJumpLinks = class PfJumpLinks extends LitElement {
|
|
55
13
|
constructor() {
|
|
56
14
|
super(...arguments);
|
|
@@ -65,8 +23,10 @@ let PfJumpLinks = class PfJumpLinks extends LitElement {
|
|
|
65
23
|
this.centered = false;
|
|
66
24
|
/** Offset to add to the scroll position, potentially for a masthead which content scrolls under. */
|
|
67
25
|
this.offset = 0;
|
|
68
|
-
_PfJumpLinks_kids.set(this, this.querySelectorAll(':is(pf-jump-links-item, pf-jump-links-list)'));
|
|
69
|
-
_PfJumpLinks_tabindex.set(this,
|
|
26
|
+
_PfJumpLinks_kids.set(this, this.querySelectorAll?.(':is(pf-jump-links-item, pf-jump-links-list)'));
|
|
27
|
+
_PfJumpLinks_tabindex.set(this, RovingTabindexController.of(this, {
|
|
28
|
+
getItems: () => __classPrivateFieldGet(this, _PfJumpLinks_instances, "a", _PfJumpLinks_items_get),
|
|
29
|
+
}));
|
|
70
30
|
_PfJumpLinks_spy.set(this, new ScrollSpyController(this, {
|
|
71
31
|
rootMargin: `${this.offset}px 0px 0px 0px`,
|
|
72
32
|
tagNames: ['pf-jump-links-item'],
|
|
@@ -79,21 +39,11 @@ let PfJumpLinks = class PfJumpLinks extends LitElement {
|
|
|
79
39
|
}
|
|
80
40
|
connectedCallback() {
|
|
81
41
|
super.connectedCallback();
|
|
82
|
-
this.addEventListener('slotchange', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m",
|
|
42
|
+
this.addEventListener('slotchange', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_onSlotChange));
|
|
83
43
|
this.addEventListener('select', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_onSelect));
|
|
84
44
|
}
|
|
85
45
|
firstUpdated() {
|
|
86
|
-
|
|
87
|
-
getItems: () => {
|
|
88
|
-
const items = Array.from(__classPrivateFieldGet(this, _PfJumpLinks_kids, "f"))
|
|
89
|
-
.flatMap(i => [
|
|
90
|
-
...i.shadowRoot?.querySelectorAll('a') ?? [],
|
|
91
|
-
...i.querySelectorAll('a') ?? [],
|
|
92
|
-
]);
|
|
93
|
-
return items;
|
|
94
|
-
},
|
|
95
|
-
}), "f");
|
|
96
|
-
const active = this.querySelector('pf-jump-links-item[active]');
|
|
46
|
+
const active = this.querySelector?.('pf-jump-links-item[active]');
|
|
97
47
|
if (active) {
|
|
98
48
|
__classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_setActiveItem).call(this, active);
|
|
99
49
|
}
|
|
@@ -127,8 +77,15 @@ _PfJumpLinks_kids = new WeakMap();
|
|
|
127
77
|
_PfJumpLinks_tabindex = new WeakMap();
|
|
128
78
|
_PfJumpLinks_spy = new WeakMap();
|
|
129
79
|
_PfJumpLinks_instances = new WeakSet();
|
|
130
|
-
|
|
131
|
-
__classPrivateFieldGet(this,
|
|
80
|
+
_PfJumpLinks_items_get = function _PfJumpLinks_items_get() {
|
|
81
|
+
return Array.from(__classPrivateFieldGet(this, _PfJumpLinks_kids, "f") ?? [])
|
|
82
|
+
.flatMap(i => [
|
|
83
|
+
...i.shadowRoot?.querySelectorAll?.('a') ?? [],
|
|
84
|
+
...i.querySelectorAll?.('a') ?? [],
|
|
85
|
+
]);
|
|
86
|
+
};
|
|
87
|
+
_PfJumpLinks_onSlotChange = function _PfJumpLinks_onSlotChange() {
|
|
88
|
+
__classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").items = __classPrivateFieldGet(this, _PfJumpLinks_instances, "a", _PfJumpLinks_items_get);
|
|
132
89
|
};
|
|
133
90
|
_PfJumpLinks_onSelect = function _PfJumpLinks_onSelect(event) {
|
|
134
91
|
if (event.target instanceof PfJumpLinksItem) {
|
|
@@ -136,8 +93,11 @@ _PfJumpLinks_onSelect = function _PfJumpLinks_onSelect(event) {
|
|
|
136
93
|
}
|
|
137
94
|
};
|
|
138
95
|
_PfJumpLinks_setActiveItem = function _PfJumpLinks_setActiveItem(item) {
|
|
139
|
-
|
|
140
|
-
|
|
96
|
+
const itemLink = item.shadowRoot?.querySelector?.('a') ?? null;
|
|
97
|
+
if (itemLink) {
|
|
98
|
+
__classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").atFocusedItemIndex = __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").items.indexOf(itemLink);
|
|
99
|
+
__classPrivateFieldGet(this, _PfJumpLinks_spy, "f").setActive(item);
|
|
100
|
+
}
|
|
141
101
|
};
|
|
142
102
|
_PfJumpLinks_onToggle = function _PfJumpLinks_onToggle(event) {
|
|
143
103
|
if (event.target instanceof HTMLDetailsElement) {
|
|
@@ -146,6 +106,7 @@ _PfJumpLinks_onToggle = function _PfJumpLinks_onToggle(event) {
|
|
|
146
106
|
this.dispatchEvent(new Event('toggle'));
|
|
147
107
|
};
|
|
148
108
|
PfJumpLinks.styles = [style];
|
|
109
|
+
PfJumpLinks.version = "4.0.1";
|
|
149
110
|
__decorate([
|
|
150
111
|
property({ reflect: true, type: Boolean })
|
|
151
112
|
], PfJumpLinks.prototype, "expandable", void 0);
|