From dd8a9bd54e4300da9ea6936a6c26bba41a1462e2 Mon Sep 17 00:00:00 2001 From: Rasmus Steine Olsen Date: Fri, 31 Jan 2025 09:53:20 +0100 Subject: [PATCH 01/14] Top panel innhold til person highlight panel --- .../hot_personHighlightPanelTop.css | 35 +++++++++ .../hot_personHighlightPanelTop.html | 38 +++++++++ .../hot_personHighlightPanelTop.js | 78 +++++++++++++++++++ .../hot_personHighlightPanelTop.js-meta.xml | 5 ++ 4 files changed, 156 insertions(+) create mode 100644 force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.css create mode 100644 force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html create mode 100644 force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js create mode 100644 force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js-meta.xml diff --git a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.css b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.css new file mode 100644 index 00000000..c866dd86 --- /dev/null +++ b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.css @@ -0,0 +1,35 @@ +.copy-icon { + padding-bottom: 12px; + padding-left: 2px; + float: right; +} + +.custom-padding-around-small { + padding: 0.5rem; +} + +.custom-padding-left { + padding-left: 1.875rem; +} + +.custom-padding-left-small { + padding-left: 0.5rem; +} + +.custom-grid-vertical-align-center { + display: flex; + align-items: center; +} + +.person-info-container { + flex-wrap: wrap; +} + +.sr-only { + position: absolute; + left: -100000px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} diff --git a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html new file mode 100644 index 00000000..7994aba8 --- /dev/null +++ b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html @@ -0,0 +1,38 @@ + diff --git a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js new file mode 100644 index 00000000..03e090c9 --- /dev/null +++ b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js @@ -0,0 +1,78 @@ +import { LightningElement, api } from 'lwc'; +import { ShowToastEvent } from 'lightning/platformShowToastEvent'; + +import NAV_ICONS from '@salesforce/resourceUrl/HOT_navIcons'; + +export default class hot_personHighlightPanelTop extends LightningElement { + @api personDetails; + + handleCopy(event) { + const eventValue = event.currentTarget.value; + + // Copy logic + const hiddenInput = document.createElement('input'); + hiddenInput.value = eventValue; + document.body.appendChild(hiddenInput); + hiddenInput.select(); + + try { + const successful = document.execCommand('copy'); + if (successful) { + this.showCopyToast('success'); + } else { + this.showCopyToast('error'); + } + } catch (error) { + this.showCopyToast('error'); + } + document.body.removeChild(hiddenInput); + event.currentTarget.focus(); + } + + showCopyToast(status) { + const evt = new ShowToastEvent({ + message: status === 'success' ? 'kopiert til utklippstavlen.' : 'Kunne ikke kopiere', + variant: status, + mode: 'pester' + }); + this.dispatchEvent(evt); + } + + get formattedPersonInfo() { + return [this.personDetails?.age, this.personDetails?.citizenship, this.personDetails?.legalStatus] + .filter((x) => x != null) + .join(' / '); + } + + get formattedFullName() { + if (!this.personDetails?.fullName) { + return 'Skjermet person'; + } + return this.personDetails?.isDeceased ? this.personDetails?.fullName + ' (død)' : this.personDetails?.fullName; + } + + get genderIcon() { + if (!this.personDetails?.fullName) return 'confidentialCircleFilled'; + switch (this.personDetails?.gender) { + case 'Mann': + return 'MaleCircleFilled'; + case 'Kvinne': + return 'FemaleCircleFilled'; + default: + return 'UnknownCircleFilled'; + } + } + + get genderText() { + if (this.personDetails?.gender === 'Ukjent') return 'Ukjent kjønn'; + return this.personDetails?.gender; + } + + get genderIconSrc() { + return NAV_ICONS + '/' + this.genderIcon + '.svg#' + this.genderIcon; + } + + get personIdent() { + return this.personDetails?.personIdent; + } +} diff --git a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js-meta.xml b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js-meta.xml new file mode 100644 index 00000000..6127d855 --- /dev/null +++ b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.js-meta.xml @@ -0,0 +1,5 @@ + + + 59.0 + false + \ No newline at end of file From 933c00e3d14e0d5be36f08d4c938c57f6be92700 Mon Sep 17 00:00:00 2001 From: Rasmus Steine Olsen Date: Fri, 31 Jan 2025 10:24:09 +0100 Subject: [PATCH 02/14] hot custom svg --- .../hot_personHighlightPanelTop.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html index 7994aba8..da533459 100644 --- a/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html +++ b/force-app/main/default/lwc/hot_personHighlightPanelTop/hot_personHighlightPanelTop.html @@ -1,7 +1,7 @@