@swisspost/design-system-components 10.0.0-next.47 → 10.0.0-next.49
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/dist/cjs/{event-from-AKK8RQrn.js → event-from-C6kpQwhw.js} +2 -2
- package/dist/cjs/index-CpDyH7Ww.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{package-wsZ6ig4j.js → package-CR0YynRY.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +6 -6
- package/dist/cjs/post-avatar.cjs.entry.js +107 -80
- package/dist/cjs/post-back-to-top.cjs.entry.js +2 -2
- package/dist/cjs/post-banner.cjs.entry.js +3 -3
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +3 -3
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +4 -4
- package/dist/cjs/post-card-control.cjs.entry.js +4 -4
- package/dist/cjs/post-closebutton_15.cjs.entry.js +133 -74
- package/dist/cjs/post-collapsible_2.cjs.entry.js +4 -4
- package/dist/cjs/post-components.cjs.js +1 -1
- package/dist/cjs/post-footer.cjs.entry.js +3 -3
- package/dist/cjs/post-linkarea.cjs.entry.js +19 -8
- package/dist/cjs/post-popover.cjs.entry.js +3 -3
- package/dist/cjs/post-rating.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/post-tabs.cjs.entry.js +2 -2
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +2 -2
- package/dist/cjs/post-tooltip.cjs.entry.js +3 -3
- package/dist/collection/animations/pop-in.js +14 -0
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +5 -5
- package/dist/collection/components/post-avatar/avatar-utils.js +16 -0
- package/dist/collection/components/post-avatar/post-avatar.css +1 -1
- package/dist/collection/components/post-avatar/post-avatar.js +119 -82
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +1 -1
- package/dist/collection/components/post-banner/post-banner.js +2 -2
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +2 -2
- package/dist/collection/components/post-card-control/post-card-control.css +1 -1
- package/dist/collection/components/post-card-control/post-card-control.js +2 -2
- package/dist/collection/components/post-closebutton/post-closebutton.js +1 -19
- package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +1 -1
- package/dist/collection/components/post-footer/post-footer.css +1 -1
- package/dist/collection/components/post-footer/post-footer.js +1 -1
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +11 -2
- package/dist/collection/components/post-icon/post-icon.js +39 -33
- package/dist/collection/components/post-language-option/post-language-option.css +1 -1
- package/dist/collection/components/post-language-option/post-language-option.js +1 -2
- package/dist/collection/components/post-language-switch/post-language-switch.js +1 -2
- package/dist/collection/components/post-linkarea/post-linkarea.css +1 -1
- package/dist/collection/components/post-linkarea/post-linkarea.js +24 -6
- package/dist/collection/components/post-list/post-list.css +1 -1
- package/dist/collection/components/post-list/post-list.js +1 -1
- package/dist/collection/components/post-list-item/post-list-item.js +1 -1
- package/dist/collection/components/post-logo/post-logo.js +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +12 -2
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +41 -5
- package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +18 -7
- package/dist/collection/components/post-rating/post-rating.css +1 -1
- package/dist/collection/components/post-rating/post-rating.js +1 -1
- package/dist/collection/components/post-tab-header/post-tab-header.css +1 -1
- package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +3 -3
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +2 -2
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
- package/dist/collection/utils/event-from.js +2 -2
- package/dist/component-names.json +39 -0
- package/dist/{esm/event-from-8U5GFtQP.js → components/event-from.js} +2 -2
- package/dist/components/get-root.js +15 -0
- package/dist/components/index.d.ts +73 -0
- package/dist/components/index.js +36 -2315
- package/dist/components/package.js +3 -0
- package/dist/components/post-accordion-item.js +1 -1
- package/dist/components/post-accordion-item2.js +113 -0
- package/dist/components/post-accordion.js +1 -1
- package/dist/components/post-accordion2.js +138 -0
- package/dist/components/post-avatar.js +117 -88
- package/dist/components/post-back-to-top.js +7 -8
- package/dist/components/post-banner.js +10 -11
- package/dist/components/post-breadcrumb-item.js +1 -1
- package/dist/components/post-breadcrumb-item2.js +79 -0
- package/dist/components/post-breadcrumbs.js +16 -17
- package/dist/components/post-card-control.js +11 -12
- package/dist/components/post-closebutton.js +5 -7
- package/dist/components/post-collapsible-trigger.js +1 -1
- package/dist/components/post-collapsible-trigger2.js +135 -0
- package/dist/components/post-collapsible.js +1 -1
- package/dist/components/post-collapsible2.js +110 -0
- package/dist/components/post-footer.js +12 -13
- package/dist/components/post-header.js +18 -10
- package/dist/components/post-icon.js +1 -1
- package/dist/components/post-icon2.js +159 -0
- package/dist/components/post-language-option.js +10 -12
- package/dist/components/post-language-switch.js +13 -15
- package/dist/components/post-linkarea.js +24 -12
- package/dist/components/post-list-item.js +4 -5
- package/dist/components/post-list.js +6 -7
- package/dist/components/post-logo.js +6 -7
- package/dist/components/post-mainnavigation.js +6 -7
- package/dist/components/post-megadropdown-trigger.js +7 -8
- package/dist/components/post-megadropdown.js +20 -11
- package/dist/components/post-menu-item.js +1 -1
- package/dist/components/post-menu-item2.js +30 -0
- package/dist/components/post-menu-trigger.js +1 -1
- package/dist/components/post-menu-trigger2.js +110 -0
- package/dist/components/post-menu.js +1 -1
- package/dist/components/post-menu2.js +237 -0
- package/dist/components/post-popover.js +8 -9
- package/dist/components/post-popovercontainer.js +1 -1
- package/dist/components/post-popovercontainer2.js +3043 -0
- package/dist/components/post-rating.js +10 -11
- package/dist/components/post-tab-header.js +8 -9
- package/dist/components/post-tab-panel.js +7 -8
- package/dist/components/post-tabs.js +7 -8
- package/dist/components/post-togglebutton.js +4 -5
- package/dist/components/post-tooltip-trigger.js +7 -8
- package/dist/components/post-tooltip.js +8 -9
- package/dist/components/react/index.d.ts +33 -0
- package/dist/components/react/index.js +2315 -0
- package/dist/components/{p-Cxrx7SXz.js → react/p-Amg0f2Yo.js} +40 -34
- package/dist/components/{p-C0H2ohSv.js → react/p-B6vPT8S3.js} +3 -3
- package/dist/components/{p-336Lbkey.js → react/p-BDs0pvkX.js} +2 -2
- package/dist/components/react/p-BLchVpF6.js +14 -0
- package/dist/components/{p-BM8mtEfS.js → react/p-BMdFdJWl.js} +2 -2
- package/dist/components/{p-DP5pj8mq.js → react/p-BS0ZqwA-.js} +31 -6
- package/dist/components/react/p-C35MCWIp.js +35 -0
- package/dist/components/react/p-CJ80BZ06.js +178 -0
- package/dist/{esm/index-BWC0gtGU.js → components/react/p-CV7fm1rW.js} +1 -1
- package/dist/components/react/p-C_2k3G1c.js +264 -0
- package/dist/components/{p-DVGX_JCp.js → react/p-D1oOccKr.js} +3 -3
- package/dist/components/{p-pHxypsHK.js → react/p-D50E7y6E.js} +24 -9
- package/dist/components/react/p-DO48NanC.js +3 -0
- package/dist/components/{p-i0-mizzM.js → react/p-DOo9tmN-.js} +2 -2
- package/dist/components/{p-DEi5TIMq.js → react/p-Do9awHW7.js} +3 -3
- package/dist/components/react/p-SbIC4aZX.js +11 -0
- package/dist/components/{p-8U5GFtQP.js → react/p-kraHE1r3.js} +2 -2
- package/dist/components/react/p-r4txK0AC.js +3 -0
- package/dist/components/{p-BSvy4uym.js → react/p-xelWyg_P.js} +8 -8
- package/dist/components/react/post-accordion-item.d.ts +11 -0
- package/dist/components/react/post-accordion-item.js +6 -0
- package/dist/components/react/post-accordion.d.ts +11 -0
- package/dist/components/react/post-accordion.js +6 -0
- package/dist/components/react/post-avatar.d.ts +11 -0
- package/dist/components/react/post-avatar.js +218 -0
- package/dist/components/react/post-back-to-top.d.ts +11 -0
- package/dist/components/react/post-back-to-top.js +145 -0
- package/dist/components/react/post-banner.d.ts +11 -0
- package/dist/components/react/post-banner.js +99 -0
- package/dist/components/react/post-breadcrumb-item.d.ts +11 -0
- package/dist/components/react/post-breadcrumb-item.js +6 -0
- package/dist/components/react/post-breadcrumbs.d.ts +11 -0
- package/dist/components/react/post-breadcrumbs.js +187 -0
- package/dist/components/react/post-card-control.d.ts +11 -0
- package/dist/components/react/post-card-control.js +327 -0
- package/dist/components/react/post-closebutton.d.ts +11 -0
- package/dist/components/react/post-closebutton.js +50 -0
- package/dist/components/react/post-collapsible-trigger.d.ts +11 -0
- package/dist/components/react/post-collapsible-trigger.js +6 -0
- package/dist/components/react/post-collapsible.d.ts +11 -0
- package/dist/components/react/post-collapsible.js +6 -0
- package/dist/components/react/post-footer.d.ts +11 -0
- package/dist/components/react/post-footer.js +117 -0
- package/dist/components/react/post-header.d.ts +11 -0
- package/dist/components/react/post-header.js +342 -0
- package/dist/components/react/post-icon.d.ts +11 -0
- package/dist/components/react/post-icon.js +6 -0
- package/dist/components/react/post-language-option.d.ts +11 -0
- package/dist/components/react/post-language-option.js +100 -0
- package/dist/components/react/post-language-switch.d.ts +11 -0
- package/dist/components/react/post-language-switch.js +158 -0
- package/dist/components/react/post-linkarea.d.ts +11 -0
- package/dist/components/react/post-linkarea.js +59 -0
- package/dist/components/react/post-list-item.d.ts +11 -0
- package/dist/components/react/post-list-item.js +39 -0
- package/dist/components/react/post-list.d.ts +11 -0
- package/dist/components/react/post-list.js +62 -0
- package/dist/components/react/post-logo.d.ts +11 -0
- package/dist/components/react/post-logo.js +59 -0
- package/dist/components/react/post-mainnavigation.d.ts +11 -0
- package/dist/components/react/post-mainnavigation.js +181 -0
- package/dist/components/react/post-megadropdown-trigger.d.ts +11 -0
- package/dist/components/react/post-megadropdown-trigger.js +137 -0
- package/dist/components/react/post-megadropdown.d.ts +11 -0
- package/dist/components/react/post-megadropdown.js +207 -0
- package/dist/components/react/post-menu-item.d.ts +11 -0
- package/dist/components/react/post-menu-item.js +6 -0
- package/dist/components/react/post-menu-trigger.d.ts +11 -0
- package/dist/components/react/post-menu-trigger.js +6 -0
- package/dist/components/react/post-menu.d.ts +11 -0
- package/dist/components/react/post-menu.js +6 -0
- package/dist/components/react/post-popover.d.ts +11 -0
- package/dist/components/react/post-popover.js +189 -0
- package/dist/components/react/post-popovercontainer.d.ts +11 -0
- package/dist/components/react/post-popovercontainer.js +6 -0
- package/dist/components/react/post-rating.d.ts +11 -0
- package/dist/components/react/post-rating.js +153 -0
- package/dist/components/react/post-tab-header.d.ts +11 -0
- package/dist/components/react/post-tab-header.js +53 -0
- package/dist/components/react/post-tab-panel.d.ts +11 -0
- package/dist/components/react/post-tab-panel.js +55 -0
- package/dist/components/react/post-tabs.d.ts +11 -0
- package/dist/components/react/post-tabs.js +197 -0
- package/dist/components/react/post-togglebutton.d.ts +11 -0
- package/dist/components/react/post-togglebutton.js +57 -0
- package/dist/components/react/post-tooltip-trigger.d.ts +11 -0
- package/dist/components/react/post-tooltip-trigger.js +5223 -0
- package/dist/components/react/post-tooltip.d.ts +11 -0
- package/dist/components/react/post-tooltip.js +115 -0
- package/dist/components/switch-variants.js +3 -0
- package/dist/docs.json +71 -35
- package/dist/esm/event-from-kraHE1r3.js +105 -0
- package/dist/esm/index-C8a0ddDa.js +4 -4
- package/dist/esm/index-VmK3ABCB.js +88 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/package-DO48NanC.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +7 -7
- package/dist/esm/post-avatar.entry.js +108 -81
- package/dist/esm/post-back-to-top.entry.js +3 -3
- package/dist/esm/post-banner.entry.js +4 -4
- package/dist/esm/post-breadcrumb-item_2.entry.js +4 -4
- package/dist/esm/post-breadcrumbs.entry.js +5 -5
- package/dist/esm/post-card-control.entry.js +5 -5
- package/dist/esm/post-closebutton_15.entry.js +135 -76
- package/dist/esm/post-collapsible_2.entry.js +5 -5
- package/dist/esm/post-components.js +1 -1
- package/dist/esm/post-footer.entry.js +4 -4
- package/dist/esm/post-linkarea.entry.js +19 -8
- package/dist/esm/post-popover.entry.js +4 -4
- package/dist/esm/post-rating.entry.js +4 -4
- package/dist/esm/post-tab-header.entry.js +4 -4
- package/dist/esm/post-tab-panel.entry.js +3 -3
- package/dist/esm/post-tabs.entry.js +2 -2
- package/dist/esm/post-tooltip-trigger.entry.js +3 -3
- package/dist/esm/post-tooltip.entry.js +4 -4
- package/dist/loader/cdn.js +1 -0
- package/dist/loader/index.cjs.js +1 -0
- package/{loader → dist/loader}/index.d.ts +1 -1
- package/dist/loader/index.es2017.js +1 -0
- package/{loader → dist/loader}/index.js +1 -1
- package/dist/post-components/p-01bc39c2.entry.js +1 -0
- package/dist/post-components/p-0dc1e940.entry.js +1 -0
- package/dist/post-components/p-16da91bc.entry.js +1 -0
- package/dist/post-components/p-26a04741.entry.js +1 -0
- package/dist/post-components/p-2f2f9b22.entry.js +1 -0
- package/dist/post-components/{p-45007aac.entry.js → p-33008981.entry.js} +1 -1
- package/dist/post-components/p-36358cd4.entry.js +1 -0
- package/dist/post-components/p-71c48d48.entry.js +1 -0
- package/dist/post-components/{p-e9802b56.entry.js → p-84395e1d.entry.js} +1 -1
- package/dist/post-components/p-848c10ac.entry.js +1 -0
- package/dist/post-components/{p-ab8017bb.entry.js → p-8d2e5814.entry.js} +1 -1
- package/dist/post-components/{p-a2fa5ce4.entry.js → p-9dbe6595.entry.js} +1 -1
- package/dist/post-components/p-DO48NanC.js +1 -0
- package/dist/post-components/{p-BWC0gtGU.js → p-VmK3ABCB.js} +1 -1
- package/dist/post-components/p-a982458f.entry.js +1 -0
- package/dist/post-components/{p-f67b616a.entry.js → p-b0aaa058.entry.js} +1 -1
- package/dist/post-components/{p-bbe02ba3.entry.js → p-bdeef760.entry.js} +1 -1
- package/dist/post-components/{p-2f698af4.entry.js → p-d221395c.entry.js} +1 -1
- package/dist/post-components/{p-57703aee.entry.js → p-e49aa78e.entry.js} +1 -1
- package/dist/post-components/p-eb405167.entry.js +1 -0
- package/dist/post-components/p-kraHE1r3.js +1 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/animations/pop-in.d.ts +1 -0
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +3 -3
- package/dist/types/components/post-avatar/avatar-utils.d.ts +3 -0
- package/dist/types/components/post-avatar/post-avatar.d.ts +17 -13
- package/dist/types/components/post-closebutton/post-closebutton.d.ts +0 -6
- package/dist/types/components/post-header/post-header.d.ts +2 -0
- package/dist/types/components/post-icon/post-icon.d.ts +11 -0
- package/dist/types/components/post-linkarea/post-linkarea.d.ts +6 -0
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +2 -1
- package/dist/types/components/post-menu/post-menu.d.ts +7 -0
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +6 -2
- package/dist/types/components/post-tabs/post-tabs.d.ts +2 -2
- package/dist/types/components.d.ts +19 -22
- package/dist/types/utils/component-on-ready.d.ts +2 -2
- package/hydrate/index.js +308 -201
- package/hydrate/index.mjs +308 -201
- package/package.json +24 -12
- package/dist/components/p-Z01QMrov.js +0 -3
- package/dist/esm/package-Z01QMrov.js +0 -3
- package/dist/post-components/p-031f7489.entry.js +0 -1
- package/dist/post-components/p-1e6a068a.entry.js +0 -1
- package/dist/post-components/p-2ca196d6.entry.js +0 -1
- package/dist/post-components/p-3adbdda7.entry.js +0 -1
- package/dist/post-components/p-7b8ab026.entry.js +0 -1
- package/dist/post-components/p-8U5GFtQP.js +0 -1
- package/dist/post-components/p-9428231b.entry.js +0 -1
- package/dist/post-components/p-Z01QMrov.js +0 -1
- package/dist/post-components/p-ac73ab00.entry.js +0 -1
- package/dist/post-components/p-c1cf39cb.entry.js +0 -1
- package/dist/post-components/p-d0d92071.entry.js +0 -1
- package/dist/post-components/p-e96239c4.entry.js +0 -1
- package/dist/prebuild.js +0 -26
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +0 -1
- package/loader/cdn.js +0 -1
- package/loader/index.cjs.js +0 -1
- package/loader/index.es2017.js +0 -1
- /package/dist/components/{p-CJ80BZ06.js → breakpoints.js} +0 -0
- /package/dist/components/{p-SbIC4aZX.js → fade.js} +0 -0
- /package/dist/components/{p-C35MCWIp.js → get-focusable-children.js} +0 -0
- /package/dist/components/{p-r4txK0AC.js → heading-levels.js} +0 -0
- /package/dist/components/{p-BLchVpF6.js → index.browser.js} +0 -0
- /package/dist/components/{p-CV7fm1rW.js → index2.js} +0 -0
- /package/dist/components/{p-C_2k3G1c.js → long-press-event.js} +0 -0
- /package/dist/components/{p-CBFgkSgY.js → react/p-CBFgkSgY.js} +0 -0
- /package/dist/components/{p-DjIHLduJ.js → react/p-DjIHLduJ.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PostAccordionItem$1, d as defineCustomElement$1 } from './
|
|
1
|
+
import { P as PostAccordionItem$1, d as defineCustomElement$1 } from './post-accordion-item2.js';
|
|
2
2
|
|
|
3
3
|
const PostAccordionItem = PostAccordionItem$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { H as HEADING_LEVELS } from './heading-levels.js';
|
|
4
|
+
import { d as checkEmptyOrOneOf } from './index2.js';
|
|
5
|
+
import './breakpoints.js';
|
|
6
|
+
import { E as EventFrom } from './event-from.js';
|
|
7
|
+
import { n as nanoid } from './index.browser.js';
|
|
8
|
+
import { d as defineCustomElement$3 } from './post-collapsible2.js';
|
|
9
|
+
import { d as defineCustomElement$2 } from './post-collapsible-trigger2.js';
|
|
10
|
+
import { d as defineCustomElement$1 } from './post-icon2.js';
|
|
11
|
+
|
|
12
|
+
const postAccordionItemCss = ".accordion-item::after{display:block;content:\"\";margin-block-start:calc(var(--post-device-border-width-default)*-1);border-block-end:var(--post-device-border-width-default) var(--post-core-border-style-solid) var(--post-scheme-color-interactive-primary-enabled-stroke)}.accordion-item:has(.accordion-button:hover)::after{border-color:var(--post-scheme-color-interactive-primary-hover-stroke)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.accordion-item:has(.accordion-button:hover)::after{border-color:Highlight}}.accordion-header{color:var(--post-scheme-color-interactive-primary-enabled-fg1);font-size:var(--post-device-font-size-5);margin:0;line-height:var(--post-device-line-height-heading);font-weight:var(--post-device-font-weight-extra-black)}.accordion-button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;display:flex;position:relative;width:100%;align-items:center;text-align:start;gap:var(--post-device-spacing-gap-7);padding:calc(var(--post-device-spacing-padding-19) + var(--post-device-border-width-default)) calc(var(--post-device-spacing-padding-5) + var(--post-device-border-width-default));cursor:pointer}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.accordion-button{background-color:ButtonFace !important}.accordion-button:hover{background-color:Highlight !important}}.accordion-button::before{display:block;position:absolute;content:\"\";inset:0;inset-block-end:auto;border-block-start-width:var(--post-device-border-width-default);border-block-start-style:var(--post-core-border-style-solid);border-block-start-color:var(--post-scheme-color-interactive-primary-enabled-stroke)}.accordion-button{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.accordion-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.accordion-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.accordion-button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.accordion-button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.accordion-button slot::slotted(span[slot=header]){flex-grow:1}.accordion-button post-icon{flex:none;width:var(--post-core-dimension-24);aspect-ratio:1;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}.accordion-button.collapsed{padding-block-start:calc(var(--post-device-spacing-padding-19) + var(--post-device-border-width-default));padding-block-end:calc(var(--post-device-spacing-padding-19) + var(--post-device-border-width-default))}.accordion-button.collapsed post-icon{transform:rotate(-180deg)}.accordion-button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}.accordion-button>::slotted(.text-truncate){display:block}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.accordion-button:hover,.accordion-button:focus-visible{color:Highlight}}.accordion-body{padding-block-start:var(--post-device-spacing-padding-15);padding-block-end:calc(var(--post-device-spacing-padding-block-25) + var(--post-device-border-width-default));padding-inline:var(--post-device-spacing-padding-5)}.logo-container{display:none;width:var(--post-device-sizing-logo-1);aspect-ratio:1}.logo-container.has-image{display:block}.logo-container slot::slotted(img){display:block;width:100%;height:100%;object-fit:cover}.accordion-button>::slotted(:first-child),.accordion-body>::slotted(:first-child){margin-block-start:0 !important}.accordion-button>::slotted(:last-child),.accordion-body>::slotted(:last-child){margin-block-end:0 !important}";
|
|
13
|
+
|
|
14
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
15
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
17
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
+
else
|
|
19
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
20
|
+
if (d = decorators[i])
|
|
21
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
const PostAccordionItem = /*@__PURE__*/ proxyCustomElement(class PostAccordionItem extends HTMLElement {
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
this.__registerHost();
|
|
28
|
+
this.__attachShadow();
|
|
29
|
+
/**
|
|
30
|
+
* If `true`, the element is collapsed otherwise it is displayed.
|
|
31
|
+
*/
|
|
32
|
+
this.collapsed = false;
|
|
33
|
+
}
|
|
34
|
+
validateHeadingLevel() {
|
|
35
|
+
checkEmptyOrOneOf(this, 'headingLevel', HEADING_LEVELS);
|
|
36
|
+
}
|
|
37
|
+
componentWillLoad() {
|
|
38
|
+
this.id = this.host.id || `p${nanoid(6)}`;
|
|
39
|
+
}
|
|
40
|
+
componentDidLoad() {
|
|
41
|
+
this.validateHeadingLevel();
|
|
42
|
+
}
|
|
43
|
+
// Capture to make sure the "collapsed" property is updated before the event is consumed
|
|
44
|
+
onCollapseToggle(event) {
|
|
45
|
+
this.collapsed = !event.detail;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Triggers the collapse programmatically.
|
|
49
|
+
*/
|
|
50
|
+
async toggle(force) {
|
|
51
|
+
return this.collapsible.toggle(force);
|
|
52
|
+
}
|
|
53
|
+
onSlotLogoChange() {
|
|
54
|
+
this.slottedLogo = this.host.querySelector('img[slot="logo"]');
|
|
55
|
+
}
|
|
56
|
+
componentWillRender() {
|
|
57
|
+
this.slottedLogo = this.host.querySelector('img[slot="logo"]');
|
|
58
|
+
}
|
|
59
|
+
render() {
|
|
60
|
+
const headingLevel = this.host.closest('post-accordion')?.getAttribute('heading-level');
|
|
61
|
+
const HeadingTag = `h${headingLevel ?? this.headingLevel ?? 2}`;
|
|
62
|
+
return (h(Host, { key: 'b98847d19894430b6f65130aebf8673a45afd1e6', id: this.id, "data-version": version }, h("div", { key: 'f26f9d3a4a1f59db23b4698b321e28e112c3eed0', part: "accordion-item", class: "accordion-item" }, h("post-collapsible-trigger", { key: '14bdacce04d67a03655f600feeaeec065e0fc198', for: `${this.id}--collapse` }, h(HeadingTag, { key: '7a07a70d172306ce37f8bd0143b21ed7ec0cab8a', class: "accordion-header", id: `${this.id}--header` }, h("button", { key: '5ad0698a62df5c4b2c0a77ff622090b20f348e9c', type: "button", class: `accordion-button${this.collapsed ? ' collapsed' : ''}`, part: "button" }, h("span", { key: '6e5fcb0c9efa8a57e05fd162c72b9c170a8210c6', class: {
|
|
63
|
+
'logo-container': true,
|
|
64
|
+
'has-image': !!this.slottedLogo,
|
|
65
|
+
} }, h("slot", { key: '41a1409f723bf52de893324ce45d4e7f31eb8908', name: "logo", onSlotchange: this.onSlotLogoChange.bind(this) })), h("slot", { key: '7186adfe4a4fe67f4dbaeb7569820d0d06c18428', name: "header" }), h("post-icon", { key: 'fbfcbdc9947a8c7cf80d861aba3a77be0dff91d1', name: "2051" })))), h("post-collapsible", { key: '5de19aab5eb0134b7c3e7f43e5c2da0cb8413908', id: `${this.id}--collapse`, collapsed: this.collapsed, ref: el => (this.collapsible = el) }, h("div", { key: '5112ba8604ea177af4d88033f682c2a4cc6c4ffd', class: "accordion-body", part: "body" }, h("slot", { key: 'd70ab76842fced3f7dec812471685071e377bc61' }))))));
|
|
66
|
+
}
|
|
67
|
+
get host() { return this; }
|
|
68
|
+
static get watchers() { return {
|
|
69
|
+
"headingLevel": ["validateHeadingLevel"]
|
|
70
|
+
}; }
|
|
71
|
+
static get style() { return postAccordionItemCss; }
|
|
72
|
+
}, [1, "post-accordion-item", {
|
|
73
|
+
"collapsed": [1028],
|
|
74
|
+
"headingLevel": [2, "heading-level"],
|
|
75
|
+
"id": [32],
|
|
76
|
+
"slottedLogo": [32],
|
|
77
|
+
"toggle": [64]
|
|
78
|
+
}, [[2, "postToggle", "onCollapseToggle"]], {
|
|
79
|
+
"headingLevel": ["validateHeadingLevel"]
|
|
80
|
+
}]);
|
|
81
|
+
__decorate([
|
|
82
|
+
EventFrom('post-accordion-item')
|
|
83
|
+
], PostAccordionItem.prototype, "onCollapseToggle", null);
|
|
84
|
+
function defineCustomElement() {
|
|
85
|
+
if (typeof customElements === "undefined") {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const components = ["post-accordion-item", "post-collapsible", "post-collapsible-trigger", "post-icon"];
|
|
89
|
+
components.forEach(tagName => { switch (tagName) {
|
|
90
|
+
case "post-accordion-item":
|
|
91
|
+
if (!customElements.get(tagName)) {
|
|
92
|
+
customElements.define(tagName, PostAccordionItem);
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
case "post-collapsible":
|
|
96
|
+
if (!customElements.get(tagName)) {
|
|
97
|
+
defineCustomElement$3();
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case "post-collapsible-trigger":
|
|
101
|
+
if (!customElements.get(tagName)) {
|
|
102
|
+
defineCustomElement$2();
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
case "post-icon":
|
|
106
|
+
if (!customElements.get(tagName)) {
|
|
107
|
+
defineCustomElement$1();
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
} });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { PostAccordionItem as P, defineCustomElement as d };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { H as HEADING_LEVELS } from './heading-levels.js';
|
|
4
|
+
import { b as checkRequiredAndOneOf } from './index2.js';
|
|
5
|
+
import './breakpoints.js';
|
|
6
|
+
import { E as EventFrom } from './event-from.js';
|
|
7
|
+
|
|
8
|
+
const postAccordionCss = ":host{display:block}::slotted(post-accordion-item){display:block}::slotted(post-accordion-item:not(:only-of-type:first-of-type)){margin-block-start:calc(var(--post-device-border-width-default)*-1)}";
|
|
9
|
+
|
|
10
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
11
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
12
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
13
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
14
|
+
else
|
|
15
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
16
|
+
if (d = decorators[i])
|
|
17
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
+
};
|
|
20
|
+
const PostAccordion = /*@__PURE__*/ proxyCustomElement(class PostAccordion extends HTMLElement {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.__registerHost();
|
|
24
|
+
this.__attachShadow();
|
|
25
|
+
this.expandedItems = new Set();
|
|
26
|
+
/**
|
|
27
|
+
* If `true`, multiple `post-accordion-item` can be open at the same time.
|
|
28
|
+
*/
|
|
29
|
+
this.multiple = false;
|
|
30
|
+
}
|
|
31
|
+
validateHeadingLevel() {
|
|
32
|
+
checkRequiredAndOneOf(this, 'headingLevel', HEADING_LEVELS);
|
|
33
|
+
this.accordionItems.forEach(item => {
|
|
34
|
+
item.setAttribute('heading-level', String(this.headingLevel));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
componentWillLoad() {
|
|
38
|
+
this.registerAccordionItems();
|
|
39
|
+
}
|
|
40
|
+
componentDidLoad() {
|
|
41
|
+
this.validateHeadingLevel();
|
|
42
|
+
}
|
|
43
|
+
collapseToggleHandler(event) {
|
|
44
|
+
const toggledAccordionItem = event.target;
|
|
45
|
+
const isClosing = this.expandedItems.has(toggledAccordionItem);
|
|
46
|
+
if (isClosing) {
|
|
47
|
+
this.expandedItems.delete(toggledAccordionItem);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.expandedItems.add(toggledAccordionItem);
|
|
51
|
+
}
|
|
52
|
+
if (this.multiple || isClosing)
|
|
53
|
+
return;
|
|
54
|
+
// Close other open accordion items to ensure only one is open at a time
|
|
55
|
+
Array.from(this.expandedItems.values())
|
|
56
|
+
.filter(item => item !== toggledAccordionItem)
|
|
57
|
+
.forEach(item => {
|
|
58
|
+
item.toggle(false);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Toggles the `post-accordion-item` with the given id.
|
|
63
|
+
*/
|
|
64
|
+
async toggle(id) {
|
|
65
|
+
const itemToToggle = this.accordionItems.find(item => item.id === id);
|
|
66
|
+
if (!itemToToggle)
|
|
67
|
+
throw new Error(`No post-accordion-item found with id #${id}.`);
|
|
68
|
+
await itemToToggle.toggle();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Expands all `post-accordion-item`.
|
|
72
|
+
*
|
|
73
|
+
* If `multiple="true"` is not set and all items are closed, it will open the first one.
|
|
74
|
+
* Otherwise, it will keep the opened one.
|
|
75
|
+
*/
|
|
76
|
+
async expandAll() {
|
|
77
|
+
if (this.multiple) {
|
|
78
|
+
await Promise.all(this.accordionItems.map(item => item.toggle(true)));
|
|
79
|
+
}
|
|
80
|
+
else if (!this.expandedItems.size) {
|
|
81
|
+
await this.accordionItems[0].toggle(true);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Collapses all `post-accordion-item`.
|
|
86
|
+
*/
|
|
87
|
+
async collapseAll() {
|
|
88
|
+
await Promise.all(this.accordionItems.map(item => item.toggle(false)));
|
|
89
|
+
}
|
|
90
|
+
registerAccordionItems() {
|
|
91
|
+
this.accordionItems = Array.from(this.host.querySelectorAll('post-accordion-item'));
|
|
92
|
+
this.accordionItems
|
|
93
|
+
.filter(item => {
|
|
94
|
+
return !item.collapsed || this.expandedItems.has(item);
|
|
95
|
+
})
|
|
96
|
+
.forEach((item, index) => {
|
|
97
|
+
if (!this.multiple && index !== 0) {
|
|
98
|
+
item.setAttribute('collapsed', '');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this.expandedItems.add(item);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
render() {
|
|
105
|
+
return (h(Host, { key: 'ab800b580f0dd591a9413305afa282ff7e697759', "data-version": version }, h("div", { key: '258ba1dc99811545c0dd9796ef521a05a0c87dda', class: "accordion" }, h("slot", { key: '2ad7482962316723f5c8ff334bad7cc33b6fa953', onSlotchange: () => this.registerAccordionItems() }))));
|
|
106
|
+
}
|
|
107
|
+
get host() { return this; }
|
|
108
|
+
static get watchers() { return {
|
|
109
|
+
"headingLevel": ["validateHeadingLevel"]
|
|
110
|
+
}; }
|
|
111
|
+
static get style() { return postAccordionCss; }
|
|
112
|
+
}, [1, "post-accordion", {
|
|
113
|
+
"headingLevel": [2, "heading-level"],
|
|
114
|
+
"multiple": [4],
|
|
115
|
+
"toggle": [64],
|
|
116
|
+
"expandAll": [64],
|
|
117
|
+
"collapseAll": [64]
|
|
118
|
+
}, [[0, "postToggle", "collapseToggleHandler"]], {
|
|
119
|
+
"headingLevel": ["validateHeadingLevel"]
|
|
120
|
+
}]);
|
|
121
|
+
__decorate([
|
|
122
|
+
EventFrom('post-accordion-item')
|
|
123
|
+
], PostAccordion.prototype, "collapseToggleHandler", null);
|
|
124
|
+
function defineCustomElement() {
|
|
125
|
+
if (typeof customElements === "undefined") {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const components = ["post-accordion"];
|
|
129
|
+
components.forEach(tagName => { switch (tagName) {
|
|
130
|
+
case "post-accordion":
|
|
131
|
+
if (!customElements.get(tagName)) {
|
|
132
|
+
customElements.define(tagName, PostAccordion);
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
} });
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export { PostAccordion as P, defineCustomElement as d };
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { v as version } from './
|
|
3
|
-
import { c as checkRequiredAndType, e as checkEmptyOrType, f as checkEmptyOrPattern } from './
|
|
4
|
-
import './
|
|
5
|
-
|
|
6
|
-
const postAvatarCss = "@keyframes popIn{from{transform:scale(0.9);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--post-transition-duration, 0.35s);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;transform:scale(1)}}:host{--post-avatar-bg:var(--post-scheme-color-interactive-primary-enabled-bg2);--post-avatar-fg:var(--post-scheme-color-interactive-primary-enabled-fg3);display:inline-flex;position:relative;width:var(--post-device-sizing-interactive-icon-size3);height:var(--post-device-sizing-interactive-icon-size3);background-color:var(--post-scheme-color-interactive-primary-enabled-stroke3);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-primary-enabled-stroke3);border-radius:var(--post-device-border-radius-round);font-size:var(--post-device-font-size-8);vertical-align:top;line-height:1}:host::after{display:block;content:\"\";position:absolute;inset:0;z-index:1;border-radius:inherit}*,*::before,*::after{box-sizing:border-box}slot,img,::slotted(img){display:block;width:100%;height:100%}img,::slotted(img){border-radius:var(--post-device-border-radius-round)}::slotted(:not(img)){display:none !important}.initials{display:flex;justify-content:center;align-items:center;position:relative;z-index:2;width:100%;height:100%;background-color:var(--post-avatar-bg);border-radius:var(--post-device-border-radius-round);color:var(--post-avatar-fg);text-transform:uppercase}.initials span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { c as checkRequiredAndType, e as checkEmptyOrType, f as checkEmptyOrPattern } from './index2.js';
|
|
4
|
+
import './breakpoints.js';
|
|
7
5
|
|
|
8
6
|
// https://docs.gravatar.com/api/avatars/images/
|
|
9
7
|
const GRAVATAR_DEFAULT = '404';
|
|
10
8
|
const GRAVATAR_RATING = 'g';
|
|
11
9
|
const GRAVATAR_SIZE = 80;
|
|
10
|
+
async function cryptify(key) {
|
|
11
|
+
return await crypto.subtle.digest('SHA-256', new TextEncoder().encode(key)).then(buffer => {
|
|
12
|
+
return Array.from(new Uint8Array(buffer))
|
|
13
|
+
.map(bytes => bytes.toString(16).padStart(2, '0'))
|
|
14
|
+
.join('');
|
|
15
|
+
});
|
|
16
|
+
}
|
|
12
17
|
const GRAVATAR_BASE_URL = `https://www.gravatar.com/avatar/{email}?s=${GRAVATAR_SIZE}&d=${GRAVATAR_DEFAULT}&r=${GRAVATAR_RATING}`;
|
|
18
|
+
|
|
19
|
+
const postAvatarCss = ":host{--post-avatar-bg:var(--post-scheme-color-interactive-primary-enabled-bg2);--post-avatar-fg:var(--post-scheme-color-interactive-primary-enabled-fg3);display:inline-flex;position:relative;width:var(--post-device-sizing-interactive-icon-size3);height:var(--post-device-sizing-interactive-icon-size3);background-color:var(--post-scheme-color-interactive-primary-enabled-stroke3);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-primary-enabled-stroke3);border-radius:var(--post-device-border-radius-round);font-size:var(--post-device-font-size-8);vertical-align:top;line-height:1}:host::after{display:block;content:\"\";position:absolute;inset:0;z-index:1;border-radius:inherit}*,*::before,*::after{box-sizing:border-box}slot,img,::slotted(img){display:block;width:100%;height:100%}img,::slotted(img){border-radius:var(--post-device-border-radius-round)}::slotted(:not(img)){display:none !important}.initials{display:flex;justify-content:center;align-items:center;position:relative;z-index:2;width:100%;height:100%;background-color:var(--post-avatar-bg);border-radius:var(--post-device-border-radius-round);color:var(--post-avatar-fg);text-transform:uppercase}.initials span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
20
|
+
|
|
13
21
|
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
14
22
|
var AvatarType;
|
|
15
23
|
(function (AvatarType) {
|
|
@@ -18,7 +26,7 @@ var AvatarType;
|
|
|
18
26
|
AvatarType["Initials"] = "initials";
|
|
19
27
|
AvatarType[AvatarType["Null"] = null] = "Null";
|
|
20
28
|
})(AvatarType || (AvatarType = {}));
|
|
21
|
-
const PostAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PostAvatar extends
|
|
29
|
+
const PostAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PostAvatar extends HTMLElement {
|
|
22
30
|
constructor() {
|
|
23
31
|
super();
|
|
24
32
|
this.__registerHost();
|
|
@@ -27,6 +35,8 @@ const PostAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PostAvatar extends H
|
|
|
27
35
|
this.imageUrl = '';
|
|
28
36
|
this.imageAlt = '';
|
|
29
37
|
this.initials = '';
|
|
38
|
+
// To handle email or userid updates and reset the storage item
|
|
39
|
+
this.storageKey = '';
|
|
30
40
|
}
|
|
31
41
|
validateFirstname() {
|
|
32
42
|
checkRequiredAndType(this, 'firstname', 'string');
|
|
@@ -34,120 +44,137 @@ const PostAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PostAvatar extends H
|
|
|
34
44
|
validateLastname() {
|
|
35
45
|
checkEmptyOrType(this, 'lastname', 'string');
|
|
36
46
|
}
|
|
37
|
-
|
|
47
|
+
updateUserid() {
|
|
48
|
+
this.validateUserId();
|
|
49
|
+
this.getAvatarImage();
|
|
50
|
+
}
|
|
51
|
+
updateEmail() {
|
|
52
|
+
this.validateEmail();
|
|
53
|
+
this.getAvatarImage();
|
|
54
|
+
}
|
|
55
|
+
validateDescription() {
|
|
56
|
+
checkEmptyOrType(this, 'description', 'string');
|
|
57
|
+
}
|
|
58
|
+
validateUserId() {
|
|
38
59
|
checkEmptyOrType(this, 'userid', 'string');
|
|
39
60
|
}
|
|
40
61
|
validateEmail() {
|
|
41
62
|
if (this.email)
|
|
42
63
|
checkEmptyOrPattern(this, 'email', emailPattern);
|
|
43
64
|
}
|
|
44
|
-
async
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (!imageLoaded && this.userid)
|
|
65
|
+
async getAvatarImage() {
|
|
66
|
+
let imageLoaded = false;
|
|
67
|
+
this.slottedImage = this.host.querySelector('img');
|
|
68
|
+
const imageUrl = this.slottedImage?.getAttribute('src');
|
|
69
|
+
if (!imageUrl) {
|
|
70
|
+
if (this.userid) {
|
|
51
71
|
imageLoaded = await this.getImageByProp(this.userid, this.fetchImageByUserId.bind(this));
|
|
52
|
-
|
|
72
|
+
}
|
|
73
|
+
if (!imageLoaded && this.email?.match(emailPattern)) {
|
|
53
74
|
imageLoaded = await this.getImageByProp(this.email, this.fetchImageByEmail.bind(this));
|
|
54
|
-
|
|
55
|
-
|
|
75
|
+
}
|
|
76
|
+
if (!imageLoaded) {
|
|
77
|
+
this.avatarType = AvatarType.Initials;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const slottedImageLoaded = await this.getImageByProp(imageUrl, this.fetchSlottedImage.bind(this));
|
|
82
|
+
if (!slottedImageLoaded) {
|
|
83
|
+
this.slottedImage.style.display = 'none';
|
|
84
|
+
this.avatarType = AvatarType.Initials;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.slottedImage.style.display = 'block';
|
|
88
|
+
}
|
|
56
89
|
}
|
|
57
90
|
}
|
|
58
91
|
async getImageByProp(prop, fetchImage) {
|
|
59
92
|
if (!prop)
|
|
60
93
|
return false;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
94
|
+
let imageResponse;
|
|
95
|
+
try {
|
|
96
|
+
imageResponse = await fetchImage(prop);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.info('Loading avatar image failed.', error);
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
if (!imageResponse?.ok) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.imageUrl = imageResponse.url;
|
|
107
|
+
this.imageAlt = `${this.firstname} ${this.lastname} avatar`;
|
|
108
|
+
this.avatarType = AvatarType.Image;
|
|
109
|
+
return true;
|
|
76
110
|
}
|
|
77
|
-
return imageResponse.ok;
|
|
78
111
|
}
|
|
79
112
|
async fetchImageByUserId() {
|
|
80
113
|
return await fetch(PostAvatar.INTERNAL_USERID_IMAGE_SRC.replace('{userid}', encodeURIComponent(this.userid)));
|
|
81
114
|
}
|
|
82
115
|
async fetchImageByEmail() {
|
|
83
|
-
const email = await
|
|
116
|
+
const email = await cryptify(this.email);
|
|
84
117
|
const imageUrl = GRAVATAR_BASE_URL.replace('{email}', email);
|
|
85
118
|
return await fetch(imageUrl);
|
|
86
119
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
async getStorageItem(keyToken) {
|
|
101
|
-
const key = await this.cryptify(keyToken);
|
|
102
|
-
const value = window?.sessionStorage?.getItem(key);
|
|
103
|
-
return value ? JSON.parse(value) : null;
|
|
104
|
-
}
|
|
105
|
-
async setStorageItem(keyToken, value) {
|
|
106
|
-
const key = await this.cryptify(keyToken);
|
|
107
|
-
window?.sessionStorage?.setItem(key, value);
|
|
108
|
-
}
|
|
109
|
-
async removeStorageItem(keyToken) {
|
|
110
|
-
const key = await this.cryptify(keyToken);
|
|
111
|
-
window?.sessionStorage?.removeItem(key);
|
|
112
|
-
}
|
|
113
|
-
async cryptify(key) {
|
|
114
|
-
return await crypto.subtle.digest('SHA-256', new TextEncoder().encode(key)).then(buffer => {
|
|
115
|
-
return Array.from(new Uint8Array(buffer))
|
|
116
|
-
.map(bytes => bytes.toString(16).padStart(2, '0'))
|
|
117
|
-
.join('');
|
|
120
|
+
async fetchSlottedImage(imageUrl) {
|
|
121
|
+
return await fetch(imageUrl, { method: 'HEAD' });
|
|
122
|
+
}
|
|
123
|
+
slotChanged() {
|
|
124
|
+
const slot = this.host.shadowRoot.querySelector('slot');
|
|
125
|
+
const assignedNodes = slot?.assignedNodes({ flatten: true }) || [];
|
|
126
|
+
assignedNodes.forEach(node => {
|
|
127
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
128
|
+
const el = node;
|
|
129
|
+
if (el.tagName === 'IMG') {
|
|
130
|
+
this.observeImageSrcChanges(el);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
118
133
|
});
|
|
134
|
+
this.getAvatarImage();
|
|
119
135
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.
|
|
136
|
+
// Observe the Slotted image src attribute and update the image
|
|
137
|
+
observeImageSrcChanges(img) {
|
|
138
|
+
if (this.slottedImageObserver) {
|
|
139
|
+
this.slottedImageObserver.disconnect();
|
|
140
|
+
}
|
|
141
|
+
this.slottedImageObserver = new MutationObserver(mutations => {
|
|
142
|
+
mutations.forEach(mutation => {
|
|
143
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
|
|
144
|
+
this.getAvatarImage();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
this.slottedImageObserver.observe(img, { attributes: true, attributeFilter: ['src'] });
|
|
123
149
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
this.
|
|
150
|
+
connectedCallback() {
|
|
151
|
+
//This provides a fallback by showing the initials while the image is still loading or delayed.
|
|
152
|
+
this.avatarType = AvatarType.Initials;
|
|
153
|
+
this.getAvatarImage();
|
|
127
154
|
}
|
|
128
155
|
componentDidLoad() {
|
|
129
156
|
this.validateFirstname();
|
|
130
157
|
this.validateLastname();
|
|
131
|
-
this.
|
|
158
|
+
this.validateDescription();
|
|
159
|
+
this.validateUserId();
|
|
132
160
|
this.validateEmail();
|
|
133
161
|
}
|
|
134
162
|
render() {
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}, []);
|
|
143
|
-
return (h(Host, { "data-version": version }, h("slot", { onSlotchange: this.onSlotDefaultChange.bind(this) }, this.avatarType === 'image' && h("img", { src: this.imageUrl, alt: this.imageAlt }), this.avatarType === 'initials' && h("div", { class: "initials" }, initials))));
|
|
163
|
+
const names = [this.firstname, this.lastname].filter(n => n).map(n => n.trim());
|
|
164
|
+
const initials = names
|
|
165
|
+
.map(n => n.charAt(0))
|
|
166
|
+
.join('')
|
|
167
|
+
.trim();
|
|
168
|
+
const fullname = names.join(' ');
|
|
169
|
+
return (h(Host, { key: '9e596623d1949c62b1f110e311b839d244b249ef', "data-version": version }, h("span", { key: '6722e4096cb0d2f8b5d171f0d84fef98f74e1cd7', class: this.avatarType === 'slotted' ? '' : 'd-none' }, h("slot", { key: '95e8809133eb0de4382e9dc521eda877a6be5a8b', onSlotchange: this.slotChanged.bind(this) })), this.avatarType === 'image' && h("img", { key: 'cb2ed3eab02f28369911997a94617efaeaa5c00a', src: this.imageUrl, alt: this.imageAlt }), this.avatarType === 'initials' && (h("span", { key: '5565b06795c4651537b20e9abd33492d7cb8a9d1', class: "initials" }, initials, h("span", { key: '58ac3ee3a664a13ff82fc201e04e1896e409fbf1' }, this.description ?? fullname)))));
|
|
144
170
|
}
|
|
145
171
|
get host() { return this; }
|
|
146
172
|
static get watchers() { return {
|
|
147
173
|
"firstname": ["validateFirstname"],
|
|
148
174
|
"lastname": ["validateLastname"],
|
|
149
|
-
"userid": ["
|
|
150
|
-
"email": ["
|
|
175
|
+
"userid": ["updateUserid"],
|
|
176
|
+
"email": ["updateEmail"],
|
|
177
|
+
"description": ["validateDescription"]
|
|
151
178
|
}; }
|
|
152
179
|
static get style() { return postAvatarCss; }
|
|
153
180
|
}, [1, "post-avatar", {
|
|
@@ -155,16 +182,19 @@ const PostAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PostAvatar extends H
|
|
|
155
182
|
"lastname": [1],
|
|
156
183
|
"userid": [1],
|
|
157
184
|
"email": [1],
|
|
185
|
+
"description": [1],
|
|
158
186
|
"slottedImage": [32],
|
|
159
187
|
"avatarType": [32],
|
|
160
188
|
"imageUrl": [32],
|
|
161
189
|
"imageAlt": [32],
|
|
162
|
-
"initials": [32]
|
|
190
|
+
"initials": [32],
|
|
191
|
+
"storageKey": [32]
|
|
163
192
|
}, undefined, {
|
|
164
193
|
"firstname": ["validateFirstname"],
|
|
165
194
|
"lastname": ["validateLastname"],
|
|
166
|
-
"userid": ["
|
|
167
|
-
"email": ["
|
|
195
|
+
"userid": ["updateUserid"],
|
|
196
|
+
"email": ["updateEmail"],
|
|
197
|
+
"description": ["validateDescription"]
|
|
168
198
|
}]);
|
|
169
199
|
PostAvatar$1.INTERNAL_USERID_IMAGE_SRC = 'https://web.post.ch/UserProfileImage/{userid}.png';
|
|
170
200
|
function defineCustomElement$1() {
|
|
@@ -180,7 +210,6 @@ function defineCustomElement$1() {
|
|
|
180
210
|
break;
|
|
181
211
|
} });
|
|
182
212
|
}
|
|
183
|
-
defineCustomElement$1();
|
|
184
213
|
|
|
185
214
|
const PostAvatar = PostAvatar$1;
|
|
186
215
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { v as version } from './
|
|
3
|
-
import { c as checkRequiredAndType } from './
|
|
4
|
-
import './
|
|
5
|
-
import { d as defineCustomElement$2 } from './
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { c as checkRequiredAndType } from './index2.js';
|
|
4
|
+
import './breakpoints.js';
|
|
5
|
+
import { d as defineCustomElement$2 } from './post-icon2.js';
|
|
6
6
|
|
|
7
7
|
// Define common animation options
|
|
8
8
|
const easing = 'ease';
|
|
@@ -32,7 +32,7 @@ function slideDownAndFadeIn(el, translateY = '-100%', duration = defaultDuration
|
|
|
32
32
|
|
|
33
33
|
const postBackToTopCss = ":host{opacity:0;--post-floating-button-position-top:var(--post-device-position-4);--post-back-to-top-position-top:calc( var(--post-header-height) + var(--post-floating-button-position-top) );--post-back-to-top-elevation:var(--post-device-elevation-300);position:fixed;inset-block-start:var(--post-back-to-top-position-top);inset-inline-end:var(--post-device-position-1)}:host .back-to-top{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;box-shadow:var(--post-back-to-top-elevation);cursor:pointer;border-radius:var(--post-device-border-radius-round);width:var(--post-device-sizing-interactive-button-height-2);height:var(--post-device-sizing-interactive-button-height-2);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-button-secondary-enabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-enabled-bg);display:flex;align-items:center;justify-content:center}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .back-to-top{background-color:ButtonFace !important}:host .back-to-top:hover{background-color:Highlight !important}}:host .back-to-top{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host .back-to-top:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .back-to-top:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host .back-to-top:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .back-to-top:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}:host .back-to-top:hover{border-color:var(--post-scheme-color-interactive-button-secondary-hover-stroke);color:var(--post-scheme-color-interactive-button-secondary-hover-fg);background-color:var(--post-scheme-color-interactive-button-secondary-hover-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .back-to-top:hover{color:HighlightText !important}}:host .back-to-top post-icon{height:var(--post-device-sizing-interactive-button-icon-3);width:var(--post-device-sizing-interactive-button-icon-3)}:host .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";
|
|
34
34
|
|
|
35
|
-
const PostBackToTop$1 = /*@__PURE__*/ proxyCustomElement(class PostBackToTop extends
|
|
35
|
+
const PostBackToTop$1 = /*@__PURE__*/ proxyCustomElement(class PostBackToTop extends HTMLElement {
|
|
36
36
|
constructor() {
|
|
37
37
|
super();
|
|
38
38
|
this.__registerHost();
|
|
@@ -104,7 +104,7 @@ const PostBackToTop$1 = /*@__PURE__*/ proxyCustomElement(class PostBackToTop ext
|
|
|
104
104
|
window.removeEventListener('scroll', this.handleScroll);
|
|
105
105
|
}
|
|
106
106
|
render() {
|
|
107
|
-
return (h(Host, { key: '
|
|
107
|
+
return (h(Host, { key: '51abef7d1f650da1476689c46d853f49669da856', "data-version": version }, h("button", { key: '9de175f7962448fa3d658e4a24b01a857925a5b7', class: "back-to-top", "aria-hidden": this.belowFold ? 'false' : 'true', tabindex: this.belowFold ? '0' : '-1', onClick: this.scrollToTop }, h("post-icon", { key: '281a177c37cbf98d72a0d6359483750762026b23', "aria-hidden": "true", name: "3026" }), h("span", { key: '9c019806112c905bb6ba2e8ac4da85bcbd334566', class: "visually-hidden" }, this.label))));
|
|
108
108
|
}
|
|
109
109
|
get host() { return this; }
|
|
110
110
|
static get watchers() { return {
|
|
@@ -137,7 +137,6 @@ function defineCustomElement$1() {
|
|
|
137
137
|
break;
|
|
138
138
|
} });
|
|
139
139
|
}
|
|
140
|
-
defineCustomElement$1();
|
|
141
140
|
|
|
142
141
|
const PostBackToTop = PostBackToTop$1;
|
|
143
142
|
const defineCustomElement = defineCustomElement$1;
|