@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.
Files changed (111) hide show
  1. package/dist/cjs/index-b02670c2.js +4 -12
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/pn-chat-message_2.cjs.entry.js +2 -1
  4. package/dist/cjs/pn-chat-message_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/pn-chat.cjs.entry.js +1 -1
  6. package/dist/cjs/{pn-chat.service-eaf6ed50.js → pn-chat.service-5a8d89b9.js} +2 -4
  7. package/dist/cjs/pn-chat.service-5a8d89b9.js.map +1 -0
  8. package/dist/cjs/pn-market-web-components.cjs.js +1 -1
  9. package/dist/cjs/pn-marketweb-table.cjs.entry.js +37 -29
  10. package/dist/cjs/pn-marketweb-table.cjs.entry.js.map +1 -1
  11. package/dist/cjs/pn-usp-promoter.cjs.entry.js +1 -1
  12. package/dist/collection/collection-manifest.json +1 -3
  13. package/dist/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +2 -1
  14. package/dist/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js.map +1 -1
  15. package/dist/collection/components/widgets/pn-chat/pn-chat-stories-constants.js +23 -163
  16. package/dist/collection/components/widgets/pn-chat/pn-chat-stories-constants.js.map +1 -1
  17. package/dist/collection/components/widgets/pn-chat/pn-chat.service.js +1 -3
  18. package/dist/collection/components/widgets/pn-chat/pn-chat.service.js.map +1 -1
  19. package/dist/collection/components/widgets/pn-chat/pn-chat.stories.js +4 -4
  20. package/dist/collection/components/widgets/pn-chat/pn-chat.stories.js.map +1 -1
  21. package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.css +10 -1
  22. package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js +2 -2
  23. package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.js.map +1 -1
  24. package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.stories.js +37 -1
  25. package/dist/collection/components/widgets/pn-marketweb-table/pn-marketweb-table.stories.js.map +1 -1
  26. package/dist/collection/components/widgets/pn-marketweb-table/translations.js +33 -25
  27. package/dist/collection/components/widgets/pn-marketweb-table/translations.js.map +1 -1
  28. package/dist/collection/components/widgets/pn-usp-promoter/pn-usp-promoter.js +1 -1
  29. package/dist/collection/globals/types.js.map +1 -1
  30. package/dist/components/pn-chat-message2.js +2 -1
  31. package/dist/components/pn-chat-message2.js.map +1 -1
  32. package/dist/components/pn-chat.service.js +1 -3
  33. package/dist/components/pn-chat.service.js.map +1 -1
  34. package/dist/components/pn-marketweb-search.js +126 -1
  35. package/dist/components/pn-marketweb-search.js.map +1 -1
  36. package/dist/components/pn-marketweb-table.js +36 -28
  37. package/dist/components/pn-marketweb-table.js.map +1 -1
  38. package/dist/components/pn-usp-promoter.js +1 -1
  39. package/dist/esm/index-c311acd6.js +4 -12
  40. package/dist/esm/loader.js +1 -1
  41. package/dist/esm/pn-chat-message_2.entry.js +2 -1
  42. package/dist/esm/pn-chat-message_2.entry.js.map +1 -1
  43. package/dist/esm/pn-chat.entry.js +1 -1
  44. package/dist/esm/{pn-chat.service-f4037d6f.js → pn-chat.service-0def5c4e.js} +2 -4
  45. package/dist/esm/pn-chat.service-0def5c4e.js.map +1 -0
  46. package/dist/esm/pn-market-web-components.js +1 -1
  47. package/dist/esm/pn-marketweb-table.entry.js +37 -29
  48. package/dist/esm/pn-marketweb-table.entry.js.map +1 -1
  49. package/dist/esm/pn-usp-promoter.entry.js +1 -1
  50. package/dist/package.json +1 -1
  51. package/dist/pn-market-web-components/p-3a936c5d.entry.js +2 -0
  52. package/dist/pn-market-web-components/p-3a936c5d.entry.js.map +1 -0
  53. package/dist/pn-market-web-components/p-6bec8d72.js +2 -0
  54. package/dist/pn-market-web-components/p-6bec8d72.js.map +1 -0
  55. package/dist/pn-market-web-components/p-923aa6d2.entry.js +2 -0
  56. package/dist/pn-market-web-components/p-923aa6d2.entry.js.map +1 -0
  57. package/dist/pn-market-web-components/{p-cc7c596e.entry.js → p-a298a263.entry.js} +2 -2
  58. package/dist/pn-market-web-components/{p-f21311ad.entry.js → p-da56370b.entry.js} +2 -2
  59. package/dist/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  60. package/dist/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  61. package/dist/types/components/widgets/pn-chat/pn-chat-message/pn-chat-message.d.ts +1 -0
  62. package/dist/types/components/widgets/pn-chat/pn-chat-stories-constants.d.ts +6 -127
  63. package/dist/types/components/widgets/pn-marketweb-table/translations.d.ts +8 -0
  64. package/dist/types/components.d.ts +0 -100
  65. package/dist/types/globals/types.d.ts +2 -0
  66. package/dist/vscode-data.json +0 -142
  67. package/package.json +1 -1
  68. package/dist/cjs/pn-chat.service-eaf6ed50.js.map +0 -1
  69. package/dist/cjs/pn-search.cjs.entry.js +0 -54
  70. package/dist/cjs/pn-search.cjs.entry.js.map +0 -1
  71. package/dist/cjs/pn-usp-simple.cjs.entry.js +0 -56
  72. package/dist/cjs/pn-usp-simple.cjs.entry.js.map +0 -1
  73. package/dist/collection/components/widgets/pn-search/pn-search.css +0 -140
  74. package/dist/collection/components/widgets/pn-search/pn-search.js +0 -368
  75. package/dist/collection/components/widgets/pn-search/pn-search.js.map +0 -1
  76. package/dist/collection/components/widgets/pn-search/pn-search.stories.js +0 -54
  77. package/dist/collection/components/widgets/pn-search/pn-search.stories.js.map +0 -1
  78. package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.css +0 -116
  79. package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.js +0 -269
  80. package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.js.map +0 -1
  81. package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.stories.js +0 -63
  82. package/dist/collection/components/widgets/pn-usp-simple/pn-usp-simple.stories.js.map +0 -1
  83. package/dist/components/pn-marketweb-search2.js +0 -130
  84. package/dist/components/pn-marketweb-search2.js.map +0 -1
  85. package/dist/components/pn-search.d.ts +0 -11
  86. package/dist/components/pn-search.js +0 -91
  87. package/dist/components/pn-search.js.map +0 -1
  88. package/dist/components/pn-usp-simple.d.ts +0 -11
  89. package/dist/components/pn-usp-simple.js +0 -82
  90. package/dist/components/pn-usp-simple.js.map +0 -1
  91. package/dist/esm/pn-chat.service-f4037d6f.js.map +0 -1
  92. package/dist/esm/pn-search.entry.js +0 -50
  93. package/dist/esm/pn-search.entry.js.map +0 -1
  94. package/dist/esm/pn-usp-simple.entry.js +0 -52
  95. package/dist/esm/pn-usp-simple.entry.js.map +0 -1
  96. package/dist/pn-market-web-components/p-04107723.entry.js +0 -2
  97. package/dist/pn-market-web-components/p-04107723.entry.js.map +0 -1
  98. package/dist/pn-market-web-components/p-10776075.entry.js +0 -2
  99. package/dist/pn-market-web-components/p-10776075.entry.js.map +0 -1
  100. package/dist/pn-market-web-components/p-2fd60147.entry.js +0 -2
  101. package/dist/pn-market-web-components/p-2fd60147.entry.js.map +0 -1
  102. package/dist/pn-market-web-components/p-a079c496.js +0 -2
  103. package/dist/pn-market-web-components/p-a079c496.js.map +0 -1
  104. package/dist/pn-market-web-components/p-e733f44f.entry.js +0 -2
  105. package/dist/pn-market-web-components/p-e733f44f.entry.js.map +0 -1
  106. package/dist/types/components/widgets/pn-search/pn-search.d.ts +0 -29
  107. package/dist/types/components/widgets/pn-search/pn-search.stories.d.ts +0 -7
  108. package/dist/types/components/widgets/pn-usp-simple/pn-usp-simple.d.ts +0 -19
  109. package/dist/types/components/widgets/pn-usp-simple/pn-usp-simple.stories.d.ts +0 -7
  110. /package/dist/pn-market-web-components/{p-cc7c596e.entry.js.map → p-a298a263.entry.js.map} +0 -0
  111. /package/dist/pn-market-web-components/{p-f21311ad.entry.js.map → p-da56370b.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"pn-chat-message2.js","mappings":";;AAAA,MAAM,IAAI,GAAG,w0BAAw0B,CAAC;AAC/0B,MAAM,GAAG,GAAG,IAAI;;ACDvB,MAAM,gBAAgB,GAAG,i8FAAi8F,CAAC;AAC39F,4BAAe,gBAAgB;;MCQlB,aAAa;;;;;;;;IAIhB,SAAS,GAAW,uwDAAuwD,CAAC;IAEpyD,OAAO;QACL,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,QAAQ,IAAI,CAAC,QAAQ;YACnB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC;SACd;QAED,OAAO,IAAI,CAAC;KACb;IAED,eAAe;QACb,QAAQ,IAAI,CAAC,QAAQ;YACnB,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;SACpB;KACF;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,QACE,EAAC,IAAI,qDAAC,KAAK,EAAG,IAAI,CAAC,eAAe,EAAE,IAClC,4DAAK,KAAK,EAAE,qBAAqB,aAAa,EAAE,IAC7C,IAAI,CAAC,OAAO,EAAE,KACb,6DAAM,KAAK,EAAC,UAAU,IACpB,gEAAS,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,iBAAc,MAAM,EAAC,IAAI,EAAC,cAAc,GAAW,CACpI,CACR,EACD,6DAAM,KAAK,EAAE,WAAW,YAAY,EAAE,IACpC,8DAAa,CACR,CACH,CACD,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["node_modules/pn-design-assets/pn-assets/icons/faq.js","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.scss?tag=pn-chat-message","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-.97 0-1.908-.138-2.797-.397-1.242-.36-2.352-.61-3.409-.464l-2.095.29A1 1 0 0 1 2.572 20.3l.289-2.095c.146-1.057-.103-2.167-.464-3.41A10 10 0 0 1 2 12m10-8a8 8 0 0 0-7.683 10.239c.364 1.252.734 2.724.525 4.24l-.108.788.787-.11c1.516-.208 2.988.162 4.24.526.71.206 1.46.317 2.239.317a8 8 0 1 0 0-16m-.034 4.5c-.445 0-.84.285-.981.707l-.037.11a1 1 0 0 1-1.897-.633l.037-.11A3.03 3.03 0 0 1 11.966 6.5h.18C13.734 6.5 15 7.807 15 9.371a2.83 2.83 0 0 1-1.553 2.523.81.81 0 0 0-.447.724V13a1 1 0 1 1-2 0v-.382c0-1.064.6-2.037 1.553-2.512A.83.83 0 0 0 13 9.37a.87.87 0 0 0-.854-.871zm.034 6a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3\" clip-rule=\"evenodd\"/></svg>';\nexport const faq = icon;\n","@import '../../../../globals/main.scss';\n$userChatMessageBackgroundColor: $blue50;\n$userChatMessageTextColor: $gray900;\n$privateChatMessageLinkColor: $blue25;\n$businessChatMessageLinkColor: $coral50;\n\n$message-padding: 1rem 1.6rem;\n\npn-chat-message {\n display: flex;\n text-align: left;\n\n &.user,\n &.buttonresponse {\n justify-content: flex-end;\n }\n\n &.system-message {\n text-align: center;\n justify-content: center;\n }\n\n .message-container {\n border-radius: 0.8rem;\n display: flex;\n gap: 1rem;\n max-width: 75%;\n overflow-x: hidden;\n\n .category {\n width: 2.6rem;\n }\n\n &.bot,\n &.agent {\n .message {\n background-color: $gray50;\n }\n }\n\n &.link {\n flex-basis: 100%;\n\n .message {\n $box-shadow-offset-x: 0px 0.6px 1.8px 0px;\n $box-shadow-offset-y: 0px 3.2px 7.2px 0px;\n\n background-color: $privateChatMessageLinkColor;\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.10), $box-shadow-offset-y rgba(0, 0, 0, 0.13);\n transition: box-shadow ease-in-out 0.5s;\n\n &:hover {\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.2), $box-shadow-offset-y rgba(0, 0, 0, 0.23);\n }\n\n padding: 0;\n\n a {\n color: $black;\n display: flex;\n justify-content: space-between;\n padding: $message-padding;\n text-decoration: none;\n }\n }\n }\n\n &.link .business.message {\n background-color: $businessChatMessageLinkColor;\n }\n\n &.button {\n flex-basis: 100%;\n text-align: center;\n max-width: unset;\n\n .message {\n padding: 0;\n }\n }\n\n &.card {\n border: solid 1px $gray200;\n border-radius: 1.6rem;\n flex-basis: 100%;\n max-width: 100%;\n\n .message {\n display: flex;\n flex-direction: column;\n gap: 0.8rem;\n padding: 1.6rem;\n }\n\n .card-heading {\n font-size: 1.6rem;\n line-height: 2.4rem;\n font-weight: 700;\n }\n\n .cta {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n }\n\n .read-more {\n align-self: flex-start;\n margin-top: auto;\n }\n }\n\n &.user,\n &.buttonresponse {\n .message {\n background-color: $userChatMessageBackgroundColor;\n color: $userChatMessageTextColor;\n border-radius: 0.8rem 0.8rem 0 0.8rem;\n }\n }\n\n .message {\n border-radius: 0 0.8rem 0.8rem 0.8rem;\n display: inline-block;\n flex: 1 1 auto;\n font-size: 1.4rem;\n line-height: 2rem;\n padding: $message-padding;\n word-wrap: break-word;\n overflow-wrap: break-word;\n white-space: normal;\n word-break: break-word;\n\n @media (max-width: 767px) {\n font-size: 1.6rem;\n }\n }\n\n &.agent {\n .category .pn-icon {\n background-color: $blue400;\n color: $white;\n text-align: center;\n border-radius: 50%;\n display: inline-block;\n width: 2.5rem;\n height: 2.5rem;\n font-weight: 500;\n font-size: 1.2rem;\n line-height: 2.6rem;\n }\n }\n }\n\n &[data-card] {\n height: 100%;\n }\n}","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 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\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.category === 'User' ? 'blue700' : '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"],"version":3}
1
+ {"file":"pn-chat-message2.js","mappings":";;AAAA,MAAM,IAAI,GAAG,w0BAAw0B,CAAC;AAC/0B,MAAM,GAAG,GAAG,IAAI;;ACDvB,MAAM,gBAAgB,GAAG,i8FAAi8F,CAAC;AAC39F,4BAAe,gBAAgB;;MCQlB,aAAa;;;;;;;;IAKhB,SAAS,GAAW,uwDAAuwD,CAAC;IAC5xD,OAAO,GAAG,SAAS,CAAC;IAE5B,OAAO;QACL,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,QAAQ,IAAI,CAAC,QAAQ;YACnB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC;SACd;QAED,OAAO,IAAI,CAAC;KACb;IAED,eAAe;QACb,QAAQ,IAAI,CAAC,QAAQ;YACnB,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;SACpB;KACF;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,QACE,EAAC,IAAI,qDAAC,KAAK,EAAG,IAAI,CAAC,eAAe,EAAE,IAClC,4DAAK,KAAK,EAAE,qBAAqB,aAAa,EAAE,IAC7C,IAAI,CAAC,OAAO,EAAE,KACb,6DAAM,KAAK,EAAC,UAAU,IACpB,gEAAS,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,iBAAc,MAAM,EAAC,IAAI,EAAC,cAAc,GAAW,CAChG,CACR,EACD,6DAAM,KAAK,EAAE,WAAW,YAAY,EAAE,IACpC,8DAAa,CACR,CACH,CACD,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["node_modules/pn-design-assets/pn-assets/icons/faq.js","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.scss?tag=pn-chat-message","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-.97 0-1.908-.138-2.797-.397-1.242-.36-2.352-.61-3.409-.464l-2.095.29A1 1 0 0 1 2.572 20.3l.289-2.095c.146-1.057-.103-2.167-.464-3.41A10 10 0 0 1 2 12m10-8a8 8 0 0 0-7.683 10.239c.364 1.252.734 2.724.525 4.24l-.108.788.787-.11c1.516-.208 2.988.162 4.24.526.71.206 1.46.317 2.239.317a8 8 0 1 0 0-16m-.034 4.5c-.445 0-.84.285-.981.707l-.037.11a1 1 0 0 1-1.897-.633l.037-.11A3.03 3.03 0 0 1 11.966 6.5h.18C13.734 6.5 15 7.807 15 9.371a2.83 2.83 0 0 1-1.553 2.523.81.81 0 0 0-.447.724V13a1 1 0 1 1-2 0v-.382c0-1.064.6-2.037 1.553-2.512A.83.83 0 0 0 13 9.37a.87.87 0 0 0-.854-.871zm.034 6a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3\" clip-rule=\"evenodd\"/></svg>';\nexport const faq = icon;\n","@import '../../../../globals/main.scss';\n$userChatMessageBackgroundColor: $blue50;\n$userChatMessageTextColor: $gray900;\n$privateChatMessageLinkColor: $blue25;\n$businessChatMessageLinkColor: $coral50;\n\n$message-padding: 1rem 1.6rem;\n\npn-chat-message {\n display: flex;\n text-align: left;\n\n &.user,\n &.buttonresponse {\n justify-content: flex-end;\n }\n\n &.system-message {\n text-align: center;\n justify-content: center;\n }\n\n .message-container {\n border-radius: 0.8rem;\n display: flex;\n gap: 1rem;\n max-width: 75%;\n overflow-x: hidden;\n\n .category {\n width: 2.6rem;\n }\n\n &.bot,\n &.agent {\n .message {\n background-color: $gray50;\n }\n }\n\n &.link {\n flex-basis: 100%;\n\n .message {\n $box-shadow-offset-x: 0px 0.6px 1.8px 0px;\n $box-shadow-offset-y: 0px 3.2px 7.2px 0px;\n\n background-color: $privateChatMessageLinkColor;\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.10), $box-shadow-offset-y rgba(0, 0, 0, 0.13);\n transition: box-shadow ease-in-out 0.5s;\n\n &:hover {\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.2), $box-shadow-offset-y rgba(0, 0, 0, 0.23);\n }\n\n padding: 0;\n\n a {\n color: $black;\n display: flex;\n justify-content: space-between;\n padding: $message-padding;\n text-decoration: none;\n }\n }\n }\n\n &.link .business.message {\n background-color: $businessChatMessageLinkColor;\n }\n\n &.button {\n flex-basis: 100%;\n text-align: center;\n max-width: unset;\n\n .message {\n padding: 0;\n }\n }\n\n &.card {\n border: solid 1px $gray200;\n border-radius: 1.6rem;\n flex-basis: 100%;\n max-width: 100%;\n\n .message {\n display: flex;\n flex-direction: column;\n gap: 0.8rem;\n padding: 1.6rem;\n }\n\n .card-heading {\n font-size: 1.6rem;\n line-height: 2.4rem;\n font-weight: 700;\n }\n\n .cta {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n }\n\n .read-more {\n align-self: flex-start;\n margin-top: auto;\n }\n }\n\n &.user,\n &.buttonresponse {\n .message {\n background-color: $userChatMessageBackgroundColor;\n color: $userChatMessageTextColor;\n border-radius: 0.8rem 0.8rem 0 0.8rem;\n }\n }\n\n .message {\n border-radius: 0 0.8rem 0.8rem 0.8rem;\n display: inline-block;\n flex: 1 1 auto;\n font-size: 1.4rem;\n line-height: 2rem;\n padding: $message-padding;\n word-wrap: break-word;\n overflow-wrap: break-word;\n white-space: normal;\n word-break: break-word;\n\n @media (max-width: 767px) {\n font-size: 1.6rem;\n }\n }\n\n &.agent {\n .category .pn-icon {\n background-color: $blue400;\n color: $white;\n text-align: center;\n border-radius: 50%;\n display: inline-block;\n width: 2.5rem;\n height: 2.5rem;\n font-weight: 500;\n font-size: 1.2rem;\n line-height: 2.6rem;\n }\n }\n }\n\n &[data-card] {\n height: 100%;\n }\n}","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"],"version":3}
@@ -49,14 +49,12 @@ class PnChatService {
49
49
  async sendMessage(content, itemId, chatId, lastMessageId, messageType) {
50
50
  let newLatestMessageId;
51
51
  switch (messageType) {
52
- case 'Text':
53
- newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);
54
- break;
55
52
  case 'Choice':
56
53
  newLatestMessageId = await this.sendChoiceMessage(content, itemId, chatId, lastMessageId);
57
54
  break;
58
55
  default:
59
56
  newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);
57
+ break;
60
58
  }
61
59
  if (!newLatestMessageId) {
62
60
  return lastMessageId;
@@ -1 +1 @@
1
- {"file":"pn-chat.service.js","mappings":"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","names":[],"sources":["src/components/widgets/pn-chat/pn-chat.service.ts"],"sourcesContent":["import { FetchHelper } from '@/globals/FetchHelper';\nimport { ChatMessage, ChatMessages, MessageType } from './types';\nimport { ChatParameters, ChatStartParameters, ChatMessageParameters, ChatUpdateParameters, ChatLastMessageParameters } from './pn-chat.models';\n\nexport class PnChatService {\n private readonly _endpoint;\n private readonly _market;\n private readonly _language;\n private readonly _currentUrl;\n private fetchHelper = new FetchHelper('PnChatService');\n private readonly _startChatPath = `/api/sfchat/start-chat`;\n private readonly _fetchChatMessagesPath = `/api/sfchat/get-conversation-entries`;\n private readonly _sendTextPath = `/api/sfchat/send-text-message`;\n private readonly _sendChoicePath = `/api/sfchat/send-choice-message`;\n private readonly _updateLastMessagePath = `/api/sfchat/update-last-message-id`;\n private readonly _hasNewMessagesPath = `/api/sfchat/has-new-messages`;\n\n constructor(endpoint: string, market: string, language: string) {\n this._endpoint = this.formatEndpoint(endpoint);\n this._market = market;\n this._language = language;\n this._currentUrl = window.location.href;\n }\n\n async startChat(chatId: string, itemId: string): Promise<string> {\n let model: ChatStartParameters = \n {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._startChatPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false\n )) as string;\n\n return this.handleResponse<string>(data, chatId);\n }\n\n async fetchMessages(chatId: string, prevMessageData: ChatMessages) : Promise<ChatMessages> {\n if (!chatId) {\n return prevMessageData;\n }\n\n let model: ChatParameters = {\n market: this._market,\n language: this._language,\n chatIdString: chatId\n };\n\n const fetchUrl = this._endpoint + this._fetchChatMessagesPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n if (!data) {\n return prevMessageData;\n }\n \n return this.handleResponse<ChatMessages>(data, prevMessageData);\n }\n\n async sendMessage(content : string, itemId : string, chatId: string, lastMessageId: string, messageType: MessageType) : Promise<string> {\n let newLatestMessageId;\n\n switch (messageType) {\n case 'Text':\n newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);\n break;\n case 'Choice':\n newLatestMessageId = await this.sendChoiceMessage(content, itemId, chatId, lastMessageId);\n break;\n default:\n newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);\n }\n\n if (!newLatestMessageId) {\n return lastMessageId;\n }\n\n if (newLatestMessageId.includes(\",\")) {\n newLatestMessageId = newLatestMessageId.substring(newLatestMessageId.lastIndexOf(\",\") + 1);\n }\n\n return newLatestMessageId;\n }\n\n async updateLastMessageId(chatId: string, lastMessageId: string) {\n let model: ChatLastMessageParameters = {\n chatIdString: chatId,\n latestMessageIdString: lastMessageId\n };\n\n const fetchUrl = this._endpoint + this._updateLastMessagePath;\n await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n );\n }\n\n async hasNewMessages(itemId : string) : Promise<boolean> {\n let model: ChatStartParameters = {\n language: this._language,\n market: this._market,\n itemId: itemId,\n chatIdString: \"\",\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._hasNewMessagesPath;\n let data = await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n ) as string;\n\n if (!data) {\n return false;\n }\n\n return JSON.parse(data) as boolean;\n }\n\n private async sendTextMessage(content : string, itemId : string, chatId: string, defaultReturn: string) : Promise<string> {\n if (!chatId || !content) {\n return defaultReturn;\n }\n\n let model: ChatMessageParameters = {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n content: content,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._sendTextPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n return this.handleResponse<string>(data, defaultReturn)?.id ?? defaultReturn;\n }\n\n private async sendChoiceMessage(content : string, itemId : string, chatId: string, defaultReturn: string) : Promise<string> {\n if (!chatId || !content) {\n return defaultReturn;\n }\n\n let model: ChatMessageParameters = \n {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n content: content,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._sendChoicePath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n return this.handleResponse<string>(data, defaultReturn)?.id ?? defaultReturn;\n }\n\n private formatEndpoint(endpoint: string) : string {\n return endpoint.lastIndexOf('/') === endpoint.length - 1 ? endpoint.substring(0, endpoint.length - 1) : endpoint;\n }\n\n private handleResponse<T>(data : any, defaultReturn : any, checkForArray: boolean = false) {\n if (!data) {\n return defaultReturn;\n }\n\n let parsedData = JSON.parse(data) as T;\n if (!parsedData || checkForArray && !Array.isArray(parsedData)) {\n return defaultReturn;\n }\n\n return parsedData;\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 'CustomValidateAntiForgeryToken': \"01001101010001010100111101010111\"\n },\n body: JSON.stringify(model)\n };\n }\n\n GetLastMessageId(messages : ChatMessage[], lastMessageId : string) {\n return messages?.at(-1)?.messageId ?? lastMessageId;\n }\n}\n"],"version":3}
1
+ {"file":"pn-chat.service.js","mappings":"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","names":[],"sources":["src/components/widgets/pn-chat/pn-chat.service.ts"],"sourcesContent":["import { FetchHelper } from '@/globals/FetchHelper';\nimport { ChatMessage, ChatMessages, MessageType } from './types';\nimport { ChatParameters, ChatStartParameters, ChatMessageParameters, ChatUpdateParameters, ChatLastMessageParameters } from './pn-chat.models';\n\nexport class PnChatService {\n private readonly _endpoint;\n private readonly _market;\n private readonly _language;\n private readonly _currentUrl;\n private fetchHelper = new FetchHelper('PnChatService');\n private readonly _startChatPath = `/api/sfchat/start-chat`;\n private readonly _fetchChatMessagesPath = `/api/sfchat/get-conversation-entries`;\n private readonly _sendTextPath = `/api/sfchat/send-text-message`;\n private readonly _sendChoicePath = `/api/sfchat/send-choice-message`;\n private readonly _updateLastMessagePath = `/api/sfchat/update-last-message-id`;\n private readonly _hasNewMessagesPath = `/api/sfchat/has-new-messages`;\n\n constructor(endpoint: string, market: string, language: string) {\n this._endpoint = this.formatEndpoint(endpoint);\n this._market = market;\n this._language = language;\n this._currentUrl = window.location.href;\n }\n\n async startChat(chatId: string, itemId: string): Promise<string> {\n let model: ChatStartParameters = \n {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._startChatPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false\n )) as string;\n\n return this.handleResponse<string>(data, chatId);\n }\n\n async fetchMessages(chatId: string, prevMessageData: ChatMessages) : Promise<ChatMessages> {\n if (!chatId) {\n return prevMessageData;\n }\n\n let model: ChatParameters = {\n market: this._market,\n language: this._language,\n chatIdString: chatId\n };\n\n const fetchUrl = this._endpoint + this._fetchChatMessagesPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n if (!data) {\n return prevMessageData;\n }\n \n return this.handleResponse<ChatMessages>(data, prevMessageData);\n }\n\n async sendMessage(content : string, itemId : string, chatId: string, lastMessageId: string, messageType: MessageType) : Promise<string> {\n let newLatestMessageId;\n\n switch (messageType) {\n case 'Choice':\n newLatestMessageId = await this.sendChoiceMessage(content, itemId, chatId, lastMessageId);\n break;\n default:\n newLatestMessageId = await this.sendTextMessage(content, itemId, chatId, lastMessageId);\n break;\n }\n\n if (!newLatestMessageId) {\n return lastMessageId;\n }\n\n if (newLatestMessageId.includes(\",\")) {\n newLatestMessageId = newLatestMessageId.substring(newLatestMessageId.lastIndexOf(\",\") + 1);\n }\n\n return newLatestMessageId;\n }\n\n async updateLastMessageId(chatId: string, lastMessageId: string) {\n let model: ChatLastMessageParameters = {\n chatIdString: chatId,\n latestMessageIdString: lastMessageId\n };\n\n const fetchUrl = this._endpoint + this._updateLastMessagePath;\n await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n );\n }\n\n async hasNewMessages(itemId : string) : Promise<boolean> {\n let model: ChatStartParameters = {\n language: this._language,\n market: this._market,\n itemId: itemId,\n chatIdString: \"\",\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._hasNewMessagesPath;\n let data = await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n ) as string;\n\n if (!data) {\n return false;\n }\n\n return JSON.parse(data) as boolean;\n }\n\n private async sendTextMessage(content : string, itemId : string, chatId: string, defaultReturn: string) : Promise<string> {\n if (!chatId || !content) {\n return defaultReturn;\n }\n\n let model: ChatMessageParameters = {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n content: content,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._sendTextPath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n return this.handleResponse<string>(data, defaultReturn)?.id ?? defaultReturn;\n }\n\n private async sendChoiceMessage(content : string, itemId : string, chatId: string, defaultReturn: string) : Promise<string> {\n if (!chatId || !content) {\n return defaultReturn;\n }\n\n let model: ChatMessageParameters = \n {\n market: this._market,\n language: this._language,\n chatIdString: chatId,\n content: content,\n itemId: itemId,\n currentUrl: this._currentUrl\n };\n\n const fetchUrl = this._endpoint + this._sendChoicePath;\n const data = (await this.fetchHelper.fetchJson(\n fetchUrl,\n this.getRequestInit(model),\n false,\n )) as string;\n\n return this.handleResponse<string>(data, defaultReturn)?.id ?? defaultReturn;\n }\n\n private formatEndpoint(endpoint: string) : string {\n return endpoint.lastIndexOf('/') === endpoint.length - 1 ? endpoint.substring(0, endpoint.length - 1) : endpoint;\n }\n\n private handleResponse<T>(data : any, defaultReturn : any, checkForArray: boolean = false) {\n if (!data) {\n return defaultReturn;\n }\n\n let parsedData = JSON.parse(data) as T;\n if (!parsedData || checkForArray && !Array.isArray(parsedData)) {\n return defaultReturn;\n }\n\n return parsedData;\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 'CustomValidateAntiForgeryToken': \"01001101010001010100111101010111\"\n },\n body: JSON.stringify(model)\n };\n }\n\n GetLastMessageId(messages : ChatMessage[], lastMessageId : string) {\n return messages?.at(-1)?.messageId ?? lastMessageId;\n }\n}\n"],"version":3}
@@ -1,4 +1,129 @@
1
- import { P as PnMarketwebSearch$1, d as defineCustomElement$1 } from './pn-marketweb-search2.js';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { c as close_small } from './close_small.js';
3
+ import { s as search } from './search.js';
4
+
5
+ const pnMarketwebSearchCss = "pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}:host{display:inline-flex}:host>pn-button{margin-left:0.35em}:host>pn-button button .pn-button-bg{transition:width 0.2s cubic-bezier(0.7, 0, 0.3, 1) 0.2s, background 0.1s, box-shadow 0.1s, left 0.2s, transform 0.2s}:host>pn-button[data-loading=true] .pn-button-bg{left:0;transform:translateX(0);transition:width 0.2s cubic-bezier(0.7, 0, 0.3, 1) 0.2s, background 0.1s, box-shadow 0.1s}:host>pn-button[data-loading=true] pn-spinner{left:0.75em}:host input{padding:0.75em;min-height:3em;font-size:1em;height:100%;font-weight:500;-webkit-font-smoothing:antialiased;outline:none;border-radius:3em;border:0.1rem solid #5e554a;transition:box-shadow 0.15s, border 0.15s;color:#000000;width:100%}:host input::-webkit-search-cancel-button{display:none}:host input::placeholder{color:#969087;font-weight:normal}:host input:focus{border:0.1rem solid #005d92;box-shadow:0 0 0 0.2rem #fff, 0 0 0 0.4rem #005d92}:host input:hover{border:0.1rem solid #00a0d6}:host input:disabled{background:#f3f2f2;border:none}:host>.input-container{width:100%;position:relative}:host>.input-container .button-container{position:absolute;top:0;right:0;background:transparent;width:3em;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}:host[list] :host>.input-container .button-container{display:none}:host>.input-container button{position:absolute;left:50%;top:50%;transform:translate(100%, -50%);background:#ffffff;border:none;color:#005d92;padding:0.3rem;margin:0;font-size:0.875em;border-radius:50%;outline:none;transition:border 0.1s, background 0.2s, box-shadow 0.1s, transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s, opacity 0.2s;border:0.1rem solid transparent;-webkit-tap-highlight-color:transparent}:host>.input-container button.clear,:host>.input-container button.search{cursor:pointer}:host>.input-container button:focus{box-shadow:0 0 0 0.2rem #fff, 0 0 0 0.4rem #005d92}:host>.input-container button:hover,:host>.input-container button:focus{background:#e0f8ff}:host>.input-container button:active{background:#005d92}:host>.input-container button:active pn-icon svg,:host>.input-container button:active pn-icon svg path{fill:white}:host .searching button.search{transform:translate(150%, -50%)}:host .searching button.clear{transform:translate(-50%, -50%)}:host .button-none input,:host .button-icon-inline input{padding-right:3.3em}:host .button-none pn-spinner,:host .button-icon-inline pn-spinner{position:absolute;left:50%;top:50%;transform:translate(100%, -50%);transition:transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s}:host .button-none button.search,:host .button-icon-inline button.search{transform:translate(-50%, -50%)}:host .button-none.loading button,:host .button-icon-inline.loading button{transform:translate(100%, -50%)}:host .button-none.loading pn-spinner,:host .button-icon-inline.loading pn-spinner{transform:translate(-50%, -50%)}:host .button-none.searching button.search{transform:translate(100%, -50%)}:host .button-icon>pn-button[data-loading=true] .pn-button-bg{left:50%;transform:translateX(-50%)}";
6
+ const PnMarketwebSearchStyle0 = pnMarketwebSearchCss;
7
+
8
+ const PnMarketwebSearch$1 = /*@__PURE__*/ proxyCustomElement(class PnMarketwebSearch extends HTMLElement {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.__attachShadow();
13
+ this.search = createEvent(this, "search", 7);
14
+ this.update = createEvent(this, "update", 7);
15
+ this.disabled = false;
16
+ this.placeholder = null;
17
+ this.inputid = null;
18
+ this.name = null;
19
+ this.autocomplete = null;
20
+ this.list = null;
21
+ this.value = null;
22
+ this.label = null;
23
+ this.loading = false;
24
+ this.button = '';
25
+ this.light = false;
26
+ this.suggestionObserver = null;
27
+ this.hasClonedInput = false;
28
+ this.listSuggestion = [];
29
+ }
30
+ get hostElement() { return this; }
31
+ /** This is emitted on search submission both with keyboard and mouse */
32
+ search;
33
+ /** custom event that handles both clearing and input to have the option of just binding listeners to one event instead of two. */
34
+ update;
35
+ inputHandler() {
36
+ this.update.emit(this.value);
37
+ }
38
+ emitSearch(e) {
39
+ if (e.type === 'click' || (e.type === 'keydown' && e.key === 'Enter')) {
40
+ // We prevent the native search event since it's not supported in IE and FF, then we emit our own instead
41
+ e.preventDefault();
42
+ this.search.emit(this.value);
43
+ }
44
+ }
45
+ setVal(e) {
46
+ this.value = e.target.value;
47
+ }
48
+ clearInput(e) {
49
+ this.value = '';
50
+ this.update.emit(this.value);
51
+ const closestInputField = e.target.closest("div.input-container")?.querySelector("input[type=search]");
52
+ closestInputField?.focus();
53
+ }
54
+ getClassNames() {
55
+ let classNames = '';
56
+ const buttonTypes = ['none', 'icon', 'icon-inline'];
57
+ if (this.value)
58
+ classNames += 'searching ';
59
+ if (this.loading)
60
+ classNames += 'loading ';
61
+ if (buttonTypes.includes(this.button))
62
+ classNames += `button-${this.button} `;
63
+ return classNames;
64
+ }
65
+ componentWillRender() {
66
+ this.cloneListContent();
67
+ this.autocompleteEventBinding();
68
+ }
69
+ onSuggestionUpdate() {
70
+ this.cloneListContent();
71
+ }
72
+ autocompleteEventBinding() {
73
+ if (this.suggestionObserver !== null || !this.list || !this.hostElement || !document.getElementById(this.list)) {
74
+ return;
75
+ }
76
+ const targetNode = document.getElementById(this.list);
77
+ this.suggestionObserver = new MutationObserver(this.onSuggestionUpdate.bind(this));
78
+ this.suggestionObserver.observe(targetNode, { attributes: true, childList: true, subtree: true });
79
+ }
80
+ cloneListContent() {
81
+ if (!this.list || !this.hostElement || !document.getElementById(this.list)) {
82
+ return;
83
+ }
84
+ const options = [...document.getElementById(this.list).querySelectorAll('option')];
85
+ this.listSuggestion = options.map((item) => {
86
+ if (item.hasAttribute('value')) {
87
+ return item.getAttribute('value');
88
+ }
89
+ return item.innerText;
90
+ });
91
+ }
92
+ render() {
93
+ return (h(Host, { key: 'bd91a32439d948f4362fd667a2a897e00b480a5b' }, h("div", { key: 'dd45a9899d15079c13c060e4cfd75c60730ac922', class: `input-container ${this.getClassNames()}`, "data-haslist": (this.list !== null) + '' }, h("input", { key: '0e283a03de256f134b2d8936fdf2a4d2dd206f2c', type: "search", value: this.value, id: this.inputid, name: this.name, placeholder: this.placeholder, disabled: this.disabled, autocomplete: this.autocomplete, list: this.list, onKeyDown: e => this.emitSearch(e), onInput: e => this.setVal(e) }), h("div", { key: '1eff04ef905ee36aa2e7d7976e522a8bc114681b', class: "button-container" }, (this.button === 'none' || this.button === 'icon-inline') && (h("button", { key: '46f1d1b36518d0b7cc5430efa9167b626d7c80eb', class: "search", tabindex: this.button === 'icon-inline' ? '0' : '-1', onClick: e => this.emitSearch(e), "aria-label": "search", title: "search" }, h("pn-icon", { key: 'ba9cb2a21f9561d79ab779058acaf83f0be7da7a', icon: search, color: "blue700" }))), this.button !== 'icon-inline' && (h("button", { key: '5b537c0cb6227ad2f3fb1d7227c698436510a5b9', class: "clear", "aria-label": "clear", title: "clear search field", tabindex: this.value && (!this.loading || this.button !== 'none') ? '0' : '-1', onClick: (e) => this.clearInput(e) }, h("pn-icon", { key: '70873e93689282f189e65b68a9fa980ad6f9158b', icon: close_small, color: "blue700" }))), this.button === 'none' || (this.button === 'icon-inline' && h("pn-spinner", { key: '6fe9c471b0b67f785e3e5a98ab79c93dacd32d80' })))), this.button !== 'none' && this.button !== 'icon-inline' && (h("pn-button", { key: 'a3671a3fbca963021a75540284144d1cea41c8ab', onClick: e => this.emitSearch(e), loading: this.loading, icon: search, appearance: this.light ? 'light' : 'dark', tooltip: this.button === 'icon' ? this.label : null }, this.label)), this.list && (h("datalist", { key: '7e0bfeda8401c388ebeb3e0e185b52e09636ac8d', id: this.list }, this.listSuggestion.map(item => {
94
+ return h("option", null, item);
95
+ })))));
96
+ }
97
+ static get style() { return PnMarketwebSearchStyle0; }
98
+ }, [1, "pn-marketweb-search", {
99
+ "disabled": [4],
100
+ "placeholder": [1],
101
+ "inputid": [1],
102
+ "name": [1],
103
+ "autocomplete": [1],
104
+ "list": [1],
105
+ "value": [1],
106
+ "label": [1],
107
+ "loading": [4],
108
+ "button": [1],
109
+ "light": [4],
110
+ "suggestionObserver": [32],
111
+ "hasClonedInput": [32],
112
+ "listSuggestion": [32]
113
+ }, [[0, "input", "inputHandler"]]]);
114
+ function defineCustomElement$1() {
115
+ if (typeof customElements === "undefined") {
116
+ return;
117
+ }
118
+ const components = ["pn-marketweb-search"];
119
+ components.forEach(tagName => { switch (tagName) {
120
+ case "pn-marketweb-search":
121
+ if (!customElements.get(tagName)) {
122
+ customElements.define(tagName, PnMarketwebSearch$1);
123
+ }
124
+ break;
125
+ } });
126
+ }
2
127
 
3
128
  const PnMarketwebSearch = PnMarketwebSearch$1;
4
129
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"pn-marketweb-search.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
1
+ {"file":"pn-marketweb-search.js","mappings":"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","names":["PnMarketwebSearch"],"sources":["src/components/input/pn-marketweb-search/pn-marketweb-search.scss?tag=pn-marketweb-search&encapsulation=shadow","src/components/input/pn-marketweb-search/pn-marketweb-search.tsx"],"sourcesContent":["@import '../../../globals/main.scss';\n\n:host {\n display: inline-flex;\n}\n\n:host > pn-button {\n margin-left: 0.35em;\n button {\n // justify-content: flex-start;\n\n .pn-button-bg {\n transition:\n width 0.2s cubic-bezier(0.7, 0, 0.3, 1) 0.2s,\n background 0.1s,\n box-shadow 0.1s,\n left 0.2s,\n transform 0.2s;\n }\n }\n\n &[data-loading='true'] {\n .pn-button-bg {\n left: 0;\n transform: translateX(0);\n transition:\n width 0.2s cubic-bezier(0.7, 0, 0.3, 1) 0.2s,\n background 0.1s,\n box-shadow 0.1s;\n }\n\n pn-spinner {\n left: 0.75em;\n }\n }\n}\n\n:host input {\n padding: 0.75em;\n min-height: 3em;\n font-size: 1em;\n height: 100%;\n font-weight: 500;\n -webkit-font-smoothing: antialiased;\n outline: none;\n border-radius: 3em;\n border: 0.1rem solid $gray700;\n transition:\n box-shadow 0.15s,\n border 0.15s;\n color: $black;\n width: 100%;\n\n &::-webkit-search-cancel-button {\n display: none;\n }\n\n &::placeholder {\n color: $gray400;\n font-weight: normal;\n }\n\n &:focus {\n border: 0.1rem solid $blue700;\n box-shadow:\n 0 0 0 0.2rem #fff,\n 0 0 0 0.4rem $blue700;\n }\n\n &:hover {\n border: 0.1rem solid $blue400;\n }\n\n &:disabled {\n background: $gray50;\n border: none;\n }\n}\n\n:host > .input-container {\n width: 100%;\n position: relative;\n\n .button-container {\n :host[list] & {\n display: none;\n }\n position: absolute;\n top: 0;\n right: 0;\n background: transparent;\n width: 3em;\n height: 100%;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n button {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(100%, -50%);\n background: $white;\n border: none;\n color: $blue700;\n padding: 0.3rem;\n margin: 0;\n font-size: 0.875em;\n border-radius: 50%;\n outline: none;\n transition:\n border 0.1s,\n background 0.2s,\n box-shadow 0.1s,\n transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s,\n opacity 0.2s;\n border: 0.1rem solid transparent;\n -webkit-tap-highlight-color: transparent;\n\n &.clear,\n &.search {\n cursor: pointer;\n }\n\n &:focus {\n box-shadow:\n 0 0 0 0.2rem #fff,\n 0 0 0 0.4rem $blue700;\n }\n\n &:hover,\n &:focus {\n background: $blue50;\n }\n\n &:active {\n background: $blue700;\n\n pn-icon svg,\n pn-icon svg path {\n fill: white;\n }\n }\n }\n}\n\n:host .searching {\n button.search {\n transform: translate(150%, -50%);\n }\n\n button.clear {\n transform: translate(-50%, -50%);\n }\n}\n\n/*---------------------------------------Button Variants-------------------------------------------*/\n:host .button-none,\n:host .button-icon-inline {\n input {\n padding-right: 3.3em;\n }\n\n pn-spinner {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(100%, -50%);\n transition: transform cubic-bezier(0.7, 0, 0.3, 1) 0.2s;\n }\n\n button.search {\n transform: translate(-50%, -50%);\n }\n\n &.loading {\n button {\n transform: translate(100%, -50%);\n }\n\n pn-spinner {\n transform: translate(-50%, -50%);\n }\n }\n}\n\n:host .button-none.searching button.search {\n transform: translate(100%, -50%);\n}\n\n:host .button-icon > pn-button {\n &[data-loading='true'] {\n .pn-button-bg {\n left: 50%;\n transform: translateX(-50%);\n }\n }\n}\n/*---------------------------------------/Button Variants-------------------------------------------*/\n","import { Component, Prop, h, Host, Event, EventEmitter, Element, Listen, State } from '@stencil/core';\nimport { close_small, search } from 'pn-design-assets/pn-assets/icons.js';\n\n@Component({\n tag: 'pn-marketweb-search',\n styleUrl: 'pn-marketweb-search.scss',\n shadow: true,\n})\nexport class PnMarketwebSearch {\n @Prop() disabled: boolean = false;\n @Prop() placeholder: string = null;\n @Prop() inputid: string = null;\n @Prop() name: string = null;\n @Prop() autocomplete: string = null;\n @Prop() list: string = null;\n @Prop() value: string = null;\n /** Label for the button */\n @Prop() label: string = null;\n /** Loading animation */\n @Prop() loading: boolean = false;\n /** Button type, options are 'none' for no button, 'icon' for a labelless button with just a search icon and 'icon-inline' for a search button inside of the search field (this last option disables the clear field button) */\n @Prop() button: string = '';\n /** Light instead of dark search button */\n @Prop() light: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n /** This is emitted on search submission both with keyboard and mouse */\n @Event() search: EventEmitter;\n /** custom event that handles both clearing and input to have the option of just binding listeners to one event instead of two. */\n @Event() update: EventEmitter;\n\n @Listen('input')\n inputHandler() {\n this.update.emit(this.value);\n }\n\n emitSearch(e) {\n if (e.type === 'click' || (e.type === 'keydown' && e.key === 'Enter')) {\n // We prevent the native search event since it's not supported in IE and FF, then we emit our own instead\n e.preventDefault();\n this.search.emit(this.value);\n }\n }\n\n setVal(e) {\n this.value = e.target.value;\n }\n\n clearInput(e) {\n this.value = '';\n this.update.emit(this.value);\n const closestInputField = e.target.closest(\"div.input-container\")?.querySelector(\"input[type=search]\");\n closestInputField?.focus();\n }\n\n getClassNames() {\n let classNames = '';\n\n const buttonTypes = ['none', 'icon', 'icon-inline'];\n if (this.value) classNames += 'searching ';\n if (this.loading) classNames += 'loading ';\n if (buttonTypes.includes(this.button)) classNames += `button-${this.button} `;\n\n return classNames;\n }\n @State() suggestionObserver: MutationObserver = null;\n @State() hasClonedInput: boolean = false;\n @State() listSuggestion: string[] = [];\n componentWillRender() {\n this.cloneListContent();\n this.autocompleteEventBinding();\n }\n\n onSuggestionUpdate() {\n this.cloneListContent();\n }\n\n autocompleteEventBinding() {\n if (this.suggestionObserver !== null || !this.list || !this.hostElement || !document.getElementById(this.list)) {\n return;\n }\n const targetNode = document.getElementById(this.list);\n this.suggestionObserver = new MutationObserver(this.onSuggestionUpdate.bind(this));\n this.suggestionObserver.observe(targetNode, { attributes: true, childList: true, subtree: true });\n }\n\n cloneListContent() {\n if (!this.list || !this.hostElement || !document.getElementById(this.list)) {\n return;\n }\n const options = [...document.getElementById(this.list).querySelectorAll('option')];\n this.listSuggestion = options.map((item: HTMLOptionElement) => {\n if (item.hasAttribute('value')) {\n return item.getAttribute('value');\n }\n return item.innerText;\n });\n }\n\n render() {\n return (\n <Host>\n <div class={`input-container ${this.getClassNames()}`} data-haslist={(this.list !== null) + ''}>\n <input\n type=\"search\"\n value={this.value}\n id={this.inputid}\n name={this.name}\n placeholder={this.placeholder}\n disabled={this.disabled}\n autocomplete={this.autocomplete}\n list={this.list}\n onKeyDown={e => this.emitSearch(e)}\n onInput={e => this.setVal(e)}\n />\n\n <div class=\"button-container\">\n {(this.button === 'none' || this.button === 'icon-inline') && (\n <button class=\"search\" tabindex={this.button === 'icon-inline' ? '0' : '-1'} onClick={e => this.emitSearch(e)} aria-label=\"search\" title=\"search\">\n <pn-icon icon={search} color=\"blue700\"></pn-icon>\n </button>\n )}\n {this.button !== 'icon-inline' && (\n <button\n class=\"clear\"\n aria-label=\"clear\"\n title=\"clear search field\"\n tabindex={this.value && (!this.loading || this.button !== 'none') ? '0' : '-1'}\n onClick={(e) => this.clearInput(e)}\n >\n <pn-icon icon={close_small} color=\"blue700\"></pn-icon>\n </button>\n )}\n\n {this.button === 'none' || (this.button === 'icon-inline' && <pn-spinner></pn-spinner>)}\n </div>\n </div>\n\n {this.button !== 'none' && this.button !== 'icon-inline' && (\n <pn-button\n onClick={e => this.emitSearch(e)}\n loading={this.loading}\n icon={search}\n appearance={this.light ? 'light' : 'dark'}\n tooltip={this.button === 'icon' ? this.label : null}\n >\n {this.label}\n </pn-button>\n )}\n {this.list && (\n <datalist id={this.list}>\n {this.listSuggestion.map(item => {\n return <option>{item}</option>;\n })}\n </datalist>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -116,45 +116,53 @@ const translations = {
116
116
  showMoreLabel: 'Näytä lisää',
117
117
  },
118
118
  'de': {
119
- newMessage: 'Nytt meddelade',
120
- toggleButtonOn: 'Visa detaljer',
121
- toggleButtonOff: 'Dölj detaljer',
119
+ newMessage: 'Neue Nachricht',
120
+ toggleButtonOn: 'Details anzeigen',
121
+ toggleButtonOff: 'Details ausblenden',
122
+ showMoreLabel: 'Mehr anzeigen',
122
123
  },
123
124
  'zh': {
124
- newMessage: 'Nytt meddelade',
125
- toggleButtonOn: 'Visa detaljer',
126
- toggleButtonOff: 'Dölj detaljer',
125
+ newMessage: '新消息',
126
+ toggleButtonOn: '显示详情',
127
+ toggleButtonOff: '隐藏详情',
128
+ showMoreLabel: '显示更多',
127
129
  },
128
130
  'it': {
129
- newMessage: 'Nytt meddelade',
130
- toggleButtonOn: 'Visa detaljer',
131
- toggleButtonOff: 'Dölj detaljer',
131
+ newMessage: 'Nuovo messaggio',
132
+ toggleButtonOn: 'Mostra dettagli',
133
+ toggleButtonOff: 'Nascondi dettagli',
134
+ showMoreLabel: 'Mostra di più',
132
135
  },
133
136
  'nl': {
134
- newMessage: 'Nytt meddelade',
135
- toggleButtonOn: 'Visa detaljer',
136
- toggleButtonOff: 'Dölj detaljer',
137
+ newMessage: 'Nieuw bericht',
138
+ toggleButtonOn: 'Toon details',
139
+ toggleButtonOff: 'Verberg details',
140
+ showMoreLabel: 'Meer tonen',
137
141
  },
138
142
  'tr': {
139
- newMessage: 'Nytt meddelade',
140
- toggleButtonOn: 'Visa detaljer',
141
- toggleButtonOff: 'Dölj detaljer',
143
+ newMessage: 'Yeni mesaj',
144
+ toggleButtonOn: 'Detayları göster',
145
+ toggleButtonOff: 'Detayları gizle',
146
+ showMoreLabel: 'Daha fazla göster',
142
147
  },
143
148
  'pt': {
144
- newMessage: 'Nytt meddelade',
145
- toggleButtonOn: 'Visa detaljer',
146
- toggleButtonOff: 'Dölj detaljer',
149
+ newMessage: 'Nova mensagem',
150
+ toggleButtonOn: 'Mostrar detalhes',
151
+ toggleButtonOff: 'Ocultar detalhes',
152
+ showMoreLabel: 'Mostrar mais',
147
153
  },
148
154
  'pl': {
149
- newMessage: 'Nytt meddelade',
150
- toggleButtonOn: 'Visa detaljer',
151
- toggleButtonOff: 'Dölj detaljer',
155
+ newMessage: 'Nowa wiadomość',
156
+ toggleButtonOn: 'Pokaż szczegóły',
157
+ toggleButtonOff: 'Ukryj szczegóły',
158
+ showMoreLabel: 'Pokaż więcej',
152
159
  },
153
160
  'pt-BR': {
154
- newMessage: 'Nytt meddelade',
155
- toggleButtonOn: 'Visa detaljer',
156
- toggleButtonOff: 'Dölj detaljer',
157
- },
161
+ newMessage: 'Nova mensagem',
162
+ toggleButtonOn: 'Mostrar detalhes',
163
+ toggleButtonOff: 'Ocultar detalhes',
164
+ showMoreLabel: 'Mostrar mais',
165
+ }
158
166
  };
159
167
 
160
168
  class MarketwebTableService {
@@ -194,7 +202,7 @@ class MarketwebTableService {
194
202
  }
195
203
  }
196
204
 
197
- const pnMarketwebTableCss = "pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}:host{display:block}.pn-marketweb-table .container{max-width:1200px;margin:0 auto;padding:1rem}.pn-marketweb-table .heading-section{display:flex;justify-content:space-between;gap:2rem;margin-bottom:2rem}@media (max-width: 768px){.pn-marketweb-table .heading-section{flex-direction:column}}.pn-marketweb-table .heading-section .heading-wrapper{display:flex;flex-direction:column}.pn-marketweb-table .heading-section .preamble-section{width:80%}.pn-marketweb-table .heading-section .main-heading{margin-bottom:1rem}.pn-marketweb-table .heading-section .summary{display:flex;height:7rem;justify-content:flex-end;gap:clamp(1rem, 4vw, 2rem)}@media (max-width: 768px){.pn-marketweb-table .heading-section .summary{justify-content:center}}.pn-marketweb-table .heading-section .sub-heading-section{background-color:#effbff;border-radius:1.6rem;display:flex;align-items:center;gap:clamp(0.6rem, 4vw, 1rem);padding:0.6rem 1.2rem;width:13.5rem}.pn-marketweb-table .heading-section .sub-heading-section .icon-container{background-color:#e0f8ff;border-radius:50%;padding:4px}.pn-marketweb-table .heading-section .sub-heading{font-size:clamp(1rem, 3vw, 1.4rem);font-weight:400;line-height:clamp(1.225rem, 4vw, 1.5rem);margin:0}.pn-marketweb-table .heading-section .sub-heading strong{color:#005d92;font-weight:700}.pn-marketweb-table .pn-marketweb-table__table{width:100%;border-collapse:collapse;margin-bottom:3.2rem}.pn-marketweb-table .pn-marketweb-table__table tr{border-bottom:1px solid #e9e6e5;position:relative;border-left:4px solid #ffffff;transition:all 0.7s ease}.pn-marketweb-table .pn-marketweb-table__table tr:last-child{border-bottom:none}.pn-marketweb-table .pn-marketweb-table__table tr:hover{border-left:4px solid #8eddf9;background:#effbff}.pn-marketweb-table .pn-marketweb-table__table tr.row-new-message,.pn-marketweb-table .pn-marketweb-table__table tr.row-new-messag:hover{border-left:4px solid #0aa85c;background:linear-gradient(90deg, rgb(220, 246, 231) 0%, rgb(237, 251, 243) 30%, rgb(255, 255, 255) 70%)}.pn-marketweb-table .pn-marketweb-table__table td{padding:1.6rem 1rem}.pn-marketweb-table .image-container{min-height:5.8rem}.pn-marketweb-table .cell-heading{color:#5e554a;font-size:clamp(0.875rem, 4vw, 1.2rem);font-weight:400;line-height:clamp(1.225rem, 4vw, 1.5rem);margin:0}.pn-marketweb-table .cell-value{color:#2d2013;display:inline-block;font-size:clamp(1rem, 4vw, 1.5rem);font-weight:400;line-height:clamp(1.4rem, 4vw, 1.8rem);margin:0;padding:0.5rem 0}.pn-marketweb-table .row-image{border-radius:0.5rem}.pn-marketweb-table .actions{align-content:center}.pn-marketweb-table .actions .button-wrapper{display:flex;flex-direction:row;justify-content:flex-end;gap:1.6rem}.pn-marketweb-table .actions .button-wrapper .pn-button-text{white-space:nowrap}@media screen and (max-width: 768px){.pn-marketweb-table .actions .button-wrapper{justify-content:space-between}}@media screen and (max-width: 767px){.pn-marketweb-table tr{display:flex;flex-wrap:wrap}.pn-marketweb-table td:not(.cell-content){width:100%}.pn-marketweb-table td.cell-image{text-align:center}.pn-marketweb-table td.cell-content{flex:1 0 40%}.pn-marketweb-table td.cell-content::before{content:attr(data-label);display:block;font-weight:bold;margin-bottom:0.5em}.pn-marketweb-table td.actions .button-wrapper{gap:2rem}}@media (min-width: 768px){.pn-marketweb-table .row-image{max-width:80px}}.pn-marketweb-table .toggle-detail{display:none;color:#005d92;cursor:pointer;border:none;border-radius:3em;outline:none;position:relative;font-size:0.875em;min-width:5.5em;font-weight:500;background-color:transparent;justify-content:center;align-items:center;transition:color 0.3s;-webkit-tap-highlight-color:transparent;text-decoration:none;padding:0.375em 1em;min-height:2em;line-height:1.65em;white-space:nowrap}.pn-marketweb-table .toggle-detail:hover{background-color:#e0f8ff;opacity:1}.pn-marketweb-table .shipment-id-active .button-wrapper{display:flex}.pn-marketweb-table tr td.cell-content:first-child .cell-value{font-weight:500}.pn-marketweb-table .pn-widget-wrapper{display:flex;justify-content:center}.pn-marketweb-table .shipment-id-active,.pn-marketweb-table .widget-row{background-color:#effbff}.pn-marketweb-table .pn-market-table__show-more-wrapper{display:flex;justify-content:center;width:100%}.row-new-message .button-wrapper:after{content:attr(data-label);background:#0aa85c;border-radius:0 0.4rem 0.4rem 0;color:#ffffff;display:block;position:absolute;left:0;top:0;font-size:1.4rem;padding:0 0.4rem}@media (min-width: 768px){.row-new-message .button-wrapper:after{background:#005e41;border-radius:0.4rem;left:auto;right:1.6rem;font-size:1.1rem;top:0.3rem}}";
205
+ const pnMarketwebTableCss = "pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}:host{display:block}.pn-marketweb-table .container{max-width:1200px;margin:0 auto;padding:1rem}.pn-marketweb-table .heading-section{display:flex;justify-content:space-between;gap:2rem;margin-bottom:2rem}@media (max-width: 768px){.pn-marketweb-table .heading-section{flex-direction:column}}.pn-marketweb-table .heading-section .heading-wrapper{display:flex;flex-direction:column}.pn-marketweb-table .heading-section .preamble-section{width:80%}.pn-marketweb-table .heading-section .main-heading{margin-bottom:1rem}.pn-marketweb-table .heading-section .summary{display:flex;height:7rem;justify-content:flex-end;gap:clamp(1rem, 4vw, 2rem)}@media (max-width: 768px){.pn-marketweb-table .heading-section .summary{justify-content:center}}.pn-marketweb-table .heading-section .sub-heading-section{background-color:#effbff;border-radius:1.6rem;display:flex;align-items:center;gap:clamp(0.6rem, 4vw, 1rem);padding:0.6rem 1.2rem;width:13.5rem}.pn-marketweb-table .heading-section .sub-heading-section .icon-container{background-color:#e0f8ff;border-radius:50%;padding:4px}.pn-marketweb-table .heading-section .sub-heading{font-size:clamp(1rem, 3vw, 1.4rem);font-weight:400;line-height:clamp(1.225rem, 4vw, 1.5rem);margin:0}.pn-marketweb-table .heading-section .sub-heading strong{color:#005d92;font-weight:700}.pn-marketweb-table .pn-marketweb-table__table{width:100%;border-collapse:collapse;margin-bottom:3.2rem;border:none}.pn-marketweb-table .pn-marketweb-table__table tr{border-bottom:1px solid #e9e6e5;position:relative;border-left:4px solid #ffffff;transition:all 0.7s ease}.pn-marketweb-table .pn-marketweb-table__table tr:last-child{border-bottom:none}.pn-marketweb-table .pn-marketweb-table__table tr:hover{border-left:4px solid #8eddf9;background:#effbff}.pn-marketweb-table .pn-marketweb-table__table tr.row-new-message,.pn-marketweb-table .pn-marketweb-table__table tr.row-new-messag:hover{border-left:4px solid #0aa85c;background:linear-gradient(90deg, rgb(220, 246, 231) 0%, rgb(237, 251, 243) 30%, rgb(255, 255, 255) 70%)}.pn-marketweb-table .pn-marketweb-table__table td{padding:1.6rem 1rem}.pn-marketweb-table .image-container{min-height:5.8rem}.pn-marketweb-table .cell-heading{color:#5e554a;font-size:clamp(0.875rem, 4vw, 1.2rem);font-weight:400;line-height:clamp(1.225rem, 4vw, 1.5rem);margin:0}.pn-marketweb-table .cell-value{color:#2d2013;display:inline-block;font-size:clamp(1rem, 4vw, 1.5rem);font-weight:400;line-height:clamp(1.4rem, 4vw, 1.8rem);margin:0;padding:0.5rem 0}.pn-marketweb-table .row-image{border-radius:0.5rem}.pn-marketweb-table .actions{align-content:center;width:20%}.pn-marketweb-table .actions .button-wrapper{display:flex;flex-direction:row;justify-content:flex-end;gap:1.6rem}.pn-marketweb-table .actions .button-wrapper pn-button{min-width:50%}.pn-marketweb-table .actions .button-wrapper pn-button.toggle-widget{min-width:30%}.pn-marketweb-table .actions .button-wrapper .pn-button-text{white-space:nowrap}@media screen and (max-width: 768px){.pn-marketweb-table .actions .button-wrapper{justify-content:space-between;flex-direction:column}}@media screen and (max-width: 768px){.pn-marketweb-table tr{display:flex;flex-wrap:wrap}.pn-marketweb-table td:not(.cell-content){width:100%}.pn-marketweb-table td.cell-image{text-align:center}.pn-marketweb-table td.cell-content{flex:1 0 40%}.pn-marketweb-table td.cell-content::before{content:attr(data-label);display:block;font-weight:bold;margin-bottom:0.5em}.pn-marketweb-table td.actions .button-wrapper{gap:2rem}}@media (min-width: 768px){.pn-marketweb-table .row-image{max-width:80px}}.pn-marketweb-table .toggle-detail{display:none;color:#005d92;cursor:pointer;border:none;border-radius:3em;outline:none;position:relative;font-size:0.875em;min-width:5.5em;font-weight:500;background-color:transparent;justify-content:center;align-items:center;transition:color 0.3s;-webkit-tap-highlight-color:transparent;text-decoration:none;padding:0.375em 1em;min-height:2em;line-height:1.65em;white-space:nowrap}.pn-marketweb-table .toggle-detail:hover{background-color:#e0f8ff;opacity:1}.pn-marketweb-table .shipment-id-active .button-wrapper{display:flex}.pn-marketweb-table tr td.cell-content:first-child .cell-value{font-weight:500}.pn-marketweb-table .pn-widget-wrapper{display:flex;justify-content:center}.pn-marketweb-table .shipment-id-active,.pn-marketweb-table .widget-row{background-color:#effbff}.pn-marketweb-table .pn-market-table__show-more-wrapper{display:flex;justify-content:center;width:100%}.row-new-message .button-wrapper:after{content:attr(data-label);background:#0aa85c;border-radius:0 0.4rem 0.4rem 0;color:#ffffff;display:block;position:absolute;left:0;top:0;font-size:1.4rem;padding:0 0.4rem}@media (min-width: 768px){.row-new-message .button-wrapper:after{background:#005e41;border-radius:0.4rem;left:auto;right:1.6rem;font-size:1.1rem;top:0.3rem}}";
198
206
  const PnMarketwebTableStyle0 = pnMarketwebTableCss;
199
207
 
200
208
  const PnMarketWebTable = /*@__PURE__*/ proxyCustomElement(class PnMarketWebTable extends HTMLElement {
@@ -401,7 +409,7 @@ const PnMarketWebTable = /*@__PURE__*/ proxyCustomElement(class PnMarketWebTable
401
409
  renderActionButtons(row) {
402
410
  if (!row.actionButtons)
403
411
  return null;
404
- return (h("td", { class: "actions", role: "cell" }, h("div", { class: "button-wrapper", role: "group", "aria-label": this.tableRowCtaActionLabel, "data-label": this.i18n.newMessage }, row.actionButtons.map(btn => (h("pn-button", { appearance: btn.appearance, class: btn.class, variant: btn.variant, small: btn.small, loading: btn.loading, icon: btn.icon, leftIcon: btn.leftIcon, tooltip: btn.tooltip, href: btn.href, rel: btn.rel, download: btn.download, form: btn.form, buttonId: btn.buttonId, "data-chat": btn.customAttribute }, btn.content))))));
412
+ return (h("td", { class: "actions", role: "cell" }, h("div", { class: "button-wrapper", role: "group", "aria-label": this.tableRowCtaActionLabel, "data-label": this.i18n.newMessage }, row.actionButtons.map(btn => (h("pn-button", { appearance: btn.appearance, class: btn.class, variant: btn.variant, small: btn.small, loading: btn.loading, icon: btn.icon, leftIcon: btn.leftIcon, tooltip: btn.tooltip, href: btn.href, rel: btn.rel, download: btn.download, form: btn.form, buttonId: btn.buttonId, "icon-only": btn.iconOnly, arialabel: btn.content, "data-chat": btn.customAttribute }, btn.content))))));
405
413
  }
406
414
  async OpenChatEvent(aTags) {
407
415
  aTags.forEach((aTag) => {
@@ -443,7 +451,7 @@ const PnMarketWebTable = /*@__PURE__*/ proxyCustomElement(class PnMarketWebTable
443
451
  render() {
444
452
  const tableId = `table-${Math.random().toString(36)}`;
445
453
  const headingId = `${tableId}-main-heading`;
446
- return (h(Host, { key: '9dd9a449fb58560ed8319441a1a17fd0ecb3708c', language: this.language }, h("div", { key: '5bf3fef47a8f71254d065a7732a6b53a6c945834', class: 'pn-marketweb-table' }, h("div", { key: 'ae40adf08605764a39e6ab02bb55780c0974c2e7', role: 'region', "aria-labelledby": this.mainHeading ? headingId : undefined }, h("div", { key: 'f569e5f4fdbd29b667912557ba2806ac33bfe203', class: 'heading-section' }, h("div", { key: 'bf3280cdf17784cb8237c2204d2286530df28d35', class: 'heading-wrapper' }, this.mainHeading && (h(HeadingTag, { key: '923eec130a764bb2d3d14fd507f9d5fa4eff750f', level: this.mainHeadingLevel, cssClass: 'main-heading', id: headingId }, this.mainHeading)), this.preamble && (h("div", { key: '4c7bc46e41807897ab0e891497e228eef478fff9', class: "preamble-section" }, this.preamble)))), this._rows.length > 0 && (h("table", { key: '041f873a19c963f9091ec6bd8bd05cebe98b8cae', class: 'pn-marketweb-table__table', "aria-labelledby": this.mainHeading ? `${tableId}-main-heading` : undefined }, this._headers && (h("thead", { key: '994dff35404141dca8da55223cdeac282aad98ab', class: this.showHeadersInCells ? 'sr-only' : undefined }, h("tr", { key: 'b9733ffec4696350e82fb319c92a6b186ae3af8c' }, this._rows.some((row) => row.imageUrl) && this.imageColAriaHeader && (h("th", { key: '1ee27305f199b4a21e0c875e24d9b4bee76e3ecb', scope: 'col', class: 'sr-only' }, this.imageColAriaHeader)), this._headers.map((header) => (h("th", { key: header.key, scope: 'col', class: 'sr-only-mobile' }, header.label))), this._rows.some((row) => row.link1 || row.link2) && this.ctaColAriaHeader && (h("th", { key: '0468730178d3bf9b9197a77b5bd1bb87d5b96706', scope: 'col', class: 'sr-only' }, this.ctaColAriaHeader))))), h("tbody", { key: '42c974c7df0a42fa529a478be1164619476171b4' }, this._rows.slice(0, this.shipmentCount).map((row, rowIndex) => (h("tr", { key: rowIndex, class: row.hasNewMessages ? "row-new-message" : null }, row.imageUrl && (h("td", { class: 'cell-image' }, h("div", { class: 'image-container' }, h("img", { src: row.imageUrl, alt: '', class: 'row-image' })))), this._headers.map((header) => (h("td", { key: `${rowIndex}-${header.key}`, class: 'cell-content' }, this.renderCell(header, row)))), this.renderActionButtons(row))))))), this.shipmentCount > this._rows.length && (h("div", { key: 'df77087fd61f9e18ad2dd9f2ffcfcc48ef59fdfc', class: "pn-market-table__show-more-wrapper" }, h("pn-button", { key: '7ed292e469b44f7594076ee67d31136e9afcb240', variant: "outlined", appearance: "light", label: this.i18n?.showMoreLabel || 'Show More', onClick: () => this.handleShowMore() })))))));
454
+ return (h(Host, { key: '98283a658faabafcb813eeb447c4bc406f05f18c', language: this.language }, h("div", { key: 'baea729e089500c3c99757e4e614f9f710000603', class: 'pn-marketweb-table' }, h("div", { key: 'ef40e29179a3d9f380360ed54099e5724d4368df', role: 'region', "aria-labelledby": this.mainHeading ? headingId : undefined }, h("div", { key: '61c96ab70681a3ec976c94f385c9d4136d73cb8e', class: 'heading-section' }, h("div", { key: '4ed87bda71059736a9d0dbe8a55d89a34a81a89c', class: 'heading-wrapper' }, this.mainHeading && (h(HeadingTag, { key: '0ef856c0259011be63c5b6a169bd69285ee09c13', level: this.mainHeadingLevel, cssClass: 'main-heading', id: headingId }, this.mainHeading)), this.preamble && (h("div", { key: '9eb7c8d520843e331a2ec77bc434a135d82c4699', class: "preamble-section" }, this.preamble)))), this._rows.length > 0 && (h("table", { key: '6346e44c176d834b2fe66dea162c5976fae61441', class: 'pn-marketweb-table__table', "aria-labelledby": this.mainHeading ? `${tableId}-main-heading` : undefined }, this._headers && (h("thead", { key: '92d29b69db5ca91664df5dd9ee3fb7b9c3fc97bb', class: this.showHeadersInCells ? 'sr-only' : undefined }, h("tr", { key: 'fa3d3ec4062835a13f6292a70e37559e7ba90fb7' }, this._rows.some((row) => row.imageUrl) && this.imageColAriaHeader && (h("th", { key: '5d2e43ee1cd03b1a722ee5ae9594226500c0fbe3', scope: 'col', class: 'sr-only' }, this.imageColAriaHeader)), this._headers.map((header) => (h("th", { key: header.key, scope: 'col', class: 'sr-only-mobile' }, header.label))), this._rows.some((row) => row.link1 || row.link2) && this.ctaColAriaHeader && (h("th", { key: '07356d07d91450352ea9a425286e1f9876e2e578', scope: 'col', class: 'sr-only' }, this.ctaColAriaHeader))))), h("tbody", { key: '3b0357be0ffccef7e768d055379f75a8fdd1b6e7', class: "pn-marketweb-table__table-body" }, this._rows.slice(0, this.shipmentCount).map((row, rowIndex) => (h("tr", { key: rowIndex, class: `cell-row ${row.hasNewMessages ? "row-new-message" : ''}` }, row.imageUrl && (h("td", { class: 'cell-image' }, h("div", { class: 'image-container' }, h("img", { src: row.imageUrl, alt: '', class: 'row-image' })))), this._headers.map((header) => (h("td", { key: `${rowIndex}-${header.key}`, class: 'cell-content' }, this.renderCell(header, row)))), this.renderActionButtons(row))))))), this.shipmentCount > this._rows.length && (h("div", { key: 'ff1ab5516f505a6315a45e60275e0ca1167840f1', class: "pn-market-table__show-more-wrapper" }, h("pn-button", { key: 'c34362a272f682e5e7a2f9bb6498d1713afcf6fa', variant: "outlined", appearance: "light", label: this.i18n?.showMoreLabel || 'Show More', onClick: () => this.handleShowMore() })))))));
447
455
  }
448
456
  static get watchers() { return {
449
457
  "language": ["onLanguageChange"]