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