@porsche-design-system/components-angular 4.6.0-rc.1 → 4.6.0-rc.3
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 +84 -2
- package/OSS_NOTICE +5532 -2115
- package/fesm2022/porsche-design-system-components-angular.mjs +1 -1
- package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
- package/package.json +6 -2
- package/skills/pds-knowledge-angular/SKILL.md +2 -2
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/p-ai-tag.md +2 -2
- package/skills/pds-knowledge-angular/references/components/p-button/p-button.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-button-pure/p-button-pure.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-button-tile/p-button-tile.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-carousel/p-carousel.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-drilldown/p-drilldown.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-flyout/p-flyout.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Overview.ts +6 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/p-icon.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/p-inline-notification.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-input-number/p-input-number.md +3 -3
- package/skills/pds-knowledge-angular/references/components/p-input-text/p-input-text.md +3 -3
- package/skills/pds-knowledge-angular/references/components/p-link/p-link.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-link-pure/p-link-pure.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-modal/p-modal.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/AsyncFilter.ts +32 -5
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Form.ts +3 -3
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SelectedSlot.ts +2 -2
- package/skills/pds-knowledge-angular/references/components/p-multi-select/p-multi-select.md +2 -2
- package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Form.ts +2 -2
- package/skills/pds-knowledge-angular/references/components/p-pin-code/p-pin-code.md +2 -2
- package/skills/pds-knowledge-angular/references/components/p-popover/p-popover.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Form.ts +2 -2
- package/skills/pds-knowledge-angular/references/components/p-radio-group/p-radio-group.md +3 -3
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Form.ts +2 -2
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/p-segmented-control.md +2 -2
- package/skills/pds-knowledge-angular/references/components/p-select/examples/AsyncFilter.ts +32 -5
- package/skills/pds-knowledge-angular/references/components/p-select/p-select.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-sheet/p-sheet.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-table/p-table.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-tag/p-tag.md +1 -1
- package/skills/pds-knowledge-angular/references/components/p-wordmark/p-wordmark.md +1 -1
- package/skills/pds-knowledge-angular/references/icons.md +1 -1
- package/types/porsche-design-system-components-angular.d.ts +219 -238
|
@@ -31,6 +31,9 @@ import {
|
|
|
31
31
|
(change)="$event.stopPropagation()"
|
|
32
32
|
></p-input-search>
|
|
33
33
|
|
|
34
|
+
<!-- Persistent status announcer for assistive technologies (keep always in the DOM) -->
|
|
35
|
+
<div slot="options-status" class="sr-only" aria-live="polite" aria-atomic="true">{{ filterStatusMessage }}</div>
|
|
36
|
+
|
|
34
37
|
<!-- Initial skeleton loading -->
|
|
35
38
|
@if (initialLoading && !error) {
|
|
36
39
|
@for (_ of [1,2,3,4,5,6,7,8,9]; track $index) {
|
|
@@ -45,15 +48,14 @@ import {
|
|
|
45
48
|
</p-select-option>
|
|
46
49
|
}
|
|
47
50
|
|
|
48
|
-
<!-- No filter results -->
|
|
49
|
-
@if (!initialLoading && options.length === 0 && !error) {
|
|
51
|
+
<!-- No filter results (visual only; announcements come from the live region) -->
|
|
52
|
+
@if (!initialLoading && !loading && options.length === 0 && !error) {
|
|
50
53
|
<div
|
|
51
54
|
slot="options-status"
|
|
52
55
|
class="text-contrast-medium cursor-not-allowed py-static-sm px-[12px]"
|
|
53
|
-
|
|
56
|
+
aria-hidden="true"
|
|
54
57
|
>
|
|
55
|
-
|
|
56
|
-
<span class="sr-only">No results found</span>
|
|
58
|
+
–
|
|
57
59
|
</div>
|
|
58
60
|
}
|
|
59
61
|
|
|
@@ -83,6 +85,7 @@ export class ExampleComponent {
|
|
|
83
85
|
initialLoading = false;
|
|
84
86
|
loading = false;
|
|
85
87
|
error: string | null = null;
|
|
88
|
+
filterStatusMessage = '';
|
|
86
89
|
|
|
87
90
|
private hasLoadedOnce = false;
|
|
88
91
|
private currentFetchId = 0;
|
|
@@ -94,6 +97,7 @@ export class ExampleComponent {
|
|
|
94
97
|
const fetchId = ++this.currentFetchId;
|
|
95
98
|
if (isInitial) this.initialLoading = true;
|
|
96
99
|
else this.loading = true;
|
|
100
|
+
this.updateFilterStatusMessage();
|
|
97
101
|
|
|
98
102
|
this.cdr.markForCheck();
|
|
99
103
|
|
|
@@ -122,6 +126,7 @@ export class ExampleComponent {
|
|
|
122
126
|
} finally {
|
|
123
127
|
if (isInitial) this.initialLoading = false;
|
|
124
128
|
else this.loading = false;
|
|
129
|
+
this.updateFilterStatusMessage();
|
|
125
130
|
|
|
126
131
|
this.cdr.markForCheck();
|
|
127
132
|
}
|
|
@@ -146,4 +151,26 @@ export class ExampleComponent {
|
|
|
146
151
|
this.fetchOptions(undefined, true);
|
|
147
152
|
}
|
|
148
153
|
}
|
|
154
|
+
|
|
155
|
+
private updateFilterStatusMessage(): void {
|
|
156
|
+
if (this.error) {
|
|
157
|
+
this.filterStatusMessage = '';
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (this.initialLoading || this.loading) {
|
|
161
|
+
this.filterStatusMessage = 'Loading options';
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const term = this.searchValue.trim();
|
|
165
|
+
if (!term) {
|
|
166
|
+
this.filterStatusMessage = '';
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (this.options.length === 0) {
|
|
170
|
+
this.filterStatusMessage = 'No results found';
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.filterStatusMessage =
|
|
174
|
+
this.options.length === 1 ? '1 result available' : `${this.options.length} results available`;
|
|
175
|
+
}
|
|
149
176
|
}
|
|
@@ -141,7 +141,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
|
|
|
141
141
|
| Property | Type | Default | Description |
|
|
142
142
|
| --- | --- | --- | --- |
|
|
143
143
|
| `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
|
|
144
|
-
| `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when
|
|
144
|
+
| `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
|
|
145
145
|
|
|
146
146
|
#### Slots
|
|
147
147
|
|
|
@@ -95,7 +95,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
|
|
|
95
95
|
|
|
96
96
|
| Event | Type | Description |
|
|
97
97
|
| --- | --- | --- |
|
|
98
|
-
| `dismiss` | `CustomEvent<
|
|
98
|
+
| `dismiss` | `CustomEvent<SheetDismissEventDetail>`<br>`{ reason: 'dismiss-button' | 'backdrop' | 'escape' }` | Emitted when the user closes the sheet via the dismiss button, backdrop click, or Escape key. The event detail identifies which of the three was used. |
|
|
99
99
|
| `motionHiddenEnd` | `CustomEvent<SheetMotionHiddenEndEventDetail>`<br>`TransitionEvent` | Emitted after the sheet's close transition has fully completed and the panel is hidden. |
|
|
100
100
|
| `motionVisibleEnd` | `CustomEvent<SheetMotionVisibleEndEventDetail>`<br>`TransitionEvent` | Emitted after the sheet's open transition has fully completed and the panel is visible. |
|
|
101
101
|
|
|
@@ -86,7 +86,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
|
|
|
86
86
|
|
|
87
87
|
| Event | Type | Description |
|
|
88
88
|
| --- | --- | --- |
|
|
89
|
-
| `update` | `CustomEvent<TableUpdateEventDetail>`<br>`{ id: string; active?: boolean; direction?:
|
|
89
|
+
| `update` | `CustomEvent<TableUpdateEventDetail>`<br>`{ id: string; active?: boolean; direction?: 'asc' | 'desc' }` | Emitted when the user clicks a sortable column header, carrying the new sort configuration in the event detail. |
|
|
90
90
|
|
|
91
91
|
### Slots
|
|
92
92
|
|
|
@@ -50,7 +50,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
|
|
|
50
50
|
| Property | Type | Default | Description |
|
|
51
51
|
| --- | --- | --- | --- |
|
|
52
52
|
| `compact` | `boolean` | `false` | Reduces the tag's padding and height for use in dense layouts where vertical space is limited. |
|
|
53
|
-
| `icon` | `'none'`<br>one of
|
|
53
|
+
| `icon` | `'none'`<br>one of 293 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed inside the tag alongside the label. Use `none` to render the tag without an icon. |
|
|
54
54
|
| `iconSource` | `string` | `undefined` | Sets a URL to a custom SVG icon, overriding the built-in icon set when a brand-specific icon is needed. |
|
|
55
55
|
| `variant` | `'primary'` `'secondary'` `'info'` `'info-frosted'` `'warning'` `'warning-frosted'` `'success'` `'success-frosted'` `'error'` `'error-frosted'` | `'secondary'` | Sets the visual style of the tag, which controls its background and text colors (e.g. `primary`, `secondary`, `notification-info`). |
|
|
56
56
|
|
|
@@ -58,7 +58,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
|
|
|
58
58
|
| --- | --- | --- | --- |
|
|
59
59
|
| `aria` | `WordmarkAriaAttribute` | `undefined` | Sets ARIA attributes on the anchor element to improve accessibility when the wordmark is used as a link. |
|
|
60
60
|
| `href` | `string` | `undefined` | When set, wraps the wordmark in an anchor element that navigates to the given URL on click. |
|
|
61
|
-
| `size` | `'small'` `'inherit'` | `'small'` | Sets the display size of the Porsche wordmark SVG using predefined PDS size tokens
|
|
61
|
+
| `size` | `'small'` `'inherit'` | `'small'` | Sets the display size of the Porsche wordmark SVG using predefined PDS size tokens. |
|
|
62
62
|
| `target` | `'_self'` `'_blank'` `'_parent'` `'_top'` `'string'` | `'_self'` | Specifies where to open the linked URL when `href` is set (e.g. `_self`, `_blank`). |
|
|
63
63
|
|
|
64
64
|
## Examples
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Valid values for the icon-typed props across PDS components (e.g. `p-icon` `name`, `p-button` `icon`, `p-link` `icon`, `p-inline-notification` `actionIcon`). Pass one as a string, e.g. `icon="arrow-right"`. Each component reference links here instead of repeating the full list. (`p-flag` `name` uses a separate set of flag names, not listed here.)
|
|
4
4
|
|
|
5
|
-
`360` `4-wheel-drive` `accessibility` `active-cabin-ventilation` `add` `adjust` `aggregation` `ai-3d-object` `ai-code` `ai-edit` `ai-image` `ai-scale` `ai-sound` `ai-spark` `ai-spark-filled` `ai-text` `ai-video` `arrow-compact-down` `arrow-compact-left` `arrow-compact-right` `arrow-compact-up` `arrow-double-down` `arrow-double-left` `arrow-double-right` `arrow-double-up` `arrow-down` `arrow-down-left` `arrow-down-right` `arrow-first` `arrow-head-down` `arrow-head-left` `arrow-head-right` `arrow-head-up` `arrow-last` `arrow-left` `arrow-right` `arrow-up` `arrow-up-left` `arrow-up-right` `arrows` `attachment` `augmented-reality` `battery-empty` `battery-empty-co2` `battery-empty-fuel` `battery-full` `battery-half` `battery-one-quarter` `battery-three-quarters` `bell` `bookmark` `bookmark-filled` `brain` `broadcast` `cabriolet` `calculator` `calendar` `camera` `car` `car-battery` `card` `charging-active` `charging-network` `charging-state` `charging-station` `chart` `chat` `check` `city` `climate` `climate-control` `clock` `close` `closed-caption` `cloud` `co2-class` `co2-emission` `color-picker` `compare` `compass` `configurate` `copy` `country-road` `coupe` `cubic-capacity` `cut` `delete` `disable` `dislike` `dislike-filled` `document` `door` `download` `drag` `duration` `ear` `edit` `email` `error` `error-filled` `exclamation` `exclamation-filled` `external` `fast-backward` `fast-forward` `file-csv` `file-excel` `filter` `fingerprint` `flag` `flash` `fuel-station` `garage` `genuine-parts` `geo-localization` `gift` `globe` `grid` `grip` `group` `hand` `heart` `heart-filled` `highway` `highway-filled` `history` `home` `horn` `image` `increase` `information` `information-filled` `key` `laptop` `leaf` `leather` `light` `like` `like-filled` `limousine` `linked` `list` `locate` `lock` `lock-open` `logo-apple-carplay` `logo-apple-music` `logo-apple-podcast` `logo-baidu` `logo-delicious` `logo-digg` `logo-facebook` `logo-foursquare` `logo-gmail` `logo-google` `logo-hatena` `logo-instagram` `logo-kaixin` `logo-kakaotalk` `logo-kununu` `logo-linkedin` `logo-naver` `logo-pinterest` `logo-qq` `logo-qq-share` `logo-reddit` `logo-skyrock` `logo-snapchat` `logo-sohu` `logo-spotify` `logo-tecent` `logo-telegram` `logo-tiktok` `logo-tumblr` `logo-twitter` `logo-viber` `logo-vk` `logo-wechat` `logo-weibo` `logo-whatsapp` `logo-x` `logo-xing` `logo-yahoo` `logo-youku` `logo-youtube` `logout` `map` `menu-dots-horizontal` `menu-dots-vertical` `menu-lines` `microphone` `minus` `mobile` `moon` `new-chat` `news` `north-arrow` `oil-can` `online-search` `parking-brake` `parking-light` `paste` `pause` `phone` `pin` `pin-filled` `pivot` `play` `play-filled` `plug` `plus` `preheating` `price-tag` `printer` `purchase` `push-pin` `push-pin-off` `qr` `qr-off` `question` `question-filled` `racing-flag` `radar` `radio` `refresh` `replay` `reset` `return` `road` `roof-closed` `roof-open` `route` `rss` `save` `screen` `search` `seat` `send` `service-technician` `share` `shopping-bag` `shopping-bag-filled` `shopping-cart` `shopping-cart-filled` `sidebar` `sidelights` `skip-backward` `skip-forward` `snowflake` `sort` `stack` `star` `star-filled` `steering-wheel` `stop` `stopwatch` `subtract` `success` `success-filled` `sun` `suv` `switch` `tablet` `tachometer` `theme` `tire` `trigger-finger` `truck` `turismo` `unlinked` `upload` `user` `user-filled` `user-group` `user-manual` `video` `view` `view-off` `volume-off` `volume-up` `warning` `warning-filled` `weather` `weight` `wifi` `work` `wrench` `wrenches` `zoom-in` `zoom-out`
|
|
5
|
+
`360` `4-wheel-drive` `accessibility` `active-cabin-ventilation` `add` `adjust` `aggregation` `ai-3d-object` `ai-code` `ai-edit` `ai-image` `ai-scale` `ai-sound` `ai-spark` `ai-spark-filled` `ai-text` `ai-video` `arrow-compact-down` `arrow-compact-left` `arrow-compact-right` `arrow-compact-up` `arrow-double-down` `arrow-double-left` `arrow-double-right` `arrow-double-up` `arrow-down` `arrow-down-left` `arrow-down-right` `arrow-first` `arrow-head-down` `arrow-head-left` `arrow-head-right` `arrow-head-up` `arrow-last` `arrow-left` `arrow-right` `arrow-up` `arrow-up-left` `arrow-up-right` `arrows` `attachment` `augmented-reality` `battery-empty` `battery-empty-co2` `battery-empty-fuel` `battery-full` `battery-half` `battery-one-quarter` `battery-three-quarters` `bell` `bookmark` `bookmark-filled` `brain` `broadcast` `cabriolet` `calculator` `calendar` `camera` `car` `car-battery` `card` `charging-active` `charging-network` `charging-state` `charging-station` `chart` `chat` `check` `city` `climate` `climate-control` `clock` `close` `closed-caption` `cloud` `co2-class` `co2-emission` `color-picker` `compare` `compass` `configurate` `connect-services` `copy` `country-road` `coupe` `cubic-capacity` `customer-support` `cut` `delete` `disable` `dislike` `dislike-filled` `document` `door` `download` `drag` `duration` `ear` `edit` `email` `error` `error-filled` `exclamation` `exclamation-filled` `external` `fast-backward` `fast-forward` `file-csv` `file-excel` `filter` `fingerprint` `flag` `flash` `fuel-station` `garage` `genuine-parts` `geo-localization` `gift` `globe` `grid` `grip` `group` `hand` `heart` `heart-filled` `highway` `highway-filled` `history` `home` `horn` `image` `increase` `information` `information-filled` `key` `laptop` `leaf` `leather` `light` `like` `like-filled` `limousine` `linked` `list` `locate` `lock` `lock-open` `logo-apple-carplay` `logo-apple-music` `logo-apple-podcast` `logo-baidu` `logo-delicious` `logo-digg` `logo-facebook` `logo-foursquare` `logo-gmail` `logo-google` `logo-hatena` `logo-instagram` `logo-kaixin` `logo-kakaotalk` `logo-kununu` `logo-linkedin` `logo-naver` `logo-pinterest` `logo-qq` `logo-qq-share` `logo-reddit` `logo-skyrock` `logo-snapchat` `logo-sohu` `logo-spotify` `logo-tecent` `logo-telegram` `logo-tiktok` `logo-tumblr` `logo-twitter` `logo-viber` `logo-vk` `logo-wechat` `logo-weibo` `logo-whatsapp` `logo-x` `logo-xing` `logo-yahoo` `logo-youku` `logo-youtube` `logout` `map` `menu-dots-horizontal` `menu-dots-vertical` `menu-lines` `microphone` `minus` `mobile` `moon` `new-chat` `news` `north-arrow` `oil-can` `online-search` `parking-brake` `parking-light` `paste` `pause` `phone` `pin` `pin-filled` `pivot` `play` `play-filled` `plug` `plus` `preheating` `price-tag` `printer` `purchase` `push-pin` `push-pin-off` `qr` `qr-off` `question` `question-filled` `racing-flag` `radar` `radio` `refresh` `replay` `reset` `return` `road` `roof-closed` `roof-open` `route` `rss` `save` `screen` `search` `seat` `send` `service-technician` `share` `shopping-bag` `shopping-bag-filled` `shopping-cart` `shopping-cart-filled` `shopping-cart-off` `sidebar` `sidelights` `skip-backward` `skip-forward` `snowflake` `sort` `stack` `star` `star-filled` `steering-wheel` `stop` `stopwatch` `subtract` `success` `success-filled` `sun` `suv` `switch` `tablet` `tachometer` `theme` `tire` `trigger-finger` `truck` `turismo` `unlinked` `upload` `user` `user-filled` `user-group` `user-manual` `video` `view` `view-off` `volume-off` `volume-up` `warning` `warning-filled` `weather` `weight` `wifi` `work` `wrench` `wrenches` `zoom-in` `zoom-out`
|