@patternfly/elements 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +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 -85
- 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 -1002
- 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
|
@@ -1,45 +1,54 @@
|
|
|
1
1
|
var _PfClipboardCopy_instances, _PfClipboardCopy_copied, _PfClipboardCopy_mo, _PfClipboardCopy_onClick, _PfClipboardCopy_onChange, _PfClipboardCopy_onMutation, _PfClipboardCopy_dedent;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
|
|
3
|
-
import { html } from 'lit';
|
|
3
|
+
import { LitElement, html } from 'lit';
|
|
4
4
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
5
5
|
import { property } from 'lit/decorators/property.js';
|
|
6
6
|
import { classMap } from 'lit/directives/class-map.js';
|
|
7
7
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
8
|
-
import { BaseClipboardCopy } from './BaseClipboardCopy.js';
|
|
9
8
|
import { css } from "lit";
|
|
10
|
-
const styles = css
|
|
9
|
+
const styles = css `:host {\n\t--pf-c-clipboard-copy__toggle-icon--Transition: .2s ease-in 0s;\n\t--pf-c-clipboard-copy--m-expanded__toggle-icon--Rotate: 90deg;\n\t--pf-c-clipboard-copy__expandable-content--PaddingTop: var(--pf-global--spacer--md, 1rem);\n\t--pf-c-clipboard-copy__expandable-content--PaddingRight: var(--pf-global--spacer--md, 1rem);\n\t--pf-c-clipboard-copy__expandable-content--PaddingBottom: var(--pf-global--spacer--md, 1rem);\n\t--pf-c-clipboard-copy__expandable-content--PaddingLeft: var(--pf-global--spacer--md, 1rem);\n\t--pf-c-clipboard-copy__expandable-content--BackgroundColor: var(--pf-global--BackgroundColor--light-100, #fff);\n\t--pf-c-clipboard-copy__expandable-content--BorderTopWidth: 0;\n\t--pf-c-clipboard-copy__expandable-content--BorderRightWidth: var(--pf-global--BorderWidth--sm, 1px);\n\t--pf-c-clipboard-copy__expandable-content--BorderBottomWidth: var(--pf-global--BorderWidth--sm, 1px);\n\t--pf-c-clipboard-copy__expandable-content--BorderLeftWidth: var(--pf-global--BorderWidth--sm, 1px);\n\t--pf-c-clipboard-copy__expandable-content--BorderColor: var(--pf-global--BorderColor--100, #d2d2d2);\n\t--pf-c-clipboard-copy__expandable-content--OutlineOffset: calc(-1 * var(--pf-global--spacer--xs, 0.25rem));\n\t--pf-c-clipboard-copy--m-inline--PaddingTop: 0;\n\t--pf-c-clipboard-copy--m-inline--PaddingBottom: 0;\n\t--pf-c-clipboard-copy--m-inline--PaddingLeft: var(--pf-global--spacer--xs, 0.25rem);\n\t--pf-c-clipboard-copy--m-inline--BackgroundColor: var(--pf-global--BackgroundColor--200, #f0f0f0);\n\t--pf-c-clipboard-copy__text--m-code--FontFamily: var(--pf-global--FontFamily--monospace, "Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace);\n\t--pf-c-clipboard-copy__text--m-code--FontSize: var(--pf-global--FontSize--sm, 0.875rem);\n\t--pf-c-clipboard-copy__actions-item--MarginTop: calc(-1 * var(--pf-global--spacer--form-element, 0.375rem));\n\t--pf-c-clipboard-copy__actions-item--MarginBottom: calc(-1 * var(--pf-global--spacer--form-element, 0.375rem));\n\t--pf-c-clipboard-copy__actions-item--button--PaddingTop: var(--pf-global--spacer--xs, 0.25rem);\n\t--pf-c-clipboard-copy__actions-item--button--PaddingRight: var(--pf-global--spacer--sm, 0.5rem);\n\t--pf-c-clipboard-copy__actions-item--button--PaddingBottom: var(--pf-global--spacer--xs, 0.25rem);\n\t--pf-c-clipboard-copy__actions-item--button--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-icon--size: var(--pf-global--FontSize--md, 1rem);\n}\n\n[hidden],\n[inert],\n[inert]::slotted(*) {\n display: none !important;\n}\n\n#container {\n flex-direction: column;\n}\n\n#container,\n#input-group,\n#wrapper {\n display: flex;\n}\n\n.inline #wrapper {\n display: inline-flex;\n}\n\n#input-group > * + * {\n margin-left: -1px;\n}\n\ninput {\n color: var(--pf-c-form-control--Color);\n width: var(--pf-c-form-control--Width);\n padding:\n var(--pf-c-form-control--PaddingTop)\n var(--pf-c-form-control--PaddingRight)\n var(--pf-c-form-control--PaddingBottom)\n var(--pf-c-form-control--PaddingLeft);\n font-size: var(--pf-c-form-control--FontSize);\n line-height: var(--pf-c-form-control--LineHeight);\n background-color: var(--pf-c-form-control--BackgroundColor);\n background-repeat: no-repeat;\n border: var(--pf-c-form-control--BorderWidth) solid;\n border-color:\n var(--pf-c-form-control--BorderTopColor)\n var(--pf-c-form-control--BorderRightColor)\n var(--pf-c-form-control--BorderBottomColor)\n var(--pf-c-form-control--BorderLeftColor);\n border-radius: var(--pf-c-form-control--BorderRadius);\n margin: 0;\n appearance: none;\n height: var(--pf-c-form-control--Height);\n text-overflow: ellipsis;\n flex: 1 1 auto;\n}\n\ninput[disabled] {\n background-color: var(--pf-c-form-control--readonly--BackgroundColor);\n}\n\ntextarea {\n display: flex;\n flex: 1 1 auto;\n padding:\n var(--pf-c-clipboard-copy__expandable-content--PaddingTop)\n var(--pf-c-clipboard-copy__expandable-content--PaddingRight)\n var(--pf-c-clipboard-copy__expandable-content--PaddingBottom)\n var(--pf-c-clipboard-copy__expandable-content--PaddingLeft);\n word-wrap: break-word;\n background-color: var(--pf-c-clipboard-copy__expandable-content--BackgroundColor);\n background-clip: padding-box;\n border: solid var(--pf-c-clipboard-copy__expandable-content--BorderColor);\n border-width:\n var(--pf-c-clipboard-copy__expandable-content--BorderTopWidth)\n var(--pf-c-clipboard-copy__expandable-content--BorderRightWidth)\n var(--pf-c-clipboard-copy__expandable-content--BorderBottomWidth)\n var(--pf-c-clipboard-copy__expandable-content--BorderLeftWidth);\n box-shadow: var(--pf-c-clipboard-copy__expandable-content--BoxShadow);\n margin: 0;\n color: inherit;\n font-family: inherit;\n}\n\n#input-group {\n display: flex;\n height: 100%;\n}\n\n#container.code textarea {\n font-family: var(--pf-global--FontFamily--monospace,\n var(--pf-global--FontFamily--redhat--monospace,\n "RedHatMono",\n "Liberation Mono",\n consolas,\n "SFMono-Regular",\n menlo,\n monaco,\n "Courier New",\n monospace));\n}\n\n#container.expanded #expand-button pf-icon {\n rotate: 90deg;\n}\n\n#container.inline {\n display: inline;\n background-color: var(--pf-c-clipboard-copy--m-inline--BackgroundColor);\n padding-block-start: var(--pf-c-clipboard-copy--m-inline--PaddingTop);\n padding-block-end: var(--pf-c-clipboard-copy--m-inline--PaddingBottom);\n padding-inline-start: var(--pf-c-clipboard-copy--m-inline--PaddingLeft);\n word-break: break-word;\n white-space: normal;\n}\n\n#container:is(.compact, .inline) #input-group {\n display: contents;\n}\n\n#container:is(.compact, .inline) #input-group {\n background-color: var(--pf-c-button--m-plain--BackgroundColor,\n var(--pf-global--BackgroundColor--200, #f0f0f0));\n}\n\n#container.compact.block {\n display: block;\n background-color: var(--pf-c-clipboard-copy--m-inline--BackgroundColor);\n}\n\n#container:is(.compact, .inline) #copy-button,\n#container:is(.compact, .inline) slot[name="actions"]::slotted(*) {\n --pf-c-button--PaddingTop: var(--pf-c-clipboard-copy__actions-item--button--PaddingTop) !important;\n --pf-c-button--PaddingRight: var(--pf-c-clipboard-copy__actions-item--button--PaddingRight) !important;\n --pf-c-button--PaddingBottom: var(--pf-c-clipboard-copy__actions-item--button--PaddingBottom) !important;\n --pf-c-button--PaddingLeft: var(--pf-c-clipboard-copy__actions-item--button--PaddingLeft) !important;\n margin-block-start: calc(-1 * var(--pf-c-button--PaddingTop));\n margin-block-end: calc(-1 * var(--pf-c-button--PaddingBottom));\n}\n\n`;
|
|
10
|
+
const formControlStyles = css `:host {\n --pf-c-form-control--Color: var(--pf-global--Color--100, #151515);\n --pf-c-form-control--FontSize: var(--pf-global--FontSize--md, 1rem);\n --pf-c-form-control--LineHeight: var(--pf-global--LineHeight--md, 1.5);\n --pf-c-form-control--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-form-control--BorderTopColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-form-control--BorderRightColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-form-control--BorderBottomColor: var(--pf-global--BorderColor--200, #8a8d90);\n --pf-c-form-control--BorderLeftColor: var(--pf-global--BorderColor--300, #f0f0f0);\n --pf-c-form-control--BorderRadius: 0;\n --pf-c-form-control--BackgroundColor: var(--pf-global--BackgroundColor--100, #fff);\n --pf-c-form-control--Width: 100%;\n --pf-c-form-control--Height: calc(var(--pf-c-form-control--FontSize) * var(--pf-c-form-control--LineHeight) + var(--pf-c-form-control--BorderWidth) * 2 + var(--pf-c-form-control--PaddingTop) + var(--pf-c-form-control--PaddingBottom));\n --pf-c-form-control--inset--base: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-form-control--PaddingTop: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-global--BorderWidth--sm));\n --pf-c-form-control--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-global--BorderWidth--sm));\n --pf-c-form-control--PaddingRight: var(--pf-c-form-control--inset--base);\n --pf-c-form-control--PaddingLeft: var(--pf-c-form-control--inset--base);\n --pf-c-form-control--hover--BorderBottomColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-form-control--focus--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-form-control--focus--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-c-form-control--focus--BorderBottomWidth));\n --pf-c-form-control--focus--BorderBottomColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-form-control--m-expanded--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-form-control--m-expanded--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-c-form-control--focus--BorderBottomWidth));\n --pf-c-form-control--m-expanded--BorderBottomColor: var(--pf-global--primary-color--100, #06c);\n --pf-c-form-control--placeholder--Color: var(--pf-global--Color--dark-200, #6a6e73);\n --pf-c-form-control--placeholder--child--Color: var(--pf-global--Color--100, #151515);\n --pf-c-form-control--disabled--Color: var(--pf-global--disabled-color--100, #6a6e73);\n --pf-c-form-control--disabled--BackgroundColor: var(--pf-global--disabled-color--300, #f0f0f0);\n --pf-c-form-control--disabled--BorderColor: transparent;\n --pf-c-form-control--readonly--BackgroundColor: var(--pf-global--disabled-color--300, #f0f0f0);\n --pf-c-form-control--readonly--hover--BorderBottomColor: var(--pf-global--BorderColor--200, #8a8d90);\n --pf-c-form-control--readonly--focus--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-global--BorderWidth--sm));\n --pf-c-form-control--readonly--focus--BorderBottomWidth: var(--pf-global--BorderWidth--sm, 1px);\n --pf-c-form-control--readonly--focus--BorderBottomColor: var(--pf-global--BorderColor--200, #8a8d90);\n --pf-c-form-control--readonly--m-plain--BackgroundColor: transparent;\n --pf-c-form-control--readonly--m-plain--inset--base: 0;\n --pf-c-form-control--success--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-form-control--success--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-c-form-control--success--BorderBottomWidth));\n --pf-c-form-control--success--BorderBottomColor: var(--pf-global--success-color--100, #3e8635);\n --pf-c-form-control--success--PaddingRight: var(--pf-global--spacer--xl, 2rem);\n --pf-c-form-control--success--BackgroundPositionX: calc(100% - var(--pf-c-form-control--PaddingLeft));\n --pf-c-form-control--success--BackgroundPositionY: center;\n --pf-c-form-control--success--BackgroundPosition: var(--pf-c-form-control--success--BackgroundPositionX) var(--pf-c-form-control--success--BackgroundPositionY);\n --pf-c-form-control--success--BackgroundSizeX: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--success--BackgroundSizeY: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--success--BackgroundSize: var(--pf-c-form-control--success--BackgroundSizeX) var(--pf-c-form-control--success--BackgroundSizeY);\n --pf-c-form-control--success--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%235ba352' d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'/%3E%3C/svg%3E");\n --pf-c-form-control--m-warning--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-form-control--m-warning--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-c-form-control--m-warning--BorderBottomWidth));\n --pf-c-form-control--m-warning--BorderBottomColor: var(--pf-global--warning-color--100, #f0ab00);\n --pf-c-form-control--m-warning--PaddingRight: var(--pf-global--spacer--xl, 2rem);\n --pf-c-form-control--m-warning--BackgroundPositionX: calc(100% - calc(var(--pf-c-form-control--PaddingLeft) - 0.0625rem));\n --pf-c-form-control--m-warning--BackgroundPositionY: center;\n --pf-c-form-control--m-warning--BackgroundPosition: var(--pf-c-form-control--m-warning--BackgroundPositionX) var(--pf-c-form-control--m-warning--BackgroundPositionY);\n --pf-c-form-control--m-warning--BackgroundSizeX: 1.25rem;\n --pf-c-form-control--m-warning--BackgroundSizeY: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--m-warning--BackgroundSize: var(--pf-c-form-control--m-warning--BackgroundSizeX) var(--pf-c-form-control--m-warning--BackgroundSizeY);\n --pf-c-form-control--m-warning--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23f0ab00' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");\n --pf-c-form-control--invalid--BorderBottomWidth: var(--pf-global--BorderWidth--md, 2px);\n --pf-c-form-control--invalid--PaddingBottom: calc(var(--pf-global--spacer--form-element, 0.375rem) - var(--pf-c-form-control--invalid--BorderBottomWidth));\n --pf-c-form-control--invalid--BorderBottomColor: var(--pf-global--danger-color--100, #c9190b);\n --pf-c-form-control--invalid--PaddingRight: var(--pf-global--spacer--xl, 2rem);\n --pf-c-form-control--invalid--BackgroundPositionX: calc(100% - var(--pf-c-form-control--PaddingLeft));\n --pf-c-form-control--invalid--BackgroundPositionY: center;\n --pf-c-form-control--invalid--BackgroundPosition: var(--pf-c-form-control--invalid--BackgroundPositionX) var(--pf-c-form-control--invalid--BackgroundPositionY);\n --pf-c-form-control--invalid--BackgroundSizeX: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--invalid--BackgroundSizeY: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--invalid--BackgroundSize: var(--pf-c-form-control--invalid--BackgroundSizeX) var(--pf-c-form-control--invalid--BackgroundSizeY);\n --pf-c-form-control--invalid--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23fe5142' d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");\n --pf-c-form-control--invalid--exclamation--Background: var(--pf-c-form-control--invalid--BackgroundUrl) var(--pf-c-form-control--invalid--BackgroundPosition) / var(--pf-c-form-control--invalid--BackgroundSize) no-repeat;\n --pf-c-form-control--invalid--Background: var(--pf-c-form-control--BackgroundColor) var(--pf-c-form-control--invalid--exclamation--Background);\n --pf-c-form-control--m-search--PaddingLeft: var(--pf-global--spacer--xl, 2rem);\n --pf-c-form-control--m-search--BackgroundPosition: var(--pf-c-form-control--PaddingRight);\n --pf-c-form-control--m-search--BackgroundSize: var(--pf-c-form-control--FontSize) var(--pf-c-form-control--FontSize);\n --pf-c-form-control--m-search--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23aaabac' d='M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z'/%3E%3C/svg%3E");\n --pf-c-form-control--m-icon--PaddingRight: calc(var(--pf-c-form-control--inset--base) + var(--pf-c-form-control--m-icon--BackgroundSizeX) + var(--pf-c-form-control--m-icon--icon--spacer));\n --pf-c-form-control--m-icon--BackgroundUrl: none;\n --pf-c-form-control--m-icon--BackgroundPositionX: calc(100% - var(--pf-c-form-control--inset--base));\n --pf-c-form-control--m-icon--BackgroundPositionY: center;\n --pf-c-form-control--m-icon--BackgroundSizeX: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--m-icon--BackgroundSizeY: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--m-icon--icon--spacer: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-form-control--m-icon--icon--PaddingRight: calc(var(--pf-c-form-control--inset--base) + var(--pf-c-form-control--invalid--BackgroundSizeX) + var(--pf-c-form-control--m-icon--icon--spacer) + var(--pf-c-form-control--m-icon--BackgroundSizeX) + var(--pf-c-form-control--m-icon--icon--spacer));\n --pf-c-form-control--m-icon--icon--BackgroundPositionX: calc(var(--pf-c-form-control--m-icon--BackgroundPositionX) - var(--pf-c-form-control--m-icon--icon--spacer) - var(--pf-c-form-control--invalid--BackgroundSizeX));\n --pf-c-form-control--m-icon--invalid--BackgroundUrl: var(--pf-c-form-control--invalid--BackgroundUrl), var(--pf-c-form-control--m-icon--BackgroundUrl);\n --pf-c-form-control--m-icon--invalid--BackgroundPosition: var(--pf-c-form-control--invalid--BackgroundPosition), var(--pf-c-form-control--m-icon--icon--BackgroundPositionX) var(--pf-c-form-control--m-icon--BackgroundPositionY);\n --pf-c-form-control--m-icon--invalid--BackgroundSize: var(--pf-c-form-control--invalid--BackgroundSize), var(--pf-c-form-control--m-icon--BackgroundSizeX) var(--pf-c-form-control--m-icon--BackgroundSizeY);\n --pf-c-form-control--m-icon--success--BackgroundUrl: var(--pf-c-form-control--success--BackgroundUrl), var(--pf-c-form-control--m-icon--BackgroundUrl);\n --pf-c-form-control--m-icon--success--BackgroundPosition: var(--pf-c-form-control--success--BackgroundPosition), var(--pf-c-form-control--m-icon--icon--BackgroundPositionX) var(--pf-c-form-control--m-icon--BackgroundPositionY);\n --pf-c-form-control--m-icon--success--BackgroundSize: var(--pf-c-form-control--success--BackgroundSize), var(--pf-c-form-control--m-icon--BackgroundSizeX) var(--pf-c-form-control--m-icon--BackgroundSizeY);\n --pf-c-form-control--m-icon--m-warning--BackgroundUrl: var(--pf-c-form-control--m-warning--BackgroundUrl), var(--pf-c-form-control--m-icon--BackgroundUrl);\n --pf-c-form-control--m-icon--m-warning--BackgroundPosition: var(--pf-c-form-control--m-warning--BackgroundPosition), var(--pf-c-form-control--m-icon--icon--BackgroundPositionX) var(--pf-c-form-control--m-icon--BackgroundPositionY);\n --pf-c-form-control--m-icon--m-warning--BackgroundSize: var(--pf-c-form-control--m-warning--BackgroundSize), var(--pf-c-form-control--m-icon--BackgroundSizeX) var(--pf-c-form-control--m-icon--BackgroundSizeY);\n --pf-c-form-control--m-calendar--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23aaabac' d='M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E");\n --pf-c-form-control--m-clock--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23aaabac' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z'/%3E%3C/svg%3E");\n --pf-c-form-control__select--PaddingRight: calc(var(--pf-global--spacer--lg, 1.5rem) + var(--pf-c-form-control--BorderWidth) + var(--pf-c-form-control--BorderWidth));\n --pf-c-form-control__select--PaddingLeft: calc(var(--pf-global--spacer--sm, 0.5rem) - var(--pf-c-form-control--BorderWidth));\n --pf-c-form-control__select--BackgroundUrl: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23urrentColor' d='M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z'/%3E%3C/svg%3E");\n --pf-c-form-control__select--BackgroundSize: .625em;\n --pf-c-form-control__select--BackgroundPositionX: calc(100% - var(--pf-global--spacer--md, 1rem) + 1px);\n --pf-c-form-control__select--BackgroundPositionY: center;\n --pf-c-form-control__select--BackgroundPosition: var(--pf-c-form-control__select--BackgroundPositionX) var(--pf-c-form-control__select--BackgroundPositionY);\n --pf-c-form-control__select--success--PaddingRight: var(--pf-global--spacer--3xl, 4rem);\n --pf-c-form-control__select--success--BackgroundPosition: calc(var(--pf-c-form-control__select--BackgroundPositionX) - var(--pf-global--spacer--lg, 1.5rem));\n --pf-c-form-control__select--m-warning--PaddingRight: var(--pf-global--spacer--3xl, 4rem);\n --pf-c-form-control__select--m-warning--BackgroundPosition: calc(var(--pf-c-form-control__select--BackgroundPositionX) - var(--pf-global--spacer--lg, 1.5rem) + 0.0625rem);\n --pf-c-form-control__select--invalid--PaddingRight: var(--pf-global--spacer--3xl, 4rem);\n --pf-c-form-control__select--invalid--BackgroundPosition: calc(var(--pf-c-form-control__select--BackgroundPositionX) - var(--pf-global--spacer--lg, 1.5rem));\n --pf-c-form-control--textarea--Width: var(--pf-c-form-control--Width);\n --pf-c-form-control--textarea--Height: auto;\n --pf-c-form-control--textarea--success--BackgroundPositionY: var(--pf-c-form-control--PaddingLeft);\n --pf-c-form-control--textarea--m-warning--BackgroundPositionY: var(--pf-c-form-control--PaddingLeft);\n --pf-c-form-control--textarea--invalid--BackgroundPositionY: var(--pf-c-form-control--PaddingLeft);\n --pf-c-form-control--m-icon-sprite--success--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%233e8635' d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite--m-warning--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23f0ab00' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346 7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite--invalid--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23c9190b' d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346 7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite__select--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23151515' d='M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite--m-search--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%236a6e73' d='M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite--m-calendar--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%236a6e73' d='M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite--m-clock--BackgroundUrl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%236a6e73' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z'/%3E%3C/svg%3E%0A");\n --pf-c-form-control--m-icon-sprite__select--BackgroundSize: var(--pf-c-form-control--FontSize);\n --pf-c-form-control--m-icon-sprite__select--BackgroundPositionX: calc(100% - var(--pf-global--spacer--md, 1rem) + 7px);\n --pf-c-form-control--m-icon-sprite__select--success--BackgroundPosition: calc(100% - var(--pf-global--spacer--md, 1rem) + 1px - var(--pf-global--spacer--lg));\n --pf-c-form-control--m-icon-sprite__select--m-warning--BackgroundPosition: calc(100% - var(--pf-global--spacer--md, 1rem) - var(--pf-global--spacer--lg) + 0.0625rem);\n --pf-c-form-control--m-icon-sprite__select--invalid--BackgroundPosition: calc(100% - var(--pf-global--spacer--md, 1rem) - var(--pf-global--spacer--lg));\n}\n`;
|
|
11
11
|
import '@patternfly/elements/pf-button/pf-button.js';
|
|
12
12
|
import '@patternfly/elements/pf-icon/pf-icon.js';
|
|
13
13
|
import '@patternfly/elements/pf-tooltip/pf-tooltip.js';
|
|
14
14
|
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
export class PfClipboardCopyCopiedEvent extends Event {
|
|
16
|
+
constructor(text) {
|
|
17
|
+
super('copy', { bubbles: true });
|
|
18
|
+
this.text = text;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
let PfClipboardCopy = class PfClipboardCopy extends LitElement {
|
|
21
22
|
constructor() {
|
|
22
23
|
super(...arguments);
|
|
23
24
|
_PfClipboardCopy_instances.add(this);
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
-
|
|
27
|
-
this.
|
|
25
|
+
/** Tooltip message to display when clicking the copy button */
|
|
26
|
+
this.clickTip = 'Successfully copied to clipboard!';
|
|
27
|
+
/** Tooltip message to display when hover the copy button */
|
|
28
|
+
this.hoverTip = 'Copy to clipboard';
|
|
29
|
+
/** Accessible label to use on the text input. */
|
|
30
|
+
this.accessibleTextLabel = 'Copyable input';
|
|
31
|
+
/** Accessible label to use on the toggle button. */
|
|
32
|
+
this.accessibleToggleLabel = 'Show content';
|
|
33
|
+
/** Delay in ms before the tooltip appears. */
|
|
28
34
|
this.entryDelay = 300;
|
|
35
|
+
/** Delay in ms before the tooltip disappears. */
|
|
29
36
|
this.exitDelay = 1500;
|
|
37
|
+
/** Flag to determine if inline clipboard copy should be block styling */
|
|
30
38
|
this.block = false;
|
|
39
|
+
/** Flag to determine if clipboard copy content includes code */
|
|
31
40
|
this.code = false;
|
|
41
|
+
/** Flag to determine if clipboard copy is in the expanded state */
|
|
32
42
|
this.expanded = false;
|
|
33
|
-
/**
|
|
34
|
-
* Implies not `inline`.
|
|
35
|
-
*/
|
|
43
|
+
/** Implies not `inline`. */
|
|
36
44
|
this.expandable = false;
|
|
45
|
+
/** Flag to show if the input is read only. */
|
|
37
46
|
this.readonly = false;
|
|
38
|
-
/**
|
|
39
|
-
* Implies not expandable. Overrules `expandable`.
|
|
40
|
-
*/
|
|
47
|
+
/** Implies not expandable. Overrules `expandable`. */
|
|
41
48
|
this.inline = false;
|
|
49
|
+
/** Flag to determine if inline clipboard copy should have compact styling */
|
|
42
50
|
this.compact = false;
|
|
51
|
+
/** String to copy */
|
|
43
52
|
this.value = '';
|
|
44
53
|
_PfClipboardCopy_copied.set(this, false);
|
|
45
54
|
_PfClipboardCopy_mo.set(this, new MutationObserver(() => __classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onMutation).call(this)));
|
|
@@ -57,33 +66,30 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
|
|
|
57
66
|
render() {
|
|
58
67
|
const { expanded, expandable, inline, compact, code, block, readonly } = this;
|
|
59
68
|
return html `
|
|
60
|
-
<div
|
|
69
|
+
<div id="container" class="${classMap({ code, expanded, inline, compact, block })}">
|
|
61
70
|
<div id="input-group">
|
|
62
71
|
<div id="wrapper">
|
|
63
72
|
<pf-button id="expand-button"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
@click="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onClick)}">
|
|
73
|
+
variant="control"
|
|
74
|
+
label="EXPAND"
|
|
75
|
+
?inert="${!expandable}"
|
|
76
|
+
@click="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onClick)}">
|
|
69
77
|
<pf-icon icon="chevron-right"></pf-icon>
|
|
70
78
|
</pf-button>
|
|
71
79
|
</div>
|
|
72
80
|
<span ?hidden="${!(inline || compact)}">${this.value}</span>
|
|
73
|
-
<input
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
aria-label="${this.textAriaLabel}">
|
|
81
|
+
<input aria-label="${this.accessibleTextLabel}"
|
|
82
|
+
?hidden="${inline || compact}"
|
|
83
|
+
?disabled="${expanded || readonly}"
|
|
84
|
+
.value="${this.value}"
|
|
85
|
+
@input="${__classPrivateFieldGet(this, _PfClipboardCopy_instances, "m", _PfClipboardCopy_onChange)}">
|
|
79
86
|
<pf-tooltip>
|
|
80
87
|
<pf-button id="copy-button"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<pf-icon icon="copy"></pf-icon>
|
|
88
|
+
icon="copy"
|
|
89
|
+
?plain="${inline || compact}"
|
|
90
|
+
variant="${ifDefined(!(inline || compact) ? 'control' : undefined)}"
|
|
91
|
+
label="${this.hoverTip}"
|
|
92
|
+
@click="${this.copy}">
|
|
87
93
|
</pf-button>
|
|
88
94
|
<span slot="content">${__classPrivateFieldGet(this, _PfClipboardCopy_copied, "f") ? this.clickTip : this.hoverTip}</span>
|
|
89
95
|
</pf-tooltip>
|
|
@@ -97,8 +103,12 @@ let PfClipboardCopy = class PfClipboardCopy extends BaseClipboardCopy {
|
|
|
97
103
|
</div>
|
|
98
104
|
`;
|
|
99
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Copy the current value to the clipboard.
|
|
108
|
+
*/
|
|
100
109
|
async copy() {
|
|
101
|
-
await
|
|
110
|
+
await navigator.clipboard.writeText(this.value);
|
|
111
|
+
this.dispatchEvent(new PfClipboardCopyCopiedEvent(this.value));
|
|
102
112
|
await sleep(this.entryDelay);
|
|
103
113
|
__classPrivateFieldSet(this, _PfClipboardCopy_copied, true, "f");
|
|
104
114
|
this.requestUpdate();
|
|
@@ -128,11 +138,12 @@ _PfClipboardCopy_dedent = function _PfClipboardCopy_dedent(str) {
|
|
|
128
138
|
const match = stripped.match(/^\s+/);
|
|
129
139
|
return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;
|
|
130
140
|
};
|
|
131
|
-
PfClipboardCopy.styles = [
|
|
141
|
+
PfClipboardCopy.styles = [formControlStyles, styles];
|
|
132
142
|
PfClipboardCopy.shadowRootOptions = {
|
|
133
|
-
...
|
|
143
|
+
...LitElement.shadowRootOptions,
|
|
134
144
|
delegatesFocus: true,
|
|
135
145
|
};
|
|
146
|
+
PfClipboardCopy.version = "4.0.0";
|
|
136
147
|
__decorate([
|
|
137
148
|
property({ attribute: 'click-tip' })
|
|
138
149
|
], PfClipboardCopy.prototype, "clickTip", void 0);
|
|
@@ -140,11 +151,11 @@ __decorate([
|
|
|
140
151
|
property({ attribute: 'hover-tip' })
|
|
141
152
|
], PfClipboardCopy.prototype, "hoverTip", void 0);
|
|
142
153
|
__decorate([
|
|
143
|
-
property({ attribute: 'text-label' })
|
|
144
|
-
], PfClipboardCopy.prototype, "
|
|
154
|
+
property({ attribute: 'accessible-text-label' })
|
|
155
|
+
], PfClipboardCopy.prototype, "accessibleTextLabel", void 0);
|
|
145
156
|
__decorate([
|
|
146
|
-
property({ attribute: 'toggle-label' })
|
|
147
|
-
], PfClipboardCopy.prototype, "
|
|
157
|
+
property({ attribute: 'accessible-toggle-label' })
|
|
158
|
+
], PfClipboardCopy.prototype, "accessibleToggleLabel", void 0);
|
|
148
159
|
__decorate([
|
|
149
160
|
property({ type: Number, attribute: 'entry-delay' })
|
|
150
161
|
], PfClipboardCopy.prototype, "entryDelay", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-clipboard-copy.js","sourceRoot":"","sources":["pf-clipboard-copy.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;;;AAI3D,OAAO,6CAA6C,CAAC;AACrD,OAAO,yCAAyC,CAAC;AACjD,OAAO,+CAA+C,CAAC;AAEvD,MAAM,KAAK,GAAG,CAAC,EAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,iBAAiB;IAA/C;;;QAQiC,aAAQ,GAAG,QAAQ,CAAC;QAEpB,aAAQ,GAAG,MAAM,CAAC;QAEjB,kBAAa,GAAG,gBAAgB,CAAC;QAE/B,oBAAe,GAAG,cAAc,CAAC;QAEpB,eAAU,GAAG,GAAG,CAAC;QAElB,cAAS,GAAG,IAAI,CAAC;QAE1B,UAAK,GAAG,KAAK,CAAC;QAEd,SAAI,GAAG,KAAK,CAAC;QAEb,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QACyC,eAAU,GAAG,KAAK,CAAC;QAEnB,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QACyC,WAAM,GAAG,KAAK,CAAC;QAEf,YAAO,GAAG,KAAK,CAAC;QAEvC,UAAK,GAAG,EAAE,CAAC;QAEhC,kCAAU,KAAK,EAAC;QAEhB,8BAAM,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,uBAAA,IAAI,+DAAY,MAAhB,IAAI,CAAc,CAAC,EAAC;IAyFvD,CAAC;IAvFC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,uBAAA,IAAI,2BAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,uBAAA,IAAI,+DAAY,MAAhB,IAAI,CAAc,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC9E,OAAO,IAAI,CAAA;8BACe,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;;;;;;kCAOhD,CAAC,UAAU;kCACX,uBAAA,IAAI,4DAAS;;;;2BAIpB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK;;yBAErC,MAAM,IAAI,OAAO;2BACf,QAAQ,IAAI,QAAQ;wBACvB,IAAI,CAAC,KAAK;wBACV,uBAAA,IAAI,6DAAU;4BACV,IAAI,CAAC,aAAa;;;;mCAIX,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;iCACzD,IAAI,CAAC,QAAQ;;kCAEZ,IAAI,CAAC,IAAI;;;mCAGR,uBAAA,IAAI,+BAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;;;;4BAInD,IAAI,CAAC,KAAK;+BACP,IAAI,CAAC,QAAQ;6BACf,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC;4BAC1B,uBAAA,IAAI,6DAAU;;;KAGrC,CAAC;IACJ,CAAC;IAyBQ,KAAK,CAAC,IAAI;QACjB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,uBAAA,IAAI,2BAAW,IAAI,MAAA,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,uBAAA,IAAI,2BAAW,KAAK,MAAA,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;;;;;;IA9BC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,CAAC;+DAES,CAAQ;IAChB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,IAAI,mBAAmB,CAAC;IACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,CAAC;;IAGC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,uBAAA,IAAI,2DAAQ,MAAZ,IAAI,EAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAC1F,CAAC,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAClF,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;2DAEO,GAAW;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9E,CAAC;AAzHe,sBAAM,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,AAAxC,CAAyC;AAEtC,iCAAiB,GAAG;IAC3C,GAAG,iBAAiB,CAAC,iBAAiB;IACtC,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;AAEoC;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;iDAAqB;AAEpB;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;iDAAmB;AAEjB;IAAtC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;sDAAkC;AAE/B;IAAxC,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;wDAAkC;AAEpB;IAArD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;mDAAkB;AAElB;IAApD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;kDAAkB;AAE1B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAe;AAEd;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAc;AAEb;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAkB;AAKjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAAoB;AAEnB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAkB;AAKjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAEf;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAiB;AAEvC;IAApB,QAAQ,EAAE;8CAAqB;AAxCrB,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe,CAqI3B","sourcesContent":["import { html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { BaseClipboardCopy } from './BaseClipboardCopy.js';\n\nimport styles from './pf-clipboard-copy.css';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-tooltip/pf-tooltip.js';\n\nconst sleep = (ms?: number) => new Promise(r => setTimeout(r, ms));\n\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends BaseClipboardCopy {\n static readonly styles = [...BaseClipboardCopy.styles, styles];\n\n static override readonly shadowRootOptions = {\n ...BaseClipboardCopy.shadowRootOptions,\n delegatesFocus: true,\n };\n\n @property({ attribute: 'click-tip' }) clickTip = 'Copied';\n\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy';\n\n @property({ attribute: 'text-label' }) textAriaLabel = 'Copyable input';\n\n @property({ attribute: 'toggle-label' }) toggleAriaLabel = 'Show content';\n\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n @property({ type: Boolean, reflect: true }) block = false;\n\n @property({ type: Boolean, reflect: true }) code = false;\n\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /**\n * Implies not `inline`.\n */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * Implies not expandable. Overrules `expandable`.\n */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n @property({ type: Boolean, reflect: true }) compact = false;\n\n @property() override value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback() {\n super.connectedCallback();\n this.#mo.observe(this, { characterData: true });\n this.#onMutation();\n }\n\n /**\n * @todo fix the collapsed whitespace between the end of the \"inline-compact\" variant and the text node.\n * This demonstrates the collapsed whitespace issue.\n * The extra space between the closing slot tag and the closing template literal results in a collapsed whitespace.\n */\n render() {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div class=\"container ${classMap({ code, expanded, inline, compact, block })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n plain\n variant=\"control\"\n label=\"EXPAND\"\n ?inert=\"${!expandable}\"\n @click=\"${this.#onClick}\">\n <pf-icon icon=\"chevron-right\"></pf-icon>\n </pf-button>\n </div>\n <span ?hidden=\"${!(inline || compact)}\">${this.value}</span>\n <input\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\"\n aria-label=\"${this.textAriaLabel}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n plain\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n size=\"lg\"\n @click=\"${this.copy}\">\n <pf-icon icon=\"copy\"></pf-icon>\n </pf-button>\n <span slot=\"content\">${this.#copied ? this.clickTip : this.hoverTip}</span>\n </pf-tooltip>\n <slot name=\"actions\"></slot>\n </div>\n <textarea .value=\"${this.value}\"\n .disabled=\"${this.readonly}\"\n ?hidden=\"${!(expandable && expanded)}\"\n @input=\"${this.#onChange}\">\n </textarea>\n </div>\n `;\n }\n\n #onClick() {\n this.expanded = !this.expanded;\n }\n\n #onChange(e: Event) {\n const { value } = e.target as HTMLInputElement || HTMLTextAreaElement;\n this.value = value;\n }\n\n #onMutation() {\n if (this.childNodes.length > 0) {\n this.value = this.getAttribute('value') ?? this.#dedent(Array.from(this.childNodes, child =>\n (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')\n .join(''));\n }\n }\n\n #dedent(str: string): string {\n const stripped = str.replace(/^\\n/, '');\n const match = stripped.match(/^\\s+/);\n return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;\n }\n\n override async copy() {\n await super.copy();\n await sleep(this.entryDelay);\n this.#copied = true;\n this.requestUpdate();\n await sleep(this.exitDelay);\n this.#copied = false;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-clipboard-copy': PfClipboardCopy;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pf-clipboard-copy.js","sourceRoot":"","sources":["pf-clipboard-copy.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport styles from './pf-clipboard-copy.css';\nimport formControlStyles from '../form-control.css';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\nimport '@patternfly/elements/pf-tooltip/pf-tooltip.js';\n\nconst sleep = (ms?: number) => new Promise(r => setTimeout(r, ms));\n\nexport class PfClipboardCopyCopiedEvent extends Event {\n constructor(public text: string) {\n super('copy', { bubbles: true });\n }\n}\n\n/**\n * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.\n * @slot - Place content to copy here, or use the `value` attribute\n * @slot actions - Place additional action buttons here\n * @fires {PfClipboardCopyCopiedEvent} copy - when the text snippet is successfully copied.\n * @cssprop [--pf-c-clipboard-copy__toggle-icon--Transition=.2s ease-in 0s]\n * @cssprop [--pf-c-clipboard-copy--m-expanded__toggle-icon--Rotate=90deg]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingTop=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingRight=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingBottom=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--PaddingLeft=var(--pf-global--spacer--md, 1rem)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BackgroundColor=var(--pf-global--BackgroundColor--light-100, #fff)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderTopWidth=0]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderRightWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderBottomWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderLeftWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--BorderColor=var(--pf-global--BorderColor--100, #d2d2d2)]\n * @cssprop [--pf-c-clipboard-copy__expandable-content--OutlineOffset=calc(-1 * var(--pf-global--spacer--xs, 0.25rem))]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingTop=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingBottom=0]\n * @cssprop [--pf-c-clipboard-copy--m-inline--PaddingLeft=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy--m-inline--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontFamily=var(--pf-global--FontFamily--monospace, \"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace)]\n * @cssprop [--pf-c-clipboard-copy__text--m-code--FontSize=var(--pf-global--FontSize--sm, 0.875rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginTop=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--MarginBottom=calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingRight=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-clipboard-copy__actions-item--button--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]\n */\n@customElement('pf-clipboard-copy')\nexport class PfClipboardCopy extends LitElement {\n static readonly styles: CSSStyleSheet[] = [formControlStyles, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Tooltip message to display when clicking the copy button */\n @property({ attribute: 'click-tip' }) clickTip = 'Successfully copied to clipboard!';\n\n /** Tooltip message to display when hover the copy button */\n @property({ attribute: 'hover-tip' }) hoverTip = 'Copy to clipboard';\n\n /** Accessible label to use on the text input. */\n @property({ attribute: 'accessible-text-label' }) accessibleTextLabel = 'Copyable input';\n\n /** Accessible label to use on the toggle button. */\n @property({ attribute: 'accessible-toggle-label' }) accessibleToggleLabel = 'Show content';\n\n /** Delay in ms before the tooltip appears. */\n @property({ type: Number, attribute: 'entry-delay' }) entryDelay = 300;\n\n /** Delay in ms before the tooltip disappears. */\n @property({ type: Number, attribute: 'exit-delay' }) exitDelay = 1500;\n\n /** Flag to determine if inline clipboard copy should be block styling */\n @property({ type: Boolean, reflect: true }) block = false;\n\n /** Flag to determine if clipboard copy content includes code */\n @property({ type: Boolean, reflect: true }) code = false;\n\n /** Flag to determine if clipboard copy is in the expanded state */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /** Implies not `inline`. */\n @property({ type: Boolean, reflect: true }) expandable = false;\n\n /** Flag to show if the input is read only. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Implies not expandable. Overrules `expandable`. */\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /** Flag to determine if inline clipboard copy should have compact styling */\n @property({ type: Boolean, reflect: true }) compact = false;\n\n /** String to copy */\n @property() value = '';\n\n #copied = false;\n\n #mo = new MutationObserver(() => this.#onMutation());\n\n connectedCallback(): void {\n super.connectedCallback();\n this.#mo.observe(this, { characterData: true });\n this.#onMutation();\n }\n\n /**\n * @todo fix the collapsed whitespace between the end of the \"inline-compact\" variant and the text node.\n * This demonstrates the collapsed whitespace issue.\n * The extra space between the closing slot tag and the closing template literal results in a collapsed whitespace.\n */\n render(): TemplateResult<1> {\n const { expanded, expandable, inline, compact, code, block, readonly } = this;\n return html`\n <div id=\"container\" class=\"${classMap({ code, expanded, inline, compact, block })}\">\n <div id=\"input-group\">\n <div id=\"wrapper\">\n <pf-button id=\"expand-button\"\n variant=\"control\"\n label=\"EXPAND\"\n ?inert=\"${!expandable}\"\n @click=\"${this.#onClick}\">\n <pf-icon icon=\"chevron-right\"></pf-icon>\n </pf-button>\n </div>\n <span ?hidden=\"${!(inline || compact)}\">${this.value}</span>\n <input aria-label=\"${this.accessibleTextLabel}\"\n ?hidden=\"${inline || compact}\"\n ?disabled=\"${expanded || readonly}\"\n .value=\"${this.value}\"\n @input=\"${this.#onChange}\">\n <pf-tooltip>\n <pf-button id=\"copy-button\"\n icon=\"copy\"\n ?plain=\"${inline || compact}\"\n variant=\"${ifDefined(!(inline || compact) ? 'control' : undefined)}\"\n label=\"${this.hoverTip}\"\n @click=\"${this.copy}\">\n </pf-button>\n <span slot=\"content\">${this.#copied ? this.clickTip : this.hoverTip}</span>\n </pf-tooltip>\n <slot name=\"actions\"></slot>\n </div>\n <textarea .value=\"${this.value}\"\n .disabled=\"${this.readonly}\"\n ?hidden=\"${!(expandable && expanded)}\"\n @input=\"${this.#onChange}\">\n </textarea>\n </div>\n `;\n }\n\n #onClick() {\n this.expanded = !this.expanded;\n }\n\n #onChange(e: Event) {\n const { value } = e.target as HTMLInputElement || HTMLTextAreaElement;\n this.value = value;\n }\n\n #onMutation() {\n if (this.childNodes.length > 0) {\n this.value = this.getAttribute('value') ?? this.#dedent(Array.from(this.childNodes, child =>\n (child instanceof Element || child instanceof Text) ? (child.textContent ?? '') : '')\n .join(''));\n }\n }\n\n #dedent(str: string): string {\n const stripped = str.replace(/^\\n/, '');\n const match = stripped.match(/^\\s+/);\n return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;\n }\n\n /**\n * Copy the current value to the clipboard.\n */\n async copy(): Promise<void> {\n await navigator.clipboard.writeText(this.value);\n this.dispatchEvent(new PfClipboardCopyCopiedEvent(this.value));\n await sleep(this.entryDelay);\n this.#copied = true;\n this.requestUpdate();\n await sleep(this.exitDelay);\n this.#copied = false;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-clipboard-copy': PfClipboardCopy;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { test } from '@playwright/test';
|
|
2
2
|
import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
|
|
3
|
+
import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
|
|
3
4
|
const tagName = 'pf-clipboard-copy';
|
|
4
5
|
test.describe(tagName, () => {
|
|
5
6
|
test('snapshot', async ({ page }) => {
|
|
@@ -7,5 +8,16 @@ test.describe(tagName, () => {
|
|
|
7
8
|
await componentPage.navigate();
|
|
8
9
|
await componentPage.snapshot();
|
|
9
10
|
});
|
|
11
|
+
test('ssr', async ({ browser }) => {
|
|
12
|
+
const fixture = new SSRPage({
|
|
13
|
+
tagName,
|
|
14
|
+
browser,
|
|
15
|
+
demoDir: new URL('../demo/', import.meta.url),
|
|
16
|
+
importSpecifiers: [
|
|
17
|
+
`@patternfly/elements/${tagName}/${tagName}.js`,
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
await fixture.snapshots();
|
|
21
|
+
});
|
|
10
22
|
});
|
|
11
23
|
//# sourceMappingURL=pf-clipboard-copy.e2e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-clipboard-copy.e2e.js","sourceRoot":"","sources":["pf-clipboard-copy.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"pf-clipboard-copy.e2e.js","sourceRoot":"","sources":["pf-clipboard-copy.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,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;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-clipboard-copy';\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 test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n});\n"]}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
:host {
|
|
2
|
+
display: block;
|
|
2
3
|
background-color: var(--pf-c-code-block--BackgroundColor, #f0f0f0);
|
|
3
4
|
font-size: var(--pf-c-code-block__pre--FontSize, 0.875rem);
|
|
4
5
|
font-family: var(--pf-c-code-block__pre--FontFamily, "Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace);
|
|
5
6
|
}
|
|
6
7
|
|
|
8
|
+
[hidden] {
|
|
9
|
+
display: none !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
7
12
|
#container {
|
|
13
|
+
margin: 0;
|
|
8
14
|
padding-top: var(--pf-c-code-block__content--PaddingTop, 1rem);
|
|
9
15
|
padding-right: var(--pf-c-code-block__content--PaddingRight, 1rem);
|
|
10
16
|
padding-bottom: var(--pf-c-code-block__content--PaddingBottom, 1rem);
|
|
@@ -15,10 +21,6 @@
|
|
|
15
21
|
border-bottom: var(--pf-c-code-block__header--BorderBottomWidth, 1px) solid var(--pf-c-code-block__header--BorderBottomColor, #d2d2d2);
|
|
16
22
|
}
|
|
17
23
|
|
|
18
|
-
#container {
|
|
19
|
-
margin: 0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
24
|
pre {
|
|
23
25
|
margin: 0;
|
|
24
26
|
}
|
|
@@ -46,6 +48,7 @@ button svg {
|
|
|
46
48
|
color: #151515;
|
|
47
49
|
margin-right: 12px;
|
|
48
50
|
transition: .2s ease-in 0s;
|
|
51
|
+
vertical-align: -0.125em;
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
.expanded button svg {
|
|
@@ -1,31 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
* A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.
|
|
4
|
-
*
|
|
5
|
-
* @slot code
|
|
6
|
-
* The slot to put the code in
|
|
7
|
-
* @slot expandable-code
|
|
8
|
-
* The slot to put the code in that should be revealed when the "Show more" button is
|
|
9
|
-
* clicked to expand the code-block
|
|
10
|
-
* @slot actions
|
|
11
|
-
* Contains the actions for the code-block. For example, copy to clipboard.
|
|
12
|
-
* @attr {boolean} expanded {@default `false`}
|
|
13
|
-
* Indicates if the code-block has been expanded
|
|
14
|
-
* @cssprop {<color>} --pf-c-code-block--BackgroundColor {@default `#f0f0f0`}
|
|
15
|
-
* @cssprop {<length>} --pf-c-code-block__header--BorderBottomWidth {@default `1px`}
|
|
16
|
-
* @cssprop {<color>} --pf-c-code-block__header--BorderBottomColor {@default `#d2d2d2`}
|
|
17
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingTop {@default `1rem`}
|
|
18
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingRight {@default `1rem`}
|
|
19
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingBottom {@default `1rem`}
|
|
20
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingLeft {@default `1rem`}
|
|
21
|
-
* @cssprop {<length>} --pf-c-code-block__pre--FontSize {@default `0.875rem`}
|
|
22
|
-
* @cssprop {<string>} --pf-c-code-block__pre--FontFamily {@default `"Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace`}
|
|
23
|
-
*/
|
|
24
|
-
export declare class PfCodeBlock extends BaseCodeBlock {
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
|
+
export declare class PfCodeBlock extends LitElement {
|
|
25
3
|
#private;
|
|
26
4
|
static readonly styles: CSSStyleSheet[];
|
|
5
|
+
/** Flag for whether the code block is expanded */
|
|
27
6
|
expanded: boolean;
|
|
28
|
-
render():
|
|
7
|
+
render(): TemplateResult<1>;
|
|
29
8
|
}
|
|
30
9
|
declare global {
|
|
31
10
|
interface HTMLElementTagNameMap {
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
var _PfCodeBlock_instances,
|
|
1
|
+
var _PfCodeBlock_instances, _PfCodeBlock_expandedContent_get, _PfCodeBlock_content_get, _PfCodeBlock_toggle;
|
|
2
2
|
import { __classPrivateFieldGet, __decorate } from "tslib";
|
|
3
|
-
import { html } from 'lit';
|
|
3
|
+
import { LitElement, html } from 'lit';
|
|
4
4
|
import { customElement } from 'lit/decorators/custom-element.js';
|
|
5
5
|
import { property } from 'lit/decorators/property.js';
|
|
6
6
|
import { classMap } from 'lit/directives/class-map.js';
|
|
7
|
-
import { BaseCodeBlock } from './BaseCodeBlock.js';
|
|
8
7
|
import { css } from "lit";
|
|
9
|
-
const styles = css `:host {\n background-color: var(--pf-c-code-block--BackgroundColor, #f0f0f0);\n font-size: var(--pf-c-code-block__pre--FontSize, 0.875rem);\n font-family: var(--pf-c-code-block__pre--FontFamily, "Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace);\n}\n\n#container {\n padding-top: var(--pf-c-code-block__content--PaddingTop, 1rem);\n padding-right: var(--pf-c-code-block__content--PaddingRight, 1rem);\n padding-bottom: var(--pf-c-code-block__content--PaddingBottom, 1rem);\n padding-left: var(--pf-c-code-block__content--PaddingLeft, 1rem);\n}\n\n#header {\n border-bottom: var(--pf-c-code-block__header--BorderBottomWidth, 1px) solid var(--pf-c-code-block__header--BorderBottomColor, #d2d2d2);\n}\n\
|
|
8
|
+
const styles = css `:host {\n display: block;\n background-color: var(--pf-c-code-block--BackgroundColor, #f0f0f0);\n font-size: var(--pf-c-code-block__pre--FontSize, 0.875rem);\n font-family: var(--pf-c-code-block__pre--FontFamily, "Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace);\n}\n\n[hidden] {\n display: none !important;\n}\n\n#container {\n margin: 0;\n padding-top: var(--pf-c-code-block__content--PaddingTop, 1rem);\n padding-right: var(--pf-c-code-block__content--PaddingRight, 1rem);\n padding-bottom: var(--pf-c-code-block__content--PaddingBottom, 1rem);\n padding-left: var(--pf-c-code-block__content--PaddingLeft, 1rem);\n}\n\n#header {\n border-bottom: var(--pf-c-code-block__header--BorderBottomWidth, 1px) solid var(--pf-c-code-block__header--BorderBottomColor, #d2d2d2);\n}\n\npre {\n margin: 0;\n}\n\nslot[name="actions"] {\n display: flex;\n justify-content: end;\n}\n\n#expanded {\n display: inline;\n}\n\nbutton {\n display: flex;\n background: none;\n border: none;\n padding: 6px 16px 6px 0;\n color: #06c;\n cursor: pointer;\n font-size: 16px;\n}\n\nbutton svg {\n color: #151515;\n margin-right: 12px;\n transition: .2s ease-in 0s;\n vertical-align: -0.125em;\n}\n\n.expanded button svg {\n transform: rotate(-90deg);\n}\n`;
|
|
10
9
|
/**
|
|
11
10
|
* A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.
|
|
12
|
-
*
|
|
13
11
|
* @slot code
|
|
14
12
|
* The slot to put the code in
|
|
15
13
|
* @slot expandable-code
|
|
@@ -17,22 +15,28 @@ const styles = css `:host {\n background-color: var(--pf-c-code-block--Backgrou
|
|
|
17
15
|
* clicked to expand the code-block
|
|
18
16
|
* @slot actions
|
|
19
17
|
* Contains the actions for the code-block. For example, copy to clipboard.
|
|
20
|
-
* @attr {boolean} expanded
|
|
18
|
+
* @attr {boolean} [expanded=false]
|
|
21
19
|
* Indicates if the code-block has been expanded
|
|
22
|
-
* @cssprop {<color>} --pf-c-code-block--BackgroundColor
|
|
23
|
-
* @cssprop {<length>} --pf-c-code-block__header--BorderBottomWidth
|
|
24
|
-
* @cssprop {<color>} --pf-c-code-block__header--BorderBottomColor
|
|
25
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingTop
|
|
26
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingRight
|
|
27
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingBottom
|
|
28
|
-
* @cssprop {<length>} --pf-c-code-block__content--PaddingLeft
|
|
29
|
-
* @cssprop {<length>} --pf-c-code-block__pre--FontSize
|
|
30
|
-
* @cssprop {<string>} --pf-c-code-block__pre--FontFamily
|
|
20
|
+
* @cssprop {<color>} [--pf-c-code-block--BackgroundColor=#f0f0f0]
|
|
21
|
+
* @cssprop {<length>} [--pf-c-code-block__header--BorderBottomWidth=1px]
|
|
22
|
+
* @cssprop {<color>} [--pf-c-code-block__header--BorderBottomColor=#d2d2d2]
|
|
23
|
+
* @cssprop {<length>} [--pf-c-code-block__content--PaddingTop=1rem]
|
|
24
|
+
* @cssprop {<length>} [--pf-c-code-block__content--PaddingRight=1rem]
|
|
25
|
+
* @cssprop {<length>} [--pf-c-code-block__content--PaddingBottom=1rem]
|
|
26
|
+
* @cssprop {<length>} [--pf-c-code-block__content--PaddingLeft=1rem]
|
|
27
|
+
* @cssprop {<length>} [--pf-c-code-block__pre--FontSize=0.875rem]
|
|
28
|
+
* @cssprop {<string>} [--pf-c-code-block__pre--FontFamily="Liberation Mono", consolas, "SFMono-Regular", menlo, monaco, "Courier New", monospace]
|
|
31
29
|
*/
|
|
32
|
-
|
|
30
|
+
function dedent(str) {
|
|
31
|
+
const stripped = str.replace(/^\n/, '');
|
|
32
|
+
const match = stripped.match(/^\s+/);
|
|
33
|
+
return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;
|
|
34
|
+
}
|
|
35
|
+
let PfCodeBlock = class PfCodeBlock extends LitElement {
|
|
33
36
|
constructor() {
|
|
34
37
|
super(...arguments);
|
|
35
38
|
_PfCodeBlock_instances.add(this);
|
|
39
|
+
/** Flag for whether the code block is expanded */
|
|
36
40
|
this.expanded = false;
|
|
37
41
|
}
|
|
38
42
|
render() {
|
|
@@ -44,13 +48,19 @@ let PfCodeBlock = class PfCodeBlock extends BaseCodeBlock {
|
|
|
44
48
|
</div>
|
|
45
49
|
</div>
|
|
46
50
|
<div id="container" class="${classMap({ expanded })}">
|
|
47
|
-
<pre><code id="content">${this
|
|
48
|
-
|
|
51
|
+
<pre><code id="content">${__classPrivateFieldGet(this, _PfCodeBlock_instances, "a", _PfCodeBlock_content_get)}</code><code id="code-block-expand"
|
|
52
|
+
?hidden="${!expanded}">${__classPrivateFieldGet(this, _PfCodeBlock_instances, "a", _PfCodeBlock_expandedContent_get)}</code></pre>
|
|
49
53
|
<button ?hidden="${!__classPrivateFieldGet(this, _PfCodeBlock_instances, "a", _PfCodeBlock_expandedContent_get)}"
|
|
50
54
|
@click=${__classPrivateFieldGet(this, _PfCodeBlock_instances, "m", _PfCodeBlock_toggle)}
|
|
51
55
|
aria-expanded=${this.expanded}
|
|
52
56
|
aria-controls="code-block-expand">
|
|
53
|
-
<svg fill="currentColor"
|
|
57
|
+
<svg fill="currentColor"
|
|
58
|
+
height="1em"
|
|
59
|
+
width="1em"
|
|
60
|
+
viewBox="0 0 256 512"
|
|
61
|
+
aria-hidden="true"
|
|
62
|
+
role="img"><path
|
|
63
|
+
d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/></svg>
|
|
54
64
|
${!this.expanded ? 'Show more' : 'Show less'}
|
|
55
65
|
</button>
|
|
56
66
|
</div>
|
|
@@ -58,13 +68,24 @@ let PfCodeBlock = class PfCodeBlock extends BaseCodeBlock {
|
|
|
58
68
|
}
|
|
59
69
|
};
|
|
60
70
|
_PfCodeBlock_instances = new WeakSet();
|
|
71
|
+
_PfCodeBlock_expandedContent_get = function _PfCodeBlock_expandedContent_get() {
|
|
72
|
+
return this.querySelector?.('script[data-expand]')?.textContent ?? '';
|
|
73
|
+
};
|
|
74
|
+
_PfCodeBlock_content_get = function _PfCodeBlock_content_get() {
|
|
75
|
+
const script = this.querySelector?.('script[type]');
|
|
76
|
+
if (script?.type !== 'text/javascript-sample'
|
|
77
|
+
&& !!script?.type.match(/(j(ava)?|ecma|live)script/)) {
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return dedent(script?.textContent ?? '');
|
|
82
|
+
}
|
|
83
|
+
};
|
|
61
84
|
_PfCodeBlock_toggle = function _PfCodeBlock_toggle() {
|
|
62
85
|
this.expanded = !this.expanded;
|
|
63
86
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
PfCodeBlock.styles = [...BaseCodeBlock.styles, styles];
|
|
87
|
+
PfCodeBlock.styles = [styles];
|
|
88
|
+
PfCodeBlock.version = "4.0.0";
|
|
68
89
|
__decorate([
|
|
69
90
|
property({ type: Boolean, reflect: true })
|
|
70
91
|
], PfCodeBlock.prototype, "expanded", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pf-code-block.js","sourceRoot":"","sources":["pf-code-block.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;;;AAGvD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,SAAS,MAAM,CAAC,GAAW;IACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9E,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;;QAGL,kDAAkD;QACN,aAAQ,GAAG,KAAK,CAAC;;IAgBpD,MAAM;QACb,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAA;;;;;;mCAMoB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;kCACvB,uBAAA,IAAI,wDAAS;uBACxB,CAAC,QAAQ,KAAK,uBAAA,IAAI,gEAAiB;2BAC/B,CAAC,uBAAA,IAAI,gEAAiB;yBACxB,uBAAA,IAAI,mDAAQ;gCACL,IAAI,CAAC,QAAQ;;;;;;;;;YASjC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;;;KAGjD,CAAC;IACJ,CAAC;;;;IAvCC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,qBAAqB,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;AACxE,CAAC;;IAGC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAoB,cAAc,CAAC,CAAC;IACvE,IAAI,MAAM,EAAE,IAAI,KAAK,wBAAwB;WACtC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;;IA+BC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,CAAC;AAjDe,kBAAM,GAAoB,CAAC,MAAM,CAAC,AAA5B,CAA6B;;AAGP;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAJlD,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './pf-code-block.css';\n\n/**\n * A **code block** is a component that contains 2 or more lines of read-only code. The code in a code block can be copied to the clipboard.\n * @slot code\n * The slot to put the code in\n * @slot expandable-code\n * The slot to put the code in that should be revealed when the \"Show more\" button is\n * clicked to expand the code-block\n * @slot actions\n * Contains the actions for the code-block. For example, copy to clipboard.\n * @attr {boolean} [expanded=false]\n * Indicates if the code-block has been expanded\n * @cssprop {<color>} [--pf-c-code-block--BackgroundColor=#f0f0f0]\n * @cssprop {<length>} [--pf-c-code-block__header--BorderBottomWidth=1px]\n * @cssprop {<color>} [--pf-c-code-block__header--BorderBottomColor=#d2d2d2]\n * @cssprop {<length>} [--pf-c-code-block__content--PaddingTop=1rem]\n * @cssprop {<length>} [--pf-c-code-block__content--PaddingRight=1rem]\n * @cssprop {<length>} [--pf-c-code-block__content--PaddingBottom=1rem]\n * @cssprop {<length>} [--pf-c-code-block__content--PaddingLeft=1rem]\n * @cssprop {<length>} [--pf-c-code-block__pre--FontSize=0.875rem]\n * @cssprop {<string>} [--pf-c-code-block__pre--FontFamily=\"Liberation Mono\", consolas, \"SFMono-Regular\", menlo, monaco, \"Courier New\", monospace]\n */\n\nfunction dedent(str: string): string {\n const stripped = str.replace(/^\\n/, '');\n const match = stripped.match(/^\\s+/);\n return match ? stripped.replace(new RegExp(`^${match[0]}`, 'gm'), '') : str;\n}\n\n@customElement('pf-code-block')\nexport class PfCodeBlock extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Flag for whether the code block is expanded */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n get #expandedContent(): string {\n return this.querySelector?.('script[data-expand]')?.textContent ?? '';\n }\n\n get #content() {\n const script = this.querySelector?.<HTMLScriptElement>('script[type]');\n if (script?.type !== 'text/javascript-sample'\n && !!script?.type.match(/(j(ava)?|ecma|live)script/)) {\n return '';\n } else {\n return dedent(script?.textContent ?? '');\n }\n }\n\n override render(): TemplateResult<1> {\n const { expanded } = this;\n return html`\n <div id=\"header\">\n <div id=\"actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n <div id=\"container\" class=\"${classMap({ expanded })}\">\n <pre><code id=\"content\">${this.#content}</code><code id=\"code-block-expand\"\n ?hidden=\"${!expanded}\">${this.#expandedContent}</code></pre>\n <button ?hidden=\"${!this.#expandedContent}\"\n @click=${this.#toggle}\n aria-expanded=${this.expanded}\n aria-controls=\"code-block-expand\">\n <svg fill=\"currentColor\"\n height=\"1em\"\n width=\"1em\"\n viewBox=\"0 0 256 512\"\n aria-hidden=\"true\"\n role=\"img\"><path\n d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/></svg>\n ${!this.expanded ? 'Show more' : 'Show less'}\n </button>\n </div>\n `;\n }\n\n #toggle() {\n this.expanded = !this.expanded;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-code-block': PfCodeBlock;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { test } from '@playwright/test';
|
|
2
2
|
import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
|
|
3
|
+
import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
|
|
3
4
|
const tagName = 'pf-code-block';
|
|
4
5
|
test.describe(tagName, () => {
|
|
5
6
|
test('snapshot', async ({ page }) => {
|
|
@@ -7,5 +8,16 @@ test.describe(tagName, () => {
|
|
|
7
8
|
await componentPage.navigate();
|
|
8
9
|
await componentPage.snapshot();
|
|
9
10
|
});
|
|
11
|
+
test('ssr', async ({ browser }) => {
|
|
12
|
+
const fixture = new SSRPage({
|
|
13
|
+
tagName,
|
|
14
|
+
browser,
|
|
15
|
+
demoDir: new URL('../demo/', import.meta.url),
|
|
16
|
+
importSpecifiers: [
|
|
17
|
+
`@patternfly/elements/${tagName}/${tagName}.js`,
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
await fixture.snapshots();
|
|
21
|
+
});
|
|
10
22
|
});
|
|
11
23
|
//# sourceMappingURL=pf-code-block.e2e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pf-code-block.e2e.js","sourceRoot":"","sources":["pf-code-block.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"pf-code-block.e2e.js","sourceRoot":"","sources":["pf-code-block.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,eAAe,CAAC;AAEhC,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;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-code-block';\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 test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n});\n"]}
|
package/pf-dropdown/context.d.ts
CHANGED