https://www.deltadentalnj.com/smile_resources/js/core?v=b2zgf6w0U0ABZKgmZVzZuzm_FpDqKjzEBbj82JTM4vw1
1/* Minification failed. Returning unminified contents. 2(551,19-20): run-time error JS1195: Expected expression: ) 3(551,22-23): run-time error JS1195: Expected expression: > 4(554,8-9): run-time error JS1195: Expected expression: , 5(554,10-14): run-time error JS1010: Expected identifier: 3000 6(556,5-6): run-time error JS1002: Syntax error: } 7(603,30-31): run-time error JS1195: Expected expression: > 8(603,88-89): run-time error JS1004: Expected ';': ) 9(604,7-8): run-time error JS1002: Syntax error: } 10(609,7-8): run-time error JS1002: Syntax error: } 11(611,36-37): run-time error JS1195: Expected expression: ) 12(611,38-39): run-time error JS1004: Expected ';': { 13(619,8-9): run-time error JS1195: Expected expression: ) 14(718,48-49): run-time error JS1100: Expected ',': = 15(787,40-41): run-time error JS1195: Expected expression: ) 16(787,43-44): run-time error JS1195: Expected expression: > 17(819,6-7): run-time error JS1195: Expected expression: , 18(819,8-13): run-time error JS1010: Expected identifier: false 19(844,28-29): run-time error JS1195: Expected expression: > 20(850,6-7): run-time error JS1195: Expected expression: ) 21(852,3-4): run-time error JS1002: Syntax error: } 22(858,32-33): run-time error JS1195: Expected expression: > 23(858,97-98): run-time error JS1004: Expected ';': : 24(869,3-4): run-time error JS1002: Syntax error: } 25(893,1-2): run-time error JS1002: Syntax error: } 26(893,11-12): run-time error JS1197: Too many errors. The file might not be a JavaScript file: ; 27(877,3,892,4): run-time error JS1018: 'return' statement outside of function: return { 28 SetJumpToOption: setJumpToOption, 29 CreateJumpToNavigation: createJumpToNavigation, 30 GenerateJumpToNavigation: generateJumpToNavigation, 31 GenerateBarGraph: generateBarGraph, 32 TooltipOpen: tooltipOpen, 33 TooltipClose: tooltipClose, 34 ChevronAttach: chevronAttach, 35 ChevronsHandleResize: chevronsHandleResize, 36 TooltipAttach: tooltipAttach, 37 HideChildElements: hideChildElements, 38 ShowChildElements: showChildElements, 39 SetTabbableList: setTabbableList, 40 ToCamelCase: toCamelCase, 41 NormalizeText: normalizeText 42 } 43(868,5-21): run-time error JS1018: 'return' statement outside of function: return newObject 44 */ 45var Smile = {}; 46Smile.createNamespace = function (namespace, namespaceString) { 47 var parts = namespaceString.split('.'), parent = namespace; 48 if (parts[0] === "Smile") { 49 parts = parts.slice(1); 50 } 51 for (var i = 0; i < parts.length; i++) { 52 if (parent[parts[i]] === undefined) { 53 parent[parts[i]] = {}; 54 } 55 parent = parent[parts[i]]; 56 } 57 return parent; 58}; 59Smile.createNamespace(Smile, "Smile.Feature"); 60Smile.createNamespace(Smile, "Smile.SelfService"); 61Smile.createNamespace(Smile, "Smile.ExternalClientApi"); 62Smile.createNamespace(Smile, "Smile.Directives"); 63//# sourceMappingURL=App.js.map; 64var BUTTON_SELECTOR = ':where(button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"])'; 65document.addEventListener("keydown", function (e) { 66 if (!e.repeat || (e.key !== "Enter" && e.key !== " ")) { 67 return; 68 } 69 if (!(e.target instanceof HTMLElement) || !e.target.closest(BUTTON_SELECTOR)) { 70 return; 71 } 72 e.preventDefault(); 73 e.stopPropagation(); 74}, true); 75//# sourceMappingURL=KeyboardGuard.js.map; 76var Constants; 77(function (Constants) { 78 var CoreConstants = (function () { 79 function CoreConstants() { 80 } 81 CoreConstants.DefaultDecimalDigits = 2; 82 CoreConstants.DefaultDecimalSeparator = '.'; 83 CoreConstants.ProcedureCodeValidationRegExp = '/^99999$/|^[d|D|0](?:[0-9]{4,5})$'; 84 CoreConstants.PhoneCountryCode = "+1"; 85 CoreConstants.PhoneInputMask = '(â â â )â â â -â â â â '; 86 return CoreConstants; 87 }()); 88 Constants.CoreConstants = CoreConstants; 89})(Constants || (Constants = {})); 90//# sourceMappingURL=Constants.js.map; 91var Layout; 92(function (Layout) { 93 var width = { 94 Desktop: 1220, 95 TabletLandscape: 981, 96 TabletPortrait: 768 97 }; 98 function viewportWidth() { 99 return Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 100 } 101 Layout.viewportWidth = viewportWidth; 102 function isDesktop() { 103 return viewportWidth() >= width.Desktop; 104 } 105 Layout.isDesktop = isDesktop; 106 function isTabletLandscapeOrDesktop() { 107 return viewportWidth() >= width.TabletLandscape; 108 } 109 Layout.isTabletLandscapeOrDesktop = isTabletLandscapeOrDesktop; 110 function isTabletOrMobile() { 111 return viewportWidth() < width.Desktop; 112 } 113 Layout.isTabletOrMobile = isTabletOrMobile; 114 function isTabletPortraitOrMobile() { 115 return viewportWidth() < width.TabletLandscape; 116 } 117 Layout.isTabletPortraitOrMobile = isTabletPortraitOrMobile; 118 function isTablet() { 119 return viewportWidth() >= width.TabletPortrait && window.innerWidth < width.Desktop; 120 } 121 Layout.isTablet = isTablet; 122 function isTabletLandscape() { 123 return viewportWidth() >= width.TabletLandscape && window.innerWidth < width.Desktop; 124 } 125 Layout.isTabletLandscape = isTabletLandscape; 126 function isTabletPortrait() { 127 return viewportWidth() >= width.TabletPortrait && window.innerWidth < width.TabletLandscape; 128 } 129 Layout.isTabletPortrait = isTabletPortrait; 130 function isMobile() { 131 return viewportWidth() < width.TabletPortrait; 132 } 133 Layout.isMobile = isMobile; 134 function IsMobilePotraitOrLandscape() { 135 var isLandscape = window.matchMedia("(orientation: landscape)").matches; 136 return isMobile() || (viewportWidth() < width.TabletLandscape && isLandscape); 137 } 138 Layout.IsMobilePotraitOrLandscape = IsMobilePotraitOrLandscape; 139 function isMobileDevice() { 140 if (navigator.userAgent.match(/Android/i) || 141 navigator.userAgent.match(/iPhone/i) || 142 navigator.userAgent.match(/Mobi/i)) { 143 return true; 144 } 145 return false; 146 } 147 Layout.isMobileDevice = isMobileDevice; 148 function isTabletOrMobileDevice() { 149 if (navigator.userAgent.match(/Android/i) || 150 navigator.userAgent.match(/webOS/i) || 151 navigator.userAgent.match(/iPhone/i) || 152 navigator.userAgent.match(/iPad/i) || 153 navigator.userAgent.match(/iPod/i) || 154 navigator.userAgent.match(/BlackBerry/i) || 155 navigator.userAgent.match(/Windows Phone/i)) { 156 return true; 157 } 158 return false; 159 } 160 Layout.isTabletOrMobileDevice = isTabletOrMobileDevice; 161 function isPrintView() { 162 var printView = Core.Uri.getQuerystringValue('p'); 163 if (printView && printView === "1") { 164 return true; 165 } 166 return false; 167 } 168 Layout.isPrintView = isPrintView; 169 function scrollToElement(selector) { 170 var element = document.querySelector(selector); 171 if (element) { 172 window.scrollTo({ 173 behavior: 'smooth', 174 top: element.getBoundingClientRect().top - document.body.getBoundingClientRect().top, 175 }); 176 if (!element.hasAttribute('tabindex')) { 177 element.setAttribute('tabindex', '0'); 178 } 179 setTimeout(function () { 180 element.focus(); 181 window.location.hash = selector.substring(1); 182 }, 500); 183 } 184 } 185 Layout.scrollToElement = scrollToElement; 186 Layout.pageBodyBlur = (function () { 187 function set() { 188 $.dataJs("pageBodyContent").addClass("blurBody"); 189 } 190 function unset() { 191 $.dataJs("pageBodyContent").removeClass("blurBody"); 192 } 193 return { 194 set: set, 195 unset: unset 196 }; 197 })(); 198 Layout.modalOverlayGray = (function () { 199 function set() { 200 $.dataJs("modalOverlay").addClass("modal-overlay-gray"); 201 } 202 function unset() { 203 $.dataJs("modalOverlay").removeClass("modal-overlay-gray"); 204 } 205 return { 206 set: set, 207 unset: unset 208 }; 209 })(); 210 Layout.mobileNoScroll = (function () { 211 return { 212 set: function () { jQuery("body").addClass("mobileNoScroll"); }, 213 unset: function () { jQuery("body").removeClass("mobileNoScroll"); } 214 }; 215 })(); 216})(Layout || (Layout = {})); 217Smile.Layout = Layout; 218//# sourceMappingURL=Layout.js.map; 219var Core; 220(function (Core) { 221 var ClientAction; 222 (function (ClientAction) { 223 ClientAction[ClientAction["GET_START_QUOTE"] = 0] = "GET_START_QUOTE"; 224 ClientAction[ClientAction["GET_MEMBER_COMPANY_INFO"] = 1] = "GET_MEMBER_COMPANY_INFO"; 225 ClientAction[ClientAction["SUBMIT_MEMBER_COMPANY_INFO"] = 2] = "SUBMIT_MEMBER_COMPANY_INFO"; 226 ClientAction[ClientAction["GET_WHOS_COVERED"] = 3] = "GET_WHOS_COVERED"; 227 ClientAction[ClientAction["SUBMIT_WHOS_COVERED"] = 4] = "SUBMIT_WHOS_COVERED"; 228 ClientAction[ClientAction["GET_QUOTE_PLANS"] = 5] = "GET_QUOTE_PLANS"; 229 ClientAction[ClientAction["SUBMIT_QUOTE_PLANS"] = 6] = "SUBMIT_QUOTE_PLANS"; 230 ClientAction[ClientAction["CART_PRODUCT_ADD"] = 7] = "CART_PRODUCT_ADD"; 231 ClientAction[ClientAction["GET_APPLICANT_INFORMATION"] = 8] = "GET_APPLICANT_INFORMATION"; 232 ClientAction[ClientAction["SUBMIT_APPLICANT_INFORMATION"] = 9] = "SUBMIT_APPLICANT_INFORMATION"; 233 ClientAction[ClientAction["GET_REVIEW"] = 10] = "GET_REVIEW"; 234 ClientAction[ClientAction["GET_CHECKOUT_DETAILS"] = 11] = "GET_CHECKOUT_DETAILS"; 235 ClientAction[ClientAction["CART_PURCHASE"] = 12] = "CART_PURCHASE"; 236 ClientAction[ClientAction["GET_ORDER_DETAILS"] = 13] = "GET_ORDER_DETAILS"; 237 })(ClientAction = Core.ClientAction || (Core.ClientAction = {})); 238 var AccountRestrictionType; 239 (function (AccountRestrictionType) { 240 AccountRestrictionType[AccountRestrictionType["EmailPattern"] = 0] = "EmailPattern"; 241 AccountRestrictionType[AccountRestrictionType["UsernamePattern"] = 1] = "UsernamePattern"; 242 })(AccountRestrictionType = Core.AccountRestrictionType || (Core.AccountRestrictionType = {})); 243 var CoverageStatus; 244 (function (CoverageStatus) { 245 CoverageStatus[CoverageStatus["Undefined"] = 0] = "Undefined"; 246 CoverageStatus[CoverageStatus["CoverageOk"] = 1] = "CoverageOk"; 247 CoverageStatus[CoverageStatus["IsFutureCoverage"] = 2] = "IsFutureCoverage"; 248 CoverageStatus[CoverageStatus["IsTermed"] = 4] = "IsTermed"; 249 CoverageStatus[CoverageStatus["IsManagedCare"] = 8] = "IsManagedCare"; 250 })(CoverageStatus = Core.CoverageStatus || (Core.CoverageStatus = {})); 251 var PermissionLevel; 252 (function (PermissionLevel) { 253 PermissionLevel[PermissionLevel["Read"] = 0] = "Read"; 254 PermissionLevel[PermissionLevel["ReadWrite"] = 1] = "ReadWrite"; 255 PermissionLevel[PermissionLevel["None"] = 2] = "None"; 256 PermissionLevel[PermissionLevel["Deny"] = 3] = "Deny"; 257 })(PermissionLevel = Core.PermissionLevel || (Core.PermissionLevel = {})); 258 var UserTypeMapping; 259 (function (UserTypeMapping) { 260 UserTypeMapping[UserTypeMapping["Unknown"] = 0] = "Unknown"; 261 UserTypeMapping[UserTypeMapping["Patient"] = 1] = "Patient"; 262 UserTypeMapping[UserTypeMapping["Provider"] = 2] = "Provider"; 263 UserTypeMapping[UserTypeMapping["Producer"] = 3] = "Producer";
264 UserTypeMapping[UserTypeMapping["Employer"] = 4] = "Employer"; 265 })(UserTypeMapping = Core.UserTypeMapping || (Core.UserTypeMapping = {})); 266 var WorkflowErrorType; 267 (function (WorkflowErrorType) { 268 WorkflowErrorType[WorkflowErrorType["Standard"] = 0] = "Standard"; 269 WorkflowErrorType[WorkflowErrorType["Workflow"] = 1] = "Workflow"; 270 })(WorkflowErrorType = Core.WorkflowErrorType || (Core.WorkflowErrorType = {})); 271 var SignInType; 272 (function (SignInType) { 273 SignInType[SignInType["Standard"] = 0] = "Standard"; 274 SignInType[SignInType["Sso"] = 1] = "Sso"; 275 })(SignInType = Core.SignInType || (Core.SignInType = {})); 276 var MfaMethod; 277 (function (MfaMethod) { 278 MfaMethod[MfaMethod["Unknown"] = 0] = "Unknown"; 279 MfaMethod[MfaMethod["Sms"] = 1] = "Sms"; 280 MfaMethod[MfaMethod["Email"] = 2] = "Email"; 281 })(MfaMethod = Core.MfaMethod || (Core.MfaMethod = {})); 282 function getCookieDomain() { 283 return "." + window.location.hostname.split('.').slice(-2).join('.'); 284 } 285 Core.getCookieDomain = getCookieDomain; 286 function isSecureConnection() { 287 return document.location.protocol.toUpperCase() === "https:".toUpperCase(); 288 } 289 Core.isSecureConnection = isSecureConnection; 290 function setCookie(name, value, expires, domain) { 291 var key = name || ''; 292 if (key === '') { 293 console.error('Invalid cookie name'); 294 return; 295 } 296 var options = { 297 secure: isSecureConnection(), 298 domain: domain, 299 expires: expires 300 }; 301 Cookies.set(key, value, options); 302 } 303 Core.setCookie = setCookie; 304 var userCookie = "user_type_site_default"; 305 function getUserCookie() { 306 return Cookies.get(userCookie); 307 } 308 Core.getUserCookie = getUserCookie; 309 function getSubscriptionGidCookie() { 310 return Cookies.get("dp_fps"); 311 } 312 Core.getSubscriptionGidCookie = getSubscriptionGidCookie; 313 function setUserCookie(value) { 314 setCookie(userCookie, value.toLowerCase(), 365, getCookieDomain()); 315 } 316 Core.setUserCookie = setUserCookie; 317 var saiCookie = "s_a_i"; 318 function getSaiCookie() { 319 return Cookies.get(saiCookie); 320 } 321 Core.getSaiCookie = getSaiCookie; 322 function clearSaiCookie() { 323 var options = { 324 domain: getCookieDomain() 325 }; 326 Cookies.remove(saiCookie, options); 327 } 328 Core.clearSaiCookie = clearSaiCookie; 329 function jsonHasProperties(object, property) { 330 if (object) { 331 if (Object.hasOwnProperty.call(object, property)) { 332 return true; 333 } 334 } 335 return false; 336 } 337 Core.jsonHasProperties = jsonHasProperties; 338 ; 339 function arrayContains(array, obj) { 340 var i = array.length; 341 while (i--) { 342 if (array[i] === obj) { 343 return true; 344 } 345 } 346 return false; 347 } 348 Core.arrayContains = arrayContains; 349 ; 350 function navigateTo(url) { 351 window.location.href = url; 352 } 353 Core.navigateTo = navigateTo; 354 Core.Uri = (function () { 355 function toAbsolute(url) { 356 return window.location.origin + url; 357 } 358 function getSearchParameters(delimiter) { 359 if (delimiter === "?") { 360 return new URLSearchParams(window.location.search); 361 } 362 else { 363 return new URLSearchParams(window.location.hash.replace('#', '')); 364 } 365 } 366 function getQuerystringValues(name) { 367 var searchParams = getSearchParameters("?"); 368 return searchParams.getAll(name); 369 } 370 function getQuerystringValue(name) { 371 var _a; 372 var searchParams = getSearchParameters("?"); 373 return (_a = searchParams.get(name)) !== null && _a !== void 0 ? _a : undefined; 374 } 375 function getHashQuerystringValue(name) { 376 var _a; 377 var searchParams = getSearchParameters("#"); 378 return (_a = searchParams.get(name)) !== null && _a !== void 0 ? _a : undefined; 379 } 380 function buildFromJson(json, url, delimiter) { 381 url += delimiter; 382 var i = 0; 383 for (var prop in json) { 384 if (i++ > 0) { 385 url += '&'; 386 } 387 url += prop + '=' + encodeURIComponent(json[prop]); 388 } 389 return url; 390 } 391 ; 392 function addPrintParam(url) { 393 var params = url.search; 394 if (params) { 395 params += '&p=1'; 396 } 397 else { 398 params = '?p=1'; 399 } 400 return url.pathname + params + url.hash; 401 } 402 ; 403 function addUrlParam(url, paramKeyValue) { 404 var params = url.search; 405 if (params) { 406 params += '&' + paramKeyValue; 407 } 408 else { 409 params = '?' + paramKeyValue; 410 } 411 return url.pathname + params + url.hash; 412 } 413 ; 414 function addFragment(url, newFragment) { 415 var fragmentIndex = url.indexOf('#'); 416 var urlPath = url; 417 if (fragmentIndex !== -1) { 418 urlPath = url.substring(0, fragmentIndex); 419 } 420 return urlPath + newFragment; 421 } 422 ; 423 return { 424 toAbsolute: toAbsolute, 425 getSearchParameters: getSearchParameters, 426 getQuerystringValue: getQuerystringValue, 427 getHashQuerystringValue: getHashQuerystringValue, 428 fromJSON: buildFromJson, 429 addPrintParam: addPrintParam, 430 addUrlParam: addUrlParam, 431 addFragment: addFragment, 432 getQuerystringValues: getQuerystringValues 433 }; 434 })(); 435 var UserType = (function () { 436 function UserType() { 437 } 438 UserType.getFromIndex = function (index) { 439 switch (index) { 440 case 0: 441 return Core.UserType.Patient; 442 case 1: 443 return Core.UserType.Provider; 444 case 2: 445 return Core.UserType.Producer; 446 case 3: 447 return Core.UserType.Employer; 448 default: 449 return Core.UserType.Patient; 450 } 451 }; 452 UserType.Patient = "Patient"; 453 UserType.Provider = "Provider"; 454 UserType.Producer = "Producer"; 455 UserType.Employer = "Employer"; 456 return UserType; 457 }()); 458 Core.UserType = UserType; 459 var DateFormat = (function () { 460 function DateFormat() { 461 } 462 DateFormat.ShortDateStandard = "mm/dd/yy"; 463 DateFormat.ShortDateFullYear = "MM/DD/YYYY"; 464 DateFormat.MediumDateFullYear = "MM/DD/YYYY HH:mm"; 465 return DateFormat; 466 }()); 467 Core.DateFormat = DateFormat; 468 function mapObjects(heavyObject, lightObject) { 469 for (var p in heavyObject) { 470 if (!lightObject.hasOwnProperty(p)) 471 continue; 472 if (heavyObject[p] instanceof Array && lightObject[p] instanceof Array) { 473 for (var i = 0; i <= heavyObject[p].length; i++) { 474 if (lightObject[p].length > 0) { 475 this.mapObjects(heavyObject[p][i], lightObject[p][i]); 476 } 477 } 478 } 479 else if (typeof (heavyObject[p]) === "object" && typeof (lightObject[p]) === "object") { 480 this.mapObjects(heavyObject[p], lightObject[p]); 481 } 482 else { 483 lightObject[p] = heavyObject[p]; 484 } 485 } 486 } 487 Core.mapObjects = mapObjects; 488 function downloadBase64StringFile(base64StringFile, fileName, contentType) { 489 var nav = window.navigator; 490 if (nav && nav.msSaveBlob) { 491 var byteCharacters = atob(base64StringFile); 492 var byteNumbers = new Array(byteCharacters.length); 493 for (var i = 0; i < byteCharacters.length; i++) {
494 byteNumbers[i] = byteCharacters.charCodeAt(i); 495 } 496 var byteArray = new Uint8Array(byteNumbers); 497 var blob = new Blob([byteArray], { type: contentType }); 498 nav.msSaveOrOpenBlob(blob, fileName); 499 return; 500 } 501 else { 502 var a = window.document.createElement('a'); 503 a.href = "data:text/plain;base64," + base64StringFile; 504 a.download = fileName; 505 a.download = fileName; 506 document.body.appendChild(a); 507 a.click(); 508 a.remove(); 509 } 510 } 511 Core.downloadBase64StringFile = downloadBase64StringFile; 512 function getDateFromMMDDYYYYString(dateString) { 513 if (!dateString) { 514 return null; 515 } 516 var dateParts = dateString.split("/"); 517 if (dateParts.length === 3) { 518 return moment.utc(dateString, 'MM/DD/YYYY').toDate(); 519 } 520 return null; 521 } 522 Core.getDateFromMMDDYYYYString = getDateFromMMDDYYYYString; 523 function formatDate(date, dateFormat) { 524 if (dateFormat === void 0) { dateFormat = DateFormat.MediumDateFullYear; } 525 if (!date) { 526 return ''; 527 } 528 return moment(String(date)).format(dateFormat); 529 } 530 Core.formatDate = formatDate; 531 function getDateFromMMDDYYYYStringNoTimeZone(dateString) { 532 if (!dateString) 533 return null; 534 var parts = dateString.split('/'); 535 if (parts.length !== 3) 536 return null; 537 var month = parseInt(parts[0], 10) - 1; 538 var day = parseInt(parts[1], 10); 539 var year = parseInt(parts[2], 10); 540 return new Date(year, month, day); 541 } 542 Core.getDateFromMMDDYYYYStringNoTimeZone = getDateFromMMDDYYYYStringNoTimeZone; 543 function formatDateToDateOnly(dateString) { 544 if (!dateString) 545 return null; 546 var parts = dateString.split('/'); 547 if (parts.length !== 3) 548 return null; 549 var month = parts[0]; 550 var day = parts[1]; 551 var year = parts[2]; 552 if (month.length === 1) { 553 month = "0" + month; 554 } 555 if (day.length === 1) { 556 day = "0" + day; 557 } 558 return "".concat(year, "-").concat(month, "-").concat(day); 559 } 560 Core.formatDateToDateOnly = formatDateToDateOnly; 561})(Core || (Core = {})); 562Smile.Core || (Smile.Core = Core); 563//# sourceMappingURL=Core.js.map; 564window.addEventListener('load', function () { 565 document.addEventListener('keyup', function (e) { 566 if (e.code === 'Tab' && document.activeElement) { 567 document.activeElement.classList.add("is-focused-by-tab"); 568 } 569 else if ((e.code === 'Space' || e.code === 'Enter' || e.code === 'Escape') && 570 document.activeElement && 571 (document.activeElement.getAttribute('role') === 'combobox')) { 572 document.activeElement.classList.add('is-focused-by-tab'); 573 } 574 }); 575 document.addEventListener('focusout', function (event) { 576 var _a; 577 var element = event.target; 578 (_a = element === null || element === void 0 ? void 0 : element.classList) === null || _a === void 0 ? void 0 : _a.remove('is-focused-by-tab'); 579 }); 580 document.querySelectorAll("a:not([href])").forEach(function (el) { return el.setAttribute("href", "javascript:void(0);"); }); 581}); 582//# sourceMappingURL=AccessibilityEvents.js.map; 583 584Smile.createNamespace(Smile, 'Smile.Core.Utils'); 585Smile.Core.Utils = (function ($) { 586 587 /* Creates jump to dropdown navigation 588 /// containerSelector - <select> element where nodes are appended to 589 /// areaSelector - search only for elements within specific area 590 /// elementSelector - search for specific tags defined here 591 592 // Any element found through selector should have an id attribute to enable navigation */ 593 var createJumpToNavigation = 594 function (containerSelector, areaSelector, elementSelector, sortAlphabetically) { 595 setTimeout(() => { 596 generateJumpToNavigation(containerSelector, areaSelector, elementSelector, sortAlphabetically) 597 598 }, 3000); 599 600 } 601 602 var generateJumpToNavigation = 603 function (containerSelector, areaSelector, elementSelector, sortAlphabetically) { 604 var $selectList = $(containerSelector); 605 // empty to prevent on-page update caused old items 606 607 $selectList.find("option").not("#defaultOption").remove(); 608 609 var options = []; 610 611 // append all elements defined by 'elementSelector' contained in 'areaSelector' to 'containerSelector' 612 $(areaSelector).each(function (index) { 613 var element = $(this); 614 var inlineValue = element.find(elementSelector).attr('data-content'); 615 616 var result = element.find(elementSelector); 617 618 if (result.length === 0) { 619 var children = element.children();
620 621 for (var i = 0; i < children.length; i++) { 622 var child = $(children[i]); 623 624 result = child.find(elementSelector); 625 626 if (result.length > 0) { 627 break; 628 } 629 } 630 } 631 632 var displayValue = (($.trim(inlineValue).length > 0) 633 ? inlineValue 634 : result.extractParentTextOnly()); 635 636 // UI Rules may hide some elements - Only add to list if not hidden. 637 if (!element.isHidden()) { 638 options.push({ 639 id: result.attr('id'), 640 text: displayValue 641 }); 642 } 643 }); 644 645 // Sort alphabetically by display text (case-insensitive) 646 if (sortAlphabetically) { 647 options.sort((a, b) => a.text.toLowerCase().localeCompare(b.text.toLowerCase())); 648 } 649 650 // Append sorted options 651 options.forEach(opt => { 652 $selectList.append('<option value="' + opt.id + '">' + opt.text + '</option>'); 653 }); 654 // define animation when onchange occurs 655 $selectList.change(function () { 656 const selectedId = $(this).val(); 657 658 $('#' + selectedId).attr('tabindex', '-1'); 659 $('#' + selectedId).on('blur', function () { 660 $(this).removeAttr('tabindex'); 661 }) 662 Smile.Layout.scrollToElement('#' + selectedId); 663 }); 664 } 665 666 // Creates bar graph 667 var generateBarGraph = function (wrapper) { 668 // Set width of bar to percent of max value 669 $(wrapper + ' .bar').each(function (index, el) { 670 var bar = $(this), 671 percentage = bar.data('percentage'); 672 // Set Width & Add Class 673 bar.width(percentage + '%'); 674 bar.addClass('in'); 675 }); 676 } 677 678 // Opens the tooltip 679 var tooltipOpen = function (selector) { 680 681 var processMobileTooltip = function (element, closeOnly) { 682 if (Smile.Layout.isMobile()) { 683 if (element.hasClass('jqToolTipMobileOpen')) { 684 685 element.parent().find('.tooltipInner').css({ 686 'display': 'none' 687 }); 688 689 if (element.parent().parent().hasClass('tooltip__mypref_mobile')) { 690 element.parent().css({ 691 'margin-left': '0', 692 'top': '3px', 693 'padding-left': '0' 694 }); 695 } 696 697 element.find("img.tootltip-icon").attr('src', element.attr('data-orig-src')); 698 element.removeClass('jqToolTipMobileOpen'); 699 } else if (!closeOnly) { 700 if (element.parent().parent().hasClass('tooltip__mypref_mobile')) { 701 702 var prefHeight = element.parent().parent().parent().find('.leftBox').height(); 703 element.parent().find('.tooltipInner').css({ 704 'padding-top': prefHeight, 705 'margin-left': '0' 706 }); 707 708 element.parent().css({ 709 'margin-left': '-195px', 710 'top': '3px' 711 }); 712 } 713 714 element.addClass('jqToolTipMobileOpen'); 715 element.attr('data-orig-src', $(".tooltip .jqToolTipMobileOpen img").attr('src')); 716 $(".tooltip .jqToolTipMobileOpen img").attr('src', '/Assets/images/smile/tooltip-close-mobile.svg'); 717 718 element.css({ 'margin-bottom': element.parent().find('.tooltipInner').height() + 30 }); 719 } 720 } 721 }; 722 723 // 724 // Close all open tooltips 725 // 726 727 // close any open tooltip - ignore the current tooltip 728 $(".tooltip .closeTooltip").not(selector).parent().css({ 729 'display': 'none' 730 }); 731 732 // handle mobile version of the tooltip - ignore the current tooltip 733 $(".tooltip a").not(selector).each(function (i, e) { 734 processMobileTooltip($(e), true); 735 }); 736 737 // 738 // Open the selected tooltip 739 // 740 var element = $(selector); 741 element.parent().find('.tooltipInner').css({ 742 'display': 'block' 743 }); 744 processMobileTooltip(element, false); 745 746 } 747 748 // Sets current jumpto option 749 var setJumpToOption = function (containerSelector, optionValue, optionText) { 750 $('select' + containerSelector + " option[value=" + optionValue + "]").text(optionText); 751 } 752 753 // Closes the tooltip 754 var tooltipClose = function (selector) { 755 $(selector).parent().css({ 756 'display': 'none' 757 });
758 } 759 760 761 // Attaches chevron to its events 762 var chevronAttach = function (animationSpeed = 1000) { 763 /* 764 Use off to remove the event handler and add again as this is called from multiple places and leads to duplicate event handlers being attached. 765 Using event.namespace, e.g. click.chevronattach to ensure we are only removing this event before adding the same - see https://api.jquery.com/event.namespace/ 766 */ 767 768 $(".chevronHeader").each(function () { 769 var $expandHeader = $(this); 770 var $chevronBtn = $expandHeader.find('button'); 771 772 if ($chevronBtn.length === 0) { 773 $chevronBtn = $expandHeader; 774 } 775 776 $chevronBtn.off('click keydown'); 777 778 if (Smile.Layout.isMobile() || Smile.Layout.isTabletPortrait()) { 779 $chevronBtn.on('click', function (e) { 780 e.stopPropagation(); 781 chevronEvents(e, $expandHeader); 782 }); 783 784 $chevronBtn.on('keydown', function (e) { 785 if (e.key === 'Enter') { 786 e.stopPropagation(); 787 e.preventDefault(); 788 chevronEvents(e, $expandHeader); 789 } 790 }); 791 } else { 792 $chevronBtn.removeAttr("aria-expanded"); 793 } 794 }); 795 } 796 797 var chevronEvents = function (e, $chevronHeader, animationSpeed) { 798 if ( 799 e.type === 'click' || 800 e.key === 'Enter' || 801 e.key === ' ' 802 ) { 803 var $chevron = $chevronHeader.find('.chevron'); 804 var $chevronBtn = $chevronHeader.find('button'); 805 806 if ($chevronBtn.length === 0) { 807 $chevronBtn = $chevronHeader; 808 } 809 810 var expanded = $chevronBtn.attr('aria-expanded') === 'true' 811 $chevronBtn.attr('aria-expanded', String(!expanded)); 812 813 if ($chevron.length) { 814 $chevron.toggleClass('closedAccord'); 815 816 var $nextAnimate; 817 if ($chevronHeader.parent().children("div").next().first().is('a')) { 818 $nextAnimate = $chevronHeader.parent().parent().children("div").next().first(); 819 } else { 820 $nextAnimate = $chevronHeader.parent().children("div").next().first(); 821 } 822 823 $nextAnimate.animate({ 824 height: "toggle" 825 }, animationSpeed); 826 } 827 } 828 } 829 830 var chevronsHandleResize = function () { 831 window.addEventListener("resize", () => { 832 $(".chevronHeader").each(function () { 833 var $chevronHeader = $(this); 834 var $chevronBtn = $chevronHeader.find('button'); 835 836 var expanded = $chevronBtn.attr("aria-expanded") == "true"; 837 window.setTimeout(function () { 838 var desktop = Smile.Layout.isDesktop(); 839 // resize from mobile to desktop when panels already expanded 840 // remove attributes to make panels static 841 if ((desktop || Smile.Layout.isTabletLandscape()) && expanded) { 842 $chevronBtn.removeAttr("aria-expanded"); 843 $chevronBtn.unbind("click"); 844 } 845 846 // resize from mobile to desktop when panels collapsed 847 // click to expand first, then remove attributes to make panels static 848 else if ((desktop || Smile.Layout.isTabletLandscape()) && !expanded) { 849 $chevronBtn.click(); 850 $chevronBtn.removeAttr("aria-expanded"); 851 $chevronBtn.unbind("click"); 852 } 853 854 // resize to mobile or tablet portrait, expanded (should) will always be null 855 // add attributes to make panels interactive 856 else if (!desktop || !Smile.Layout.isTabletLandscape()) { 857 $chevronBtn.attr("aria-expanded", "true"); 858 $chevronBtn.off('click keydown'); 859 $chevronBtn.on('click keydown', function (e) { chevronEvents(e, $chevronHeader) }); 860 } 861 }, 50); 862 }) 863 }, false); 864 } 865 866 var tooltipAttach = function () { 867 $(".tooltip a").unbind('click').on('click', 868 function () { 869 Smile.Utils.TooltipOpen(this); 870 }); 871 872 $(".tooltip .closeTooltip").unbind('click').on('click', 873 function () { 874 Smile.Utils.TooltipClose(this); 875 }); 876 }; 877 878 var hideChildElements = function (jQueryElement) { 879 jQueryElement.children().not('script, link, meta, style').hide(); 880 } 881 882 var showChildElements = function (jQueryElement) { 883 jQueryElement.children().not('script, link, meta, style').show(); 884 } 885 886 var setTabbableList = function (elementSelector) { 887 var $elements = $.dataJs(elementSelector); 888 $elements.keyup((evt) => { 889 var key = evt.key; 890 evt.preventDefault(); 891 if (key === ' ' || key === 'Enter') { 892 evt.currentTarget.click(); 893 } 894 });
895 $elements[0].focus(); 896 } 897 var toCamelCase = function (object) { 898 if (typeof object === 'undefined') 899 return object; 900 901 if (object instanceof Array) 902 return object.map(value => value instanceof Object && value !== null ? toCamelCase(value) : value); 903 904 let newObject = {}; 905 for (key in object) { 906 if (object.hasOwnProperty(key)) { 907 let newKey = (key.charAt(0).toLowerCase() + key.slice(1) || key).toString(); 908 newObject[newKey] = (object[key] instanceof Object || object[key] instanceof Array) && object[key] !== null 909 ? toCamelCase(object[key]) : object[key]; 910 } 911 } 912 return newObject; 913 } 914 915 var normalizeText = function (text) { 916 return text 917 // Smart single quotes/apostrophes 918 .replace(/[\u2018\u2019\u201B\u2032]/g, "'") 919 } 920 921 return { 922 SetJumpToOption: setJumpToOption, 923 CreateJumpToNavigation: createJumpToNavigation, 924 GenerateJumpToNavigation: generateJumpToNavigation, 925 GenerateBarGraph: generateBarGraph, 926 TooltipOpen: tooltipOpen, 927 TooltipClose: tooltipClose, 928 ChevronAttach: chevronAttach, 929 ChevronsHandleResize: chevronsHandleResize, 930 TooltipAttach: tooltipAttach, 931 HideChildElements: hideChildElements, 932 ShowChildElements: showChildElements, 933 SetTabbableList: setTabbableList, 934 ToCamelCase: toCamelCase, 935 NormalizeText: normalizeText 936 }; 937})(jQuery);; 938var Events; 939(function (Events) { 940 var Action = (function () { 941 function Action() { 942 } 943 Action.AjaxRequestSent = "AjaxRequestSent"; 944 Action.ShowErrorModal = "ShowErrorModal"; 945 Action.ShowUnauthorisedModal = "ShowUnauthorisedModal"; 946 Action.WorkflowErrorOccurred = "WorkflowErrorOccurred"; 947 Action.ShowWorkflowErrorModal = "ShowWorkflowErrorModal"; 948 Action.ShowLoadingDialog = "ShowLoadingDialog"; 949 Action.HideLoadingDialog = "HideLoadingDialog"; 950 Action.CloseModal = "CloseModal"; 951 Action.FamilyMemberSelected = "FamilyMemberSelected"; 952 Action.FamilyPickerHideFamilyButton = "FamilyPickerHideFamilyButton"; 953 Action.FamilyPickerSetTitle = "FamilyPickerSetTitle"; 954 Action.SubscriptionSelected = "SubscriptionSelected"; 955 Action.SubscriptionSelectedHeaderLogo = "SubscriptionSelectedHeaderLogo"; 956 Action.SubscriptionClaimsLoaded = "SubscriptionClaimsLoaded"; 957 Action.PatientNetworkSummaryPanelLoaded = "PatientNetworkSummaryPanelLoaded"; 958 Action.ComponentAJAXDataLoaded = "ComponentAJAXDataLoaded"; 959 Action.CoreAJAXDataPreLoad = "CoreAJAXDataPreLoad"; 960 Action.CoreAJAXDataPostLoad = "CoreAJAXDataPostLoad"; 961 Action.NavigateToSignIn = "NavigateToSignIn"; 962 Action.SignOut = "SignOut"; 963 Action.ReCaptchaSubmit = "ReCaptchaSubmit"; 964 Action.ReCaptchaExpired = "ReCaptchaExpired"; 965 Action.ProviderBenefitSearchSubmit = "ProviderBenefitSearchSubmit"; 966 Action.ProviderBenefitDetailsLoaded = "ProviderBenefitDetailsLoaded"; 967 Action.ProviderBenefitDeductiblesLoaded = "ProviderBenefitDeductiblesLoaded"; 968 Action.ProviderBenefitNetworkParticipationLoaded = "ProviderBenefitNetworkParticipationLoaded"; 969 Action.ProviderServiceOfficePickerSelected = "ProviderServiceOfficePickerSelected"; 970 Action.ProviderServiceOfficePickerInitialized = "ProviderServiceOfficePickerInitialized"; 971 Action.ProviderLocationPickerInitialised = "ProviderLocationPickerInitialised"; 972 Action.ProviderLocationPickerSelected = "ProviderLocationPickerSelected"; 973 Action.ProviderProcedureLookupLoaded = "ProviderProcedureLookupLoaded"; 974 Action.ProviderProcedureLookupInitiated = "ProviderProcedureLookupInitiated"; 975 Action.ProviderProcedureLookupCompleted = "ProviderProcedureLookupCompleted"; 976 Action.ResultsPaged = "ResultsPaged"; 977 Action.AJAXRulesProcessed = "AJAXRulesProcessed"; 978 Action.CoreAJAXRegisterHeader = "CoreAJAXRegisterHeader"; 979 Action.UIRuleIdentifyFeatureIdComponent = "UIRuleIdentifyFeatureIdComponent"; 980 Action.AnalyticsTracking = "AnalyticsTracking"; 981 Action.PublicSessionTimeout = "PublicSessionTimeout"; 982 Action.PublicSessionRefresh = "PublicSessionRefresh"; 983 Action.ProviderPatientPrimaryCareDentistUpdate = "ProviderPatientPrimaryCareDentistUpdate"; 984 Action.UISubscriptionRulesProcessed = "UISubscriptionRulesProcessed"; 985 Action.FeatureUnavailable = "FeatureUnavailable"; 986 Action.PatientRegistrationStatusValidated = "PatientRegistrationStatusValidated"; 987 Action.BtlEvent = "BtlDateResponseEvent"; 988 Action.PatientSubscriptionsPickerLoaded = "PatientSubscriptionsPickerLoaded"; 989 Action.PlatformMessagesGetLoaded = "PlatformMessagesGetLoaded"; 990 Action.GoogleMapsApiLoaded = "GoogleMapsApiLoaded"; 991 Action.DashboardLoadedEvent = "DashboardLoaded"; 992 return Action; 993 }()); 994 Events.Action = Action; 995 var EventController = (function () { 996 function EventController() { 997 this.topics = {}; 998 this.pastEvents = {}; 999 this.props = this.topics.hasOwnProperty; 1000 } 1001 EventController.prototype.fire = function (eventId, data) { 1002 this.pastEvents[eventId] = data; 1003 if (!this.props.call(this.topics, eventId)) { 1004 return; 1005 }
1006 this.topics[eventId].forEach(function (item) { 1007 item(data !== undefined ? data : {}); 1008 }); 1009 }; 1010 EventController.prototype.subscribe = function (eventId, listener) { 1011 var _this = this; 1012 if (!this.props.call(this.topics, eventId)) 1013 this.topics[eventId] = []; 1014 if (this.props.call(this.pastEvents, eventId)) 1015 listener(this.pastEvents[eventId]); 1016 var index = this.topics[eventId].push(listener) - 1; 1017 return { 1018 remove: function () { 1019 delete _this.topics[eventId][index]; 1020 } 1021 }; 1022 }; 1023 return EventController; 1024 }()); 1025 Events.EventController = EventController; 1026})(Events || (Events = {})); 1027Smile.createNamespace(Smile, "Smile.Events"); 1028Smile.Events = new Events.EventController(); 1029//# sourceMappingURL=Events.js.map; 1030var Ajax; 1031(function (Ajax) { 1032 var HttpService = (function () { 1033 function HttpService() { 1034 } 1035 HttpService.prototype.getJson = function (url, data, showLoading, tokenHeaderValue, antiForgeryToken) { 1036 if (data) { 1037 url = url + "?" + this.getQueryStringParameters(data); 1038 } 1039 var tokenAntiForgery = ""; 1040 var aftField = $.dataJs("antiForgeryTokenInput").find("[name='__RequestVerificationToken']"); 1041 if (aftField.length) { 1042 tokenAntiForgery = aftField.val().toString(); 1043 } 1044 var options = { 1045 url: url, 1046 method: "GET", 1047 showLoading: showLoading, 1048 tokenHeaderValue: tokenHeaderValue, 1049 antiForgeryToken: tokenAntiForgery 1050 }; 1051 return this.executeAjaxRequest(options); 1052 }; 1053 HttpService.prototype.postJson = function (url, data, tokenHeaderValue, showLoading) { 1054 var tokenAntiForgery = $.dataJs("antiForgeryTokenInput").find("[name='__RequestVerificationToken']").val().toString(); 1055 var options = { 1056 antiForgeryToken: tokenAntiForgery, 1057 url: url, 1058 data: JSON.stringify(data), 1059 contentType: "application/json; charset=utf-8", 1060 tokenHeaderValue: tokenHeaderValue, 1061 showLoading: showLoading !== undefined ? showLoading : true, 1062 }; 1063 return this.executeAjaxRequest(options); 1064 }; 1065 HttpService.prototype.downloadFile = function (url, fileName, onLoadEnd, onError) { 1066 var _this = this; 1067 if (fileName === void 0) { fileName = null; } 1068 Smile.Events.fire(Events.Action.ShowLoadingDialog, null); 1069 var req = new XMLHttpRequest(); 1070 req.open("GET", url, true); 1071 req.responseType = "blob"; 1072 req.send(); 1073 req.onload = function (event) { 1074 if (req.status !== 200) { 1075 Smile.Modals.ErrorDialog.show("Error downloading document", null); 1076 if (onError) 1077 onError(); 1078 return; 1079 } 1080 var blob = req.response; 1081 if (!fileName) { 1082 fileName = _this.getFileNameFromHeader(req); 1083 } 1084 var nav = window.navigator; 1085 if (nav && nav.msSaveOrOpenBlob) { 1086 nav.msSaveOrOpenBlob(blob, fileName); 1087 return; 1088 } 1089 var link = document.createElement('a'); 1090 link.href = window.URL.createObjectURL(blob); 1091 link.download = fileName; 1092 link.click(); 1093 }; 1094 req.onloadend = function () { 1095 Smile.Events.fire(Events.Action.HideLoadingDialog); 1096 if (onLoadEnd && req.status === 200) 1097 onLoadEnd(); 1098 }; 1099 req.onerror = function () { 1100 if (onError) 1101 onError(); 1102 }; 1103 return req; 1104 }; 1105 HttpService.prototype.getQueryStringParameters = function (data) { 1106 var str = []; 1107 for (var property in data) { 1108 if (data.hasOwnProperty(property)) { 1109 str.push(encodeURIComponent(property) + "=" + encodeURIComponent(data[property])); 1110 } 1111 } 1112 return str.join("&"); 1113 }; 1114 HttpService.prototype.getFileNameFromHeader = function (request) { 1115 var fileName; 1116 var fileNameRegex = /filename="(.*?)"/i; 1117 var contentDispositionHeader = request.getResponseHeader("content-disposition"); 1118 var regexResult = fileNameRegex.exec(contentDispositionHeader); 1119 if (regexResult && regexResult.length > 1) { 1120 fileName = regexResult[1]; 1121 } 1122 else { 1123 fileName = null; 1124 } 1125 return fileName; 1126 }; 1127 HttpService.prototype.executeAjaxRequest = function (options) { 1128 var headers = { 1129 "X-Requested-With": "XMLHttpRequest" 1130 }; 1131 if (options.antiForgeryToken && options.antiForgeryToken.length > 0) { 1132 headers["X-XSRF-Token"] = options.antiForgeryToken; 1133 } 1134 if (options.tokenHeaderValue && options.tokenHeaderValue.length > 0) { 1135 headers["Authorization"] = options.tokenHeaderValue; 1136 } 1137 if (options.headers) { 1138 for (var i = 0; i < options.headers.length; i++) { 1139 headers[options.headers[i].Key] = options.headers[i].Value; 1140 } 1141 } 1142 var ajaxOptions = { 1143 url: options.url, 1144 cache: false, 1145 dataType: "json", 1146 method: options.method || "POST", 1147 data: options.data, 1148 headers: headers, 1149 async: options.async || true, 1150 showLoading: options.showLoading !== undefined ? options.showLoading : true, 1151 contentType: options.contentType 1152 }; 1153 if (options.timeout !== undefined) { 1154 jQuery.extend(ajaxOptions, { timeout: options.timeout }); 1155 } 1156 if (ajaxOptions.showLoading) { 1157 Smile.Events.fire(Events.Action.ShowLoadingDialog, null); 1158 } 1159 Smile.Events.fire(Events.Action.CoreAJAXDataPreLoad, ajaxOptions.url); 1160 var customHeaders = new Array(); 1161 Smile.Events.fire(Events.Action.CoreAJAXRegisterHeader, customHeaders); 1162 for (var i = 0; i < customHeaders.length; i++) { 1163 ajaxOptions.headers[customHeaders[i].name] = customHeaders[i].value; 1164 } 1165 Ajax.AjaxRequestHandler.requestCount++; 1166 var deferred = jQuery.ajax(ajaxOptions); 1167 deferred 1168 .then(function (result) { return Ajax.AjaxRequestHandler.handleResult(result, ajaxOptions.url); }, function (error) { return Ajax.AjaxRequestHandler.handleError(error.status, error.responseJSON, ajaxOptions.url); }) 1169 .then(function () { return Ajax.AjaxRequestHandler.handleRequestCount(); }); 1170 this.processWebApiUIRulesWhenDone(deferred); 1171 return deferred; 1172 }; 1173 HttpService.prototype.processWebApiUIRulesWhenDone = function (requestDeferred) { 1174 jQuery.when(requestDeferred) 1175 .done(function (result, successTextStatus, deferred) { return Ajax.AjaxRequestHandler.processUiRules(result); }); 1176 }; 1177 return HttpService; 1178 }()); 1179 Ajax.HttpService = HttpService; 1180})(Ajax || (Ajax = {})); 1181Smile.createNamespace(Smile, "Smile.Ajax"); 1182Smile.Ajax = new Ajax.HttpService(); 1183(function (send) { 1184 XMLHttpRequest.prototype.send = function (data) { 1185 this.addEventListener("readystatechange", function () { 1186 Smile.Events.fire(Events.Action.AjaxRequestSent); 1187 }, false); 1188 send.call(this, data); 1189 }; 1190})(XMLHttpRequest.prototype.send); 1191//# sourceMappingURL=Ajax.js.map; 1192var Ajax; 1193(function (Ajax) { 1194 var AjaxRequestHandler = (function () { 1195 function AjaxRequestHandler() { 1196 } 1197 Object.defineProperty(AjaxRequestHandler.prototype, "requestCount", { 1198 get: function () { return AjaxRequestHandler.requestCount; }, 1199 set: function (val) { AjaxRequestHandler.requestCount = val; }, 1200 enumerable: false, 1201 configurable: true 1202 }); 1203 AjaxRequestHandler.handleRequestCount = function (hideLoading) { 1204 if (hideLoading === void 0) { hideLoading = true; } 1205 this.requestCount--; 1206 if (hideLoading && this.requestCount === 0) { 1207 Smile.Events.fire(Events.Action.HideLoadingDialog); 1208 } 1209 }; 1210 AjaxRequestHandler.handleResult = function (result, requestUrl) { 1211 result.RequestUrl = requestUrl; 1212 Smile.Events.fire(Events.Action.CoreAJAXDataPostLoad, result); 1213 if (result.RedirectUrl && result.RedirectUrl.length) { 1214 AjaxRequestHandler.requestCount++; 1215 window.location.href = result.RedirectUrl; 1216 Smile.Modals.LoadingDialog.show(); 1217 } 1218 }; 1219 AjaxRequestHandler.handleError = function (status, responseData, requestUrl) { 1220 switch (status) { 1221 case 503: 1222 Smile.Events.fire(Events.Action.FeatureUnavailable, responseData); 1223 break; 1224 case 500: 1225 Smile.Events.fire(Events.Action.HideLoadingDialog); 1226 Smile.Events.fire(Events.Action.ShowErrorModal, responseData); 1227 break; 1228 case 401: 1229 case 403: 1230 Smile.Events.fire(Events.Action.SignOut); 1231 Smile.Events.fire(Events.Action.HideLoadingDialog); 1232 Smile.Events.fire(Events.Action.ShowUnauthorisedModal); 1233 break; 1234 } 1235 if (!responseData) { 1236 var emptyResponse = {}; 1237 emptyResponse.RequestUrl = requestUrl; 1238 Smile.Events.fire(Events.Action.CoreAJAXDataPostLoad, emptyResponse); 1239 } 1240 else { 1241 responseData.RequestUrl = requestUrl; 1242 Smile.Events.fire(Events.Action.CoreAJAXDataPostLoad, responseData); 1243 } 1244 }; 1245 AjaxRequestHandler.processUiRules = function (result) { 1246 var apiResult = result; 1247 if (apiResult.UIRules) { 1248 Smile.UIRules.processWebApiUIRules(apiResult.UIRules); 1249 } 1250 }; 1251 AjaxRequestHandler.requestCount = 0; 1252 return AjaxRequestHandler; 1253 }()); 1254 Ajax.AjaxRequestHandler = AjaxRequestHandler; 1255})(Ajax || (Ajax = {})); 1256//# sourceMappingURL=AjaxRequestHandler.js.map; 1257var Core; 1258(function (Core) { 1259 var Guid = (function () { 1260 function Guid(guid) { 1261 if (!guid) { 1262 throw new TypeError("Invalid argument; `value` has no value."); 1263 } 1264 this.value = Guid.EMPTY; 1265 if (guid && Guid.isGuid(guid)) { 1266 this.value = guid; 1267 } 1268 } 1269 Guid.isGuid = function (guid) { 1270 var value = guid.toString(); 1271 return guid && (guid instanceof Guid || Guid.validator.test(value)); 1272 }; 1273 Guid.newGuid = function () { 1274 return new Guid([Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join("-")); 1275 }; 1276 Guid.empty = function () { 1277 return new Guid("emptyguid"); 1278 }; 1279 Guid.parse = function (guid) { 1280 return new Guid(guid); 1281 }; 1282 Guid.gen = function (count) { 1283 var out = ""; 1284 for (var i = 0; i < count; i++) { 1285 out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); 1286 } 1287 return out; 1288 }; 1289 Guid.prototype.equals = function (other) { 1290 return Guid.isGuid(other) && this.value === other.toString(); 1291 }; 1292 Guid.prototype.isEmpty = function () { 1293 return this.value === Guid.EMPTY; 1294 }; 1295 Guid.prototype.toString = function () { 1296 return this.value; 1297 }; 1298 Guid.prototype.toJSON = function () { 1299 return { 1300 value: this.value, 1301 }; 1302 }; 1303 Guid.validator = new RegExp("^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$", "i"); 1304 Guid.EMPTY = "00000000-0000-0000-0000-000000000000"; 1305 return Guid; 1306 }()); 1307 Core.Guid = Guid; 1308})(Core || (Core = {})); 1309//# sourceMappingURL=Guid.js.map; 1310var __assign = (this && this.__assign) || function () { 1311 __assign = Object.assign || function(t) { 1312 for (var s, i = 1, n = arguments.length; i < n; i++) { 1313 s = arguments[i]; 1314 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 1315 t[p] = s[p]; 1316 } 1317 return t; 1318 }; 1319 return __assign.apply(this, arguments); 1320}; 1321var Analytics; 1322(function (Analytics) { 1323 var AnalyticsUser = (function () { 1324 function AnalyticsUser() { 1325 } 1326 AnalyticsUser.Member = "Member"; 1327 AnalyticsUser.Dentist = "Dentist"; 1328 AnalyticsUser.Employer = "Employer"; 1329 AnalyticsUser.Broker = "Broker"; 1330 return AnalyticsUser; 1331 }()); 1332 Analytics.AnalyticsUser = AnalyticsUser; 1333 var AnalyticsService = (function () { 1334 function AnalyticsService() { 1335 var _this = this; 1336 window.dataLayer = window.dataLayer || []; 1337 Smile.Events.subscribe(Events.Action.AnalyticsTracking, function (data) { _this.eventTracking(data); }); 1338 } 1339 AnalyticsService.prototype.registerEvent = function (event, userType) { 1340 var eventName = (userType || Core.UserType.Patient) + event; 1341 window.dataLayer.push({ 'event': eventName }); 1342 }; 1343 AnalyticsService.prototype.registerEcommerceEvent = function (event, ecommerce) { 1344 window.dataLayer.push({ 'event': event, 'ecommerce': ecommerce }); 1345 }; 1346 AnalyticsService.prototype.registerEventWithDetails = function (event, details) { 1347 window.dataLayer.push(__assign({ 'event': event }, details)); 1348 }; 1349 AnalyticsService.prototype.convertUserType = function (userTypeCode) { 1350 var userNameCode = "Unknown"; 1351 if (userTypeCode) { 1352 userTypeCode = userTypeCode.toLowerCase(); 1353 switch (userTypeCode) { 1354 case "e": 1355 userNameCode = "Employer"; 1356 break; 1357 case "m": 1358 userNameCode = "Member"; 1359 break; 1360 case "d": 1361 userNameCode = "Dentist"; 1362 break; 1363 case "b": 1364 userNameCode = "Broker"; 1365 break; 1366 } 1367 } 1368 return userNameCode; 1369 }; 1370 AnalyticsService.prototype.eventTracking = function (analyticsTracking) { 1371 window.dataLayer.push({
1372 'event': analyticsTracking.Event ? analyticsTracking.Event : 'DataAnalyticsEvent', 1373 'eventCategory': analyticsTracking.Category, 1374 'eventAction': analyticsTracking.Action, 1375 'eventLabel': analyticsTracking.Label ? analyticsTracking.Label : undefined, 1376 'eventValue': analyticsTracking.Value ? analyticsTracking.Value : undefined 1377 }); 1378 }; 1379 return AnalyticsService; 1380 }()); 1381 Analytics.AnalyticsService = AnalyticsService; 1382 var Event = (function () { 1383 function Event() { 1384 } 1385 Event.click = "Click"; 1386 Event.pdfPrint = "PDF Print"; 1387 Event.benefitDetails = "BenefitDetails"; 1388 Event.registration = "Registration"; 1389 Event.interaction = "Interaction"; 1390 Event.formSubmit = "Form Submit"; 1391 Event.dropdownSelectionChanged = "DropdownSelectionChanged"; 1392 Event.accountConfirmed = "Confirmed"; 1393 Event.accountRegistered = "Registered"; 1394 Event.accountCancelled = "RegisterCancel"; 1395 Event.accountError = "RegisterError"; 1396 Event.pcdAssignClicked = "PrimaryCareDentistAssignClicked"; 1397 Event.pcdUpdateClicked = "PrimaryCareDentistUpdateClicked"; 1398 Event.pcdConfirmClicked = "PrimaryCareDentistConfirmClicked"; 1399 Event.pcdAssignSuccess = "PrimaryCareDentistAssignSuccess"; 1400 Event.pcdAssignError = "PrimaryCareDentistAssignError"; 1401 Event.IdCardCreateAccountSuccess = "IdCardCreateAccountSuccess"; 1402 Event.idCardValidationRequested = "IdCardValidationRequested"; 1403 Event.idCardValidationSuccess = "IdCardValidationSuccess"; 1404 Event.idCardValidationError = "IdCardValidationError"; 1405 Event.TreatmentHistorySearch = "TreatmentHistorySearch"; 1406 Event.ProcedureCodeSearch = "ProcedureCodeSearch"; 1407 Event.BenefitsCoverageLink = "BenefitsCoverageLink"; 1408 Event.SendPasscode = "SendPasscode"; 1409 Event.DeleteAccount = "DeleteAccount"; 1410 Event.MemberIdCardCreateAccountClicked = "MemberIdCardCreateAccountClicked"; 1411 Event.CreateAccountSuccess = "CreateAccountSuccess"; 1412 Event.IdCardPdfDownloadClicked = "IdCardPdfDownloadClicked"; 1413 Event.DdpaFadSearchAutocompleteOptionSelected = "DdpaFadSearchAutocompleteOptionSelected"; 1414 Event.DdpaFadWidgetAutocompleteOptionSelected = "DdpaFadWidgetAutocompleteOptionSelected"; 1415 Event.DdpaFadSearchWithDentistName = "DdpaFadSearchWithDentistName"; 1416 Event.DdpaFadSearchWithClinicName = "DdpaFadSearchWithClinicName"; 1417 Event.CostEstimatorWidgetAutocompleteOptionSelected = "CostEstimatorWidgetAutocompleteOptionSelected"; 1418 return Event; 1419 }()); 1420 Analytics.Event = Event; 1421 var EcommerceEvents = (function () { 1422 function EcommerceEvents() { 1423 } 1424 EcommerceEvents.ViewItemList = "view_item_list"; 1425 EcommerceEvents.ViewItem = "view_item"; 1426 EcommerceEvents.AddToCart = "add_to_cart"; 1427 EcommerceEvents.RemoveFromCart = "remove_from_cart"; 1428 EcommerceEvents.BeginCheckOut = "begin_checkout"; 1429 EcommerceEvents.AddPaymentInfo = "add_payment_info"; 1430 EcommerceEvents.Purchase = "purchase"; 1431 EcommerceEvents.PlansViewed = "plans_viewed"; 1432 EcommerceEvents.UpSell = "upsell"; 1433 EcommerceEvents.Payment = "payment"; 1434 return EcommerceEvents; 1435 }()); 1436 Analytics.EcommerceEvents = EcommerceEvents; 1437 var EventTracking = (function () { 1438 function EventTracking() { 1439 } 1440 EventTracking.EnrollmentAddFormSubmitButtonClick = "EnrollmentAddFormSubmitButtonClick"; 1441 EventTracking.EnrollmentDetailsFormSubmitChangesButtonClick = "EnrollmentDetailsFormSubmitChangesButtonClick"; 1442 EventTracking.EnrollmentCreateModalAddMemberNewButtonClick = "EnrollmentCreateModalAddMemberNewButtonClick"; 1443 EventTracking.EnrollmentCreateModalAddMemberExistingButtonClick = "EnrollmentCreateModalAddMemberExistingButtonClick"; 1444 EventTracking.EnrollmentCreateModalFinishButtonClick = "EnrollmentCreateModalFinishButtonClick"; 1445 return EventTracking; 1446 }()); 1447 Analytics.EventTracking = EventTracking; 1448})(Analytics || (Analytics = {})); 1449Smile.createNamespace(Smile, "Smile.Analytics"); 1450Smile.Analytics = new Analytics.AnalyticsService(); 1451//# sourceMappingURL=AnalyticsService.js.map; 1452var __extends = (this && this.__extends) || (function () { 1453 var extendStatics = function (d, b) { 1454 extendStatics = Object.setPrototypeOf || 1455 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 1456 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 1457 return extendStatics(d, b); 1458 }; 1459 return function (d, b) { 1460 if (typeof b !== "function" && b !== null) 1461 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 1462 extendStatics(d, b); 1463 function __() { this.constructor = d; } 1464 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 1465 }; 1466})(); 1467var ContentComponent; 1468(function (ContentComponent) { 1469 var ContentService = (function (_super) { 1470 __extends(ContentService, _super); 1471 function ContentService() { 1472 var _this = _super.call(this) || this; 1473 _this.endpoint = "/private/content/api/"; 1474 _this.getEndpoint = function (action) { 1475 return _this.endpoint + action; 1476 }; 1477 _this.getUiRuleContentByFieldFilter = function (componentType, featureId, fieldFilter) { 1478 return _this.getJson(_this.endpoint + "get-ui-rule-content-by-field-filter", { 1479 componentType: componentType, 1480 featureId: featureId, 1481 fieldFilter: fieldFilter 1482 }); 1483 }; 1484 return _this; 1485 } 1486 return ContentService; 1487 }(Ajax.HttpService)); 1488 ContentComponent.ContentService = ContentService; 1489})(ContentComponent || (ContentComponent = {})); 1490//# sourceMappingURL=ContentService.js.map; 1491var __extends = (this && this.__extends) || (function () { 1492 var extendStatics = function (d, b) { 1493 extendStatics = Object.setPrototypeOf || 1494 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 1495 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 1496 return extendStatics(d, b); 1497 }; 1498 return function (d, b) { 1499 if (typeof b !== "function" && b !== null) 1500 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 1501 extendStatics(d, b); 1502 function __() { this.constructor = d; } 1503 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 1504 }; 1505})(); 1506var UIRules; 1507(function (UIRules) { 1508 var ActionTypes = (function () { 1509 function ActionTypes() { 1510 } 1511 ActionTypes.ElementDisable = 0; 1512 ActionTypes.ElementHide = 1; 1513 ActionTypes.ElementShow = 2; 1514 ActionTypes.ElementReplaceContent = 3; 1515 ActionTypes.SitecoreConfigure = 5; 1516 ActionTypes.UrlConfigure = 6; 1517 ActionTypes.DialogShow = 7; 1518 return ActionTypes; 1519 }()); 1520 UIRules.ActionTypes = ActionTypes; 1521 var ParamType = (function () { 1522 function ParamType() { 1523 } 1524 ParamType.Text = 0; 1525 ParamType.DomDataSelector = 1; 1526 ParamType.FeatureId = 2; 1527 ParamType.FeaturePropertyId = 3; 1528 ParamType.Url = 4; 1529 ParamType.SitecorePath = 6; 1530 ParamType.SitecoreFieldFilter = 7; 1531 return ParamType; 1532 }()); 1533 UIRules.ParamType = ParamType; 1534 var UIRuleProcessor = (function () { 1535 function UIRuleProcessor(contentService) { 1536 var _this = this; 1537 this.setup = function () { 1538 if (!Smile.UIRulesState) { 1539 return; 1540 } 1541 _this.processPageLoadActions(); 1542 if (Smile.UIRulesState.Actions.some(function (action) { return action.HasSubscriptionTrigger; })) { 1543 Smile.Events.subscribe(Events.Action.SubscriptionSelected, _this.subscriptionChange); 1544 Smile.Events.subscribe(Events.Action.SubscriptionSelectedHeaderLogo, _this.subscriptionChange); 1545 } 1546 }; 1547 this.clearUIRulesCache = function () { 1548 _this.lastWebAPIUIRules = undefined; 1549 _this.previousWebAPIUIRules = undefined; 1550 }; 1551 this.processWebApiUIRules = function (uiRules) { 1552 Smile.Events.fire(Events.Action.AJAXRulesProcessed, uiRules); 1553 _this.lastWebAPIUIRules = uiRules; 1554 if (uiRules && uiRules.Actions && uiRules.Actions.length > 0) { 1555 if (_this.previousWebAPIUIRules && _this.previousWebAPIUIRules.Actions) { 1556 for (var index in _this.previousWebAPIUIRules.Actions) { 1557 var prevAction = _this.previousWebAPIUIRules.Actions[index]; 1558 var matchKey = _this.utility.FindAction(_this.lastWebAPIUIRules.Actions, prevAction); 1559 var matchFound = matchKey && matchKey !== -1; 1560 if (!matchFound && _this.previousStateStore.HasState(prevAction)) { 1561 _this.previousStateStore.Rollback(prevAction); 1562 } 1563 } 1564 } 1565 for (var index in uiRules.Actions) { 1566 var action = uiRules.Actions[index]; 1567 if (_this.previousWebAPIUIRules && _this.previousWebAPIUIRules.Actions) { 1568 var matchFound_1 = false; 1569 var matchKey = _this.utility.FindAction(_this.previousWebAPIUIRules.Actions, action); 1570 matchFound_1 = matchKey && matchKey !== -1; 1571 if (matchFound_1) { 1572 continue; 1573 } 1574 } 1575 if (action.HasSubscriptionTrigger) { 1576 continue; 1577 } 1578 _this.executeAction(action); 1579 } 1580 } 1581 else { 1582 if (_this.previousWebAPIUIRules) { 1583 for (var index in _this.previousWebAPIUIRules.Actions) { 1584 var action = _this.previousWebAPIUIRules.Actions[index]; 1585 if (_this.previousStateStore.HasState(action)) { 1586 _this.previousStateStore.Rollback(action); 1587 } 1588 } 1589 } 1590 } 1591 _this.previousWebAPIUIRules = uiRules; 1592 }; 1593 this.stageWebApiUIRules = function (uiRules) { 1594 _this.lastWebAPIUIRules = uiRules; 1595 }; 1596 this.processStagedUIRules = function () { 1597 _this.processWebApiUIRules(_this.lastWebAPIUIRules); 1598 }; 1599 this.processPageLoadActions = function () { 1600 var _a; 1601 for (var index in (_a = Smile.UIRulesState) === null || _a === void 0 ? void 0 : _a.Actions) { 1602 var action = Smile.UIRulesState.Actions[index]; 1603 if (action.HasSubscriptionTrigger) { 1604 continue; 1605 } 1606 _this.executeAction(action); 1607 } 1608 }; 1609 this.subscriptionChange = function (eventPayload) { 1610 _this.processSubscriptionsActions(eventPayload); 1611 }; 1612 this.processSubscriptionsActions = function (eventPayload) { 1613 var _a, _b; 1614 for (var index in (_a = Smile.UIRulesState) === null || _a === void 0 ? void 0 : _a.Actions) { 1615 var action = Smile.UIRulesState.Actions[index]; 1616 if (!action.HasSubscriptionTrigger) { 1617 continue; 1618 } 1619 var subscriptions = jQuery.grep(action.Metadata, function (item) { 1620 return item.Key === "SUBSCRIPTION_GID" && item.Value == eventPayload.gid; 1621 }); 1622 if (subscriptions.length === 0 && _this.previousStateStore.HasState(action)) { 1623 _this.previousStateStore.Rollback(action); 1624 } 1625 } 1626 for (var index in (_b = Smile.UIRulesState) === null || _b === void 0 ? void 0 : _b.Actions) { 1627 var action = Smile.UIRulesState.Actions[index]; 1628 if (!action.HasSubscriptionTrigger) { 1629 continue; 1630 } 1631 var subscriptions = jQuery.grep(action.Metadata, function (item) { 1632 return item.Key === "SUBSCRIPTION_GID" && item.Value == eventPayload.gid; 1633 }); 1634 if (subscriptions.length > 0) { 1635 _this.executeAction(action); 1636 } 1637 } 1638 Smile.Events.fire(Events.Action.UISubscriptionRulesProcessed, eventPayload); 1639 }; 1640 this.executeAction = function (action) { 1641 if (action.Action === ActionTypes.ElementShow) { 1642 _this.elementShowProcessor.Process(action, _this.previousStateStore); 1643 } 1644 else if (action.Action === ActionTypes.UrlConfigure) { 1645 _this.urlConfigureProcessor.Process(action, _this.previousStateStore); 1646 } 1647 else if (action.Action === ActionTypes.ElementHide) { 1648 _this.elementHideProcessor.Process(action, _this.previousStateStore); 1649 } 1650 else if (action.Action === ActionTypes.ElementDisable) { 1651 _this.elementDisableProcessor.Process(action, _this.previousStateStore); 1652 } 1653 else if (action.Action === ActionTypes.DialogShow) { 1654 _this.dialogShowProcessor.Process(action, _this.previousStateStore); 1655 } 1656 else if (action.Action === ActionTypes.SitecoreConfigure) { 1657 _this.sitecoreConfigureProcessor.Process(action, _this.previousStateStore); 1658 } 1659 }; 1660 this.contentService = contentService;
1661 this.previousStateStore = new PreviousStateStore(); 1662 this.elementShowProcessor = new ElementShowProcessor(); 1663 this.urlConfigureProcessor = new UrlConfigureProcessor(); 1664 this.elementHideProcessor = new ElementHideProcessor(); 1665 this.elementDisableProcessor = new ElementDisableProcessor(); 1666 this.dialogShowProcessor = new DialogShowProcessor(); 1667 this.sitecoreConfigureProcessor = new SitecoreConfigureProcessor(this.contentService); 1668 this.utility = new Utility(); 1669 Smile.Events.subscribe(Events.Action.ResultsPaged, function (pagingPayload) { 1670 if (pagingPayload) { 1671 _this.processWebApiUIRules(_this.lastWebAPIUIRules); 1672 } 1673 }); 1674 } 1675 return UIRuleProcessor; 1676 }()); 1677 UIRules.UIRuleProcessor = UIRuleProcessor; 1678 var BaseActionProcessor = (function () { 1679 function BaseActionProcessor() { 1680 } 1681 BaseActionProcessor.prototype.findElement = function (action) { 1682 for (var pIndex in action.ActionParams) { 1683 var param = action.ActionParams[pIndex]; 1684 if (param.ActionParamType === ParamType.FeatureId) { 1685 var featureId = param.ActionParam; 1686 var element = $("[data-js-ui-rule-feature-id='" + featureId + "']"); 1687 return element; 1688 } 1689 else if (param.ActionParamType === ParamType.DomDataSelector) { 1690 var domSelector = param.ActionParam; 1691 var element = $(domSelector); 1692 return element; 1693 } 1694 } 1695 }; 1696 BaseActionProcessor.prototype.extractItemMetadata = function (itemId, metadata) { 1697 var itemIdPrefix = "ITEM_ID." + itemId + "."; 1698 return metadata.filter(function (m) { return m.Key.indexOf(itemIdPrefix) !== -1; }) 1699 .map(function (m) { 1700 return { 1701 Key: m.Key.substring(m.Key.indexOf(itemIdPrefix) + itemIdPrefix.length), 1702 Value: m.Value 1703 }; 1704 }); 1705 }; 1706 BaseActionProcessor.prototype.replacePlaceholders = function (message, placeholderValues) { 1707 if (message.indexOf("{METADATA_") === -1) { 1708 return message; 1709 } 1710 placeholderValues.forEach(function (p) { 1711 message = message.replace("{" + p.Key + "}", p.Value); 1712 }); 1713 return message; 1714 }; 1715 return BaseActionProcessor; 1716 }()); 1717 UIRules.BaseActionProcessor = BaseActionProcessor; 1718 var ElementShowProcessor = (function (_super) { 1719 __extends(ElementShowProcessor, _super); 1720 function ElementShowProcessor() { 1721 var _this = _super !== null && _super.apply(this, arguments) || this; 1722 _this.Process = function (action, previousStateStore) { 1723 var element = _this.findElement(action); 1724 if (element && element.length > 0) { 1725 var previousVisibleState_1 = element.is(':visible') || element.css('display') != 'none'; 1726 element.show(); 1727 var observer_1 = new MutationObserver(function (mutations) { 1728 mutations.forEach(function (mutationRecord) { 1729 element.show(); 1730 }); 1731 }); 1732 observer_1.observe(element[0], { attributes: true, attributeFilter: ['style'] }); 1733 Smile.Core.Debug.Log("Show element", "UI Rules Client Engine"); 1734 previousStateStore.Record(action, function () { 1735 var visibleState = previousVisibleState_1; 1736 var actionElement = element; 1737 var actionObserver = observer_1; 1738 actionObserver.disconnect(); 1739 if (!visibleState) { 1740 actionElement.hide(); 1741 Smile.Core.Debug.Log("Rollback Show element", "UI Rules Client Engine"); 1742 } 1743 }); 1744 } 1745 }; 1746 return _this; 1747 } 1748 return ElementShowProcessor; 1749 }(BaseActionProcessor)); 1750 UIRules.ElementShowProcessor = ElementShowProcessor; 1751 var DialogShowProcessor = (function (_super) { 1752 __extends(DialogShowProcessor, _super); 1753 function DialogShowProcessor() { 1754 var _this = _super !== null && _super.apply(this, arguments) || this; 1755 _this.Process = function (action, previousStateStore) { 1756 if (action.HasItemId) { 1757 var featureId_1 = ""; 1758 for (var pIndex in action.ActionParams) { 1759 var param = action.ActionParams[pIndex]; 1760 if (param.ActionParamType === ParamType.FeatureId) { 1761 featureId_1 = param.ActionParam; 1762 break; 1763 } 1764 } 1765 var itemIds = jQuery.map(action.Metadata, function (n, i) { return n.Key === "ITEM_ID" ? n.Value : ""; }).filter(function (itemId) { return itemId.length > 0; }); 1766 var messageTemplate_1 = ""; 1767 for (var pIndex in action.ActionParams) { 1768 var param = action.ActionParams[pIndex]; 1769 if (param.ActionParamType === ParamType.Text 1770 || param.ActionParamType === ParamType.SitecorePath) { 1771 messageTemplate_1 = param.ActionParam; 1772 break; 1773 } 1774 } 1775 jQuery.each(itemIds, function (i, itemId) { 1776 var itemMetaData = _this.extractItemMetadata(itemId, action.Metadata); 1777 var customMessage = _this.replacePlaceholders(messageTemplate_1, itemMetaData); 1778 var element = $("[data-js-ui-rule-feature-id='" + featureId_1 + "'][data-js-ui-rule-item-id='" + itemId + "']"); 1779 if (element && element.length > 0) { 1780 element.on("click auxclick", function () { 1781 Smile.Modals.MessageDialog.show(customMessage, null, "Ok"); 1782 element[0].dispatchEvent(new Event('ui-rule-block', { bubbles: true })); 1783 return false; 1784 }); 1785 } 1786 }); 1787 } 1788 }; 1789 return _this; 1790 } 1791 return DialogShowProcessor; 1792 }(BaseActionProcessor)); 1793 UIRules.DialogShowProcessor = DialogShowProcessor; 1794 var ElementHideProcessor = (function (_super) { 1795 __extends(ElementHideProcessor, _super); 1796 function ElementHideProcessor() { 1797 var _this = _super !== null && _super.apply(this, arguments) || this; 1798 _this.Process = function (action, previousStateStore) { 1799 if (action.HasItemId) { 1800 var featureId_2 = ""; 1801 for (var pIndex in action.ActionParams) { 1802 var param = action.ActionParams[pIndex]; 1803 if (param.ActionParamType === ParamType.FeatureId) { 1804 featureId_2 = param.ActionParam; 1805 break; 1806 } 1807 } 1808 var itemIds = jQuery.map(action.Metadata, function (n, i) { return n.Value; }); 1809 jQuery.each(itemIds, function (i, val) { 1810 var element = $("[data-js-ui-rule-feature-id='" + featureId_2 + "'][data-js-ui-rule-item-id='" + val + "']"); 1811 if (element && element.length > 0) { 1812 element.attr('style', 'display:none !important'); 1813 } 1814 }); 1815 } 1816 else { 1817 var element_1 = _this.findElement(action); 1818 if (element_1 && element_1.length > 0) { 1819 var previousVisibleState_2 = element_1.is(':visible') || element_1.css('display') != 'none'; 1820 element_1.hide(); 1821 var messageId = element_1.attr('data-js-ui-rule-message-id'); 1822 var messageElement_1 = messageId ? $('#' + messageId) : null; 1823 if (messageElement_1 && messageElement_1.length > 0) { 1824 messageElement_1.css('display', ''); 1825 } 1826 var observer_2 = new MutationObserver(function (mutations) { 1827 mutations.forEach(function (mutationRecord) { 1828 element_1.hide(); 1829 }); 1830 }); 1831 observer_2.observe(element_1[0], { attributes: true, attributeFilter: ['style'] }); 1832 Smile.Core.Debug.Log("Hide element", "UI Rules Client Engine"); 1833 previousStateStore.Record(action, function () { 1834 var visibleState = previousVisibleState_2; 1835 var actionElement = _this.findElement(action); 1836 var actionObserver = observer_2; 1837 actionObserver.disconnect(); 1838 if (visibleState) { 1839 actionElement.show(); 1840 Smile.Core.Debug.Log("Rollback Hide element", "UI Rules Client Engine"); 1841 } 1842 if (messageElement_1 && messageElement_1.length > 0) { 1843 messageElement_1.hide(); 1844 } 1845 }); 1846 } 1847 } 1848 }; 1849 return _this; 1850 } 1851 return ElementHideProcessor; 1852 }(BaseActionProcessor)); 1853 UIRules.ElementHideProcessor = ElementHideProcessor; 1854 var ElementDisableProcessor = (function () { 1855 function ElementDisableProcessor() { 1856 this.Process = function (action, previousStateStore) { 1857 var _loop_1 = function (pIndex) { 1858 var param = action.ActionParams[pIndex]; 1859 if (param.ActionParamType === ParamType.FeatureId) { 1860 var featureId_3 = param.ActionParam; 1861 if (action.HasItemId) { 1862 itemIds = jQuery.map(action.Metadata, function (n, i) { return n.Value; }); 1863 jQuery.each(itemIds, function (i, val) { 1864 var element = $("[data-js-ui-rule-feature-id='" + featureId_3 + "'][data-js-ui-rule-item-id='" + val + "']"); 1865 if (element && element.length > 0) { 1866 element.attr("disable", "disable"); 1867 if (element.is("a")) { 1868 element.on('click', function (e) { e.preventDefault(); }); 1869 } 1870 } 1871 }); 1872 } 1873 else { 1874 var element_2 = $("[data-js-ui-rule-feature-id='" + featureId_3 + "']"); 1875 var previousDisableState_1 = element_2.attr('disable'); 1876 element_2.attr("disable", "disable"); 1877 previousStateStore.Record(action, function () { 1878 var disableState = previousDisableState_1; 1879 var actionElement = element_2; 1880 if (disableState === '') { 1881 actionElement.attr("disable", disableState); 1882 } 1883 }); 1884 } 1885 return "break"; 1886 } 1887 }; 1888 var itemIds; 1889 for (var pIndex in action.ActionParams) { 1890 var state_1 = _loop_1(pIndex); 1891 if (state_1 === "break") 1892 break; 1893 } 1894 }; 1895 } 1896 return ElementDisableProcessor; 1897 }()); 1898 UIRules.ElementDisableProcessor = ElementDisableProcessor; 1899 var UrlConfigureProcessor = (function () { 1900 function UrlConfigureProcessor() { 1901 this.Process = function (action, previousStateStore) { 1902 var featureId = ""; 1903 var url = ""; 1904 for (var pIndex in action.ActionParams) { 1905 var param = action.ActionParams[pIndex]; 1906 if (param.ActionParamType === ParamType.FeatureId) { 1907 featureId = param.ActionParam; 1908 } 1909 else if (param.ActionParamType === ParamType.Url) { 1910 url = param.ActionParam; 1911 } 1912 } 1913 if (url !== "" && featureId !== "") { 1914 var element_3 = $("[data-js-ui-rule-feature-id='" + featureId + "']"); 1915 if (element_3 && element_3.length > 0) { 1916 var previousUrl_1 = ""; 1917 if (element_3.attr('href')) { 1918 previousUrl_1 = element_3.attr('href'); 1919 element_3.attr('href', url); 1920 Smile.Core.Debug.Log("Url configure element", "UI Rules Client Engine"); 1921 previousStateStore.Record(action, function () { 1922 var urlValue = previousUrl_1; 1923 var actionElement = element_3; 1924 actionElement.attr('href', urlValue); 1925 Smile.Core.Debug.Log("Rollback Url configure element", "UI Rules Client Engine"); 1926 }); 1927 } 1928 else { 1929 previousUrl_1 = $("[href]", element_3).attr('href'); 1930 $("[href]", element_3).attr('href', url); 1931 Smile.Core.Debug.Log("Url configure element's children", "UI Rules Client Engine"); 1932 previousStateStore.Record(action, function () { 1933 var urlValue = previousUrl_1; 1934 var actionElement = element_3; 1935 $("[href]", actionElement).attr('href', urlValue); 1936 Smile.Core.Debug.Log("Rollback Url configure element's children", "UI Rules Client Engine"); 1937 }); 1938 } 1939 } 1940 } 1941 }; 1942 } 1943 return UrlConfigureProcessor; 1944 }()); 1945 UIRules.UrlConfigureProcessor = UrlConfigureProcessor; 1946 var SitecoreConfigureProcessor = (function () { 1947 function SitecoreConfigureProcessor(contentService) { 1948 var _this = this; 1949 this.Process = function (action, previousStateStore) { 1950 jQuery(function () { 1951 _this.processSitecoreConfigure(action, previousStateStore); 1952 }); 1953 }; 1954 this.processContent = function (action, previousStateStore, element, newContent) { 1955 var previousContent = ""; 1956 if (element.html()) { 1957 previousContent = element.html(); 1958 element.html(newContent); 1959 Smile.Core.Debug.Log("Sitecore configure element", "UI Rules Client Engine"); 1960 previousStateStore.Record(action, function () { 1961 var contentValue = previousContent; 1962 var actionElement = element; 1963 actionElement.html(contentValue); 1964 Smile.Core.Debug.Lo
1964g("Rollback Sitecore configure element", "UI Rules Client Engine"); 1965 }); 1966 } 1967 else { 1968 previousContent = element.html(); 1969 element.html(newContent); 1970 Smile.Core.Debug.Log("Sitecore configure element's children", "UI Rules Client Engine"); 1971 previousStateStore.Record(action, function () { 1972 var contentValue = previousContent; 1973 var actionElement = element; 1974 actionElement.html(contentValue); 1975 Smile.Core.Debug.Log("Rollback Sitecore configure element's children", "UI Rules Client Engine"); 1976 }); 1977 } 1978 }; 1979 this.contentService = contentService; 1980 this.contentCache = {}; 1981 } 1982 SitecoreConfigureProcessor.prototype.processSitecoreConfigure = function (action, previousStateStore) { 1983 var featureId = ""; 1984 var sitecoreFieldFilter = ""; 1985 for (var pIndex in action.ActionParams) { 1986 var param = action.ActionParams[pIndex]; 1987 if (param.ActionParamType === ParamType.FeatureId) { 1988 featureId = param.ActionParam; 1989 } 1990 else if (param.ActionParamType === ParamType.SitecoreFieldFilter) { 1991 sitecoreFieldFilter = param.ActionParam; 1992 } 1993 } 1994 if (sitecoreFieldFilter !== "" && featureId !== "") { 1995 var element_4 = $("[data-js-ui-rule-feature-id='" + featureId + "']"); 1996 if (element_4 && element_4.length > 0) { 1997 element_4.attr('data-js-content-type', featureId).attr('data-js-content-key', sitecoreFieldFilter); 1998 var newContent = ""; 1999 var data = { 2000 FeatureId: featureId, 2001 ComponentType: "" 2002 }; 2003 Smile.Events.fire(Events.Action.UIRuleIdentifyFeatureIdComponent, data); 2004 if (this.contentCache && this.contentCache[data.ComponentType + featureId + sitecoreFieldFilter]) { 2005 this.processContent(action, previousStateStore, element_4, this.contentCache[data.ComponentType + featureId + sitecoreFieldFilter]); 2006 } 2007 else { 2008 var _th = this; 2009 this.contentService.getUiRuleContentByFieldFilter(data.ComponentType, featureId, sitecoreFieldFilter).then(function (result) { 2010 _th.contentCache[data.ComponentType + featureId + sitecoreFieldFilter] = result.Data; 2011 _th.processContent(action, previousStateStore, element_4, result.Data); 2012 }); 2013 } 2014 } 2015 } 2016 }; 2017 return SitecoreConfigureProcessor; 2018 }()); 2019 UIRules.SitecoreConfigureProcessor = SitecoreConfigureProcessor; 2020 var PreviousStateStore = (function () { 2021 function PreviousStateStore() { 2022 var _this = this; 2023 this.Rollback = function (action) { 2024 var actionIndexPos = _this.utility.FindAction(jQuery.map(_this.actionStates, function (n, i) { return n.action; }), action); 2025 if (actionIndexPos && actionIndexPos !== -1) { 2026 _this.actionStates[actionIndexPos].rollback(); 2027 _this.actionStates.splice(actionIndexPos, 1); 2028 } 2029 }; 2030 this.Record = function (action, rollbackFunc) { 2031 var actionIndexPos = _this.utility.FindAction(jQuery.map(_this.actionStates, function (n, i) { return n.action; }), action); 2032 if (!actionIndexPos || actionIndexPos == -1) { 2033 _this.actionStates.push({ action: action, rollback: rollbackFunc }); 2034 } 2035 }; 2036 this.HasState = function (action) { 2037 var actionIndexPos = _this.utility.FindAction(jQuery.map(_this.actionStates, function (n, i) { return n.action; }), action); 2038 return actionIndexPos && actionIndexPos != -1; 2039 }; 2040 this.actionStates = []; 2041 this.utility = new Utility(); 2042 } 2043 return PreviousStateStore; 2044 }()); 2045 UIRules.PreviousStateStore = PreviousStateStore; 2046 var Utility = (function () { 2047 function Utility() { 2048 this.FindAction = function (actions, action) { 2049 var matchKey; 2050 for (var pIndex in actions) { 2051 var actionItem = actions[pIndex]; 2052 if (action.RuleId === actionItem.RuleId 2053 && action.Action === actionItem.Action 2054 && action.ActionParams.length > 0 2055 && actionItem.ActionParams.length > 0 2056 && action.ActionParams.length === actionItem.ActionParams.length) { 2057 matchKey = pIndex; 2058 for (var i = 0; i < action.ActionParams.length; i++) { 2059 var actionParam = action.ActionParams[i]; 2060 var actionItemParam = actionItem.ActionParams[i]; 2061 if (actionParam.ActionParam !== actionItemParam.ActionParam 2062 || actionParam.ActionParamType !== actionItemParam.ActionParamType) { 2063 matchKey = undefined; 2064 break; 2065 } 2066 } 2067 if (matchKey === pIndex) { 2068 break; 2069 } 2070 } 2071 } 2072 return matchKey; 2073 }; 2074 } 2075 return Utility; 2076 }()); 2077})(UIRules || (UIRules = {})); 2078Smile.createNamespace(Smile, "Smile.UIRules"); 2079Smile.UIRules = new UIRules.UIRuleProcessor(new ContentComponent.ContentService());
2080//# sourceMappingURL=UIRules.js.map; 2081var Modal; 2082(function (Modal) { 2083 var BaseDialog = (function () { 2084 function BaseDialog(dialogId, setupModalCloseTabActions) { 2085 var _this = this; 2086 this.dialogId = dialogId; 2087 this.setupModalCloseTabActions = setupModalCloseTabActions !== null && setupModalCloseTabActions !== void 0 ? setupModalCloseTabActions : false; 2088 this.$modal = $.dataJs(dialogId); 2089 this.$overlay = $.dataJs("modalOverlay"); 2090 this.$message = this.$modal.dataJs("modalMessage"); 2091 this.defaultMessage = this.$message.text(); 2092 this.$confirmBtn = this.$modal.dataJs("confirmBtn"); 2093 this.$closeBtn = this.$modal.dataJs("dialogClose"); 2094 this.$dialogContent = this.$modal.dataJs("dialogContent"); 2095 this.clearMessage = true; 2096 this.blurBody = true; 2097 this.modalOverlayGray = false; 2098 this.$modal.on("click", "[data-js=confirmBtn]", function () { return _this.close(); }); 2099 this.$modal.on("keydown", "[data-js=dialogClose]", function (event) { 2100 if (event.key == "Escape" || event.key == "Enter") { 2101 _this.close(); 2102 } 2103 }); 2104 Smile.Events.subscribe(Events.Action.CloseModal, function () { return _this.close(); }); 2105 } 2106 BaseDialog.prototype.open = function () { 2107 var _a; 2108 this.$modal.show(); 2109 this.$modal.attr("aria-hidden", "false"); 2110 this.$overlay.show(); 2111 if (this.blurBody) { 2112 Smile.Layout.pageBodyBlur.set(); 2113 } 2114 if (this.modalOverlayGray) { 2115 Smile.Layout.modalOverlayGray.set(); 2116 } 2117 else { 2118 Smile.Layout.modalOverlayGray.unset(); 2119 } 2120 if (!!this.setupModalCloseTabActions) { 2121 Smile.MdBootstrap.smileModal.setupModalCloseTabActions(null, this.dialogId); 2122 } 2123 if ($('#closeModalButton').length) { 2124 $('#closeModalButton').focus(); 2125 } 2126 (_a = this === null || this === void 0 ? void 0 : this.$confirmBtn) === null || _a === void 0 ? void 0 : _a.focus(); 2127 }; 2128 BaseDialog.prototype.close = function () { 2129 this.$modal.hide(); 2130 this.$modal.attr("aria-hidden", "true"); 2131 this.$overlay.hide(); 2132 if (this.blurBody) { 2133 Smile.Layout.pageBodyBlur.unset(); 2134 } 2135 if (this.modalOverlayGray) { 2136 Smile.Layout.modalOverlayGray.unset(); 2137 } 2138 if (this.onCloseCallback) { 2139 this.onCloseCallback(); 2140 } 2141 this.reset(); 2142 }; 2143 BaseDialog.prototype.cancel = function () { 2144 this.$modal.hide(); 2145 this.$overlay.hide(); 2146 if (this.blurBody) { 2147 Smile.Layout.pageBodyBlur.unset(); 2148 } 2149 this.reset(); 2150 }; 2151 BaseDialog.prototype.setBlurBody = function (blurBody) { 2152 this.blurBody = blurBody; 2153 }; 2154 BaseDialog.prototype.reset = function () { 2155 if (this.clearMessage) { 2156 this.$message.empty(); 2157 this.$message.html(this.defaultMessage); 2158 } 2159 this.onCloseCallback = null; 2160 }; 2161 return BaseDialog; 2162 }()); 2163 Modal.BaseDialog = BaseDialog; 2164})(Modal || (Modal = {})); 2165Smile.createNamespace(Smile, "Smile.Modals"); 2166//# sourceMappingURL=BaseDialog.js.map; 2167var __extends = (this && this.__extends) || (function () { 2168 var extendStatics = function (d, b) { 2169 extendStatics = Object.setPrototypeOf || 2170 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 2171 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 2172 return extendStatics(d, b); 2173 }; 2174 return function (d, b) { 2175 if (typeof b !== "function" && b !== null) 2176 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 2177 extendStatics(d, b); 2178 function __() { this.constructor = d; } 2179 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 2180 }; 2181})(); 2182var Modal; 2183(function (Modal) { 2184 var MessageDialog = (function (_super) { 2185 __extends(MessageDialog, _super); 2186 function MessageDialog(dialogId) { 2187 var _this = _super.call(this, dialogId) || this; 2188 $(function () { 2189 _this.$cancelLink = _this.$modal.dataJs("cancelLink"); 2190 _this.$actionLink = _this.$modal.dataJs("actionLink"); 2191 _this.$modalTitle = _this.$modal.dataJs("modal-title"); 2192 _this.$modalTitlebar = _this.$modal.dataJs("modal-titlebar"); 2193 _this.$modalContent = _this.$modal.dataJs("modalContent"); 2194 _this.confirmButtonTxt = _this.$confirmBtn.text(); 2195 _this.cancelLinkTxt = _this.$cancelLink.text(); 2196 _this.blurBody = false; 2197 _this.modalOverlayGray = true; 2198 _this.$modal.on("click", "[data-js=cancelLink]", function (e) { e.preventDefault(); _this.cancel(); }); 2199 }); 2200 _this.$modal.keydown(function (event) { 2201 if (event.key === "Tab") { 2202 if (event.shiftKey) { 2203 if ($(event.target).is(_this.$cancelLink)) { 2204 event.preventDefault(); 2205 _this.$confirmBtn.focus(); 2206 } 2207 } 2208 else { 2209 if ($(event.target).is(_this.$confirmBtn)) { 2210 event.preventDefault(); 2211 _this.$cancelLink.focus(); 2212 } 2213 } 2214 } 2215 }); 2216 return _this; 2217 } 2218 MessageDialog.prototype.show = function (message, onCloseCallback, buttonText) { 2219 this.$message.html(message); 2220 this.$confirmBtn.text(buttonText || this.confirmButtonTxt); 2221 if (onCloseCallback) { 2222 this.onCloseCallback = onCloseCallback; 2223 } 2224 this.open(); 2225 }; 2226 MessageDialog.prototype.showWithTitle = function (mainTitle, message, onConfirmCallback, href, target, buttonText) { 2227 var _this = this; 2228 this.reset(); 2229 this.$modalTitle.html(mainTitle); 2230 this.$modalContent.addClass("modal-dialog-content-size-extended"); 2231 this.$modalTitlebar.show(); 2232 this.$modalContent.on("click", "[data-js=modal-close]", function (e) { e.preventDefault(); _this.cancel(); }); 2233 this.$confirmBtn.attr('href', href).attr("target", target); 2234 this.show(message, onConfirmCallback, buttonText); 2235 }; 2236 MessageDialog.prototype.showWithRedirect = function (message, onCloseCallback, href, target, buttonText) { 2237 this.reset(); 2238 this.$confirmBtn.attr('href', href).attr("target", target); 2239 this.show(message, onCloseCallback, buttonText); 2240 }; 2241 MessageDialog.prototype.showWithCancel = function (message, confirmButtonText, cancelLinkText, onCancelCallback, onCloseCallback, isCloseOnEsc, closeOnEscCallback) { 2242 this.reset(); 2243 this.$confirmBtn.text(confirmButtonText || this.confirmButtonTxt); 2244 this.$cancelLink.text(cancelLinkText || this.cancelLinkTxt).show(); 2245 this.onCancelCallback = onCancelCallback; 2246 if (isCloseOnEsc) { 2247 this.addEscapeDismiss(closeOnEscCallback); 2248 } 2249 this.show(message, onCloseCallback, confirmButtonText); 2250 }; 2251 MessageDialog.prototype.showWithActionLink = function (message, actionLinkText, actionLinkUrl, confirmButtonText, onCloseCallback) { 2252 this.reset(); 2253 this.$actionLink.text(actionLinkText || this.confirmButtonTxt).attr("href", actionLinkUrl).show(); 2254 this.$confirmBtn.text(confirmButtonText || this.confirmButtonTxt); 2255 if (confirmButtonText == null) { 2256 this.$confirmBtn.hide(); 2257 } 2258 this.show(message, onCloseCallback, confirmButtonText); 2259 }; 2260 MessageDialog.prototype.close = function () { 2261 _super.prototype.close.call(this); 2262 this.reset(); 2263 }; 2264 MessageDialog.prototype.cancel = function () { 2265 _super.prototype.cancel.call(this); 2266 if (this.onCancelCallback) { 2267 this.onCancelCallback(); 2268 } 2269 this.reset(); 2270 }; 2271 MessageDialog.prototype.closeOnEsc = function (escCallback) { 2272 _super.prototype.cancel.call(this); 2273 if (escCallback != null) { 2274 escCallback(); 2275 } 2276 this.reset(); 2277 }; 2278 MessageDialog.prototype.reset = function () { 2279 this.$cancelLink.hide(); 2280 this.$actionLink.hide(); 2281 this.$modalContent.removeClass("modal-dialog-content-size-extended"); 2282 this.$modalTitlebar.hide(); 2283 _super.prototype.reset.call(this); 2284 }; 2285 MessageDialog.prototype.addEscapeDismiss = function (escCallback) { 2286 var _this = this; 2287 onkeyup = function (e) { 2288 if ($.dataJs("modalOverlay").css("display") != "none" && e.key == "Escape") { 2289 e.preventDefault(); 2290 _this.closeOnEsc(escCallback); 2291 } 2292 }; 2293 }; 2294 return MessageDialog; 2295 }(Modal.BaseDialog)); 2296 Modal.MessageDialog = MessageDialog; 2297})(Modal || (Modal = {})); 2298Smile.Modals.MessageDialog || (Smile.Modals.MessageDialog = new Modal.MessageDialog("messageDialog")); 2299//# sourceMappingURL=MessageDialog.js.map; 2300var __extends = (this && this.__extends) || (function () { 2301 var extendStatics = function (d, b) { 2302 extendStatics = Object.setPrototypeOf || 2303 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 2304 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 2305 return extendStatics(d, b); 2306 }; 2307 return function (d, b) { 2308 if (typeof b !== "function" && b !== null) 2309 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 2310 extendStatics(d, b); 2311 function __() { this.constructor = d; } 2312 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 2313 }; 2314})(); 2315var Modal; 2316(function (Modal) { 2317 var ErrorDialog = (function (_super) { 2318 __extends(ErrorDialog, _super); 2319 function ErrorDialog(dialogId, setupModalCloseTabActions) { 2320 var _this = _super.call(this, dialogId, setupModalCloseTabActions) || this; 2321 $(function () { 2322 _this.$ajaxError = _this.$modal.dataJs("ajaxError"); 2323 _this.errorMessage = _this.$message.data("errorMessage"); 2324 _this.unauthorizedMessage = _this.$message.data("unauthorizedMessage"); 2325 _this.$modal.on("click", "[data-js=copyBtn]", function () { return _this.copyToClipboard(); }); 2326 Smile.Events.subscribe(Events.Action.ShowErrorModal, function (error) { return _this.show(_this.errorMessage, error); }); 2327 Smile.Events.subscribe(Events.Action.ShowUnauthorisedModal, function () { return _this.show(_this.unauthorizedMessage); }); 2328 }); 2329 return _this; 2330 } 2331 ErrorDialog.prototype.show = function (message, ajaxError) { 2332 this.previousActiveElement = document.activeElement; 2333 message = message || this.errorMessage; 2334 this.$message.text(message); 2335 if (ajaxError) { 2336 this.$ajaxError.show().dataJs("ajaxErrorId").text(ajaxError.Id); 2337 this.$ajaxError.dataJs("ajaxErrorDate").text(ajaxError.Date); 2338 if (ajaxError.ErrorCode) { 2339 this.$ajaxError.dataJs("ajaxErrorCodeSection").show(); 2340 this.$ajaxError.dataJs("ajaxErrorCode").text(ajaxError.ErrorCode); 2341 } 2342 else { 2343 this.$ajaxError.dataJs("ajaxErrorCodeSection").hide(); 2344 } 2345 } 2346 this.open(); 2347 }; 2348 ErrorDialog.prototype.close = function () { 2349 var _a; 2350 (_a = this.previousActiveElement) === null || _a === void 0 ? void 0 : _a.focus(); 2351 _super.prototype.close.call(this); 2352 this.reset(); 2353 }; 2354 ErrorDialog.prototype.reset = function () { 2355 this.$ajaxError.hide().dataJs("ajaxErrorId").empty(); 2356 this.$ajaxError.dataJs("ajaxErrorDate").empty(); 2357 this.$ajaxError.dataJs("ajaxErrorCode").empty(); 2358 _super.prototype.reset.call(this); 2359 }; 2360 ErrorDialog.prototype.copyToClipboard = function () { 2361 var text = "CorId:" + this.$ajaxError.dataJs("ajaxErrorId").text(); 2362 text += "; Date:" + this.$ajaxError.dataJs("ajaxErrorDate").text(); 2363 text += "; ErrorCode:" + this.$ajaxError.dataJs("ajaxErrorCode").text(); 2364 text += "; URL.Domain:" + document.location.hostname; 2365 text += "; URL.Path:" + document.location.pathname; 2366 text += "; Cookie.UserType: " + Smile.Core.getUserCookie(); 2367 try { 2368 navigator.clipboard.writeText(text); 2369 if (MdBootstrap && MdBootstrap.SmileToastr) 2370 (new MdBootstrap.SmileToastr()).success("Copied!"); 2371 } 2372 catch (err) { 2373 console.error('Failed to copy text: ', err); 2374 } 2375 }; 2376 return ErrorDialog; 2377 }(Modal.BaseDialog)); 2378 Modal.ErrorDialog = ErrorDialog; 2379})(Modal || (Modal = {})); 2380Smile.Modals.ErrorDialog || (Smile.Modals.ErrorDialog = new Modal.ErrorDialog("errorDialog", true)); 2381//# sourceMappingURL=ErrorDialog.js.map; 2382var __extends = (this && this.__extends) || (function () { 2383 var extendStatics = function (d, b) { 2384 extendStatics = Object.setPrototypeOf || 2385 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 2386 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 2387 return extendStatics(d, b); 2388 }; 2389 return function (d, b) { 2390 if (typeof b !== "function" && b !== null) 2391 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 2392 extendStatics(d, b); 2393 function __() { this.constructor = d; } 2394 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 2395 }; 2396})(); 2397var Modal; 2398(function (Modal) { 2399 var WorkflowErrorDialog = (function (_super) { 2400 __extends(WorkflowErrorDialog, _super); 2401 function WorkflowErrorDialog(dialogId) { 2402 var _this = _super.call(this, dialogId) || this; 2403 Smile.Events.subscribe(Events.Action.ShowWorkflowErrorModal, function () { return _this.$modal.modal({ show: true }); }); 2404 return _this; 2405 } 2406 return WorkflowErrorDialog; 2407 }(Modal.BaseDialog)); 2408 Modal.WorkflowErrorDialog = WorkflowErrorDialog; 2409})(Modal || (Modal = {})); 2410Smile.Modals.WorkflowErrorDialog || (Smile.Modals.WorkflowErrorDialog = new Modal.WorkflowErrorDialog('WorkflowErrorDialog'));
2411//# sourceMappingURL=WorkflowErrorDialog.js.map; 2412var __extends = (this && this.__extends) || (function () { 2413 var extendStatics = function (d, b) { 2414 extendStatics = Object.setPrototypeOf || 2415 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 2416 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 2417 return extendStatics(d, b); 2418 }; 2419 return function (d, b) { 2420 if (typeof b !== "function" && b !== null) 2421 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 2422 extendStatics(d, b); 2423 function __() { this.constructor = d; } 2424 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 2425 }; 2426})(); 2427var Modal; 2428(function (Modal) { 2429 var LoadingDialog = (function (_super) { 2430 __extends(LoadingDialog, _super); 2431 function LoadingDialog(dialogId) { 2432 var _this = _super.call(this, dialogId) || this; 2433 _this.isLoading = false; 2434 _this.clearMessage = false; 2435 _this.delay = _this.$modal.data("delay"); 2436 Smile.Events.subscribe(Events.Action.ShowLoadingDialog, function (message) { return _this.show(message); }); 2437 Smile.Events.subscribe(Events.Action.HideLoadingDialog, function () { return _this.hide(); }); 2438 return _this; 2439 } 2440 LoadingDialog.prototype.show = function (message) { 2441 var _this = this; 2442 if (message) { 2443 this.clearMessage = true; 2444 this.$message.html(message); 2445 } 2446 if (!this.isLoading) { 2447 this.isLoading = true; 2448 if (this.delay && this.delay > 0) { 2449 this.timeoutHandle = setTimeout(function () { _this.open(); }, this.delay); 2450 } 2451 else { 2452 this.open(); 2453 } 2454 } 2455 }; 2456 LoadingDialog.prototype.open = function () { 2457 _super.prototype.open.call(this); 2458 this.createHiddenAlert(); 2459 }; 2460 LoadingDialog.prototype.hide = function () { 2461 _super.prototype.close.call(this); 2462 this.destroyHiddenAlert(); 2463 this.isLoading = false; 2464 if (!this.timeoutHandle) { 2465 clearTimeout(this.timeoutHandle); 2466 this.timeoutHandle = null; 2467 } 2468 }; 2469 LoadingDialog.prototype.createHiddenAlert = function () { 2470 var hiddenAlert = document.createElement('div'); 2471 $(hiddenAlert).addClass('sr-only').attr('role', 'alert').text(this.$message.text()); 2472 this.$modal.append(hiddenAlert); 2473 }; 2474 LoadingDialog.prototype.destroyHiddenAlert = function () { 2475 this.$modal.find('.sr-only[role="alert"]').remove(); 2476 }; 2477 return LoadingDialog; 2478 }(Modal.BaseDialog)); 2479 Modal.LoadingDialog = LoadingDialog; 2480})(Modal || (Modal = {})); 2481Smile.Modals.LoadingDialog || (Smile.Modals.LoadingDialog = new Modal.LoadingDialog("loadingDialog")); 2482//# sourceMappingURL=LoadingDialog.js.map; 2483var __extends = (this && this.__extends) || (function () { 2484 var extendStatics = function (d, b) { 2485 extendStatics = Object.setPrototypeOf || 2486 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 2487 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 2488 return extendStatics(d, b); 2489 }; 2490 return function (d, b) { 2491 if (typeof b !== "function" && b !== null) 2492 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 2493 extendStatics(d, b); 2494 function __() { this.constructor = d; } 2495 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 2496 }; 2497})(); 2498var Modal; 2499(function (Modal) { 2500 var SessionMonitorDialog = (function (_super) { 2501 __extends(SessionMonitorDialog, _super); 2502 function SessionMonitorDialog(dialogId, options, signInService) { 2503 var _this = _super.call(this, dialogId) || this; 2504 _this.options = options; 2505 _this.signInService = signInService; 2506 _this.setBlurBody(false); 2507 if (_this.options.enabled) { 2508 _this.resetCounter(); 2509 _this.setInterval(); 2510 Smile.Events.subscribe(Events.Action.AjaxRequestSent, function () { _this.resetCounter(); }); 2511 } 2512 return _this; 2513 } 2514 SessionMonitorDialog.prototype.resetCounter = function () { 2515 this.counter = this.options.timeout; 2516 }; 2517 SessionMonitorDialog.prototype.refreshSession = function () { 2518 var _this = this; 2519 this.signInService.refreshSession().done(function () { 2520 _this.resetCounter(); 2521 }); 2522 }; 2523 SessionMonitorDialog.prototype.updateCounter = function () { 2524 this.counter--; 2525 if (this.counter === this.options.warningThreshold) { 2526 this.showDialog(); 2527 } 2528 if (this.counter <= 0) { 2529 this.logout(); 2530 } 2531 }; 2532 SessionMonitorDialog.prototype.logout = function () { 2533 this.signInService.signOut(); 2534 }; 2535 SessionMonitorDialog.prototype.setInterval = function () { 2536 setInterval('Smile.Modals.SessionMonitorDialog.updateCounter()', 1000); 2537 }; 2538 SessionMonitorDialog.prototype.showDialog = function () { 2539 this.showWithCancel("Are you there?", "Continue", "Log Off", this.logout, this.refreshSession); 2540 }; 2541 return SessionMonitorDialog; 2542 }(Modal.MessageDialog)); 2543 Modal.SessionMonitorDialog = SessionMonitorDialog; 2544})(Modal || (Modal = {})); 2545//# sourceMappingURL=SessionMonitorDialog.js.map; 2546var Modal; 2547(function (Modal) { 2548 var UserActivityMonitorDialog = (function () { 2549 function UserActivityMonitorDialog() { 2550 var _this = this; 2551 this.tickInterval = 5000; 2552 this.closeSession = function () { 2553 _this.clearInterval(); 2554 if (_this.signInService) { 2555 _this.signInService.signOut(); 2556 } 2557 else { 2558 Smile.Events.fire(Events.Action.PublicSessionTimeout); 2559 } 2560 }; 2561 this.refreshSession = function () { 2562 if (_this.signInService) { 2563 _this.signInService.refreshSession().done(function () { 2564 _this.resetCounter(); 2565 }); 2566 } 2567 else { 2568 _this.resetCounter(); 2569 } 2570 }; 2571 } 2572 UserActivityMonitorDialog.prototype.init = function (options, signInService) { 2573 var _this = this; 2574 if (!this.options) { 2575 this.options = options; 2576 this.signInService = signInService; 2577 if (this.options.enabled) { 2578 this.resetCounter(); 2579 Smile.Events.subscribe(Events.Action.AjaxRequestSent, function () { 2580 _this.resetCounter(); 2581 }); 2582 } 2583 } 2584 }; 2585 UserActivityMonitorDialog.prototype.showDialog = function () { 2586 if (this.dialogVisible) { 2587 return; 2588 } 2589 this.dialogVisible = true; 2590 var time = new Date().getTime() / 1000; 2591 this.closeSessionTime = time + this.options.warningThreshold; 2592 if (this.options.btnCancelText) { 2593 Smile.Modals.MessageDialog.showWithCancel(this.options.timeoutMessage, this.options.btnContinueText, this.options.btnCancelText, this.closeSession, this.refreshSession, true, this.refreshSession); 2594 } 2595 Smile.Modals.MessageDialog.show(this.options.timeoutMessage, this.refreshSession, this.options.btnContinueText); 2596 }; 2597 UserActivityMonitorDialog.prototype.resetCounter = function () { 2598 var time = new Date().getTime() / 1000; 2599 this.showDialogTime = time + (this.options.timeout - this.options.warningThreshold); 2600 this.closeSessionTime = time + this.options.timeout; 2601 this.dialogVisible = false; 2602 this.setInterval(); 2603 }; 2604 UserActivityMonitorDialog.prototype.updateCounter = function () { 2605 var time = new Date().getTime() / 1000; 2606 if (time > this.closeSessionTime) { 2607 this.closeSession(); 2608 } 2609 else { 2610 if (time > this.showDialogTime) { 2611 this.showDialog(); 2612 } 2613 } 2614 }; 2615 UserActivityMonitorDialog.prototype.clearInterval = function () { 2616 if (this.intervalHandler) { 2617 clearInterval(this.intervalHandler); 2618 this.intervalHandler = null; 2619 } 2620 }; 2621 UserActivityMonitorDialog.prototype.setInterval = function (handlerToUse) { 2622 if (handlerToUse === void 0) { handlerToUse = null; } 2623 if (this.intervalHandler) { 2624 return; 2625 } 2626 if (!handlerToUse) { 2627 handlerToUse = 'Smile.Modals.UserActivityMonitorDialog.updateCounter()'; 2628 } 2629 this.intervalHandler = setInterval(handlerToUse, this.tickInterval); 2630 }; 2631 return UserActivityMonitorDialog; 2632 }()); 2633 Modal.UserActivityMonitorDialog = UserActivityMonitorDialog; 2634})(Modal || (Modal = {})); 2635Smile.Modals.UserActivityMonitorDialog || (Smile.Modals.UserActivityMonitorDialog = new Modal.UserActivityMonitorDialog()); 2636//# sourceMappingURL=UserActivityMonitorDialog.js.map; 2637var DataGrid = {}; 2638
2639DataGrid.GridData = (function ($) { 2640 function GridData(gridData, totalRows) { 2641 var self = this; 2642 self.Data = gridData; 2643 self.TotalRows = totalRows; 2644 }; 2645 return GridData; 2646})(); 2647 2648DataGrid.SortingBy = (function ($) { 2649 function SortingBy(sortField, sortOrder) { 2650 var self = this; 2651 self.Field = sortField; 2652 self.Order = sortOrder; 2653 }; 2654 return SortingBy; 2655})(); 2656 2657DataGrid.TableHeaders = (function ($) { 2658 function TableHeaders(headerText, sortBy, toShow, defaultSortOrder) { 2659 var self = this; 2660 self.Text = headerText; 2661 self.SortBy = sortBy; 2662 self.ToShow = toShow; 2663 self.DefaultSortOrder = defaultSortOrder; 2664 }; 2665 return TableHeaders; 2666})(); 2667 2668DataGrid.Grid = (function ($) { 2669 function Grid(originalData, headers, rowsPerPage, defaultSorting) { 2670 var self = this; 2671 2672 var defaultCssClasses = {}; 2673 defaultCssClasses["ASC"] = "sortAscendingIcon"; 2674 defaultCssClasses["DESC"] = "sortDescendingIcon"; 2675 self.DefaultSorting = defaultSorting; 2676 self.OriginalData = originalData; 2677 self.SortCssClasses = defaultCssClasses; 2678 self.Headers = ko.observableArray(headers); 2679 self.DataRows = ko.observableArray(); 2680 self.AllDataRows = new Array(); 2681 2682 self.FilteredHeaders = ko.computed(self.FilterHeaders, this); 2683 self.SortingListForMobile = ko.computed(function () { 2684 return self.ReadSortingListForMobile(this.FilteredHeaders()); 2685 }, this); 2686 2687 self.GridParams = { 2688 pageIndex: ko.observable(1), 2689 rowsPerPage: ko.observable(rowsPerPage), 2690 sortingBy: ko.observable(defaultSorting), 2691 selectedPatientGid: ko.observable(0), 2692 totalRows: ko.observable(0), 2693 totalPages: ko.observable(0), 2694 requestedPageIndex: ko.observable(1) 2695 }; 2696 2697 self.GridParams.sortFieldForMobile = ko.computed({ 2698 read: function () { 2699 return self.ReadSortingByForMobile(this.GridParams.sortingBy()); 2700 }, 2701 write: function (value) { 2702 self.WriteSortingByForMobile(value); 2703 }, 2704 owner: this 2705 }); 2706 self.GridParams.requestedPageIndex.subscribe(self.ChangePageByIndex, self); 2707 2708 self.HasMorePages = ko.computed(function () { 2709 var self = this; 2710 return self.GridParams.totalPages() > 1; 2711 }, this); 2712 } 2713 2714 Grid.prototype.GetDefaultSorting = function (defaultSorting, qsParams) { 2715 var self = this; 2716 if (qsParams === null) { 2717 return defaultSorting; 2718 } 2719 2720 var sortField = qsParams.sf !== undefined && qsParams.sf !== '' ? qsParams.sf : defaultSorting.Field; 2721 var sortOrder = qsParams.so !== undefined && qsParams.so !== '' ? qsParams.so : defaultSorting.Order; 2722 2723 return new DataGrid.SortingBy(sortField, sortOrder); 2724 } 2725 2726 Grid.prototype.GetQueryStringParameters = function () { 2727 var self = this; 2728 var vars = [], hash; 2729 var q = document.location.hash.split('#')[1]; 2730 if (q !== undefined) { 2731 q = q.split('&'); 2732 for (var i = 0; i < q.length; i++) { 2733 hash = q[i].split('='); 2734 vars.push(hash[1]); 2735 vars[hash[0]] = hash[1]; 2736 } 2737 } 2738 2739 return vars; 2740 } 2741 2742 Grid.prototype.FilterHeaders = function () { 2743 var self = this; 2744 var res = self.Headers().filter(function (el) { 2745 if (el.ToShow && el.Text.trim() !== '') { 2746 return el; 2747 } 2748 }); 2749 2750 return res; 2751 } 2752 2753 Grid.prototype.GetData = function () { 2754 var self = this; 2755 var result = JSON.parse(JSON.stringify(self.OriginalData)); 2756 var patientGid = self.GridParams.selectedPatientGid(); 2757 result.Data = jQuery.grep(result.Data, function (value) { 2758 if (patientGid <= 0) { 2759 return value; 2760 } 2761 return value.PatientGid === patientGid; 2762 }); 2763 result.TotalRows = result.Data.length; 2764 2765 self.OnGetDataDone(result); 2766 2767 self.SmilelyQueryStringParameters(); 2768 }; 2769 2770 Grid.prototype.SmilelyQueryStringParameters = function () { 2771 var self = this; 2772 var validQueryString = true; 2773 var qsParams = self.GetQueryStringParameters(); 2774 var initialSorting = self.GetDefaultSorting(self.DefaultSorting, qsParams); 2775 var changeSorting = JSON.stringify(initialSorting) !== JSON.stringify(self.DefaultSorting); 2776 var changePageNumber = qsParams.pi !== '' && !isNaN(qsParams.pi) && qsParams.pi !== self.GridParams.pageIndex; 2777 if (changeSorting) { 2778 var foundHeader = initialSorting.Field === '' || jQuery.grep(self.Headers(), function (e) { return e.SortBy === initialSorting.Field; }).length > 0;
2779 var foundOrder = initialSorting.Order === '' || self.SortCssClasses.hasOwnProperty(initialSorting.Order); 2780 2781 validQueryString = foundHeader && foundOrder; 2782 } 2783 if (changePageNumber && validQueryString) { 2784 validQueryString = qsParams.pi >= 0 && qsParams.pi <= self.GridParams.totalPages(); 2785 } 2786 2787 if (validQueryString) { 2788 if (changeSorting) { 2789 var colHeader = new DataGrid.TableHeaders('', initialSorting.Field, true, initialSorting.Order); 2790 self.Sort(colHeader); 2791 } 2792 if (changePageNumber) { 2793 self.ChangePageByNumber(qsParams.pi); 2794 } 2795 else { 2796 var firstPageLink = document.getElementById('paginationLinks').children[1]; 2797 if (firstPageLink) { 2798 firstPageLink.setAttribute('aria-current', 'page'); 2799 } 2800 } 2801 } 2802 else { 2803 self.ResetQueryString(); 2804 } 2805 }; 2806 2807 Grid.prototype.UpdateData = function () { 2808 var self = this; 2809 self.DataRows(self.GetPagedData()); 2810 var totalPages = Math.ceil(self.GridParams.totalRows() / self.GridParams.rowsPerPage()); 2811 self.GridParams.totalPages(totalPages); 2812 self.GridParams.requestedPageIndex(self.GridParams.pageIndex()); 2813 }; 2814 2815 Grid.prototype.OnGetDataDone = function (data) { 2816 var self = this; 2817 self.AllDataRows = data.Data; 2818 self.GridParams.totalRows(data.TotalRows); 2819 self.UpdateData(); 2820 }; 2821 2822 Grid.prototype.GetPagedData = function () { 2823 var self = this; 2824 var size = self.GridParams.rowsPerPage(); 2825 var start = (self.GridParams.pageIndex() - 1) * size; 2826 return self.AllDataRows.slice(start, start + size); 2827 }; 2828 2829 Grid.prototype.Sort = function (colHeader) { 2830 var self = this; 2831 var sortOrder = self.GridParams.sortingBy().Field === colHeader.SortBy ? self.GridParams.sortingBy().Order === 'ASC' ? 'DESC' : 'ASC' : colHeader.DefaultSortOrder; 2832 var sortingBy = new DataGrid.SortingBy(colHeader.SortBy, sortOrder); 2833 self.GridParams.sortingBy(sortingBy); 2834 self.GridParams.pageIndex(1); 2835 self.AllDataRows.sort(self.compare(self.GridParams.sortingBy().Field, self.GridParams.sortingBy().Order)); 2836 self.UpdateData(); 2837 self.UpdateQueryString(sortingBy, self.GridParams.pageIndex(), 0); 2838 }; 2839 2840 Grid.prototype.UpdateQueryString = function (sortingBy, pageIndex) { 2841 var self = this; 2842 var qsParameters = {}; 2843 if (sortingBy.Field !== self.DefaultSorting.Field) { 2844 qsParameters.sf = sortingBy.Field; 2845 } 2846 2847 if (!(sortingBy.Field === self.DefaultSorting.Field && sortingBy.Order === self.DefaultSorting.Order)) { 2848 qsParameters.so = sortingBy.Order; 2849 } 2850 2851 if (pageIndex !== 1) { 2852 qsParameters.pi = pageIndex; 2853 } 2854 2855 var qs = jQuery.param(qsParameters); 2856 window.history.replaceState({}, '', '#' + qs); 2857 }; 2858 2859 Grid.prototype.ResetQueryString = function () { 2860 var href = document.location.href; 2861 var indexOfHash = href.indexOf('#'); 2862 if (indexOfHash !== -1) { 2863 window.history.replaceState({}, '', href.substring(0, indexOfHash)); 2864 } 2865 }; 2866 2867 Grid.prototype.ChangePageByIndex = function (newRequestedPageIndex) { 2868 var self = this; 2869 var requestedPageIndex = parseInt(self.GridParams.requestedPageIndex()); 2870 2871 if (requestedPageIndex > 0 && requestedPageIndex <= self.GridParams.totalPages()) { 2872 self.GridParams.pageIndex(requestedPageIndex); 2873 self.UpdateData(); 2874 } else { 2875 self.GridParams.requestedPageIndex(self.GridParams.pageIndex()); 2876 } 2877 }; 2878 2879 Grid.prototype.ChangePageByNumber = function (newRequestedPageIndex, element) { 2880 var self = this; 2881 var requestedPageIndex = parseInt(newRequestedPageIndex); 2882 if (element !== undefined) { 2883 for (let i = 0; i < element.parentNode.children.length; i++) { 2884 element.parentNode.children[i].removeAttribute('aria-current'); 2885 } 2886 element.setAttribute('aria-current', 'page'); 2887 } 2888 else { 2889 var paginationLinks = document.getElementById('paginationLinks').children; 2890 for (let i = 0; i < paginationLinks.length; i++) { 2891 paginationLinks[i].removeAttribute('aria-current'); 2892 } 2893 paginationLinks[requestedPageIndex].setAttribute('aria-current', 'page'); 2894 } 2895 if (requestedPageIndex > 0 && requestedPageIndex <= self.GridParams.totalPages()) { 2896 self.GridParams.pageIndex(requestedPageIndex); 2897 self.UpdateData(); 2898 self.UpdateQueryString(self.GridParams.sortingBy(), newRequestedPageIndex, 0); 2899 } 2900 } 2901 2902 Grid.prototype.compare = function (prop, order) { 2903 var isAscendent = order === 'ASC'; 2904 var decimalWithCurrencyRegex = /^(\$-?\d+\.?\d*)$/; 2905 var nonDecimalRegex = /[^-?0-9\.]+/g; 2906 2907 var compareMethod = function (a, b) { 2908 var propA = a[prop].toString(); 2909 var propB = b[prop].toString(); 2910 2911 var left = propA.match(decimalWithCurrencyRegex) === null && isNaN(Number(propA)) ? propA : Number(propA.replace(nonDecimalRegex, "")); 2912 var right = propB.match(decimalWithCurrencyRegex) === null && isNaN(Number(propB)) ? propB : Number(propB.replace(nonDecimalRegex, "")); 2913 left = typeof left === "string" ? left.toLowerCase() : left; 2914 right = typeof right === "string" ? right.toLowerCase() : right; 2915 2916 if (isAscendent) 2917 return (right > left) ? -1 : ((right < left) ? 1 : 0); 2918 else 2919 return (left < right) ? 1 : ((left > right) ? -1 : 0); 2920 }; 2921 2922 return compareMethod; 2923 } 2924 2925 Grid.prototype.FilterByPatient = function (patientGid, resetQueryString) { 2926 var self = this; 2927 self.GridParams.selectedPatientGid(patientGid); 2928 self.GridParams.sortingBy(self.DefaultSorting); 2929 self.GridParams.pageIndex(1); 2930 2931 var headers = self.Headers(); 2932 headers[1].ToShow = self.IsSecondColumnVisible(); 2933 self.Headers(headers); 2934 2935 if (resetQueryString !== undefined && resetQueryString) { 2936 self.ResetQueryString(); 2937 } 2938 self.GetData(); 2939 } 2940 2941 Grid.prototype.GetAriaSort = function (field, index) { 2942 var self = this; 2943 var headers = self.Headers(); 2944 2945 return field == headers[index].SortBy ? self.GridParams.sortingBy().Order.toLowerCase() + 'ending' : 'none'; 2946 } 2947 2948 Grid.prototype.IsSecondColumnVisible = function () { 2949 var self = this; 2950 return self.Headers()[1].ToShow; 2951 } 2952 2953 Grid.prototype.ReloadOriginalData = function (originalData) { 2954 var self = this; 2955 self.OriginalData = originalData; 2956 self.GridParams.pageIndex(1); 2957 self.GridParams.sortingBy(self.DefaultSorting); 2958 self.GridParams.selectedPatientGid(0); 2959 2960 var headers = self.Headers(); 2961 headers[1].ToShow = self.IsSecondColumnVisible(); 2962 2963 self.Headers(headers); 2964 } 2965 2966 Grid.prototype.ReadSortingListForMobile = function (filteredHeaders) { 2967 var self = this; 2968 var result = []; 2969 jQuery.each(filteredHeaders, function (i, val) { 2970 var asc = new DataGrid.TableHeaders(val.Text + ", Ascending", val.SortBy + ",ASC"); 2971 var desc = new DataGrid.TableHeaders(val.Text + ", Descending", val.SortBy + ",DESC"); 2972 result.push(asc); 2973 result.push(desc); 2974 });
2975 2976 return result; 2977 }; 2978 2979 Grid.prototype.ReadSortingByForMobile = function (sortingBy) { 2980 var self = this; 2981 var order = {}; 2982 order["ASC"] = "Ascending"; 2983 order["DESC"] = "Descending"; 2984 2985 var sortBy = sortingBy.Field + ',' + sortingBy.Order; 2986 var fieldTextAux = jQuery.grep(self.SortingListForMobile(), function (e) { 2987 return e.SortBy === sortBy; 2988 }); 2989 2990 return fieldTextAux[0]; 2991 }; 2992 2993 Grid.prototype.WriteSortingByForMobile = function (sortingByForMobile) { 2994 var self = this; 2995 var sortBy = sortingByForMobile.SortBy.split(','); 2996 var colHeader = new DataGrid.TableHeaders('', sortBy[0], true, sortBy[1]); 2997 self.Sort(colHeader); 2998 }; 2999 return Grid; 3000})();; 3001 3002/* 3003 * String extensions 3004 */ 3005 3006// ReSharper disable once NativeTypePrototypeExtending 3007String.prototype.isEmpty = String.prototype.isEmpty || function () { 3008 return (this.length === 0 || !this.trim()); 3009}; 3010 3011String.isNullOrWhitespace = String.isNullOrWhitespace || function (value) { 3012 return (!value || value.isEmpty()); 3013}; 3014 3015String.prototype.toDisplayDate = String.prototype.toDisplayDate || function () { 3016 var dt = new Date(this); 3017 return dt.toDisplayString(); 3018}; 3019 3020String.prototype.toMMDDYYYY = String.prototype.toMMDDYYYY || function () { 3021 var dt = new Date(this); 3022 return dt.toMMDDYYYY(); 3023}; 3024 3025String.prototype.toMMDDYY = Date.prototype.toMMDDYYYY || function () { 3026 var dt = new Date(this); 3027 return dt.toMMDDYY(); 3028}; 3029 3030String.prototype.toUtcWithFormat = String.prototype.toUtcWithFormat || function (format) { 3031 return moment.utc(this.toLocaleString()).format(format); 3032}; 3033 3034String.prototype.toSortableString = String.prototype.toSortableString || function () { 3035 var dt = new Date(this); 3036 return dt.toSortableString(); 3037}; 3038 3039String.prototype.toPhone = String.prototype.toPhone || function () { 3040 var value = this; 3041 3042 if (value === "0000000000") { 3043 return ""; 3044 } 3045 3046 if (value.length === 10) { 3047 return "(" + value.substr(0, 3) + ")" + value.substr(3, 3) + "-" + value.substr(6, 4); 3048 } else if (value[0] === "+" && value.length > 10) { 3049 return value.substr(value.length - 10, 10); 3050 } 3051 3052 return value; 3053}; 3054 3055String.prototype.toUsZipCode = String.prototype.toUsZipCode || function () { 3056 var value = this; 3057 return value.length < 9 ? value : value.substring(0, 5) + "-" + value.substring(5); 3058} 3059 3060String.prototype.toDisplayUrl = String.prototype.toDisplayUrl || function () { 3061 var value = this; 3062 if (value) { 3063 value = value.toLowerCase().replace("http://", "").replace("https://", ""); 3064 } 3065 return value; 3066} 3067 3068String.prototype.toTitleCase = String.prototype.toTitleCase || function () { 3069 var value = this; 3070 if (value) { 3071 value = value.replaceAll('"', ''); 3072 value = value.charAt(0).toUpperCase() + value.substring(1).toLowerCase(); 3073 } 3074 return value; 3075} 3076 3077String.prototype.removeNonNumeric = String.prototype.removeNonNumeric || function () { 3078 var value = this; 3079 if (!value) { 3080 return value; 3081 } 3082 return value.replace(/\D/g, ''); 3083} 3084 3085 3086//Needed for IE 11 compatibility 3087String.prototype.startsWith = String.prototype.startsWith || 3088 function (searchString, position) { 3089 var pos = position > 0 ? position | 0 : 0; 3090 return this.substring(pos, pos + searchString.length) === searchString; 3091 }; 3092 3093/* 3094 * Date extensions 3095 */ 3096 3097Date.prototype.toDisplayString = Date.prototype.toDisplayString || function () { 3098 var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 3099 return month[this.getMonth()] + " " + this.getDate() + ", " + this.getFullYear(); 3100}; 3101 3102Date.prototype.toMMDDYYYY = Date.prototype.toMMDDYYYY || function () { 3103 var month = (1 + this.getMonth()).toString(); 3104 month = month.length > 1 ? month : '0' + month; 3105 3106 var day = this.getDate().toString(); 3107 day = day.length > 1 ? day : '0' + day; 3108 3109 return month + '/' + day + '/' + this.getFullYear().toString(); 3110}; 3111 3112Date.prototype.toMMDDYY = Date.prototype.toMMDDYYYY || function () { 3113 return this.toLocaleDateString('en-US', { 3114 month: '2-digit', 3115 day: '2-digit', 3116 year: '2-digit'
3117 }); 3118}; 3119 3120Date.prototype.toSortableString = Date.prototype.toSortableString || function () { 3121 var month = (1 + this.getMonth()).toString(); 3122 month = month.length > 1 ? month : '0' + month; 3123 3124 var day = this.getDate().toString(); 3125 day = day.length > 1 ? day : '0' + day; 3126 3127 return this.getFullYear().toString() + '-' + month + '-' + day; 3128}; 3129 3130/* 3131 * Other extensions 3132 */ 3133 3134Number.prototype.toCurrency = Number.prototype.toCurrency || function (fractionDigits) { 3135 if (!fractionDigits && fractionDigits !== 0) { 3136 fractionDigits = 2; 3137 } 3138 return '$' + (this).toFixed(fractionDigits).replace(/\d(?=(\d{3})+\.)/g, '$&,'); 3139}; 3140 3141/* 3142 * Knockout extensions 3143 */ 3144 3145var ko = ko || undefined; 3146if (ko !== undefined) { 3147 ko.subscribable.fn.subscribeChanged = function (callback) { 3148 var oldValue; 3149 return [ 3150 this.subscribe(function (_oldValue) { 3151 oldValue = _oldValue; 3152 }, this, 'beforeChange'), 3153 this.subscribe(function (newValue) { 3154 callback(newValue, oldValue); 3155 }) 3156 ]; 3157 }; 3158}; 3159 3160/* 3161 * Finds all anchors linking to a private page and triggers the 3162 * signin dialog if user is not logged in and clicks a link 3163 */ 3164jQuery(function () { 3165 3166 // If user is not logged in and not on a private page 3167 if (!Smile.User.IsAuth && !Smile.User.IsLegacyUser && document.location.href.indexOf("/private/") === -1) { 3168 3169 // Bind the click event 3170 $("a[href*='/private/']").click(function (event) { 3171 event.preventDefault(); 3172 3173 // Open the SignIn Page for login and set redirect url 3174 Smile.Events.fire(Events.Action.NavigateToSignIn, { 3175 redirectUrl: $(this).attr('href') 3176 }); 3177 }); 3178 } 3179}); 3180; 3181 3182/* 3183 * Finds all anchors linking to an external page and redirects the 3184 * user to the outgoing redirect page before navigating to the target external link 3185 */ 3186jQuery(function () { 3187 3188 // Test all links for external href 3189 jQuery("a", this).each(function () { 3190 3191 var $link = jQuery(this); 3192 if ($link.isExternalLink()) { 3193 3194 $link.click(function (e) { 3195 e.stopPropagation(); 3196 var outgoingRedirectUrl = "/outgoing-redirect?target=" + encodeURIComponent(this.href); 3197 3198 if (this.target === "_blank" || this.target === "New") { 3199 var isIE = /MSIE|Trident/.test(navigator.userAgent); 3200 if (isIE) { 3201 var outgoingRedirectLink = document.createElement("a"); 3202 outgoingRedirectLink.href = outgoingRedirectUrl; 3203 outgoingRedirectLink.target = this.target; 3204 outgoingRedirectLink.click(); 3205 } 3206 else { 3207 window.open(outgoingRedirectUrl, this.target); 3208 } 3209 } 3210 else { 3211 document.location = outgoingRedirectUrl; 3212 } 3213 return false; 3214 }); 3215 }; 3216 }); 3217 3218 jQuery.fn.bindExternalLinks = function () { 3219 jQuery.fn.bindExternalLinks.openExternalModalPopUp = function (event, url, target) { 3220 e.stopPropagation(); 3221 var outgoingRedirectUrl = "/outgoing-redirect?target=" + encodeURIComponent(url); 3222 3223 if (this.target === "_blank" || this.target === "New") { 3224 window.open(outgoingRedirectUrl, this.target); 3225 } 3226 else { 3227 document.location = outgoingRedirectUrl; 3228 } 3229 }; 3230 }; 3231});; 3232Smile.createNamespace(Smile, 'Smile.Core.Debug'); 3233 3234//jQuery(document).ajaxComplete(function (event, response, settings) { 3235// Smile.Core.Debug.Log(JSON.stringify(response), "Ajax.Completed"); 3236//}); 3237 3238Smile.Core.Debug = (function ($) { 3239 var log = function (msg, componentId) { 3240 3241 }; 3242 3243 return { 3244 Log: log 3245 }; 3246})(jQuery);; 3247function formatDate(element, valueAccessor, allBindingsAccessor, viewModel, suppliedValue, dateFormat) { 3248 let formattedValue = suppliedValue; 3249 3250 // if value is not null, convert it to the format supplied. 3251 // will default to 'mmm dd, yyyy' 3252 if (formattedValue) { 3253 switch (dateFormat) { 3254 case "MMDDYYYY": 3255 formattedValue = formattedValue.toMMDDYYYY(); 3256 break; 3257 default: 3258 formattedValue = formattedValue.toDisplayDate(); 3259 } 3260 } 3261 3262 // update the element with the formatted value
3263 if (jQuery(element).is("input") === true) { 3264 jQuery(element).val(formattedValue); 3265 } else { 3266 jQuery(element).text(formattedValue); 3267 } 3268} 3269 3270ko.bindingHandlers.formatDate = { 3271 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3272 let value = ko.utils.unwrapObservable(valueAccessor()); 3273 formatDate(element, valueAccessor, allBindingsAccessor, viewModel, value, null); 3274 } 3275}; 3276 3277ko.bindingHandlers.formatDateAsMMDDYYYY = { 3278 init: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3279 ko.utils.registerEventHandler(element, 'change', function () { 3280 var value = valueAccessor(); 3281 (element.value !== null && element.value !== undefined && element.value.length > 0) ? value(element.value) : value(''); 3282 }); 3283 }, 3284 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3285 let value = ko.utils.unwrapObservable(valueAccessor()); 3286 formatDate(element, valueAccessor, allBindingsAccessor, viewModel, value, "MMDDYYYY"); 3287 } 3288}; 3289 3290ko.bindingHandlers.formatCurrency = { 3291 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3292 var value = ko.utils.unwrapObservable(valueAccessor()); 3293 3294 if (value != undefined) { 3295 var formattedValue = value.toCurrency(); 3296 3297 // update the element
3298 if (jQuery(element).is("input") === true) { 3299 jQuery(element).val(formattedValue); 3300 } else { 3301 jQuery(element).text(formattedValue); 3302 } 3303 } 3304 } 3305}; 3306 3307ko.bindingHandlers.formatPhone = { 3308 init: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3309 ko.utils.registerEventHandler(element, 'change', function () { 3310 var value = valueAccessor(); 3311 (element.value !== null && element.value !== undefined && element.value.length > 0) ? value(element.value) : value(''); 3312 }); 3313 }, 3314 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3315 var value = ko.utils.unwrapObservable(valueAccessor()); 3316 3317 var formattedValue = value ? value.toPhone() : ""; 3318 3319 // update the element 3320 if (jQuery(element).is("input") === true) { 3321 jQuery(element).val(formattedValue); 3322 } else { 3323 jQuery(element).text(formattedValue); 3324 } 3325 } 3326}; 3327 3328ko.bindingHandlers.formatZipCode = { 3329 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3330 var value = ko.utils.unwrapObservable(valueAccessor()); 3331 3332 var formattedValue = value ? value.toUsZipCode() : ""; 3333 3334 // update the element
3335 if (jQuery(element).is("input") === true) { 3336 jQuery(element).val(formattedValue); 3337 } else { 3338 jQuery(element).text(formattedValue); 3339 } 3340 } 3341}; 3342 3343ko.bindingHandlers.formatdisplayUrl = { 3344 update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 3345 var value = ko.utils.unwrapObservable(valueAccessor()); 3346 3347 var formattedValue = value ? value.toDisplayUrl() : ""; 3348 3349 // update the element 3350 if (jQuery(element).is("input") === true) { 3351 jQuery(element).val(formattedValue); 3352 } else { 3353 jQuery(element).text(formattedValue); 3354 } 3355 } 3356}; 3357 3358ko.bindingHandlers.bindIf = { 3359 init: function (element, valueAccessor) { 3360 // Let bindings proceed as normal *only if* my value is false 3361 var shouldAllowBindings = ko.unwrap(valueAccessor()); 3362 return { controlsDescendantBindings: !shouldAllowBindings }; 3363 } 3364};; 3365 3366var windowSize = jQuery(window).width(); 3367 3368var updateEdgeToolTips = function () { 3369 jQuery(".tooltip a").each(function (i, e) { 3370 3371 var icon = $(e); 3372 var pos = icon.offset(); 3373 if (pos != null) { 3374 var dv = icon.parent().find(".tooltipInner"); 3375 if ((pos.left + dv.width() + 100 >= $(window).width())) { 3376 icon.parent().addClass("tooltip-flip"); 3377 } 3378 else { 3379 icon.parent().removeClass("tooltip-flip"); 3380 } 3381 } 3382 }); 3383}; 3384 3385jQuery(document).ready(function () { 3386 3387 if (jQuery(".custMobifilterSelect").length) { 3388 jQuery(".custMobifilterSelect").click(function () { 3389 jQuery(".custMobiFilterSelectOverlay").show(); 3390 jQuery(".custMobiFilterSelectOverlay").animate({ left: "0" }, 300); 3391 jQuery(".patient__date-dropdown").nextAll().hide(); 3392 jQuery(".smile__footer").hide(); 3393 jQuery("input[name=gender]:radio").change(function () { 3394 jQuery(".custMobiFilterBack").click(); 3395 }); 3396 }); 3397 3398 jQuery(".custMobiFilterBack").click(function () { 3399 jQuery(".custMobiFilterSelectOverlay").animate({ left: "100%" }, 300); 3400 jQuery(".custMobiFilterSelectOverlay") 3401 .promise() 3402 .done(function () { 3403 jQuery(".custMobiFilterSelectOverlay").hide(); 3404 }); 3405 jQuery(".patient__date-dropdown").nextAll().show(); 3406 jQuery(".smile__footer").show(); 3407 }); 3408 } 3409 3410 windowSize = jQuery(window).width(); 3411 3412 if (jQuery(".smile__leftrail__sticky").length) { 3413 3414 var distance = jQuery(".smile__leftrail__sticky").offset().top; 3415 3416 jQuery(window).scroll(function () { 3417 if (jQuery(window).scrollTop() >= distance) { 3418 if (windowSize > 980) { 3419 3420 jQuery(".smile__mixedmaincontent_lr").css({ "margin-left": " 25% " }); 3421 jQuery(".smile__leftrail__sticky").addClass("smile__leftrail__sticky__pos"); 3422 jQuery(".smile__leftrail__sticky").css({ "position": "", "top": "" }); 3423 3424 } 3425 } 3426 else { 3427 jQuery(".smile__mixedmaincontent_lr").css({ "margin-left": " 0 " }); 3428 jQuery(".smile__leftrail__sticky").removeClass("smile__leftrail__sticky__pos"); 3429 } 3430 }); 3431 3432 } 3433 3434 jQuery(".faq__questions").click(function () { 3435 //if this is closed, close any/previous open: 3436 if (!jQuery(this).hasClass("faq__questions-opened")) { 3437 var $openFaqQ = jQuery(".faq__questions-opened"); 3438 $openFaqQ.toggleClass("faq__questions-opened"); 3439 $openFaqQ.find(".chevron").toggleClass("closedAccord"); 3440 $openFaqQ.next().slideToggle("slow"); 3441 } 3442 //now open this: 3443 var isOpened = jQuery(this).hasClass("faq__questions-opened"); 3444 jQuery(this).find('button').attr('aria-expanded', isOpened ? 'false' : 'true'); 3445 jQuery(this).toggleClass("faq__questions-opened"); 3446 jQuery(this).find(".chevron").toggleClass("closedAccord"); 3447 jQuery(this).next().slideToggle("slow", function () { 3448 //if this is last FAQ, reveal it to user: 3449 if (jQuery(this).parent().is(":last-child")) { 3450 jQuery(".faqContactUs")[0].scrollTop = 350; 3451 } 3452 }); 3453 });
3454 3455 jQuery(".dash.fadresults.resultsCol").on("click", ".tooltip a", function () { 3456 jQuery(this).parent().find(".tooltipInner").css({ 3457 "display": "block" 3458 }); 3459 }); 3460 3461 jQuery(".smile__container .smile__table").find("thead tr th .ddwa_table_heading").each(function () { 3462 headerContent.push(jQuery(this).text()); 3463 }); 3464 3465 jQuery(".smile__container .smile__table").each(function () { 3466 desktopTable.push(jQuery(this).html()); 3467 }); 3468 3469 jQuery(".smile__container .smile__table").find("tbody tr td:nth-child(1)").each(function () { 3470 val0.push(jQuery(this).text()); 3471 }); 3472 jQuery(".smile__container .smile__table").find("tbody tr td:nth-child(2)").each(function () { 3473 val1.push(jQuery(this).text()); 3474 }); 3475 jQuery(".smile__container .smile__table").find("tbody tr td:nth-child(3)").each(function () { 3476 val2.push(jQuery(this).text()); 3477 }); 3478 jQuery(".smile__container .smile__table").find("tbody tr td:nth-child(4)").each(function () { 3479 val3.push(jQuery(this).text()); 3480 }); 3481 3482 if (Smile.Layout.isMobileDevice()) { 3483 jQuery('#idBreadcrumbNavigation').addClass('mobile-hide'); 3484 } 3485 3486 updateEdgeToolTips(); 3487}); 3488 3489 3490jQuery(window).resize(function () { 3491 windowSize = jQuery(window).width(); 3492 3493 if (jQuery(".smile__leftrail__sticky").length) { 3494 3495 var distance = jQuery(".smile__leftrail__sticky").offset().top; 3496 3497 if (windowSize < 980) { 3498 3499 jQuery(".smile__mixedmaincontent_lr").css({ "margin-left": " 0 " }); 3500 jQuery(".smile__leftrail__sticky").css({ "position": " static ", "top": "0" }); 3501 jQuery(".smile__leftrail__sticky").removeClass("smile__leftrail__sticky__pos"); 3502 3503 } 3504 } 3505 3506 3507 3508 if (Smile.Layout.isMobile()) { 3509 jQuery(".smile__container .smile__table").find("thead tr").each(function () { 3510 jQuery(this).html(function () { 3511 var selectBox = "<th><select class=\"gridselect\">"; 3512 for (var z = 0; z < headerContent.length; z++) { 3513 selectBox = selectBox + "<option value=\"val\" + z + \"\">" + headerContent[z] + "</option>"; 3514 } 3515 selectBox = selectBox + "</select></th>"; 3516 return selectBox; 3517 }); 3518 }); 3519 3520 3521 jQuery(".smile__container .smile__table").find("tbody").each(function () { 3522 jQuery(this).html(function () { 3523 var selectContent = ""; 3524 for (var z = 0; z < headerContent.length; z++) { 3525 selectContent = selectContent + "<tr><td style=\"width:100%;\" value=\"" + z + "\"><div>" + val0[z] + "</div></td></tr>"; 3526 } 3527 return selectContent; 3528 }); 3529 }); 3530 3531 jQuery(".gridselect").change(function () { 3532 var selectElem = jQuery(this).val(); 3533 jQuery(".smile__container .smile__table").find("tbody").each(function () { 3534 jQuery(this).html(function () { 3535 var selectContent = ""; 3536 for (var z = 0; z < eval(selectElem).length; z++) { 3537 selectContent = selectContent + "<tr><td style=\"width:100%;\" value=\"" + z + "">" + eval(selectElem)[z] + \"</td></tr>"; 3538 } 3539 return selectContent; 3540 }); 3541 }) 3542 }); 3543 3544 } else if (Smile.Layout.isMobile()) { 3545 jQuery(".smile__container .smile__table").each(function (i) { 3546 3547 jQuery(this).html(desktopTable[i]); 3548 }); 3549 }; 3550}); 3551 3552 3553 3554jQuery(window).resize(function() { 3555 updateEdgeToolTips(); 3556});; 3557var __extends = (this && this.__extends) || (function () { 3558 var extendStatics = function (d, b) { 3559 extendStatics = Object.setPrototypeOf || 3560 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 3561 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 3562 return extendStatics(d, b); 3563 }; 3564 return function (d, b) { 3565 if (typeof b !== "function" && b !== null) 3566 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 3567 extendStatics(d, b); 3568 function __() { this.constructor = d; } 3569 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 3570 }; 3571})(); 3572var Ajax; 3573(function (Ajax) { 3574 var SignInStatus; 3575 (function (SignInStatus) { 3576 SignInStatus[SignInStatus["Success"] = 0] = "Success"; 3577 SignInStatus[SignInStatus["UserNotAuthorized"] = 1] = "UserNotAuthorized"; 3578 SignInStatus[SignInStatus["UserNotConfirmed"] = 2] = "UserNotConfirmed"; 3579 SignInStatus[SignInStatus["MfaChallenge"] = 3] = "MfaChallenge"; 3580 SignInStatus[SignInStatus["TooManyRequests"] = 4] = "TooManyRequests"; 3581 SignInStatus[SignInStatus["CodeMismatch"] = 5] = "CodeMismatch"; 3582 SignInStatus[SignInStatus["ExpiredCode"] = 6] = "ExpiredCode"; 3583 SignInStatus[SignInStatus["AccountDisabled"] = 7] = "AccountDisabled"; 3584 SignInStatus[SignInStatus["PasswordChangeRequired"] = 8] = "PasswordChangeRequired"; 3585 SignInStatus[SignInStatus["AccountConfirmLimitExceeded"] = 9] = "AccountConfirmLimitExceeded"; 3586 SignInStatus[SignInStatus["MfaChallengeTooManyInvalidCredentials"] = 10
3586] = "MfaChallengeTooManyInvalidCredentials"; 3587 SignInStatus[SignInStatus["MfaChallengeSessionExpired"] = 11] = "MfaChallengeSessionExpired"; 3588 SignInStatus[SignInStatus["ProviderServiceOfficeNotFound"] = 12] = "ProviderServiceOfficeNotFound"; 3589 SignInStatus[SignInStatus["PasswordAttemptsExceeded"] = 13] = "PasswordAttemptsExceeded"; 3590 SignInStatus[SignInStatus["UserNotFound"] = 14] = "UserNotFound"; 3591 SignInStatus[SignInStatus["AccountCorrupted"] = 50] = "AccountCorrupted"; 3592 })(SignInStatus = Ajax.SignInStatus || (Ajax.SignInStatus = {})); 3593 var SignInService = (function (_super) { 3594 __extends(SignInService, _super); 3595 function SignInService() { 3596 var _this = _super.call(this) || this; 3597 _this.endpoint = "/api/signin/"; 3598 _this.authEndpoint = "/private/api/account/"; 3599 _this.signOut = function () { 3600 _this.clearLocalStorage(); 3601 return _this.getJson(_this.endpoint + "sign-out"); 3602 }; 3603 _this.refreshSession = function () { 3604 return _this.getJson(_this.endpoint + "refresh-session"); 3605 }; 3606 _this.auth = function (returnUrl, bearerToken) { 3607 var url = _this.authEndpoint + "auth"; 3608 returnUrl = !String.isNullOrWhitespace(returnUrl) ? encodeURIComponent(returnUrl) : null; 3609 if (returnUrl != null) { 3610 url += "?returnUrl=" + returnUrl; 3611 } 3612 return _this.getJson(url, null, false, 'Bearer ' + bearerToken); 3613 }; 3614 _this.clearLocalStorage = function () { 3615 var storage = new Navigation.LocalStorage(""); 3616 storage.clearItems(); 3617 }; 3618 return _this; 3619 } 3620 return SignInService; 3621 }(Ajax.HttpService)); 3622 Ajax.SignInService = SignInService; 3623})(Ajax || (Ajax = {})); 3624//# sourceMappingURL=SignInService.js.map; 3625var Core; 3626(function (Core) { 3627 var WorkflowHandler = (function () { 3628 function WorkflowHandler() { 3629 } 3630 WorkflowHandler.prototype.ProcessWorkflow = function (workflowResponse, onSuccessCallback, onFailCallback, onExceptionCallBack) { 3631 workflowResponse.then(function (serviceResponse) { 3632 var workflowResponseModel = serviceResponse.data.Workflow; 3633 var result = { 3634 ResultOfOperation: serviceResponse.data, 3635 IsValid: false, 3636 WorkflowSessionId: workflowResponseModel.WorkflowSessionId, 3637 ClientActions: workflowResponseModel.ClientActionCodes.map(function (c) { return Core.ClientAction[c]; }), 3638 }; 3639 result.IsValid = !workflowResponseModel.WorkflowErrorC
3639ontext; 3640 if (result.IsValid) { 3641 onSuccessCallback(result); 3642 return; 3643 } 3644 Smile.Events.fire(Events.Action.HideLoadingDialog); 3645 if (workflowResponseModel.WorkflowErrorContext.WorkflowErrorType === Core.WorkflowErrorType.Workflow) { 3646 Smile.Events.fire(Events.Action.WorkflowErrorOccurred, workflowResponseModel.WorkflowErrorContext); 3647 } 3648 onFailCallback(result); 3649 }).catch(function (error) { 3650 if (typeof onExceptionCallBack === "function") { 3651 onExceptionCallBack(); 3652 } 3653 }); 3654 }; 3655 return WorkflowHandler; 3656 }()); 3657 Core.WorkflowHandler = WorkflowHandler; 3658})(Core || (Core = {})); 3659//# sourceMappingURL=WorkflowHandler.js.map; 3660var MdBootstrap; 3661(function (MdBootstrap_1) { 3662 var DataTable = (function () { 3663 function DataTable() { 3664 } 3665 DataTable.prototype.setupTable = function (dataTableOptions) { 3666 $.dataJs(dataTableOptions.dataJsSelector).DataTable(); 3667 jQuery('.dataTables_length').addClass('bs-select'); 3668 }; 3669 return DataTable; 3670 }()); 3671 MdBootstrap_1.DataTable = DataTable; 3672 var SmileToastr = (function () { 3673 function SmileToastr() { 3674 this.getToastrDefaults = function () { 3675 return { 3676 "closeButton": true, 3677 "positionClass": "md-toast-top-right", 3678 }; 3679 }; 3680 this.fullWidthToastrOptions = { 3681 positionClass: "md-toast-top-full-width", 3682 tapToDismiss: true, 3683 closeButton: true, 3684 timeOut: 0, 3685 extendedTimeOut: 0 3686 }; 3687 this.nonDismissibleFullWidthToastrOptions = { 3688 positionClass: "md-toast-top-full-width", 3689 tapToDismiss: false, 3690 closeButton: false, 3691 timeOut: 0, 3692 extendedTimeOut: 0 3693 }; 3694 this.defaultToastrOptions = this.getToastrDefaults(); 3695 } 3696 SmileToastr.prototype.error = function (message, title, overrides) { 3697 toastr.error(message, title, this.getOverrides(overrides)); 3698 }; 3699 SmileToastr.prototype.info = function (message, title, overrides) { 3700 toastr.info(message, title, this.getOverrides(overrides)); 3701 }; 3702 SmileToastr.prototype.warning = function (message, title, overrides) { 3703 toastr.warning(message, title, this.getOverrides(overrides)); 3704 }; 3705 SmileToastr.prototype.clear = function () { 3706 toastr.clear(); 3707 }; 3708 SmileToastr.prototype.success = function (message, title, overrides) { 3709 toastr.success(message, title, this.getOverrides(overrides)); 3710 }; 3711 SmileToastr.prototype.getOverrides = function (methodOptions) { 3712 if (!methodOptions) 3713 return this.defaultToastrOptions; 3714 return methodOptions; 3715 }; 3716 return SmileToastr; 3717 }()); 3718 MdBootstrap_1.SmileToastr = SmileToastr; 3719 var SmileMaterialSelect = (function () { 3720 function SmileMaterialSelect() { 3721 } 3722 SmileMaterialSelect.prototype.isExpanded = function ($element) { 3723 return $element.siblings('input.select-dropdown').data('aria-expanded') === "true"; 3724 }; 3725 SmileMaterialSelect.prototype.setExpanded = function ($element, value) { 3726 var input = $element.siblings('input.select-dropdown'); 3727 var ul = $element.siblings('ul.dropdown-content'); 3728 var styleAttr = ul.attr("style"); 3729 if (!styleAttr) { 3730 return; 3731 } 3732 if (styleAttr.indexOf('position') < 0) { 3733 if (!value) { 3734 return; 3735 } 3736 input.trigger("click"); 3737 return; 3738 } 3739 ul.css("display", value ? "block" : "none"); 3740 input.attr('aria-expanded', value.toString()); 3741 input.data('aria-expanded', value.toString()); 3742 }; 3743 SmileMaterialSelect.prototype.keyDown = function ($element, event) { 3744 var _a, _b; 3745 switch (event.key) { 3746 case "Escape": 3747 event.preventDefault(); 3748 this.setExpanded($element, false); 3749 return false; 3750 case "ArrowDown": 3751 case "ArrowUp": 3752 event.preventDefault(); 3753 var ul = $element.siblings('ul.dropdown-content'); 3754 if (!this.isExpanded($element)) { 3755 this.setExpanded($element, true); 3756 $element.siblings('input.select-dropdown').trigger("focus"); 3757 return false; 3758 } 3759 var currentOption = ul.find('li').filter(function () { 3760 var _a, _b, _c; 3761 return ((_a = this.innerText) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_c = (_b = $element.find("option:not([disabled]):selected")) === null || _b === void 0 ? void 0 : _b.text()) === null || _c === void 0 ? void 0 : _c.toLowerCase()); 3762 }); 3763 if (currentOption.length === 0) { 3764 return false; 3765 } 3766 var currentIndex_1 = (_b = (_a = currentOption[0]) === null || _a === void 0 ? void 0 : _a.getAttribute('data-index')) !== null && _b !== void 0 ? _b : (event.key === "ArrowDown" ? -1 : 1); 3767 var targetOption = ul.find('li').filter(function () { 3768 var nextTargetIndex = event.key === "ArrowDown" ? (+currentIndex_1 + 1).toString() : (+currentIndex_1 - 1).toString(); 3769 return this.getAttribute('data-index') === nextTargetIndex; 3770 }); 3771 if ((targetOption === null || targetOption === void 0 ? void 0 : targetOption.length) > 0) { 3772 this.setSelectedOptionByText($element, targetOption[0].innerText.toLowerCase()); 3773 } 3774 return false; 3775 case " ": 3776 case "Enter": 3777 event.preventDefault(); 3778 this.setExpanded($element, !this.isExpanded($element)); 3779 return false; 3780 case "Tab": 3781 if (this.isExpanded($element)) { 3782 event.preventDefault(); 3783 $element.siblings('input.select-dropdown').trigger("focus"); 3784 this.setExpanded($element, false); 3785 return false; 3786 } 3787 } 3788 return true; 3789 }; 3790 SmileMaterialSelect.prototype.setSelectedOptionByText = function ($dropdown, text) { 3791 var _a, _b; 3792 var textToLowerCase = text.toLowerCase(); 3793 var optionValue = (_b = (_a = $dropdown.find('option').filter(function () { 3794 var _a; 3795 return ((_a = this.innerText) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === textToLowerCase; 3796 })) === null || _a === void 0 ? void 0 : _a.val()) === null || _b === void 0 ? void 0 : _b.toString(); 3797 if (optionValue != undefined) { 3798 if (optionValue.length > 0) { 3799 $dropdown.val(optionValue); 3800 this.setValue($dropdown, optionValue, text); 3801 var ul = $dropdown.siblings('ul.dropdown-content'); 3802 var li = ul.find("li").filter(function () { 3803 var _a; 3804 return ((_a = this.innerText) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === textToLowerCase; 3805 }); 3806 ul.scrollTop(ul.scrollTop() + (li.offset().top - ul.offset().top)); 3807 } 3808 else { 3809 $dropdown.val(optionValue); 3810 this.setValue($dropdown, optionValue, text); 3811 var ul = $dropdown.siblings('ul.dropdown-content'); 3812 ul.scrollTop(); 3813 } 3814 } 3815 }; 3816 SmileMaterialSelect.prototype.rebuildDropdown = function ($dropdown) { 3817 var _this = this; 3818 $.fn.onClassChange = $.fn.onClassChange || function (cb) { 3819 return $(this).each(function (_, el) { 3820 new MutationObserver(function (mutations) { 3821 mutations.forEach(function (mutation) { return cb && cb(mutation.target, mutation.target.className); }); 3822 }).observe(el, { 3823 attributes: true, 3824 attributeFilter: ['class'] 3825 }); 3826 }); 3827 }; 3828 if ($dropdown && $dropdown.length > 0 && $dropdown.materialSelect) { 3829 $dropdown.materialSelect({ destroy: true });
3830 $dropdown.materialSelect(); 3831 var that_1 = this; 3832 var parent_1 = $dropdown.parents("div.select-wrapper"); 3833 parent_1[0].onkeydown = function (event) { return _this.keyDown($dropdown, event); }; 3834 $(parent_1[0]).onClassChange(function (el, classNames) { 3835 window.setTimeout(function () { 3836 if (classNames.indexOf("active") === -1 && !el.contains(document.activeElement)) { 3837 window.setTimeout(function () { that_1.setExpanded($dropdown, false); }, 0); 3838 } 3839 }, 0); 3840 }); 3841 var name_1 = $dropdown.attr('name'); 3842 var caret = $dropdown.siblings('span.caret'); 3843 caret[0].innerText = ""; 3844 caret.attr('aria-hidden', 'true') 3845 .attr('class', 'caret pr-2 icon fas fa-sort-down'); 3846 var dropdownInput_1 = $dropdown.siblings('input.select-dropdown'); 3847 dropdownInput_1 3848 .attr('aria-labelledby', $dropdown[0].id + 'label') 3849 .attr('aria-haspopup', 'listbox') 3850 .attr('aria-expanded', 'false') 3851 .attr('role', 'combobox') 3852 .attr('name', name_1); 3853 dropdownInput_1.addClass('text-left'); 3854 var select = $dropdown.siblings('ul.dropdown-content'); 3855 select 3856 .attr('role', 'listbox') 3857 .attr('aria-labelledby', $dropdown[0].id + 'label'); 3858 select.children("li").each(function (index, li) { 3859 li.id = $dropdown[0].id + '_option_' + index; 3860 li.setAttribute('data-index', index.toString()); 3861 li.setAttribute('tabindex', "0"); 3862 }); 3863 var label = $dropdown.siblings('label.active'); 3864 label.attr('id', $dropdown[0].id + 'label'); 3865 label.attr('aria-hidden' + 'true'); 3866 var placeholder = $dropdown.find('option:disabled').text(); 3867 if (placeholder && placeholder === dropdownInput_1.val()) { 3868 dropdownInput_1.attr("placeholder", placeholder).val(''); 3869 } 3870 $dropdown.on('change', function () { 3871 dropdownInput_1.trigger('blur'); 3872 }); 3873 $dropdown.siblings('input.select-dropdown').on('click', function (e) { 3874 _this.setExpanded($dropdown, !_this.isExpanded($dropdown)); 3875 }); 3876 var $dropdownOptions = $('ul.select-dropdown', $dropdown.parent()); 3877 $dropdownOptions.find('li').on('click', function (event) { 3878 event.preventDefault(); 3879 _this.setSelectedOptionByText($dropdown, event.currentTarget.innerText); 3880 if (!!event.screenX) { 3881 _this.setExpanded($dropdown, false); 3882 } 3883 }); 3884 if ($dropdown.attr('data-val-required')) { 3885 var requiredMessage = $dropdown.attr('data-val-required'); 3886 dropdownInput_1 3887 .attr('data-val-required', requiredMessage); 3888 } 3889 else { 3890 dropdownInput_1.removeAttr('required'); 3891 } 3892 } 3893 }; 3894 SmileMaterialSelect.prototype.destroyDropdown = function ($dropdown) { 3895 if ($dropdown.materialSelect) { 3896 $dropdown.materialSelect({ destroy: true }); 3897 $dropdown.children('[data-mdb-placeholder]').remove(); 3898 } 3899 }; 3900 SmileMaterialSelect.prototype.initDropdown = function ($dropdown) { 3901 var _this = this; 3902 $dropdown.materialSelect(); 3903 var $dropdownInput = $('input.select-dropdown', $dropdown.parent()); 3904 if ($dropdown.attr('data-val-required')) { 3905 $dropdownInput 3906 .attr('name', $dropdown.attr('name')) 3907 .attr('data-val-required', $dropdown.attr('data-val-required')); 3908 var placeholder = $dropdown.find('option:disabled').text(); 3909 if (placeholder && placeholder === $dropdownInput.val()) { 3910 $dropdownInput.attr("placeholder", placeholder).val(''); 3911 } 3912 } 3913 $dropdown.on('change', function (event) { 3914 var placeholder = $dropdown.find('option:disabled').text(); 3915 _this.setValue($dropdown, $dropdown.val(), placeholder); 3916 $dropdownInput.trigger('blur'); 3917 }); 3918 }; 3919 SmileMaterialSelect.prototype.setValue = function ($dropdown, value, text) { 3920 var optionText = (value || '') !== '' ? $dropdown.find("option[value='".concat(value, "']")).text() : ''; 3921 var $dropdownInput = $('input.select-dropdown', $dropdown.parent()); 3922 var $dropdownOptions = $('ul.select-dropdown', $dropdown.parent()); 3923 $dropdownOptions.find('li').removeClass().attr('aria-selected', 'false'); 3924 $dropdownInput.val(optionText); 3925 if (optionText !== '') { 3926 var selectedLi = $dropdownOptions.find("li:contains('".concat(optionText, "')")); 3927 selectedLi.addClass('active selected').attr('aria-selected', 'true'); 3928 $dropdownInput.attr('aria-activedescendant', selectedLi.attr('id')); 3929 } 3930 else { 3931 var selectedLi = $dropdownOptions.find("li:first"); 3932 selectedLi.addClass('active selected').attr('aria-selected', 'true'); 3933 $dropdownInput.attr('aria-activedescendant', selectedLi.attr('id')); 3934 if (text.length > 0) { 3935 $dropdownInput.attr("placeholder", text); 3936 } 3937 } 3938 setTimeout(function () { 3939 $dropdownInput.focus(); 3940 $dropdownInput.addClass('is-focused-by-tab'); 3941 }, 100); 3942 }; 3943 return SmileMaterialSelect; 3944 }()); 3945 MdBootstrap_1.SmileMaterialSelect = SmileMaterialSelect; 3946 var SmileModal = (function () { 3947 function SmileModal() { 3948 this.returnFocusElement = null; 3949 } 3950 SmileModal.prototype.setupModalTabActions = function (focusableSelectors, actionHandlers, dialogId) { 3951 if (dialogId === void 0) { dialogId = null; } 3952 this.returnFocusElement = document.activeElement; 3953 this.modal = !!dialogId ? $("#".concat(dialogId)) : $('.modal'); 3954 var focusableElements = this.modal.find(focusableSelectors).attr('tabIndex', '0'); 3955 if (actionHandlers.length > 0) 3956 this.setupActions(actionHandlers); 3957 var firstFocusableElement = focusableElements[0]; 3958 var lastFocusableElement = focusableElements[focusableElements.length - 1]; 3959 firstFocusableElement === null || firstFocusableElement === void 0 ? void 0 : firstFocusableElement.focus(); 3960 var trapTabInsideModal = function (e) { 3961 if (e.keyCode !== SmileModal.KEYCODE_TAB) { 3962 return; 3963 } 3964 if (e.shiftKey) { 3965 if (document.activeElement === firstFocusableElement) { 3966 lastFocusableElement.focus(); 3967 e.preventDefault(); 3968 } 3969 } 3970 else { 3971 if (document.activeElement === lastFocusableElement) { 3972 firstFocusableElement.focus(); 3973 e.preventDefault(); 3974 } 3975 } 3976 }; 3977 this.modal.off('keydown', trapTabInsideModal).on('keydown', trapTabInsideModal); 3978 }; 3979 SmileModal.prototype.setupModalCloseTabActions = function (closeHandler, dialogId, useCloseHandler) { 3980 var _this = this; 3981 if (dialogId === void 0) { dialogId = ""; } 3982 if (useCloseHandler === void 0) { useCloseHandler = true; } 3983 var allFocusableElements = 'a.close, b-button, button:visible, a.modalFocusable, div.disclaimer-content'; 3984 var closeHandlerWithFocusReturn; 3985 if (useCloseHandler) { 3986 closeHandlerWithFocusReturn = function () { 3987 if (closeHandler) { 3988 closeHandler(); 3989 } 3990 window.setTimeout(function () { 3991 if (_this.returnFocusElement && typeof _this.returnFocusElement.focus === 'function') { 3992 _this.returnFocusElement.focus(); 3993 } 3994 else { 3995 document.body.focus(); 3996 } 3997 }, 50); 3998 }; 3999 } 4000 this.setupModalTabActions(allFocusableElements, useCloseHandler ? [ 4001 { 4002 controlSelector: allFocusableElements, 4003 actionCallback: closeHandlerWithFocusReturn 4004 } 4005 ] : [], dialogId); 4006 }; 4007 SmileModal.prototype.setupModalCloseButtonAccessibility = function (id) { 4008 var closeElement = this.modal.find('a.close'); 4009 closeElement.attr('role', 'button'); 4010 closeElement.attr('aria-label', 'Close'); 4011 closeElement.attr('id', id); 4012 closeElement.attr('style', 'position: relative;'); 4013 closeElement.on('keydown', function (event) { 4014 var _a; 4015 if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') { 4016 event.preventDefault(); 4017 (_a = closeElement.get(0)) === null || _a === void 0 ? void 0 : _a.click(); 4018 } 4019 }); 4020 }; 4021 SmileModal.prototype.setupActions = function (actionHandlers) { 4022 var _this = this;
4023 actionHandlers.forEach(function (ah) { 4024 _this.modal.find(ah.controlSelector).on('keydown', function (e) { 4025 if (e.keyCode === SmileModal.KEYCODE_ENTER) 4026 ah.actionCallback(); 4027 }); 4028 }); 4029 }; 4030 SmileModal.KEYCODE_TAB = 9; 4031 SmileModal.KEYCODE_ENTER = 13; 4032 return SmileModal; 4033 }()); 4034 MdBootstrap_1.SmileModal = SmileModal; 4035 var MdBootstrap = (function () { 4036 function MdBootstrap() { 4037 this.smileToastr = new SmileToastr(); 4038 this.dataTable = new DataTable(); 4039 this.materialSelect = new SmileMaterialSelect(); 4040 this.smileModal = new SmileModal(); 4041 } 4042 return MdBootstrap; 4043 }()); 4044 MdBootstrap_1.MdBootstrap = MdBootstrap; 4045})(MdBootstrap || (MdBootstrap = {})); 4046Smile.createNamespace(Smile, "Smile.MdBootstrap"); 4047Smile.MdBootstrap = new MdBootstrap.MdBootstrap(); 4048//# sourceMappingURL=MdBootstrap.js.map; 4049var Directives; 4050(function (Directives) { 4051 var CustomTooltipDirective = (function () { 4052 function CustomTooltipDirective() { 4053 var self = this; 4054 Vue.directive('custom-tooltip', { 4055 bind: function (el, binding) { 4056 var tooltipContainer = document.createElement('div'); 4057 tooltipContainer.innerHTML = 4058 "<div id=\"customTooltip".concat(binding.value.targetId, "\" class=\"custom-tooltip\" role=\"tooltip\">\n ").concat(binding.value.title, "\n </div>"); 4059 el.appendChild(tooltipContainer.firstChild); 4060 el.addEventListener('focus', function () { 4061 self.showTooltip(binding.value.targetId); 4062 }); 4063 el.addEventListener('mouseenter', function () { 4064 self.showTooltip(binding.value.targetId); 4065 }); 4066 el.addEventListener('blur', function () { 4067 self.hideTooltip(binding.value.targetId); 4068 }); 4069 el.addEventListener('mouseleave', function () { 4070 self.hideTooltip(binding.value.targetId); 4071 }); 4072 }, 4073 update: function (el, binding) { 4074 if (binding.value !== binding.oldValue) { 4075 var tooltip = document.getElementById("customTooltip".concat(binding.value.targetId)); 4076 if (tooltip) { 4077 tooltip.innerText = binding.value.title; 4078 } 4079 } 4080 } 4081 }); 4082 } 4083 CustomTooltipDirective.prototype.showTooltip = function (targetId) { 4084 var tooltip = document.getElementById("customTooltip".concat(targetId)); 4085 if (tooltip) { 4086 tooltip.style.display = 'block'; 4087 if ('ontouchstart' in window || navigator.maxTouchPoints > 0) { 4088 if ("".concat(targetId).match("previousButton") || "".concat(targetId).match("nextButton")) { 4089 if (this._tooltipTimer) { 4090 clearTimeout(this._tooltipTimer); 4091 } 4092 this._tooltipTimer = setTimeout(function () { 4093 tooltip.style.display = 'none'; 4094 var button = tooltip.parentElement; 4095 if (button && button.tagName === 'BUTTON') { 4096 button.focus(); 4097 } 4098 }, 2000); 4099 } 4100 } 4101 } 4102 }; 4103 CustomTooltipDirective.prototype.hideTooltip = function (targetId) { 4104 var tooltip = document.getElementById("customTooltip".concat(targetId)); 4105 if (tooltip) { 4106 tooltip.style.display = 'none'; 4107 } 4108 }; 4109 return CustomTooltipDirective; 4110 }()); 4111 Directives.CustomTooltipDirective = CustomTooltipDirective; 4112})(Directives || (Directives = {})); 4113Smile.createNamespace(Smile.Directives, "Smile.Directives.CustomTooltipDirective"); 4114Smile.Directives.CustomTooltipDirective = new Directives.CustomTooltipDirective(); 4115//# sourceMappingURL=CustomTooltipDirective.js.map; 4116var Navigation; 4117(function (Navigation) { 4118 var LocalStorageKeys; 4119 (function (LocalStorageKeys) { 4120 LocalStorageKeys["Pagination"] = "Pagination"; 4121 LocalStorageKeys["HistoryState"] = "HistoryState"; 4122 LocalStorageKeys["ProviderClaimsSearch"] = "ProviderClaimsSearch"; 4123 LocalStorageKeys["ProviderPaginationClaimsSearch"] = "ProviderPaginationClaimsSearch"; 4124 LocalStorageKeys["ProviderPaymentVoucherSearch"] = "ProviderPaymentVoucherSearch"; 4125 LocalStorageKeys["ProviderPaymentVoucherSearchV2"] = "ProviderPaymentVoucherSearchV2"; 4126 LocalStorageKeys["ProviderPaginationPaymentVoucherSearch"] = "ProviderPaginationPaymentVoucherSearch"; 4127 LocalStorageKeys["ProviderPredeterminationSearch"] = "ProviderPredeterminationSearch"; 4128 LocalStorageKeys["ProviderPaginationPredeterminationSearch"] = "ProviderPaginationPredeterminationSearch"; 4129 LocalStorageKeys["ProviderBenefitsSearch"] = "ProviderBenefitsSearch"; 4130 LocalStorageKeys["ProviderDeltaCareRosterSearch"] = "ProviderDeltaCareRosterSearch"; 4131 LocalStorageKeys["EnrollmentSearch"] = "EnrollmentSearch"; 4132 LocalStorageKeys["EnrollmentSearchResults"] = "EnrollmentSearchResults"; 4133 LocalStorageKeys["GroupEnrollmentSearchResults"] = "GroupEnrollmentSearchResults"; 4134 LocalStorageKeys["EnrollmentEligibilityHistory"] = "EnrollmentEligibilityHistory"; 4135 LocalStorageKeys["GroupEnrollmentEligibilityHistory"] = "GroupEnrollmentEligibilityHistory"; 4136 LocalStorageKeys["PatientMyAccountNotification"] = "PatientMyAccountNotification"; 4137 LocalStorageKeys["PlanManagementResult"] = "PlanManagementResult"; 4138 LocalStorageKeys["DataStorage"] = "DataStorage"; 4139 LocalStorageKeys["PatientRegistrationWidget"] = "PatientRegistrationWidget"; 4140 LocalStorageKeys["IndividualSalesCart"] = "IndividualSalesCart"; 4141 LocalStorageKeys["IdCardValidation"] = "IdCardValidation"; 4142 LocalStorageKeys["Invoices"] = "Invoices"; 4143 LocalStorageKeys["FindADentistAddress"] = "FindADentistAddress"; 4144 LocalStorageKeys["DDPASearch"] = "DDPASearch"; 4145 LocalStorageKeys["ProviderClaimSubmissionData"] = "ProviderClaimSubmissionData"; 4146 LocalStorageKeys["CostGenie"] = "CostGenie"; 4147 LocalStorageKeys["SignInComponent"] = "SignInComponent"; 4148 LocalStorageKeys["Pdu"] = "Pdu"; 4149 LocalStorageKeys["SelfServiceRegistration"] = "SelfServiceRegistration"; 4150 LocalStorageKeys["ProviderServiceRegistration"] = "ProviderServiceRegistration"; 4151 LocalStorageKeys["CtaSignInDismissibleBanner"] = "CtaSignInDismissibleBanner"; 4152 LocalStorageKeys["EdiBenefitsSearch"] = "EdiBenefitsSearch"; 4153 LocalStorageKeys["ProviderPatientBenefits"] = "ProviderPatientBenefits"; 4154 LocalStorageKeys["GroupEnrollmentV2SearchResults"] = "GroupEnrollmentV2SearchResults"; 4155 LocalStorageKeys["PlanManagementCart"] = "PlanManagementCart"; 4156 LocalStorageKeys["PlanManagementCall2ActionDismissibleBanner"] = "PlanManagementCall2ActionDismissibleBanner"; 4157 LocalStorageKeys["PatientPrivateOtp"] = "PatientPrivateOtp"; 4158 LocalStorageKeys["PatientDashboardBannerDismissible"] = "PatientDashboardBannerDismissible"; 4159 })(LocalStorageKeys = Navigation.LocalStorageKeys || (Navigation.LocalStorageKeys = {})); 4160 var LocalStorage = (function () { 4161 function LocalStorage(appName) { 4162 var _this = this; 4163 this.baseName = "SMILE"; 4164 this.storage = window.sessionStorage; 4165 this.setItem = function (item) { 4166 var serializedData = JSON.stringify(item.value); 4167 _this.storage.setItem(_this.getKey(item.key), serializedData); 4168 }; 4169 this.getItem = function (key, defaultValues) { 4170 var result = _this.getItemUsingKey(key) || {}; 4171 for (var key in defaultValues) { 4172 if (!result.hasOwnProperty(key)) { 4173 result[key] = defaultValues[key]; 4174 } 4175 } 4176 return result; 4177 }; 4178 this.removeItem = function (key) { 4179 _this.storage.removeItem(_this.getKey(key)); 4180 }; 4181 this.clearItems = function () { 4182 var keyLength = _this.storage.length; 4183 for (var i = keyLength - 1; i >= 0; i--) { 4184 var key = _this.storage.key(i); 4185 if (key.indexOf(_this.appName) != -1) { 4186 _this.storage.removeItem(key); 4187 } 4188 } 4189 }; 4190 this.getItemUsingKey = function (key) { 4191 return JSON.parse(_this.storage.getItem(_this.getKey(key))); 4192 }; 4193 this.getKey = function (key) { 4194 return _this.appName + key; 4195 }; 4196 this.appName = this.baseName + appName; 4197 } 4198 return LocalStorage; 4199 }()); 4200 Navigation.LocalStorage = LocalStorage; 4201})(Navigation || (Navigation = {})); 4202//# sourceMappingURL=LocalStorageService.js.map; 4203var __extends = (this && this.__extends) || (function () { 4204 var extendStatics = function (d, b) { 4205 extendStatics = Object.setPrototypeOf || 4206 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 4207 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 4208 return extendStatics(d, b); 4209 }; 4210 return function (d, b) { 4211 if (typeof b !== "function" && b !== null) 4212 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 4213 extendStatics(d, b); 4214 function __() { this.constructor = d; } 4215 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 4216 }; 4217})(); 4218var Search; 4219(function (Search) {
4220 var SolrSuggestService = (function (_super) { 4221 __extends(SolrSuggestService, _super); 4222 function SolrSuggestService() { 4223 var _this = _super.call(this) || this; 4224 _this.suggesterEndpoint = "/api/search/suggest"; 4225 _this.getSuggesterResults = function (data) { 4226 var deferred = jQuery.Deferred(); 4227 _this.postJson(_this.suggesterEndpoint, data, undefined, false) 4228 .done(function (result) { 4229 if (result.Data) { 4230 deferred.resolve(result.Data); 4231 } 4232 else { 4233 deferred.reject(result.Data); 4234 } 4235 }) 4236 .catch(function () { deferred.reject(-1); }); 4237 return deferred.promise(); 4238 }; 4239 return _this; 4240 } 4241 return SolrSuggestService; 4242 }(Ajax.HttpService)); 4243 Search.SolrSuggestService = SolrSuggestService; 4244})(Search || (Search = {})); 4245//# sourceMappingURL=SolrSuggestService.js.map; 4246var Search; 4247(function (Search) { 4248 var SuggesterView = (function () { 4249 function SuggesterView(suggestService) { 4250 var _this = this;
4251 this.getSuggestions = function (request, update) { 4252 var data = { keyword: request.term.toLowerCase() }; 4253 _this.suggesterService.getSuggesterResults(data) 4254 .done(function (results) { 4255 update(_this.mapResults(results)); 4256 }); 4257 }; 4258 this.mapResults = function (res) { 4259 return jQuery.map(res, function (item) { return { label: item }; }); 4260 }; 4261 this.getAntiforgeryToken = function () { 4262 var fromHeader = $.dataJs("submitSearch").find("[name='__RequestVerificationToken']"); 4263 var fromResultPage = $.dataJs("submitSearchButton").find("[name='__RequestVerificationToken']"); 4264 return fromHeader.val() || fromResultPage.val(); 4265 }; 4266 this.suggesterService = suggestService; 4267 this.$searchInputText = $('.SolrQueryBox'); 4268 var that = this; 4269 $.ui.autocomplete.prototype._renderItem = this.renderItem; 4270 var $autocompleteWidget = this.$searchInputText 4271 .autocomplete({ 4272 minLength: 3, 4273 delay: 500, 4274 source: this.getSuggestions, 4275 close: function (event, ui) { 4276 that.$searchInputText.attr("aria-expanded", "false"); 4277 }, 4278 open: function (event, ui) { 4279 that.$searchInputText.attr("aria-expanded", "true"); 4280 } 4281 }) 4282 .autocomplete("widget"); 4283 Accessibility.AccessibilityUtils.makeSolrSearchInputAccesible(this.$searchInputText, $autocompleteWidget); 4284 } 4285 SuggesterView.prototype.renderItem = function (ul, item) { 4286 ul.attr("aria-labelledby", "searchSubmitInputLabel"); 4287 return jQuery("<li role='option' id='item_" + ul.children().length + "'></li>") 4288 .each(function (_, _li) { 4289 var observer = new MutationObserver(function (mutationList) { 4290 mutationList.forEach(function (mutation) { 4291 if (mutation.attributeName === "class" && 4292 mutation.target instanceof Element && 4293 mutation.target.classList.contains("ui-state-active")) { 4294 $('.SolrQueryBox').attr("aria-activedescendant", _li.id); 4295 } 4296 }); 4297 }); 4298 observer.observe(_li, { attributes: true, subtree: true, attributeFilter: ["class"] }); 4299 }) 4300 .data("item.autocomplete", item) 4301 .append(jQuery("<a></a>").html(item.label)).appendTo(ul); 4302 }; 4303 ; 4304 return SuggesterView; 4305 }()); 4306 Search.SuggesterView = SuggesterView; 4307})(Search || (Search = {})); 4308Smile.createNamespace(Smile.Feature, "Smile.Feature.SuggesterView"); 4309Smile.Feature.SuggesterView = new Search.SuggesterView(new Search.SolrSuggestService());
4310//# sourceMappingURL=SuggesterView.js.map; 4311var Btl; 4312(function (Btl) { 4313 var BtlEventActionTracker = (function () { 4314 function BtlEventActionTracker() { 4315 } 4316 BtlEventActionTracker.prototype.action = function (area, type) { 4317 return new BtlEventAction(area, type); 4318 }; 4319 return BtlEventActionTracker; 4320 }()); 4321 Btl.BtlEventActionTracker = BtlEventActionTracker; 4322 var BtlEventAction = (function () { 4323 function BtlEventAction(area, type) { 4324 this.area = area; 4325 this.type = type; 4326 } 4327 BtlEventAction.prototype.setParameters = function (func) { 4328 this.parameters = func; 4329 return this; 4330 }; 4331 BtlEventAction.prototype.setResults = function (func) { 4332 this.results = func; 4333 return this; 4334 }; 4335 BtlEventAction.prototype.setSuccessStatus = function (status) { 4336 this.successStatus = status; 4337 return this; 4338 }; 4339 BtlEventAction.prototype.setErrorStatus = function (status) { 4340 this.errorStatus = status; 4341 return this; 4342 }; 4343 BtlEventAction.prototype.setSuccessMessage = function (message) { 4344 this.successMessage = message; 4345 return this; 4346 }; 4347 BtlEventAction.prototype.setErrorMessage = function (message) { 4348 this.errorMessage = message; 4349 return this; 4350 }; 4351 BtlEventAction.prototype.trackAjaxRequest = function (targetObj, funcName) { 4352 var action = this; 4353 var objType = typeof targetObj.prototype !== 'undefined' ? targetObj.prototype : targetObj; 4354 var originalFunc = objType[funcName]; 4355 if (!originalFunc) { 4356 Smile.Core.Debug.Log("[BTL] WARN - function ".concat(funcName, " is not defined for ").concat(targetObj)); 4357 } 4358 objType[funcName] = function () { 4359 var _this = this; 4360 var startTime = performance.now(); 4361 var actionParameters = action.getParameters(this, arguments); 4362 var returnValue = originalFunc.apply(this, arguments); 4363 var jqXHR = returnValue; 4364 if (jqXHR && typeof jqXHR.then !== 'undefined' && typeof jqXHR.fail !== 'undefined') { 4365 jqXHR.then(function (data) { 4366 var actionResults = action.getResults(_this, data); 4367 var actionStatus = action.getSuccessStatus(_this, data); 4368 var actionStatusMessage = action.getSuccessMessage(_this, data); 4369 var duration = performance.now() - startTime; 4370 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4371 }); 4372 jqXHR.fail(function (_) { 4373 var actionResults = action.getResults(_this, null); 4374 var actionStatus = action.getErrorStatus(_this, null); 4375 var actionStatusMessage = action.getErrorMessage(_this, null); 4376 var duration = performance.now() - startTime; 4377 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4378 }); 4379 } 4380 else { 4381 Smile.Core.Debug.Log("[BTL] WARN - returned value for func ".concat(funcName, " defined for ").concat(targetObj, " is not of type JQuery.jqXHR")); 4382 } 4383 return returnValue; 4384 }; 4385 return this; 4386 }; 4387 BtlEventAction.prototype.trackXMLHttpRequest = function (targetObj, funcName) { 4388 var action = this; 4389 var objType = typeof targetObj.prototype !== 'undefined' ? targetObj.prototype : targetObj; 4390 var originalFunc = objType[funcName]; 4391 if (!originalFunc) { 4392 Smile.Core.Debug.Log("[BTL] WARN - function ".concat(funcName, " is not defined for ").concat(targetObj)); 4393 } 4394 objType[funcName] = function () { 4395 var _this = this; 4396 var startTime = performance.now(); 4397 var actionParameters = action.getParameters(this, arguments); 4398 var returnValue = originalFunc.apply(this, arguments); 4399 var xmlHttpRequest = returnValue; 4400 if (xmlHttpRequest && typeof xmlHttpRequest.onloadend !== 'undefined' && typeof xmlHttpRequest.onerror !== 'undefined') { 4401 var _onloadend_1 = xmlHttpRequest.onloadend; 4402 xmlHttpRequest.onloadend = function (ev) { 4403 var success = xmlHttpRequest.status === 200; 4404 var actionResults = success ? action.getResults(_this, returnValue) : action.getResults(_this, null); 4405 var actionStatus = success ? action.getSuccessStatus(_this, returnValue) : action.getErrorStatus(_this, null); 4406 var actionStatusMessage = success ? action.getSuccessMessage(_this, returnValue) : action.getErrorMessage(_this, null); 4407 var duration = performance.now() - startTime; 4408 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4409 _onloadend_1.apply(_this, ev); 4410 }; 4411 var _onerror_1 = xmlHttpRequest.onerror; 4412 xmlHttpRequest.onerror = function (ev) { 4413 var actionResults = action.getResults(_this, null); 4414 var actionStatus = action.getErrorStatus(_this, null); 4415 var actionStatusMessage = action.getErrorMessage(_this, null); 4416 var duration = performance.now() - startTime; 4417 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4418 _onerror_1.apply(_this, ev); 4419 }; 4420 } 4421 else { 4422 Smile.Core.Debug.Log("[BTL] WARN - returned value for func ".concat(funcName, " defined for ").concat(targetObj, " is not of type XMLHttpRequest")); 4423 } 4424 return returnValue; 4425 }; 4426 return this; 4427 }; 4428 BtlEventAction.prototype.trackDOMEvent = function (event, targetSelector, container) { 4429 var _this = this; 4430 if (!event) { 4431 Smile.Core.Debug.Log("[BTL] WARN - event is not defined"); 4432 return this; 4433 } 4434 if (!targetSelector) { 4435 Smile.Core.Debug.Log("[BTL] WARN - target selector is not defined"); 4436 return this; 4437 } 4438 if (!container) { 4439 Smile.Core.Debug.Log("[BTL] WARN - container is not defined"); 4440 return this; 4441 } 4442 var action = this; 4443 $(container).on(event, targetSelector, function (ev) { 4444 var actionParameters = action.getParameters(_this, [ev]); 4445 var actionResults = action.getResults(_this, [ev]); 4446 var actionStatus = action.getSuccessStatus(_this, [ev]); 4447 var actionStatusMessage = action.getSuccessMessage(_this, [ev]); 4448 var duration = 0; 4449 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4450 }); 4451 return this; 4452 }; 4453 BtlEventAction.prototype.trackDOMEventOnce = function (event, targetSelector, container, delay) { 4454 var _this = this;
4455 if (delay === void 0) { delay = 100; } 4456 if (!event) { 4457 Smile.Core.Debug.Log("[BTL] WARN - event is not defined"); 4458 return this; 4459 } 4460 if (!targetSelector) { 4461 Smile.Core.Debug.Log("[BTL] WARN - target selector is not defined"); 4462 return this; 4463 } 4464 if (!container) { 4465 Smile.Core.Debug.Log("[BTL] WARN - container is not defined"); 4466 return this; 4467 } 4468 var action = this; 4469 $(container).on(event, targetSelector, function (ev) { 4470 ev.preventDefault(); 4471 ev.stopPropagation(); 4472 setTimeout(function () { 4473 ev.originalEvent.target.dispatchEvent(new MouseEvent(ev.originalEvent.type, { 4474 bubbles: ev.originalEvent.bubbles, 4475 composed: ev.originalEvent.composed, 4476 cancelable: ev.originalEvent.cancelable 4477 })); 4478 }, delay); 4479 $(container).off(event, targetSelector); 4480 var actionParameters = action.getParameters(_this, [ev]); 4481 var actionResults = action.getResults(_this, [ev]); 4482 var actionStatus = action.getSuccessStatus(_this, [ev]); 4483 var actionStatusMessage = action.getSuccessMessage(_this, [ev]); 4484 var duration = 0; 4485 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4486 }); 4487 return this; 4488 }; 4489 BtlEventAction.prototype.trackWindowEvent = function (event) { 4490 var _this = this; 4491 if (!event) { 4492 Smile.Core.Debug.Log("[BTL] WARN - event is not defined"); 4493 return this; 4494 } 4495 var action = this; 4496 window.addEventListener(event, function (ev) { 4497 var actionParameters = action.getParameters(_this, [ev]); 4498 var actionResults = action.getResults(_this, [ev]); 4499 var actionStatus = action.getSuccessStatus(_this, [ev]); 4500 var actionStatusMessage = action.getSuccessMessage(_this, [ev]); 4501 var duration = 0; 4502 action.logEvent(action, actionParameters, actionResults, duration, actionStatus, actionStatusMessage); 4503 }); 4504 return this; 4505 }; 4506 BtlEventAction.prototype.getArea = function () { 4507 return typeof this.area === 'function' ? this.area() : this.area; 4508 }; 4509 BtlEventAction.prototype.getType = function () { 4510 return typeof this.type === 'function' ? this.type() : this.type; 4511 }; 4512 BtlEventAction.prototype.getParameters = function (context, args) { 4513 return this.parameters ? this.parameters.apply(context, args) : {}; 4514 }; 4515 BtlEventAction.prototype.getResults = function (context, args) { 4516 return this.results ? this.results.call(context, args) : {}; 4517 }; 4518 BtlEventAction.prototype.getSuccessStatus = function (context, args) { 4519 return typeof this.successStatus === 'function' ? this.successStatus.call(context, args) : this.successStatus || 'SUCCESS'; 4520 }; 4521 BtlEventAction.prototype.getErrorStatus = function (context, args) { 4522 return typeof this.errorStatus === 'function' ? this.errorStatus.call(context, args) : this.errorStatus || 'ERROR'; 4523 }; 4524 BtlEventAction.prototype.getSuccessMessage = function (context, args) { 4525 return typeof this.successMessage === 'function' ? this.successMessage.call(context, args) : this.successMessage || null; 4526 }; 4527 BtlEventAction.prototype.getErrorMessage = function (context, args) { 4528 return typeof this.errorMessage === 'function' ? this.errorMessage.call(context, args) : this.errorMessage || null; 4529 }; 4530 BtlEventAction.prototype.logEvent = function (action, parameters, results, duration, status, statusMessage) { 4531 var payload = { 4532 actor: 'user', 4533 area: action.getArea(), 4534 type: action.getType(), 4535 parameters: parameters ? Smile.Core.Utils.ToCamelCase(parameters) : {}, 4536 results: results ? Smile.Core.Utils.ToCamelCase(results) : {}, 4537 duration: duration, 4538 status: status 4539 }; 4540 if (statusMessage) 4541 payload.statusMessage = statusMessage; 4542 Smile.Events.fire(Events.Action.BtlEvent, payload); 4543 }; 4544 return BtlEventAction; 4545 }()); 4546})(Btl || (Btl = {})); 4547Smile.createNamespace(Smile, "Smile.BtlTrack"); 4548Smile.BtlTrack = new Btl.BtlEventActionTracker(); 4549//# sourceMappingURL=BtlEventActionTracker.js.map; 4550var SelectComponent; 4551(function (SelectComponent_1) { 4552 var SelectComponent = (function () { 4553 function SelectComponent() { 4554 var _this = this; 4555 this.initForm = function () { 4556 Vue.use(vuelidate.default); 4557 Vue.use(Vuex); 4558 _this.SelectComponent = Vue.component('dp-select', { 4559 template: "<template id=\"dp-select-component\">\n <mdb-select v-bind=\"$attrs\"\n @change=\"onChange\">\n </mdb-select>\n </template>", 4560 store: null, 4561 components: { 4562 mdbSelect: mdbvue.mdbSelect 4563 }, 4564 computed: {}, 4565 beforeMount: function () { 4566 }, 4567 props: { 4568 showSelectionsCount: { 4569 type: Boolean, 4570 default: true 4571 } 4572 }, 4573 methods: { 4574 onChange: function (value) { 4575 var _this = this; 4576 this.$emit('update:onselected', value); 4577 this.$emit('change', value); 4578 var input = this.$el.querySelector('input'); 4579 Vue.nextTick(function () { 4580 var _a; 4581 var activeElement = (_a = _this.$el.querySelector('ul')) === null || _a === void 0 ? void 0 : _a.querySelector('li.active'); 4582 if (input && activeElement) { 4583 input.setAttribute('aria-activedescendant', activeElement.id); 4584 } 4585 }); 4586 setTimeout(function () { 4587 var input = _this.$el.querySelector('input'); 4588 if (input) { 4589 $(input).trigger('change'); 4590 } 4591 }, 0); 4592 }, 4593 reset: function () { 4594 var _a, _b; 4595 (_b = (_a = this.$children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.reset(); 4596 }, 4597 update: function () { 4598 var _a, _b; 4599 (_b = (_a = this.$children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.update(
4599); 4600 }, 4601 closeDropdown: function (element, event) { 4602 if (event.key === 'Escape' || event.key === 'Esc') { 4603 event.preventDefault(); 4604 event.stopPropagation(); 4605 var dropdowns = document.querySelectorAll('.dropdown-content'); 4606 dropdowns.forEach(function (dropdown) { 4607 var dropdownElem = dropdown; 4608 dropdownElem.style.display = 'none'; 4609 }); 4610 } 4611 } 4612 }, 4613 mounted: function () { 4614 var _this = this; 4615 var _a, _b; 4616 var form = this.$el.querySelector('form'); 4617 var input = this.$el.querySelector('input'); 4618 var listContainer = this.$el.querySelector('ul'); 4619 var label = this.$el.querySelector('label'); 4620 if (form) { 4621 form.addEventListener('keydown', function (event) { 4622 if (event.key === 'Escape') { 4623 event.preventDefault(); 4624 event.stopPropagation(); 4625 } 4626 }); 4627 listContainer.addEventListener('focusout', function (event) { 4628 setTimeout(function () { 4629 if (!listContainer.contains(document.activeElement)) { 4630 if (!listContainer.querySelector('li.active')) { 4631 input.setAttribute('aria-activedescendant', ''); 4632 } 4633 else { 4634 var activeElement = listContainer.querySelector('li.active'); 4635 if (activeElement) { 4636 input.setAttribute('aria-activedescendant', activeElement.id); 4637 } 4638 } 4639 } 4640 }, 50); 4641 }); 4642 form.addEventListener('click', function () { 4643 var activeElement = listContainer.querySelector('li.active'); 4644 setTimeout(function () { 4645 var _a; 4646 if (activeElement) { 4647 activeElement.focus(); 4648 } 4649 else { 4650 (_a = listContainer.querySelector('li')) === null || _a === void 0 ? void 0 : _a.focus(); 4651 } 4652 }, 100); 4653 }); 4654 } 4655 if (label) { 4656 (_a = input === null || input === void 0 ? void 0 : input.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(label, input); 4657 } 4658 this.$nextTick(function () { 4659 _this.$el.removeAttribute('aria-required'); 4660 }); 4661 if (input.getAttribute("aria-activedescendant") === null) 4662 input.setAttribute("aria-activedescendant", ""); 4663 var items = listContainer.querySelectorAll("li"); 4664 if (items) { 4665 items.forEach(function (li) { 4666 li.setAttribute("aria-selected", "false"); 4667 }); 4668 } 4669 input.setAttribute('aria-controls', this.$el.id + "-ul"); 4670 input.addEventListener('keydown', function (event) { 4671 var _a; 4672 if (event.key === 'Enter' || event.code === 'Space') { 4673 var activeElement_1 = (_a = _this.$el.querySelector('ul')) === null || _a === void 0 ? void 0 : _a.querySelector('li.active'); 4674 setTimeout(function () { 4675 var _a, _b; 4676 if (activeElement_1) { 4677 activeElement_1.focus(); 4678 } 4679 else { 4680 (_b = (_a = _this.$el.querySelector('ul')) === null || _a === void 0 ? void 0 : _a.querySelector('li')) === null || _b === void 0 ? void 0 : _b.focus(); 4681 listContainer.classList.add('kbd-nav'); 4682 } 4683 }, 100); 4684 } 4685 if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) { 4686 _this.closeDropdown(input, event); 4687 } 4688 }); 4689 listContainer.addEventListener('keyup', function (event) { 4690 if (event.key === 'ArrowUp' || event.key === 'ArrowDown' 4691 || event.key === 'Home' || event.key === 'End') { 4692 listContainer.classList.add('kbd-nav'); 4693 } 4694 }); 4695 listContainer.addEventListener('pointermove', function () { 4696 listContainer.classList.remove('kbd-nav'); 4697 }); 4698 listContainer.addEventListener('keydown', function (event) { 4699 var _a; 4700 if (event.key === 'Tab') { 4701 (_a = _this.$children) === null || _a === void 0 ? void 0 : _a[0].handleEscClose(); 4702 } 4703 if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
4704 _this.closeDropdown(listContainer, event); 4705 } 4706 }); 4707 listContainer.addEventListener('mouseover', function (event) { 4708 if (!event.target.parentElement.classList.contains('active')) { 4709 event.target.classList.add('hovered'); 4710 event.target.style.backgroundColor = '#fff !important'; 4711 } 4712 }); 4713 listContainer.addEventListener('mouseout', function (event) { 4714 event.target.classList.remove('hovered'); 4715 }); 4716 if (!this.$props.showSelectionsCount) { 4717 var mdbSelectInstance = (_b = this.$children) === null || _b === void 0 ? void 0 : _b[0]; 4718 if (mdbSelectInstance && mdbSelectInstance.checkNumberOfSelected) { 4719 mdbSelectInstance.checkNumberOfSelected = function () { 4720 this.inputText = this.multiTexts; 4721 }; 4722 } 4723 } 4724 var observeDropdown = function (el) { 4725 if (el._alreadyObserved) 4726 return; 4727 el._alreadyObserved = true; 4728 var lastState = null; 4729 var observer = new MutationObserver(function () { 4730 var isHidden = el.style.display === "none"; 4731 var newState = isHidden ? "hidden" : "visible"; 4732 var list = el.querySelector('ul'); 4733 if (newState !== lastState) { 4734 lastState = newState; 4735 if (newState === "hidden") { 4736 _this.$emit("blur"); 4737 } 4738 } 4739 if (!isHidden && list) { 4740 list.classList.add("no-hover-on-open"); 4741 var enableHover_1 = function () { 4742 list.classList.remove("no-hover-on-open"); 4743 list.removeEventListener('mousemove', enableHover_1); 4744 }; 4745 list.addEventListener('mousemove', enableHover_1); 4746 } 4747 }); 4748 observer.observe(el, { 4749 attributes: true, 4750 attributeFilter: ["style"] 4751 }); 4752 }; 4753 this.$el.querySelectorAll(".select-dropdown") 4754 .forEach(function (el) { return observeDropdown(el); }); 4755 var multiselectDiv = this.$el.querySelector('div[aria-multiselectable="true"]'); 4756 if (multiselectDiv) { 4757 multiselectDiv.removeAttribute("aria-multiselectable"); 4758 listContainer.setAttribute("aria-multiselectable", "true"); 4759 } 4760 var observer = new MutationObserver(function (mutationList) { 4761 mutationList.forEach(function (mutation) { 4762 if (mutation.attributeName === "class" && 4763 mutation.target instanceof Element && 4764 mutation.target.classList.contains("focused")) { 4765 input.setAttribute('aria-activedescendant', mutation.target.id); 4766 } 4767 }); 4768 }); 4769 observer.observe(listContainer, { attributes: true, subtree: true, attributeFilter: ["class"] }); 4770 } 4771 }); 4772 }; 4773 Accessibility.AccessibilityUtils.makeMdbSelectsAccessible(); 4774 this.initForm(); 4775 } 4776 return SelectComponent; 4777 }()); 4778 SelectComponent_1.SelectComponent = SelectComponent; 4779})(SelectComponent || (SelectComponent = {})); 4780Smile.createNamespace(Smile.Feature, "Smile.Feature.SelectComponent"); 4781Smile.Feature.SelectComponent = new SelectComponent.SelectComponent(); 4782//# sourceMappingURL=DpSelectListComponent.js.map; 4783var TooltipComponent; 4784(function (TooltipComponent_1) { 4785 var TooltipComponent = (function () { 4786 function TooltipComponent() { 4787 var _this = this; 4788 this.initForm = function () { 4789 Vue.use(vuelidate.default); 4790 Vue.use(Vuex); 4791 _this.TooltipComponent = Vue.component('dp-tooltip', { 4792 template: "<mdb-tooltip ref=\"tooltip\" material :trigger=\"resolvedTrigger\" :options=\"tooltipOptions\" class=\"dp-tooltip\">
4792\n <span slot=\"tip\">\n <div class=\"smile-tooltip dp-tooltip-content-container\">\n <div class=\"tooltipInner dp-tooltip-inner\">\n <div role=\"tooltip\" class=\"tooltipContent dp-tooltip-content\" aria-live=\"polite\" v-html=\"tooltipText\"></div>\n </div>\n </div>\n </span>\n <span slot=\"reference\" :class=\"referenceClass\" role=\"button\" tabindex=\"0\">\n <slot name=\"reference\">\n <i :class=\"iconClass\"></i><span v-if=\"label\">{{ label }}</span>\n </slot>\n </span>\n </mdb-tooltip>", 4793 inheritAttrs: false, 4794 store: null, 4795 components: { 4796 mdbTooltip: mdbvue.mdbTooltip 4797 }, 4798 computed: { 4799 tooltipText: function () { 4800 return this.text || this.$attrs.content || ''; 4801 }, 4802 resolvedTrigger: function () { 4803 return this.trigger || this.$attrs.trigger || 'hover'; 4804 }, 4805 tooltipOptions: function () { 4806 var options = { 4807 placement: this.placement || this.$attrs.placement || 'top' 4808 }; 4809 var resolvedOffset = this.offset || this.$attrs.offset; 4810 if (resolvedOffset) { 4811 options.offset = resolvedOffset; 4812 } 4813 return options; 4814 }, 4815 referenceClass: function () { 4816 return this.className || this.$attrs['extra-css-classes'] || ''; 4817 } 4818 }, 4819 beforeMount: function () { 4820 }, 4821 props: { 4822 text: { type: String, default: '' }, 4823 placement: { type: String, default: 'top' }, 4824 offset: { type: [String, Number], default: null }, 4825 trigger: { type: String, default: 'hover' }, 4826 iconClass: { type: String, default: 'fas fa-info-circle pr-2' }, 4827 label: { type: String, default: '' }, 4828 className: { type: String, default: '' } 4829 }, 4830 methods: { 4831 hideTootTip: function (event) { 4832 var refs = this.$refs; 4833 refs.tooltip.doClose(); 4834 }, 4835 showTootTip: function (event) { 4836 var refs = this.$refs; 4837 refs.tooltip.doShow(); 4838 } 4839 }, 4840 mounted: function () { 4841 var that = this; 4842 var refs = this.$refs; 4843 var tooltipElement = refs.tooltip.$el; 4844 tooltipElement.addEventListener('focusin', function (e) { 4845 that.showTootTip(e); 4846 }, true); 4847 tooltipElement.addEventListener('focusout', function (e) { 4848 that.hideTootTip(e); 4849 }, true); 4850 tooltipElement.addEventListener('keydown', function (e) { 4851 var event = e; 4852 if (event.key === "Escape") { 4853 that.hideTootTip(e); 4854 } 4855 }, true); 4856 } 4857 }); 4858 }; 4859 Accessibility.AccessibilityUtils.makeMdbTooltipAccessible(); 4860 this.initForm(); 4861 } 4862 return TooltipComponent; 4863 }()); 4864 TooltipComponent_1.TooltipComponent = TooltipComponent; 4865})(TooltipComponent || (TooltipComponent = {})); 4866Smile.createNamespace(Smile.Feature, "Smile.Feature.TooltipComponent"); 4867Smile.Feature.TooltipComponent = new TooltipComponent.TooltipComponent(); 4868//# sourceMappingURL=DpTooltipComponent.js.map; 4869var Platform; 4870(function (Platform) { 4871 var PlatformEvents = (function () { 4872 function PlatformEvents() { 4873 } 4874 PlatformEvents.Submit = "submit"; 4875 return PlatformEvents; 4876 }()); 4877 Platform.PlatformEvents = PlatformEvents; 4878})(Platform || (Platform = {})); 4879//# sourceMappingURL=PlatformEvents.js.map;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.