@postnord/pn-marketweb-components 4.0.1 → 4.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/dist/cjs/index-b02670c2.js +4 -12
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pn-chat-message_2.cjs.entry.js +2 -1
- package/dist/cjs/pn-chat-message_2.cjs.entry.js.map +1 -1
- package/dist/cjs/pn-chat.cjs.entry.js +1 -1
- package/dist/cjs/{pn-chat.service-eaf6ed50.js → pn-chat.service-5a8d89b9.js} +2 -4
- package/dist/cjs/pn-chat.service-5a8d89b9.js.map +1 -0
- package/dist/cjs/pn-market-web-components.cjs.js +1 -1
- package/dist/cjs/pn-marketweb-table.cjs.entry.js +37 -29
- package/dist/cjs/pn-marketweb-table.cjs.entry.js.map +1 -1
- package/dist/cjs/pn-usp-promoter.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -3
- package/dist/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +2 -1
- package/dist/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js.map +1 -1
- package/dist/collection/components/widgets/pn-chat/pn-chat-stories-constants.js +23 -163
- package/dist/collection/components/widgets/pn-chat/pn-chat-stories-constants.js.map +1 -1
- package/dist/collection/components/widgets/pn-chat/pn-chat.service.js +1 -3
- package/dist/collection/components/widgets/pn-chat/pn-chat.service.js.map +1 -1
- package/dist/collection/components/widgets/pn-chat/pn-chat.stories.js +4 -4
- package/dist/collection/components/widgets/pn-chat/pn-chat.stories.js.map +1 -1
- package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.css +10 -1
- package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js +2 -2
- package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js.map +1 -1
- package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.stories.js +37 -1
- package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.stories.js.map +1 -1
- package/dist/collection/components/widgets/pn-marketweb-table/translations.js +33 -25
- package/dist/collection/components/widgets/pn-marketweb-table/translations.js.map +1 -1
- package/dist/collection/components/widgets/pn-usp-promoter/pn-usp-promoter.js +1 -1
- package/dist/collection/globals/types.js.map +1 -1
- package/dist/components/pn-chat-message2.js +2 -1
- package/dist/components/pn-chat-message2.js.map +1 -1
- package/dist/components/pn-chat.service.js +1 -3
- package/dist/components/pn-chat.service.js.map +1 -1
- package/dist/components/pn-marketweb-search.js +126 -1
- package/dist/components/pn-marketweb-search.js.map +1 -1
- package/dist/components/pn-marketweb-table.js +36 -28
- package/dist/components/pn-marketweb-table.js.map +1 -1
- package/dist/components/pn-usp-promoter.js +1 -1
- package/dist/esm/index-c311acd6.js +4 -12
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pn-chat-message_2.entry.js +2 -1
- package/dist/esm/pn-chat-message_2.entry.js.map +1 -1
- package/dist/esm/pn-chat.entry.js +1 -1
- package/dist/esm/{pn-chat.service-f4037d6f.js → pn-chat.service-0def5c4e.js} +2 -4
- package/dist/esm/pn-chat.service-0def5c4e.js.map +1 -0
- package/dist/esm/pn-market-web-components.js +1 -1
- package/dist/esm/pn-marketweb-table.entry.js +37 -29
- package/dist/esm/pn-marketweb-table.entry.js.map +1 -1
- package/dist/esm/pn-usp-promoter.entry.js +1 -1
- package/dist/package.json +1 -1
- package/dist/pn-market-web-components/p-3a936c5d.entry.js +2 -0
- package/dist/pn-market-web-components/p-3a936c5d.entry.js.map +1 -0
- package/dist/pn-market-web-components/p-6bec8d72.js +2 -0
- package/dist/pn-market-web-components/p-6bec8d72.js.map +1 -0
- package/dist/pn-market-web-components/p-923aa6d2.entry.js +2 -0
- package/dist/pn-market-web-components/p-923aa6d2.entry.js.map +1 -0
- package/dist/pn-market-web-components/{p-cc7c596e.entry.js → p-a298a263.entry.js} +2 -2
- package/dist/pn-market-web-components/{p-f21311ad.entry.js → p-da56370b.entry.js} +2 -2
- package/dist/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/dist/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
- package/dist/types/components/widgets/pn-chat/pn-chat-message/pn-chat-message.d.ts +1 -0
- package/dist/types/components/widgets/pn-chat/pn-chat-stories-constants.d.ts +6 -127
- package/dist/types/components/widgets/pn-marketweb-table/translations.d.ts +8 -0
- package/dist/types/components.d.ts +0 -100
- package/dist/types/globals/types.d.ts +2 -0
- package/dist/vscode-data.json +0 -142
- package/package.json +1 -1
- package/dist/cjs/pn-chat.service-eaf6ed50.js.map +0 -1
- package/dist/cjs/pn-search.cjs.entry.js +0 -54
- package/dist/cjs/pn-search.cjs.entry.js.map +0 -1
- package/dist/cjs/pn-usp-simple.cjs.entry.js +0 -56
- package/dist/cjs/pn-usp-simple.cjs.entry.js.map +0 -1
- package/dist/collection/components/widgets/pn-search/pn-search.css +0 -140
- package/dist/collection/components/widgets/pn-search/pn-search.js +0 -368
- package/dist/collection/components/widgets/pn-search/pn-search.js.map +0 -1
- package/dist/collection/components/widgets/pn-search/pn-search.stories.js +0 -54
- package/dist/collection/components/widgets/pn-search/pn-search.stories.js.map +0 -1
- package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.css +0 -116
- package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.js +0 -269
- package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.js.map +0 -1
- package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.stories.js +0 -63
- package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.stories.js.map +0 -1
- package/dist/components/pn-marketweb-search2.js +0 -130
- package/dist/components/pn-marketweb-search2.js.map +0 -1
- package/dist/components/pn-search.d.ts +0 -11
- package/dist/components/pn-search.js +0 -91
- package/dist/components/pn-search.js.map +0 -1
- package/dist/components/pn-usp-simple.d.ts +0 -11
- package/dist/components/pn-usp-simple.js +0 -82
- package/dist/components/pn-usp-simple.js.map +0 -1
- package/dist/esm/pn-chat.service-f4037d6f.js.map +0 -1
- package/dist/esm/pn-search.entry.js +0 -50
- package/dist/esm/pn-search.entry.js.map +0 -1
- package/dist/esm/pn-usp-simple.entry.js +0 -52
- package/dist/esm/pn-usp-simple.entry.js.map +0 -1
- package/dist/pn-market-web-components/p-04107723.entry.js +0 -2
- package/dist/pn-market-web-components/p-04107723.entry.js.map +0 -1
- package/dist/pn-market-web-components/p-10776075.entry.js +0 -2
- package/dist/pn-market-web-components/p-10776075.entry.js.map +0 -1
- package/dist/pn-market-web-components/p-2fd60147.entry.js +0 -2
- package/dist/pn-market-web-components/p-2fd60147.entry.js.map +0 -1
- package/dist/pn-market-web-components/p-a079c496.js +0 -2
- package/dist/pn-market-web-components/p-a079c496.js.map +0 -1
- package/dist/pn-market-web-components/p-e733f44f.entry.js +0 -2
- package/dist/pn-market-web-components/p-e733f44f.entry.js.map +0 -1
- package/dist/types/components/widgets/pn-search/pn-search.d.ts +0 -29
- package/dist/types/components/widgets/pn-search/pn-search.stories.d.ts +0 -7
- package/dist/types/components/widgets/pn-usp-simple/pn-usp-simple.d.ts +0 -19
- package/dist/types/components/widgets/pn-usp-simple/pn-usp-simple.stories.d.ts +0 -7
- /package/dist/pn-market-web-components/{p-cc7c596e.entry.js.map → p-a298a263.entry.js.map} +0 -0
- /package/dist/pn-market-web-components/{p-f21311ad.entry.js.map → p-da56370b.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"pn-marketweb-table.entry.cjs.js","mappings":"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","names":["FetchHelper","PnChatService","angle_down","angle_up","h","HeadingTag","Host"],"sources":["src/globals/ScreensizeDetect.ts","src/components/widgets/pn-marketweb-table/translations.ts","src/components/widgets/pn-marketweb-table/pn-marketweb-table.service.ts","src/components/widgets/pn-marketweb-table/pn-marketweb-table.scss?tag=pn-marketweb-table","src/components/widgets/pn-marketweb-table/pn-marketweb-table.tsx"],"sourcesContent":["interface Breakpoints {\n mobile: number;\n tablet: number;\n desktop: number;\n}\n\ntype ScreenSize = 'mobile' | 'tablet' | 'desktop';\n\nexport interface ScreenWidthInfo {\n width: number;\n size: ScreenSize;\n isTouch: boolean;\n}\n\nexport const DEFAULT_BREAKPOINTS: Breakpoints = {\n mobile: 768,\n tablet: 1024,\n desktop: 1025,\n};\n\nexport class ScreenWidth {\n private static instance: ScreenWidth;\n private breakpoints: Breakpoints;\n private callbacks: Set<(info: ScreenWidthInfo) => void>;\n private resizeTimeout?: number;\n\n private constructor() {\n this.breakpoints = DEFAULT_BREAKPOINTS;\n this.callbacks = new Set();\n this.initializeListeners();\n }\n\n public static getInstance(): ScreenWidth {\n if (!ScreenWidth.instance) {\n ScreenWidth.instance = new ScreenWidth();\n }\n return ScreenWidth.instance;\n }\n\n public setBreakpoints(breakpoints: Partial<Breakpoints>): void {\n this.breakpoints = { ...this.breakpoints, ...breakpoints };\n this.notifyListeners();\n }\n\n private getWidth(): number {\n if (typeof window === 'undefined') return 0;\n\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0;\n }\n\n private isTouch(): boolean {\n if (typeof window === 'undefined') return false;\n\n return (\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n // @ts-ignore - Some browsers might not have msMaxTouchPoints\n navigator.msMaxTouchPoints > 0\n );\n }\n\n private getScreenSize(width: number): ScreenSize {\n if (width < this.breakpoints.mobile) return 'mobile';\n if (width < this.breakpoints.tablet) return 'tablet';\n return 'desktop';\n }\n\n public getScreenInfo(): ScreenWidthInfo {\n const width = this.getWidth();\n return {\n width,\n size: this.getScreenSize(width),\n isTouch: this.isTouch(),\n };\n }\n\n private initializeListeners(): void {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = window.setTimeout(() => {\n this.notifyListeners();\n }, 250);\n };\n\n window.addEventListener('resize', handleResize);\n window.addEventListener('orientationchange', handleResize);\n }\n\n private notifyListeners(): void {\n const info = this.getScreenInfo();\n this.callbacks.forEach(callback => callback(info));\n }\n\n public subscribe(callback: (info: ScreenWidthInfo) => void): () => void {\n this.callbacks.add(callback);\n callback(this.getScreenInfo()); // Initial call\n\n return () => {\n this.callbacks.delete(callback);\n };\n }\n}\n","export const translations = {\n 'sv': {\n newMessage: 'Nytt meddelande',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n showMoreLabel: 'Visa mer',\n },\n 'en': {\n newMessage: 'New message',\n toggleButtonOn: 'Show details',\n toggleButtonOff: 'Hide details',\n showMoreLabel: 'Show more',\n },\n 'da': {\n newMessage: 'Ny besked',\n toggleButtonOn: 'Vis detaljer',\n toggleButtonOff: 'Skjul detaljer',\n showMoreLabel: 'Vis mere',\n },\n 'no': {\n newMessage: 'Ny melding',\n toggleButtonOn: 'Vis detaljer',\n toggleButtonOff: 'Skjul detaljer',\n showMoreLabel: 'Vis mer',\n },\n 'fi': {\n newMessage: 'Uusi viesti',\n toggleButtonOn: 'Näytä tiedot',\n toggleButtonOff: 'Piilota tiedot',\n showMoreLabel: 'Näytä lisää',\n },\n 'de': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'zh': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'it': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'nl': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'tr': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'pt': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'pl': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n 'pt-BR': {\n newMessage: 'Nytt meddelade',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n },\n};\n","import { FetchHelper } from '@/globals/FetchHelper';\nimport { ShipmentsBody, ShipmentsResponse, TableRowData } from './types';\n\nexport class MarketwebTableService {\n private readonly _endpoint;\n private readonly _language;\n private fetchHelper = new FetchHelper('MarketTableService');\n private readonly _getUserShipmentsPath = `/get-user-shipments`;\n\n\n constructor(endpoint: string, language: string) {\n this._endpoint = this.formatEndpoint(endpoint);\n this._language = language;\n }\n\n async getUserShipments(contentId: string, skip: number, take: number, isChatEnabled: boolean): Promise<TableRowData[]> {\n let model: ShipmentsBody =\n {\n skip: skip,\n take: take,\n isChatEnabled: isChatEnabled,\n language: this._language,\n contentId: contentId,\n };\n\n const fetchUrl = this._endpoint + this._getUserShipmentsPath;\n\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false\n )) as ShipmentsResponse;\n\n return JSON.parse(data.shipments) as TableRowData[];\n }\n\n private formatEndpoint(endpoint: string): string {\n var formattedEndpoint = endpoint.lastIndexOf('/') === endpoint.length - 1 ? endpoint.substring(0, endpoint.length - 1) : endpoint;\n return formattedEndpoint;\n }\n\n private getRequestInit(model: any, method: string = 'POST', mode: RequestMode = 'cors', contentTypes: string = 'application/json'): RequestInit {\n return {\n mode: mode,\n method: method,\n headers:\n {\n 'Content-Type': contentTypes\n },\n body: JSON.stringify(model)\n };\n }\n}\n","@import '../../../globals/main.scss';\n\n:host {\n display: block;\n}\n\n.pn-marketweb-table {\n .container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem;\n }\n\n .heading-section {\n display: flex;\n justify-content: space-between;\n gap: 2rem;\n margin-bottom: 2rem;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n\n .heading-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .preamble-section {\n width: 80%;\n }\n\n .main-heading {\n margin-bottom: 1rem;\n }\n\n .summary {\n display: flex;\n height: 7rem;\n justify-content: flex-end;\n gap: clamp(1rem, 4vw, 2rem);\n\n @media (max-width: 768px) {\n justify-content: center;\n }\n }\n\n .sub-heading-section {\n background-color: $blue25;\n border-radius: 1.6rem;\n display: flex;\n align-items: center;\n gap: clamp(0.6rem, 4vw, 1rem);\n padding: 0.6rem 1.2rem;\n width: 13.5rem;\n\n .icon-container {\n background-color: $blue50;\n border-radius: 50%;\n padding: 4px;\n }\n }\n\n .sub-heading {\n font-size: clamp(1rem, 3vw, 1.4rem);\n font-weight: 400;\n line-height: clamp(1.225rem, 4vw, 1.5rem);\n margin: 0;\n\n strong {\n color: $blue700;\n font-weight: 700;\n }\n }\n }\n\n .pn-marketweb-table__table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 3.2rem;\n }\n\n .pn-marketweb-table__table tr {\n border-bottom: 1px solid $gray100;\n position: relative;\n border-left: 4px solid $white;\n transition: all .7s ease;\n\n\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n border-left: 4px solid $blue200;\n background: $blue25;\n }\n\n &.row-new-message,\n &.row-new-messag:hover {\n border-left: 4px solid $green500;\n background: linear-gradient(90deg, rgba(220, 246, 231, 1) 0%, rgba(237, 251, 243, 1) 30%, rgba(255, 255, 255, 1) 70%);\n }\n }\n\n .pn-marketweb-table__table td {\n padding: 1.6rem 1rem;\n }\n\n .image-container {\n min-height: 5.8rem;\n }\n\n .cell-heading {\n color: $gray700;\n font-size: clamp(0.875rem, 4vw, 1.2rem);\n font-weight: 400;\n line-height: clamp(1.225rem, 4vw, 1.5rem);\n margin: 0;\n }\n\n .cell-value {\n color: $gray900;\n display: inline-block;\n font-size: clamp(1rem, 4vw, 1.5rem);\n font-weight: 400;\n line-height: clamp(1.4rem, 4vw, 1.8rem);\n margin: 0;\n padding: 0.5rem 0;\n }\n\n .row-image {\n border-radius: 0.5rem;\n }\n\n .actions {\n align-content: center;\n\n .button-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n gap: 1.6rem;\n\n .pn-button-text {\n white-space: nowrap;\n }\n\n @media screen and (max-width: 768px) {\n justify-content: space-between;\n }\n }\n }\n\n @media screen and (max-width: 767px) {\n tr {\n display: flex;\n flex-wrap: wrap;\n }\n\n td:not(.cell-content) {\n width: 100%;\n }\n\n td.cell-image {\n text-align: center;\n }\n\n td.cell-content {\n flex: 1 0 40%;\n\n &::before {\n content: attr(data-label);\n display: block;\n font-weight: bold;\n margin-bottom: 0.5em;\n }\n }\n\n td.actions .button-wrapper {\n gap: 2rem;\n }\n }\n\n @media (min-width: 768px) {\n .row-image {\n max-width: 80px;\n }\n }\n\n .toggle-detail {\n display: none;\n color: $blue700;\n cursor: pointer;\n border: none;\n border-radius: 3em;\n outline: none;\n position: relative;\n font-size: 0.875em;\n min-width: 5.5em;\n font-weight: 500;\n background-color: transparent;\n justify-content: center;\n align-items: center;\n transition: color 0.3s;\n -webkit-tap-highlight-color: transparent;\n text-decoration: none;\n padding: 0.375em 1em;\n min-height: 2em;\n line-height: 1.65em;\n white-space: nowrap;\n\n &:hover {\n background-color: $blue50;\n opacity: 1;\n }\n }\n\n .shipment-id-active .button-wrapper {\n display: flex;\n }\n\n tr td.cell-content:first-child .cell-value {\n font-weight: 500;\n }\n\n .pn-widget-wrapper {\n display: flex;\n justify-content: center;\n }\n\n .shipment-id-active, .widget-row {\n background-color: $blue25;\n }\n\n .pn-market-table__show-more-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n }\n}\n\n\n\n.row-new-message .button-wrapper:after {\n content: attr(data-label);\n background: $green500;\n border-radius: 0 0.4rem .4rem 0;\n color: $white;\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n font-size: 1.4rem;\n padding: 0 .4rem;\n}\n\n@media (min-width: 768px) {\n .row-new-message .button-wrapper:after {\n background: $green700;\n border-radius: .4rem;\n left: auto;\n right: 1.6rem;\n\n font-size: 1.1rem;\n top: .3rem;\n\n }\n}","import { HeadingTag } from '@/globals/HeadingTag';\nimport { Component, Host, Prop, h, State, Fragment, Watch } from '@stencil/core';\nimport { ScreenWidth, ScreenWidthInfo, DEFAULT_BREAKPOINTS } from '@/globals/ScreensizeDetect';\nimport { HeadingLevel } from '@/globals/types';\nimport { angle_down, angle_up } from 'pn-design-assets/pn-assets/icons.js';\nimport { JSX } from 'react';\nimport { PnChatService } from '../pn-chat/pn-chat.service';\nimport { HeaderConfig, TableRowData, TableRowi18n } from './types'\nimport { translations } from './translations';\nimport { MarketwebTableService } from './pn-marketweb-table.service';\n\n@Component({\n tag: 'pn-marketweb-table',\n styleUrl: 'pn-marketweb-table.scss',\n})\nexport class PnMarketWebTable {\n @Prop() mainHeading?: string;\n @Prop() mainHeadingLevel: HeadingLevel = 'h2';\n @Prop() preamble: string\n @Prop() subHeadingLevel: HeadingLevel = 'h3';\n @Prop() headers!: string | HeaderConfig[];\n @Prop() rows!: string | TableRowData[];\n @Prop() showHeadersInCells: boolean = false;\n @Prop() cellHeaderLevel: HeadingLevel = 'h3';\n @Prop() tableRowCtaActionLabel: string;\n @Prop() imageColAriaHeader: string;\n @Prop() ctaColAriaHeader: string;\n @Prop() checkForNewShipments: boolean = false;\n @Prop() endpoint: string;\n @Prop() language: string = 'sv';\n @Prop() market: string;\n @Prop() toggleDetailLabel: string = 'View details';\n @Prop() checkForChat: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: string = '';\n @Prop() shipmentType!: string;\n @Prop() contentId: string = '';\n @Prop() takeAmountRow: number = 2;\n @Prop() shipmentCount: number = 2;\n\n @State() i18n: TableRowi18n;\n @State() private _headers: HeaderConfig[] = [];\n @State() private _rows: TableRowData[] = [];\n @State() private _allKeys: Set<string> = new Set();\n @State() private screenInfo?: ScreenWidthInfo;\n\n private screenWidth = ScreenWidth.getInstance();\n private cleanup?: () => void;\n private _chatService: PnChatService;\n private _chatSegment: string = \"#chat\";\n private _marketwebTableService: MarketwebTableService;\n\n componentWillLoad(): void {\n this.setInitialValues();\n this.setTranslations();\n this._marketwebTableService = new MarketwebTableService(this.endpoint, this.language);\n\n this.cleanup = this.screenWidth.subscribe(info => {\n this.screenInfo = info;\n });\n\n if (this.checkForNewShipments) {\n this._chatService = new PnChatService(this.endpoint, this.market, this.language);\n setInterval(() => {\n this.checkForNewMessages();\n }, 60000);\n }\n }\n\n setTranslations() {\n if (translations[this.language]) {\n this.i18n = translations[this.language] as TableRowi18n;\n }\n else {\n const fallbackLang = 'sv';\n this.i18n = translations[fallbackLang] as TableRowi18n;\n }\n }\n\n @Watch('language')\n onLanguageChange() {\n this.setTranslations();\n }\n\n async componentDidLoad() {\n if (this.checkForChat) {\n const thisTable = document.querySelector('pn-marketweb-table.' + this.shipmentType);\n const chatHrefs = thisTable.querySelectorAll('[href*=\"#chat\"]');\n const openChatATags: HTMLAnchorElement[] = Array.from(chatHrefs).filter(\n (el): el is HTMLAnchorElement => el instanceof HTMLAnchorElement\n );\n this.OpenChatEvent(openChatATags);\n }\n }\n\n componentDidRender() {\n const thisTable = document.querySelector('pn-marketweb-table[shipment-type=' + this.shipmentType + ']');\n const toggleButtons = thisTable?.querySelectorAll('pn-button.toggle-widget');\n toggleButtons?.forEach(pnButton => {\n const btnText = pnButton.querySelector('.pn-button-text');\n if (btnText && btnText.innerHTML !== this.i18n.toggleButtonOn) {\n btnText.innerHTML = this.i18n.toggleButtonOn;\n }\n const button = pnButton.querySelector('button');\n if (button && !button.hasAttribute('data-toggle-initialized')) {\n button.addEventListener('click', this.toggleButton.bind(this));\n button.setAttribute('data-toggle-initialized', 'true');\n }\n });\n }\n\n private toggleButton(event) {\n const button = event.currentTarget as HTMLButtonElement;\n const parentRow = button.closest('tr');\n const parentPnButton = button.closest('pn-button');\n\n const isActive = parentRow.classList.contains(\"shipment-id-active\");\n\n const existingWidgetRows = document.querySelectorAll('.widget-row');\n existingWidgetRows.forEach(row => row.remove());\n\n const allRows = document.querySelectorAll('tr');\n allRows.forEach(row => row.classList.remove(\"shipment-id-active\"));\n\n const allPnButtons = document.querySelectorAll('pn-button.toggle-widget');\n allPnButtons.forEach(pnBtn => {\n pnBtn.setAttribute('icon', angle_down);\n pnBtn.querySelector('.pn-button-text').innerHTML = this.i18n.toggleButtonOn;\n });\n\n if (isActive) {\n return;\n }\n button.querySelector('.pn-button-text').innerHTML = this.i18n.toggleButtonOff;\n parentRow.classList.add(\"shipment-id-active\");\n\n const widgetRow = document.createElement('tr');\n widgetRow.classList.add('widget-row');\n\n const tdElement = document.createElement('td');\n tdElement.colSpan = parentRow.children.length;\n\n const divEl = document.createElement('div');\n divEl.classList.add('pn-widget-wrapper');\n\n const widget = document.createElement('pn-widget');\n widget.setAttribute('locale', this.language);\n widget.setAttribute('shipment-id', button.id);\n\n divEl.appendChild(widget);\n tdElement.appendChild(divEl);\n widgetRow.appendChild(tdElement);\n\n parentRow.parentNode.insertBefore(widgetRow, parentRow.nextSibling);\n\n parentPnButton.setAttribute('icon', angle_up);\n }\n\n private handleShowMore = async () => {\n let skip = this._rows.length;\n let data = await this._marketwebTableService.getUserShipments(this.contentId, skip, this.takeAmountRow, this.checkForChat);\n if (data) {\n this._rows = [...this._rows, ...data];\n }\n };\n\n async waitForComponent(selector: string, maxRetries = 10, delay = 300): Promise<HTMLElement | null> {\n for (let i = 0; i < maxRetries; i++) {\n const element = document.querySelector(selector);\n if (element) {\n return element as HTMLElement;\n }\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n return null;\n }\n\n disconnectedCallback(): void {\n if (this.cleanup) {\n this.cleanup();\n }\n }\n\n private async checkForNewMessages() {\n for (let i = 0; i < this._rows.length; i++) {\n const row = this._rows[i];\n const itemId = row.id;\n\n if (itemId) {\n const hasNewMessages = await this._chatService.hasNewMessages(itemId);\n\n if (row.hasNewMessages !== hasNewMessages) {\n this._rows[i] = { ...row, hasNewMessages: hasNewMessages };\n }\n }\n }\n\n this._rows = [...this._rows];\n }\n\n private setInitialValues(): void {\n try {\n this.parseRows();\n this.parseHeaders();\n\n } catch (error) {\n console.error('Error parsing table data:', error);\n this._rows = [];\n this._headers = [];\n }\n }\n\n private parseRows() {\n this._rows = typeof this.rows === 'string' ? JSON.parse(this.rows) : this.rows;\n this._allKeys = new Set(this._rows.flatMap(row => Object.keys(row)));\n }\n\n private parseHeaders() {\n if (typeof this.headers === 'string') {\n this._headers = JSON.parse(this.headers);\n } else if (this.headers) {\n this._headers = this.headers;\n } else {\n this._headers = Array.from(this._allKeys).map(key => ({ key, label: key }));\n }\n }\n\n private renderCellContent(header: HeaderConfig, row: TableRowData): JSX.Element | string | number | boolean {\n const content = header.render ? header.render(row) : row[header.key] ?? '-';\n return content;\n }\n\n private renderCell(header: HeaderConfig, row: TableRowData): JSX.Element {\n const content = this.renderCellContent(header, row);\n\n if (this.showHeadersInCells || this.screenInfo.width <= DEFAULT_BREAKPOINTS.tablet) {\n return (\n <div class=\"cell-content\" role=\"cell\">\n <HeadingTag\n level={this.cellHeaderLevel}\n cssClass=\"cell-heading\"\n additionalProps={{\n 'aria-hidden': 'true',\n 'role': 'presentation',\n }}\n >\n {header.label}\n </HeadingTag>\n <span class=\"cell-value\">{content}</span>\n </div>\n );\n }\n\n return <>{content}</>;\n }\n\n private handleToggleClick = () => {\n const areaToggle = document.querySelector('.trackandtracewidgetblock');\n if (areaToggle?.parentElement) {\n areaToggle.parentElement.classList.toggle('hideRow');\n }\n };\n\n private renderActionButtons(row: TableRowData): JSX.Element | null {\n if (!row.actionButtons) return null;\n\n return (\n <td class=\"actions\" role=\"cell\">\n <div class=\"button-wrapper\" role=\"group\" aria-label={this.tableRowCtaActionLabel} data-label={this.i18n.newMessage}>\n {row.actionButtons.map(btn => (\n <pn-button\n appearance={btn.appearance}\n class={btn.class}\n variant={btn.variant}\n small={btn.small}\n loading={btn.loading}\n icon={btn.icon}\n leftIcon={btn.leftIcon}\n tooltip={btn.tooltip}\n href={btn.href}\n rel={btn.rel}\n download={btn.download}\n form={btn.form}\n buttonId={btn.buttonId}\n data-chat={btn.customAttribute}>\n {btn.content}\n </pn-button>\n ))}\n </div>\n </td>\n );\n }\n\n private async OpenChatEvent(aTags: HTMLAnchorElement[]) {\n aTags.forEach((aTag) => {\n aTag.addEventListener(\"click\", (e) => {\n e.preventDefault();\n const previousLocationHash = window?.location?.hash ?? \"\";\n\n const findShipmentIdInUrlRegex = /#chat:([a-zA-Z0-9]+)(?=#|$)/;\n const match = aTag.href.match(findShipmentIdInUrlRegex);\n const shipmentId = match ? match[1] : \"\";\n const shipmentHash = `${this._chatSegment}:${shipmentId}`;\n window.location.hash = shipmentHash;\n\n this.waitForComponent('pn-chat').then((chat) => {\n if (shipmentId) {\n chat.setAttribute('item-id', shipmentId);\n }\n else {\n chat.setAttribute('item-id', \"\");\n }\n\n let oldInitChatId = chat.getAttribute('pn-chat-id');\n\n const _defaultChatId = \"00000000-0000-0000-0000-000000000000\";\n const _defaultAlternativeChatId = \"1\";\n const _defaultTriggerChatId = oldInitChatId === _defaultChatId ? _defaultAlternativeChatId : _defaultChatId;\n let chatId = _defaultTriggerChatId;\n const reversedChatId = aTag?.parentElement?.getAttribute('data-chat');\n\n if (reversedChatId) {\n chatId = reversedChatId.split('').reverse().join('');\n }\n\n chat.setAttribute('is-logged-in', 'true');\n chat.setAttribute('pn-chat-id', chatId);\n\n if (previousLocationHash.includes(shipmentHash)) {\n let forceOpen = chat.getAttribute('force-open') ?? 'true';\n forceOpen = forceOpen === 'true' ? 'false' : 'true';\n chat.setAttribute('force-open', forceOpen);\n }\n });\n });\n });\n }\n\n render() {\n const tableId = `table-${Math.random().toString(36)}`;\n const headingId = `${tableId}-main-heading`;\n\n return (\n <Host language={this.language}>\n <div class='pn-marketweb-table'>\n <div role='region' aria-labelledby={this.mainHeading ? headingId : undefined}>\n <div class='heading-section'>\n <div class='heading-wrapper'>\n {this.mainHeading && (\n <HeadingTag level={this.mainHeadingLevel} cssClass='main-heading' id={headingId}>\n {this.mainHeading}\n </HeadingTag>\n )}\n {this.preamble && (\n <div class=\"preamble-section\">{this.preamble}</div>\n )}\n </div>\n </div>\n {this._rows.length > 0 && (\n <table class='pn-marketweb-table__table' aria-labelledby={this.mainHeading ? `${tableId}-main-heading` : undefined}>\n {this._headers && (\n <thead class={this.showHeadersInCells ? 'sr-only' : undefined} >\n <tr >\n {this._rows.some((row) => row.imageUrl) && this.imageColAriaHeader && (\n <th scope='col' class='sr-only'>\n {this.imageColAriaHeader}\n </th>\n )}\n {this._headers.map((header) => (\n <th key={header.key} scope='col' class='sr-only-mobile'>\n {header.label}\n </th>\n ))}\n {this._rows.some((row) => row.link1 || row.link2) && this.ctaColAriaHeader && (\n <th scope='col' class='sr-only'>\n {this.ctaColAriaHeader}\n </th>\n )}\n </tr>\n </thead>\n )}\n <tbody>\n {this._rows.slice(0, this.shipmentCount).map((row, rowIndex) => (\n <tr key={rowIndex} class={row.hasNewMessages ? \"row-new-message\" : null}>\n {row.imageUrl && (\n <td class='cell-image'>\n <div class='image-container'>\n <img src={row.imageUrl} alt='' class='row-image' />\n </div>\n </td>\n )}\n {this._headers.map((header) => (\n <td key={`${rowIndex}-${header.key}`} class='cell-content' >\n {this.renderCell(header, row)}\n </td>\n ))}\n {this.renderActionButtons(row)}\n </tr>\n ))}\n </tbody>\n </table>\n )}\n {this.shipmentCount > this._rows.length && (\n <div class=\"pn-market-table__show-more-wrapper\">\n <pn-button variant=\"outlined\" appearance=\"light\" label={this.i18n?.showMoreLabel || 'Show More'} onClick={() => this.handleShowMore()}></pn-button>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"pn-marketweb-table.entry.cjs.js","mappings":";;;;;;;;;;AAcO,MAAM,mBAAmB,GAAgB;IAC9C,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;CACd,CAAC;MAEW,WAAW;IACd,OAAO,QAAQ,CAAc;IAC7B,WAAW,CAAc;IACzB,SAAS,CAAuC;IAChD,aAAa,CAAU;IAE/B;QACE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEM,OAAO,WAAW;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YACzB,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;SAC1C;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;KAC7B;IAEM,cAAc,CAAC,WAAiC;QACrD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEO,QAAQ;QACd,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;KACpG;IAEO,OAAO;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAEhD,QACE,cAAc,IAAI,MAAM;YACxB,SAAS,CAAC,cAAc,GAAG,CAAC;;YAE5B,SAAS,CAAC,gBAAgB,GAAG,CAAC,EAC9B;KACH;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QACrD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QACrD,OAAO,SAAS,CAAC;KAClB;IAEM,aAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACxB,CAAC;KACH;IAEO,mBAAmB;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,YAAY,GAAG;YACnB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACzC;YAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB,EAAE,GAAG,CAAC,CAAC;SACT,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;KAC5D;IAEO,eAAe;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;KACpD;IAEM,SAAS,CAAC,QAAyC;QACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/B,OAAO;YACL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjC,CAAC;KACH;;;ACzGI,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,cAAc,EAAE,eAAe;QAC/B,eAAe,EAAE,eAAe;QAChC,aAAa,EAAE,UAAU;KAC1B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,WAAW;KAC3B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,WAAW;QACvB,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,UAAU;KAC1B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,SAAS;KACzB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,aAAa;KAC7B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,gBAAgB;QAC5B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,oBAAoB;QACrC,aAAa,EAAE,eAAe;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,KAAK;QACjB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,MAAM;QACvB,aAAa,EAAE,MAAM;KACtB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,mBAAmB;QACpC,aAAa,EAAE,eAAe;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,eAAe;QAC3B,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,iBAAiB;QAClC,aAAa,EAAE,YAAY;KAC5B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,iBAAiB;QAClC,aAAa,EAAE,mBAAmB;KACnC;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,eAAe;QAC3B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,cAAc;KAC9B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,gBAAgB;QAC5B,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,iBAAiB;QAClC,aAAa,EAAE,cAAc;KAC9B;IACD,OAAO,EAAE;QACP,UAAU,EAAE,eAAe;QAC3B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,cAAc;KAC9B;CACF;;MC5EY,qBAAqB;IACb,SAAS,CAAC;IACV,SAAS,CAAC;IACnB,WAAW,GAAG,IAAIA,uBAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3C,qBAAqB,GAAG,qBAAqB,CAAC;IAG/D,YAAY,QAAgB,EAAE,QAAgB;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IAED,MAAM,gBAAgB,CAAC,SAAiB,EAAE,IAAY,EAAE,IAAY,EAAE,aAAsB;QACxF,IAAI,KAAK,GACT;YACI,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,aAAa;YAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,SAAS;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAE7D,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC1C,QAAQ,EACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAC1B,KAAK,CACR,CAAsB,CAAC;QAExB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;KACvD;IAEO,cAAc,CAAC,QAAgB;QACnC,IAAI,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClI,OAAO,iBAAiB,CAAC;KAC5B;IAEO,cAAc,CAAC,KAAU,EAAE,SAAiB,MAAM,EAAE,OAAoB,MAAM,EAAE,eAAuB,kBAAkB;QAC7H,OAAO;YACH,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,OAAO,EACP;gBACI,cAAc,EAAE,YAAY;aAC/B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC9B,CAAC;KACL;;;ACnDL,MAAM,mBAAmB,GAAG,8oKAA8oK,CAAC;AAC3qK,+BAAe,mBAAmB;;MCcrB,gBAAgB;;;;gCAEc,IAAI;;+BAEL,IAAI;;;kCAGN,KAAK;+BACH,IAAI;;;;oCAIJ,KAAK;;wBAElB,IAAI;;iCAEK,cAAc;4BAClB,KAAK;qBACmB,EAAE;;yBAE9B,EAAE;6BACE,CAAC;6BACD,CAAC;;wBAGW,EAAE;qBACL,EAAE;wBACF,IAAI,GAAG,EAAE;;;IAG1C,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,CAAc;IACrB,YAAY,CAAgB;IAC5B,YAAY,GAAW,OAAO,CAAC;IAC/B,sBAAsB,CAAwB;IAEtD,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,sBAAsB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAIC,4BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,WAAW,CAAC;gBACV,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B,EAAE,KAAK,CAAC,CAAC;SACX;KACF;IAED,eAAe;QACb,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAiB,CAAC;SACzD;aACI;YACH,MAAM,YAAY,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,CAAiB,CAAC;SACxD;KACF;IAGD,gBAAgB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,MAAM,gBAAgB;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YAChE,MAAM,aAAa,GAAwB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CACrE,CAAC,EAAE,KAA8B,EAAE,YAAY,iBAAiB,CACjE,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;SACnC;KACF;IAED,kBAAkB;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,mCAAmC,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;QACxG,MAAM,aAAa,GAAG,SAAS,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QAC7E,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC7D,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;aAC9C;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE;gBAC7D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;aACxD;SACF,CAAC,CAAC;KACJ;IAEO,YAAY,CAAC,KAAK;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAkC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAEpE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACpE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAEnE,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QAC1E,YAAY,CAAC,OAAO,CAAC,KAAK;YACxB,KAAK,CAAC,YAAY,CAAC,MAAM,EAAEC,mBAAU,CAAC,CAAC;YACvC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;SAC7E,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE;YACZ,OAAO;SACR;QACD,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9E,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9C,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1B,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7B,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAEpE,cAAc,CAAC,YAAY,CAAC,MAAM,EAAEC,iBAAQ,CAAC,CAAC;KAC/C;IAEO,cAAc,GAAG;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3H,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SACvC;KACF,CAAC;IAEF,MAAM,gBAAgB,CAAC,QAAgB,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACX,OAAO,OAAsB,CAAC;aAC/B;YACD,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC;KACb;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;IAEO,MAAM,mBAAmB;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;YAEtB,IAAI,MAAM,EAAE;gBACV,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAEtE,IAAI,GAAG,CAAC,cAAc,KAAK,cAAc,EAAE;oBACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;iBAC5D;aACF;SACF;QAED,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAEO,gBAAgB;QACtB,IAAI;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;SAErB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;KACF;IAEO,SAAS;QACf,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/E,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACtE;IAEO,YAAY;QAClB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAC7E;KACF;IAEO,iBAAiB,CAAC,MAAoB,EAAE,GAAiB;QAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC5E,OAAO,OAAO,CAAC;KAChB;IAEO,UAAU,CAAC,MAAoB,EAAE,GAAiB;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,mBAAmB,CAAC,MAAM,EAAE;YAClF,QACEC,iBAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,MAAM,IACnCA,QAACC,qBAAU,IACT,KAAK,EAAE,IAAI,CAAC,eAAe,EAC3B,QAAQ,EAAC,cAAc,EACvB,eAAe,EAAE;oBACf,aAAa,EAAE,MAAM;oBACrB,MAAM,EAAE,cAAc;iBACvB,IAEA,MAAM,CAAC,KAAK,CACF,EACbD,kBAAM,KAAK,EAAC,YAAY,IAAE,OAAO,CAAQ,CACrC,EACN;SACH;QAED,OAAOA,8BAAG,OAAO,CAAI,CAAC;KACvB;IAEO,iBAAiB,GAAG;QAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QACvE,IAAI,UAAU,EAAE,aAAa,EAAE;YAC7B,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACtD;KACF,CAAC;IAEM,mBAAmB,CAAC,GAAiB;QAC3C,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEpC,QACEA,gBAAI,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,IAC7BA,iBAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,sBAAsB,gBAAc,IAAI,CAAC,IAAI,CAAC,UAAU,IAC/G,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KACxBA,uBACE,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,eACX,GAAG,CAAC,QAAQ,EACvB,SAAS,EAAE,GAAG,CAAC,OAAO,eACX,GAAG,CAAC,eAAe,IAC7B,GAAG,CAAC,OAAO,CACF,CACb,CAAC,CACE,CACH,EACL;KACH;IAEO,MAAM,aAAa,CAAC,KAA0B;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI;YACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM,oBAAoB,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;gBAE1D,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;gBAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACxD,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE,CAAC;gBAC1D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;gBAEpC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;oBACzC,IAAI,UAAU,EAAE;wBACd,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;qBAC1C;yBACI;wBACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;qBAClC;oBAED,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;oBAEpD,MAAM,cAAc,GAAG,sCAAsC,CAAC;oBAC9D,MAAM,yBAAyB,GAAG,GAAG,CAAC;oBACtC,MAAM,qBAAqB,GAAG,aAAa,KAAK,cAAc,GAAG,yBAAyB,GAAG,cAAc,CAAC;oBAC5G,IAAI,MAAM,GAAG,qBAAqB,CAAC;oBACnC,MAAM,cAAc,GAAG,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;oBAEtE,IAAI,cAAc,EAAE;wBAClB,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACtD;oBAED,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;oBAC1C,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBAExC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;wBAC/C,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC;wBAC1D,SAAS,GAAG,SAAS,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;wBACpD,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;qBAC5C;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,GAAG,OAAO,eAAe,CAAC;QAE5C,QACEA,QAACE,UAAI,qDAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAC3BF,kEAAK,KAAK,EAAC,oBAAoB,IAC7BA,kEAAK,IAAI,EAAC,QAAQ,qBAAkB,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,SAAS,IAC1EA,kEAAK,KAAK,EAAC,iBAAiB,IAC1BA,kEAAK,KAAK,EAAC,iBAAiB,IACzB,IAAI,CAAC,WAAW,KACfA,QAACC,qBAAU,qDAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAC,cAAc,EAAC,EAAE,EAAE,SAAS,IAC5E,IAAI,CAAC,WAAW,CACN,CACd,EACA,IAAI,CAAC,QAAQ,KACZD,kEAAK,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,QAAQ,CAAO,CACpD,CACG,CACF,EACL,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KACpBA,oEAAO,KAAK,EAAC,2BAA2B,qBAAkB,IAAI,CAAC,WAAW,GAAG,GAAG,OAAO,eAAe,GAAG,SAAS,IAC/G,IAAI,CAAC,QAAQ,KACZA,oEAAO,KAAK,EAAE,IAAI,CAAC,kBAAkB,GAAG,SAAS,GAAG,SAAS,IAC3DA,mEACG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,KAChEA,iEAAI,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,IAC5B,IAAI,CAAC,kBAAkB,CACrB,CACN,EACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBA,gBAAI,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,gBAAgB,IACpD,MAAM,CAAC,KAAK,CACV,CACN,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KACxEA,iEAAI,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,IAC5B,IAAI,CAAC,gBAAgB,CACnB,CACN,CACE,CACC,CACT,EACDA,oEAAO,KAAK,EAAC,gCAAgC,IAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,MACzDA,gBAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,cAAc,GAAG,iBAAiB,GAAG,EAAE,EAAE,IAChF,GAAG,CAAC,QAAQ,KACXA,gBAAI,KAAK,EAAC,YAAY,IACpBA,iBAAK,KAAK,EAAC,iBAAiB,IAC1BA,iBAAK,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,WAAW,GAAG,CAC/C,CACH,CACN,EACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBA,gBAAI,GAAG,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAC,cAAc,IACvD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1B,CACN,CAAC,EACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAC3B,CACN,CAAC,CACI,CACF,CACT,EACA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KACrCA,kEAAK,KAAK,EAAC,oCAAoC,IAC7CA,wEAAW,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,IAAI,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,GAAc,CAC/I,CACP,CACG,CACF,CACD,EACP;KACH;;;;;;;;;","names":["FetchHelper","PnChatService","angle_down","angle_up","h","HeadingTag","Host"],"sources":["src/globals/ScreensizeDetect.ts","src/components/widgets/pn-marketweb-table/translations.ts","src/components/widgets/pn-marketweb-table/pn-marketweb-table.service.ts","src/components/widgets/pn-marketweb-table/pn-marketweb-table.scss?tag=pn-marketweb-table","src/components/widgets/pn-marketweb-table/pn-marketweb-table.tsx"],"sourcesContent":["interface Breakpoints {\n mobile: number;\n tablet: number;\n desktop: number;\n}\n\ntype ScreenSize = 'mobile' | 'tablet' | 'desktop';\n\nexport interface ScreenWidthInfo {\n width: number;\n size: ScreenSize;\n isTouch: boolean;\n}\n\nexport const DEFAULT_BREAKPOINTS: Breakpoints = {\n mobile: 768,\n tablet: 1024,\n desktop: 1025,\n};\n\nexport class ScreenWidth {\n private static instance: ScreenWidth;\n private breakpoints: Breakpoints;\n private callbacks: Set<(info: ScreenWidthInfo) => void>;\n private resizeTimeout?: number;\n\n private constructor() {\n this.breakpoints = DEFAULT_BREAKPOINTS;\n this.callbacks = new Set();\n this.initializeListeners();\n }\n\n public static getInstance(): ScreenWidth {\n if (!ScreenWidth.instance) {\n ScreenWidth.instance = new ScreenWidth();\n }\n return ScreenWidth.instance;\n }\n\n public setBreakpoints(breakpoints: Partial<Breakpoints>): void {\n this.breakpoints = { ...this.breakpoints, ...breakpoints };\n this.notifyListeners();\n }\n\n private getWidth(): number {\n if (typeof window === 'undefined') return 0;\n\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0;\n }\n\n private isTouch(): boolean {\n if (typeof window === 'undefined') return false;\n\n return (\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n // @ts-ignore - Some browsers might not have msMaxTouchPoints\n navigator.msMaxTouchPoints > 0\n );\n }\n\n private getScreenSize(width: number): ScreenSize {\n if (width < this.breakpoints.mobile) return 'mobile';\n if (width < this.breakpoints.tablet) return 'tablet';\n return 'desktop';\n }\n\n public getScreenInfo(): ScreenWidthInfo {\n const width = this.getWidth();\n return {\n width,\n size: this.getScreenSize(width),\n isTouch: this.isTouch(),\n };\n }\n\n private initializeListeners(): void {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n if (this.resizeTimeout) {\n window.clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = window.setTimeout(() => {\n this.notifyListeners();\n }, 250);\n };\n\n window.addEventListener('resize', handleResize);\n window.addEventListener('orientationchange', handleResize);\n }\n\n private notifyListeners(): void {\n const info = this.getScreenInfo();\n this.callbacks.forEach(callback => callback(info));\n }\n\n public subscribe(callback: (info: ScreenWidthInfo) => void): () => void {\n this.callbacks.add(callback);\n callback(this.getScreenInfo()); // Initial call\n\n return () => {\n this.callbacks.delete(callback);\n };\n }\n}\n","export const translations = {\n 'sv': {\n newMessage: 'Nytt meddelande',\n toggleButtonOn: 'Visa detaljer',\n toggleButtonOff: 'Dölj detaljer',\n showMoreLabel: 'Visa mer',\n },\n 'en': {\n newMessage: 'New message',\n toggleButtonOn: 'Show details',\n toggleButtonOff: 'Hide details',\n showMoreLabel: 'Show more',\n },\n 'da': {\n newMessage: 'Ny besked',\n toggleButtonOn: 'Vis detaljer',\n toggleButtonOff: 'Skjul detaljer',\n showMoreLabel: 'Vis mere',\n },\n 'no': {\n newMessage: 'Ny melding',\n toggleButtonOn: 'Vis detaljer',\n toggleButtonOff: 'Skjul detaljer',\n showMoreLabel: 'Vis mer',\n },\n 'fi': {\n newMessage: 'Uusi viesti',\n toggleButtonOn: 'Näytä tiedot',\n toggleButtonOff: 'Piilota tiedot',\n showMoreLabel: 'Näytä lisää',\n },\n 'de': {\n newMessage: 'Neue Nachricht',\n toggleButtonOn: 'Details anzeigen',\n toggleButtonOff: 'Details ausblenden',\n showMoreLabel: 'Mehr anzeigen',\n },\n 'zh': {\n newMessage: '新消息',\n toggleButtonOn: '显示详情',\n toggleButtonOff: '隐藏详情',\n showMoreLabel: '显示更多',\n },\n 'it': {\n newMessage: 'Nuovo messaggio',\n toggleButtonOn: 'Mostra dettagli',\n toggleButtonOff: 'Nascondi dettagli',\n showMoreLabel: 'Mostra di più',\n },\n 'nl': {\n newMessage: 'Nieuw bericht',\n toggleButtonOn: 'Toon details',\n toggleButtonOff: 'Verberg details',\n showMoreLabel: 'Meer tonen',\n },\n 'tr': {\n newMessage: 'Yeni mesaj',\n toggleButtonOn: 'Detayları göster',\n toggleButtonOff: 'Detayları gizle',\n showMoreLabel: 'Daha fazla göster',\n },\n 'pt': {\n newMessage: 'Nova mensagem',\n toggleButtonOn: 'Mostrar detalhes',\n toggleButtonOff: 'Ocultar detalhes',\n showMoreLabel: 'Mostrar mais',\n },\n 'pl': {\n newMessage: 'Nowa wiadomość',\n toggleButtonOn: 'Pokaż szczegóły',\n toggleButtonOff: 'Ukryj szczegóły',\n showMoreLabel: 'Pokaż więcej',\n },\n 'pt-BR': {\n newMessage: 'Nova mensagem',\n toggleButtonOn: 'Mostrar detalhes',\n toggleButtonOff: 'Ocultar detalhes',\n showMoreLabel: 'Mostrar mais',\n }\n};\n","import { FetchHelper } from '@/globals/FetchHelper';\nimport { ShipmentsBody, ShipmentsResponse, TableRowData } from './types';\n\nexport class MarketwebTableService {\n private readonly _endpoint;\n private readonly _language;\n private fetchHelper = new FetchHelper('MarketTableService');\n private readonly _getUserShipmentsPath = `/get-user-shipments`;\n\n\n constructor(endpoint: string, language: string) {\n this._endpoint = this.formatEndpoint(endpoint);\n this._language = language;\n }\n\n async getUserShipments(contentId: string, skip: number, take: number, isChatEnabled: boolean): Promise<TableRowData[]> {\n let model: ShipmentsBody =\n {\n skip: skip,\n take: take,\n isChatEnabled: isChatEnabled,\n language: this._language,\n contentId: contentId,\n };\n\n const fetchUrl = this._endpoint + this._getUserShipmentsPath;\n\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false\n )) as ShipmentsResponse;\n\n return JSON.parse(data.shipments) as TableRowData[];\n }\n\n private formatEndpoint(endpoint: string): string {\n var formattedEndpoint = endpoint.lastIndexOf('/') === endpoint.length - 1 ? endpoint.substring(0, endpoint.length - 1) : endpoint;\n return formattedEndpoint;\n }\n\n private getRequestInit(model: any, method: string = 'POST', mode: RequestMode = 'cors', contentTypes: string = 'application/json'): RequestInit {\n return {\n mode: mode,\n method: method,\n headers:\n {\n 'Content-Type': contentTypes\n },\n body: JSON.stringify(model)\n };\n }\n}\n","@import '../../../globals/main.scss';\n\n:host {\n display: block;\n}\n\n.pn-marketweb-table {\n .container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem;\n }\n\n .heading-section {\n display: flex;\n justify-content: space-between;\n gap: 2rem;\n margin-bottom: 2rem;\n\n @media (max-width: $min-width-md) {\n flex-direction: column;\n }\n\n .heading-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .preamble-section {\n width: 80%;\n }\n\n .main-heading {\n margin-bottom: 1rem;\n }\n\n .summary {\n display: flex;\n height: 7rem;\n justify-content: flex-end;\n gap: clamp(1rem, 4vw, 2rem);\n\n @media (max-width: $min-width-md) {\n justify-content: center;\n }\n }\n\n .sub-heading-section {\n background-color: $blue25;\n border-radius: 1.6rem;\n display: flex;\n align-items: center;\n gap: clamp(0.6rem, 4vw, 1rem);\n padding: 0.6rem 1.2rem;\n width: 13.5rem;\n\n .icon-container {\n background-color: $blue50;\n border-radius: 50%;\n padding: 4px;\n }\n }\n\n .sub-heading {\n font-size: clamp(1rem, 3vw, 1.4rem);\n font-weight: 400;\n line-height: clamp(1.225rem, 4vw, 1.5rem);\n margin: 0;\n\n strong {\n color: $blue700;\n font-weight: 700;\n }\n }\n }\n\n .pn-marketweb-table__table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 3.2rem;\n border: none;\n }\n\n .pn-marketweb-table__table tr {\n border-bottom: 1px solid $gray100;\n position: relative;\n border-left: 4px solid $white;\n transition: all .7s ease;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n border-left: 4px solid $blue200;\n background: $blue25;\n }\n\n &.row-new-message,\n &.row-new-messag:hover {\n border-left: 4px solid $green500;\n background: linear-gradient(90deg, rgba(220, 246, 231, 1) 0%, rgba(237, 251, 243, 1) 30%, rgba(255, 255, 255, 1) 70%);\n }\n }\n\n .pn-marketweb-table__table {\n td {\n padding: 1.6rem 1rem;\n }\n }\n\n .image-container {\n min-height: 5.8rem;\n }\n\n .cell-heading {\n color: $gray700;\n font-size: clamp(0.875rem, 4vw, 1.2rem);\n font-weight: 400;\n line-height: clamp(1.225rem, 4vw, 1.5rem);\n margin: 0;\n }\n\n .cell-value {\n color: $gray900;\n display: inline-block;\n font-size: clamp(1rem, 4vw, 1.5rem);\n font-weight: 400;\n line-height: clamp(1.4rem, 4vw, 1.8rem);\n margin: 0;\n padding: 0.5rem 0;\n }\n\n .row-image {\n border-radius: 0.5rem;\n }\n\n .actions {\n align-content: center;\n width: 20%;\n\n .button-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n gap: 1.6rem;\n\n pn-button {\n min-width: 50%;\n }\n\n pn-button.toggle-widget {\n min-width: 30%;\n }\n\n .pn-button-text {\n white-space: nowrap;\n }\n\n @media screen and (max-width: $min-width-md) {\n justify-content: space-between;\n flex-direction: column;\n }\n }\n }\n\n @media screen and (max-width: $min-width-md) {\n tr {\n display: flex;\n flex-wrap: wrap;\n }\n\n td:not(.cell-content) {\n width: 100%;\n }\n\n td.cell-image {\n text-align: center;\n }\n\n td.cell-content {\n flex: 1 0 40%;\n\n &::before {\n content: attr(data-label);\n display: block;\n font-weight: bold;\n margin-bottom: 0.5em;\n }\n }\n\n td.actions .button-wrapper {\n gap: 2rem;\n }\n }\n\n @media (min-width: $min-width-md) {\n .row-image {\n max-width: 80px;\n }\n }\n\n .toggle-detail {\n display: none;\n color: $blue700;\n cursor: pointer;\n border: none;\n border-radius: 3em;\n outline: none;\n position: relative;\n font-size: 0.875em;\n min-width: 5.5em;\n font-weight: 500;\n background-color: transparent;\n justify-content: center;\n align-items: center;\n transition: color 0.3s;\n -webkit-tap-highlight-color: transparent;\n text-decoration: none;\n padding: 0.375em 1em;\n min-height: 2em;\n line-height: 1.65em;\n white-space: nowrap;\n\n &:hover {\n background-color: $blue50;\n opacity: 1;\n }\n }\n\n .shipment-id-active .button-wrapper {\n display: flex;\n }\n\n tr td.cell-content:first-child .cell-value {\n font-weight: 500;\n }\n\n .pn-widget-wrapper {\n display: flex;\n justify-content: center;\n }\n\n .shipment-id-active, .widget-row {\n background-color: $blue25;\n }\n\n .pn-market-table__show-more-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n }\n}\n\n\n\n.row-new-message .button-wrapper:after {\n content: attr(data-label);\n background: $green500;\n border-radius: 0 0.4rem .4rem 0;\n color: $white;\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n font-size: 1.4rem;\n padding: 0 .4rem;\n}\n\n@media (min-width: $min-width-md) {\n .row-new-message .button-wrapper:after {\n background: $green700;\n border-radius: .4rem;\n left: auto;\n right: 1.6rem;\n\n font-size: 1.1rem;\n top: .3rem;\n\n }\n}","import { HeadingTag } from '@/globals/HeadingTag';\nimport { Component, Host, Prop, h, State, Fragment, Watch } from '@stencil/core';\nimport { ScreenWidth, ScreenWidthInfo, DEFAULT_BREAKPOINTS } from '@/globals/ScreensizeDetect';\nimport { HeadingLevel } from '@/globals/types';\nimport { angle_down, angle_up } from 'pn-design-assets/pn-assets/icons.js';\nimport { JSX } from 'react';\nimport { PnChatService } from '../pn-chat/pn-chat.service';\nimport { HeaderConfig, TableRowData, TableRowi18n } from './types'\nimport { translations } from './translations';\nimport { MarketwebTableService } from './pn-marketweb-table.service';\n\n@Component({\n tag: 'pn-marketweb-table',\n styleUrl: 'pn-marketweb-table.scss',\n})\nexport class PnMarketWebTable {\n @Prop() mainHeading?: string;\n @Prop() mainHeadingLevel: HeadingLevel = 'h2';\n @Prop() preamble: string\n @Prop() subHeadingLevel: HeadingLevel = 'h3';\n @Prop() headers!: string | HeaderConfig[];\n @Prop() rows!: string | TableRowData[];\n @Prop() showHeadersInCells: boolean = false;\n @Prop() cellHeaderLevel: HeadingLevel = 'h3';\n @Prop() tableRowCtaActionLabel: string;\n @Prop() imageColAriaHeader: string;\n @Prop() ctaColAriaHeader: string;\n @Prop() checkForNewShipments: boolean = false;\n @Prop() endpoint: string;\n @Prop() language: string = 'sv';\n @Prop() market: string;\n @Prop() toggleDetailLabel: string = 'View details';\n @Prop() checkForChat: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: string = '';\n @Prop() shipmentType!: string;\n @Prop() contentId: string = '';\n @Prop() takeAmountRow: number = 2;\n @Prop() shipmentCount: number = 2;\n\n @State() i18n: TableRowi18n;\n @State() private _headers: HeaderConfig[] = [];\n @State() private _rows: TableRowData[] = [];\n @State() private _allKeys: Set<string> = new Set();\n @State() private screenInfo?: ScreenWidthInfo;\n\n private screenWidth = ScreenWidth.getInstance();\n private cleanup?: () => void;\n private _chatService: PnChatService;\n private _chatSegment: string = \"#chat\";\n private _marketwebTableService: MarketwebTableService;\n\n componentWillLoad(): void {\n this.setInitialValues();\n this.setTranslations();\n this._marketwebTableService = new MarketwebTableService(this.endpoint, this.language);\n\n this.cleanup = this.screenWidth.subscribe(info => {\n this.screenInfo = info;\n });\n\n if (this.checkForNewShipments) {\n this._chatService = new PnChatService(this.endpoint, this.market, this.language);\n setInterval(() => {\n this.checkForNewMessages();\n }, 60000);\n }\n }\n\n setTranslations() {\n if (translations[this.language]) {\n this.i18n = translations[this.language] as TableRowi18n;\n }\n else {\n const fallbackLang = 'sv';\n this.i18n = translations[fallbackLang] as TableRowi18n;\n }\n }\n\n @Watch('language')\n onLanguageChange() {\n this.setTranslations();\n }\n\n async componentDidLoad() {\n if (this.checkForChat) {\n const thisTable = document.querySelector('pn-marketweb-table.' + this.shipmentType);\n const chatHrefs = thisTable.querySelectorAll('[href*=\"#chat\"]');\n const openChatATags: HTMLAnchorElement[] = Array.from(chatHrefs).filter(\n (el): el is HTMLAnchorElement => el instanceof HTMLAnchorElement\n );\n this.OpenChatEvent(openChatATags);\n }\n }\n\n componentDidRender() {\n const thisTable = document.querySelector('pn-marketweb-table[shipment-type=' + this.shipmentType + ']');\n const toggleButtons = thisTable?.querySelectorAll('pn-button.toggle-widget');\n toggleButtons?.forEach(pnButton => {\n const btnText = pnButton.querySelector('.pn-button-text');\n if (btnText && btnText.innerHTML !== this.i18n.toggleButtonOn) {\n btnText.innerHTML = this.i18n.toggleButtonOn;\n }\n const button = pnButton.querySelector('button');\n if (button && !button.hasAttribute('data-toggle-initialized')) {\n button.addEventListener('click', this.toggleButton.bind(this));\n button.setAttribute('data-toggle-initialized', 'true');\n }\n });\n }\n\n private toggleButton(event) {\n const button = event.currentTarget as HTMLButtonElement;\n const parentRow = button.closest('tr');\n const parentPnButton = button.closest('pn-button');\n\n const isActive = parentRow.classList.contains(\"shipment-id-active\");\n\n const existingWidgetRows = document.querySelectorAll('.widget-row');\n existingWidgetRows.forEach(row => row.remove());\n\n const allRows = document.querySelectorAll('tr');\n allRows.forEach(row => row.classList.remove(\"shipment-id-active\"));\n\n const allPnButtons = document.querySelectorAll('pn-button.toggle-widget');\n allPnButtons.forEach(pnBtn => {\n pnBtn.setAttribute('icon', angle_down);\n pnBtn.querySelector('.pn-button-text').innerHTML = this.i18n.toggleButtonOn;\n });\n\n if (isActive) {\n return;\n }\n button.querySelector('.pn-button-text').innerHTML = this.i18n.toggleButtonOff;\n parentRow.classList.add(\"shipment-id-active\");\n\n const widgetRow = document.createElement('tr');\n widgetRow.classList.add('widget-row');\n\n const tdElement = document.createElement('td');\n tdElement.colSpan = parentRow.children.length;\n\n const divEl = document.createElement('div');\n divEl.classList.add('pn-widget-wrapper');\n\n const widget = document.createElement('pn-widget');\n widget.setAttribute('locale', this.language);\n widget.setAttribute('shipment-id', button.id);\n\n divEl.appendChild(widget);\n tdElement.appendChild(divEl);\n widgetRow.appendChild(tdElement);\n\n parentRow.parentNode.insertBefore(widgetRow, parentRow.nextSibling);\n\n parentPnButton.setAttribute('icon', angle_up);\n }\n\n private handleShowMore = async () => {\n let skip = this._rows.length;\n let data = await this._marketwebTableService.getUserShipments(this.contentId, skip, this.takeAmountRow, this.checkForChat);\n if (data) {\n this._rows = [...this._rows, ...data];\n }\n };\n\n async waitForComponent(selector: string, maxRetries = 10, delay = 300): Promise<HTMLElement | null> {\n for (let i = 0; i < maxRetries; i++) {\n const element = document.querySelector(selector);\n if (element) {\n return element as HTMLElement;\n }\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n return null;\n }\n\n disconnectedCallback(): void {\n if (this.cleanup) {\n this.cleanup();\n }\n }\n\n private async checkForNewMessages() {\n for (let i = 0; i < this._rows.length; i++) {\n const row = this._rows[i];\n const itemId = row.id;\n\n if (itemId) {\n const hasNewMessages = await this._chatService.hasNewMessages(itemId);\n\n if (row.hasNewMessages !== hasNewMessages) {\n this._rows[i] = { ...row, hasNewMessages: hasNewMessages };\n }\n }\n }\n\n this._rows = [...this._rows];\n }\n\n private setInitialValues(): void {\n try {\n this.parseRows();\n this.parseHeaders();\n\n } catch (error) {\n console.error('Error parsing table data:', error);\n this._rows = [];\n this._headers = [];\n }\n }\n\n private parseRows() {\n this._rows = typeof this.rows === 'string' ? JSON.parse(this.rows) : this.rows;\n this._allKeys = new Set(this._rows.flatMap(row => Object.keys(row)));\n }\n\n private parseHeaders() {\n if (typeof this.headers === 'string') {\n this._headers = JSON.parse(this.headers);\n } else if (this.headers) {\n this._headers = this.headers;\n } else {\n this._headers = Array.from(this._allKeys).map(key => ({ key, label: key }));\n }\n }\n\n private renderCellContent(header: HeaderConfig, row: TableRowData): JSX.Element | string | number | boolean {\n const content = header.render ? header.render(row) : row[header.key] ?? '-';\n return content;\n }\n\n private renderCell(header: HeaderConfig, row: TableRowData): JSX.Element {\n const content = this.renderCellContent(header, row);\n\n if (this.showHeadersInCells || this.screenInfo.width <= DEFAULT_BREAKPOINTS.tablet) {\n return (\n <div class=\"cell-content\" role=\"cell\">\n <HeadingTag\n level={this.cellHeaderLevel}\n cssClass=\"cell-heading\"\n additionalProps={{\n 'aria-hidden': 'true',\n 'role': 'presentation',\n }}\n >\n {header.label}\n </HeadingTag>\n <span class=\"cell-value\">{content}</span>\n </div>\n );\n }\n\n return <>{content}</>;\n }\n\n private handleToggleClick = () => {\n const areaToggle = document.querySelector('.trackandtracewidgetblock');\n if (areaToggle?.parentElement) {\n areaToggle.parentElement.classList.toggle('hideRow');\n }\n };\n\n private renderActionButtons(row: TableRowData): JSX.Element | null {\n if (!row.actionButtons) return null;\n\n return (\n <td class=\"actions\" role=\"cell\">\n <div class=\"button-wrapper\" role=\"group\" aria-label={this.tableRowCtaActionLabel} data-label={this.i18n.newMessage}>\n {row.actionButtons.map(btn => (\n <pn-button\n appearance={btn.appearance}\n class={btn.class}\n variant={btn.variant}\n small={btn.small}\n loading={btn.loading}\n icon={btn.icon}\n leftIcon={btn.leftIcon}\n tooltip={btn.tooltip}\n href={btn.href}\n rel={btn.rel}\n download={btn.download}\n form={btn.form}\n buttonId={btn.buttonId}\n icon-only={btn.iconOnly}\n arialabel={btn.content}\n data-chat={btn.customAttribute}>\n {btn.content}\n </pn-button>\n ))}\n </div>\n </td>\n );\n }\n\n private async OpenChatEvent(aTags: HTMLAnchorElement[]) {\n aTags.forEach((aTag) => {\n aTag.addEventListener(\"click\", (e) => {\n e.preventDefault();\n const previousLocationHash = window?.location?.hash ?? \"\";\n\n const findShipmentIdInUrlRegex = /#chat:([a-zA-Z0-9]+)(?=#|$)/;\n const match = aTag.href.match(findShipmentIdInUrlRegex);\n const shipmentId = match ? match[1] : \"\";\n const shipmentHash = `${this._chatSegment}:${shipmentId}`;\n window.location.hash = shipmentHash;\n\n this.waitForComponent('pn-chat').then((chat) => {\n if (shipmentId) {\n chat.setAttribute('item-id', shipmentId);\n }\n else {\n chat.setAttribute('item-id', \"\");\n }\n\n let oldInitChatId = chat.getAttribute('pn-chat-id');\n\n const _defaultChatId = \"00000000-0000-0000-0000-000000000000\";\n const _defaultAlternativeChatId = \"1\";\n const _defaultTriggerChatId = oldInitChatId === _defaultChatId ? _defaultAlternativeChatId : _defaultChatId;\n let chatId = _defaultTriggerChatId;\n const reversedChatId = aTag?.parentElement?.getAttribute('data-chat');\n\n if (reversedChatId) {\n chatId = reversedChatId.split('').reverse().join('');\n }\n\n chat.setAttribute('is-logged-in', 'true');\n chat.setAttribute('pn-chat-id', chatId);\n\n if (previousLocationHash.includes(shipmentHash)) {\n let forceOpen = chat.getAttribute('force-open') ?? 'true';\n forceOpen = forceOpen === 'true' ? 'false' : 'true';\n chat.setAttribute('force-open', forceOpen);\n }\n });\n });\n });\n }\n\n render() {\n const tableId = `table-${Math.random().toString(36)}`;\n const headingId = `${tableId}-main-heading`;\n\n return (\n <Host language={this.language}>\n <div class='pn-marketweb-table'>\n <div role='region' aria-labelledby={this.mainHeading ? headingId : undefined}>\n <div class='heading-section'>\n <div class='heading-wrapper'>\n {this.mainHeading && (\n <HeadingTag level={this.mainHeadingLevel} cssClass='main-heading' id={headingId}>\n {this.mainHeading}\n </HeadingTag>\n )}\n {this.preamble && (\n <div class=\"preamble-section\">{this.preamble}</div>\n )}\n </div>\n </div>\n {this._rows.length > 0 && (\n <table class='pn-marketweb-table__table' aria-labelledby={this.mainHeading ? `${tableId}-main-heading` : undefined}>\n {this._headers && (\n <thead class={this.showHeadersInCells ? 'sr-only' : undefined} >\n <tr >\n {this._rows.some((row) => row.imageUrl) && this.imageColAriaHeader && (\n <th scope='col' class='sr-only'>\n {this.imageColAriaHeader}\n </th>\n )}\n {this._headers.map((header) => (\n <th key={header.key} scope='col' class='sr-only-mobile'>\n {header.label}\n </th>\n ))}\n {this._rows.some((row) => row.link1 || row.link2) && this.ctaColAriaHeader && (\n <th scope='col' class='sr-only'>\n {this.ctaColAriaHeader}\n </th>\n )}\n </tr>\n </thead>\n )}\n <tbody class=\"pn-marketweb-table__table-body\">\n {this._rows.slice(0, this.shipmentCount).map((row, rowIndex) => (\n <tr key={rowIndex} class={`cell-row ${row.hasNewMessages ? \"row-new-message\" : ''}`}>\n {row.imageUrl && (\n <td class='cell-image'>\n <div class='image-container'>\n <img src={row.imageUrl} alt='' class='row-image' />\n </div>\n </td>\n )}\n {this._headers.map((header) => (\n <td key={`${rowIndex}-${header.key}`} class='cell-content' >\n {this.renderCell(header, row)}\n </td>\n ))}\n {this.renderActionButtons(row)}\n </tr>\n ))}\n </tbody>\n </table>\n )}\n {this.shipmentCount > this._rows.length && (\n <div class=\"pn-market-table__show-more-wrapper\">\n <pn-button variant=\"outlined\" appearance=\"light\" label={this.i18n?.showMoreLabel || 'Show More'} onClick={() => this.handleShowMore()}></pn-button>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -34,7 +34,7 @@ const PnUspPromoter = class {
|
|
|
34
34
|
rightAlign ? "usp-promoter--right-align" : "",
|
|
35
35
|
].join(' ');
|
|
36
36
|
const hasHeadingExtension = this.headingExtension ? "usp-promoter__heading-extension" : "";
|
|
37
|
-
return (index.h(index.Host, { key: '
|
|
37
|
+
return (index.h(index.Host, { key: '23494c6ed3177f63b9cf483eaf28ae62c4050797' }, index.h("div", { key: '84cec740776a5f787933b6f7a8734ba00f898a71', class: ` ${classes} ${this.centerMobileContent()}`, style: { 'background': `${this.backgroundGradient}` } }, index.h("div", { key: '77d56ad9982b8e8d2459c881a797cd5fa3c51519', class: "usp-promoter__content" }, index.h("slot", { key: '3b0ddfeaec6ce47329f5a2d64df978f8779de532', name: "illustration" }), index.h("div", { key: '072080f41f6531333d154499c1b63d3822e3cdbb', class: "usp-promoter__content-wrapper" }, index.h("h2", { key: 'd09398e7a54f7a1a6a44ab1ede3aaac7a6e00261', class: `usp-promoter__content-heading ${hasHeadingExtension}` }, index.h("span", { key: '48f98ffcce6c0c6b2b6cf8bb754b84d414fedb8c' }, this.heading), this.headingExtension ? index.h("span", null, this.headingExtension) : null), index.h("p", { key: '3f0abe6fcd83e31ffa2ab932027b14f9c1e7c439', class: "usp-promoter__content-text" }, this.bodyText), index.h("slot", { key: '54fa5a5072c8897dd6ae7c216b2c5d7ad1d6a2b6', name: "app-store" }), index.h("slot", { key: '0bad1abdc12f5108a62f723136c764214bcc6143', name: "usp-buttons" }))))));
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
PnUspPromoter.style = PnUspPromoterStyle0;
|
|
@@ -98,9 +98,7 @@
|
|
|
98
98
|
"components/widgets/pn-proxio-productcard/pn-proxio-productcard-pricelink.js",
|
|
99
99
|
"components/widgets/pn-proxio-productcard/pn-proxio-productcard.js",
|
|
100
100
|
"components/widgets/pn-qr-code-generator/pn-qr-code-generator.js",
|
|
101
|
-
"components/widgets/pn-
|
|
102
|
-
"components/widgets/pn-usp-promoter/pn-usp-promoter.js",
|
|
103
|
-
"components/widgets/pn-usp-simple/pn-usp-simple.js"
|
|
101
|
+
"components/widgets/pn-usp-promoter/pn-usp-promoter.js"
|
|
104
102
|
],
|
|
105
103
|
"compiler": {
|
|
106
104
|
"name": "@stencil/core",
|
|
@@ -7,6 +7,7 @@ export class PnChatMessage {
|
|
|
7
7
|
this.agentName = undefined;
|
|
8
8
|
}
|
|
9
9
|
robotIcon = '<?xml version="1.0" encoding="UTF-8"?> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20"> <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) --> <defs> <style> .st0 { fill: none; } .st1 { fill: #8eddf9; } .st2 { fill: #f3f2f2; } .st3 { fill: #0d234b; } .st4 { fill: #f06365; } .st5 { clip-path: url(#clippath); } .st6 { fill: #005d92; } </style> <clipPath id="clippath"> <rect class="st0" width="20" height="20"/> </clipPath> </defs> <g class="st5"> <g> <path class="st2" d="M10,20c5.5,0,10-4.5,10-10S15.5,0,10,0,0,4.5,0,10s4.5,10,10,10Z"/> <path class="st3" d="M10.5,4h-.5v2.8h.5v-2.8Z"/> <path class="st3" d="M10.2,4.3c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path class="st3" d="M9,5h2.4c1,0,1.8.8,1.8,1.8h-6c0-1,.8-1.8,1.8-1.8Z"/> <path class="st4" d="M17,10.3v-.8c0-1.9-1.5-3.5-3.5-3.5h-7.1c-1.9,0-3.5,1.6-3.5,3.5v.8h14.1Z"/> <path d="M13.9,16.1l-3.7.4v-.4s3.6-.4,3.6-.4c.8,0,1.6-.4,2.1-1s.7-2.9.7-3.7h.4c0,.9-.2,3.3-.8,3.9-.6.7-1.4,1.1-2.3,1.2Z"/> <path class="st4" d="M16.3,12.1v-3.6h.2c1,0,1.8.8,1.8,1.8s-.8,1.8-1.8,1.8h-.2Z"/> <path class="st4" d="M3.7,8.5v3.6h-.2c-1,0-1.8-.8-1.8-1.8s.8-1.8,1.8-1.8h.2Z"/> <path class="st3" d="M13.1,6.6h-6.2c-1.8,0-3.3,1.5-3.3,3.3v2.1c0,1.8,1.5,3.3,3.3,3.3h6.2c1.8,0,3.3-1.5,3.3-3.3v-2.1c0-1.8-1.5-3.3-3.3-3.3Z"/> <path class="st6" d="M12.8,7.8h-5.6c-1.4,0-2.5,1.1-2.5,2.5v1.4c0,1.4,1.1,2.4,2.5,2.4h5.6c1.4,0,2.4-1.1,2.4-2.4v-1.4c0-1.4-1.1-2.5-2.4-2.5Z"/> <path class="st1" d="M12.3,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path class="st1" d="M7.7,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path d="M11,15.8h-1.5c-.3,0-.5.2-.5.5h0c0,.3.2.5.5.5h1.5c.3,0,.5-.2.5-.5h0c0-.3-.2-.5-.5-.5Z"/> </g> </g> </svg>';
|
|
10
|
+
blue700 = 'blue700';
|
|
10
11
|
getIcon() {
|
|
11
12
|
let icon = null;
|
|
12
13
|
switch (this.category) {
|
|
@@ -34,7 +35,7 @@ export class PnChatMessage {
|
|
|
34
35
|
render() {
|
|
35
36
|
const segmentClass = this.customerSegment?.toLowerCase() || '';
|
|
36
37
|
const categoryClass = this.category?.toLowerCase() || '';
|
|
37
|
-
return (h(Host, { key: '
|
|
38
|
+
return (h(Host, { key: '0bd86ed5a6709fca909aa09b9b8bf6c497c230a2', class: this.getMessageClass() }, h("div", { key: '190cdd88c6b715022bad825d19f97ef2720005b9', class: `message-container ${categoryClass}` }, this.getIcon() && (h("span", { key: 'd7ae83dba633e39b5cc08e38526acd3f3b2f8427', class: "category" }, h("pn-icon", { key: '8331458b12bc1669cba3cfc637abc2280516feec', icon: this.getIcon(), color: this.blue700, "aria-hidden": "true", role: "presentation" }))), h("span", { key: '5aa89b7fe5ff9f65f69453b23d835aad16c68190', class: `message ${segmentClass}` }, h("slot", { key: '1565b98e7b83884d8bc30a5dfcd9fce88e607a1d' })))));
|
|
38
39
|
}
|
|
39
40
|
static get is() { return "pn-chat-message"; }
|
|
40
41
|
static get originalStyleUrls() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pn-chat-message.js","sourceRoot":"","sources":["../../../../../src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,GAAG,EAAQ,MAAM,qCAAqC,CAAC;AAQhE,MAAM,OAAO,aAAa;;;;;;
|
|
1
|
+
{"version":3,"file":"pn-chat-message.js","sourceRoot":"","sources":["../../../../../src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,GAAG,EAAQ,MAAM,qCAAqC,CAAC;AAQhE,MAAM,OAAO,aAAa;;;;;;IAKhB,SAAS,GAAW,uwDAAuwD,CAAC;IAC5xD,OAAO,GAAG,SAAS,CAAC;IAE5B,OAAO;QACL,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,gBAAgB;gBACnB,OAAO,gBAAgB,CAAC;YAC1B,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,gBAAgB,CAAC;YAC1B;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACzD,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAG,IAAI,CAAC,eAAe,EAAE;YAClC,4DAAK,KAAK,EAAE,qBAAqB,aAAa,EAAE;gBAC7C,IAAI,CAAC,OAAO,EAAE,IAAI,CACjB,6DAAM,KAAK,EAAC,UAAU;oBACpB,gEAAS,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,iBAAc,MAAM,EAAC,IAAI,EAAC,cAAc,GAAW,CAChG,CACR;gBACD,6DAAM,KAAK,EAAE,WAAW,YAAY,EAAE;oBACpC,8DAAa,CACR,CACH,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h } from '@stencil/core';\nimport { faq, user } from 'pn-design-assets/pn-assets/icons.js';\n\nimport { AgentMessage, CustomerSegment, MessageCategory } from '../types';\n\n@Component({\n tag: 'pn-chat-message',\n styleUrl: 'pn-chat-message.scss',\n})\nexport class PnChatMessage {\n @Prop() category!: MessageCategory;\n @Prop() customerSegment!: CustomerSegment;\n @Prop() agentName: string;\n\n private robotIcon: string = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> <svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" viewBox=\"0 0 20 20\"> <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) --> <defs> <style> .st0 { fill: none; } .st1 { fill: #8eddf9; } .st2 { fill: #f3f2f2; } .st3 { fill: #0d234b; } .st4 { fill: #f06365; } .st5 { clip-path: url(#clippath); } .st6 { fill: #005d92; } </style> <clipPath id=\"clippath\"> <rect class=\"st0\" width=\"20\" height=\"20\"/> </clipPath> </defs> <g class=\"st5\"> <g> <path class=\"st2\" d=\"M10,20c5.5,0,10-4.5,10-10S15.5,0,10,0,0,4.5,0,10s4.5,10,10,10Z\"/> <path class=\"st3\" d=\"M10.5,4h-.5v2.8h.5v-2.8Z\"/> <path class=\"st3\" d=\"M10.2,4.3c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path class=\"st3\" d=\"M9,5h2.4c1,0,1.8.8,1.8,1.8h-6c0-1,.8-1.8,1.8-1.8Z\"/> <path class=\"st4\" d=\"M17,10.3v-.8c0-1.9-1.5-3.5-3.5-3.5h-7.1c-1.9,0-3.5,1.6-3.5,3.5v.8h14.1Z\"/> <path d=\"M13.9,16.1l-3.7.4v-.4s3.6-.4,3.6-.4c.8,0,1.6-.4,2.1-1s.7-2.9.7-3.7h.4c0,.9-.2,3.3-.8,3.9-.6.7-1.4,1.1-2.3,1.2Z\"/> <path class=\"st4\" d=\"M16.3,12.1v-3.6h.2c1,0,1.8.8,1.8,1.8s-.8,1.8-1.8,1.8h-.2Z\"/> <path class=\"st4\" d=\"M3.7,8.5v3.6h-.2c-1,0-1.8-.8-1.8-1.8s.8-1.8,1.8-1.8h.2Z\"/> <path class=\"st3\" d=\"M13.1,6.6h-6.2c-1.8,0-3.3,1.5-3.3,3.3v2.1c0,1.8,1.5,3.3,3.3,3.3h6.2c1.8,0,3.3-1.5,3.3-3.3v-2.1c0-1.8-1.5-3.3-3.3-3.3Z\"/> <path class=\"st6\" d=\"M12.8,7.8h-5.6c-1.4,0-2.5,1.1-2.5,2.5v1.4c0,1.4,1.1,2.4,2.5,2.4h5.6c1.4,0,2.4-1.1,2.4-2.4v-1.4c0-1.4-1.1-2.5-2.4-2.5Z\"/> <path class=\"st1\" d=\"M12.3,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path class=\"st1\" d=\"M7.7,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path d=\"M11,15.8h-1.5c-.3,0-.5.2-.5.5h0c0,.3.2.5.5.5h1.5c.3,0,.5-.2.5-.5h0c0-.3-.2-.5-.5-.5Z\"/> </g> </g> </svg>';\n private blue700 = 'blue700';\n\n getIcon() {\n let icon = null;\n \n switch (this.category) {\n case 'Bot':\n return this.robotIcon;\n case 'Agent':\n return this.agentName;\n case 'Link':\n return faq;\n }\n\n return icon;\n }\n\n getMessageClass(): string {\n switch (this.category) {\n case 'ButtonResponse':\n return 'buttonresponse';\n case 'User':\n return 'user';\n case 'System':\n return 'system-message';\n default: \n return undefined;\n }\n }\n\n render() {\n const segmentClass = this.customerSegment?.toLowerCase() || '';\n const categoryClass = this.category?.toLowerCase() || '';\n return (\n <Host class={ this.getMessageClass() }>\n <div class={`message-container ${categoryClass}`}>\n {this.getIcon() && (\n <span class=\"category\">\n <pn-icon icon={this.getIcon()} color={this.blue700} aria-hidden=\"true\" role=\"presentation\"></pn-icon>\n </span>\n )}\n <span class={`message ${segmentClass}`}>\n <slot></slot>\n </span>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,166 +1,40 @@
|
|
|
1
|
-
export const closeButtonProps = {
|
|
2
|
-
'data-action': 'minimize',
|
|
3
|
-
'aria-label': 'Minimize chat',
|
|
4
|
-
};
|
|
5
1
|
export const styleSample = `
|
|
6
2
|
.sb-story,.sb-show-main { border: solid 1px #333; height: 500px; width: 800px; padding:40px; position: relative;}
|
|
7
3
|
.pn-chat { position:absolute; right:50px ;bottom:50px; transform-origin: bottom right }
|
|
8
4
|
}`;
|
|
9
|
-
export const
|
|
10
|
-
header: {
|
|
11
|
-
body:
|
|
12
|
-
button:
|
|
13
|
-
content: 'Private',
|
|
14
|
-
href: '#',
|
|
15
|
-
class: '',
|
|
16
|
-
appearance: 'light',
|
|
17
|
-
variant: 'outlined',
|
|
18
|
-
small: 'true',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
messages: [
|
|
22
|
-
{
|
|
23
|
-
category: 'Bot',
|
|
24
|
-
content: 'Are you already a private customer, please sign in to the PostNord Portal',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
category: 'Button',
|
|
28
|
-
content: 'Sign in',
|
|
29
|
-
class: 'login-btn',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
category: 'Link',
|
|
33
|
-
content: 'How can I become a customer',
|
|
34
|
-
href: '#',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
category: 'Link',
|
|
38
|
-
content: 'What is the PostNord Portal',
|
|
39
|
-
href: '#',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
category: 'User',
|
|
43
|
-
content: 'Please help me find some related information.',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
category: 'Bot',
|
|
47
|
-
content: 'Find related articles for you as a private customer.',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
category: 'Card',
|
|
51
|
-
heading: 'API example',
|
|
52
|
-
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta.',
|
|
53
|
-
buttons: [
|
|
54
|
-
{
|
|
55
|
-
content: 'Read article',
|
|
56
|
-
href: '#',
|
|
57
|
-
class: 'read-more',
|
|
58
|
-
appearance: 'light',
|
|
59
|
-
variant: 'outlined',
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
category: 'Card',
|
|
65
|
-
heading: 'Custom',
|
|
66
|
-
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta. Lorem ipsum. Dolor.',
|
|
67
|
-
buttons: [
|
|
68
|
-
{
|
|
69
|
-
content: 'Read article',
|
|
70
|
-
href: '#',
|
|
71
|
-
class: 'read-more',
|
|
72
|
-
appearance: 'light',
|
|
73
|
-
variant: 'outlined',
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
category: 'Button',
|
|
79
|
-
content: 'End the conversation (minimizes chat)',
|
|
80
|
-
class: '',
|
|
81
|
-
props: JSON.stringify(closeButtonProps),
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
category: 'System',
|
|
85
|
-
content: 'A customer service agent has entered the chat.',
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
};
|
|
89
|
-
export const messagesObjectBusiness = {
|
|
90
|
-
header: {
|
|
91
|
-
body: '',
|
|
92
|
-
button: {
|
|
93
|
-
content: 'Business',
|
|
94
|
-
href: '#',
|
|
95
|
-
class: '',
|
|
96
|
-
appearance: 'light',
|
|
97
|
-
variant: 'outlined',
|
|
98
|
-
small: 'true',
|
|
99
|
-
},
|
|
5
|
+
export const hardcodedMessages = {
|
|
6
|
+
"header": {
|
|
7
|
+
"body": null,
|
|
8
|
+
"button": null
|
|
100
9
|
},
|
|
101
|
-
messages: [
|
|
102
|
-
{
|
|
103
|
-
category: 'Bot',
|
|
104
|
-
content: 'Are you already a business customer please sign in to the PostNord Portal',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
category: 'Button',
|
|
108
|
-
content: 'Sign in',
|
|
109
|
-
class: 'login-btn',
|
|
110
|
-
},
|
|
10
|
+
"messages": [
|
|
111
11
|
{
|
|
112
|
-
category:
|
|
113
|
-
content:
|
|
114
|
-
|
|
12
|
+
"category": "System",
|
|
13
|
+
"content": "A customer service agent has entered the chat.",
|
|
14
|
+
"messageId": "14584740-7784-4749-9b39-bce31455ea55"
|
|
115
15
|
},
|
|
116
16
|
{
|
|
117
|
-
category:
|
|
118
|
-
content:
|
|
119
|
-
|
|
17
|
+
"category": "Bot",
|
|
18
|
+
"content": "Varmt välkommen till PostNords virtuella assistent. Jag kan hjälpa dig med frågor gällande brev och paket samt skicka dig vidare till vår kundservice.",
|
|
19
|
+
"messageId": "967ddba6-ba1c-44d1-9725-386b32dc3498"
|
|
120
20
|
},
|
|
121
21
|
{
|
|
122
|
-
category:
|
|
123
|
-
content:
|
|
22
|
+
"category": "Bot",
|
|
23
|
+
"content": "Hur kan jag hjälpa dig?",
|
|
24
|
+
"messageId": "b26624af-852b-49cf-a3e6-77cc046be71f"
|
|
124
25
|
},
|
|
125
26
|
{
|
|
126
|
-
|
|
127
|
-
|
|
27
|
+
"class": null,
|
|
28
|
+
"category": "User",
|
|
29
|
+
"content": "hejsan vart är mitt paket?",
|
|
30
|
+
"messageId": "74cadc59-86ad-4f11-b4b6-a263aa9dbad9"
|
|
128
31
|
},
|
|
129
32
|
{
|
|
130
|
-
category:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
content: 'Read article',
|
|
136
|
-
href: '#',
|
|
137
|
-
class: 'read-more',
|
|
138
|
-
appearance: 'light',
|
|
139
|
-
variant: 'outlined',
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
category: 'Card',
|
|
145
|
-
heading: 'Custom',
|
|
146
|
-
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta. Lorem ipsum. Dolor.',
|
|
147
|
-
buttons: [
|
|
148
|
-
{
|
|
149
|
-
content: 'Read article',
|
|
150
|
-
href: '#',
|
|
151
|
-
class: 'read-more',
|
|
152
|
-
appearance: 'light',
|
|
153
|
-
variant: 'outlined',
|
|
154
|
-
},
|
|
155
|
-
],
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
category: 'Button',
|
|
159
|
-
content: 'End the conversation (minimizes chat)',
|
|
160
|
-
class: '',
|
|
161
|
-
props: JSON.stringify(closeButtonProps),
|
|
162
|
-
},
|
|
163
|
-
],
|
|
33
|
+
"category": "Bot",
|
|
34
|
+
"content": "Om du har ett kollinummer som berör din fråga, skriv gärna det här.",
|
|
35
|
+
"messageId": "90845d71-2a8e-4b1a-bd45-20de7a2dbe5f"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
164
38
|
};
|
|
165
39
|
export const messageObjectReal = {
|
|
166
40
|
header: {
|
|
@@ -226,18 +100,4 @@ export const messageObjectReal = {
|
|
|
226
100
|
}
|
|
227
101
|
]
|
|
228
102
|
};
|
|
229
|
-
export const messagesObjectEmpty = {
|
|
230
|
-
header: {
|
|
231
|
-
body: '',
|
|
232
|
-
button: {
|
|
233
|
-
content: 'Private',
|
|
234
|
-
href: '#',
|
|
235
|
-
class: '',
|
|
236
|
-
appearance: 'light',
|
|
237
|
-
variant: 'outlined',
|
|
238
|
-
small: 'true',
|
|
239
|
-
},
|
|
240
|
-
},
|
|
241
|
-
messages: [],
|
|
242
|
-
};
|
|
243
103
|
//# sourceMappingURL=pn-chat-stories-constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pn-chat-stories-constants.js","sourceRoot":"","sources":["../../../../src/components/widgets/pn-chat/pn-chat-stories-constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const closeButtonProps = {\n 'data-action': 'minimize',\n 'aria-label': 'Minimize chat',\n};\n\nexport const styleSample = `\n .sb-story,.sb-show-main { border: solid 1px #333; height: 500px; width: 800px; padding:40px; position: relative;}\n .pn-chat { position:absolute; right:50px ;bottom:50px; transform-origin: bottom right }\n }`;\n\nexport const messagesObjectPrivate = {\n header: {\n body: '',\n button: {\n content: 'Private',\n href: '#',\n class: '',\n appearance: 'light',\n variant: 'outlined',\n small: 'true',\n },\n },\n messages: [\n {\n category: 'Bot',\n content: 'Are you already a private customer, please sign in to the PostNord Portal',\n },\n {\n category: 'Button',\n content: 'Sign in',\n class: 'login-btn',\n },\n {\n category: 'Link',\n content: 'How can I become a customer',\n href: '#',\n },\n {\n category: 'Link',\n content: 'What is the PostNord Portal',\n href: '#',\n },\n {\n category: 'User',\n content: 'Please help me find some related information.',\n },\n {\n category: 'Bot',\n content: 'Find related articles for you as a private customer.',\n },\n {\n category: 'Card',\n heading: 'API example',\n content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta.',\n buttons: [\n {\n content: 'Read article',\n href: '#',\n class: 'read-more',\n appearance: 'light',\n variant: 'outlined',\n },\n ],\n },\n {\n category: 'Card',\n heading: 'Custom',\n content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta. Lorem ipsum. Dolor.',\n buttons: [\n {\n content: 'Read article',\n href: '#',\n class: 'read-more',\n appearance: 'light',\n variant: 'outlined',\n },\n ],\n },\n {\n category: 'Button',\n content: 'End the conversation (minimizes chat)',\n class: '',\n props: JSON.stringify(closeButtonProps),\n },\n {\n category: 'System',\n content: 'A customer service agent has entered the chat.',\n },\n ],\n};\n\nexport const messagesObjectBusiness = {\n header: {\n body: '',\n button: {\n content: 'Business',\n href: '#',\n class: '',\n appearance: 'light',\n variant: 'outlined',\n small: 'true',\n },\n },\n messages: [\n {\n category: 'Bot',\n content: 'Are you already a business customer please sign in to the PostNord Portal',\n },\n {\n category: 'Button',\n content: 'Sign in',\n class: 'login-btn',\n },\n {\n category: 'Link',\n content: 'How can I become a customer',\n href: '#',\n },\n {\n category: 'Link',\n content: 'What is the PostNord Portal',\n href: '#',\n },\n {\n category: 'User',\n content: 'Please help me find some related information.',\n },\n {\n category: 'Bot',\n content: 'Find related articles for you as a business customer.',\n },\n {\n category: 'Card',\n heading: 'API example',\n content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta.',\n buttons: [\n {\n content: 'Read article',\n href: '#',\n class: 'read-more',\n appearance: 'light',\n variant: 'outlined',\n },\n ],\n },\n {\n category: 'Card',\n heading: 'Custom',\n content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna vel porta. Lorem ipsum. Dolor.',\n buttons: [\n {\n content: 'Read article',\n href: '#',\n class: 'read-more',\n appearance: 'light',\n variant: 'outlined',\n },\n ],\n },\n {\n category: 'Button',\n content: 'End the conversation (minimizes chat)',\n class: '',\n props: JSON.stringify(closeButtonProps),\n },\n ],\n};\n\nexport const messageObjectReal = {\n header: {\n body: null,\n button: null\n },\n messages: [\n {\n class: null,\n category: \"User\",\n content: \"test\",\n messageId: \"4a703929-4f6c-47df-bfc1-5a4ca6e31531\"\n },\n {\n class: null,\n category: \"User\",\n content: \"test\",\n messageId: \"00000000-0000-0000-0000-000000000000\"\n },\n {\n class: null,\n category: \"User\",\n content: \"m\",\n messageId: \"55d2851f-66d5-47d8-a4f7-1114a22d3d16\"\n },\n {\n class: \"\",\n props: \"1ef8d9da-316b-45de-b56a-ec595b8baef3\",\n category: \"Button\",\n content: \"End Chat\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n class: \"\",\n props: \"9290fec2-bf1f-4713-9060-5f88ff8a7420\",\n category: \"Button\",\n content: \"Chat with Agent\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n category: \"Bot\",\n content: \"Welcome! I am the PN bot. How can I help you today?\\nPlease select an option below :\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n class: \"\",\n props: \"fb0b3b50-97a0-40f7-872a-fc6d7ed0d379\",\n category: \"Button\",\n content: \"End Chat\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n },\n {\n class: \"\",\n props: \"598e284a-4480-4e09-8f69-6c7046fea704\",\n category: \"Button\",\n content: \"Chat with Agent\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n },\n {\n category: \"Bot\",\n content: \"Welcome! I am the PN bot. How can I help you today?\\nPlease select an option below :\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n }\n ]\n};\n\nexport const messagesObjectEmpty = {\n header: {\n body: '',\n button: {\n content: 'Private',\n href: '#',\n class: '',\n appearance: 'light',\n variant: 'outlined',\n small: 'true',\n },\n },\n messages: [],\n};\n"]}
|
|
1
|
+
{"version":3,"file":"pn-chat-stories-constants.js","sourceRoot":"","sources":["../../../../src/components/widgets/pn-chat/pn-chat-stories-constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;;;IAGvB,CAAC;AAEL,MAAM,CAAC,MAAM,iBAAiB,GAC9B;IACE,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV;YACE,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,gDAAgD;YAC3D,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,wJAAwJ;YACnK,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,yBAAyB;YACpC,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,4BAA4B;YACvC,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,qEAAqE;YAChF,WAAW,EAAE,sCAAsC;SACpD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,sCAAsC;YAC7C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,sCAAsC;YAC7C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,sFAAsF;YAC/F,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,sCAAsC;YAC7C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,sCAAsC;YAC7C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,sCAAsC;SAClD;QACD;YACE,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,sFAAsF;YAC/F,SAAS,EAAE,sCAAsC;SAClD;KACF;CACF,CAAC","sourcesContent":["export const styleSample = `\n .sb-story,.sb-show-main { border: solid 1px #333; height: 500px; width: 800px; padding:40px; position: relative;}\n .pn-chat { position:absolute; right:50px ;bottom:50px; transform-origin: bottom right }\n }`;\n\nexport const hardcodedMessages = \n{\n \"header\": {\n \"body\": null,\n \"button\": null\n },\n \"messages\": [\n {\n \"category\": \"System\",\n \"content\": \"A customer service agent has entered the chat.\",\n \"messageId\": \"14584740-7784-4749-9b39-bce31455ea55\"\n },\n {\n \"category\": \"Bot\",\n \"content\": \"Varmt välkommen till PostNords virtuella assistent. Jag kan hjälpa dig med frågor gällande brev och paket samt skicka dig vidare till vår kundservice.\",\n \"messageId\": \"967ddba6-ba1c-44d1-9725-386b32dc3498\"\n },\n {\n \"category\": \"Bot\",\n \"content\": \"Hur kan jag hjälpa dig?\",\n \"messageId\": \"b26624af-852b-49cf-a3e6-77cc046be71f\"\n },\n {\n \"class\": null,\n \"category\": \"User\",\n \"content\": \"hejsan vart är mitt paket?\",\n \"messageId\": \"74cadc59-86ad-4f11-b4b6-a263aa9dbad9\"\n },\n {\n \"category\": \"Bot\",\n \"content\": \"Om du har ett kollinummer som berör din fråga, skriv gärna det här.\",\n \"messageId\": \"90845d71-2a8e-4b1a-bd45-20de7a2dbe5f\"\n }\n ]\n};\n\nexport const messageObjectReal = {\n header: {\n body: null,\n button: null\n },\n messages: [\n {\n class: null,\n category: \"User\",\n content: \"test\",\n messageId: \"4a703929-4f6c-47df-bfc1-5a4ca6e31531\"\n },\n {\n class: null,\n category: \"User\",\n content: \"test\",\n messageId: \"00000000-0000-0000-0000-000000000000\"\n },\n {\n class: null,\n category: \"User\",\n content: \"m\",\n messageId: \"55d2851f-66d5-47d8-a4f7-1114a22d3d16\"\n },\n {\n class: \"\",\n props: \"1ef8d9da-316b-45de-b56a-ec595b8baef3\",\n category: \"Button\",\n content: \"End Chat\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n class: \"\",\n props: \"9290fec2-bf1f-4713-9060-5f88ff8a7420\",\n category: \"Button\",\n content: \"Chat with Agent\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n category: \"Bot\",\n content: \"Welcome! I am the PN bot. How can I help you today?\\nPlease select an option below :\",\n messageId: \"4cd676a7-5e8f-4781-b263-45a5ab1bc0e1\"\n },\n {\n class: \"\",\n props: \"fb0b3b50-97a0-40f7-872a-fc6d7ed0d379\",\n category: \"Button\",\n content: \"End Chat\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n },\n {\n class: \"\",\n props: \"598e284a-4480-4e09-8f69-6c7046fea704\",\n category: \"Button\",\n content: \"Chat with Agent\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n },\n {\n category: \"Bot\",\n content: \"Welcome! I am the PN bot. How can I help you today?\\nPlease select an option below :\",\n messageId: \"2ecd1b25-8790-40a4-a596-efe0881f7519\"\n }\n ]\n};\n\n"]}
|
|
@@ -48,14 +48,12 @@ export class PnChatService {
|
|
|
48
48
|
async sendMessage(content, itemId, chatId, lastMessageId, messageType) {
|
|
49
49
|
let newLatestMessageId;
|
|
50
50
|
switch (messageType) {
|
|
51
|
-
case 'Text':
|
|
52
|
-
newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);
|
|
53
|
-
break;
|
|
54
51
|
case 'Choice':
|
|
55
52
|
newLatestMessageId = await this.sendChoiceMessage(content, itemId, chatId, lastMessageId);
|
|
56
53
|
break;
|
|
57
54
|
default:
|
|
58
55
|
newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);
|
|
56
|
+
break;
|
|
59
57
|
}
|
|
60
58
|
if (!newLatestMessageId) {
|
|
61
59
|
return lastMessageId;
|