@oslokommune/punkt-elements 16.26.7 → 17.0.2
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 +110 -0
- package/dist/accordion-CbXDxOho.cjs +47 -0
- package/dist/{accordion-CBdIk9gw.js → accordion-DEUHQ4JD.js} +45 -35
- package/dist/{alert-HHTGY0sp.js → alert-CbtVGrHD.js} +31 -17
- package/dist/{alert-B8dLsiTz.cjs → alert-CkUnbPdA.cjs} +5 -5
- package/dist/base-elements/input-element.d.ts +1 -0
- package/dist/button-Cod17rKo.js +115 -0
- package/dist/{button-B5tQpKeG.cjs → button-gvDXtBMC.cjs} +5 -2
- package/dist/{calendar-DIzGBdbh.cjs → calendar-BVXW8DqC.cjs} +1 -1
- package/dist/{calendar-CjlUA-Lb.js → calendar-CjC4qlh6.js} +1 -1
- package/dist/{checkbox-Bt_sC_90.cjs → checkbox-8uxbeU30.cjs} +1 -1
- package/dist/{checkbox-D03BC2Va.js → checkbox-DJDphhqz.js} +1 -1
- package/dist/{combobox-CoQBTWqL.js → combobox-Du5yr-xM.js} +16 -2
- package/dist/combobox-hKrbYLUe.cjs +136 -0
- package/dist/components/accordion/accordion-context.d.ts +7 -0
- package/dist/components/accordion/accordion.d.ts +2 -0
- package/dist/components/accordion/accordionitem.d.ts +1 -0
- package/dist/components/alert/alert.d.ts +5 -0
- package/dist/components/alert/alert.test.d.ts +1 -0
- package/dist/components/button/button.d.ts +4 -1
- package/dist/components/datepicker/datepicker-base.d.ts +2 -0
- package/dist/components/datepicker/datepicker-utils.d.ts +2 -2
- package/dist/components/footer/footer-base.d.ts +44 -0
- package/dist/components/footer/footer-simple.d.ts +20 -0
- package/dist/components/footer/footer.accessibility.test.d.ts +0 -0
- package/dist/components/footer/footer.d.ts +22 -0
- package/dist/components/footer/footer.test.d.ts +0 -0
- package/dist/components/footer/index.d.ts +3 -0
- package/dist/components/footer/types.d.ts +16 -0
- package/dist/components/header/header-chrome-controller.d.ts +44 -0
- package/dist/components/header/header-global.accessibility.test.d.ts +0 -0
- package/dist/components/header/header-global.d.ts +78 -0
- package/dist/components/header/header-global.test.d.ts +0 -0
- package/dist/components/header/header-service.accessibility.test.d.ts +0 -0
- package/dist/components/header/header-service.d.ts +6 -21
- package/dist/components/header/header-service.test.d.ts +1 -1
- package/dist/components/header/header.d.ts +11 -3
- package/dist/components/header/header.test.d.ts +0 -0
- package/dist/components/header/index.d.ts +2 -1
- package/dist/components/header/types.d.ts +28 -2
- package/dist/components/header-menu/header-menu.d.ts +4 -5
- package/dist/components/header-menu/types.d.ts +1 -1
- package/dist/components/index.d.ts +5 -3
- package/dist/components/input-wrapper/input-wrapper.d.ts +2 -0
- package/dist/components/input-wrapper/input-wrapper.test.d.ts +1 -0
- package/dist/components/searchinput/searchinput.d.ts +5 -0
- package/dist/components/select/index.d.ts +1 -1
- package/dist/components/select/select.d.ts +2 -2
- package/dist/components/select/select.test.d.ts +1 -0
- package/dist/components/textarea/textarea.test.d.ts +2 -0
- package/dist/components/textinput/textinput.test.d.ts +1 -0
- package/dist/components/timepicker/timepicker.d.ts +2 -0
- package/dist/components/timepicker/timepicker.test.d.ts +3 -0
- package/dist/consent--Nw43WFU.cjs +18 -0
- package/dist/{consent-D5sY6JK3.js → consent-B2hSTCGC.js} +14 -7
- package/dist/consume-BiOhrhEy.js +167 -0
- package/dist/consume-DKf5SmP9.cjs +1 -0
- package/dist/{converters-BKGBRBpS.js → converters-BBfsEJV5.js} +25 -25
- package/dist/{converters-9jHlXDyy.cjs → converters-Cd0fPEly.cjs} +1 -1
- package/dist/{datepicker-BE5Ll0W4.js → datepicker--Fq8q-J3.js} +30 -12
- package/dist/{datepicker-x4xM3KQz.cjs → datepicker-CEoBYTBU.cjs} +11 -7
- package/dist/docs/components/alert.d.ts +3 -0
- package/dist/docs/components/footer.d.ts +9 -0
- package/dist/docs/components/form-sizes.d.ts +10 -0
- package/dist/docs/components/header-global-full.d.ts +20 -0
- package/dist/docs/components/header-global.d.ts +14 -0
- package/dist/docs/components/searchinput.d.ts +6 -3
- package/dist/fetch-header-footer-data-Pc32etrk.js +88 -0
- package/dist/fetch-header-footer-data-xohWFmYC.cjs +1 -0
- package/dist/fileupload-CGKUJrlj.cjs +401 -0
- package/dist/{fileupload-2hf8YNhO.js → fileupload-D4gQN64T.js} +156 -176
- package/dist/focus-trap-DG3pEuyJ.js +60 -0
- package/dist/focus-trap-DSv4Ifqm.cjs +1 -0
- package/dist/footer-BIrJeRuZ.js +303 -0
- package/dist/footer-Ber-jqM1.cjs +114 -0
- package/dist/footer.d.ts +1 -0
- package/dist/header-BFk1an4z.cjs +465 -0
- package/dist/header-Deg_LGJo.js +1287 -0
- package/dist/header-menu-BHqK4QA6.cjs +126 -0
- package/dist/{header-menu-C8b5vd3n.js → header-menu-GFtJKM4j.js} +25 -97
- package/dist/{helptext-OfqH5npD.js → helptext-C_brWCIT.js} +1 -1
- package/dist/{helptext-eckq4JEX.cjs → helptext-Cq5rNaAC.cjs} +1 -1
- package/dist/{input-element-ZGOWsvKM.cjs → input-element-B0qLbEdF.cjs} +1 -1
- package/dist/{input-element-BFHpeoV8.js → input-element-C0RnXi-J.js} +5 -2
- package/dist/{input-wrapper-DwwE0JcO.js → input-wrapper-BweP6t3O.js} +12 -0
- package/dist/{input-wrapper-BRjQB4zM.cjs → input-wrapper-DPkkiG7S.cjs} +13 -11
- package/dist/{input-wrapper-DaA98B5l.js → input-wrapper-fWV5P4MN.js} +22 -15
- package/dist/{input-wrapper-LcZjpt0L.cjs → input-wrapper-wh3fWIhk.cjs} +1 -1
- package/dist/modal-CPnFteYS.cjs +35 -0
- package/dist/{modal-C6pScpdG.js → modal-xNK_wpHk.js} +11 -20
- package/dist/pkt-accordion.cjs +1 -1
- package/dist/pkt-accordion.js +1 -1
- package/dist/pkt-alert.cjs +1 -1
- package/dist/pkt-alert.js +1 -1
- package/dist/pkt-button.cjs +1 -1
- package/dist/pkt-button.js +1 -1
- package/dist/pkt-calendar.cjs +1 -1
- package/dist/pkt-calendar.js +1 -1
- package/dist/pkt-checkbox.cjs +1 -1
- package/dist/pkt-checkbox.js +1 -1
- package/dist/pkt-combobox.cjs +1 -1
- package/dist/pkt-combobox.js +1 -1
- package/dist/pkt-consent.cjs +1 -1
- package/dist/pkt-consent.js +1 -1
- package/dist/pkt-datepicker.cjs +1 -1
- package/dist/pkt-datepicker.js +1 -1
- package/dist/pkt-fileupload.cjs +1 -1
- package/dist/pkt-fileupload.js +1 -1
- package/dist/pkt-footer.cjs +1 -0
- package/dist/pkt-footer.js +2 -0
- package/dist/pkt-header-menu.cjs +1 -1
- package/dist/pkt-header-menu.js +1 -1
- package/dist/pkt-header.cjs +1 -1
- package/dist/pkt-header.js +2 -2
- package/dist/pkt-helptext.cjs +1 -1
- package/dist/pkt-helptext.js +1 -1
- package/dist/pkt-index.cjs +1 -1
- package/dist/pkt-index.js +27 -26
- package/dist/pkt-input-wrapper.cjs +1 -1
- package/dist/pkt-input-wrapper.js +1 -1
- package/dist/pkt-modal.cjs +1 -1
- package/dist/pkt-modal.js +1 -1
- package/dist/pkt-radiobutton.cjs +1 -1
- package/dist/pkt-radiobutton.js +1 -1
- package/dist/pkt-searchinput.cjs +1 -1
- package/dist/pkt-searchinput.js +1 -1
- package/dist/pkt-select.cjs +1 -1
- package/dist/pkt-select.js +1 -1
- package/dist/pkt-tabs.cjs +1 -1
- package/dist/pkt-tabs.js +1 -1
- package/dist/pkt-textarea.cjs +1 -1
- package/dist/pkt-textarea.js +1 -1
- package/dist/pkt-textinput.cjs +1 -1
- package/dist/pkt-textinput.js +1 -1
- package/dist/pkt-timepicker.cjs +1 -1
- package/dist/pkt-timepicker.js +1 -1
- package/dist/{radiobutton-DGO6H2Ki.js → radiobutton-C6htwDrT.js} +1 -1
- package/dist/{radiobutton-DY1WWepJ.cjs → radiobutton-DjWBoSHv.cjs} +1 -1
- package/dist/scroll-lock-BN8lOhV5.cjs +1 -0
- package/dist/scroll-lock-DAbNKAUy.js +18 -0
- package/dist/searchinput-CfUVfpqL.js +156 -0
- package/dist/searchinput-DGjeN1YI.cjs +60 -0
- package/dist/{select-D4_HQFkh.cjs → select-CZvAW7W2.cjs} +2 -1
- package/dist/{select-BwHUIlwQ.js → select-CsBXXbLP.js} +4 -3
- package/dist/setupTests.d.ts +0 -0
- package/dist/shared-types/footer.d.ts +95 -0
- package/dist/shared-types/{header-menu.d.ts → header-footer.d.ts} +51 -4
- package/dist/shared-types/header.d.ts +1 -1
- package/dist/shared-types/index.d.ts +6 -4
- package/dist/shared-types/searchinput.d.ts +2 -0
- package/dist/shared-types/select.d.ts +3 -2
- package/dist/shared-types/size.d.ts +4 -0
- package/dist/shared-types/timepicker.d.ts +0 -6
- package/dist/shared-utils/datepicker-utils.d.ts +5 -4
- package/dist/shared-utils/fileupload/focus-trap.d.ts +4 -10
- package/dist/shared-utils/focus-trap/index.d.ts +22 -0
- package/dist/shared-utils/{header-menu → header-footer}/example-data.d.ts +5 -4
- package/dist/shared-utils/header-footer/external-domain.d.ts +26 -0
- package/dist/shared-utils/{header-menu → header-footer}/fetch-header-footer-data.d.ts +6 -2
- package/dist/shared-utils/{header-menu → header-footer}/index.d.ts +2 -1
- package/dist/shared-utils/{header-menu → header-footer}/select-megamenu.d.ts +1 -1
- package/dist/shared-utils/scroll-lock/index.d.ts +24 -0
- package/dist/tabs-BqrKLCjd.js +214 -0
- package/dist/tabs-q62MK_-r.cjs +40 -0
- package/dist/{textarea-D6M7ZhtA.js → textarea-Cm392CEI.js} +5 -3
- package/dist/{textarea-Bt_Zs8gq.cjs → textarea-sTcZxOIB.cjs} +3 -2
- package/dist/{textinput-EDKjcUdg.cjs → textinput-DqJbTglM.cjs} +3 -2
- package/dist/{textinput-oU2EvFsi.js → textinput-TSPcBcih.js} +5 -3
- package/dist/{timepicker-CgOL2sd9.cjs → timepicker-CqFYMV8q.cjs} +8 -7
- package/dist/{timepicker-_G0V_HV3.js → timepicker-DWbgTDKq.js} +10 -9
- package/package.json +3 -3
- package/src/components/accordion/accordion-context.ts +8 -0
- package/src/components/accordion/accordion.test.ts +44 -0
- package/src/components/accordion/accordion.ts +13 -3
- package/src/components/accordion/accordionitem.ts +9 -1
- package/src/components/alert/alert.test.ts +51 -2
- package/src/components/alert/alert.ts +11 -5
- package/src/components/breadcrumbs/breadcrumbs.test.ts +11 -3
- package/src/components/button/button.test.ts +23 -0
- package/src/components/button/button.ts +28 -3
- package/src/components/combobox/combobox.core.test.ts +20 -0
- package/src/components/combobox/combobox.ts +2 -0
- package/src/components/consent/consent.test.ts +6 -3
- package/src/components/consent/consent.ts +15 -7
- package/src/components/datepicker/datepicker-base.ts +5 -1
- package/src/components/datepicker/datepicker-utils.test.ts +10 -0
- package/src/components/datepicker/datepicker.core.test.ts +17 -0
- package/src/components/datepicker/datepicker.ts +8 -0
- package/src/components/footer/footer-base.ts +238 -0
- package/src/components/footer/footer-simple.ts +71 -0
- package/src/components/footer/footer.accessibility.test.ts +66 -0
- package/src/components/footer/footer.test.ts +238 -0
- package/src/components/footer/footer.ts +81 -0
- package/src/components/footer/index.ts +4 -0
- package/src/components/footer/types.ts +21 -0
- package/src/components/header/header-chrome-controller.ts +123 -0
- package/src/components/header/header-global.accessibility.test.ts +110 -0
- package/src/components/header/header-global.test.ts +329 -0
- package/src/components/header/header-global.ts +648 -0
- package/src/components/header/header-service.accessibility.test.ts +79 -0
- package/src/components/header/header-service.test.ts +32 -12
- package/src/components/header/header-service.ts +38 -162
- package/src/components/header/header-user-menu.ts +0 -1
- package/src/components/header/header.test.ts +84 -0
- package/src/components/header/header.ts +52 -5
- package/src/components/header/index.ts +6 -0
- package/src/components/header/types.ts +38 -0
- package/src/components/header-menu/header-menu.test.ts +131 -10
- package/src/components/header-menu/header-menu.ts +23 -24
- package/src/components/header-menu/types.ts +1 -1
- package/src/components/index.ts +18 -2
- package/src/components/input-wrapper/input-wrapper.test.ts +45 -0
- package/src/components/input-wrapper/input-wrapper.ts +17 -9
- package/src/components/modal/modal.ts +8 -9
- package/src/components/searchinput/searchinput.test.ts +43 -0
- package/src/components/searchinput/searchinput.ts +29 -12
- package/src/components/select/index.ts +1 -1
- package/src/components/select/select.test.ts +28 -0
- package/src/components/select/select.ts +4 -3
- package/src/components/textarea/textarea.test.ts +16 -0
- package/src/components/textarea/textarea.ts +3 -1
- package/src/components/textinput/textinput.test.ts +28 -0
- package/src/components/textinput/textinput.ts +3 -1
- package/src/components/timepicker/timepicker.test.ts +26 -0
- package/src/components/timepicker/timepicker.ts +12 -6
- package/dist/accordion-FISAiAbX.cjs +0 -47
- package/dist/button-C_YzTSuU.js +0 -96
- package/dist/combobox-D6H9rWPV.cjs +0 -135
- package/dist/consent-X3wvhteO.cjs +0 -10
- package/dist/fileupload-BLVrslUX.cjs +0 -401
- package/dist/header-CFrsaq0c.cjs +0 -310
- package/dist/header-D_xvPR4R.js +0 -801
- package/dist/header-menu-DMdP_c6X.cjs +0 -126
- package/dist/modal-DKU7PnjJ.cjs +0 -35
- package/dist/searchinput-CyO5k4Q4.js +0 -148
- package/dist/searchinput-DG6YetL1.cjs +0 -60
- package/dist/shared-utils/modal-scroll-lock.d.ts +0 -10
- package/dist/tabs-CGo0ODPa.cjs +0 -40
- package/dist/tabs-ChdR0D1C.js +0 -379
- /package/dist/shared-utils/{header-menu → header-footer}/icon-map.d.ts +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { PktElement } from '../../base-elements/element';
|
|
2
|
+
import { PropertyValues, TemplateResult } from 'lit';
|
|
3
|
+
import { Booleanish, IPktHeaderGlobal, Representing, THeaderFooterApi, THeaderMenuLocale, THeaderPosition, THeaderScrollBehavior, TLogOutButtonPlacement, User, UserMenuItem } from './types';
|
|
4
|
+
export declare class PktHeaderGlobal extends PktElement<IPktHeaderGlobal> implements IPktHeaderGlobal {
|
|
5
|
+
dataUrl?: string;
|
|
6
|
+
data?: THeaderFooterApi;
|
|
7
|
+
locale: THeaderMenuLocale;
|
|
8
|
+
logoLink: string;
|
|
9
|
+
logoPath: string | undefined;
|
|
10
|
+
searchPlaceholder?: string;
|
|
11
|
+
position: THeaderPosition;
|
|
12
|
+
scrollBehavior: THeaderScrollBehavior;
|
|
13
|
+
mobileBreakpoint: number;
|
|
14
|
+
tabletBreakpoint: number;
|
|
15
|
+
logOutButtonPlacement: TLogOutButtonPlacement;
|
|
16
|
+
showSearch: Booleanish;
|
|
17
|
+
showContact: Booleanish;
|
|
18
|
+
canChangeRepresentation: Booleanish;
|
|
19
|
+
hasLogOut: Booleanish;
|
|
20
|
+
user?: User;
|
|
21
|
+
userMenu?: UserMenuItem[];
|
|
22
|
+
representing?: Representing;
|
|
23
|
+
private openMenu;
|
|
24
|
+
private fetchedData?;
|
|
25
|
+
private loadError;
|
|
26
|
+
private headerAnchor;
|
|
27
|
+
private headerRef;
|
|
28
|
+
private menuContainerRef;
|
|
29
|
+
private userContainerRef;
|
|
30
|
+
private abortController?;
|
|
31
|
+
private chrome;
|
|
32
|
+
private get isMobile();
|
|
33
|
+
private get isTablet();
|
|
34
|
+
private get isHidden();
|
|
35
|
+
connectedCallback(): void;
|
|
36
|
+
disconnectedCallback(): void;
|
|
37
|
+
firstUpdated(): void;
|
|
38
|
+
willUpdate(changedProperties: PropertyValues): void;
|
|
39
|
+
private get overlayAnchorStyle();
|
|
40
|
+
updated(changedProperties: PropertyValues): void;
|
|
41
|
+
private loadData;
|
|
42
|
+
private emitDataLoaded;
|
|
43
|
+
private get effectiveData();
|
|
44
|
+
private get localeData();
|
|
45
|
+
private get shouldHideOnScroll();
|
|
46
|
+
private get isFixed();
|
|
47
|
+
private get isSticky();
|
|
48
|
+
private toggleMenu;
|
|
49
|
+
private handleClickOutside;
|
|
50
|
+
private handleEscapeKey;
|
|
51
|
+
private get activeOverlay();
|
|
52
|
+
private focusToggle;
|
|
53
|
+
private handleOverlayKeydown;
|
|
54
|
+
private handleOverlayFocusIn;
|
|
55
|
+
private handleSearch;
|
|
56
|
+
private handleLogout;
|
|
57
|
+
private handleChangeRepresentation;
|
|
58
|
+
private get formattedLastLoggedIn();
|
|
59
|
+
private get showLogoutInUserMenu();
|
|
60
|
+
private handleLogoClick;
|
|
61
|
+
private renderLogo;
|
|
62
|
+
private renderSearch;
|
|
63
|
+
private renderContact;
|
|
64
|
+
private get isLoading();
|
|
65
|
+
private renderMenuToggle;
|
|
66
|
+
private renderSearchToggle;
|
|
67
|
+
private renderSearchPanel;
|
|
68
|
+
private renderUser;
|
|
69
|
+
private get overlayBreakpointClass();
|
|
70
|
+
private renderMenu;
|
|
71
|
+
private renderHeader;
|
|
72
|
+
render(): TemplateResult<1>;
|
|
73
|
+
}
|
|
74
|
+
declare global {
|
|
75
|
+
interface HTMLElementTagNameMap {
|
|
76
|
+
'pkt-header-global': PktHeaderGlobal;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -4,7 +4,7 @@ import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement,
|
|
|
4
4
|
export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> implements IPktHeader {
|
|
5
5
|
serviceName?: string;
|
|
6
6
|
serviceLink?: string;
|
|
7
|
-
logoLink
|
|
7
|
+
logoLink: string;
|
|
8
8
|
logoPath: string | undefined;
|
|
9
9
|
searchPlaceholder: string;
|
|
10
10
|
searchValue: string;
|
|
@@ -24,11 +24,7 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
|
|
|
24
24
|
user?: User;
|
|
25
25
|
userMenu?: UserMenuItem[];
|
|
26
26
|
representing?: Representing;
|
|
27
|
-
private isMobile;
|
|
28
|
-
private isTablet;
|
|
29
27
|
private openMenu;
|
|
30
|
-
private isHidden;
|
|
31
|
-
private componentWidth;
|
|
32
28
|
private alignSlotRight;
|
|
33
29
|
private alignSearchRight;
|
|
34
30
|
private headerRef;
|
|
@@ -37,28 +33,16 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
|
|
|
37
33
|
private searchContainerRef;
|
|
38
34
|
private slotContentRef;
|
|
39
35
|
private searchMenuRef;
|
|
40
|
-
private
|
|
41
|
-
private
|
|
42
|
-
private
|
|
43
|
-
private
|
|
44
|
-
private shouldRestoreFocus;
|
|
45
|
-
connectedCallback(): void;
|
|
46
|
-
disconnectedCallback(): void;
|
|
36
|
+
private chrome;
|
|
37
|
+
private get isMobile();
|
|
38
|
+
private get isTablet();
|
|
39
|
+
private get isHidden();
|
|
47
40
|
firstUpdated(): void;
|
|
48
41
|
updated(changedProperties: PropertyValues): void;
|
|
49
|
-
private setupResizeObserver;
|
|
50
|
-
private updateIsMobile;
|
|
51
|
-
private updateIsTablet;
|
|
52
|
-
private updateScrollLock;
|
|
53
|
-
private lockScroll;
|
|
54
|
-
private unlockScroll;
|
|
55
|
-
private setupScrollListener;
|
|
56
|
-
private handleScroll;
|
|
57
42
|
private handleClickOutside;
|
|
58
43
|
private handleSlotContentClick;
|
|
59
44
|
private handleFocusOut;
|
|
60
45
|
private handleEscapeKey;
|
|
61
|
-
private restoreFocus;
|
|
62
46
|
private checkDropdownAlignment;
|
|
63
47
|
private handleMenuToggle;
|
|
64
48
|
private handleLogoClick;
|
|
@@ -70,6 +54,7 @@ export declare class PktHeaderService extends PktElementWithSlot<IPktHeader> imp
|
|
|
70
54
|
private handleSearchKeyDown;
|
|
71
55
|
private get formattedLastLoggedIn();
|
|
72
56
|
private get isFixed();
|
|
57
|
+
private get isSticky();
|
|
73
58
|
private get shouldHideOnScroll();
|
|
74
59
|
private get showLogoutInHeader();
|
|
75
60
|
private get showLogoutInUserMenu();
|
|
@@ -5,7 +5,7 @@ export interface HeaderServiceTestConfig extends BaseTestConfig {
|
|
|
5
5
|
'logo-link'?: string;
|
|
6
6
|
compact?: boolean;
|
|
7
7
|
'hide-logo'?: boolean;
|
|
8
|
-
position?: 'fixed' | 'relative';
|
|
8
|
+
position?: 'fixed' | 'sticky' | 'relative';
|
|
9
9
|
'scroll-behavior'?: 'hide' | 'none';
|
|
10
10
|
'show-search'?: boolean;
|
|
11
11
|
'search-placeholder'?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PktElementWithSlot } from '../../base-elements/element-with-slot';
|
|
2
2
|
import { PropertyValues } from 'lit';
|
|
3
|
-
import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, Booleanish } from './types';
|
|
3
|
+
import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, THeaderFooterApi, THeaderMenuLocale, IPktHeader, Booleanish } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* PktHeader - Main header component for Oslo kommune services
|
|
6
6
|
*
|
|
@@ -11,9 +11,12 @@ import { User, Representing, UserMenuItem, THeaderMenu, TLogOutButtonPlacement,
|
|
|
11
11
|
* - Responsive mobile menu
|
|
12
12
|
* - Fixed positioning with scroll-to-hide
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* The `type` prop switches between the `service` header (a customizable
|
|
15
|
+
* header for a single service, the default) and the `global`
|
|
16
|
+
* (kommune-wide) header driven by the shared header/footer payload.
|
|
15
17
|
*/
|
|
16
18
|
export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements IPktHeader {
|
|
19
|
+
type: THeaderType;
|
|
17
20
|
serviceName?: string;
|
|
18
21
|
serviceLink?: string;
|
|
19
22
|
logoLink?: string;
|
|
@@ -30,12 +33,16 @@ export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements
|
|
|
30
33
|
slotMenuText: string;
|
|
31
34
|
hideLogo: Booleanish;
|
|
32
35
|
compact: Booleanish;
|
|
33
|
-
showSearch
|
|
36
|
+
showSearch?: Booleanish;
|
|
34
37
|
canChangeRepresentation: Booleanish;
|
|
35
38
|
hasLogOut: Booleanish;
|
|
36
39
|
user?: User;
|
|
37
40
|
userMenu?: UserMenuItem[];
|
|
38
41
|
representing?: Representing;
|
|
42
|
+
dataUrl?: string;
|
|
43
|
+
data?: THeaderFooterApi;
|
|
44
|
+
locale?: THeaderMenuLocale;
|
|
45
|
+
showContact: Booleanish;
|
|
39
46
|
userMenuFooter?: UserMenuItem[];
|
|
40
47
|
userOptions?: UserMenuItem[];
|
|
41
48
|
firstUpdated(changedProperties: PropertyValues): void;
|
|
@@ -44,6 +51,7 @@ export declare class PktHeader extends PktElementWithSlot<IPktHeader> implements
|
|
|
44
51
|
* Convert deprecated props to new props
|
|
45
52
|
*/
|
|
46
53
|
private get effectiveUserMenu();
|
|
54
|
+
private renderGlobal;
|
|
47
55
|
render(): import('lit').TemplateResult<1>;
|
|
48
56
|
}
|
|
49
57
|
declare global {
|
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { PktHeader } from './header';
|
|
2
2
|
export { PktHeaderService } from './header-service';
|
|
3
|
+
export { PktHeaderGlobal } from './header-global';
|
|
3
4
|
export { PktHeaderUserMenu } from './header-user-menu';
|
|
4
|
-
export type { User, Representing, UserMenuItem, TInternalMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, } from './types';
|
|
5
|
+
export type { User, Representing, UserMenuItem, TInternalMenuItem, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, TGlobalHeaderMenu, THeaderFooterApi, THeaderMenuLocale, IPktHeader, IPktHeaderGlobal, } from './types';
|
|
5
6
|
export { formatLastLoggedIn } from './header-utils';
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { PktIconName } from '@oslokommune/punkt-assets/dist/icons/icon';
|
|
2
|
-
import { booleanishConverter, Booleanish, User as SharedUser, Representing as SharedRepresenting, UserMenuItem as SharedUserMenuItem, TInternalMenuItem as SharedTInternalMenuItem, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior } from '../../shared-types';
|
|
3
|
-
export type { Booleanish, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, };
|
|
2
|
+
import { booleanishConverter, Booleanish, User as SharedUser, Representing as SharedRepresenting, UserMenuItem as SharedUserMenuItem, TInternalMenuItem as SharedTInternalMenuItem, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, THeaderFooterApi, THeaderMenuLocale, IPktHeaderGlobal as ISharedPktHeaderGlobal } from '../../shared-types';
|
|
3
|
+
export type { Booleanish, TSlotMenuVariant, THeaderMenu, TLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, THeaderFooterApi, THeaderMenuLocale, };
|
|
4
|
+
/** Which header variant `<pkt-header>` renders. */
|
|
5
|
+
export type THeaderType = 'service' | 'global';
|
|
6
|
+
/** Which dropdown/overlay is open in the global header. */
|
|
7
|
+
export type TGlobalHeaderMenu = 'none' | 'menu' | 'user' | 'search';
|
|
4
8
|
export { booleanishConverter };
|
|
5
9
|
export type User = SharedUser;
|
|
6
10
|
export type Representing = SharedRepresenting;
|
|
@@ -58,4 +62,26 @@ export interface IPktHeader {
|
|
|
58
62
|
slotMenuVariant?: TSlotMenuVariant;
|
|
59
63
|
/** Text for the slot menu button. Default: 'Meny' */
|
|
60
64
|
slotMenuText?: string;
|
|
65
|
+
/** Which header variant to render. Default: 'service' */
|
|
66
|
+
type?: THeaderType;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Interface for the global (kommune-wide) Header element props.
|
|
70
|
+
*
|
|
71
|
+
* Extends the framework-agnostic {@link ISharedPktHeaderGlobal} base
|
|
72
|
+
* (in shared-types), narrowing boolean fields to `Booleanish`, typing
|
|
73
|
+
* `userMenu` icons as `PktIconName`, and adding the Lit-only `hasLogOut`
|
|
74
|
+
* signal.
|
|
75
|
+
*/
|
|
76
|
+
export interface IPktHeaderGlobal extends Omit<ISharedPktHeaderGlobal, 'showSearch' | 'showContact' | 'canChangeRepresentation' | 'userMenu'> {
|
|
77
|
+
/** Show the search field. Default: true */
|
|
78
|
+
showSearch?: Booleanish;
|
|
79
|
+
/** Show the contact link (from the payload's `header.contact`). Default: true */
|
|
80
|
+
showContact?: Booleanish;
|
|
81
|
+
/** Allow the user to change representation. */
|
|
82
|
+
canChangeRepresentation?: Booleanish;
|
|
83
|
+
/** User menu items. */
|
|
84
|
+
userMenu?: UserMenuItem[];
|
|
85
|
+
/** Whether a logout handler is attached (required for the logout button to show). */
|
|
86
|
+
hasLogOut?: Booleanish;
|
|
61
87
|
}
|
|
@@ -7,20 +7,19 @@ export declare class PktHeaderMenu extends PktElement<IPktHeaderMenu> implements
|
|
|
7
7
|
data?: THeaderFooterApi;
|
|
8
8
|
locale: THeaderMenuLocale;
|
|
9
9
|
open: Booleanish;
|
|
10
|
-
ariaLabelledBy: string;
|
|
11
10
|
mobileBreakpoint: number;
|
|
12
11
|
private loadState;
|
|
13
12
|
private fetchedData?;
|
|
14
13
|
private isMobile;
|
|
15
14
|
private abortController?;
|
|
16
|
-
private
|
|
15
|
+
private menuWidth;
|
|
16
|
+
private resizeObserver?;
|
|
17
17
|
connectedCallback(): void;
|
|
18
18
|
private updateOpenClass;
|
|
19
19
|
disconnectedCallback(): void;
|
|
20
20
|
updated(changedProperties: PropertyValues): void;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private handleMediaChange;
|
|
21
|
+
private observeWidth;
|
|
22
|
+
private refreshIsMobile;
|
|
24
23
|
private loadData;
|
|
25
24
|
private get effectiveData();
|
|
26
25
|
private get localeData();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, IPktHeaderMenu as ISharedPktHeaderMenu, THeaderFooterApi, THeaderMenuLocale } from '../../shared-types/header-
|
|
1
|
+
import { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, IPktHeaderMenu as ISharedPktHeaderMenu, THeaderFooterApi, THeaderMenuLocale } from '../../shared-types/header-footer';
|
|
2
2
|
import { Booleanish } from '../../shared-types';
|
|
3
3
|
export type { IHeaderMenuLink, IHeaderMenuIconLink, IHeaderMenuButton, IHeaderMenuServices, IHeaderMenuSection, IMegaMenu, IHeaderFooter, IHeaderFooterLocaleData, THeaderFooterApi, THeaderMenuLocale, };
|
|
4
4
|
export interface IPktHeaderMenu extends Omit<ISharedPktHeaderMenu, 'open'> {
|
|
@@ -11,7 +11,8 @@ export { PktCheckbox } from './checkbox';
|
|
|
11
11
|
export { PktFileUpload } from './fileupload';
|
|
12
12
|
export { PktDateTags } from './datepicker/date-tags.js';
|
|
13
13
|
export { PktDatepicker } from './datepicker/datepicker.js';
|
|
14
|
-
export {
|
|
14
|
+
export { PktFooter, PktFooterSimple } from './footer';
|
|
15
|
+
export { PktHeader, PktHeaderService, PktHeaderGlobal, PktHeaderUserMenu, } from './header';
|
|
15
16
|
export { PktHeaderMenu } from './header-menu';
|
|
16
17
|
export { PktHelptext } from './helptext';
|
|
17
18
|
export { PktHeading } from './heading';
|
|
@@ -34,18 +35,19 @@ export { PktSearchInput } from './searchinput';
|
|
|
34
35
|
export { PktTimepicker } from './timepicker';
|
|
35
36
|
export type { IPktAccordion, IPktAccordionItem, TPktAccordionSkin } from './accordion';
|
|
36
37
|
export type { IPktButton, TPktButtonMode, TPktButtonSize, TPktButtonColor, TPktButtonSkin, TPktButtonVariant, TPktButtonState, TPktButtonType, } from './button';
|
|
37
|
-
export type { User as IPktHeaderUser, Representing as IPktHeaderRepresenting, UserMenuItem as IPktHeaderUserMenuItem, THeaderMenu, TLogOutButtonPlacement as TPktHeaderLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, IPktHeader, } from './header';
|
|
38
|
+
export type { User as IPktHeaderUser, Representing as IPktHeaderRepresenting, UserMenuItem as IPktHeaderUserMenuItem, THeaderMenu, TLogOutButtonPlacement as TPktHeaderLogOutButtonPlacement, THeaderPosition, THeaderScrollBehavior, TSlotMenuVariant, THeaderType, TGlobalHeaderMenu, IPktHeader, IPktHeaderGlobal, } from './header';
|
|
38
39
|
export type { IPktHeaderMenu } from './header-menu';
|
|
39
40
|
export type { IPktProgressbar, TProgressbarRole, TProgressbarSkin, TProgressbarStatusPlacement, TProgressbarStatusType, TProgressbarTitlePosition, } from './progressbar';
|
|
40
41
|
export type { IPktCombobox, IPktComboboxOption, TPktComboboxTagPlacement, } from './combobox';
|
|
41
42
|
export type { IPktHeading, TPktHeadingSize, TPktHeadingLevel } from './heading';
|
|
42
43
|
export type { TTagSkin, TTagType } from './tag';
|
|
43
44
|
export type { IPktTabs, IPktTabItem, TSkin as TTabItemSkin } from './tabs';
|
|
44
|
-
export type { TSelectOption } from './select';
|
|
45
|
+
export type { IPktSelectOption, TSelectOption } from './select';
|
|
45
46
|
export type { IPktBackLink } from './backlink';
|
|
46
47
|
export type { IPktBreadcrumbs, IBreadcrumbItem } from './breadcrumbs';
|
|
47
48
|
export type { IPktLoader, TPktLoaderVariant } from './loader';
|
|
48
49
|
export type { IPktConsent } from './consent';
|
|
50
|
+
export type { IPktFooter, IPktFooterSimple, IPktFooterColumn, IPktFooterLink, } from './footer';
|
|
49
51
|
export type { FileItem, IPktFileUpload, TFileComment, TQueueItemOperation, TQueueOperationContext, TQueueOperationLabel, TFileTransfer, TFileUploadItemRenderer, TTransferCancelledDetail, TTransferProgress, TFileValidateDetail, TFileValidator, TUploadStrategy, } from './fileupload';
|
|
50
52
|
export type { IPktTimepicker } from './timepicker';
|
|
51
53
|
export type { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod, } from './searchinput';
|
|
@@ -4,6 +4,7 @@ import { ElementProps } from '../../types/typeUtils';
|
|
|
4
4
|
import { Booleanish } from '../../shared-types';
|
|
5
5
|
import { FocusModalityController } from '../../controllers/focus-modality-controller';
|
|
6
6
|
type TCounterPosition = 'top' | 'bottom';
|
|
7
|
+
type TInputWrapperSize = 'small' | 'medium' | 'xsmall';
|
|
7
8
|
type Props = ElementProps<PktInputWrapper, 'forId' | 'label' | 'helptext' | 'helptextDropdown' | 'helptextDropdownButton' | 'counter' | 'counterCurrent' | 'counterMaxLength' | 'optionalTag' | 'optionalText' | 'requiredTag' | 'requiredText' | 'tagText' | 'hasError' | 'errorMessage' | 'disabled' | 'inline' | 'ariaDescribedby' | 'hasFieldset' | 'useWrapper' | 'role'>;
|
|
8
9
|
export declare class PktInputWrapper extends PktElementWithSlot<Props> {
|
|
9
10
|
/**
|
|
@@ -32,6 +33,7 @@ export declare class PktInputWrapper extends PktElementWithSlot<Props> {
|
|
|
32
33
|
hasFieldset: boolean;
|
|
33
34
|
role: string | null;
|
|
34
35
|
useWrapper: Booleanish;
|
|
36
|
+
size: TInputWrapperSize;
|
|
35
37
|
protected updated(changedProperties: PropertyValues): void;
|
|
36
38
|
focusModality: FocusModalityController;
|
|
37
39
|
render(): import('lit').TemplateResult<1>;
|
|
@@ -24,6 +24,7 @@ export interface InputWrapperTestConfig extends BaseTestConfig {
|
|
|
24
24
|
requiredText?: string;
|
|
25
25
|
tagText?: string;
|
|
26
26
|
role?: string;
|
|
27
|
+
size?: 'small' | 'medium' | 'xsmall';
|
|
27
28
|
}
|
|
28
29
|
export declare const createInputWrapperTest: (config?: InputWrapperTestConfig) => Promise<{
|
|
29
30
|
container: HTMLElement;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { PktElement } from '../../base-elements/element';
|
|
2
|
+
import { PropertyValues } from 'lit';
|
|
2
3
|
import { FocusModalityController } from '../../controllers/focus-modality-controller';
|
|
3
4
|
import { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod } from '../../shared-types/searchinput';
|
|
5
|
+
import { TPktInputSize } from '../../shared-types/size';
|
|
4
6
|
export type { IPktSearchInput, IPktSearchInputSuggestion, TPktSearchInputAppearance, TPktSearchInputMethod, } from '../../shared-types/searchinput';
|
|
5
7
|
export declare class PktSearchInput extends PktElement<IPktSearchInput> implements IPktSearchInput {
|
|
6
8
|
appearance: TPktSearchInputAppearance;
|
|
9
|
+
inputSize: TPktInputSize;
|
|
7
10
|
disabled: boolean;
|
|
8
11
|
fullwidth: boolean;
|
|
9
12
|
id: string;
|
|
@@ -15,6 +18,8 @@ export declare class PktSearchInput extends PktElement<IPktSearchInput> implemen
|
|
|
15
18
|
action: string | undefined;
|
|
16
19
|
method: TPktSearchInputMethod | undefined;
|
|
17
20
|
focusModality: FocusModalityController;
|
|
21
|
+
private inputAriaLabel?;
|
|
22
|
+
willUpdate(changed: PropertyValues): void;
|
|
18
23
|
private get suggestionsId();
|
|
19
24
|
private dispatchSearch;
|
|
20
25
|
private onInput;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PropertyValues } from 'lit';
|
|
2
2
|
import { Ref } from 'lit/directives/ref.js';
|
|
3
3
|
import { PktOptionsInputElement } from '../../base-elements/options-input-element';
|
|
4
|
-
import { TSelectOption } from '../../shared-types';
|
|
5
|
-
export type { TSelectOption };
|
|
4
|
+
import { TSelectOption } from '../../shared-types/select';
|
|
5
|
+
export type { TSelectOption } from '../../shared-types/select';
|
|
6
6
|
export interface IPktSelect {
|
|
7
7
|
options: TSelectOption[];
|
|
8
8
|
value: string;
|
|
@@ -14,6 +14,7 @@ export interface SelectTestConfig extends Partial<IPktSelect>, BaseTestConfig {
|
|
|
14
14
|
counter?: boolean;
|
|
15
15
|
inline?: boolean;
|
|
16
16
|
useWrapper?: boolean | string;
|
|
17
|
+
'input-size'?: string;
|
|
17
18
|
}
|
|
18
19
|
export declare const createSelectTest: (config?: SelectTestConfig) => Promise<{
|
|
19
20
|
container: HTMLElement;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseTestConfig } from '../../tests/test-framework';
|
|
2
|
+
import { TPktInputSize } from '../../shared-types/size';
|
|
2
3
|
export interface TextareaTestConfig extends BaseTestConfig {
|
|
3
4
|
value?: string;
|
|
4
5
|
autocomplete?: string;
|
|
@@ -20,6 +21,7 @@ export interface TextareaTestConfig extends BaseTestConfig {
|
|
|
20
21
|
inline?: boolean;
|
|
21
22
|
ariaLabelledby?: string | null;
|
|
22
23
|
ariaDescribedBy?: string | null;
|
|
24
|
+
inputSize?: TPktInputSize;
|
|
23
25
|
}
|
|
24
26
|
export declare const createTextareaTest: (config?: TextareaTestConfig) => Promise<{
|
|
25
27
|
container: HTMLElement;
|
|
@@ -2,6 +2,7 @@ import { PropertyValues } from 'lit';
|
|
|
2
2
|
import { Ref } from 'lit/directives/ref.js';
|
|
3
3
|
import { PktInputElement } from '../../base-elements/input-element';
|
|
4
4
|
import { ElementProps } from '../../types/typeUtils';
|
|
5
|
+
import { TPktInputSize } from '../../shared-types/size';
|
|
5
6
|
type Props = ElementProps<PktTimepicker, 'value' | 'hidePicker' | 'stepArrows'>;
|
|
6
7
|
export interface IPktTimepicker {
|
|
7
8
|
value?: string;
|
|
@@ -27,6 +28,7 @@ export interface IPktTimepicker {
|
|
|
27
28
|
optionalText?: string;
|
|
28
29
|
tagText?: string | null;
|
|
29
30
|
inline?: boolean;
|
|
31
|
+
inputSize?: TPktInputSize;
|
|
30
32
|
}
|
|
31
33
|
export declare class PktTimepicker extends PktInputElement<Props> {
|
|
32
34
|
hiddenInputRef: Ref<HTMLInputElement>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseTestConfig } from '../../tests/test-framework';
|
|
2
|
+
import { TPktInputSize } from '../../shared-types/size';
|
|
2
3
|
export interface TimepickerTestConfig extends BaseTestConfig {
|
|
3
4
|
value?: string;
|
|
4
5
|
min?: string;
|
|
@@ -15,6 +16,8 @@ export interface TimepickerTestConfig extends BaseTestConfig {
|
|
|
15
16
|
helptext?: string;
|
|
16
17
|
id?: string;
|
|
17
18
|
name?: string;
|
|
19
|
+
inputSize?: TPktInputSize;
|
|
20
|
+
'input-size'?: TPktInputSize;
|
|
18
21
|
}
|
|
19
22
|
export declare const createTimepickerTest: (config?: TimepickerTestConfig) => Promise<{
|
|
20
23
|
container: HTMLElement;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const e=require("./element-DJzurxgt.cjs");require("./button-gvDXtBMC.cjs");var t={i18n:{nb:{contentPresentation:{title:`Oslo kommune bruker informasjonskapsler`,description:[`For at nettstedet skal fungere og være trygt, bruker Oslo kommune informasjonskapsler. Noen er teknisk nødvendige, mens andre sikrer ulik funksjonalitet.`,`Godtar du alle informasjonskapsler, tillater du også at vi samler inn data om statistikk og brukeradferd. Da hjelper du oss med å lage et bedre nettsted uten at du trenger å dele noe personlig informasjon med oss.`],buttons:{accept:`Godta alle`,reject:`Kun nødvendige`,settings:`Innstillinger for informasjonskapsler`}},contentSettings:{title:`Innstillinger for informasjonskapsler`,description:[`Her kan du velge hvilke typer informasjonskapsler du vil tillate. Tillatelsen gjelder i 90 dager. Husk at nødvendige informasjonskapsler ikke kan velges bort.`,`Du kan når som helst endre innstillingene og finne mer informasjon nederst på nettstedet under «Innstillinger for informasjonskapsler» og «Personvern og informasjonskapsler».`],buttons:{back:`Tilbake`,save:`Lagre innstillinger`}}},en:{contentPresentation:{title:`Before you visit Oslo kommune ...`,description:[`This website uses cookies to make improvements. In this context, we need your consent to measure the traffic on the website in relation to statistics and feedback.`,`To read more about what we use cookies for, go to our privacy declaration which you will find at the bottom of our websites.`],buttons:{accept:`Yes, I accept`,reject:`Only necessary`,settings:`Go to settings`}},contentSettings:{title:`Her kan du aktivt velge mellom ulike informasjonskapsler`,description:[`For å lese mer om hva vi bruker informasjonskapsler til gå til vår personvernserklering som du finner på våre nettsider`],buttons:{back:`Back`,save:`Save settings`}}}},cookies:[{name:`statistics`,defaultValue:null,i18n:{nb:{title:`Statistikk og analyse`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler til å innhente data om statistikk og brukeradferd.`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Statistics and analytics`,description:`Select your preference for statistics and analytics`,buttons:{yes:`Yes`,no:`No`}}}},{name:`survey`,defaultValue:null,i18n:{nb:{title:`Skriftlige tilbakemeldinger`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler til å vise responsfelt og registrere tilbakemeldinger.`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Survey`,description:`Select your preference for survey`,buttons:{yes:`Yes`,no:`No`}}}},{name:`functional`,defaultValue:!0,i18n:{nb:{title:`Funksjonelle informasjonskapsler`,description:`Jeg godtar at Oslo kommune bruker informasjonskapsler for å gjøre ulike funksjoner på nettstedet mulige (for eksempel skjemaer og barnehagevelger).`,buttons:{yes:`Ja`,no:`Nei`}},en:{title:`Functional cookies`,description:`For the website to function optimally, we recommend that you accept these cookies`,buttons:{yes:`Yes`,no:`No`}}}}]},n=null;function r(){return n||(n=new Promise((e,t)=>{if(document.querySelector(`#oslo-consent-script`)){e();return}let n=document.createElement(`script`);n.src=`https://cdn.web.oslo.kommune.no/cb/cb-v1.1.0.js`,n.id=`oslo-consent-script`,n.onload=()=>e(),n.onerror=t,document.head.appendChild(n);let r=document.createElement(`link`);r.href=`https://cdn.web.oslo.kommune.no/cb/cb-v1.1.0.css`,r.type=`text/css`,r.rel=`stylesheet`,r.id=`oslo-consent-styles`,document.head.appendChild(r)}),n)}var i=e=>{if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}},a=e=>i(e.value).items.reduce((e,t)=>(e[t.name]=t.consent,e),{}),o=class extends e.t{constructor(...e){super(...e),this.devMode=!1,this.hotjarId=null,this.googleAnalyticsId=null,this.cookieDomain=null,this.cookieSecure=null,this.cookieExpiryDays=null,this.triggerType=`button`,this.triggerText=null,this.i18nLanguage=`nb`}connectedCallback(){super.connectedCallback();let e=this.i18nLanguage;this.triggerText=this.triggerText||t.i18n[e].contentPresentation.buttons.settings}disconnectedCallback(){super.disconnectedCallback(),this._cookieEventHandler&&window.__cookieEvents?.off(`CookieManager.setCookie`,this._cookieEventHandler)}returnJsonOrObject(e){return i(e)}emitCookieConsents(e){this.dispatchEvent(new CustomEvent(`toggle-consent`,{detail:a(e),bubbles:!0,cancelable:!1}))}async firstUpdated(e){window.cookieBanner_googleAnalyticsId=this.googleAnalyticsId,window.cookieBanner_hotjarId=this.hotjarId,this.cookieDomain&&(window.cookieBanner_cookieDomain=this.cookieDomain),this.cookieSecure&&(window.cookieBanner_cookieSecure=this.cookieSecure),this.cookieExpiryDays&&(window.cookieBanner_cookieExpiryDays=this.cookieExpiryDays),this.devMode&&(window.cookieBanner_devMode=this.devMode),await r(),this.triggerInit()}triggerInit(){window.document.dispatchEvent(new Event(`CookieBannerReady`,{bubbles:!0,cancelable:!0}));let e=window.cookieBanner,t=window.__cookieEvents;!e||!t||e.cookieConsent.validateConsentCookie().then(n=>{if(!n)return;let r=e.cookieConsent.getConsentCookie();window.setTimeout(()=>this.emitCookieConsents({value:r}),0),this._cookieEventHandler&&t.off(`CookieManager.setCookie`,this._cookieEventHandler),this._cookieEventHandler=e=>this.emitCookieConsents(e),t.on(`CookieManager.setCookie`,this._cookieEventHandler)})}openModal(e){e.preventDefault(),window.cookieBanner?.cookieConsent||this.triggerInit(),setTimeout(()=>window.cookieBanner?.openCookieModal())}render(){return this.triggerType===`link`?e.p`<a href="#" class="pkt-link" aria-haspopup="dialog" @click=${this.openModal}
|
|
2
|
+
>${this.triggerText}</a
|
|
3
|
+
>`:this.triggerType===`footerlink`?e.p`<a
|
|
4
|
+
href="#"
|
|
5
|
+
class="pkt-footer__link"
|
|
6
|
+
aria-haspopup="dialog"
|
|
7
|
+
@click=${this.openModal}
|
|
8
|
+
>${this.triggerText}</a
|
|
9
|
+
>`:this.triggerType===`icon`?e.p`<pkt-button
|
|
10
|
+
skin="tertiary"
|
|
11
|
+
variant="icon-only"
|
|
12
|
+
iconName="cookie"
|
|
13
|
+
aria-haspopup="dialog"
|
|
14
|
+
@click=${this.openModal}
|
|
15
|
+
>${this.triggerText}</pkt-button
|
|
16
|
+
>`:e.p`<pkt-button aria-haspopup="dialog" @click=${this.openModal}
|
|
17
|
+
>${this.triggerText}</pkt-button
|
|
18
|
+
>`}};e.n([e.o({type:Boolean})],o.prototype,`devMode`,void 0),e.n([e.o({type:String})],o.prototype,`hotjarId`,void 0),e.n([e.o({type:String})],o.prototype,`googleAnalyticsId`,void 0),e.n([e.o({type:String})],o.prototype,`cookieDomain`,void 0),e.n([e.o({type:String})],o.prototype,`cookieSecure`,void 0),e.n([e.o({type:String})],o.prototype,`cookieExpiryDays`,void 0),e.n([e.o({type:String})],o.prototype,`triggerType`,void 0),e.n([e.o({type:String})],o.prototype,`triggerText`,void 0),e.n([e.o({type:String})],o.prototype,`i18nLanguage`,void 0);try{e.s(`pkt-consent`)(o)}catch{console.warn(`Forsøker å definere <pkt-consent>, men den er allerede definert`)}var s=o;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { n as e, o as t, p as n, s as r, t as i } from "./element-BoJrqauR.js";
|
|
2
|
-
import "./
|
|
3
|
-
import "./button-C_YzTSuU.js";
|
|
2
|
+
import "./button-Cod17rKo.js";
|
|
4
3
|
//#region src/components/consent/strings.ts
|
|
5
4
|
var a = {
|
|
6
5
|
i18n: {
|
|
@@ -172,16 +171,24 @@ var c = (e) => {
|
|
|
172
171
|
e.preventDefault(), window.cookieBanner?.cookieConsent || this.triggerInit(), setTimeout(() => window.cookieBanner?.openCookieModal());
|
|
173
172
|
}
|
|
174
173
|
render() {
|
|
175
|
-
return this.triggerType === "link" ? n`<a href="#" class="pkt-link"
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
return this.triggerType === "link" ? n`<a href="#" class="pkt-link" aria-haspopup="dialog" @click=${this.openModal}
|
|
175
|
+
>${this.triggerText}</a
|
|
176
|
+
>` : this.triggerType === "footerlink" ? n`<a
|
|
177
|
+
href="#"
|
|
178
|
+
class="pkt-footer__link"
|
|
179
|
+
aria-haspopup="dialog"
|
|
180
|
+
@click=${this.openModal}
|
|
181
|
+
>${this.triggerText}</a
|
|
182
|
+
>` : this.triggerType === "icon" ? n`<pkt-button
|
|
179
183
|
skin="tertiary"
|
|
180
184
|
variant="icon-only"
|
|
181
185
|
iconName="cookie"
|
|
186
|
+
aria-haspopup="dialog"
|
|
182
187
|
@click=${this.openModal}
|
|
183
188
|
>${this.triggerText}</pkt-button
|
|
184
|
-
>` : n`<pkt-button @click=${this.openModal}
|
|
189
|
+
>` : n`<pkt-button aria-haspopup="dialog" @click=${this.openModal}
|
|
190
|
+
>${this.triggerText}</pkt-button
|
|
191
|
+
>`;
|
|
185
192
|
}
|
|
186
193
|
};
|
|
187
194
|
e([t({ type: Boolean })], u.prototype, "devMode", void 0), e([t({ type: String })], u.prototype, "hotjarId", void 0), e([t({ type: String })], u.prototype, "googleAnalyticsId", void 0), e([t({ type: String })], u.prototype, "cookieDomain", void 0), e([t({ type: String })], u.prototype, "cookieSecure", void 0), e([t({ type: String })], u.prototype, "cookieExpiryDays", void 0), e([t({ type: String })], u.prototype, "triggerType", void 0), e([t({ type: String })], u.prototype, "triggerText", void 0), e([t({ type: String })], u.prototype, "i18nLanguage", void 0);
|