{"version":3,"file":"8023.c298fe1f91aa8aafc901.js","mappings":"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","sources":["webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/cw.pages.rewards.js","webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/lib/cw.dtTools.js","webpack://shipley-du-lib/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://shipley-du-lib/./common/js/du/appEnum/AlertSeverity.ts","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?be2d","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?f028","webpack://shipley-du-lib/./common/js/du/interfaces/utility/IClickableAlertMessage.ts","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?8475","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?5e44","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?5d6e","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?9576","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue"],"sourcesContent":["import moment from \"moment\";\r\nimport Mustache from \"mustache\";\r\nimport \"bootstrap/dist/js/bootstrap\";\r\nimport \"flot\";\r\nimport \"flot/jquery.flot.time\";\r\nimport \"flot/jquery.flot.stack\";\r\nimport \"flot/jquery.flot.categories\";\r\nimport \"flot/jquery.flot.pie\";\r\nimport \"jquery.flot.tooltip\";\r\nimport * as BootstrapDialog from \"bootstrap3-dialog\";\r\nimport \"../cw/lib/cw.dtTools\";\r\n\r\nimport { createNonRoutedApp } from \"@du/AppStartup\";\r\nimport pdfViewer from \"@components/utility/pdfViewer\";\r\n\r\n(function (cw, $) {\r\n  \"use strict\";\r\n  $.extend(true, cw, {\r\n    pages: {\r\n      rewards: {\r\n        args: null,\r\n        url: \"/account/rewards\",\r\n        title: \"Rewards\",\r\n        rewardPointStatus: {\r\n          Active: 1,\r\n          PendingApproval: 2,\r\n          DeniedApproval: 3,\r\n        },\r\n        expiredStatusColor: cw.constants.colors[4],\r\n        panes: {\r\n          getRewarded: 1,\r\n          myRewards: 2,\r\n          pointHistory: 3,\r\n        },\r\n        redeemStatus: {\r\n          Unknown: 0,\r\n          Success: 1,\r\n          SuccessButGiftcardProcessing: 2,\r\n          BadInput: 500,\r\n          BillingAccountSelectionRequired: 501,\r\n          NotEnoughPointsToRedeemSelection: 502,\r\n          SystemError: 503,\r\n          VendorDoesNotHaveInventory: 504,\r\n          BillingAccountIsPastDue: 505,\r\n          NoActiveProductsOnAccount: 506,\r\n        },\r\n        myRewardsDataTable: null,\r\n        myPointsHistoryDataTable: null,\r\n        LOWEST_REWARD_DENOMINATION_LOW_BALANCE_5: 5,\r\n        LOWEST_REWARD_DENOMINATION_LOW_BALANCE_10: 10,\r\n        REWARD_DENOMINATION_15: 15,\r\n        REWARD_DENOMINATION_25: 25,\r\n        REWARD_DENOMINATION_50: 50,\r\n        ledgerRecordType: {\r\n          Reward: 1,\r\n          Redeem: 2,\r\n        },\r\n        init: function (args) {\r\n          var self = this;\r\n\r\n          this.args = args || {};\r\n\r\n          self.getLookups(function () {\r\n            self.bindInteractions(args);\r\n            cw.loadingIndicator.stop();\r\n          });\r\n        },\r\n        getDashSummaryData: function (s1acctId, callback) {\r\n          var self = cw.pages.rewards;\r\n          cw.webservices.getJson(\"rewards/get-points-balance\", s1acctId, function (dData) {\r\n            if (!self.args) {\r\n              self.args = {};\r\n            }\r\n            if (dData && dData.length > 0) {\r\n              self.args.dashboardSummary = dData[0];\r\n            } else {\r\n              self.args.dashboardSummary = {};\r\n            }\r\n            callback(dData);\r\n          });\r\n        },\r\n        getLookups: function (callback) {\r\n          var self = this;\r\n          if (!self.args.lookups) {\r\n            cw.loadingIndicator.start();\r\n            cw.webservices.getJson(\r\n              \"rewards/get-rewards-lookup/\" + self.args.selectedS1AccountId,\r\n              null,\r\n              function (lookups) {\r\n                self.args.lookups = lookups;\r\n                callback(self.lookups);\r\n                cw.loadingIndicator.stop();\r\n              }\r\n            );\r\n          } else {\r\n            callback(self.args.lookups);\r\n          }\r\n        },\r\n        bindInteractions: function (args) {\r\n          var self = this;\r\n\r\n          if (window.history) {\r\n            window.history.pushState({ title: self.title, url: self.url }, self.title, self.url);\r\n          }\r\n\r\n          if (args.$viewport) {\r\n            cw.loadingIndicator.start();\r\n\r\n            var tmplArgs = $.extend(\r\n              {\r\n                hideExpiringTransactions:\r\n                  args.dashboardSummary.PendingTransactionPoints > 0 &&\r\n                  args.dashboardSummary.ExpiringIn30DaysPointTotal <= 0,\r\n                hidePendingTransactions: args.dashboardSummary.PendingTransactionPoints <= 0,\r\n              },\r\n              args.dashboardSummary\r\n            );\r\n\r\n            cw.templating.GetRenderedTemplateHTML(\r\n              \"CwRewards.html\",\r\n              cw.appEnum.TemplateType.CwWidget,\r\n              {\r\n                breadCrumbs: cw.pages.dashboard.getBreadcrumbMarkup([\r\n                  { Title: cw.pages.dashboard.title, url: cw.pages.dashboard.url },\r\n                  { Title: self.title, url: self.url, isActive: true },\r\n                ]),\r\n                dashboardSummary: tmplArgs,\r\n                RewardsTosUrl: self.args.brandObj.RewardsTosUrl,\r\n                CanRedeemNewRewards: self.args.CanRedeemNewRewards,\r\n              },\r\n              function (renderedTmpl) {\r\n                args.$viewport.empty();\r\n                args.$viewport.append(renderedTmpl);\r\n                $(\"html, body\").scrollTop(0);\r\n                self.postHTMLInit(args);\r\n                if (self.args.CanRedeemNewRewards) {\r\n                  self.loadGetRewardedPane(true);\r\n                } else {\r\n                  self.loadMyRewardsPane();\r\n                }\r\n              }\r\n            );\r\n          } else {\r\n            cw.pages.dashboard.bindApplicationEvents(args);\r\n            self.postHTMLInit(args);\r\n            if (self.args.CanRedeemNewRewards) {\r\n              self.loadGetRewardedPane(true);\r\n            } else {\r\n              self.loadMyRewardsPane();\r\n            }\r\n          }\r\n        },\r\n        postHTMLInit: function (args) {\r\n          var self = this;\r\n          $(\"#get-rewarded\").tab(\"show\");\r\n\r\n          var $rInWrap = $(\".rewards-inner-wrapper\");\r\n          var w = $rInWrap.width();\r\n          var winH = $rInWrap.height();\r\n          var orgW = w;\r\n          var orientation = cw.utility.getScreenOrientation();\r\n\r\n          if (orientation >= 0) {\r\n            if (orientation === 90 || orientation === 270) {\r\n              orgW = winH;\r\n            }\r\n\r\n            $rInWrap.css({ maxWidth: w + \"px\" });\r\n\r\n            window.addEventListener(\"orientationchange\", function (event) {\r\n              if (self.myPointsHistoryDataTable) {\r\n                $rInWrap.css({ maxWidth: \"100%\" });\r\n                w = $rInWrap.width();\r\n                var screenAngle = cw.utility.getScreenOrientation();\r\n\r\n                if (w > orgW && (screenAngle === 0 || screenAngle === 180)) {\r\n                  w = orgW;\r\n                } else if (w > winH && (screenAngle === 90 || screenAngle === 270)) {\r\n                  w = winH;\r\n                }\r\n\r\n                $rInWrap.css({ maxWidth: w + \"px\" });\r\n                self.myPointsHistoryDataTable.columns.adjust().draw();\r\n                $rInWrap.css({ maxWidth: \"100%\" });\r\n              }\r\n            });\r\n          }\r\n\r\n          $('a[data-toggle=\"tab\"]').off(\"shown.bs.tab\");\r\n          $('a[data-toggle=\"tab\"]').on(\"shown.bs.tab\", function (e) {\r\n            //e.target // newly activated tab\r\n            //e.relatedTarget // previous active tab\r\n\r\n            var selectedPaneHash = e.target.hash;\r\n            switch (selectedPaneHash) {\r\n              case \"#get-rewarded\":\r\n                self.loadGetRewardedPane(false);\r\n                break;\r\n              case \"#my-rewards\":\r\n                self.loadMyRewardsPane();\r\n                break;\r\n              case \"#point-history\":\r\n                self.loadPointHistoryPane();\r\n                break;\r\n            }\r\n\r\n            //$('.rewards-inner-wrapper').css({ maxWidth: '100%' });\r\n\r\n            cw.analytics(function () {\r\n              _hsq.push([\"setPath\", self.url + selectedPaneHash]);\r\n              _hsq.push([\"trackPageView\"]);\r\n            });\r\n\r\n            var analyticsObj = {\r\n              event: \"rewards-\" + selectedPaneHash.replace(\"#\", \"\") + \"-tab-view\",\r\n            };\r\n\r\n            cw.analytics(function () {\r\n              dataLayer.push(analyticsObj);\r\n            });\r\n\r\n            return true;\r\n          });\r\n\r\n          $('.rewards-wrapper a[data-toggle=\"tab\"]').on(\"click\");\r\n          $('.rewards-wrapper a[data-toggle=\"tab\"]').on(\"click\", function (e) {\r\n            e.preventDefault();\r\n            $(this).tab(\"show\");\r\n          });\r\n\r\n          self.initSummaryPane($(\".rewards-wrapper .rewards-summary-wrapper\"), args.dashboardSummary);\r\n        },\r\n        initSummaryPane: function ($target, rewardSummaryObj) {\r\n          var self = cw.pages.rewards;\r\n          //TODO: fix the styles from these\r\n          //$target.find('.legend-target > div').tooltip({trigger:'hover'});\r\n\r\n          var data = [\r\n            {\r\n              label: \"\", //\"New this billing period\",\r\n              data: rewardSummaryObj.RecentlyAddedPointAmount,\r\n              color: cw.constants.shipleyGreen,\r\n            },\r\n            {\r\n              label: \"\", // \"Existing\",\r\n              data: rewardSummaryObj.ExistingPoints,\r\n              color: cw.constants.shipleyBlue,\r\n            },\r\n          ];\r\n\r\n          if (rewardSummaryObj.PendingTransactionPoints) {\r\n            data.push({\r\n              label: \"\", // \"Pending Transaction\",\r\n              data: rewardSummaryObj.PendingTransactionPoints,\r\n              color: cw.constants.ctaOrange,\r\n            });\r\n          }\r\n\r\n          if (\r\n            rewardSummaryObj.PendingTransactionPoints === 0 ||\r\n            (rewardSummaryObj.ExpiringIn30DaysPointTotal > 0 && rewardSummaryObj.PendingTransactionPoints > 0)\r\n          ) {\r\n            data.unshift({\r\n              label: \"\", //\"Expiring within 30 days\",\r\n              data: rewardSummaryObj.ExpiringIn30DaysPointTotal,\r\n              color: cw.constants.ctaYellow,\r\n            });\r\n          }\r\n\r\n          //make it look pretty when we have no data\r\n          if (rewardSummaryObj.UnusedPointTotal === 0 && rewardSummaryObj.PendingTransactionPoints <= 0) {\r\n            data = [\r\n              {\r\n                label: \"\",\r\n                data: 1,\r\n                color: cw.constants.shipleyBlue,\r\n              },\r\n            ];\r\n          }\r\n\r\n          var options = {\r\n            legend: {\r\n              show: false,\r\n            },\r\n            series: {\r\n              pie: {\r\n                show: true,\r\n                innerRadius: 0.92,\r\n                radius: 1,\r\n              },\r\n            },\r\n            grid: {\r\n              hoverable: false,\r\n            },\r\n            label: {\r\n              show: false,\r\n              formatter: function () {\r\n                return \"\";\r\n              },\r\n            },\r\n            tooltip: false,\r\n            tooltipOpts: {\r\n              cssClass: \"flotTip\",\r\n              content: \"%p pts. %s\",\r\n              defaultTheme: false,\r\n            },\r\n          };\r\n\r\n          //$('.graph-target').height($('.graph-wrapper').height());\r\n          var $inner = $target.find(\".graph-inner\");\r\n\r\n          if (!$inner.height()) {\r\n            $inner.height($(\".graph-wrapper\").height() * 0.66);\r\n          }\r\n\r\n          $.plot($inner, data, options);\r\n\r\n          $target\r\n            .find(\".points-amount\")\r\n            .html(\r\n              ' <span class=\"points-amount-val fs-xxs-32 fs-xs-18 fs-sm-30 fs-md-24 fs-lg-34\">' +\r\n                rewardSummaryObj.UnusedPointTotal +\r\n                '</span><span class=\"fs-xs-14 pos-rel\">pts</span>'\r\n            );\r\n\r\n          //rebind the legend\r\n          cw.templating.GetRenderedTemplateHTML(\r\n            \"CwRewards.html\",\r\n            cw.appEnum.TemplateType.CwWidget,\r\n            {\r\n              breadCrumbs: cw.pages.dashboard.getBreadcrumbMarkup([\r\n                { Title: cw.pages.dashboard.title, url: cw.pages.dashboard.url },\r\n                { Title: self.title, url: self.url, isActive: true },\r\n              ]),\r\n              dashboardSummary: rewardSummaryObj,\r\n              CanRedeemNewRewards: self.args.CanRedeemNewRewards,\r\n            },\r\n            function (renderedTmpl) {\r\n              var $newLeg = $(renderedTmpl).find(\".legend-target\");\r\n              $target.find(\".legend-target\").replaceWith($newLeg);\r\n            }\r\n          );\r\n\r\n          var $htmlWrapper = $target.find(\".rewards-html-wrapper .carousel\");\r\n          if ($htmlWrapper.length > 0) {\r\n            $htmlWrapper.carousel();\r\n            //$htmlWrapper.carousel({interval: 2000000});\r\n          }\r\n        },\r\n        getCurrentPointBalance: function () {\r\n          var pts = $(\".rewards-summary-wrapper .points-amount-val\").html();\r\n          if ($.isNumeric(pts) && parseInt(pts) > 0) {\r\n            return parseInt(pts);\r\n          }\r\n\r\n          return 0;\r\n        },\r\n        hasAvailableBalance: function (denom, balance) {\r\n          var self = this;\r\n          return denom * self.args.lookups.RewardPointToDollarMultiplier < balance;\r\n        },\r\n        hasInventoryAvailable: function (denom, inv) {\r\n          var self = this;\r\n          return inv <= denom;\r\n        },\r\n        getLowestRewardDenomination: function (balance, inventory) {\r\n          var self = cw.pages.rewards;\r\n          var inv = inventory.range.start;\r\n          var lowestDenom =\r\n            inv < self.LOWEST_REWARD_DENOMINATION_LOW_BALANCE_5\r\n              ? self.LOWEST_REWARD_DENOMINATION_LOW_BALANCE_5\r\n              : inv;\r\n\r\n          if (\r\n            self.hasAvailableBalance(self.REWARD_DENOMINATION_15, balance) &&\r\n            self.hasInventoryAvailable(self.REWARD_DENOMINATION_15, inv)\r\n          ) {\r\n            lowestDenom = self.REWARD_DENOMINATION_15;\r\n          } else if (\r\n            self.hasAvailableBalance(self.LOWEST_REWARD_DENOMINATION_LOW_BALANCE_10, balance) &&\r\n            self.hasInventoryAvailable(self.LOWEST_REWARD_DENOMINATION_LOW_BALANCE_10, inv)\r\n          ) {\r\n            lowestDenom = self.LOWEST_REWARD_DENOMINATION_LOW_BALANCE_10;\r\n          }\r\n          return lowestDenom;\r\n        },\r\n        loadGetRewardedPane: function (firstLoad) {\r\n          var self = cw.pages.rewards;\r\n          var $loadingInd = $(\"#get-rewarded .loading-ind\");\r\n          var $content = $(\"#get-rewarded .tab-content-target\");\r\n          var $gcFilter = $(\"#get-rewarded .gc-vendor-filter\");\r\n\r\n          var redeemBtnClickHandler = function (e) {\r\n            e.preventDefault();\r\n            var $this = $(this);\r\n            var vendorCode = $this.data(\"vendorCode\");\r\n            var RewardsTosUrl = $this.data(\"RewardsTosUrl\");\r\n            var balance = self.getCurrentPointBalance();\r\n            var dollarBal = balance / self.args.lookups.RewardPointToDollarMultiplier;\r\n            var inv = self.args.vendorInv.inventories[vendorCode];\r\n            var vendor = self.args.vendorInv.vendors.filterSingle(function (v) {\r\n              return v.vendorCode === vendorCode;\r\n            });\r\n            var lowestDenom = self.getLowestRewardDenomination(balance, inv);\r\n\r\n            var defaultDenoms = [lowestDenom, self.REWARD_DENOMINATION_25, self.REWARD_DENOMINATION_50];\r\n            var isInternalReward = vendorCode.startsWith(self.args.lookups.InternalVendorCode);\r\n            var internalBlurb = \"\";\r\n            if (isInternalReward) {\r\n              internalBlurb = \"<em>Dollar value will be applied to your account.</em>\";\r\n              if (dollarBal > 0) {\r\n                defaultDenoms = [\r\n                  lowestDenom,\r\n                  self.REWARD_DENOMINATION_25,\r\n                  self.REWARD_DENOMINATION_50,\r\n                  dollarBal,\r\n                ];\r\n              }\r\n\r\n              defaultDenoms = defaultDenoms.sort(function (a, b) {\r\n                return a - b;\r\n              });\r\n            }\r\n\r\n            var denominations =\r\n              inv.fixed && inv.fixed.length > 0\r\n                ? inv.fixed\r\n                    .filter(function (f) {\r\n                      if (f.value >= lowestDenom) {\r\n                        return f;\r\n                      }\r\n                    })\r\n                    .map(function (i) {\r\n                      return i.value;\r\n                    })\r\n                : defaultDenoms;\r\n\r\n            var isDenominationAvailable = function (amount, invObj) {\r\n              if (invObj && invObj.fixed && invObj.fixed.length > 0) {\r\n                return (\r\n                  invObj.fixed.filter(function (f) {\r\n                    if (f.value === amount && (f.count === null || f.count > 0)) {\r\n                      return f;\r\n                    }\r\n                  }).length > 0\r\n                );\r\n              }\r\n\r\n              if (invObj && invObj.range) {\r\n                return invObj.range.start <= amount && invObj.range.end >= amount;\r\n              }\r\n\r\n              return false;\r\n            };\r\n\r\n            //filter any dup values\r\n            denominations = denominations.filter(function (demon, index, me) {\r\n              return me.indexOf(demon) === index;\r\n            });\r\n\r\n            var denomOpts = denominations.map(function (d) {\r\n              //Don't add a button if inventory doesn't support it\r\n              if (inv.range.start > d && inv.range.end < d) {\r\n                return;\r\n              }\r\n              var disabled = !isDenominationAvailable(d, inv) || dollarBal < d ? \" disabled\" : \"\";\r\n              var colSpan = denominations.length === 4 ? \"6\" : \"4\";\r\n              return (\r\n                '<div class=\"col-xs-12 col-sm-' +\r\n                colSpan +\r\n                ' pb15 text-center\">' +\r\n                '\t<div class=\"enrollment-select rewards-select' +\r\n                disabled +\r\n                '\">' +\r\n                '\t\t<input id=\"denom-' +\r\n                d +\r\n                '\" type=\"radio\" class=\"denomination-opt ' +\r\n                disabled +\r\n                '\" name=\"denominations\"  value=\"' +\r\n                d +\r\n                '\" ' +\r\n                (!isDenominationAvailable(d, inv) || dollarBal < d ? \"disabled\" : \"\") +\r\n                \">\" +\r\n                '\t\t<label for=\"denom-' +\r\n                d +\r\n                '\">$' +\r\n                d.toFixed(Math.floor(d) !== d ? 2 : 0) +\r\n                ' <span class=\"pt-amt\">(' +\r\n                (d * self.args.lookups.RewardPointToDollarMultiplier).toFixed(0) +\r\n                \" points)</span></label>\" +\r\n                \"\t</div>\" +\r\n                \"</div>\"\r\n              );\r\n            });\r\n\r\n            var hasRedeemOption = denominations.some(function (d) {\r\n              if (isDenominationAvailable(d, inv) && dollarBal >= d) {\r\n                return d;\r\n              }\r\n            });\r\n\r\n            var pointsNeeded = 0;\r\n            if (!hasRedeemOption) {\r\n              pointsNeeded = defaultDenoms[0] * self.args.lookups.RewardPointToDollarMultiplier - balance;\r\n            }\r\n\r\n            cw.modal.Open({\r\n              data: {\r\n                selectedVendor: vendor,\r\n                balance: balance,\r\n              },\r\n              title: \"Select \" + vendor.name + \" Amount\",\r\n              modalBody: $(\r\n                '<div class=\"rewards-denom-select-wrapper\">' +\r\n                  '\t<div class=\"row\">' +\r\n                  '\t\t<div class=\"err-pnl hidden\"></div>' +\r\n                  \"\t</div>\" +\r\n                  '\t<div class=\"row\">' +\r\n                  '\t\t<div class=\"col-xs-12 text-center vendor-logo\">' +\r\n                  '\t\t\t<img src=\"' +\r\n                  (vendor.vendorLogo\r\n                    ? vendor.vendorLogo\r\n                    : \"/s1static/content/images/unbranded-giftcard.png\") +\r\n                  '\" onerror=\"this.onerror=null;this.src=\\'/s1static/content/images/unbranded-giftcard.png\\'\">' +\r\n                  \"\t\t</div>\" +\r\n                  \"\t</div>\" +\r\n                  '\t<div class=\"row\">' +\r\n                  denomOpts.join(\"\") +\r\n                  \"</div>\" +\r\n                  '\t<div class=\"row\">' +\r\n                  '\t\t<div class=\"col-xs-12 text-center fs-xs-12 text-muted\">' +\r\n                  internalBlurb +\r\n                  \"</div>\" +\r\n                  \"\t</div>\" +\r\n                  '\t<div class=\"row\">' +\r\n                  '\t\t<div class=\"col-xs-12 text-right point-amount-target fs-xs-16 text-muted\">Current Balance: ' +\r\n                  balance +\r\n                  \"<br />&nbsp;<br />&nbsp;</div>\" +\r\n                  \"\t</div>\" +\r\n                  (hasRedeemOption\r\n                    ? '\t<div class=\"row\">' +\r\n                      '\t\t<div class=\"col-xs-12 text-center pt10 fs-xs-12\">' +\r\n                      '\t\t\tBy selecting \"<em>Redeem Reward</em>\" below, you agree to <a href=\"#\" class=\"rewards-tos\">Shipley\\'s Rewards terms and conditions</a>.' +\r\n                      \"\t\t</div>\" +\r\n                      \"\t</div>\"\r\n                    : '\t<div class=\"row\">' +\r\n                      '\t\t<div class=\"col-xs-12 text-center pb10 fs-xs-18\">' +\r\n                      '\t\t\t<h3 class=\"mt0\">Only <strong><em>' +\r\n                      pointsNeeded +\r\n                      \"</em></strong> points till your next reward.</h3><p>Add additional services to your account to maximize your rewards.</p>\" +\r\n                      \"\t\t</div>\" +\r\n                      \"\t</div>\") +\r\n                  '<div class=\"row\">' +\r\n                  '\t\t<div class=\"col-xs-12 text-center pt10 fs-xs-12\">' +\r\n                  \"\t\t\t<i>All reward redemptions are final and non-refundable</i>\" +\r\n                  \"\t\t</div>\" +\r\n                  \"\t</div>\" +\r\n                  \"</div>\"\r\n              ),\r\n              buttons: [\r\n                {\r\n                  label: '<i class=\"fa fa-times\"></i> Cancel',\r\n                  cssClass: \"btn-secondary btn-xs-block\",\r\n                  action: function (dialogRef) {\r\n                    dialogRef.close();\r\n                  },\r\n                },\r\n                {\r\n                  label: '<i class=\"fa fa-star\"></i> Redeem Reward',\r\n                  cssClass: \"btn-primary btn-xs-block disabled get-reward-btn\",\r\n                  action: self.redeemReward,\r\n                },\r\n              ],\r\n              onShownCallback: function (m) {\r\n                var pntBalance = m.getData(\"balance\");\r\n                var $goBtn = m.$modalFooter.find(\".get-reward-btn\");\r\n                var $pntAmtTarget = m.$modalBody.find(\".point-amount-target\");\r\n                m.$modalBody.find(\".denomination-opt\").on(\"input\", function () {\r\n                  $goBtn.removeClass(\"disabled\");\r\n                  var pntCost = parseInt(\r\n                    ($(this).val() * self.args.lookups.RewardPointToDollarMultiplier).toFixed(0)\r\n                  );\r\n                  $pntAmtTarget.removeClass(\"text-muted\");\r\n                  $pntAmtTarget.html(\r\n                    \"Current Balance: \" +\r\n                      pntBalance +\r\n                      \"<br/><em>Point Amount: -\" +\r\n                      pntCost +\r\n                      \"</em><br />Ending Balance: \" +\r\n                      (pntBalance - pntCost).toFixed(0) +\r\n                      \"\"\r\n                  );\r\n                });\r\n\r\n                m.$modalBody.find(\".rewards-tos\").on(\"click\", function (e) {\r\n                  e.preventDefault();\r\n                  cw.modal.openContentModal(\"Rewards Terms of Service\", \"RewardsTOS\");\r\n                });\r\n              },\r\n            });\r\n          };\r\n\r\n          var favoriteClickHandler = function (e) {\r\n            e.preventDefault();\r\n            var $this = $(this);\r\n            var $icon = $this.find(\"i\");\r\n            if ($icon.hasClass(\"fa-regular fa-heart\")) {\r\n              //add favorite\r\n              $this.attr(\"title\", \"UnFavorite Brand?\");\r\n              $icon.removeClass(\"fa-regular fa-heart\");\r\n              $icon.addClass(\"fa-heart\");\r\n              cw.webservices.getJson(\r\n                \"rewards/add-favorite-vendor/\" + self.args.selectedS1AccountId,\r\n                $this.data(\"vendorCode\"),\r\n                function (wasSaved) {\r\n                  if (!wasSaved) {\r\n                    //revert to unfavorited\r\n                    $this.attr(\"title\", \"Favorite Brand?\");\r\n                    $icon.removeClass(\"fa-heart\");\r\n                    $icon.addClass(\"fa-regular fa-heart\");\r\n                  }\r\n                }\r\n              );\r\n            } else {\r\n              //remove favorite\r\n              $this.attr(\"title\", \"Favorite Brand?\");\r\n              $icon.removeClass(\"fa-heart\");\r\n              $icon.addClass(\"fa-regular fa-heart\");\r\n              cw.webservices.getJson(\r\n                \"rewards/remove-favorite-vendor/\" + self.args.selectedS1AccountId,\r\n                $this.data(\"vendorCode\"),\r\n                function (wasSaved) {\r\n                  if (!wasSaved) {\r\n                    //revent to favorited\r\n                    $this.attr(\"title\", \"UnFavorite Brand?\");\r\n                    $icon.removeClass(\"fa-regular fa-heart\");\r\n                    $icon.addClass(\"fa-heart\");\r\n                  }\r\n                }\r\n              );\r\n            }\r\n          };\r\n\r\n          var vendorFilterHandler = function (e) {\r\n            var $this = $(this);\r\n            var term = $this.val().toLowerCase();\r\n            if (term) {\r\n              $content.find(\".vendor-wrapper\").each(function () {\r\n                var $me = $(this);\r\n                var vName = $me.find(\".vendor-name\").html().toLowerCase();\r\n                if (vName.includes(term)) {\r\n                  $me.removeClass(\"hidden\");\r\n                } else {\r\n                  $me.addClass(\"hidden\");\r\n                }\r\n              });\r\n            } else {\r\n              $content.find(\".vendor-wrapper\").removeClass(\"hidden\");\r\n            }\r\n\r\n            if ($content.find(\".vendor-wrapper:not(.hidden)\").length < 1) {\r\n              $content.append(\r\n                '<div class=\"xxs-12 alert alert-warning flex no-vendor-filter-matches mt15\"><div class=\"pt10 pr5 pl5\"><i class=\"fa fa-exclamation-triangle fs-xs-30\"></i></div><div class=\"pt15 pl10\">No vendors match your filter.</div></div>'\r\n              );\r\n            } else {\r\n              $content.find(\".no-vendor-filter-matches\").remove();\r\n            }\r\n          };\r\n\r\n          if (!(firstLoad && $content.find(\"*\").length > 0)) {\r\n            $content.addClass(\"hidden\");\r\n            $content.empty();\r\n            $loadingInd.removeClass(\"hidden\");\r\n\r\n            cw.webservices.getJson(\r\n              \"rewards/get-available-rewards/\" + self.args.selectedS1AccountId,\r\n              null,\r\n              function (venInv) {\r\n                self.args.vendorInv = venInv;\r\n                $loadingInd.addClass(\"hidden\");\r\n                $content.removeClass(\"hidden\");\r\n                venInv.hasInternalVendor =\r\n                  venInv.vendors &&\r\n                  venInv.vendors.some(function (v) {\r\n                    return v.vendorCode.startsWith(self.args.lookups.InternalVendorCode);\r\n                  });\r\n\r\n                cw.templating.GetRenderedTemplateHTML(\r\n                  \"CwRewards.html\",\r\n                  cw.appEnum.TemplateType.CwWidget,\r\n                  {\r\n                    vendorInv: venInv,\r\n                    RewardsTosUrl: self.args.brandObj.RewardsTosUrl,\r\n                    CanRedeemNewRewards: self.args.CanRedeemNewRewards,\r\n                  },\r\n                  function (renderedTmpl) {\r\n                    var $rt = $(renderedTmpl);\r\n                    var src = $rt.find(\"#get-rewarded .tab-content-target\").html();\r\n                    var $pstDue = $rt.find(\".past-due-alert\");\r\n                    if ($pstDue.length > 0 && $(\"#get-rewarded .past-due-alert\").length < 1) {\r\n                      $(\"#get-rewarded .get-rewarded-col\").prepend($pstDue.clone());\r\n                    }\r\n                    $content.append(src);\r\n                    $content.find(\".btn-redeem\").on(\"click\", redeemBtnClickHandler);\r\n                    $content.find(\".favorite-brand\").on(\"click\", favoriteClickHandler);\r\n                    $loadingInd.addClass(\"hidden\");\r\n                    $content.removeClass(\"hidden\");\r\n                    $gcFilter.off(\"input\");\r\n                    $gcFilter.on(\"input\", vendorFilterHandler);\r\n                  }\r\n                );\r\n              }\r\n            );\r\n          } else {\r\n            $loadingInd.addClass(\"hidden\");\r\n            $content.removeClass(\"hidden\");\r\n            $content.find(\".btn-redeem\").on(\"click\", redeemBtnClickHandler);\r\n            $content.find(\".favorite-brand\").on(\"click\", favoriteClickHandler);\r\n\r\n            $gcFilter.off(\"input\");\r\n            $gcFilter.on(\"input\", vendorFilterHandler);\r\n          }\r\n        },\r\n        loadMyRewardsPane: function () {\r\n          var self = cw.pages.rewards;\r\n          var $loadingInd = $(\"#my-rewards .loading-ind\");\r\n          var $content = $(\"#my-rewards .tab-content-target\");\r\n          var rewardPointsTblClass = \"reward-purchases-tbl\";\r\n\r\n          if ($content.find(\".\" + rewardPointsTblClass).length < 1 || !self.myRewardsDataTable) {\r\n            $content.addClass(\"hidden\");\r\n            $content.empty();\r\n            $loadingInd.removeClass(\"hidden\");\r\n            self.getLookups(function (lookups) {\r\n              var tblToolsExpanded = false;\r\n              var defaultPerPage = 50;\r\n              var tblOpts = {\r\n                lengthMenu: [\r\n                  [25, 50, 100],\r\n                  [25, 50, 100],\r\n                ],\r\n                iDisplayLength: defaultPerPage,\r\n                //responsive: false,\r\n                order: [[5, \"desc\"]],\r\n                deferRender: true,\r\n                //\"scrollX\": true,\r\n                dom: tblToolsExpanded\r\n                  ? 'l<\"dt-head-right\"f>rtip'\r\n                  : '<\"dt-filter-wrapper\"f<\"dt-tool-expand-btn btn btn-secondary\"<\"fa fa-gear\">>><rt><ip>',\r\n                language: {\r\n                  search: \"Filter:\",\r\n                  emptyTable: '<div class=\"well\">You do not currently have any redeemed rewards</div>',\r\n                  zeroRecords: '<div class=\"well\">No rewards match your filter</div>',\r\n                  processing: '<i class=\"fa fa-spinner fa-pulse fs-xs-24\"></i>',\r\n                },\r\n                processing: true,\r\n                serverSide: true,\r\n                infoCallback: function (settings, start, end, max, total, pre) {\r\n                  if (tblToolsExpanded || total > defaultPerPage) {\r\n                    return \"Showing \" + (total > 0 ? start : 0) + \" to \" + end + \" of \" + total + \" results\";\r\n                  }\r\n\r\n                  return \"\";\r\n                },\r\n                ajax: function (data, callback, settings) {\r\n                  var d = $.extend({ S1AccountIds: [self.args.selectedS1AccountId] }, data);\r\n                  cw.webservices.getJson(\"rewards/get-purchased-rewards\", d, function (rtnData) {\r\n                    rtnData.data = rtnData.data.map(function (s1) {\r\n                      s1.rowGuid = cw.utility.newGuid();\r\n                      return s1;\r\n                    });\r\n                    callback(rtnData);\r\n                  });\r\n                },\r\n                columns: [\r\n                  {\r\n                    title: \"\", //'Customer',\r\n                    sortable: true,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      //return '<a href=\"\">' + row.BillingName + '</a><br /><div class=\"text-muted\"><small>Webuser: ' + row.PurchasingUser.DisplayName + ' (<a href=\"#\" class=\"get-web-user-history\">' + row.PurchasingUser.LoginName + '</a>)</small></div>';\r\n                      return \"\";\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"Card\",\r\n                    sortable: true,\r\n                    data: function (row, type, val, meta) {\r\n                      switch (type) {\r\n                        case \"display\":\r\n                          if (tblToolsExpanded) {\r\n                            return (\r\n                              '<div class=\"\">' +\r\n                              '\t\t<img src=\"' +\r\n                              (row.Vendor.vendorLogo\r\n                                ? row.Vendor.vendorLogo\r\n                                : \"/s1static/content/images/unbranded-giftcard.png\") +\r\n                              '\" onerror=\"this.onerror=null;this.src=\\'/s1static/content/images/unbranded-giftcard.png\\'\" style=\"width:50px\" />' +\r\n                              \"\t\t\t<br/>\" +\r\n                              row.Vendor.name +\r\n                              \"\t</div>\"\r\n                            );\r\n                          } else {\r\n                            //row.Giftcard.statusHtmlFormatted = '<span class=\"badge\" style=\"color:white;background-color:' + self.getGiftCardStatusColor(row.Giftcard.GiftCardStatus) + ';\">' + self.getGiftCardStatusText(row.Giftcard.GiftCardStatus, lookups) + '</span>';\r\n                            //row.Giftcard.cardExpiryFormatted = cw.utility.tableSortByDate(row.Giftcard.CardExpiry, 'display', 'L');\r\n                            //row.Giftcard.cardAmountFormatted = row.Giftcard.cardAmount.toFixed(2);\r\n                            return Mustache.to_html(\r\n                              lookups.RewardGiftCardRowSrcHtml,\r\n                              self.mangleGiftCardForDisplay(row, lookups, false)\r\n                            );\r\n                          }\r\n                        default:\r\n                          return row.Vendor.name;\r\n                      }\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"Amount\",\r\n                    sortable: true,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      return (\r\n                        '<div class=\"text-center\">$' +\r\n                        row.Giftcard.cardAmount.toFixed(2) +\r\n                        '<br /><span class=\"text-muted\"><small>' +\r\n                        row.PointAmount +\r\n                        \" pts.</small></span></div>\"\r\n                      );\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"\", //'Audit Number',\r\n                    sortable: false,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      //return row.Giftcard.auditNumber;\r\n                      return \"\";\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"Status\",\r\n                    sortable: true,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      return (\r\n                        '<div class=\"text-center\"><span class=\"badge\" style=\"color:white;background-color:' +\r\n                        self.getGiftCardStatusColor(row.Giftcard.GiftCardStatus) +\r\n                        ';\">' +\r\n                        self.getGiftCardStatusText(row.Giftcard.GiftCardStatus, lookups) +\r\n                        \"</span></div>\"\r\n                      );\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"Created\",\r\n                    sortable: true,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      return cw.utility.tableSortByDate(row.CreatedDate, type, \"L\");\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"Card Expiry\",\r\n                    sortable: true,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      return cw.utility.tableSortByDate(row.Giftcard.CardExpiry, type, \"L\");\r\n                    },\r\n                  },\r\n                  {\r\n                    title: \"\",\r\n                    className: \"text-center\",\r\n                    sortable: false,\r\n                    visible: false,\r\n                    data: function (row, type, val, meta) {\r\n                      return (\r\n                        '<a class=\"btn btn-primary btn-xs gift-card-details\" data-row-guid=\"' +\r\n                        row.rowGuid +\r\n                        '\"><i class=\"fa fa-fw fa-eye\"></i> Details</a>'\r\n                      );\r\n                    },\r\n                  },\r\n                ],\r\n              };\r\n\r\n              $content.append(\r\n                cw.utility.getTableMarkup(\r\n                  tblOpts.columns.map(function (c) {\r\n                    return c.title;\r\n                  }),\r\n                  [rewardPointsTblClass, tblToolsExpanded ? \"expanded-tools\" : \"condensed-tools\"]\r\n                )\r\n              );\r\n\r\n              self.myRewardsDataTable = $content.find(\".\" + rewardPointsTblClass).DataTable(tblOpts);\r\n              $loadingInd.addClass(\"hidden\");\r\n              $content.removeClass(\"hidden\");\r\n\r\n              var $tbl = $content.find(\".\" + rewardPointsTblClass);\r\n\r\n              $tbl.on(\"click\", \"tbody tr\", function () {\r\n                if (!tblToolsExpanded) {\r\n                  return;\r\n                }\r\n\r\n                cw.loadingIndicator.start();\r\n                var d = self.myRewardsDataTable.row(this).data();\r\n\r\n                cw.webservices.getJson(\r\n                  \"Rewards/get-purchase-details-by-audit-number/\" +\r\n                    self.args.selectedS1AccountId +\r\n                    \"/\" +\r\n                    d.Giftcard.auditNumber,\r\n                  null,\r\n                  function (gcResp) {\r\n                    gcResp = self.mangleGiftCardForDisplay(gcResp, lookups, true);\r\n\r\n                    var html = Mustache.to_html(lookups.RewardGiftCardRowSrcHtml, gcResp);\r\n                    cw.modal.Open({\r\n                      data: {\r\n                        gc: gcResp,\r\n                      },\r\n                      title: d.Vendor.name + \" - $\" + d.Giftcard.amount,\r\n                      modalBody: $(html),\r\n                      buttons: [cw.modal.closeButton],\r\n                      onShownCallback: function (m) {\r\n                        var gcObj = m.getData(\"gc\");\r\n\r\n                        if (gcObj.Giftcard.claimUrl) {\r\n                          //bind external claim to modal \"button\" as an anchor for the target=\"_blank\" to open a new window\r\n                          var claimBtnCssClass = \"external-claim-btn\";\r\n                          m.$modalFooter\r\n                            .find(\".bootstrap-dialog-footer-buttons\")\r\n                            .append(\r\n                              '<a class=\"btn btn-primary btn-xs-block ' +\r\n                                claimBtnCssClass +\r\n                                '\" href=\"' +\r\n                                gcObj.Giftcard.claimUrl +\r\n                                '\" target=\"_blank\"><i class=\"fa fa-star\"></i> View Reward</a>'\r\n                            );\r\n\r\n                          m.$modalFooter.find(\".\" + claimBtnCssClass).on(\"click\", function (e) {\r\n                            //make sure to not do e.preventDefault(); here\r\n\r\n                            m.close();\r\n                            return true; //allow browser to open new window\r\n                          });\r\n                        }\r\n\r\n                        cw.loadingIndicator.stop();\r\n                      },\r\n                    });\r\n                  }\r\n                );\r\n              });\r\n\r\n              var visibilityToggleColIdx = [2, 4, 5, 6];\r\n              $content.on(\"click\", \".dt-tool-expand-btn\", function (e) {\r\n                e.preventDefault();\r\n                var $this = $(this);\r\n\r\n                self.myRewardsDataTable.clear();\r\n                if ($this.hasClass(\"selected\")) {\r\n                  //hide table options\r\n                  $this.removeClass(\"selected\");\r\n                  tblToolsExpanded = false;\r\n                  visibilityToggleColIdx.forEach(function (i) {\r\n                    self.myRewardsDataTable.column(i).visible(false);\r\n                  });\r\n\r\n                  $tbl.addClass(\"condensed-tools\");\r\n                } else {\r\n                  //show table options\r\n                  $this.addClass(\"selected\");\r\n                  tblToolsExpanded = true;\r\n                  visibilityToggleColIdx.forEach(function (i) {\r\n                    self.myRewardsDataTable.column(i).visible(true);\r\n                  });\r\n                  $tbl.removeClass(\"condensed-tools\");\r\n                }\r\n\r\n                self.myRewardsDataTable.draw(false);\r\n              });\r\n            });\r\n          } else {\r\n            self.myRewardsDataTable.clear();\r\n            $loadingInd.addClass(\"hidden\");\r\n            $content.removeClass(\"hidden\");\r\n            self.myRewardsDataTable.ajax.reload();\r\n          }\r\n        },\r\n        mangleGiftCardForDisplay: function (gcObj, lookups, forDisplayInModal, reviewSite) {\r\n          var self = cw.pages.rewards;\r\n          if (gcObj) {\r\n            gcObj.Giftcard.statusHtmlFormatted =\r\n              '<span class=\"badge\" style=\"color:white;background-color:' +\r\n              self.getGiftCardStatusColor(gcObj.Giftcard.GiftCardStatus) +\r\n              ';\">' +\r\n              self.getGiftCardStatusText(gcObj.Giftcard.GiftCardStatus, lookups) +\r\n              \"</span>\";\r\n            gcObj.Giftcard.cardExpiryFormatted = cw.utility.tableSortByDate(\r\n              gcObj.Giftcard.CardExpiry,\r\n              \"display\",\r\n              \"L\"\r\n            );\r\n            gcObj.CreatedDateFormatted = cw.utility.tableSortByDate(gcObj.CreatedDate, \"display\", \"L\");\r\n            gcObj.Giftcard.cardAmountFormatted = gcObj.Giftcard.cardAmount.toFixed(2);\r\n\r\n            if (forDisplayInModal) {\r\n              gcObj.hideClaimUrl = true;\r\n              gcObj.condensedLayout = true;\r\n              gcObj.showRemoteRedemptionInstructions = gcObj.Giftcard.claimUrl ? true : false;\r\n              gcObj.showInternalRedemptionInstructions =\r\n                !gcObj.Giftcard.claimUrl && gcObj.Vendor.vendorCode.startsWith(lookups.InternalVendorCode)\r\n                  ? true\r\n                  : false;\r\n              if (\r\n                reviewSite !== null &&\r\n                typeof reviewSite !== \"undefined\" &&\r\n                reviewSite.FeedbackSiteUrl &&\r\n                reviewSite.FeedbackSiteUrl !== \"\"\r\n              ) {\r\n                gcObj.GoogleReviewUrl = reviewSite.FeedbackSiteUrl;\r\n              }\r\n            }\r\n          }\r\n\r\n          return gcObj;\r\n        },\r\n        getRewardPointSourceColor: function (pointSource) {\r\n          switch (pointSource) {\r\n            case cw.appEnum.RewardPointSource.BillingTransaction:\r\n              return cw.constants.colors[1];\r\n            case cw.appEnum.RewardPointSource.ManuallyAwarded:\r\n              return cw.constants.colors[9];\r\n            case cw.appEnum.RewardPointSource.NewRewardsUser:\r\n              return cw.constants.colors[3];\r\n            default:\r\n              return cw.constants.colors[cw.constants.colors.length - 1];\r\n            //return '#eee';\r\n          }\r\n        },\r\n        getRewardPointSourceText: function (pointSource, lookups) {\r\n          var kv = lookups.RewardPointSources.filterSingle(function (s) {\r\n            return s.Key === pointSource;\r\n          });\r\n          if (kv) {\r\n            return kv.Value;\r\n          }\r\n\r\n          return \"\";\r\n        },\r\n        loadPointHistoryPane: function () {\r\n          var self = cw.pages.rewards;\r\n          var $loadingInd = $(\"#point-history .loading-ind\");\r\n          var $content = $(\"#point-history .tab-content-target\");\r\n          $content.addClass(\"hidden\");\r\n          $content.empty();\r\n          $loadingInd.removeClass(\"hidden\");\r\n          self.getLookups(function (lookups) {\r\n            var tblOpts = {\r\n              lengthMenu: [\r\n                [25, 50, 100],\r\n                [25, 50, 100],\r\n              ],\r\n              iDisplayLength: 25,\r\n              scrollX: true,\r\n              order: [[4, \"desc\"]],\r\n              deferRender: true,\r\n              dom: 'l<\"dt-head-right\"f>rtip',\r\n              language: {\r\n                search: \"Filter:\",\r\n                emptyTable: \"No points history\",\r\n                zeroRecords: \"No points history\",\r\n              },\r\n              processing: true,\r\n              serverSide: true,\r\n              ajax: function (data, callback, settings) {\r\n                cw.webservices.getJson(\r\n                  \"rewards/get-point-history/\" + self.args.selectedS1AccountId,\r\n                  $.extend({ ShowGiftCardRedemptions: true }, data),\r\n                  function (pointHistory) {\r\n                    if (!$loadingInd.hasClass(\"hidden\")) {\r\n                      $loadingInd.addClass(\"hidden\");\r\n                      $content.removeClass(\"hidden\");\r\n                    }\r\n                    callback(pointHistory);\r\n                  }\r\n                );\r\n              },\r\n              createdRow: function (row, data, index) {\r\n                if (data.RecordType === self.ledgerRecordType.Redeem) {\r\n                  $(row).addClass(\"alert alert-warning\");\r\n                } else {\r\n                  $(row).removeClass(\"alert alert-warning\");\r\n                }\r\n              },\r\n              columns: [\r\n                {\r\n                  title: \"Name\",\r\n                  sortable: true,\r\n                  visible: false,\r\n                  data: function (row, type, val, meta) {\r\n                    return row.BillingName;\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Account#/Vendor\",\r\n                  sortable: true,\r\n                  data: function (row, type, val, meta) {\r\n                    switch (row.RecordType) {\r\n                      case self.ledgerRecordType.Redeem:\r\n                        return (\r\n                          '<div class=\"flex\" style=\"align-items:center;\"><img src=\"' +\r\n                          row.ImgUrl +\r\n                          '\" height=\"25\" onerror=\"this.onerror=null;this.src=\\'/s1static/content/images/unbranded-giftcard.png\\'\" class=\"mr10\" /><div>' +\r\n                          row.VendorName +\r\n                          \"</div></div>\"\r\n                        );\r\n                      case self.ledgerRecordType.Reward:\r\n                        if (row.RemoteSystemBillingAccountNumber) {\r\n                          return row.RemoteSystemBillingAccountNumber;\r\n                        } else {\r\n                          return (\r\n                            '<span class=\"badge\" style=\"background-color:' +\r\n                            self.getRewardPointSourceColor(row.RewardPointSourceId) +\r\n                            ';\">' +\r\n                            self.getRewardPointSourceText(row.RewardPointSourceId, lookups) +\r\n                            \"</span>\"\r\n                          );\r\n                        }\r\n                      default:\r\n                        return \"--\";\r\n                    }\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Invoice #\",\r\n                  sortable: true,\r\n                  data: function (row, type, val, meta) {\r\n                    if (row.ReferenceInvoiceId) {\r\n                      switch (type) {\r\n                        case \"display\":\r\n                          switch (row.RemoteSystemId) {\r\n                            case cw.appEnum.S1RemoteSystem.Nexant:\r\n                              return \"On utility bill\";\r\n                            case cw.appEnum.S1RemoteSystem.Cargas:\r\n                              return '<a href=\"#\" class=\"view-invoice\">' + row.ReferenceInvoiceId + \"</a>\";\r\n                            default:\r\n                              return row.RemoteSystemBillingAccountNumber;\r\n                          }\r\n                        default:\r\n                          return row.ReferenceInvoiceId;\r\n                      }\r\n                    }\r\n\r\n                    return \"--\";\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Points\",\r\n                  sortable: true,\r\n                  data: function (row, type, val, meta) {\r\n                    switch (row.RecordType) {\r\n                      case self.ledgerRecordType.Redeem:\r\n                        return row.PointAmount * -1;\r\n                      case self.ledgerRecordType.Reward:\r\n                        return row.PointAmount;\r\n                      default:\r\n                        return \"--\";\r\n                    }\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Created\",\r\n                  sortable: true,\r\n                  data: function (row, type, val, meta) {\r\n                    if (row.CreatedDate) {\r\n                      var m = moment(row.CreatedDate);\r\n                      switch (type) {\r\n                        case \"set\":\r\n                          return;\r\n                        case \"sort\":\r\n                          return m.format(\"x\");\r\n                        case \"display\":\r\n                          return m.format(\"L\");\r\n                        case \"filter\":\r\n                          return m.format(\"L\");\r\n                        default:\r\n                          return m.format(\"x\");\r\n                      }\r\n                    }\r\n\r\n                    return \"--\";\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Expiration\",\r\n                  sortable: true,\r\n                  data: function (row, type, val, meta) {\r\n                    return cw.utility.tableSortByDate(row.ExpirationDate, type, \"L\");\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Source\",\r\n                  sortable: true,\r\n                  cssClass: \"text-center\",\r\n                  visible: false,\r\n                  data: function (row, type, val, meta) {\r\n                    //if (type === 'display') {\r\n                    //\treturn '<span class=\"label\" style=\"color:#fff;background-color:' + self.getRewardPointSourceColor(row.RewardPointSourceId) + ';\">' + self.getRewardPointSourceText(row.RewardPointSourceId) + '</span>';\r\n                    //}\r\n\r\n                    //return self.getRewardPointSourceText(row.RewardPointSourceId);\r\n                    return \"\";\r\n                  },\r\n                },\r\n                {\r\n                  title: \"Status\",\r\n                  sortable: true,\r\n                  //cssClass: 'text-center',\r\n                  data: function (row, type, val, meta) {\r\n                    if (row.RecordType === self.ledgerRecordType.Reward) {\r\n                      if (type === \"display\") {\r\n                        if (row.IsExpired) {\r\n                          return (\r\n                            '<span class=\"badge\" style=\"color:#fff;background-color:' +\r\n                            self.expiredStatusColor +\r\n                            ';\">Expired</span>'\r\n                          );\r\n                        } else {\r\n                          return (\r\n                            '<span class=\"badge\" style=\"color:#fff;background-color:' +\r\n                            self.getRewardPointStatusColor(row.RewardPointStatusId) +\r\n                            ';\">' +\r\n                            self.getRewardPointStatusText(row.RewardPointStatusId) +\r\n                            \"</span>\"\r\n                          );\r\n                        }\r\n                      }\r\n\r\n                      if (row.IsExpired) {\r\n                        return \"Expired\";\r\n                      }\r\n                      return self.getRewardPointStatusText(row.RewardPointStatusId);\r\n                    }\r\n\r\n                    return \"--\";\r\n                  },\r\n                },\r\n              ],\r\n            };\r\n\r\n            var rewardPointsTblClass = \"reward-points-tbl\";\r\n            $content.append(\r\n              cw.utility.getTableMarkup(\r\n                tblOpts.columns.map(function (c) {\r\n                  return c.title;\r\n                }),\r\n                [rewardPointsTblClass]\r\n              )\r\n            );\r\n\r\n            $(\"#point-history\").on(\"click\", \".view-invoice\", function (e) {\r\n              e.preventDefault();\r\n              self.showReferencedInvoice($(this).text());\r\n            });\r\n\r\n            self.myPointsHistoryDataTable = $(\"#point-history .\" + rewardPointsTblClass).DataTable(tblOpts);\r\n\r\n            $(\"#point-history .\" + rewardPointsTblClass).tooltip({\r\n              selector: \".tool-tip\",\r\n              html: true,\r\n            });\r\n          });\r\n        },\r\n        showReferencedInvoice: function (invoiceId) {\r\n          var self = cw.pages.rewards;\r\n          if (invoiceId && cw.utility.isInt(invoiceId)) {\r\n            invoiceId = parseInt(invoiceId);\r\n\r\n            cw.loadingIndicator.start();\r\n            cw.webservices.getJson(\r\n              \"S1AccountManager/get-invoice-history\",\r\n              self.args.selectedS1AccountId,\r\n              function (invoiceHistory) {\r\n                if (invoiceHistory && invoiceHistory.length > 0) {\r\n                  var invoice = invoiceHistory.filterSingle(function (i) {\r\n                    if (i.InvoiceId === invoiceId) {\r\n                      return i;\r\n                    }\r\n                  });\r\n                  if (invoice && invoice.InvoiceDocumentId) {\r\n                    if (window.innerWidth < 991) {\r\n                      window.open(\"/gen-asset/document-viewer/\" + docId);\r\n                      cw.loadingIndicator.stop();\r\n                      return;\r\n                    } else {\r\n                      cw.modal.Open({\r\n                        data: { docId: invoice.InvoiceDocumentId },\r\n                        title: \"Invoice #\" + invoice.InvoiceId,\r\n                        modalBody: $('<div id=\"pdf-target\"></div>'),\r\n                        size: BootstrapDialog.SIZE_WIDE,\r\n                        successCallback: function (modalRef) {\r\n                          modalRef.close();\r\n                        },\r\n                        onShownCallback: function (modalRef) {\r\n                          var doc2 = modalRef.getData(\"docId\");\r\n                          createNonRoutedApp(pdfViewer, {\r\n                            pdfUrl: \"/gen-asset/document-viewer/\" + doc2,\r\n                            allowDownload: true,\r\n                            onPdfLoaded() {\r\n                              cw.loadingIndicator.stop();\r\n                            },\r\n                          }).mount(\"#pdf-target\");\r\n                        },\r\n                      });\r\n                      return;\r\n                    }\r\n                  }\r\n                }\r\n\r\n                cw.modal.Open({\r\n                  title: \"Invoice #\" + invoiceId + \" not found\",\r\n                  modalBody: $(\"<p>We were unable to find invoice #\" + invoiceId + \"</p>\"),\r\n                  size: BootstrapDialog.SIZE_WIDE,\r\n                  successCallback: function (modalRef) {\r\n                    modalRef.close();\r\n                  },\r\n                });\r\n                cw.loadingIndicator.stop();\r\n              }\r\n            );\r\n          }\r\n        },\r\n        redeemReward: function (m) {\r\n          var self = cw.pages.rewards;\r\n          var $redeemBtn = $(\".get-reward-btn\");\r\n          var ptBal = m.getData(\"balance\");\r\n          var selectedVendor = m.getData(\"selectedVendor\");\r\n\r\n          var $selectedOpt = m.$modalBody.find(\"input:checked\");\r\n          if ($selectedOpt.length < 1) {\r\n            return;\r\n          }\r\n\r\n          var selectedVal =\r\n            $selectedOpt.val() && $.isNumeric($selectedOpt.val()) ? parseFloat($selectedOpt.val()) : null;\r\n\r\n          if (\r\n            selectedVal &&\r\n            parseInt((selectedVal * self.args.lookups.RewardPointToDollarMultiplier).toFixed(0)) <= ptBal &&\r\n            !$redeemBtn.hasClass(\"disabled\")\r\n          ) {\r\n            var handleRedeemResponseFunc = function (redeemResp, mRef) {\r\n              var errFunc = function (title, text, m) {\r\n                cw.modal.Alert({\r\n                  title: title,\r\n                  text: text,\r\n                  successCallback: function () {\r\n                    m.close();\r\n                  },\r\n                });\r\n              };\r\n\r\n              var postPointSpendFunc = function (rdmResp) {\r\n                var analyticsObj = {\r\n                  event: \"redeemedReward\",\r\n                  category:\r\n                    rdmResp && rdmResp.RedeemedItem && rdmResp.RedeemedItem.Vendor\r\n                      ? rdmResp.RedeemedItem.Vendor.name\r\n                      : null,\r\n                  label: rdmResp.RedeemedItem.Giftcard.cardAmount,\r\n                  redeemedCardAmount: rdmResp.RedeemedItem.Giftcard.cardAmount,\r\n                  hasRewardsAccess: true,\r\n                  isRewardsRedeemer: true,\r\n                };\r\n\r\n                cw.analytics(function () {\r\n                  dataLayer.push(analyticsObj);\r\n                });\r\n\r\n                self.getDashSummaryData(self.args.selectedS1AccountId, function (dashSummary) {\r\n                  self.args.dashboardSummary = dashSummary && dashSummary.length > 0 ? dashSummary[0] : {};\r\n                  cw.pages.dashboard.args.RewardsPoints = self.args.dashboardSummary;\r\n                  cw.pages.dashboard.bindRewardsAndCarouselItems(self.args.dashboardSummary);\r\n                  self.initSummaryPane(\r\n                    $(\".rewards-wrapper .rewards-summary-wrapper\"),\r\n                    self.args.dashboardSummary\r\n                  );\r\n                });\r\n              };\r\n\r\n              var successFunc = function (resp) {\r\n                self.getLookups(function (lookups) {\r\n                  resp.RedeemedItem = self.mangleGiftCardForDisplay(\r\n                    resp.RedeemedItem,\r\n                    lookups,\r\n                    true,\r\n                    resp.ReviewSite\r\n                  );\r\n                  var html = Mustache.to_html(lookups.RewardGiftCardRowSrcHtml, resp.RedeemedItem);\r\n\r\n                  var closeBtnObj = $.extend(cw.modal.closeButton, {\r\n                    action: function (dr) {\r\n                      dr.close();\r\n                      dr.getData(\"parentModal\").close();\r\n                    },\r\n                  });\r\n\r\n                  cw.modal.Open({\r\n                    data: {\r\n                      parentModal: m,\r\n                      gcPurchaseResp: resp,\r\n                    },\r\n                    title: \"Success!\",\r\n                    modalBody: $(html),\r\n                    buttons: [closeBtnObj],\r\n                    onShownCallback: function (m) {\r\n                      var gcRep = m.getData(\"gcPurchaseResp\");\r\n\r\n                      if (gcRep.RedeemedItem.Giftcard.claimUrl) {\r\n                        //bind external claim to modal \"button\" as an anchor for the target=\"_blank\" to open a new window\r\n                        var claimBtnCssClass = \"external-claim-btn\";\r\n                        m.$modalFooter\r\n                          .find(\".bootstrap-dialog-footer-buttons\")\r\n                          .append(\r\n                            '<a class=\"btn btn-primary btn-xs-block ' +\r\n                              claimBtnCssClass +\r\n                              '\" href=\"' +\r\n                              gcRep.RedeemedItem.Giftcard.claimUrl +\r\n                              '\" target=\"_blank\"><i class=\"fa fa-star\"></i> View Reward</a>'\r\n                          );\r\n\r\n                        m.$modalFooter.find(\".\" + claimBtnCssClass).on(\"click\", function (e) {\r\n                          //make sure to not do e.preventDefault(); here\r\n                          m.close();\r\n                          m.getData(\"parentModal\").close();\r\n                          return true; //allow browser to open new window\r\n                        });\r\n                      }\r\n                    },\r\n                  });\r\n                  postPointSpendFunc(resp);\r\n                });\r\n              };\r\n\r\n              var gcProcessingStatusFunc = function (redeemResp, m) {\r\n                cw.loadingIndicator.stop();\r\n                cw.modal.Open({\r\n                  data: { parentModal: m },\r\n                  title: \"Pending processing\",\r\n                  modalBody: $(\r\n                    `<div><p>Thank you for being a ${self.args.brandObj.BrandName} Rewards customer! Your gift card redemption has been successfully submitted.</p>` +\r\n                      `<p>This gift card needs to be approved by ${selectedVendor.name}</p>.` +\r\n                      `<p>You can check on the status in the <em>My Rewards</em> section, we will also notify you via email/text when the gift card is available for use.</p>` +\r\n                      `<p>Gift card approval may take 5-10 minutes...</p>` +\r\n                      `</div>`\r\n                  ),\r\n                  buttons: [\r\n                    {\r\n                      label: '<i class=\"fa fa-star\"></i> Ok',\r\n                      cssClass: \"btn-primary btn-xs-block\",\r\n                      action: function (dr) {\r\n                        dr.close();\r\n                        dr.getData(\"parentModal\").close();\r\n                      },\r\n                    },\r\n                  ],\r\n                });\r\n                postPointSpendFunc(redeemResp);\r\n              };\r\n\r\n              var selectBillingAcctFunc = function () {\r\n                return cw.webservices.getJson(\r\n                  \"S1AccountManager/get-account-balances/\" + self.args.selectedS1AccountId,\r\n                  null,\r\n                  function (balResp) {\r\n                    var html = '<div class=\"zebra-stripe\">';\r\n\r\n                    //convert html entities\r\n                    var encodeFunc = function (text) {\r\n                      return text.replace(/&/g, \"&amp;\").replace(/\"/g, \"&quot;\");\r\n                    };\r\n\r\n                    balResp\r\n                      .filter(function (b) {\r\n                        if (b.RemoteSystemId === cw.appEnum.S1RemoteSystem.Cargas) {\r\n                          return b;\r\n                        }\r\n                      })\r\n                      .forEach(function (br) {\r\n                        html +=\r\n                          '<div class=\"clearfix\">' +\r\n                          '    <div class=\"col-xs-8 pt10 pb10\">' +\r\n                          \"        Acct# \" +\r\n                          br.RemoteSystemAccountNumber +\r\n                          \"  <em>\" +\r\n                          br.BalanceFormatted +\r\n                          \"</em> \" +\r\n                          (br.PendingPayments && br.PendingPayments.length > 0\r\n                            ? '<i class=\"fa fa-regular fa-clock shipley-blue pending-payment-indicator\" title=\"This account has a pending payment\"></i>'\r\n                            : \"\") +\r\n                          \"    </div>\" +\r\n                          '    <div class=\"col-xs-4 pt10 pb10 text-right\">' +\r\n                          '        <a href=\"#\" class=\"btn btn-primary btn-sm btn-select-billing-account\" data-bill-account=\"' +\r\n                          encodeFunc(\r\n                            JSON.stringify({\r\n                              RemoteSystemId: br.RemoteSystemId,\r\n                              RemoteSystemAccountId: br.RemoteSystemAccountId,\r\n                              RemoteSystemAccountNumber: br.RemoteSystemAccountNumber,\r\n                            })\r\n                          ) +\r\n                          '\"><i class=\"fa fa-asterisk\"></i> Select</a>' +\r\n                          \"    </div>\" +\r\n                          \"</div>\";\r\n                      });\r\n\r\n                    html += \"</div>\";\r\n\r\n                    cw.modal.Open({\r\n                      title: \"Select a billing account to apply rewards to\",\r\n                      modalBody: $(html),\r\n                      buttons: [\r\n                        {\r\n                          label: '<i class=\"fa fa-times\"></i> Cancel',\r\n                          cssClass: \"btn-secondary btn-xs-block\",\r\n                          action: function (dialogRef) {\r\n                            dialogRef.close();\r\n                          },\r\n                        },\r\n                      ],\r\n                      onShownCallback: function (billSelModal) {\r\n                        billSelModal.$modalBody.find(\".btn-select-billing-account\").on(\"click\", function (e) {\r\n                          e.preventDefault();\r\n                          var $this = $(this);\r\n                          var ra = $this.data(\"billAccount\");\r\n                          cw.loadingIndicator.start();\r\n                          billSelModal.close();\r\n                          cw.webservices.getJson(\r\n                            \"rewards/redeem-reward-points\",\r\n                            {\r\n                              s1AcctId: self.args.selectedS1AccountId,\r\n                              vendorCode: selectedVendor.vendorCode,\r\n                              pointAmount: parseInt(\r\n                                (selectedVal * self.args.lookups.RewardPointToDollarMultiplier).toFixed(0)\r\n                              ),\r\n                              selectedBillingAccount: ra,\r\n                            },\r\n                            handleRedeemResponseFunc\r\n                          );\r\n                        });\r\n\r\n                        cw.loadingIndicator.stop();\r\n                      },\r\n                    });\r\n                  }\r\n                );\r\n              };\r\n\r\n              mRef.close();\r\n              if (redeemResp && redeemResp.Status) {\r\n                var status = self.redeemStatus;\r\n                switch (redeemResp.Status) {\r\n                  case status.Success:\r\n                    return successFunc(redeemResp, m);\r\n                  case status.SuccessButGiftcardProcessing:\r\n                    return gcProcessingStatusFunc(redeemResp, m);\r\n                  case status.BillingAccountSelectionRequired:\r\n                    return selectBillingAcctFunc();\r\n                  case status.BadInput:\r\n                    return errFunc(\r\n                      \"Error\",\r\n                      \"There was missing input required to complete this request.  Please submit the request again.\",\r\n                      m\r\n                    );\r\n                  case status.NotEnoughPointsToRedeemSelection:\r\n                    return errFunc(\r\n                      \"Error\",\r\n                      \"This account does not have enough points to complete this request.  Please submit it again when it has more points.\",\r\n                      m\r\n                    );\r\n                  case status.BillingAccountIsPastDue:\r\n                    return errFunc(\r\n                      \"Error\",\r\n                      \"This account is currently past due.  Make sure your account is current before redeeming any rewards.\",\r\n                      m\r\n                    );\r\n                  case status.NoActiveProductsOnAccount:\r\n                    return errFunc(\r\n                      \"Error\",\r\n                      \"Unable to find active products.  We were unable to find an active product on your account.  If you believe this message was in error please contact our customer care.\",\r\n                      m\r\n                    );\r\n                  case status.SystemError:\r\n                  case status.VendorDoesNotHaveInventory:\r\n                    return errFunc(\r\n                      \"Error\",\r\n                      \"There was a unknown system error while trying to complete this request.  Please try this again, if you continue to get this message please contact customer support.\",\r\n                      m\r\n                    );\r\n                }\r\n              } else {\r\n                return errFunc(\r\n                  \"Error\",\r\n                  \"There was a unknown system error while trying to complete this request.  Please try this again, if you continue to get this message please contact customer support.\",\r\n                  m\r\n                );\r\n              }\r\n            };\r\n\r\n            cw.modal.Open({\r\n              title: \"Rewards Processing\",\r\n              modalBody: $(\r\n                '<div>We are currently processing your request. This process may take a while to complete. <i class=\"fa fa-spinner fa-pulse\"></i></div>'\r\n              ),\r\n              buttons: [],\r\n              closable: false,\r\n              onShownCallback: function (m) {\r\n                $redeemBtn.addClass(\"disabled\");\r\n                cw.webservices.getJson(\r\n                  \"rewards/redeem-reward-points\",\r\n                  {\r\n                    s1AcctId: self.args.selectedS1AccountId,\r\n                    vendorCode: selectedVendor.vendorCode,\r\n                    pointAmount: parseInt(\r\n                      (selectedVal * self.args.lookups.RewardPointToDollarMultiplier).toFixed(0)\r\n                    ),\r\n                  },\r\n                  function (redeemStatus) {\r\n                    handleRedeemResponseFunc(redeemStatus, m);\r\n                  }\r\n                );\r\n              },\r\n            });\r\n          }\r\n        },\r\n        getRewardPointStatusColor: function (pointStatus) {\r\n          var self = cw.pages.rewards;\r\n          switch (pointStatus) {\r\n            case self.rewardPointStatus.Active:\r\n              return cw.constants.shipleyGreen;\r\n            case self.rewardPointStatus.PendingApproval:\r\n              return cw.constants.colors[3];\r\n            case self.rewardPointStatus.DeniedApproval:\r\n              return cw.constants.colors[7];\r\n            default:\r\n              return cw.constants.colors[8];\r\n          }\r\n        },\r\n        getRewardPointStatusText: function (pointStatus) {\r\n          var self = cw.pages.rewards;\r\n          var kv = self.args.lookups.RewardPointStatuses.filterSingle(function (s) {\r\n            return s.Key === pointStatus;\r\n          });\r\n          if (kv) {\r\n            return kv.Value;\r\n          }\r\n\r\n          return \"\";\r\n        },\r\n        getGiftCardStatusColor: function (gcStatus) {\r\n          switch (gcStatus) {\r\n            case 1: //active\r\n              return cw.constants.shipleyGreen;\r\n            case 2: //processing\r\n              return cw.constants.colors[7];\r\n            case 3: //cancelled\r\n              return cw.constants.colors[4];\r\n          }\r\n\r\n          return cw.constants.colors[gcStatus + 2];\r\n        },\r\n        getGiftCardStatusText: function (gcStatus, lookups) {\r\n          var kv = lookups.GiftCardStatuses.filterSingle(function (s) {\r\n            return s.Key === gcStatus;\r\n          });\r\n          if (kv) {\r\n            return kv.Value;\r\n          }\r\n\r\n          return \"\";\r\n        },\r\n      },\r\n    },\r\n  });\r\n})((window.cw = window.cw || {}), jQuery);\r\n","import * as dt from \"datatables.net-bs\";\r\nimport * as dtResponsive from \"datatables.net-responsive-bs\";\r\nimport * as dtBtnBs from \"datatables.net-buttons-bs\";\r\nimport * as dtBtnHtml5 from \"datatables.net-buttons/js/buttons.html5\";\r\nimport * as dtBtnHtmlPrnt from \"datatables.net-buttons/js/buttons.print\";\r\n\r\n//some overrides to customize datatables\r\n$.fn.dataTable.Buttons.defaults.dom.button.className = \"btn btn-sm btn-white\";\r\n$.fn.dataTable.ext.buttons.copyHtml5.text = function () {\r\n  return '<i class=\"fa fa-clipboard\" title=\"Copy\"></i>';\r\n};\r\n$.fn.dataTable.ext.buttons.csvHtml5.text = function () {\r\n  return '<i class=\"fa fa-regular fa-file-excel\" title=\"Export\"></i>';\r\n};\r\n$.fn.dataTable.ext.buttons.print.text = function () {\r\n  return '<i class=\"fa fa-print\" title=\"Print\"></i>';\r\n};\r\n\r\n(function (cw, $, undefined) {\r\n  cw.dtTools = {\r\n    /**\r\n     * Creates html table markup\r\n     *\r\n     * @param {[string] | [any]} columns Table columns, can be a datatables.net.columns array\r\n     *\r\n     * @return {string}\r\n     */\r\n    getTableMarkup: function (columns, tableClasses) {\r\n      return cw.utility.getTableMarkup(columns, tableClasses);\r\n    },\r\n    /**\r\n     * Handles sorting a date column and display\r\n     *\r\n     * @return {any} expected by datatables.net column.data\r\n     */\r\n    tableSortByDate: function (date, sortType, displayFormat) {\r\n      return cw.utility.tableSortByDate(date, sortType, displayFormat);\r\n    },\r\n    /**\r\n     * Update's referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    addUpdateDataTableListing: function (dataTable, newObject, matchingColumnName, redrawTable) {\r\n      return cw.utility.addUpdateDataTableListing(dataTable, newObject, matchingColumnName, redrawTable);\r\n    },\r\n    /**\r\n     * Delete referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    deleteDataTableListing: function (dataTable, matchingKeyValue, matchingColumnName, redrawTable) {\r\n      return cw.utility.deleteDataTableListing(dataTable, matchingKeyValue, matchingColumnName, redrawTable);\r\n    },\r\n    /**\r\n     * Get's referenced datatable's row based on matchingColumnName(assuming a flat object as rowData)\r\n     *\r\n     * @return {void}\r\n     */\r\n    getDataTableRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTableRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n    /**\r\n     * Get all rows from referenced datatable\r\n     *\r\n     * @return {void}\r\n     */\r\n    getDataTableAllRowData: function (dataTable) {\r\n      return cw.utility.getDataTableAllRowData(dataTable);\r\n    },\r\n    /**\r\n     * Returns the next row after the one passed in (based on the current sort of the table)\r\n     *\r\n     * @return {any}\r\n     */\r\n    getDataTableNextRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTableNextRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n    /**\r\n     * Returns the previous row after the one passed in (based on the current sort of the table)\r\n     *\r\n     * @return {any}\r\n     */\r\n    getDataTablePreviousRowData: function (dataTable, matchingKeyValue, matchingColumnName) {\r\n      return cw.utility.getDataTablePreviousRowData(dataTable, matchingKeyValue, matchingColumnName);\r\n    },\r\n  };\r\n})((window.cw = window.cw || {}), jQuery);\r\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 66810,\n\t\"./bs.js\": 66810,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","export enum AlertSeverity {\r\n  Info = \"alert-info\",\r\n  Warning = \"alert-warning\",\r\n  Error = \"alert-error\",\r\n  Success = \"alert-success\",\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = [\"id\", \"checked\", \"readonly\", \"disabled\"]\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = {\n  key: 0,\n  class: \"pl5\"\n}\nconst _hoisted_5 = [\"innerHTML\"]\n\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'checkbox',\n  props: {\n    checked: { type: [Boolean, String], default: false },\n    disabled: { type: [Boolean, String], default: false },\n    readonly: { type: [Boolean, String], default: false },\n    label: { default: \"&nbsp;\" },\n    hover: { type: [Boolean, String] },\n    variant: { default: \"normal\" },\n    inputClass: { default: \"\" },\n    alignLabel: { default: \"start\" },\n    loading: { type: [Boolean, String], default: false },\n    loadingText: {},\n    labelClass: { default: undefined },\n    labelStyle: { type: [Boolean, null, String, Object, Array], default: undefined }\n  },\n  emits: [\"checked\", \"unchecked\", \"updated\", \"input\"],\n  setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass(['s1-cbx', props.variant !== 'normal' ? props.variant : ''])\n  }, [\n    _createElementVNode(\"label\", {\n      class: _normalizeClass(lblClasses.value),\n      for: _unref(componentId),\n      style: _normalizeStyle(props.labelStyle)\n    }, [\n      _createElementVNode(\"input\", {\n        type: \"checkbox\",\n        id: _unref(componentId),\n        checked: isChecked.value,\n        readonly: _ctx.readonly,\n        disabled: _unref(boxBool)(props.disabled),\n        class: _normalizeClass(_ctx.inputClass),\n        onChange: checkVal\n      }, null, 42, _hoisted_2),\n      _renderSlot(_ctx.$slots, \"default\", {}, () => [\n        _createElementVNode(\"span\", {\n          class: _normalizeClass(`s1-cbx-lbl-${props.alignLabel}`),\n          innerHTML: _ctx.label\n        }, null, 10, _hoisted_3)\n      ])\n    ], 14, _hoisted_1),\n    (_ctx.loading)\n      ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n          _createVNode(Icon, {\n            animate: \"spin\",\n            icon: \"fa-spinner\"\n          }),\n          _cache[0] || (_cache[0] = _createTextVNode(\" \")),\n          _createElementVNode(\"small\", null, [\n            _createElementVNode(\"span\", { innerHTML: _ctx.loadingText }, null, 8, _hoisted_5)\n          ])\n        ]))\n      : _createCommentVNode(\"\", true)\n  ], 2))\n}\n}\n\n})","<template>\r\n  <div :class=\"['s1-cbx', props.variant !== 'normal' ? props.variant : '']\">\r\n    <label\r\n      :class=\"lblClasses\"\r\n      :for=\"componentId\"\r\n      :style=\"props.labelStyle\"\r\n    >\r\n      <input\r\n        type=\"checkbox\"\r\n        :id=\"componentId\"\r\n        :checked=\"isChecked\"\r\n        :readonly=\"readonly\"\r\n        :disabled=\"boxBool(props.disabled)\"\r\n        :class=\"inputClass\"\r\n        @change=\"checkVal\"\r\n      />\r\n      <slot\r\n        ><span\r\n          :class=\"`s1-cbx-lbl-${props.alignLabel}`\"\r\n          v-html=\"label\"\r\n      /></slot>\r\n    </label>\r\n    <span\r\n      v-if=\"loading\"\r\n      class=\"pl5\"\r\n      ><Icon\r\n        animate=\"spin\"\r\n        icon=\"fa-spinner\" />&nbsp;<small><span v-html=\"loadingText\"> </span></small\r\n    ></span>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  checked: false,\r\n  disabled: false,\r\n  readonly: false,\r\n  label: \"&nbsp;\",\r\n  variant: \"normal\",\r\n  inputClass: \"\",\r\n  alignLabel: \"start\",\r\n  loading: false,\r\n  labelClass: undefined,\r\n  labelStyle: undefined,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n  (e: \"checked\"): void;\r\n  (e: \"unchecked\"): void;\r\n  (e: \"updated\", val: boolean): void;\r\n  (e: \"input\", val: boolean): void;\r\n}>();\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n</script>\r\n<style lang=\"less\" scoped>\r\n@import \"@css/constants.less\";\r\n.s1-cbx-label {\r\n  font-size: 2rem;\r\n  display: grid;\r\n  grid-template-columns: 1em auto;\r\n  gap: 0.5em;\r\n}\r\n\r\n.lbl-no-txt {\r\n  gap: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n.s1-cbx-label span {\r\n  font-size: 1.33rem;\r\n}\r\n\r\n.s1-cbx-label + .s1-cbx-label {\r\n  margin-top: 1em;\r\n}\r\n\r\n.s1-cbx-label-disabled {\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n.s1-cbx input {\r\n  /* Remove most all native input styles */\r\n  appearance: none;\r\n  /* For iOS < 15 */\r\n  background-color: @white;\r\n  /* Not removed via appearance */\r\n  margin: 0;\r\n\r\n  font: inherit;\r\n  color: var(--form-control-border);\r\n  width: 1.15em;\r\n  height: 1.15em;\r\n  border: 0.075em solid var(--form-control-border);\r\n  border-radius: 0;\r\n  transform: translateY(-0.075em);\r\n  padding-right: 0 !important;\r\n  display: grid !important;\r\n  place-content: center;\r\n}\r\n\r\n.s1-cbx input::before {\r\n  content: \"\";\r\n  width: 0.65em;\r\n  height: 0.65em;\r\n  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); //this looks like a checkmark\r\n  transform: scale(0);\r\n  transform-origin: bottom left;\r\n  transition: 120ms transform ease-in-out;\r\n  box-shadow: inset 1em 1em var(--form-control-color);\r\n  background-color: @white;\r\n}\r\n\r\n.s1-cbx input:checked {\r\n  background-color: var(--secondary-cta-color);\r\n}\r\n\r\n.s1-cbx-label-disabled input:checked {\r\n  background-color: var(--form-control-disabled);\r\n  color: @white;\r\n}\r\n\r\n.s1-cbx-label-disabled input::before {\r\n  box-shadow: inset 1em 1em @white;\r\n}\r\n\r\n.s1-cbx input:checked::before {\r\n  transform: scale(1);\r\n}\r\n\r\n.s1-cbx input:focus {\r\n  outline: ~\"max(2px, 0.15em) solid currentColor\";\r\n  outline-offset: ~\"max(2px, 0.15em)\";\r\n}\r\n\r\n.s1-cbx input:disabled {\r\n  --form-control-color: var(--form-control-disabled);\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n/* Variant overrides */\r\n.s1-cbx.small .s1-cbx-label {\r\n  font-size: 1.75rem;\r\n  gap: 0.25em;\r\n  grid-template-columns: 0.75em auto;\r\n}\r\n\r\n.s1-cbx.small input {\r\n  width: 0.75em !important;\r\n  height: 0.75em !important;\r\n}\r\n\r\n.s1-cbx.small input::before {\r\n  width: 0.45em;\r\n  height: 0.45em;\r\n}\r\n\r\n.s1-cbx.small .s1-cbx-label span {\r\n  font-size: 0.9rem;\r\n  line-height: 1.2em;\r\n}\r\n/* End Variants */\r\n\r\n.s1-cbx-lbl-start {\r\n  align-self: flex-start;\r\n}\r\n.s1-cbx-lbl-center {\r\n  align-self: center;\r\n}\r\n.s1-cbx-lbl-end {\r\n  align-self: flex-end;\r\n}\r\n</style>\r\n","import script from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=61d0d658&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-61d0d658\"]])\n\nexport default __exports__","export default interface IClickableAlertMessage {\r\n  text: string;\r\n  clickCallback?: (string) => void;\r\n}\r\n\r\nexport const isIClickableAlertMessage = (\r\n  msg?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[]\r\n): msg is IClickableAlertMessage => msg !== undefined && msg !== null && msg.hasOwnProperty(\"text\");\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withModifiers as _withModifiers, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, renderSlot as _renderSlot } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = { key: 2 }\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = [\"innerHTML\"]\nconst _hoisted_6 = { key: 3 }\nconst _hoisted_7 = [\"innerHTML\", \"onClick\"]\nconst _hoisted_8 = [\"innerHTML\"]\n\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'alert',\n  props: {\n    message: { default: undefined },\n    alertIcon: { default: \"fa-exclamation-triangle\" },\n    alertSeverity: { default: AlertSeverity.Warning },\n    dismissible: { type: [Boolean, String], default: false },\n    dismissAfter: { default: 0 },\n    iconClass: { default: \"\" },\n    iconWrapperClass: { default: \"\" },\n    cssAlerting: { type: [Boolean, String], default: false },\n    AlertCss: {},\n    scrollOnError: { type: [Boolean, String], default: false },\n    scrollLocation: { default: \"top\" },\n    dismissIcon: { default: \"fa-times\" }\n  },\n  setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (showAlert.value)\n    ? (_openBlock(), _createElementBlock(\"div\", {\n        key: 0,\n        class: _normalizeClass([\"err-pnl error-wrapper alert flex align-items-center\", _ctx.alertSeverity]),\n        id: _unref(alertTarget)\n      }, [\n        (dismissible.value)\n          ? (_openBlock(), _createElementBlock(\"button\", {\n              key: 0,\n              \"aria-hidden\": \"true\",\n              \"data-dismiss\": \"alert\",\n              class: _normalizeClass([\"close\", () => (props.dismissAfter > 0 ? 'hidden' : '')]),\n              id: `${_unref(alertTarget)}-alert-close`,\n              type: \"button\",\n              onClick: _cache[0] || (_cache[0] = ($event: any) => {\r\n        _ctx.$emit('dismissed');\r\n        dismissed.value = true;\r\n      })\n            }, [\n              _createVNode(Icon, {\n                icon: props.dismissIcon\n              }, null, 8, [\"icon\"])\n            ], 10, _hoisted_2))\n          : _createCommentVNode(\"\", true),\n        (_ctx.alertIcon)\n          ? (_openBlock(), _createBlock(Icon, {\n              key: 1,\n              class: _normalizeClass([\"pr10 pl10 fs-xs-32\", _ctx.iconClass]),\n              icon: _ctx.alertIcon,\n              \"icon-wrapper-class\": _ctx.iconWrapperClass\n            }, null, 8, [\"class\", \"icon\", \"icon-wrapper-class\"]))\n          : _createCommentVNode(\"\", true),\n        (isSingleMessage.value)\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n              (!_unref(isIClickableAlertMessage)(singleMessage.value) || singleMessage.value.clickCallback === undefined)\n                ? (_openBlock(), _createElementBlock(\"span\", {\n                    key: 0,\n                    innerHTML: \r\n          singleMessage.value !== undefined && _unref(isIClickableAlertMessage)(singleMessage.value)\r\n            ? singleMessage.value.text\r\n            : singleMessage.value ?? ''\r\n        \n                  }, null, 8, _hoisted_4))\n                : (_unref(isIClickableAlertMessage)(singleMessage.value) && singleMessage.value.clickCallback)\n                  ? (_openBlock(), _createElementBlock(\"a\", {\n                      key: 1,\n                      href: \"#\",\n                      innerHTML: singleMessage.value.text,\n                      onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (singleMessage.value.clickCallback(singleMessage.value.text)), [\"prevent\"]))\n                    }, null, 8, _hoisted_5))\n                  : _createCommentVNode(\"\", true)\n            ]))\n          : (Array.isArray(_ctx.message) && _ctx.message.length > 1)\n            ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n                _createElementVNode(\"ul\", null, [\n                  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.message, (m) => {\n                    return (_openBlock(), _createElementBlock(\"li\", {\n                      key: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                    }, [\n                      (_unref(isIClickableAlertMessage)(m) && m.clickCallback)\n                        ? (_openBlock(), _createElementBlock(\"a\", {\n                            key: 0,\n                            href: \"#\",\n                            innerHTML: m.text,\n                            onClick: _withModifiers(($event: any) => (m.clickCallback(m.text)), [\"prevent\"])\n                          }, null, 8, _hoisted_7))\n                        : (_openBlock(), _createElementBlock(\"span\", {\n                            key: 1,\n                            innerHTML: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                          }, null, 8, _hoisted_8))\n                    ]))\n                  }), 128))\n                ])\n              ]))\n            : _createCommentVNode(\"\", true),\n        _renderSlot(_ctx.$slots, \"message\")\n      ], 10, _hoisted_1))\n    : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./alert.vue?vue&type=style&index=0&id=45150bfd&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div\r\n    v-if=\"showAlert\"\r\n    class=\"err-pnl error-wrapper alert flex align-items-center\"\r\n    :class=\"alertSeverity\"\r\n    :id=\"alertTarget\"\r\n  >\r\n    <button\r\n      v-if=\"dismissible\"\r\n      aria-hidden=\"true\"\r\n      data-dismiss=\"alert\"\r\n      class=\"close\"\r\n      :class=\"() => (props.dismissAfter > 0 ? 'hidden' : '')\"\r\n      :id=\"`${alertTarget}-alert-close`\"\r\n      type=\"button\"\r\n      @click=\"\r\n        $emit('dismissed');\r\n        dismissed = true;\r\n      \"\r\n    >\r\n      <Icon :icon=\"props.dismissIcon\" />\r\n    </button>\r\n    <Icon\r\n      v-if=\"alertIcon\"\r\n      class=\"pr10 pl10 fs-xs-32\"\r\n      :class=\"iconClass\"\r\n      :icon=\"alertIcon\"\r\n      :icon-wrapper-class=\"iconWrapperClass\"\r\n    />\r\n    <div v-if=\"isSingleMessage\">\r\n      <span\r\n        v-if=\"!isIClickableAlertMessage(singleMessage) || singleMessage.clickCallback === undefined\"\r\n        v-html=\"\r\n          singleMessage !== undefined && isIClickableAlertMessage(singleMessage)\r\n            ? singleMessage.text\r\n            : singleMessage ?? ''\r\n        \"\r\n      />\r\n      <a\r\n        v-else-if=\"isIClickableAlertMessage(singleMessage) && singleMessage.clickCallback\"\r\n        href=\"#\"\r\n        v-html=\"singleMessage.text\"\r\n        @click.prevent=\"singleMessage.clickCallback(singleMessage.text)\"\r\n      />\r\n    </div>\r\n    <div v-else-if=\"Array.isArray(message) && message.length > 1\">\r\n      <ul>\r\n        <li\r\n          v-for=\"m in message\"\r\n          :key=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n        >\r\n          <a\r\n            v-if=\"isIClickableAlertMessage(m) && m.clickCallback\"\r\n            href=\"#\"\r\n            v-html=\"m.text\"\r\n            @click.prevent=\"m.clickCallback(m.text)\"\r\n          />\r\n          <span\r\n            v-else\r\n            v-html=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n          />\r\n        </li>\r\n      </ul>\r\n    </div>\r\n    <slot name=\"message\"></slot>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  message: undefined,\r\n  alertIcon: \"fa-exclamation-triangle\",\r\n  alertSeverity: AlertSeverity.Warning,\r\n  dismissible: false,\r\n  dismissAfter: 0,\r\n  iconClass: \"\",\r\n  iconWrapperClass: \"\",\r\n  cssAlerting: false,\r\n  scrollOnError: false,\r\n  scrollLocation: \"top\",\r\n  dismissIcon: \"fa-times\",\r\n});\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/fontUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"pdf-viewer-root\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"flex full-width align-items-center page-tools-wrapper\",\n  style: {\"justify-content\":\"space-between\"}\n}\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = {\n  key: 0,\n  class: \"ml10\"\n}\nconst _hoisted_5 = {\n  key: 1,\n  class: \"ml10\"\n}\nconst _hoisted_6 = [\"href\"]\nconst _hoisted_7 = { class: \"flex align-items-center\" }\nconst _hoisted_8 = { class: \"btn-group ml10\" }\nconst _hoisted_9 = { class: \"ml10\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { class: \"pr10 pl10\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"row mt10\" }\nconst _hoisted_14 = {\n  key: 0,\n  class: \"col-xs-12 text-center\"\n}\nconst _hoisted_15 = [\"width\", \"height\"]\nconst _hoisted_16 = {\n  key: 1,\n  class: \"col-xs-12\"\n}\n\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'pdfViewer',\n  props: {\n    pdfUrl: { default: \"\" },\n    allowDownload: { type: Boolean, default: false },\n    startPageNumber: { default: 1 },\n    showSelectCheckbox: { type: Boolean, default: false },\n    selected: { type: Boolean, default: false },\n    selectCheckboxText: { default: \"\" }\n  },\n  emits: [\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n],\n  setup(__props: any, { emit: __emit }) {\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (showPageTools())\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n          _createElementVNode(\"div\", _hoisted_3, [\n            (_ctx.showSelectCheckbox)\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n                  _createVNode(checkbox, {\n                    checked: _ctx.selected,\n                    label: _ctx.selectCheckboxText,\n                    onUpdated: pdfSelectionChange\n                  }, null, 8, [\"checked\", \"label\"])\n                ]))\n              : _createCommentVNode(\"\", true),\n            (_ctx.allowDownload && downloadUrl() !== '')\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n                  _createElementVNode(\"a\", {\n                    href: downloadUrl(),\n                    title: \"Download document\",\n                    onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('pdf-doc-downloaded'))),\n                    target: \"_blank\"\n                  }, [\n                    _createVNode(icon, { icon: \"fa-download\" }),\n                    _cache[5] || (_cache[5] = _createTextVNode(\"Download \"))\n                  ], 8, _hoisted_6)\n                ]))\n              : _createCommentVNode(\"\", true)\n          ]),\n          _createElementVNode(\"div\", _hoisted_7, [\n            _createElementVNode(\"div\", _hoisted_8, [\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (zoom(0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-plus\" })\n              ]),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (zoom(-0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-minus\" })\n              ])\n            ]),\n            _createElementVNode(\"div\", _hoisted_9, [\n              _cache[6] || (_cache[6] = _createTextVNode(\" Page: \")),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-prev\",\n                onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (movePage(-1)), [\"prevent\"])),\n                disabled: currentPage.value === 1 ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-backward\" })\n              ], 8, _hoisted_10),\n              _createElementVNode(\"span\", _hoisted_11, _toDisplayString(pageDisplay()), 1),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-next\",\n                onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (movePage(1)), [\"prevent\"])),\n                disabled: currentPage.value === totalPages.value ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-forward\" })\n              ], 8, _hoisted_12)\n            ])\n          ])\n        ]))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_13, [\n      (!loadFailed.value)\n        ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n            _createElementVNode(\"canvas\", {\n              class: \"pdf-preview-canvas\",\n              id: componentId,\n              width: canvasWidth.value,\n              height: canvasHeight.value,\n              style: {\"background\":\"#fff\"}\n            }, null, 8, _hoisted_15)\n          ]))\n        : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n            _createVNode(alert, { message: \"Could not get document.\" })\n          ]))\n    ])\n  ]))\n}\n}\n\n})","import script from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./pdfViewer.vue?vue&type=style&index=0&id=43db1d9e&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div class=\"pdf-viewer-root\">\r\n    <div\r\n      v-if=\"showPageTools()\"\r\n      class=\"flex full-width align-items-center page-tools-wrapper\"\r\n      style=\"justify-content: space-between\"\r\n    >\r\n      <div class=\"flex\">\r\n        <div\r\n          v-if=\"showSelectCheckbox\"\r\n          class=\"ml10\"\r\n        >\r\n          <checkbox\r\n            :checked=\"selected\"\r\n            :label=\"selectCheckboxText\"\r\n            @updated=\"pdfSelectionChange\"\r\n          />\r\n        </div>\r\n        <div\r\n          v-if=\"allowDownload && downloadUrl() !== ''\"\r\n          class=\"ml10\"\r\n        >\r\n          <a\r\n            :href=\"downloadUrl()\"\r\n            title=\"Download document\"\r\n            v-on:click=\"emit('pdf-doc-downloaded')\"\r\n            target=\"_blank\"\r\n          >\r\n            <icon icon=\"fa-download\" />Download\r\n          </a>\r\n        </div>\r\n      </div>\r\n      <div class=\"flex align-items-center\">\r\n        <div class=\"btn-group ml10\">\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-plus\" />\r\n          </a>\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(-0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-minus\" />\r\n          </a>\r\n        </div>\r\n        <div class=\"ml10\">\r\n          Page:\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-prev\"\r\n            v-on:click.prevent=\"movePage(-1)\"\r\n            :disabled=\"currentPage === 1 ? true : null\"\r\n          >\r\n            <icon icon=\"fa-backward\" />\r\n          </a>\r\n          <span class=\"pr10 pl10\">{{ pageDisplay() }}</span>\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-next\"\r\n            v-on:click.prevent=\"movePage(1)\"\r\n            :disabled=\"currentPage === totalPages ? true : null\"\r\n          >\r\n            <icon icon=\"fa-forward\" />\r\n          </a>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"row mt10\">\r\n      <div\r\n        v-if=\"!loadFailed\"\r\n        class=\"col-xs-12 text-center\"\r\n      >\r\n        <canvas\r\n          class=\"pdf-preview-canvas\"\r\n          :id=\"componentId\"\r\n          :width=\"canvasWidth\"\r\n          :height=\"canvasHeight\"\r\n          style=\"background: #fff\"\r\n        ></canvas>\r\n      </div>\r\n      <div\r\n        v-else\r\n        class=\"col-xs-12\"\r\n      >\r\n        <alert message=\"Could not get document.\" />\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  pdfUrl: \"\",\r\n  allowDownload: false,\r\n  startPageNumber: 1,\r\n  showSelectCheckbox: false,\r\n  selected: false,\r\n  selectCheckboxText: \"\",\r\n});\r\n\r\nconst emit = defineEmits([\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n]);\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n"],"names":["cw","$","window","jQuery","extend","pages","rewards","args","url","title","rewardPointStatus","Active","PendingApproval","DeniedApproval","expiredStatusColor","constants","colors","panes","getRewarded","myRewards","pointHistory","redeemStatus","Unknown","Success","SuccessButGiftcardProcessing","BadInput","BillingAccountSelectionRequired","NotEnoughPointsToRedeemSelection","SystemError","VendorDoesNotHaveInventory","BillingAccountIsPastDue","NoActiveProductsOnAccount","myRewardsDataTable","myPointsHistoryDataTable","LOWEST_REWARD_DENOMINATION_LOW_BALANCE_5","LOWEST_REWARD_DENOMINATION_LOW_BALANCE_10","REWARD_DENOMINATION_15","REWARD_DENOMINATION_25","REWARD_DENOMINATION_50","ledgerRecordType","Reward","Redeem","init","self","this","getLookups","bindInteractions","loadingIndicator","stop","getDashSummaryData","s1acctId","callback","webservices","getJson","dData","length","dashboardSummary","lookups","start","selectedS1AccountId","history","pushState","$viewport","tmplArgs","hideExpiringTransactions","PendingTransactionPoints","ExpiringIn30DaysPointTotal","hidePendingTransactions","templating","GetRenderedTemplateHTML","appEnum","TemplateType","CwWidget","breadCrumbs","dashboard","getBreadcrumbMarkup","Title","isActive","RewardsTosUrl","brandObj","CanRedeemNewRewards","renderedTmpl","empty","append","scrollTop","postHTMLInit","loadGetRewardedPane","loadMyRewardsPane","bindApplicationEvents","tab","$rInWrap","w","width","winH","height","orgW","orientation","utility","getScreenOrientation","css","maxWidth","addEventListener","event","screenAngle","columns","adjust","draw","off","on","e","selectedPaneHash","target","hash","loadPointHistoryPane","analytics","_hsq","push","analyticsObj","replace","dataLayer","preventDefault","initSummaryPane","$target","rewardSummaryObj","data","label","RecentlyAddedPointAmount","color","shipleyGreen","ExistingPoints","shipleyBlue","ctaOrange","unshift","ctaYellow","UnusedPointTotal","$inner","find","plot","legend","show","series","pie","innerRadius","radius","grid","hoverable","formatter","tooltip","tooltipOpts","cssClass","content","defaultTheme","html","$newLeg","replaceWith","$htmlWrapper","carousel","getCurrentPointBalance","pts","isNumeric","parseInt","hasAvailableBalance","denom","balance","RewardPointToDollarMultiplier","hasInventoryAvailable","inv","getLowestRewardDenomination","inventory","range","lowestDenom","firstLoad","$loadingInd","$content","$gcFilter","redeemBtnClickHandler","$this","vendorCode","dollarBal","vendorInv","inventories","vendor","vendors","filterSingle","v","defaultDenoms","internalBlurb","startsWith","InternalVendorCode","sort","a","b","denominations","fixed","filter","f","value","map","i","isDenominationAvailable","amount","invObj","count","end","denomOpts","demon","index","me","indexOf","d","disabled","toFixed","Math","floor","hasRedeemOption","some","pointsNeeded","modal","Open","selectedVendor","name","modalBody","vendorLogo","join","buttons","action","dialogRef","close","redeemReward","onShownCallback","m","pntBalance","getData","$goBtn","$modalFooter","$pntAmtTarget","$modalBody","removeClass","pntCost","val","openContentModal","favoriteClickHandler","$icon","hasClass","attr","addClass","wasSaved","vendorFilterHandler","term","toLowerCase","each","$me","includes","remove","venInv","hasInternalVendor","$rt","src","$pstDue","prepend","clone","rewardPointsTblClass","tblToolsExpanded","tblOpts","lengthMenu","iDisplayLength","order","deferRender","dom","language","search","emptyTable","zeroRecords","processing","serverSide","infoCallback","settings","max","total","pre","ajax","S1AccountIds","rtnData","s1","rowGuid","newGuid","sortable","visible","row","type","meta","Vendor","RewardGiftCardRowSrcHtml","mangleGiftCardForDisplay","Giftcard","cardAmount","PointAmount","getGiftCardStatusColor","GiftCardStatus","getGiftCardStatusText","tableSortByDate","CreatedDate","CardExpiry","className","getTableMarkup","c","DataTable","$tbl","auditNumber","gcResp","gc","closeButton","gcObj","claimUrl","claimBtnCssClass","visibilityToggleColIdx","clear","forEach","column","reload","forDisplayInModal","reviewSite","statusHtmlFormatted","cardExpiryFormatted","CreatedDateFormatted","cardAmountFormatted","hideClaimUrl","condensedLayout","showRemoteRedemptionInstructions","showInternalRedemptionInstructions","FeedbackSiteUrl","GoogleReviewUrl","getRewardPointSourceColor","pointSource","RewardPointSource","BillingTransaction","ManuallyAwarded","NewRewardsUser","getRewardPointSourceText","kv","RewardPointSources","s","Key","Value","scrollX","ShowGiftCardRedemptions","createdRow","RecordType","BillingName","ImgUrl","VendorName","RemoteSystemBillingAccountNumber","RewardPointSourceId","ReferenceInvoiceId","RemoteSystemId","S1RemoteSystem","Nexant","Cargas","format","ExpirationDate","IsExpired","getRewardPointStatusColor","RewardPointStatusId","getRewardPointStatusText","showReferencedInvoice","text","selector","invoiceId","isInt","invoiceHistory","invoice","InvoiceId","InvoiceDocumentId","innerWidth","open","docId","size","successCallback","modalRef","doc2","pdfUrl","allowDownload","onPdfLoaded","mount","$redeemBtn","ptBal","$selectedOpt","selectedVal","parseFloat","handleRedeemResponseFunc","redeemResp","mRef","errFunc","Alert","postPointSpendFunc","rdmResp","category","RedeemedItem","redeemedCardAmount","hasRewardsAccess","isRewardsRedeemer","dashSummary","RewardsPoints","bindRewardsAndCarouselItems","Status","resp","status","ReviewSite","closeBtnObj","dr","parentModal","gcPurchaseResp","gcRep","BrandName","gcProcessingStatusFunc","balResp","br","RemoteSystemAccountNumber","BalanceFormatted","PendingPayments","JSON","stringify","RemoteSystemAccountId","billSelModal","ra","s1AcctId","pointAmount","selectedBillingAccount","closable","pointStatus","RewardPointStatuses","gcStatus","GiftCardStatuses","fn","dataTable","Buttons","defaults","button","ext","copyHtml5","csvHtml5","print","dtTools","tableClasses","date","sortType","displayFormat","addUpdateDataTableListing","newObject","matchingColumnName","redrawTable","deleteDataTableListing","matchingKeyValue","getDataTableRowData","getDataTableAllRowData","getDataTableNextRowData","getDataTablePreviousRowData","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","keys","Object","resolve","module","exports","AlertSeverity","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","key","class","_hoisted_5","__name","props","checked","Boolean","String","default","readonly","hover","variant","inputClass","alignLabel","loading","loadingText","labelClass","undefined","labelStyle","Array","emits","setup","__props","emit","__emit","componentId","isChecked","lblClasses","labels","trim","checkVal","newVal","HTMLInputElement","_ctx","_cache","for","style","onChange","$slots","innerHTML","animate","icon","isIClickableAlertMessage","msg","hasOwnProperty","_hoisted_6","_hoisted_7","_hoisted_8","message","alertIcon","alertSeverity","Warning","dismissible","dismissAfter","iconClass","iconWrapperClass","cssAlerting","AlertCss","scrollOnError","scrollLocation","dismissIcon","dismissed","alertTarget","isSingleMessage","isArray","singleMessage","showAlert","setTimeout","alert","document","getElementById","click","nv","onClick","$event","$emit","clickCallback","href","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","startPageNumber","showSelectCheckbox","selected","selectCheckboxText","pdf","workerSrc","URL","toString","downloadUrl","forceDownload","totalPages","currentPage","canvasHeight","canvasWidth","pdfDoc","loadFailed","pageRendering","scale","pageNumPending","canvasEl","promise","then","numPages","renderPage","catch","loadPdf","pdfSelectionChange","pageNum","getPage","page","viewport","getViewport","canvasCtx","getContext","render","canvasContext","movePage","currentPageOffset","zoom","zoomPercent","onUpdated"],"sourceRoot":""}