{"version":3,"file":"../../Asi.WebAppRoot.V10/iparts/commerce/SubmitOrderButtonLink/SubmitOrderButtonLinkDisplay.js","mappings":";;AAAA;AACA;AACA;AACA;AACA;AACAA,MAAM,CAACC,QAAQ,CAAC,CAACC,KAAK,CAAC,YAAY;EAC/BF,MAAM,CAAC,eAAe,CAAC,CAACG,IAAI,CAAC,YAAY;IACrCC,IAAI,CAACJ,MAAM,CAAC,IAAI,CAAC,CAACK,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrC,CAAC,CAAC;AACN,CAAC,CAAC;;AAEF;AACA,CAAC,YAAY;EAET,IAAI,OAAOC,MAAM,CAACC,WAAW,KAAK,UAAU,EAAE,OAAO,KAAK;EAE1D,SAASA,WAAWA,CAACC,KAAK,EAAEC,MAAM,EAAE;IAChCA,MAAM,GAAGA,MAAM,IAAI;MAAEC,OAAO,EAAE,KAAK;MAAEC,UAAU,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAK,CAAC;IACtE,IAAIC,GAAG,GAAGZ,QAAQ,CAACa,WAAW,CAAC,aAAa,CAAC;IAC7CD,GAAG,CAACE,eAAe,CAACP,KAAK,EAAEC,MAAM,CAACC,OAAO,EAAED,MAAM,CAACE,UAAU,EAAEF,MAAM,CAACG,MAAM,CAAC;IAC5E,OAAOC,GAAG;EACd;EAEAP,MAAM,CAACC,WAAW,GAAGA,WAAW;AACpC,CAAC,EAAE,CAAC;AAEJ,IAAIS,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIC,sBAAsB,EAAK;EAC3D,IAAIC,cAAc,GAAG,KAAK;EAC1B,IAAIC,gBAAgB,GAAG,KAAK;EAC5B;EACA;EACA;EACA;EACAlB,QAAQ,CAACmB,gBAAgB,CAAC,UAAU,EAAE,YAAY;IAC9CF,cAAc,GAAG,IAAI;IACrBG,cAAc,CAAC,CAAC;IAChB;IACA;EACJ,CAAC,CAAC;;EAEFpB,QAAQ,CAACmB,gBAAgB,CAAC,oBAAoB,EAAE,YAAM;IAClDD,gBAAgB,GAAG,IAAI;IACvBE,cAAc,CAAC,CAAC;EACpB,CAAC,CAAC;EAEF,SAASA,cAAcA,CAAA,EAAG;IACtB,IAAIC,aAAa,GAAGhB,MAAM,CAACiB,iBAAiB,IAAIjB,MAAM,CAACkB,UAAU;IACjE,IAAIN,cAAc,KAAKC,gBAAgB,IAAI,CAACG,aAAa,CAAC,EACtDG,YAAY,CAACR,sBAAsB,EAAE,EAAE,CAAC;EAChD;AACJ,CAAC;;AAED;AACA,IAAIS,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,oBAAoB,EAAK;EAClD,IAAIC,YAAY,GAAG3B,QAAQ,CAAC4B,cAAc,CAACF,oBAAoB,CAAC;EAChE,IAAInB,KAAK,GAAG,IAAID,WAAW,CAAC,cAAc,EAAE;IAAEG,OAAO,EAAE,IAAI;IAAEE,MAAM,EAAE;MAAEkB,cAAc,EAAEH;IAAqB;EAAE,CAAC,CAAC;EAChHC,YAAY,CAACG,aAAa,CAACvB,KAAK,CAAC;AACrC,CAAC;;AAED;AACAF,MAAM,CAAC0B,4BAA4B,GAAG;EAClChB,4BAA4B,EAA5BA,4BAA4B;EAC5BU,qBAAqB,EAArBA;AACJ,CAAC,C","sources":["webpack://Fundraising/./SubmitOrderButtonLink/src/SubmitOrderButtonLinkDisplay.js"],"sourcesContent":["/* Find any element which has a 'data-onload' function and load that to simulate an onload. \r\n * This allows us to put fake onload event son things like DEV's and inputs.\r\n * The main use would be when you need to setup some javascript which requires the asp.net ClientID\r\n * passed into it. Saves a ton of messy code behind and DOM magic storing classes in the DOM.\r\n */\r\njQuery(document).ready(function () {\r\n jQuery('[data-onload]').each(function () {\r\n eval(jQuery(this).data('onload'));\r\n });\r\n});\r\n\r\n// IE 11 polyfill for CustomEvent\r\n(function () {\r\n\r\n if (typeof window.CustomEvent === \"function\") return false;\r\n\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: null };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n window.CustomEvent = CustomEvent;\r\n})();\r\n\r\nlet registerDoSubmitSubscription = (submitButtonClientName) => {\r\n let isCardinalDone = false;\r\n let isPayCentralDone = false;\r\n // We're going to use events to allow the interception of the submit button\r\n // We do not directly call the submit button now, the firing of this event does the postback\r\n // (after all other checks have been made: such as validation and 3DS)\r\n // This is the last step after all the client side work \r\n document.addEventListener(\"doSubmit\", function () {\r\n isCardinalDone = true;\r\n handlePostBack();\r\n //WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(submitButtonClientId, \"\", true, \"\", \"\", false, true));\r\n // or\r\n });\r\n\r\n document.addEventListener(\"doSubmitPayCentral\", () => {\r\n isPayCentralDone = true;\r\n handlePostBack();\r\n });\r\n\r\n function handlePostBack() {\r\n let isFrameLoaded = window.PayCentralAdapter || window.PayCentral;\r\n if (isCardinalDone && (isPayCentralDone || !isFrameLoaded))\r\n __doPostBack(submitButtonClientName, '');\r\n }\r\n};\r\n\r\n// Fire an event, a hook, which happens right before we'll POST the page to submit the payment/comboOrder.\r\nlet fireBeforeSubmitEvent = (submitButtonClientId) => { \r\n let submitButton = document.getElementById(submitButtonClientId);\r\n let event = new CustomEvent(\"beforeSubmit\", { bubbles: true, detail: { submitButtonId: submitButtonClientId } });\r\n submitButton.dispatchEvent(event);\r\n};\r\n\r\n//Register on for access from the global DOM (this file is our application entry point)\r\nwindow.SubmitOrderButtonLinkDisplay = {\r\n registerDoSubmitSubscription,\r\n fireBeforeSubmitEvent\r\n};"],"names":["jQuery","document","ready","each","eval","data","window","CustomEvent","event","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","registerDoSubmitSubscription","submitButtonClientName","isCardinalDone","isPayCentralDone","addEventListener","handlePostBack","isFrameLoaded","PayCentralAdapter","PayCentral","__doPostBack","fireBeforeSubmitEvent","submitButtonClientId","submitButton","getElementById","submitButtonId","dispatchEvent","SubmitOrderButtonLinkDisplay"],"sourceRoot":""}