UNPKG

tethysfaceid

Version:

1 lines 53.9 kB
{"ast":null,"code":"import { Config } from 'common/Config';\nimport { FaceTecSDK } from 'core-sdk/FaceTecSDK.js/FaceTecSDK';\nimport { FaceMapAppUtillities } from './faceMapAppUtilities';\nexport var ThemeHelpers = function ThemeHelpers() {\n  var currentTheme = \"Sample Bank\";\n  var themeResourceDirectory = \"resources/themes/\";\n\n  function setAppTheme(theme) {\n    Config.currentCustomization = getCustomizationForTheme(theme);\n    var currentLowLightCustomization = getLowLightCustomizationForTheme(theme);\n    FaceTecSDK.setCustomization(Config.currentCustomization);\n    FaceTecSDK.setLowLightCustomization(currentLowLightCustomization);\n  }\n\n  function getCustomizationForTheme() {\n    var currentCustomization = new FaceTecSDK.FaceTecCustomization();\n\n    if (FaceMapAppUtillities.isLikelyMobileDevice()) {\n      // using strings with breaks for Ready Screen text on mobile devices\n      currentCustomization.guidanceCustomization.readyScreenHeaderAttributedString = \"Get Ready For<br/>Your Video Selfie\";\n      currentCustomization.guidanceCustomization.readyScreenSubtextAttributedString = \"Please Frame Your Face In<br/>The Small Oval, Then The Big Oval\";\n    }\n\n    var retryScreenSlideshowImages = [themeResourceDirectory + \"FaceTec_ideal_1.png\", themeResourceDirectory + \"FaceTec_ideal_2.png\", themeResourceDirectory + \"FaceTec_ideal_3.png\", themeResourceDirectory + \"FaceTec_ideal_4.png\", themeResourceDirectory + \"FaceTec_ideal_5.png\"];\n    var primaryColor = \"#03224c\";\n    var primaryColorDark = \"#000025\";\n    var backgroundColor = \"white\"; // navy\n\n    var font = \"'Source Sans Pro', Helvetica, sans-serif\"; // Initial Loading Animation Customization\n\n    currentCustomization.initialLoadingAnimationCustomization.customAnimation = null;\n    currentCustomization.initialLoadingAnimationCustomization.animationRelativeScale = 1.0;\n    currentCustomization.initialLoadingAnimationCustomization.backgroundColor = primaryColor;\n    currentCustomization.initialLoadingAnimationCustomization.foregroundColor = backgroundColor;\n    currentCustomization.initialLoadingAnimationCustomization.messageTextColor = primaryColor;\n    currentCustomization.initialLoadingAnimationCustomization.messageFont = font;\n    currentCustomization.initialLoadingAnimationCustomization.messageTextSpacing = \"normal\";\n    currentCustomization.initialLoadingAnimationCustomization.messageTextSize = \"16px\"; // Overlay Customization\n\n    currentCustomization.overlayCustomization.backgroundColor = backgroundColor;\n    currentCustomization.overlayCustomization.showBrandingImage = true;\n    currentCustomization.overlayCustomization.brandingImage = themeResourceDirectory + \"sample-bank/sample_bank_logo.png\"; // Guidance Customization\n\n    currentCustomization.guidanceCustomization.backgroundColors = backgroundColor;\n    currentCustomization.guidanceCustomization.foregroundColor = primaryColor;\n    currentCustomization.guidanceCustomization.headerFont = font;\n    currentCustomization.guidanceCustomization.headerTextSpacing = \"normal\";\n    currentCustomization.guidanceCustomization.headerTextSize = \"20px\";\n    currentCustomization.guidanceCustomization.subtextFont = font;\n    currentCustomization.guidanceCustomization.subtextTextSpacing = \"normal\";\n    currentCustomization.guidanceCustomization.subtextTextSize = \"12px\";\n    currentCustomization.guidanceCustomization.buttonFont = font;\n    currentCustomization.guidanceCustomization.buttonTextSpacing = \"normal\";\n    currentCustomization.guidanceCustomization.buttonTextSize = \"16px\";\n    currentCustomization.guidanceCustomization.buttonTextNormalColor = backgroundColor;\n    currentCustomization.guidanceCustomization.buttonBackgroundNormalColor = primaryColor;\n    currentCustomization.guidanceCustomization.buttonTextHighlightColor = backgroundColor;\n    currentCustomization.guidanceCustomization.buttonBackgroundHighlightColor = primaryColorDark;\n    currentCustomization.guidanceCustomization.buttonTextDisabledColor = \"rgba(29, 23, 79, 0.3)\";\n    currentCustomization.guidanceCustomization.buttonBackgroundDisabledColor = primaryColor;\n    currentCustomization.guidanceCustomization.buttonBorderColor = backgroundColor;\n    currentCustomization.guidanceCustomization.buttonBorderWidth = \"2px\";\n    currentCustomization.guidanceCustomization.buttonCornerRadius = \"2px\";\n    currentCustomization.guidanceCustomization.buttonRelativeWidth = \"1.0\";\n    currentCustomization.guidanceCustomization.buttonRelativeWidthOnDesktop = \"0.5\";\n    currentCustomization.guidanceCustomization.readyScreenOvalFillColor = \"rgba(255, 255, 255, 0.2)\";\n    currentCustomization.guidanceCustomization.readyScreenTextBackgroundColor = backgroundColor;\n    currentCustomization.guidanceCustomization.readyScreenTextBackgroundCornerRadius = \"2px\";\n    currentCustomization.guidanceCustomization.retryScreenImageBorderColor = primaryColor;\n    currentCustomization.guidanceCustomization.retryScreenImageBorderWidth = \"2px\";\n    currentCustomization.guidanceCustomization.retryScreenImageCornerRadius = \"2px\";\n    currentCustomization.guidanceCustomization.retryScreenOvalStrokeColor = primaryColor;\n    currentCustomization.guidanceCustomization.retryScreenSlideshowImages = retryScreenSlideshowImages;\n    currentCustomization.guidanceCustomization.retryScreenSlideshowInterval = \"1500ms\";\n    currentCustomization.guidanceCustomization.enableRetryScreenSlideshowShuffle = false;\n    currentCustomization.guidanceCustomization.enableRetryScreenBulletedInstructions = true;\n    currentCustomization.guidanceCustomization.cameraPermissionsScreenImage = themeResourceDirectory + \"sample-bank/camera_white_navy.png\"; // ID Scan Customization\n\n    currentCustomization.idScanCustomization.showSelectionScreenBrandingImage = false;\n    currentCustomization.idScanCustomization.selectionScreenBrandingImage = \"\";\n    currentCustomization.idScanCustomization.selectionScreenBackgroundColors = backgroundColor;\n    currentCustomization.idScanCustomization.reviewScreenBackgroundColors = backgroundColor;\n    currentCustomization.idScanCustomization.captureScreenForegroundColor = backgroundColor;\n    currentCustomization.idScanCustomization.reviewScreenForegroundColor = backgroundColor;\n    currentCustomization.idScanCustomization.selectionScreenForegroundColor = primaryColor;\n    currentCustomization.idScanCustomization.headerFont = font;\n    currentCustomization.idScanCustomization.headerTextSpacing = \"normal\";\n    currentCustomization.idScanCustomization.headerTextSize = \"20px\";\n    currentCustomization.idScanCustomization.subtextFont = font;\n    currentCustomization.idScanCustomization.subtextTextSpacing = \"normal\";\n    currentCustomization.idScanCustomization.subtextTextSize = \"12px\";\n    currentCustomization.idScanCustomization.buttonFont = font;\n    currentCustomization.idScanCustomization.buttonTextSpacing = \"normal\";\n    currentCustomization.idScanCustomization.buttonTextSize = \"16px\";\n    currentCustomization.idScanCustomization.buttonTextNormalColor = backgroundColor;\n    currentCustomization.idScanCustomization.buttonBackgroundNormalColor = primaryColor;\n    currentCustomization.idScanCustomization.buttonTextHighlightColor = backgroundColor;\n    currentCustomization.idScanCustomization.buttonBackgroundHighlightColor = \"rgba(255, 255, 255, 0.8)\";\n    currentCustomization.idScanCustomization.buttonTextDisabledColor = \"rgba(29, 23, 79, 0.3)\";\n    currentCustomization.idScanCustomization.buttonBackgroundDisabledColor = primaryColor;\n    currentCustomization.idScanCustomization.buttonBorderColor = backgroundColor;\n    currentCustomization.idScanCustomization.buttonBorderWidth = \"2px\";\n    currentCustomization.idScanCustomization.buttonCornerRadius = \"2px\";\n    currentCustomization.idScanCustomization.buttonRelativeWidth = \"1.0\";\n    currentCustomization.idScanCustomization.buttonRelativeWidthOnDesktop = \"0.5\";\n    currentCustomization.idScanCustomization.captureScreenTextBackgroundColor = primaryColor;\n    currentCustomization.idScanCustomization.captureScreenTextBackgroundBorderColor = backgroundColor;\n    currentCustomization.idScanCustomization.captureScreenTextBackgroundBorderWidth = \"2px\";\n    currentCustomization.idScanCustomization.captureScreenTextBackgroundCornerRadius = \"2px\";\n    currentCustomization.idScanCustomization.reviewScreenTextBackgroundColor = primaryColor;\n    currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderColor = backgroundColor;\n    currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderWidth = \"2px\";\n    currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderCornerRadius = \"2px\";\n    currentCustomization.idScanCustomization.captureScreenBackgroundColor = backgroundColor;\n    currentCustomization.idScanCustomization.captureFrameStrokeColor = primaryColor;\n    currentCustomization.idScanCustomization.captureFrameStrokeWidth = \"2px\";\n    currentCustomization.idScanCustomization.captureFrameCornerRadius = \"12px\"; // Result Screen Customization\n\n    currentCustomization.resultScreenCustomization.backgroundColors = backgroundColor;\n    currentCustomization.resultScreenCustomization.foregroundColor = primaryColor;\n    currentCustomization.resultScreenCustomization.messageFont = font;\n    currentCustomization.resultScreenCustomization.messageTextSpacing = \"normal\";\n    currentCustomization.resultScreenCustomization.messageTextSize = \"16px\";\n    currentCustomization.resultScreenCustomization.activityIndicatorColor = primaryColor;\n    currentCustomization.resultScreenCustomization.customActivityIndicatorImage = themeResourceDirectory + \"sample-bank/activity_indicator_navy.png\";\n    currentCustomization.resultScreenCustomization.customActivityIndicatorRotationInterval = \"1s\";\n    currentCustomization.resultScreenCustomization.customActivityIndicatorAnimation = null;\n    currentCustomization.resultScreenCustomization.resultAnimationBackgroundColor = \"transparent\";\n    currentCustomization.resultScreenCustomization.resultAnimationForegroundColor = primaryColor;\n    currentCustomization.resultScreenCustomization.resultAnimationSuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n    currentCustomization.resultScreenCustomization.resultAnimationUnsuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n    currentCustomization.resultScreenCustomization.customResultAnimationSuccess = null;\n    currentCustomization.resultScreenCustomization.customResultAnimationUnsuccess = null;\n    currentCustomization.resultScreenCustomization.showUploadProgressBar = true;\n    currentCustomization.resultScreenCustomization.uploadProgressTrackColor = \"rgba(255, 255, 255, 0.2)\";\n    currentCustomization.resultScreenCustomization.uploadProgressFillColor = primaryColor;\n    currentCustomization.resultScreenCustomization.animationRelativeScale = 1.0; // Feedback Customization\n\n    currentCustomization.feedbackCustomization.backgroundColor = primaryColor;\n    currentCustomization.feedbackCustomization.textColor = backgroundColor;\n    currentCustomization.feedbackCustomization.textFont = font;\n    currentCustomization.feedbackCustomization.textSpacing = \"normal\";\n    currentCustomization.feedbackCustomization.textSize = \"18px\";\n    currentCustomization.feedbackCustomization.cornerRadius = \"2px\";\n    currentCustomization.feedbackCustomization.shadow = \"none\";\n    currentCustomization.feedbackCustomization.relativeWidth = \"1.0\";\n    currentCustomization.feedbackCustomization.relativeWidthOnDesktop = \"0.5\"; // Frame Customization\n\n    currentCustomization.frameCustomization.backgroundColor = backgroundColor;\n    currentCustomization.frameCustomization.borderColor = backgroundColor;\n    currentCustomization.frameCustomization.borderWidth = \"2px\";\n    currentCustomization.frameCustomization.borderCornerRadius = \"2px\";\n    currentCustomization.frameCustomization.shadow = \"none\"; // Oval Customization\n\n    currentCustomization.ovalCustomization.strokeColor = primaryColor;\n    currentCustomization.ovalCustomization.progressColor1 = \"rgba(255, 255, 255, 0.8)\";\n    currentCustomization.ovalCustomization.progressColor2 = \"rgba(255, 255, 255, 0.8)\"; // Cancel Button Customization\n\n    currentCustomization.cancelButtonCustomization.customImage = themeResourceDirectory + \"sample-bank/cancel_navy.png\";\n    currentCustomization.cancelButtonCustomization.location = FaceTecSDK.FaceTecCancelButtonLocation.TopLeft;\n    return currentCustomization;\n  }\n\n  function getLowLightCustomizationForTheme(theme) {\n    var currentLowLightCustomization = getCustomizationForTheme(theme);\n    var retryScreenSlideshowImages = [themeResourceDirectory + \"FaceTec_ideal_1.png\", themeResourceDirectory + \"FaceTec_ideal_2.png\", themeResourceDirectory + \"FaceTec_ideal_3.png\", themeResourceDirectory + \"FaceTec_ideal_4.png\", themeResourceDirectory + \"FaceTec_ideal_5.png\"];\n    var primaryColor = \"white\";\n    var backgroundColor = \"rgb(29, 23, 79)\"; // navy\n    // Overlay Customization\n\n    currentLowLightCustomization.overlayCustomization.brandingImage = themeResourceDirectory + \"sample-bank/sample_bank_logo.png\"; // Guidance Customization\n\n    currentLowLightCustomization.guidanceCustomization.foregroundColor = backgroundColor;\n    currentLowLightCustomization.guidanceCustomization.buttonTextNormalColor = primaryColor;\n    currentLowLightCustomization.guidanceCustomization.buttonBackgroundNormalColor = backgroundColor;\n    currentLowLightCustomization.guidanceCustomization.buttonTextHighlightColor = primaryColor;\n    currentLowLightCustomization.guidanceCustomization.buttonBackgroundHighlightColor = \"rgba(29, 23, 79, 0.8)\";\n    currentLowLightCustomization.guidanceCustomization.buttonTextDisabledColor = \"rgba(255, 255, 255, 0.3)\";\n    currentLowLightCustomization.guidanceCustomization.buttonBackgroundDisabledColor = backgroundColor;\n    currentLowLightCustomization.guidanceCustomization.buttonBorderColor = backgroundColor;\n    currentLowLightCustomization.guidanceCustomization.readyScreenOvalFillColor = \"rgba(255, 255, 255, 0.2)\";\n    currentLowLightCustomization.guidanceCustomization.readyScreenTextBackgroundColor = primaryColor;\n    currentLowLightCustomization.guidanceCustomization.retryScreenImageBorderColor = backgroundColor;\n    currentLowLightCustomization.guidanceCustomization.retryScreenOvalStrokeColor = primaryColor;\n    currentLowLightCustomization.guidanceCustomization.retryScreenSlideshowImages = retryScreenSlideshowImages; // ID Scan Customization\n\n    currentLowLightCustomization.idScanCustomization.selectionScreenBrandingImage = \"\";\n    currentLowLightCustomization.idScanCustomization.captureScreenForegroundColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.reviewScreenForegroundColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.selectionScreenForegroundColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.buttonTextNormalColor = primaryColor;\n    currentLowLightCustomization.idScanCustomization.buttonBackgroundNormalColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.buttonTextHighlightColor = primaryColor;\n    currentLowLightCustomization.idScanCustomization.buttonBackgroundHighlightColor = \"rgba(29, 23, 79, 0.8)\";\n    currentLowLightCustomization.idScanCustomization.buttonTextDisabledColor = \"rgba(255, 255, 255, 0.3)\";\n    currentLowLightCustomization.idScanCustomization.buttonBackgroundDisabledColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.buttonBorderColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.captureScreenTextBackgroundColor = primaryColor;\n    currentLowLightCustomization.idScanCustomization.captureScreenTextBackgroundBorderColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.reviewScreenTextBackgroundColor = primaryColor;\n    currentLowLightCustomization.idScanCustomization.reviewScreenTextBackgroundBorderColor = backgroundColor;\n    currentLowLightCustomization.idScanCustomization.captureFrameStrokeColor = primaryColor; // Result Screen Customization\n\n    currentLowLightCustomization.resultScreenCustomization.foregroundColor = backgroundColor;\n    currentLowLightCustomization.resultScreenCustomization.activityIndicatorColor = backgroundColor;\n    currentLowLightCustomization.resultScreenCustomization.customActivityIndicatorImage = themeResourceDirectory + \"sample-bank/activity_indicator_navy.png\";\n    currentLowLightCustomization.resultScreenCustomization.customActivityIndicatorAnimation = null;\n    currentLowLightCustomization.resultScreenCustomization.resultAnimationBackgroundColor = \"transparent\";\n    currentLowLightCustomization.resultScreenCustomization.resultAnimationForegroundColor = backgroundColor;\n    currentLowLightCustomization.resultScreenCustomization.resultAnimationSuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n    currentLowLightCustomization.resultScreenCustomization.resultAnimationUnsuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n    currentLowLightCustomization.resultScreenCustomization.customResultAnimationSuccess = null;\n    currentLowLightCustomization.resultScreenCustomization.customResultAnimationUnsuccess = null;\n    currentLowLightCustomization.resultScreenCustomization.uploadProgressTrackColor = \"rgba(0, 0, 0, 0.2)\";\n    currentLowLightCustomization.resultScreenCustomization.uploadProgressFillColor = backgroundColor; // Feedback Customization\n\n    currentLowLightCustomization.feedbackCustomization.backgroundColor = backgroundColor;\n    currentLowLightCustomization.feedbackCustomization.textColor = primaryColor; // Frame Customization\n\n    currentLowLightCustomization.frameCustomization.borderColor = backgroundColor; // Oval Customization\n\n    currentLowLightCustomization.ovalCustomization.strokeColor = backgroundColor;\n    currentLowLightCustomization.ovalCustomization.progressColor1 = \"rgba(29, 23, 79, 0.8)\";\n    currentLowLightCustomization.ovalCustomization.progressColor2 = \"rgba(29, 23, 79, 0.8)\"; // Cancel Button Customization\n\n    currentLowLightCustomization.cancelButtonCustomization.customImage = themeResourceDirectory + \"sample-bank/cancel_navy.png\";\n    return currentLowLightCustomization;\n  }\n\n  setAppTheme();\n};\n_c = ThemeHelpers;\n\nvar _c;\n\n$RefreshReg$(_c, \"ThemeHelpers\");","map":{"version":3,"sources":["/Users/dhrumil1/Documents/Tethy/online-verification/components/LivenessCheck/utilities/themeHelpers.js"],"names":["Config","FaceTecSDK","FaceMapAppUtillities","ThemeHelpers","currentTheme","themeResourceDirectory","setAppTheme","theme","currentCustomization","getCustomizationForTheme","currentLowLightCustomization","getLowLightCustomizationForTheme","setCustomization","setLowLightCustomization","FaceTecCustomization","isLikelyMobileDevice","guidanceCustomization","readyScreenHeaderAttributedString","readyScreenSubtextAttributedString","retryScreenSlideshowImages","primaryColor","primaryColorDark","backgroundColor","font","initialLoadingAnimationCustomization","customAnimation","animationRelativeScale","foregroundColor","messageTextColor","messageFont","messageTextSpacing","messageTextSize","overlayCustomization","showBrandingImage","brandingImage","backgroundColors","headerFont","headerTextSpacing","headerTextSize","subtextFont","subtextTextSpacing","subtextTextSize","buttonFont","buttonTextSpacing","buttonTextSize","buttonTextNormalColor","buttonBackgroundNormalColor","buttonTextHighlightColor","buttonBackgroundHighlightColor","buttonTextDisabledColor","buttonBackgroundDisabledColor","buttonBorderColor","buttonBorderWidth","buttonCornerRadius","buttonRelativeWidth","buttonRelativeWidthOnDesktop","readyScreenOvalFillColor","readyScreenTextBackgroundColor","readyScreenTextBackgroundCornerRadius","retryScreenImageBorderColor","retryScreenImageBorderWidth","retryScreenImageCornerRadius","retryScreenOvalStrokeColor","retryScreenSlideshowInterval","enableRetryScreenSlideshowShuffle","enableRetryScreenBulletedInstructions","cameraPermissionsScreenImage","idScanCustomization","showSelectionScreenBrandingImage","selectionScreenBrandingImage","selectionScreenBackgroundColors","reviewScreenBackgroundColors","captureScreenForegroundColor","reviewScreenForegroundColor","selectionScreenForegroundColor","captureScreenTextBackgroundColor","captureScreenTextBackgroundBorderColor","captureScreenTextBackgroundBorderWidth","captureScreenTextBackgroundCornerRadius","reviewScreenTextBackgroundColor","reviewScreenTextBackgroundBorderColor","reviewScreenTextBackgroundBorderWidth","reviewScreenTextBackgroundBorderCornerRadius","captureScreenBackgroundColor","captureFrameStrokeColor","captureFrameStrokeWidth","captureFrameCornerRadius","resultScreenCustomization","activityIndicatorColor","customActivityIndicatorImage","customActivityIndicatorRotationInterval","customActivityIndicatorAnimation","resultAnimationBackgroundColor","resultAnimationForegroundColor","resultAnimationSuccessBackgroundImage","resultAnimationUnsuccessBackgroundImage","customResultAnimationSuccess","customResultAnimationUnsuccess","showUploadProgressBar","uploadProgressTrackColor","uploadProgressFillColor","feedbackCustomization","textColor","textFont","textSpacing","textSize","cornerRadius","shadow","relativeWidth","relativeWidthOnDesktop","frameCustomization","borderColor","borderWidth","borderCornerRadius","ovalCustomization","strokeColor","progressColor1","progressColor2","cancelButtonCustomization","customImage","location","FaceTecCancelButtonLocation","TopLeft"],"mappings":"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","sourcesContent":["import { Config } from 'common/Config';\nimport { FaceTecSDK } from 'core-sdk/FaceTecSDK.js/FaceTecSDK';\nimport { FaceMapAppUtillities } from './faceMapAppUtilities';\n\nexport const ThemeHelpers = () => {\n    var currentTheme = \"Sample Bank\";\n    var themeResourceDirectory = \"resources/themes/\";\n    function setAppTheme(theme) {\n        Config.currentCustomization = getCustomizationForTheme(theme);\n        var currentLowLightCustomization = getLowLightCustomizationForTheme(theme);\n        FaceTecSDK.setCustomization(Config.currentCustomization);\n        FaceTecSDK.setLowLightCustomization(currentLowLightCustomization);\n    }\n    function getCustomizationForTheme() {\n        var currentCustomization = new FaceTecSDK.FaceTecCustomization();\n        if (FaceMapAppUtillities.isLikelyMobileDevice()) {\n            // using strings with breaks for Ready Screen text on mobile devices\n            currentCustomization.guidanceCustomization.readyScreenHeaderAttributedString = \"Get Ready For<br/>Your Video Selfie\";\n            currentCustomization.guidanceCustomization.readyScreenSubtextAttributedString = \"Please Frame Your Face In<br/>The Small Oval, Then The Big Oval\";\n        }\n        var retryScreenSlideshowImages = [themeResourceDirectory + \"FaceTec_ideal_1.png\", themeResourceDirectory + \"FaceTec_ideal_2.png\", themeResourceDirectory + \"FaceTec_ideal_3.png\", themeResourceDirectory + \"FaceTec_ideal_4.png\", themeResourceDirectory + \"FaceTec_ideal_5.png\"];\n\n        var primaryColor = \"#03224c\";\n        var primaryColorDark = \"#000025\";\n        var backgroundColor = \"white\"; // navy\n        var font = \"'Source Sans Pro', Helvetica, sans-serif\";\n        // Initial Loading Animation Customization\n        currentCustomization.initialLoadingAnimationCustomization.customAnimation = null;\n        currentCustomization.initialLoadingAnimationCustomization.animationRelativeScale = 1.0;\n        currentCustomization.initialLoadingAnimationCustomization.backgroundColor = primaryColor;\n        currentCustomization.initialLoadingAnimationCustomization.foregroundColor = backgroundColor;\n        currentCustomization.initialLoadingAnimationCustomization.messageTextColor = primaryColor;\n        currentCustomization.initialLoadingAnimationCustomization.messageFont = font;\n        currentCustomization.initialLoadingAnimationCustomization.messageTextSpacing = \"normal\";\n        currentCustomization.initialLoadingAnimationCustomization.messageTextSize = \"16px\";\n        // Overlay Customization\n        currentCustomization.overlayCustomization.backgroundColor = backgroundColor;\n        currentCustomization.overlayCustomization.showBrandingImage = true;\n        currentCustomization.overlayCustomization.brandingImage = themeResourceDirectory + \"sample-bank/sample_bank_logo.png\";\n        // Guidance Customization\n        currentCustomization.guidanceCustomization.backgroundColors = backgroundColor;\n        currentCustomization.guidanceCustomization.foregroundColor = primaryColor;\n        currentCustomization.guidanceCustomization.headerFont = font;\n        currentCustomization.guidanceCustomization.headerTextSpacing = \"normal\";\n        currentCustomization.guidanceCustomization.headerTextSize = \"20px\";\n        currentCustomization.guidanceCustomization.subtextFont = font;\n        currentCustomization.guidanceCustomization.subtextTextSpacing = \"normal\";\n        currentCustomization.guidanceCustomization.subtextTextSize = \"12px\";\n        currentCustomization.guidanceCustomization.buttonFont = font;\n        currentCustomization.guidanceCustomization.buttonTextSpacing = \"normal\";\n        currentCustomization.guidanceCustomization.buttonTextSize = \"16px\";\n        currentCustomization.guidanceCustomization.buttonTextNormalColor = backgroundColor;\n        currentCustomization.guidanceCustomization.buttonBackgroundNormalColor = primaryColor;\n        currentCustomization.guidanceCustomization.buttonTextHighlightColor = backgroundColor;\n        currentCustomization.guidanceCustomization.buttonBackgroundHighlightColor = primaryColorDark;\n        currentCustomization.guidanceCustomization.buttonTextDisabledColor = \"rgba(29, 23, 79, 0.3)\";\n        currentCustomization.guidanceCustomization.buttonBackgroundDisabledColor = primaryColor;\n        currentCustomization.guidanceCustomization.buttonBorderColor = backgroundColor;\n        currentCustomization.guidanceCustomization.buttonBorderWidth = \"2px\";\n        currentCustomization.guidanceCustomization.buttonCornerRadius = \"2px\";\n        currentCustomization.guidanceCustomization.buttonRelativeWidth = \"1.0\";\n        currentCustomization.guidanceCustomization.buttonRelativeWidthOnDesktop = \"0.5\";\n        currentCustomization.guidanceCustomization.readyScreenOvalFillColor = \"rgba(255, 255, 255, 0.2)\";\n        currentCustomization.guidanceCustomization.readyScreenTextBackgroundColor = backgroundColor;\n        currentCustomization.guidanceCustomization.readyScreenTextBackgroundCornerRadius = \"2px\";\n        currentCustomization.guidanceCustomization.retryScreenImageBorderColor = primaryColor;\n        currentCustomization.guidanceCustomization.retryScreenImageBorderWidth = \"2px\";\n        currentCustomization.guidanceCustomization.retryScreenImageCornerRadius = \"2px\";\n        currentCustomization.guidanceCustomization.retryScreenOvalStrokeColor = primaryColor;\n        currentCustomization.guidanceCustomization.retryScreenSlideshowImages = retryScreenSlideshowImages;\n        currentCustomization.guidanceCustomization.retryScreenSlideshowInterval = \"1500ms\";\n        currentCustomization.guidanceCustomization.enableRetryScreenSlideshowShuffle = false;\n        currentCustomization.guidanceCustomization.enableRetryScreenBulletedInstructions = true;\n        currentCustomization.guidanceCustomization.cameraPermissionsScreenImage = themeResourceDirectory + \"sample-bank/camera_white_navy.png\";\n        // ID Scan Customization\n        currentCustomization.idScanCustomization.showSelectionScreenBrandingImage = false;\n        currentCustomization.idScanCustomization.selectionScreenBrandingImage = \"\";\n        currentCustomization.idScanCustomization.selectionScreenBackgroundColors = backgroundColor;\n        currentCustomization.idScanCustomization.reviewScreenBackgroundColors = backgroundColor;\n        currentCustomization.idScanCustomization.captureScreenForegroundColor = backgroundColor;\n        currentCustomization.idScanCustomization.reviewScreenForegroundColor = backgroundColor;\n        currentCustomization.idScanCustomization.selectionScreenForegroundColor = primaryColor;\n        currentCustomization.idScanCustomization.headerFont = font;\n        currentCustomization.idScanCustomization.headerTextSpacing = \"normal\";\n        currentCustomization.idScanCustomization.headerTextSize = \"20px\";\n        currentCustomization.idScanCustomization.subtextFont = font;\n        currentCustomization.idScanCustomization.subtextTextSpacing = \"normal\";\n        currentCustomization.idScanCustomization.subtextTextSize = \"12px\";\n        currentCustomization.idScanCustomization.buttonFont = font;\n        currentCustomization.idScanCustomization.buttonTextSpacing = \"normal\";\n        currentCustomization.idScanCustomization.buttonTextSize = \"16px\";\n        currentCustomization.idScanCustomization.buttonTextNormalColor = backgroundColor;\n        currentCustomization.idScanCustomization.buttonBackgroundNormalColor = primaryColor;\n        currentCustomization.idScanCustomization.buttonTextHighlightColor = backgroundColor;\n        currentCustomization.idScanCustomization.buttonBackgroundHighlightColor = \"rgba(255, 255, 255, 0.8)\";\n        currentCustomization.idScanCustomization.buttonTextDisabledColor = \"rgba(29, 23, 79, 0.3)\";\n        currentCustomization.idScanCustomization.buttonBackgroundDisabledColor = primaryColor;\n        currentCustomization.idScanCustomization.buttonBorderColor = backgroundColor;\n        currentCustomization.idScanCustomization.buttonBorderWidth = \"2px\";\n        currentCustomization.idScanCustomization.buttonCornerRadius = \"2px\";\n        currentCustomization.idScanCustomization.buttonRelativeWidth = \"1.0\";\n        currentCustomization.idScanCustomization.buttonRelativeWidthOnDesktop = \"0.5\";\n        currentCustomization.idScanCustomization.captureScreenTextBackgroundColor = primaryColor;\n        currentCustomization.idScanCustomization.captureScreenTextBackgroundBorderColor = backgroundColor;\n        currentCustomization.idScanCustomization.captureScreenTextBackgroundBorderWidth = \"2px\";\n        currentCustomization.idScanCustomization.captureScreenTextBackgroundCornerRadius = \"2px\";\n        currentCustomization.idScanCustomization.reviewScreenTextBackgroundColor = primaryColor;\n        currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderColor = backgroundColor;\n        currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderWidth = \"2px\";\n        currentCustomization.idScanCustomization.reviewScreenTextBackgroundBorderCornerRadius = \"2px\";\n        currentCustomization.idScanCustomization.captureScreenBackgroundColor = backgroundColor;\n        currentCustomization.idScanCustomization.captureFrameStrokeColor = primaryColor;\n        currentCustomization.idScanCustomization.captureFrameStrokeWidth = \"2px\";\n        currentCustomization.idScanCustomization.captureFrameCornerRadius = \"12px\";\n        // Result Screen Customization\n        currentCustomization.resultScreenCustomization.backgroundColors = backgroundColor;\n        currentCustomization.resultScreenCustomization.foregroundColor = primaryColor;\n        currentCustomization.resultScreenCustomization.messageFont = font;\n        currentCustomization.resultScreenCustomization.messageTextSpacing = \"normal\";\n        currentCustomization.resultScreenCustomization.messageTextSize = \"16px\";\n        currentCustomization.resultScreenCustomization.activityIndicatorColor = primaryColor;\n        currentCustomization.resultScreenCustomization.customActivityIndicatorImage = themeResourceDirectory + \"sample-bank/activity_indicator_navy.png\";\n        currentCustomization.resultScreenCustomization.customActivityIndicatorRotationInterval = \"1s\";\n        currentCustomization.resultScreenCustomization.customActivityIndicatorAnimation = null;\n        currentCustomization.resultScreenCustomization.resultAnimationBackgroundColor = \"transparent\";\n        currentCustomization.resultScreenCustomization.resultAnimationForegroundColor = primaryColor;\n        currentCustomization.resultScreenCustomization.resultAnimationSuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n        currentCustomization.resultScreenCustomization.resultAnimationUnsuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n        currentCustomization.resultScreenCustomization.customResultAnimationSuccess = null;\n        currentCustomization.resultScreenCustomization.customResultAnimationUnsuccess = null;\n        currentCustomization.resultScreenCustomization.showUploadProgressBar = true;\n        currentCustomization.resultScreenCustomization.uploadProgressTrackColor = \"rgba(255, 255, 255, 0.2)\";\n        currentCustomization.resultScreenCustomization.uploadProgressFillColor = primaryColor;\n        currentCustomization.resultScreenCustomization.animationRelativeScale = 1.0;\n        // Feedback Customization\n        currentCustomization.feedbackCustomization.backgroundColor = primaryColor;\n        currentCustomization.feedbackCustomization.textColor = backgroundColor;\n        currentCustomization.feedbackCustomization.textFont = font;\n        currentCustomization.feedbackCustomization.textSpacing = \"normal\";\n        currentCustomization.feedbackCustomization.textSize = \"18px\";\n        currentCustomization.feedbackCustomization.cornerRadius = \"2px\";\n        currentCustomization.feedbackCustomization.shadow = \"none\";\n        currentCustomization.feedbackCustomization.relativeWidth = \"1.0\";\n        currentCustomization.feedbackCustomization.relativeWidthOnDesktop = \"0.5\";\n        // Frame Customization\n        currentCustomization.frameCustomization.backgroundColor = backgroundColor;\n        currentCustomization.frameCustomization.borderColor = backgroundColor;\n        currentCustomization.frameCustomization.borderWidth = \"2px\";\n        currentCustomization.frameCustomization.borderCornerRadius = \"2px\";\n        currentCustomization.frameCustomization.shadow = \"none\";\n        // Oval Customization\n        currentCustomization.ovalCustomization.strokeColor = primaryColor;\n        currentCustomization.ovalCustomization.progressColor1 = \"rgba(255, 255, 255, 0.8)\";\n        currentCustomization.ovalCustomization.progressColor2 = \"rgba(255, 255, 255, 0.8)\";\n        // Cancel Button Customization\n        currentCustomization.cancelButtonCustomization.customImage = themeResourceDirectory + \"sample-bank/cancel_navy.png\";\n        currentCustomization.cancelButtonCustomization.location = FaceTecSDK.FaceTecCancelButtonLocation.TopLeft;\n        return currentCustomization;\n    }\n    function getLowLightCustomizationForTheme(theme) {\n        var currentLowLightCustomization = getCustomizationForTheme(theme);\n        var retryScreenSlideshowImages = [themeResourceDirectory + \"FaceTec_ideal_1.png\", themeResourceDirectory + \"FaceTec_ideal_2.png\", themeResourceDirectory + \"FaceTec_ideal_3.png\", themeResourceDirectory + \"FaceTec_ideal_4.png\", themeResourceDirectory + \"FaceTec_ideal_5.png\"];\n\n        var primaryColor = \"white\";\n        var backgroundColor = \"rgb(29, 23, 79)\"; // navy\n        // Overlay Customization\n        currentLowLightCustomization.overlayCustomization.brandingImage = themeResourceDirectory + \"sample-bank/sample_bank_logo.png\";\n        // Guidance Customization\n        currentLowLightCustomization.guidanceCustomization.foregroundColor = backgroundColor;\n        currentLowLightCustomization.guidanceCustomization.buttonTextNormalColor = primaryColor;\n        currentLowLightCustomization.guidanceCustomization.buttonBackgroundNormalColor = backgroundColor;\n        currentLowLightCustomization.guidanceCustomization.buttonTextHighlightColor = primaryColor;\n        currentLowLightCustomization.guidanceCustomization.buttonBackgroundHighlightColor = \"rgba(29, 23, 79, 0.8)\";\n        currentLowLightCustomization.guidanceCustomization.buttonTextDisabledColor = \"rgba(255, 255, 255, 0.3)\";\n        currentLowLightCustomization.guidanceCustomization.buttonBackgroundDisabledColor = backgroundColor;\n        currentLowLightCustomization.guidanceCustomization.buttonBorderColor = backgroundColor;\n        currentLowLightCustomization.guidanceCustomization.readyScreenOvalFillColor = \"rgba(255, 255, 255, 0.2)\";\n        currentLowLightCustomization.guidanceCustomization.readyScreenTextBackgroundColor = primaryColor;\n        currentLowLightCustomization.guidanceCustomization.retryScreenImageBorderColor = backgroundColor;\n        currentLowLightCustomization.guidanceCustomization.retryScreenOvalStrokeColor = primaryColor;\n        currentLowLightCustomization.guidanceCustomization.retryScreenSlideshowImages = retryScreenSlideshowImages;\n        // ID Scan Customization\n        currentLowLightCustomization.idScanCustomization.selectionScreenBrandingImage = \"\";\n        currentLowLightCustomization.idScanCustomization.captureScreenForegroundColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.reviewScreenForegroundColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.selectionScreenForegroundColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.buttonTextNormalColor = primaryColor;\n        currentLowLightCustomization.idScanCustomization.buttonBackgroundNormalColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.buttonTextHighlightColor = primaryColor;\n        currentLowLightCustomization.idScanCustomization.buttonBackgroundHighlightColor = \"rgba(29, 23, 79, 0.8)\";\n        currentLowLightCustomization.idScanCustomization.buttonTextDisabledColor = \"rgba(255, 255, 255, 0.3)\";\n        currentLowLightCustomization.idScanCustomization.buttonBackgroundDisabledColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.buttonBorderColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.captureScreenTextBackgroundColor = primaryColor;\n        currentLowLightCustomization.idScanCustomization.captureScreenTextBackgroundBorderColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.reviewScreenTextBackgroundColor = primaryColor;\n        currentLowLightCustomization.idScanCustomization.reviewScreenTextBackgroundBorderColor = backgroundColor;\n        currentLowLightCustomization.idScanCustomization.captureFrameStrokeColor = primaryColor;\n        // Result Screen Customization\n        currentLowLightCustomization.resultScreenCustomization.foregroundColor = backgroundColor;\n        currentLowLightCustomization.resultScreenCustomization.activityIndicatorColor = backgroundColor;\n        currentLowLightCustomization.resultScreenCustomization.customActivityIndicatorImage = themeResourceDirectory + \"sample-bank/activity_indicator_navy.png\";\n        currentLowLightCustomization.resultScreenCustomization.customActivityIndicatorAnimation = null;\n        currentLowLightCustomization.resultScreenCustomization.resultAnimationBackgroundColor = \"transparent\";\n        currentLowLightCustomization.resultScreenCustomization.resultAnimationForegroundColor = backgroundColor;\n        currentLowLightCustomization.resultScreenCustomization.resultAnimationSuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n        currentLowLightCustomization.resultScreenCustomization.resultAnimationUnsuccessBackgroundImage = themeResourceDirectory + \"sample-bank/reticle_navy.png\";\n        currentLowLightCustomization.resultScreenCustomization.customResultAnimationSuccess = null;\n        currentLowLightCustomization.resultScreenCustomization.customResultAnimationUnsuccess = null;\n        currentLowLightCustomization.resultScreenCustomization.uploadProgressTrackColor = \"rgba(0, 0, 0, 0.2)\";\n        currentLowLightCustomization.resultScreenCustomization.uploadProgressFillColor = backgroundColor;\n        // Feedback Customization\n        currentLowLightCustomization.feedbackCustomization.backgroundColor = backgroundColor;\n        currentLowLightCustomization.feedbackCustomization.textColor = primaryColor;\n        // Frame Customization\n        currentLowLightCustomization.frameCustomization.borderColor = backgroundColor;\n        // Oval Customization\n        currentLowLightCustomization.ovalCustomization.strokeColor = backgroundColor;\n        currentLowLightCustomization.ovalCustomization.progressColor1 = \"rgba(29, 23, 79, 0.8)\";\n        currentLowLightCustomization.ovalCustomization.progressColor2 = \"rgba(29, 23, 79, 0.8)\";\n        // Cancel Button Customization\n        currentLowLightCustomization.cancelButtonCustomization.customImage = themeResourceDirectory + \"sample-bank/cancel_navy.png\";\n        return currentLowLightCustomization;\n    }\n    setAppTheme();\n};\n"]},"metadata":{},"sourceType":"module"}