@aws-amplify/ui-react-notifications 0.0.0-studio-41bd6b8-20230725225637 → 0.0.0-studio-console-80bb2e2-20230921222703

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 (38) hide show
  1. package/dist/esm/components/InAppMessaging/Backdrop/Backdrop.mjs +1 -0
  2. package/dist/esm/components/InAppMessaging/Backdrop/withBackdrop.mjs +1 -0
  3. package/dist/esm/components/InAppMessaging/BannerMessage/BannerMessage.mjs +1 -0
  4. package/dist/esm/components/InAppMessaging/CloseIconButton/CloseIconButton.mjs +1 -0
  5. package/dist/esm/components/InAppMessaging/FullScreenMessage/FullScreenMessage.mjs +1 -0
  6. package/dist/esm/components/InAppMessaging/InAppMessageDisplay/InAppMessageDisplay.mjs +1 -0
  7. package/dist/esm/components/InAppMessaging/InAppMessageDisplay/handleMessageLinkAction.mjs +1 -0
  8. package/dist/esm/components/InAppMessaging/MessageLayout/MessageLayout.mjs +1 -0
  9. package/dist/esm/components/InAppMessaging/MessageLayout/utils.mjs +1 -0
  10. package/dist/esm/components/InAppMessaging/ModalMessage/ModalMessage.mjs +1 -0
  11. package/dist/esm/components/InAppMessaging/hooks/useMessageImage/useMessageImage.mjs +1 -0
  12. package/dist/esm/components/InAppMessaging/hooks/useMessageProps/useMessageProps.mjs +1 -0
  13. package/dist/esm/components/InAppMessaging/hooks/useMessageProps/utils.mjs +1 -0
  14. package/dist/esm/components/InAppMessaging/withInAppMessaging/withInAppMessaging.mjs +1 -0
  15. package/dist/esm/{index.js → index.mjs} +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/styles.css +1603 -616
  18. package/package.json +9 -10
  19. package/dist/esm/components/InAppMessaging/Backdrop/Backdrop.js +0 -1
  20. package/dist/esm/components/InAppMessaging/Backdrop/withBackdrop.js +0 -1
  21. package/dist/esm/components/InAppMessaging/BannerMessage/BannerMessage.js +0 -1
  22. package/dist/esm/components/InAppMessaging/CloseIconButton/CloseIconButton.js +0 -1
  23. package/dist/esm/components/InAppMessaging/FullScreenMessage/FullScreenMessage.js +0 -1
  24. package/dist/esm/components/InAppMessaging/InAppMessageDisplay/InAppMessageDisplay.js +0 -1
  25. package/dist/esm/components/InAppMessaging/InAppMessageDisplay/handleMessageLinkAction.js +0 -1
  26. package/dist/esm/components/InAppMessaging/MessageLayout/MessageLayout.js +0 -1
  27. package/dist/esm/components/InAppMessaging/MessageLayout/utils.js +0 -1
  28. package/dist/esm/components/InAppMessaging/ModalMessage/ModalMessage.js +0 -1
  29. package/dist/esm/components/InAppMessaging/hooks/useMessageImage/useMessageImage.js +0 -1
  30. package/dist/esm/components/InAppMessaging/hooks/useMessageProps/useMessageProps.js +0 -1
  31. package/dist/esm/components/InAppMessaging/hooks/useMessageProps/utils.js +0 -1
  32. package/dist/esm/components/InAppMessaging/withInAppMessaging/withInAppMessaging.js +0 -1
  33. package/dist/esm/node_modules/tslib/tslib.es6.js +0 -1
  34. /package/dist/esm/components/InAppMessaging/BannerMessage/{constants.js → constants.mjs} +0 -0
  35. /package/dist/esm/components/InAppMessaging/FullScreenMessage/{constants.js → constants.mjs} +0 -0
  36. /package/dist/esm/components/InAppMessaging/MessageLayout/{constants.js → constants.mjs} +0 -0
  37. /package/dist/esm/components/InAppMessaging/ModalMessage/{constants.js → constants.mjs} +0 -0
  38. /package/dist/esm/components/InAppMessaging/hooks/useMessageImage/{types.js → types.mjs} +0 -0
@@ -0,0 +1 @@
1
+ import a from"react";import{View as i}from"@aws-amplify/ui-react";const t="inappmessaging-backdrop";function e({onClick:e,...r}){return a.createElement(i,{className:"amplify-inappmessaging-backdrop","data-testid":t,onClick:e,...r})}export{t as BACKDROP_TEST_ID,e as Backdrop};
@@ -0,0 +1 @@
1
+ import e from"react";import{Flex as t,View as a}from"@aws-amplify/ui-react";import{Backdrop as n}from"./Backdrop.mjs";function r(r,m={}){return function(c){return e.createElement(e.Fragment,null,e.createElement(n,{...m}),e.createElement(t,{className:"amplify-inappmessaging-backdrop-content-container"},e.createElement(a,{className:"amplify-inappmessaging-backdrop-content"},e.createElement(r,{...c}))))}}export{r as withBackdrop};
@@ -0,0 +1 @@
1
+ import e from"react";import s from"classnames";import{useBreakpointValue as t,Flex as o}from"@aws-amplify/ui-react";import"../hooks/useMessageImage/useMessageImage.mjs";import r from"../hooks/useMessageProps/useMessageProps.mjs";import{MessageLayout as a}from"../MessageLayout/MessageLayout.mjs";import{BLOCK_CLASS as m}from"./constants.mjs";function i(i){const n=r(i),l=t([!0,!0,!1]),{shouldRenderMessage:g,styles:p}=n;if(!g)return null;const{alignment:u="right",position:c="top"}=i,d="center"===u&&"middle"===c;return e.createElement(o,{className:s(m,{[`${m}--${c}`]:!d,[`${m}--${u}`]:!d,[`${m}--center-middle`]:d,[`${m}--full-width`]:l}),role:"dialog",testId:`inappmessaging-${c}banner-dialog`},e.createElement(a,{...i,...n,orientation:"horizontal",buttonSize:"small",styles:p}))}export{i as BannerMessage};
@@ -0,0 +1 @@
1
+ import*as e from"react";import{Button as a}from"@aws-amplify/ui-react";import{IconClose as i}from"@aws-amplify/ui-react/internal";function r({className:r,dismissButtonLabel:t="Dismiss message",onClick:s,style:m,...l}){return e.createElement(a,{ariaLabel:t,className:r,onClick:s,style:m,variation:"link",...l},e.createElement(i,{"aria-hidden":"true",size:"1.5rem"}))}export{r as CloseIconButton};
@@ -0,0 +1 @@
1
+ import*as e from"react";import s from"classnames";import{useBreakpointValue as o,Flex as r}from"@aws-amplify/ui-react";import{withBackdrop as t}from"../Backdrop/withBackdrop.mjs";import"../hooks/useMessageImage/useMessageImage.mjs";import a from"../hooks/useMessageProps/useMessageProps.mjs";import{MessageLayout as m}from"../MessageLayout/MessageLayout.mjs";import{BLOCK_CLASS as l}from"./constants.mjs";function n(n){const i=a(n),c=o([!0,!0,!1]),{shouldRenderMessage:u,styles:p}=i,{onClose:f}=n;if(!u)return null;const g=()=>e.createElement(r,{className:s(l,{[`${l}--fullscreen`]:c}),role:"dialog",testId:"inappmessaging-fullscreen-dialog"},e.createElement(m,{...n,...i,styles:p}));if(c)return e.createElement(g,null);const d=t(g,{onClick:f});return e.createElement(d,null)}export{n as FullScreenMessage};
@@ -0,0 +1 @@
1
+ import e from"react";import{useMessage as s,handleMessageAction as o}from"@aws-amplify/ui-react-core-notifications";import{ThemeProvider as a}from"@aws-amplify/ui-react";import{BannerMessage as n}from"../BannerMessage/BannerMessage.mjs";import{FullScreenMessage as r}from"../FullScreenMessage/FullScreenMessage.mjs";import{ModalMessage as t}from"../ModalMessage/ModalMessage.mjs";import l from"./handleMessageLinkAction.mjs";function m(e){return null}const i={BannerMessage:n,CarouselMessage:m,FullScreenMessage:r,ModalMessage:t},c=({action:e,url:s})=>{o({action:e,url:s,handleMessageLinkAction:l})};function M({components:o}){const n=e.useMemo((()=>({...i,...o})),[o]),{Component:r,props:t}=s({components:n,onMessageAction:c});return e.createElement(a,{colorMode:"light"},e.createElement(r,{...t}))}M.BannerMessage=n,M.CarouselMessage=m,M.FullScreenMessage=r,M.ModalMessage=t;export{M as default};
@@ -0,0 +1 @@
1
+ import{ConsoleLogger as o}from"@aws-amplify/core";const t=new o("Notifications.InAppMessaging"),r=o=>{let r;try{r=new URL(o)}catch{return void t.warn(`Unsupported url provided: ${o}`)}const{protocol:p}=r;"http:"===p||"https:"===p?window.open(o):t.warn(`Unsupported url protocol provided: ${p}`)};export{r as default};
@@ -0,0 +1 @@
1
+ import*as e from"react";import t from"classnames";import{isEmpty as a}from"@aws-amplify/ui";import{Flex as s,Image as n,Heading as o,Text as r,ButtonGroup as m,Button as c}from"@aws-amplify/ui-react";import{CloseIconButton as l}from"../CloseIconButton/CloseIconButton.mjs";import{CLOSE_BUTTON_CLASS as i,BLOCK_CLASS as d,MESSAGE_LAYOUT_TEST_ID as y,CONTENT_CLASS as u,CONTENT_TEST_ID as p,IMAGE_CONTAINER_CLASS as f,IMAGE_CONTAINER_TEST_ID as E,TEXT_CONTAINER_CLASS as I,TEXT_CONTAINER_TEST_ID as $,HEADER_CLASS as B,HEADER_TEXT_TEST_ID as N,BODY_TEXT_TEST_ID as C,BUTTON_GROUP_TEST_ID as g,BUTTON_CLASS as b,SECONDARY_BUTTON_TEST_ID as h,PRIMARY_BUTTON_TEST_ID as j}from"./constants.mjs";import{getButtonModifier as k}from"./utils.mjs";const x=e=>!a(e);function z({body:a,buttonSize:z,hasRenderableImage:A,header:v,image:w,onClose:M,orientation:R="vertical",primaryButton:S,secondaryButton:T,styles:q}){const D=e.useMemo((()=>({primary:k(q.primaryButton),secondary:k(q.secondaryButton)})),[q]),F="horizontal"===R,G=e.createElement(l,{className:i,onClick:M,style:q.closeIconButton}),H=x(S),J=x(T),K=H||J;return e.createElement(s,{className:d,"data-testid":y,style:q.container},!F&&e.createElement(s,{justifyContent:"flex-end"},G),e.createElement(s,{className:t(u,`${u}--${R}`),"data-testid":p},A&&e.createElement(s,{className:t(f,`${f}--${R}`),"data-testid":E},e.createElement(n,{alt:"In-App Message Image",src:w?.src,style:q.image})),e.createElement(s,{className:t(I,`${I}--${R}`),"data-testid":$},v?.content&&e.createElement(o,{className:B,isTruncated:!0,level:2,style:q.header,testId:N},v.content),a?.content&&e.createElement(r,{style:q.body,testId:C},a.content)),F&&e.createElement(s,{alignItems:"flex-start"},G)),K&&e.createElement(m,{size:z,testId:g},J&&e.createElement(c,{className:t(b,`${b}--${D.secondary}`),onClick:T.onAction,style:q.secondaryButton,testId:h},T.title),H&&e.createElement(c,{className:t(b,`${b}--${D.primary}`),onClick:S.onAction,style:q.primaryButton,testId:j},S.title)))}export{z as MessageLayout};
@@ -0,0 +1 @@
1
+ import r from"tinycolor2";const o=(o,t="light")=>{const{backgroundColor:i}=o??{};if(!i)return t;return r(i).isDark()?"dark":"light"};export{o as getButtonModifier};
@@ -0,0 +1 @@
1
+ import*as e from"react";import s from"classnames";import{useBreakpointValue as a,Flex as o}from"@aws-amplify/ui-react";import"../hooks/useMessageImage/useMessageImage.mjs";import m from"../hooks/useMessageProps/useMessageProps.mjs";import{MessageLayout as t}from"../MessageLayout/MessageLayout.mjs";import{BLOCK_CLASS as r,DIALOG_CLASS as l}from"./constants.mjs";function i(i){const n=m(i),g=a([!0,!0,!1]),{shouldRenderMessage:p,styles:u}=n;return p?e.createElement(o,{className:r},e.createElement(o,{className:s(l,{[`${l}--full-width`]:g}),role:"dialog",testId:"inappmessaging-modal-dialog"},e.createElement(t,{...i,...n,styles:u}))):null}export{i as ModalMessage};
@@ -0,0 +1 @@
1
+ import{useState as e,useEffect as r}from"react";import{ConsoleLogger as o}from"@aws-amplify/core";import{ImagePrefetchStatus as t}from"./types.mjs";const a=new o("Notifications.InAppMessaging");function n(o){const{src:n}=o??{},s=!!n,[c,i]=e(s?t.Fetching:null),m=c===t.Fetching,g=c===t.Success;return r((()=>{if(!s)return;const e=new Image;e.onload=()=>{i(t.Success)},e.onabort=()=>{a.error(`Image load aborted: ${n}`),i(t.Aborted)},e.onerror=()=>{a.error(`Image failed to load: ${n}`),i(t.Failure)},e.src=n}),[s,n]),{hasRenderableImage:g,isImageFetching:m}}export{n as default};
@@ -0,0 +1 @@
1
+ import{useRef as e,useEffect as s,useMemo as a}from"react";import r from"../useMessageImage/useMessageImage.mjs";import{getMessageStyles as t,getPayloadStyle as m}from"./utils.mjs";function o(o){const{image:l,onDisplay:n}=o,g=e(!1),{hasRenderableImage:i,isImageFetching:u}=r(l),c=!u;s((()=>{!g.current&&c&&(n?.(),g.current=!0)}),[n,c]);const d=a((()=>t({styleParams:{payloadStyle:m(o),overrideStyle:o.style}})),[o]);return{hasRenderableImage:i,shouldRenderMessage:c,styles:d}}export{o as default};
@@ -0,0 +1 @@
1
+ const t=({body:t,container:o,header:e,primaryButton:n,secondaryButton:r})=>({body:t?.style??{},container:o?.style??{},header:e?.style??{},primaryButton:n?.style??{},secondaryButton:r?.style??{}});function o({styleParams:t}){const{payloadStyle:o,overrideStyle:e}=t;return{body:{...o?.body,...e?.body},closeIconButton:e?.closeIconButton??{},container:{...o?.container,...e?.container},header:{...o?.header,...e?.header},image:e?.image??{},primaryButton:{...o?.primaryButton,...e?.primaryButton},secondaryButton:{...o?.secondaryButton,...e?.secondaryButton}}}export{o as getMessageStyles,t as getPayloadStyle};
@@ -0,0 +1 @@
1
+ import e from"react";import{InAppMessagingProvider as t}from"@aws-amplify/ui-react-core-notifications";import r from"../InAppMessageDisplay/InAppMessageDisplay.mjs";function a(a,n){return function(i){return e.createElement(t,null,e.createElement(r,{...n}),e.createElement(a,{...i}))}}export{a as default};
@@ -1 +1 @@
1
- export{InAppMessagingProvider,useInAppMessaging}from"@aws-amplify/ui-react-core-notifications";export{default as InAppMessageDisplay}from"./components/InAppMessaging/InAppMessageDisplay/InAppMessageDisplay.js";export{default as withInAppMessaging}from"./components/InAppMessaging/withInAppMessaging/withInAppMessaging.js";
1
+ export{InAppMessagingProvider,useInAppMessaging}from"@aws-amplify/ui-react-core-notifications";export{default as InAppMessageDisplay}from"./components/InAppMessaging/InAppMessageDisplay/InAppMessageDisplay.mjs";export{default as withInAppMessaging}from"./components/InAppMessaging/withInAppMessaging/withInAppMessaging.mjs";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@aws-amplify/ui-react-core-notifications"),t=require("react"),n=require("@aws-amplify/ui-react"),a=require("classnames"),s=require("@aws-amplify/core"),l=require("@aws-amplify/ui"),o=require("@aws-amplify/ui-react/internal"),r=require("tinycolor2");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u,d=c(t),g=i(t),m=i(a),p=i(r);!function(e){e.Aborted="ABORTED",e.Failure="FAILURE",e.Fetching="FETCHING",e.Success="SUCCESS"}(u||(u={}));const y=new s.ConsoleLogger("Notifications.InAppMessaging");const f=({body:e,container:t,header:n,primaryButton:a,secondaryButton:s})=>{var l,o,r,i,c;return{body:null!==(l=null==e?void 0:e.style)&&void 0!==l?l:{},container:null!==(o=null==t?void 0:t.style)&&void 0!==o?o:{},header:null!==(r=null==n?void 0:n.style)&&void 0!==r?r:{},primaryButton:null!==(i=null==a?void 0:a.style)&&void 0!==i?i:{},secondaryButton:null!==(c=null==s?void 0:s.style)&&void 0!==c?c:{}}};function b(e){const{image:n,onDisplay:a}=e,s=t.useRef(!1),{hasRenderableImage:l,isImageFetching:o}=function(e){const{src:n}=null!=e?e:{},a=!!n,[s,l]=t.useState(a?u.Fetching:null),o=s===u.Fetching,r=s===u.Success;return t.useEffect((()=>{if(!a)return;const e=new Image;e.onload=()=>{l(u.Success)},e.onabort=()=>{y.error(`Image load aborted: ${n}`),l(u.Aborted)},e.onerror=()=>{y.error(`Image failed to load: ${n}`),l(u.Failure)},e.src=n}),[a,n]),{hasRenderableImage:r,isImageFetching:o}}(n),r=!o;t.useEffect((()=>{!s.current&&r&&(null==a||a(),s.current=!0)}),[a,r]);const i=t.useMemo((()=>function({styleParams:e}){var t,n;const{payloadStyle:a,overrideStyle:s}=e;return{body:Object.assign(Object.assign({},null==a?void 0:a.body),null==s?void 0:s.body),closeIconButton:null!==(t=null==s?void 0:s.closeIconButton)&&void 0!==t?t:{},container:Object.assign(Object.assign({},null==a?void 0:a.container),null==s?void 0:s.container),header:Object.assign(Object.assign({},null==a?void 0:a.header),null==s?void 0:s.header),image:null!==(n=null==s?void 0:s.image)&&void 0!==n?n:{},primaryButton:Object.assign(Object.assign({},null==a?void 0:a.primaryButton),null==s?void 0:s.primaryButton),secondaryButton:Object.assign(Object.assign({},null==a?void 0:a.secondaryButton),null==s?void 0:s.secondaryButton)}}({styleParams:{payloadStyle:f(e),overrideStyle:e.style}})),[e]);return{hasRenderableImage:l,shouldRenderMessage:r,styles:i}}function v(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(a=Object.getOwnPropertySymbols(e);s<a.length;s++)t.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(n[a[s]]=e[a[s]])}return n}function E(e){var{className:t,dismissButtonLabel:a="Dismiss message",onClick:s,style:l}=e,r=v(e,["className","dismissButtonLabel","onClick","style"]);return d.createElement(n.Button,Object.assign({ariaLabel:a,className:t,onClick:s,style:l,variation:"link"},r),d.createElement(o.IconClose,{"aria-hidden":"true",size:"1.5rem"}))}const h="amplify-inappmessaging-messagelayout",O=`${h}__button`,I=`${h}__close-button`,j=`${h}__content`,M=`${h}__header`,B=`${h}__image-container`,$=`${h}__text-container`,x="inappmessaging-messagelayout-bodytext",k="inappmessaging-messagelayout-buttongroup",C="inappmessaging-messagelayout-content",F="inappmessaging-messagelayout-headertext",w="inappmessaging-messagelayout-imagecontainer",N="inappmessaging-messagelayout",A="inappmessaging-messagelayout-primarybutton",_="inappmessaging-messagelayout-secondarybutton",S="inappmessaging-messagelayout-textcontainer",P=(e,t="light")=>{const{backgroundColor:n}=null!=e?e:{};if(!n)return t;return p.default(n).isDark()?"dark":"light"},R=e=>!l.isEmpty(e);function q({body:e,buttonSize:t,hasRenderableImage:a,header:s,image:l,onClose:o,orientation:r="vertical",primaryButton:i,secondaryButton:c,styles:u}){const g=d.useMemo((()=>({primary:P(u.primaryButton),secondary:P(u.secondaryButton)})),[u]),p="horizontal"===r,y=d.createElement(E,{className:I,onClick:o,style:u.closeIconButton}),f=R(i),b=R(c),v=f||b;return d.createElement(n.Flex,{className:h,"data-testid":N,style:u.container},!p&&d.createElement(n.Flex,{justifyContent:"flex-end"},y),d.createElement(n.Flex,{className:m.default(j,`${j}--${r}`),"data-testid":C},a&&d.createElement(n.Flex,{className:m.default(B,`${B}--${r}`),"data-testid":w},d.createElement(n.Image,{alt:"In-App Message Image",src:null==l?void 0:l.src,style:u.image})),d.createElement(n.Flex,{className:m.default($,`${$}--${r}`),"data-testid":S},(null==s?void 0:s.content)&&d.createElement(n.Heading,{className:M,isTruncated:!0,level:2,style:u.header,testId:F},s.content),(null==e?void 0:e.content)&&d.createElement(n.Text,{style:u.body,testId:x},e.content)),p&&d.createElement(n.Flex,{alignItems:"flex-start"},y)),v&&d.createElement(n.ButtonGroup,{size:t,testId:k},b&&d.createElement(n.Button,{className:m.default(O,`${O}--${g.secondary}`),onClick:c.onAction,style:u.secondaryButton,testId:_},c.title),f&&d.createElement(n.Button,{className:m.default(O,`${O}--${g.primary}`),onClick:i.onAction,style:u.primaryButton,testId:A},i.title)))}const L="amplify-inappmessaging-bannermessage";function z(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:l}=t;if(!s)return null;const{alignment:o="right",position:r="top"}=e,i="center"===o&&"middle"===r;return g.default.createElement(n.Flex,{className:m.default(L,{[`${L}--${r}`]:!i,[`${L}--${o}`]:!i,[`${L}--center-middle`]:i,[`${L}--full-width`]:a}),role:"dialog",testId:`inappmessaging-${r}banner-dialog`},g.default.createElement(q,Object.assign({},e,t,{orientation:"horizontal",buttonSize:"small",styles:l})))}const D="inappmessaging-backdrop";function T(e){var{onClick:t}=e,a=v(e,["onClick"]);return g.default.createElement(n.View,Object.assign({className:"amplify-inappmessaging-backdrop","data-testid":D,onClick:t},a))}const U="amplify-inappmessaging-fullscreenmessage";function V(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:l}=t,{onClose:o}=e;if(!s)return null;const r=()=>d.createElement(n.Flex,{className:m.default(U,{[`${U}--fullscreen`]:a}),role:"dialog",testId:"inappmessaging-fullscreen-dialog"},d.createElement(q,Object.assign({},e,t,{styles:l})));if(a)return d.createElement(r,null);const i=function(e,t={}){return function(a){return g.default.createElement(g.default.Fragment,null,g.default.createElement(T,Object.assign({},t)),g.default.createElement(n.Flex,{className:"amplify-inappmessaging-backdrop-content-container"},g.default.createElement(n.View,{className:"amplify-inappmessaging-backdrop-content"},g.default.createElement(e,Object.assign({},a)))))}}(r,{onClick:o});return d.createElement(i,null)}const G="amplify-inappmessaging-modalmessage",H=`${G}__dialog`;function J(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:l}=t;return s?d.createElement(n.Flex,{className:G},d.createElement(n.Flex,{className:m.default(H,{[`${H}--full-width`]:a}),role:"dialog",testId:"inappmessaging-modal-dialog"},d.createElement(q,Object.assign({},e,t,{styles:l})))):null}const K=new s.ConsoleLogger("Notifications.InAppMessaging"),Q=e=>{let t;try{t=new URL(e)}catch(t){return void K.warn(`Unsupported url provided: ${e}`)}const{protocol:n}=t;"http:"===n||"https:"===n?window.open(e):K.warn(`Unsupported url protocol provided: ${n}`)};function W(e){return null}const X={BannerMessage:z,CarouselMessage:W,FullScreenMessage:V,ModalMessage:J},Y=({action:t,url:n})=>{e.handleMessageAction({action:t,url:n,handleMessageLinkAction:Q})};function Z({components:t}){const a=g.default.useMemo((()=>Object.assign(Object.assign({},X),t)),[t]),{Component:s,props:l}=e.useMessage({components:a,onMessageAction:Y});return g.default.createElement(n.ThemeProvider,{colorMode:"light"},g.default.createElement(s,Object.assign({},l)))}Z.BannerMessage=z,Z.CarouselMessage=W,Z.FullScreenMessage=V,Z.ModalMessage=J,Object.defineProperty(exports,"InAppMessagingProvider",{enumerable:!0,get:function(){return e.InAppMessagingProvider}}),Object.defineProperty(exports,"useInAppMessaging",{enumerable:!0,get:function(){return e.useInAppMessaging}}),exports.InAppMessageDisplay=Z,exports.withInAppMessaging=function(t,n){return function(a){return g.default.createElement(e.InAppMessagingProvider,null,g.default.createElement(Z,Object.assign({},n)),g.default.createElement(t,Object.assign({},a)))}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@aws-amplify/ui-react-core-notifications"),t=require("react"),n=require("@aws-amplify/ui-react"),a=require("classnames"),s=require("@aws-amplify/core"),r=require("@aws-amplify/ui"),o=require("@aws-amplify/ui-react/internal"),l=require("tinycolor2");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u,m=c(t),d=i(t),g=i(a),p=i(l);!function(e){e.Aborted="ABORTED",e.Failure="FAILURE",e.Fetching="FETCHING",e.Success="SUCCESS"}(u||(u={}));const y=new s.ConsoleLogger("Notifications.InAppMessaging");const f=({body:e,container:t,header:n,primaryButton:a,secondaryButton:s})=>({body:e?.style??{},container:t?.style??{},header:n?.style??{},primaryButton:a?.style??{},secondaryButton:s?.style??{}});function b(e){const{image:n,onDisplay:a}=e,s=t.useRef(!1),{hasRenderableImage:r,isImageFetching:o}=function(e){const{src:n}=e??{},a=!!n,[s,r]=t.useState(a?u.Fetching:null),o=s===u.Fetching,l=s===u.Success;return t.useEffect((()=>{if(!a)return;const e=new Image;e.onload=()=>{r(u.Success)},e.onabort=()=>{y.error(`Image load aborted: ${n}`),r(u.Aborted)},e.onerror=()=>{y.error(`Image failed to load: ${n}`),r(u.Failure)},e.src=n}),[a,n]),{hasRenderableImage:l,isImageFetching:o}}(n),l=!o;t.useEffect((()=>{!s.current&&l&&(a?.(),s.current=!0)}),[a,l]);const i=t.useMemo((()=>function({styleParams:e}){const{payloadStyle:t,overrideStyle:n}=e;return{body:{...t?.body,...n?.body},closeIconButton:n?.closeIconButton??{},container:{...t?.container,...n?.container},header:{...t?.header,...n?.header},image:n?.image??{},primaryButton:{...t?.primaryButton,...n?.primaryButton},secondaryButton:{...t?.secondaryButton,...n?.secondaryButton}}}({styleParams:{payloadStyle:f(e),overrideStyle:e.style}})),[e]);return{hasRenderableImage:r,shouldRenderMessage:l,styles:i}}function E({className:e,dismissButtonLabel:t="Dismiss message",onClick:a,style:s,...r}){return m.createElement(n.Button,{ariaLabel:t,className:e,onClick:a,style:s,variation:"link",...r},m.createElement(o.IconClose,{"aria-hidden":"true",size:"1.5rem"}))}const h="amplify-inappmessaging-messagelayout",I=`${h}__button`,M=`${h}__close-button`,B=`${h}__content`,$=`${h}__header`,x=`${h}__image-container`,F=`${h}__text-container`,k="inappmessaging-messagelayout-bodytext",C="inappmessaging-messagelayout-buttongroup",N="inappmessaging-messagelayout-content",w="inappmessaging-messagelayout-headertext",A="inappmessaging-messagelayout-imagecontainer",_="inappmessaging-messagelayout",v="inappmessaging-messagelayout-primarybutton",S="inappmessaging-messagelayout-secondarybutton",R="inappmessaging-messagelayout-textcontainer",P=(e,t="light")=>{const{backgroundColor:n}=e??{};if(!n)return t;return p.default(n).isDark()?"dark":"light"},j=e=>!r.isEmpty(e);function O({body:e,buttonSize:t,hasRenderableImage:a,header:s,image:r,onClose:o,orientation:l="vertical",primaryButton:i,secondaryButton:c,styles:u}){const d=m.useMemo((()=>({primary:P(u.primaryButton),secondary:P(u.secondaryButton)})),[u]),p="horizontal"===l,y=m.createElement(E,{className:M,onClick:o,style:u.closeIconButton}),f=j(i),b=j(c),O=f||b;return m.createElement(n.Flex,{className:h,"data-testid":_,style:u.container},!p&&m.createElement(n.Flex,{justifyContent:"flex-end"},y),m.createElement(n.Flex,{className:g.default(B,`${B}--${l}`),"data-testid":N},a&&m.createElement(n.Flex,{className:g.default(x,`${x}--${l}`),"data-testid":A},m.createElement(n.Image,{alt:"In-App Message Image",src:r?.src,style:u.image})),m.createElement(n.Flex,{className:g.default(F,`${F}--${l}`),"data-testid":R},s?.content&&m.createElement(n.Heading,{className:$,isTruncated:!0,level:2,style:u.header,testId:w},s.content),e?.content&&m.createElement(n.Text,{style:u.body,testId:k},e.content)),p&&m.createElement(n.Flex,{alignItems:"flex-start"},y)),O&&m.createElement(n.ButtonGroup,{size:t,testId:C},b&&m.createElement(n.Button,{className:g.default(I,`${I}--${d.secondary}`),onClick:c.onAction,style:u.secondaryButton,testId:S},c.title),f&&m.createElement(n.Button,{className:g.default(I,`${I}--${d.primary}`),onClick:i.onAction,style:u.primaryButton,testId:v},i.title)))}const q="amplify-inappmessaging-bannermessage";function z(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:r}=t;if(!s)return null;const{alignment:o="right",position:l="top"}=e,i="center"===o&&"middle"===l;return d.default.createElement(n.Flex,{className:g.default(q,{[`${q}--${l}`]:!i,[`${q}--${o}`]:!i,[`${q}--center-middle`]:i,[`${q}--full-width`]:a}),role:"dialog",testId:`inappmessaging-${l}banner-dialog`},d.default.createElement(O,{...e,...t,orientation:"horizontal",buttonSize:"small",styles:r}))}const L="inappmessaging-backdrop";function D({onClick:e,...t}){return d.default.createElement(n.View,{className:"amplify-inappmessaging-backdrop","data-testid":L,onClick:e,...t})}const T="amplify-inappmessaging-fullscreenmessage";function U(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:r}=t,{onClose:o}=e;if(!s)return null;const l=()=>m.createElement(n.Flex,{className:g.default(T,{[`${T}--fullscreen`]:a}),role:"dialog",testId:"inappmessaging-fullscreen-dialog"},m.createElement(O,{...e,...t,styles:r}));if(a)return m.createElement(l,null);const i=function(e,t={}){return function(a){return d.default.createElement(d.default.Fragment,null,d.default.createElement(D,{...t}),d.default.createElement(n.Flex,{className:"amplify-inappmessaging-backdrop-content-container"},d.default.createElement(n.View,{className:"amplify-inappmessaging-backdrop-content"},d.default.createElement(e,{...a}))))}}(l,{onClick:o});return m.createElement(i,null)}const V="amplify-inappmessaging-modalmessage",G=`${V}__dialog`;function H(e){const t=b(e),a=n.useBreakpointValue([!0,!0,!1]),{shouldRenderMessage:s,styles:r}=t;return s?m.createElement(n.Flex,{className:V},m.createElement(n.Flex,{className:g.default(G,{[`${G}--full-width`]:a}),role:"dialog",testId:"inappmessaging-modal-dialog"},m.createElement(O,{...e,...t,styles:r}))):null}const J=new s.ConsoleLogger("Notifications.InAppMessaging"),K=e=>{let t;try{t=new URL(e)}catch{return void J.warn(`Unsupported url provided: ${e}`)}const{protocol:n}=t;"http:"===n||"https:"===n?window.open(e):J.warn(`Unsupported url protocol provided: ${n}`)};function Q(e){return null}const W={BannerMessage:z,CarouselMessage:Q,FullScreenMessage:U,ModalMessage:H},X=({action:t,url:n})=>{e.handleMessageAction({action:t,url:n,handleMessageLinkAction:K})};function Y({components:t}){const a=d.default.useMemo((()=>({...W,...t})),[t]),{Component:s,props:r}=e.useMessage({components:a,onMessageAction:X});return d.default.createElement(n.ThemeProvider,{colorMode:"light"},d.default.createElement(s,{...r}))}Y.BannerMessage=z,Y.CarouselMessage=Q,Y.FullScreenMessage=U,Y.ModalMessage=H,Object.defineProperty(exports,"InAppMessagingProvider",{enumerable:!0,get:function(){return e.InAppMessagingProvider}}),Object.defineProperty(exports,"useInAppMessaging",{enumerable:!0,get:function(){return e.useInAppMessaging}}),exports.InAppMessageDisplay=Y,exports.withInAppMessaging=function(t,n){return function(a){return d.default.createElement(e.InAppMessagingProvider,null,d.default.createElement(Y,{...n}),d.default.createElement(t,{...a}))}};