{"version":3,"file":"order-details.js?v=ac139dc76bd59942046a","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/filters/to-currency.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/element-enumerator.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/widget-initializer.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/order-details.js"],"sourcesContent":["// Based on https://stackoverflow.com/a/48550430\r\nimport { widgetInitialisation } from \"../functions/widget-init\";\r\nimport { NumberUtils } from \"../functions/number-utils\";\r\n\r\nwidgetInitialisation(initToCurrencyFilter);\r\nwidgetInitialisation(initToCurrencyNoCentsFilter);\r\n\r\nfunction initToCurrencyFilter() {\r\n Vue.filter('toCurrency', function (value, options) {\r\n options = options || {};\r\n\r\n var minimumFractionDigits = '2';\r\n if (typeof options.minimumFractionDigits === \"number\") {\r\n minimumFractionDigits = options.minimumFractionDigits.toString();\r\n }\r\n\r\n if (typeof value !== \"number\") {\r\n var parsedValue = NumberUtils.tryParse(value);\r\n if (parsedValue === null)\r\n return value;\r\n\r\n value = parsedValue;\r\n }\r\n\r\n var currencyCode = options.currencyCode || 'USD';\r\n\r\n var formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: currencyCode,\r\n minimumFractionDigits: minimumFractionDigits\r\n });\r\n\r\n return formatter.format(value);\r\n });\r\n}\r\n\r\nfunction initToCurrencyNoCentsFilter() {\r\n Vue.filter('toCurrencyNoCents', function (value, options) {\r\n options = options || {};\r\n\r\n var minimumFractionDigits = '0';\r\n if (typeof options.minimumFractionDigits === \"number\") {\r\n minimumFractionDigits = options.minimumFractionDigits.toString();\r\n }\r\n\r\n if (typeof value !== \"number\") {\r\n var parsedValue = NumberUtils.tryParse(value);\r\n if (parsedValue === null)\r\n return value;\r\n\r\n value = parsedValue;\r\n }\r\n\r\n var currencyCode = options.currencyCode || 'USD';\r\n\r\n var formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: currencyCode,\r\n minimumFractionDigits: minimumFractionDigits\r\n });\r\n\r\n return formatter.format(parseInt(value,10));\r\n });\r\n}","export var ElementsEnumerator = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\rElementsEnumerator.prototype.getElements = function () {\r var elements = document.getElementsByClassName(this.elementsClass);\r\n var elementIdPrefix = this.elementsClass + \"-\";\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n element.setAttribute(\"id\", (elementIdPrefix + (i + 1)));\r\n }\r return elements;\r};","import { widgetInitialisation } from \"./widget-init\";\r\nimport { ElementsEnumerator } from \"./element-enumerator\";\r\n\r\nconst initializedVueAppAttrName = \"data-vue-initialized\";\r\n\r\nexport var WidgetInitializer = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\r\nWidgetInitializer.prototype.initialize = function (initializationCallback) {\r\n var that = this;\r\n widgetInitialisation(function () {\r\n return innerInitialization.call(that, initializationCallback);\r\n });\r\n};\r\n\r\nfunction innerInitialization(initializationCallback) {\r\n var elementsEnumerator = new ElementsEnumerator(this.elementsClass);\r\n var notInitializedElements = elementsEnumerator.getElements();\r\n for (var i = 0; i < notInitializedElements.length; i++) {\r\n var element = notInitializedElements[i];\r\n if (element.hasAttribute(initializedVueAppAttrName))\r\n return;\r\n\r\n var newElement = initializationCallback(element);\r\n if (newElement)\r\n { element = newElement; }\r\n\r\n element.setAttribute(initializedVueAppAttrName, '');\r\n }\r\n};","import { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport { ArrayUtils } from \"../functions/array-utils\";\r\nimport { ConfigUtils } from \"../functions/config-utils\";\r\nimport { StringUtils } from \"../functions/string-utils\";\r\n\r\nimport '../filters/to-currency';\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.ORDER_DETAILS);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.ORDER_DETAILS, function () {\r\n widgetInitializer.initialize(initOrderDetails);\r\n});\r\n\r\nfunction initOrderDetails(element) {\r\n var config = ConfigUtils.getConfigFor(element);\r\n\r\n var vueApp = new Vue({\r\n el: '#' + element.id,\r\n data: {\r\n order: {},\r\n\r\n loading: true\r\n },\r\n computed: {\r\n hasShipment: function () {\r\n if (ArrayUtils.isNotEmpty(this.order.order_shipments))\r\n return true;\r\n\r\n return false;\r\n },\r\n hasShippingAddress: function () {\r\n if (ArrayUtils.isNotEmpty(this.order.order_shipping_addresses))\r\n return true;\r\n\r\n return false;\r\n },\r\n hasOrderCoupons: function () {\r\n if (ArrayUtils.isNotEmpty(this.order.order_coupons))\r\n return true;\r\n\r\n return false;\r\n }\r\n },\r\n methods: {\r\n renderCoupons: function (orderCoupons) {\r\n return orderCoupons.map((oc) => oc.code).join(\", \");\r\n },\r\n parsePoNumber: function (customer_message) {\r\n if (customer_message) {\r\n var customerMessage = StringUtils.jsonTryParse(customer_message);\r\n\r\n if (customerMessage != null)\r\n return customerMessage.poNumber;\r\n }\r\n }\r\n },\r\n created: function () {\r\n var orderId = config.orderId;\r\n var that = this;\r\n\r\n GlobalApp.OrderService.getOrderById(orderId)\r\n .then(function (data) {\r\n if (!data)\r\n data = {};\r\n\r\n that.order = data;\r\n\r\n that.order.billing_address = that.order.billing_address || {};\r\n\r\n that.order.order_products = that.order.order_products || [];\r\n\r\n that.order.order_shipping_addresses = that.order.order_shipping_addresses || [];\r\n\r\n that.order.order_shipments = that.order.order_shipments || [];\r\n\r\n that.order.render_coupons = that.renderCoupons(that.order.order_coupons);\r\n\r\n that.order.po_number = that.parsePoNumber(that.order.customer_message);\r\n\r\n that.loading = false;\r\n })\r\n .catch(() => {\r\n console.warn(\"Orders API is not working. Please try again later!\");\r\n });\r\n }\r\n });\r\n\r\n return vueApp.$el;\r\n}"],"names":["widgetInitialisation","Vue","filter","value","options","minimumFractionDigits","toString","parsedValue","NumberUtils","tryParse","currencyCode","Intl","NumberFormat","style","currency","format","parseInt","ElementsEnumerator","elementsClass","this","prototype","getElements","elements","document","getElementsByClassName","elementIdPrefix","i","length","setAttribute","WidgetInitializer","innerInitialization","initializationCallback","notInitializedElements","element","hasAttribute","newElement","initialize","that","call","widgetInitializer","Constants","COMPONENTS","ORDER_DETAILS","initOrderDetails","config","ConfigUtils","getConfigFor","el","id","data","order","loading","computed","hasShipment","ArrayUtils","isNotEmpty","order_shipments","hasShippingAddress","order_shipping_addresses","hasOrderCoupons","order_coupons","methods","renderCoupons","orderCoupons","map","oc","code","join","parsePoNumber","customer_message","customerMessage","StringUtils","jsonTryParse","poNumber","created","orderId","GlobalApp","OrderService","getOrderById","then","billing_address","order_products","render_coupons","po_number","catch","console","warn","$el","registerInitializationHandler"],"sourceRoot":""}