@porsche-design-system/components-angular 4.5.0-rc.1 → 4.6.0-rc.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/CHANGELOG.md +10 -0
- package/bin/pds-skill.js +259 -0
- package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
- package/package.json +5 -2
- package/skill/SKILL.md +124 -0
- package/skill/references/components/p-accordion/examples/Default.ts +26 -0
- package/skill/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +30 -0
- package/skill/references/components/p-accordion/examples/StickySummary.ts +26 -0
- package/skill/references/components/p-accordion/p-accordion.md +95 -0
- package/skill/references/components/p-ai-tag/examples/Default.ts +13 -0
- package/skill/references/components/p-ai-tag/examples/WithinCheckbox.ts +33 -0
- package/skill/references/components/p-ai-tag/examples/WithinFormLabel.ts +40 -0
- package/skill/references/components/p-ai-tag/examples/WithinImage.ts +16 -0
- package/skill/references/components/p-ai-tag/examples/WithinInputSearch.ts +15 -0
- package/skill/references/components/p-ai-tag/examples/WithinRadioGroup.ts +32 -0
- package/skill/references/components/p-ai-tag/examples/WithinTable.ts +94 -0
- package/skill/references/components/p-ai-tag/examples/WithinText.ts +17 -0
- package/skill/references/components/p-ai-tag/p-ai-tag.md +47 -0
- package/skill/references/components/p-banner/examples/Customization.ts +37 -0
- package/skill/references/components/p-banner/examples/Default.ts +26 -0
- package/skill/references/components/p-banner/p-banner.md +92 -0
- package/skill/references/components/p-button/examples/Default.ts +15 -0
- package/skill/references/components/p-button/examples/Form.ts +26 -0
- package/skill/references/components/p-button/examples/FormAttribute.ts +30 -0
- package/skill/references/components/p-button/p-button.md +118 -0
- package/skill/references/components/p-button-pure/examples/CustomClickableArea.ts +15 -0
- package/skill/references/components/p-button-pure/examples/Default.ts +15 -0
- package/skill/references/components/p-button-pure/examples/Form.ts +26 -0
- package/skill/references/components/p-button-pure/examples/FormAttribute.ts +30 -0
- package/skill/references/components/p-button-pure/p-button-pure.md +118 -0
- package/skill/references/components/p-button-tile/examples/ColorScheme.ts +18 -0
- package/skill/references/components/p-button-tile/examples/Default.ts +21 -0
- package/skill/references/components/p-button-tile/examples/FooterSlot.ts +32 -0
- package/skill/references/components/p-button-tile/examples/Hyphens.ts +38 -0
- package/skill/references/components/p-button-tile/examples/UiBehaviour.ts +44 -0
- package/skill/references/components/p-button-tile/p-button-tile.md +115 -0
- package/skill/references/components/p-canvas/examples/Default.ts +13 -0
- package/skill/references/components/p-canvas/p-canvas.md +91 -0
- package/skill/references/components/p-carousel/examples/Default.ts +26 -0
- package/skill/references/components/p-carousel/examples/DynamicSlides.ts +37 -0
- package/skill/references/components/p-carousel/examples/FlexibleWidths.ts +32 -0
- package/skill/references/components/p-carousel/examples/FocusOnCenterSlide.ts +65 -0
- package/skill/references/components/p-carousel/examples/Intl.ts +23 -0
- package/skill/references/components/p-carousel/examples/JumpToSlide.ts +50 -0
- package/skill/references/components/p-carousel/p-carousel.md +142 -0
- package/skill/references/components/p-checkbox/examples/Default.ts +13 -0
- package/skill/references/components/p-checkbox/examples/Form.ts +31 -0
- package/skill/references/components/p-checkbox/examples/Indeterminate.ts +16 -0
- package/skill/references/components/p-checkbox/examples/Slots.ts +57 -0
- package/skill/references/components/p-checkbox/examples/WrappedLabel.ts +27 -0
- package/skill/references/components/p-checkbox/p-checkbox.md +122 -0
- package/skill/references/components/p-crest/examples/CustomClickableArea.ts +13 -0
- package/skill/references/components/p-crest/examples/Default.ts +13 -0
- package/skill/references/components/p-crest/examples/Link.ts +13 -0
- package/skill/references/components/p-crest/p-crest.md +65 -0
- package/skill/references/components/p-display/examples/Color.ts +15 -0
- package/skill/references/components/p-display/examples/Default.ts +15 -0
- package/skill/references/components/p-display/examples/Semantics.ts +21 -0
- package/skill/references/components/p-display/examples/Size.ts +15 -0
- package/skill/references/components/p-display/examples/SizeResponsive.ts +15 -0
- package/skill/references/components/p-display/p-display.md +78 -0
- package/skill/references/components/p-divider/examples/Default.ts +13 -0
- package/skill/references/components/p-divider/examples/Responsive.ts +15 -0
- package/skill/references/components/p-divider/examples/Vertical.ts +15 -0
- package/skill/references/components/p-divider/p-divider.md +49 -0
- package/skill/references/components/p-drilldown/examples/CustomContent.ts +166 -0
- package/skill/references/components/p-drilldown/examples/Default.ts +119 -0
- package/skill/references/components/p-drilldown/p-drilldown.md +168 -0
- package/skill/references/components/p-fieldset/examples/Default.ts +15 -0
- package/skill/references/components/p-fieldset/examples/Required.ts +16 -0
- package/skill/references/components/p-fieldset/examples/SlottedLabel.ts +18 -0
- package/skill/references/components/p-fieldset/examples/SlottedMessage.ts +18 -0
- package/skill/references/components/p-fieldset/p-fieldset.md +88 -0
- package/skill/references/components/p-flag/examples/Default.ts +13 -0
- package/skill/references/components/p-flag/examples/ResponsiveSize.ts +13 -0
- package/skill/references/components/p-flag/examples/Size.ts +16 -0
- package/skill/references/components/p-flag/examples/SizeCssVar.ts +13 -0
- package/skill/references/components/p-flag/p-flag.md +68 -0
- package/skill/references/components/p-flyout/examples/CustomStyling.ts +47 -0
- package/skill/references/components/p-flyout/examples/Default.ts +44 -0
- package/skill/references/components/p-flyout/examples/Form.ts +47 -0
- package/skill/references/components/p-flyout/examples/StickyTop.ts +44 -0
- package/skill/references/components/p-flyout/p-flyout.md +128 -0
- package/skill/references/components/p-heading/examples/Color.ts +15 -0
- package/skill/references/components/p-heading/examples/Default.ts +15 -0
- package/skill/references/components/p-heading/examples/Semantics.ts +21 -0
- package/skill/references/components/p-heading/p-heading.md +78 -0
- package/skill/references/components/p-icon/examples/Color.ts +16 -0
- package/skill/references/components/p-icon/examples/ColorCssVar.ts +13 -0
- package/skill/references/components/p-icon/examples/Custom.ts +13 -0
- package/skill/references/components/p-icon/examples/Default.ts +13 -0
- package/skill/references/components/p-icon/examples/Overview.ts +591 -0
- package/skill/references/components/p-icon/examples/ResponsiveSize.ts +13 -0
- package/skill/references/components/p-icon/examples/Size.ts +16 -0
- package/skill/references/components/p-icon/examples/SizeCssVar.ts +13 -0
- package/skill/references/components/p-icon/p-icon.md +88 -0
- package/skill/references/components/p-inline-notification/examples/ActionButton.ts +29 -0
- package/skill/references/components/p-inline-notification/examples/Default.ts +13 -0
- package/skill/references/components/p-inline-notification/examples/EventHandling.ts +31 -0
- package/skill/references/components/p-inline-notification/p-inline-notification.md +74 -0
- package/skill/references/components/p-input-date/examples/Default.ts +13 -0
- package/skill/references/components/p-input-date/examples/Form.ts +31 -0
- package/skill/references/components/p-input-date/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-date/p-input-date.md +138 -0
- package/skill/references/components/p-input-email/examples/Default.ts +13 -0
- package/skill/references/components/p-input-email/examples/Form.ts +31 -0
- package/skill/references/components/p-input-email/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-email/p-input-email.md +142 -0
- package/skill/references/components/p-input-month/examples/Default.ts +13 -0
- package/skill/references/components/p-input-month/examples/Form.ts +31 -0
- package/skill/references/components/p-input-month/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-month/p-input-month.md +138 -0
- package/skill/references/components/p-input-number/examples/Default.ts +13 -0
- package/skill/references/components/p-input-number/examples/Form.ts +31 -0
- package/skill/references/components/p-input-number/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-number/p-input-number.md +146 -0
- package/skill/references/components/p-input-password/examples/Default.ts +13 -0
- package/skill/references/components/p-input-password/examples/Form.ts +31 -0
- package/skill/references/components/p-input-password/examples/Slots.ts +42 -0
- package/skill/references/components/p-input-password/examples/Toggle.ts +13 -0
- package/skill/references/components/p-input-password/p-input-password.md +141 -0
- package/skill/references/components/p-input-search/examples/AriaCombobox.ts +38 -0
- package/skill/references/components/p-input-search/examples/Default.ts +13 -0
- package/skill/references/components/p-input-search/examples/Form.ts +31 -0
- package/skill/references/components/p-input-search/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-search/p-input-search.md +178 -0
- package/skill/references/components/p-input-tel/examples/Default.ts +13 -0
- package/skill/references/components/p-input-tel/examples/Form.ts +31 -0
- package/skill/references/components/p-input-tel/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-tel/p-input-tel.md +141 -0
- package/skill/references/components/p-input-text/examples/Controlled.ts +36 -0
- package/skill/references/components/p-input-text/examples/Default.ts +13 -0
- package/skill/references/components/p-input-text/examples/Form.ts +31 -0
- package/skill/references/components/p-input-text/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-text/p-input-text.md +146 -0
- package/skill/references/components/p-input-time/examples/Default.ts +13 -0
- package/skill/references/components/p-input-time/examples/Form.ts +31 -0
- package/skill/references/components/p-input-time/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-time/p-input-time.md +140 -0
- package/skill/references/components/p-input-url/examples/Default.ts +13 -0
- package/skill/references/components/p-input-url/examples/Form.ts +31 -0
- package/skill/references/components/p-input-url/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-url/p-input-url.md +141 -0
- package/skill/references/components/p-input-week/examples/Default.ts +13 -0
- package/skill/references/components/p-input-week/examples/Form.ts +31 -0
- package/skill/references/components/p-input-week/examples/Slots.ts +44 -0
- package/skill/references/components/p-input-week/p-input-week.md +138 -0
- package/skill/references/components/p-link/examples/Default.ts +15 -0
- package/skill/references/components/p-link/examples/FrameworkRouting.ts +17 -0
- package/skill/references/components/p-link/examples/Icon.ts +20 -0
- package/skill/references/components/p-link/p-link.md +101 -0
- package/skill/references/components/p-link-pure/examples/CustomClickableArea.ts +15 -0
- package/skill/references/components/p-link-pure/examples/Default.ts +15 -0
- package/skill/references/components/p-link-pure/examples/FrameworkRouting.ts +17 -0
- package/skill/references/components/p-link-pure/examples/Icon.ts +20 -0
- package/skill/references/components/p-link-pure/p-link-pure.md +110 -0
- package/skill/references/components/p-link-tile/examples/ColorScheme.ts +18 -0
- package/skill/references/components/p-link-tile/examples/Default.ts +21 -0
- package/skill/references/components/p-link-tile/examples/FooterSlot.ts +32 -0
- package/skill/references/components/p-link-tile/examples/Hyphens.ts +39 -0
- package/skill/references/components/p-link-tile/examples/UiBehaviour.ts +44 -0
- package/skill/references/components/p-link-tile/examples/WithVideo.ts +18 -0
- package/skill/references/components/p-link-tile/p-link-tile.md +105 -0
- package/skill/references/components/p-link-tile-product/examples/Default.ts +24 -0
- package/skill/references/components/p-link-tile-product/examples/FrameworkRouting.ts +27 -0
- package/skill/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
- package/skill/references/components/p-modal/examples/AlertDialog.ts +41 -0
- package/skill/references/components/p-modal/examples/CustomStyling.ts +28 -0
- package/skill/references/components/p-modal/examples/Default.ts +41 -0
- package/skill/references/components/p-modal/examples/Scrollable.ts +45 -0
- package/skill/references/components/p-modal/p-modal.md +135 -0
- package/skill/references/components/p-model-signature/examples/CustomStyling.ts +17 -0
- package/skill/references/components/p-model-signature/examples/Default.ts +13 -0
- package/skill/references/components/p-model-signature/examples/MaskBlendMode.ts +35 -0
- package/skill/references/components/p-model-signature/examples/MaskImage.ts +15 -0
- package/skill/references/components/p-model-signature/examples/MaskVideo.ts +15 -0
- package/skill/references/components/p-model-signature/examples/SafeZone.ts +63 -0
- package/skill/references/components/p-model-signature/p-model-signature.md +62 -0
- package/skill/references/components/p-multi-select/examples/AsyncFilter.ts +149 -0
- package/skill/references/components/p-multi-select/examples/Default.ts +32 -0
- package/skill/references/components/p-multi-select/examples/Form.ts +38 -0
- package/skill/references/components/p-multi-select/examples/Optgroups.ts +45 -0
- package/skill/references/components/p-multi-select/examples/SelectedSlot.ts +103 -0
- package/skill/references/components/p-multi-select/examples/SetValue.ts +76 -0
- package/skill/references/components/p-multi-select/examples/Slots.ts +51 -0
- package/skill/references/components/p-multi-select/p-multi-select.md +197 -0
- package/skill/references/components/p-pagination/examples/Default.ts +13 -0
- package/skill/references/components/p-pagination/p-pagination.md +83 -0
- package/skill/references/components/p-pin-code/examples/CopyPaste.ts +13 -0
- package/skill/references/components/p-pin-code/examples/Default.ts +13 -0
- package/skill/references/components/p-pin-code/examples/Form.ts +31 -0
- package/skill/references/components/p-pin-code/examples/Slots.ts +42 -0
- package/skill/references/components/p-pin-code/p-pin-code.md +109 -0
- package/skill/references/components/p-popover/examples/Default.ts +17 -0
- package/skill/references/components/p-popover/examples/SlottedButton.ts +18 -0
- package/skill/references/components/p-popover/p-popover.md +116 -0
- package/skill/references/components/p-radio-group/examples/Default.ts +20 -0
- package/skill/references/components/p-radio-group/examples/Form.ts +38 -0
- package/skill/references/components/p-radio-group/examples/Slots.ts +72 -0
- package/skill/references/components/p-radio-group/p-radio-group.md +157 -0
- package/skill/references/components/p-scroller/examples/Default.ts +54 -0
- package/skill/references/components/p-scroller/examples/Height.ts +29 -0
- package/skill/references/components/p-scroller/examples/ScrollToPosition.ts +43 -0
- package/skill/references/components/p-scroller/p-scroller.md +93 -0
- package/skill/references/components/p-segmented-control/examples/Default.ts +29 -0
- package/skill/references/components/p-segmented-control/examples/Form.ts +37 -0
- package/skill/references/components/p-segmented-control/examples/Slots.ts +57 -0
- package/skill/references/components/p-segmented-control/examples/WithLabels.ts +29 -0
- package/skill/references/components/p-segmented-control/p-segmented-control.md +162 -0
- package/skill/references/components/p-select/examples/AsyncFilter.ts +149 -0
- package/skill/references/components/p-select/examples/Default.ts +32 -0
- package/skill/references/components/p-select/examples/Form.ts +38 -0
- package/skill/references/components/p-select/examples/Optgroups.ts +45 -0
- package/skill/references/components/p-select/examples/Required.ts +48 -0
- package/skill/references/components/p-select/examples/SelectedSlot.ts +130 -0
- package/skill/references/components/p-select/examples/SetValue.ts +71 -0
- package/skill/references/components/p-select/examples/Slots.ts +51 -0
- package/skill/references/components/p-select/examples/SlottedImages.ts +38 -0
- package/skill/references/components/p-select/p-select.md +194 -0
- package/skill/references/components/p-sheet/examples/Default.ts +33 -0
- package/skill/references/components/p-sheet/p-sheet.md +121 -0
- package/skill/references/components/p-spinner/examples/Color.ts +16 -0
- package/skill/references/components/p-spinner/examples/ColorCssVar.ts +13 -0
- package/skill/references/components/p-spinner/examples/Default.ts +13 -0
- package/skill/references/components/p-spinner/examples/ResponsiveSize.ts +13 -0
- package/skill/references/components/p-spinner/examples/Size.ts +16 -0
- package/skill/references/components/p-spinner/examples/SizeCssVar.ts +13 -0
- package/skill/references/components/p-spinner/p-spinner.md +96 -0
- package/skill/references/components/p-stepper-horizontal/examples/Default.ts +26 -0
- package/skill/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +107 -0
- package/skill/references/components/p-stepper-horizontal/p-stepper-horizontal.md +109 -0
- package/skill/references/components/p-switch/examples/Default.ts +21 -0
- package/skill/references/components/p-switch/p-switch.md +103 -0
- package/skill/references/components/p-table/examples/Advanced.ts +162 -0
- package/skill/references/components/p-table/examples/CaptionProperty.ts +40 -0
- package/skill/references/components/p-table/examples/CaptionSlot.ts +43 -0
- package/skill/references/components/p-table/examples/Default.ts +120 -0
- package/skill/references/components/p-table/examples/HideLabel.ts +40 -0
- package/skill/references/components/p-table/examples/LayoutFixed.ts +53 -0
- package/skill/references/components/p-table/examples/Sorting.ts +79 -0
- package/skill/references/components/p-table/p-table.md +189 -0
- package/skill/references/components/p-tabs/examples/ActiveTab.ts +29 -0
- package/skill/references/components/p-tabs/examples/Default.ts +29 -0
- package/skill/references/components/p-tabs/examples/Gradient.ts +114 -0
- package/skill/references/components/p-tabs/examples/Labelling.ts +29 -0
- package/skill/references/components/p-tabs/p-tabs.md +136 -0
- package/skill/references/components/p-tabs-bar/examples/Default.ts +29 -0
- package/skill/references/components/p-tabs-bar/examples/Gradient.ts +80 -0
- package/skill/references/components/p-tabs-bar/examples/Labelling.ts +29 -0
- package/skill/references/components/p-tabs-bar/examples/Links.ts +23 -0
- package/skill/references/components/p-tabs-bar/p-tabs-bar.md +181 -0
- package/skill/references/components/p-tag/examples/Default.ts +15 -0
- package/skill/references/components/p-tag/examples/Multiline.ts +17 -0
- package/skill/references/components/p-tag/examples/SlottedButton.ts +44 -0
- package/skill/references/components/p-tag/examples/SlottedLink.ts +44 -0
- package/skill/references/components/p-tag/p-tag.md +66 -0
- package/skill/references/components/p-tag-dismissible/examples/Default.ts +15 -0
- package/skill/references/components/p-tag-dismissible/p-tag-dismissible.md +75 -0
- package/skill/references/components/p-text/examples/Default.ts +15 -0
- package/skill/references/components/p-text/examples/Semantics.ts +21 -0
- package/skill/references/components/p-text/examples/Size.ts +15 -0
- package/skill/references/components/p-text/examples/SizeResponsive.ts +15 -0
- package/skill/references/components/p-text/p-text.md +68 -0
- package/skill/references/components/p-text-list/examples/Default.ts +31 -0
- package/skill/references/components/p-text-list/p-text-list.md +68 -0
- package/skill/references/components/p-textarea/examples/Default.ts +13 -0
- package/skill/references/components/p-textarea/examples/Form.ts +31 -0
- package/skill/references/components/p-textarea/examples/Slots.ts +42 -0
- package/skill/references/components/p-textarea/p-textarea.md +122 -0
- package/skill/references/components/p-toast/examples/Default.ts +23 -0
- package/skill/references/components/p-toast/p-toast.md +61 -0
- package/skill/references/components/p-wordmark/examples/CustomClickableArea.ts +13 -0
- package/skill/references/components/p-wordmark/examples/Default.ts +13 -0
- package/skill/references/components/p-wordmark/examples/Size.ts +13 -0
- package/skill/references/components/p-wordmark/p-wordmark.md +66 -0
- package/skill/references/icons.md +5 -0
- package/skill/references/styles/emotion.md +439 -0
- package/skill/references/styles/scss.md +402 -0
- package/skill/references/styles/tailwindcss.md +356 -0
- package/skill/references/styles/vanilla-extract.md +444 -0
- package/skill/references/stylesheets.md +331 -0
- package/skill/references/tokens.md +323 -0
- package/types/porsche-design-system-components-angular.d.ts +2 -2
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
type InputSearchInputEventDetail,
|
|
4
|
+
PorscheDesignSystemModule,
|
|
5
|
+
PSelect,
|
|
6
|
+
type SelectChangeEventDetail,
|
|
7
|
+
type SelectToggleEventDetail,
|
|
8
|
+
} from '@porsche-design-system/components-angular';
|
|
9
|
+
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'porsche-design-system-app',
|
|
12
|
+
template: `
|
|
13
|
+
<p-select
|
|
14
|
+
name="async-search-select"
|
|
15
|
+
label="Async Search"
|
|
16
|
+
[value]="value"
|
|
17
|
+
(change)="onChange($event)"
|
|
18
|
+
(toggle)="onToggle($event)"
|
|
19
|
+
>
|
|
20
|
+
<p-input-search
|
|
21
|
+
slot="filter"
|
|
22
|
+
name="search"
|
|
23
|
+
[value]="searchValue"
|
|
24
|
+
[loading]="loading"
|
|
25
|
+
[clear]="true"
|
|
26
|
+
[indicator]="true"
|
|
27
|
+
[compact]="true"
|
|
28
|
+
[autoComplete]="'off'"
|
|
29
|
+
(input)="onInput($event)"
|
|
30
|
+
(blur)="$event.stopPropagation()"
|
|
31
|
+
(change)="$event.stopPropagation()"
|
|
32
|
+
></p-input-search>
|
|
33
|
+
|
|
34
|
+
<!-- Initial skeleton loading -->
|
|
35
|
+
@if (initialLoading && !error) {
|
|
36
|
+
@for (_ of [1,2,3,4,5,6,7,8,9]; track $index) {
|
|
37
|
+
<div slot="options-status" class="skeleton h-[40px]"></div>
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
<!-- Options -->
|
|
42
|
+
@for (option of options; track option.value) {
|
|
43
|
+
<p-select-option [value]="option.value">
|
|
44
|
+
{{ option.label }}
|
|
45
|
+
</p-select-option>
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
<!-- No filter results -->
|
|
49
|
+
@if (!initialLoading && options.length === 0 && !error) {
|
|
50
|
+
<div
|
|
51
|
+
slot="options-status"
|
|
52
|
+
class="text-contrast-medium cursor-not-allowed py-static-sm px-[12px]"
|
|
53
|
+
role="alert"
|
|
54
|
+
>
|
|
55
|
+
<span aria-hidden="true">–</span>
|
|
56
|
+
<span class="sr-only">No results found</span>
|
|
57
|
+
</div>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
<!-- Error state -->
|
|
61
|
+
@if (error) {
|
|
62
|
+
<div
|
|
63
|
+
slot="options-status"
|
|
64
|
+
class="flex gap-static-sm py-static-sm px-[12px]"
|
|
65
|
+
role="alert"
|
|
66
|
+
>
|
|
67
|
+
<p-icon name="information" color="error"></p-icon>
|
|
68
|
+
<span class="text-error">{{ error }}</span>
|
|
69
|
+
</div>
|
|
70
|
+
}
|
|
71
|
+
</p-select>
|
|
72
|
+
|
|
73
|
+
`,
|
|
74
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
|
+
standalone: true,
|
|
76
|
+
imports: [PorscheDesignSystemModule],
|
|
77
|
+
})
|
|
78
|
+
export class ExampleComponent {
|
|
79
|
+
value?: PSelect['value'];
|
|
80
|
+
options: { value: string; label: string }[] = [];
|
|
81
|
+
|
|
82
|
+
searchValue = '';
|
|
83
|
+
initialLoading = false;
|
|
84
|
+
loading = false;
|
|
85
|
+
error: string | null = null;
|
|
86
|
+
|
|
87
|
+
private hasLoadedOnce = false;
|
|
88
|
+
private currentFetchId = 0;
|
|
89
|
+
private debounceTimer?: number;
|
|
90
|
+
|
|
91
|
+
constructor(private cdr: ChangeDetectorRef) {}
|
|
92
|
+
|
|
93
|
+
async fetchOptions(term?: string, isInitial = false) {
|
|
94
|
+
const fetchId = ++this.currentFetchId;
|
|
95
|
+
if (isInitial) this.initialLoading = true;
|
|
96
|
+
else this.loading = true;
|
|
97
|
+
|
|
98
|
+
this.cdr.markForCheck();
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
const url = term
|
|
102
|
+
? `https://jsonplaceholder.typicode.com/users?username_like=${term}`
|
|
103
|
+
: `https://jsonplaceholder.typicode.com/users`;
|
|
104
|
+
|
|
105
|
+
const res = await fetch(url);
|
|
106
|
+
const data: { id: number; name: string; username: string }[] = await res.json();
|
|
107
|
+
|
|
108
|
+
// Ignore stale results
|
|
109
|
+
if (fetchId !== this.currentFetchId) return;
|
|
110
|
+
|
|
111
|
+
this.options = data.map((user) => ({
|
|
112
|
+
value: user.id.toString(),
|
|
113
|
+
label: `${user.name} (${user.username})`,
|
|
114
|
+
}));
|
|
115
|
+
|
|
116
|
+
this.error = null;
|
|
117
|
+
this.hasLoadedOnce = true;
|
|
118
|
+
} catch (err) {
|
|
119
|
+
console.error('Failed to fetch options', err);
|
|
120
|
+
this.options = [];
|
|
121
|
+
this.error = 'Failed to load options';
|
|
122
|
+
} finally {
|
|
123
|
+
if (isInitial) this.initialLoading = false;
|
|
124
|
+
else this.loading = false;
|
|
125
|
+
|
|
126
|
+
this.cdr.markForCheck();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
onInput(event: CustomEvent<InputSearchInputEventDetail>) {
|
|
131
|
+
const term = (event.target as HTMLInputElement).value;
|
|
132
|
+
this.searchValue = term;
|
|
133
|
+
|
|
134
|
+
if (this.debounceTimer) clearTimeout(this.debounceTimer);
|
|
135
|
+
this.debounceTimer = window.setTimeout(() => {
|
|
136
|
+
this.fetchOptions(term.trim() || undefined);
|
|
137
|
+
}, 400);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
onChange(event: CustomEvent<SelectChangeEventDetail>) {
|
|
141
|
+
this.value = event.detail.value;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
onToggle(event: CustomEvent<SelectToggleEventDetail>) {
|
|
145
|
+
if (event.detail.open && !this.hasLoadedOnce) {
|
|
146
|
+
this.fetchOptions(undefined, true);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-select name="options" label="Some Label" description="Some description">
|
|
8
|
+
<p-select-option value="a">
|
|
9
|
+
Option A
|
|
10
|
+
</p-select-option>
|
|
11
|
+
<p-select-option value="b">
|
|
12
|
+
Option B
|
|
13
|
+
</p-select-option>
|
|
14
|
+
<p-select-option value="c">
|
|
15
|
+
Option C
|
|
16
|
+
</p-select-option>
|
|
17
|
+
<p-select-option value="d">
|
|
18
|
+
Option D
|
|
19
|
+
</p-select-option>
|
|
20
|
+
<p-select-option value="e">
|
|
21
|
+
Option E
|
|
22
|
+
</p-select-option>
|
|
23
|
+
<p-select-option value="f">
|
|
24
|
+
Option F
|
|
25
|
+
</p-select-option>
|
|
26
|
+
</p-select>
|
|
27
|
+
`,
|
|
28
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29
|
+
standalone: true,
|
|
30
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
31
|
+
})
|
|
32
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'porsche-design-system-app',
|
|
7
|
+
template: `
|
|
8
|
+
<form [formGroup]="form" (ngSubmit)="onSubmit()" class="flex flex-col gap-fluid-sm">
|
|
9
|
+
<p-select name="mySelect" formControlName="mySelect" [label]="'Some Label'">
|
|
10
|
+
<p-select-option value="a">Option A</p-select-option>
|
|
11
|
+
<p-select-option value="b">Option B</p-select-option>
|
|
12
|
+
<p-select-option value="c">Option C</p-select-option>
|
|
13
|
+
<p-select-option value="d">Option D</p-select-option>
|
|
14
|
+
<p-select-option value="e">Option E</p-select-option>
|
|
15
|
+
<p-select-option value="f">Option F</p-select-option>
|
|
16
|
+
</p-select>
|
|
17
|
+
<div class="flex gap-fluid-sm">
|
|
18
|
+
<p-button type="submit">Submit</p-button>
|
|
19
|
+
<p-button type="reset">Reset</p-button>
|
|
20
|
+
</div>
|
|
21
|
+
<p-text>Last submitted data: {{ submittedValue }}</p-text>
|
|
22
|
+
</form>
|
|
23
|
+
`,
|
|
24
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [PorscheDesignSystemModule, FormsModule, ReactiveFormsModule], // <-- PDS module is imported here
|
|
27
|
+
})
|
|
28
|
+
export class ExampleComponent {
|
|
29
|
+
form = new FormGroup({
|
|
30
|
+
mySelect: new FormControl<string | undefined>({ value: undefined, disabled: false }),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
submittedValue: any = undefined;
|
|
34
|
+
|
|
35
|
+
onSubmit(): void {
|
|
36
|
+
this.submittedValue = JSON.stringify(this.form.value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-select name="options" label="Some Label" description="Some description">
|
|
8
|
+
<p-optgroup label="Some optgroup label 1">
|
|
9
|
+
<p-select-option value="a">
|
|
10
|
+
Option A
|
|
11
|
+
</p-select-option>
|
|
12
|
+
<p-select-option value="b">
|
|
13
|
+
Option B
|
|
14
|
+
</p-select-option>
|
|
15
|
+
<p-select-option value="c">
|
|
16
|
+
Option C
|
|
17
|
+
</p-select-option>
|
|
18
|
+
<p-select-option value="d">
|
|
19
|
+
Option D
|
|
20
|
+
</p-select-option>
|
|
21
|
+
<p-select-option value="e">
|
|
22
|
+
Option E
|
|
23
|
+
</p-select-option>
|
|
24
|
+
<p-select-option value="f">
|
|
25
|
+
Option F
|
|
26
|
+
</p-select-option>
|
|
27
|
+
</p-optgroup>
|
|
28
|
+
<p-optgroup label="Some optgroup label 2">
|
|
29
|
+
<p-select-option value="g">
|
|
30
|
+
Option G
|
|
31
|
+
</p-select-option>
|
|
32
|
+
<p-select-option value="h">
|
|
33
|
+
Option H
|
|
34
|
+
</p-select-option>
|
|
35
|
+
<p-select-option value="i">
|
|
36
|
+
Option I
|
|
37
|
+
</p-select-option>
|
|
38
|
+
</p-optgroup>
|
|
39
|
+
</p-select>
|
|
40
|
+
`,
|
|
41
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
+
standalone: true,
|
|
43
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
44
|
+
})
|
|
45
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<div class="flex flex-col gap-static-sm">
|
|
8
|
+
<p-checkbox label="Required" name="required" [checked]="isRequired" (change)="onChangeRequired()" />
|
|
9
|
+
<p-checkbox label="Allow deselection" name="deselection" [checked]="hasDeselection" (change)="onChangeDeselection()" />
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<form (submit)="onSubmit($event)" class="flex flex-col gap-fluid-sm mt-fluid-sm">
|
|
13
|
+
<p-select name="options" label="Some Label" [required]="isRequired">
|
|
14
|
+
@if (hasDeselection) {
|
|
15
|
+
<p-select-option></p-select-option>
|
|
16
|
+
}
|
|
17
|
+
<p-select-option value="1">Option 1</p-select-option>
|
|
18
|
+
<p-select-option value="2">Option 2</p-select-option>
|
|
19
|
+
<p-select-option value="3">Option 3</p-select-option>
|
|
20
|
+
</p-select>
|
|
21
|
+
<p-button type="submit">Submit</p-button>
|
|
22
|
+
</form>
|
|
23
|
+
|
|
24
|
+
<p-text>Last submitted data: {{ lastSubmittedData }}</p-text>
|
|
25
|
+
`,
|
|
26
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
|
+
standalone: true,
|
|
28
|
+
imports: [PorscheDesignSystemModule],
|
|
29
|
+
})
|
|
30
|
+
export class ExampleComponent {
|
|
31
|
+
isRequired: boolean = true;
|
|
32
|
+
hasDeselection: boolean = false;
|
|
33
|
+
lastSubmittedData: string = 'none';
|
|
34
|
+
|
|
35
|
+
onChangeRequired() {
|
|
36
|
+
this.isRequired = !this.isRequired;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
onChangeDeselection() {
|
|
40
|
+
this.hasDeselection = !this.hasDeselection;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
onSubmit(e: Event): void {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
const formData = new FormData(e.target as HTMLFormElement);
|
|
46
|
+
this.lastSubmittedData = formData.get('options')?.toString() || 'none';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
type FlagName,
|
|
4
|
+
PorscheDesignSystemModule,
|
|
5
|
+
PSelect,
|
|
6
|
+
type SelectChangeEventDetail,
|
|
7
|
+
} from '@porsche-design-system/components-angular';
|
|
8
|
+
|
|
9
|
+
type Option = { label: string; code: FlagName; continent: string };
|
|
10
|
+
|
|
11
|
+
const optionsData: Option[] = [
|
|
12
|
+
{
|
|
13
|
+
label: 'China',
|
|
14
|
+
code: 'cn',
|
|
15
|
+
continent: 'Asia',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: 'Japan',
|
|
19
|
+
code: 'jp',
|
|
20
|
+
continent: 'Asia',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: 'South Korea',
|
|
24
|
+
code: 'kr',
|
|
25
|
+
continent: 'Asia',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: 'Austria',
|
|
29
|
+
code: 'at',
|
|
30
|
+
continent: 'Europe',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: 'France',
|
|
34
|
+
code: 'fr',
|
|
35
|
+
continent: 'Europe',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: 'Germany',
|
|
39
|
+
code: 'de',
|
|
40
|
+
continent: 'Europe',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
label: 'Great Britain',
|
|
44
|
+
code: 'gb',
|
|
45
|
+
continent: 'Europe',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Italy',
|
|
49
|
+
code: 'it',
|
|
50
|
+
continent: 'Europe',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: 'Portugal',
|
|
54
|
+
code: 'pt',
|
|
55
|
+
continent: 'Europe',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: 'Spain',
|
|
59
|
+
code: 'es',
|
|
60
|
+
continent: 'Europe',
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
{
|
|
64
|
+
label: 'Canada',
|
|
65
|
+
code: 'ca',
|
|
66
|
+
continent: 'North America',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
label: 'USA',
|
|
70
|
+
code: 'us',
|
|
71
|
+
continent: 'North America',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
@Component({
|
|
76
|
+
selector: 'porsche-design-system-app',
|
|
77
|
+
template: `
|
|
78
|
+
<p-select
|
|
79
|
+
name="selected-slot-select"
|
|
80
|
+
label="Selected Slot"
|
|
81
|
+
[value]="value"
|
|
82
|
+
(change)="onChange($event)"
|
|
83
|
+
>
|
|
84
|
+
<span slot="selected" class="h-full flex items-center gap-fluid-sm grow">
|
|
85
|
+
@if (selectedOption) {
|
|
86
|
+
<p-flag [name]="selectedOption.code"></p-flag>
|
|
87
|
+
<p class="prose-text-sm truncate m-0">{{ selectedOption.label }}</p>
|
|
88
|
+
}
|
|
89
|
+
</span>
|
|
90
|
+
@for (entry of optgroups; track entry[0]) {
|
|
91
|
+
<p-optgroup [label]="entry[0]">
|
|
92
|
+
@for (option of entry[1]; track option.code) {
|
|
93
|
+
<p-select-option [value]="option.code">
|
|
94
|
+
<div class="w-full flex items-center gap-fluid-sm">
|
|
95
|
+
<p-flag [name]="option.code"></p-flag>
|
|
96
|
+
<p class="prose-text-sm m-0">{{ option.label }}</p>
|
|
97
|
+
</div>
|
|
98
|
+
</p-select-option>
|
|
99
|
+
}
|
|
100
|
+
</p-optgroup>
|
|
101
|
+
}
|
|
102
|
+
</p-select>
|
|
103
|
+
`,
|
|
104
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
105
|
+
standalone: true,
|
|
106
|
+
imports: [PorscheDesignSystemModule],
|
|
107
|
+
})
|
|
108
|
+
export class ExampleComponent {
|
|
109
|
+
value?: PSelect['value'];
|
|
110
|
+
options: Option[] = optionsData;
|
|
111
|
+
selectedOption?: Option;
|
|
112
|
+
|
|
113
|
+
optgroups: [string, Option[]][] = Object.entries(
|
|
114
|
+
this.options.reduce(
|
|
115
|
+
(acc, item) => {
|
|
116
|
+
const key = item.continent;
|
|
117
|
+
if (!acc[key]) acc[key] = [];
|
|
118
|
+
acc[key].push(item);
|
|
119
|
+
return acc;
|
|
120
|
+
},
|
|
121
|
+
{} as Record<string, Option[]>
|
|
122
|
+
)
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
onChange(event: CustomEvent<SelectChangeEventDetail>) {
|
|
126
|
+
const value = event.detail.value;
|
|
127
|
+
this.value = value;
|
|
128
|
+
this.selectedOption = this.options.find((option) => option.code === value);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
PInputText,
|
|
4
|
+
PorscheDesignSystemModule,
|
|
5
|
+
PSelect,
|
|
6
|
+
SelectChangeEventDetail,
|
|
7
|
+
} from '@porsche-design-system/components-angular';
|
|
8
|
+
|
|
9
|
+
@Component({
|
|
10
|
+
selector: 'porsche-design-system-app',
|
|
11
|
+
template: `
|
|
12
|
+
<div class="flex flex-col gap-fluid-sm">
|
|
13
|
+
<p-input-text label="Value:" name="input-value" [value]="inputValue" (input)="onChangeInput($event)" placeholder="e.g. 1"></p-input-text>
|
|
14
|
+
<div class="flex gap-fluid-sm">
|
|
15
|
+
<p-button type="button" (click)="onSetValue()" [compact]="true">Set Value</p-button>
|
|
16
|
+
<p-button type="button" (click)="onResetValue()" [compact]="true">Reset value</p-button>
|
|
17
|
+
</div>
|
|
18
|
+
<p-select name="options" label="Some Label" [value]="selectedValue" (change)="onChange($event)">
|
|
19
|
+
@for (idx of optionIndices; track idx) {
|
|
20
|
+
<p-select-option [value]="(idx + 1).toString()"
|
|
21
|
+
>Option {{ idx + 1 }}</p-select-option
|
|
22
|
+
>
|
|
23
|
+
}
|
|
24
|
+
</p-select>
|
|
25
|
+
<div class="flex gap-fluid-sm">
|
|
26
|
+
<p-button type="button" (click)="onAddOption()" [compact]="true">Add option</p-button>
|
|
27
|
+
<p-button type="button" (click)="onRemoveOption()" [compact]="true">Remove last option</p-button>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
`,
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [PorscheDesignSystemModule],
|
|
34
|
+
})
|
|
35
|
+
export class ExampleComponent {
|
|
36
|
+
selectedValue: PSelect['value'] = '1';
|
|
37
|
+
inputValue: PInputText['value'] = '';
|
|
38
|
+
optionCount: number = 3;
|
|
39
|
+
|
|
40
|
+
get optionIndices(): number[] {
|
|
41
|
+
return [...Array(this.optionCount).keys()];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
onChangeInput(e: Event) {
|
|
45
|
+
this.inputValue = (e.target as HTMLInputElement).value;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
onSetValue() {
|
|
49
|
+
this.selectedValue = this.inputValue;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
onResetValue() {
|
|
53
|
+
this.selectedValue = '1';
|
|
54
|
+
this.inputValue = '';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
onChange(e: CustomEvent<SelectChangeEventDetail>) {
|
|
58
|
+
this.selectedValue = e.detail.value;
|
|
59
|
+
this.inputValue = String(e.detail.value ?? '');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
onAddOption() {
|
|
63
|
+
this.optionCount += 1;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
onRemoveOption() {
|
|
67
|
+
if (this.optionCount > 0) {
|
|
68
|
+
this.optionCount -= 1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-select name="options" state="error">
|
|
8
|
+
<span slot="label" id="some-label-id">
|
|
9
|
+
Some label with a
|
|
10
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
11
|
+
link
|
|
12
|
+
</a>
|
|
13
|
+
and a "label-after" slot.
|
|
14
|
+
</span>
|
|
15
|
+
<p-popover slot="label-after">
|
|
16
|
+
Some Popover content with a
|
|
17
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
18
|
+
link
|
|
19
|
+
</a>
|
|
20
|
+
.
|
|
21
|
+
</p-popover>
|
|
22
|
+
<span slot="description" id="some-description-id">
|
|
23
|
+
Some description with a
|
|
24
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
25
|
+
link
|
|
26
|
+
</a>
|
|
27
|
+
.
|
|
28
|
+
</span>
|
|
29
|
+
<span slot="message" id="some-message-id">
|
|
30
|
+
Some error message with a
|
|
31
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
32
|
+
link
|
|
33
|
+
</a>
|
|
34
|
+
.
|
|
35
|
+
</span>
|
|
36
|
+
<p-select-option value="a">
|
|
37
|
+
Option A
|
|
38
|
+
</p-select-option>
|
|
39
|
+
<p-select-option value="b">
|
|
40
|
+
Option B
|
|
41
|
+
</p-select-option>
|
|
42
|
+
<p-select-option value="c">
|
|
43
|
+
Option C
|
|
44
|
+
</p-select-option>
|
|
45
|
+
</p-select>
|
|
46
|
+
`,
|
|
47
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
48
|
+
standalone: true,
|
|
49
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
50
|
+
})
|
|
51
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-select name="options" label="Some Label" description="Some description">
|
|
8
|
+
<p-select-option value="718">
|
|
9
|
+
<img src="assets/718.png" />
|
|
10
|
+
718
|
|
11
|
+
</p-select-option>
|
|
12
|
+
<p-select-option value="911">
|
|
13
|
+
<img src="assets/911.png" />
|
|
14
|
+
911
|
|
15
|
+
</p-select-option>
|
|
16
|
+
<p-select-option value="taycan">
|
|
17
|
+
<img src="assets/taycan.png" />
|
|
18
|
+
taycan
|
|
19
|
+
</p-select-option>
|
|
20
|
+
<p-select-option value="macan">
|
|
21
|
+
<img src="assets/macan.png" />
|
|
22
|
+
macan
|
|
23
|
+
</p-select-option>
|
|
24
|
+
<p-select-option value="cayenne">
|
|
25
|
+
<img src="assets/cayenne.png" />
|
|
26
|
+
cayenne
|
|
27
|
+
</p-select-option>
|
|
28
|
+
<p-select-option value="panamera">
|
|
29
|
+
<img src="assets/panamera.png" />
|
|
30
|
+
panamera
|
|
31
|
+
</p-select-option>
|
|
32
|
+
</p-select>
|
|
33
|
+
`,
|
|
34
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
+
standalone: true,
|
|
36
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
37
|
+
})
|
|
38
|
+
export class ExampleComponent {}
|