????
Current Path : C:/Windows/SystemApps/Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy/js/ |
Current File : C:/Windows/SystemApps/Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy/js/helloEnrollmentPage.js |
// // Copyright (C) Microsoft. All rights reserved. // /// <disable>JS2085.EnableStrictMode</disable> "use strict"; var CloudExperienceHost; (function (CloudExperienceHost) { var Hello; (function (Hello) { var helloResources = {}; var bridge = new CloudExperienceHost.Bridge(); var enrollmentKinds; var faceDisambiguationChoice = { title: "", description: "", glyph: "\uEB68" }; var fingerDisambiguationChoice = { title: "", description: "", glyph: "\uE928" }; var disambiguationArray = [faceDisambiguationChoice, fingerDisambiguationChoice]; Hello.enrollmentList = new WinJS.Binding.List(disambiguationArray); WinJS.UI.Pages.define("/views/helloEnrollment.html", { init: function (element, options) { var pagePromise = new WinJS.Promise(function (completeDispatch, errorDispatch) { function _checkIfEnrollmentSupportedAndGetReady(completeDispatch, errorDispatch) { bridge.invoke("CloudExperienceHost.Hello.getSupportedHelloEnrollmentKinds").then(function (kinds) { enrollmentKinds = JSON.parse(kinds); if (enrollmentKinds && (enrollmentKinds.face || enrollmentKinds.fingerprint)) { var languagePromise = bridge.invoke("CloudExperienceHost.Globalization.Language.getPreferredLang").then(function (preferredLang) { _htmlRoot.setAttribute("lang", preferredLang); }, function () { }); var dirPromise = bridge.invoke("CloudExperienceHost.Globalization.Language.getReadingDirection").then(function (dirVal) { _htmlRoot.setAttribute("dir", dirVal); }, function () { }); var stringPromise = bridge.invoke("CloudExperienceHost.Hello.localizedStrings").then(function (result) { helloResources = JSON.parse(result); }); WinJS.Promise.join({ languagePromise: languagePromise, dirPromise: dirPromise, stringPromise: stringPromise }).then(completeDispatch, errorDispatch); } else { completeDispatch(); } }, function (e) { errorDispatch(e); }); } function _checkIfNthSkipCondition(completeDispatch, errorDispatch) { bridge.invoke("CloudExperienceHost.UnifiedEnroll.checkIfPinPromptScenario").then(function (result) { if (result) { _checkIfEnrollmentSupportedAndGetReady(completeDispatch, errorDispatch); } else { // This should only fire in the NTHENTORMDM or NTHAADORMDM flows, else the app will "Fall Off" and quit. bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "HelloEnrollmentSkipInNthFlow"); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.action1); } }, function (e) { _checkIfEnrollmentSupportedAndGetReady(completeDispatch, errorDispatch); }); } // Check to see if a previous component would like us to be skipped bridge.invoke("CloudExperienceHost.Storage.SharableData.getValue", "skipNGC").then(function (skipNGC) { if (skipNGC) { _logEvent("HelloEnrollmentSkippedViaSharableData"); completeDispatch(); } else { _checkIfNthSkipCondition(completeDispatch, errorDispatch); } }, function (e) { _checkIfNthSkipCondition(completeDispatch, errorDispatch); }); }); var cssPromise = uiHelpers.LoadCssPromise(document.head, "..", bridge); return WinJS.Promise.join({ pagePromise: pagePromise, cssPromise: cssPromise }); }, ready: function (element, options) { // Skip link SkipLink.textContent = helloResources["Hello" + SkipLink.id]; SkipLink.addEventListener("click", function (event) { event.preventDefault(); _logEvent("HelloEnrollmentCanceled"); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.cancel); }); // Call to register EaseOfAccess control uiHelpers.RegisterEaseOfAccess(easeOfAccess, bridge); // Elements based on supported hardware if (enrollmentKinds && (enrollmentKinds.face || enrollmentKinds.fingerprint)) { // Next button NextButton.textContent = helloResources["HelloButtonText"]; NextButton.addEventListener("click", function () { event.preventDefault(); NextButton.disabled = true; // prevent double click _enroll(); }.bind(this)); NextButton.focus(); if (enrollmentKinds.face && enrollmentKinds.fingerprint) { _logEvent("ShowingHelloEnrollmentPage", "Face AND Fingerprint"); // Remove the non-applicable elements _setVisibility(FaceOrFingerprint, false); // Set the ListView properties let rootStyle = window.getComputedStyle(_htmlRoot, ""); let rootBackgroundColor = rootStyle.getPropertyValue("background-color"); EnrollmentChoiceItemTemplateStyle.style = "height: 125px; display: -ms-grid; background-color: " + rootBackgroundColor; Title.textContent = helloResources['HelloTitleMulti']; faceDisambiguationChoice.title = helloResources['HelloOptionTitleFace']; faceDisambiguationChoice.description = helloResources['HelloLeadTextFace']; fingerDisambiguationChoice.title = helloResources['HelloOptionTitleFingerprint']; fingerDisambiguationChoice.description = helloResources['HelloOptionBodyFingerprint']; NextButton.disabled = true; EnrollmentListView.addEventListener("iteminvoked", function (e) { NextButton.disabled = false; if (disambiguationArray[e.detail.itemIndex] === faceDisambiguationChoice) { bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "HelloEnrollmentDisambiguationFaceSelected"); enrollmentKinds.face = true; enrollmentKinds.fingerprint = false; } else { bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "HelloEnrollmentDisambiguationFingerprintSelected"); enrollmentKinds.fingerprint = true; enrollmentKinds.face = false; } }); EnrollmentListView.focus(); } else { // Remove the non-applicable elements _setVisibility(FaceAndFingerprint, false); if (enrollmentKinds.face) { _logEvent("ShowingHelloEnrollmentPage", "Face"); _setVisibility(FingerprintOnlyGlyph, false); Title.textContent = helloResources['HelloTitleFace']; LeadText.textContent = helloResources['HelloLeadTextFace']; FaceOnlyGlyph.textContent = "\uEB68"; FaceOnlyGlyph.setAttribute("aria-label", helloResources['HelloFaceIconAriaLabel']); } else { _logEvent("ShowingHelloEnrollmentPage", "Fingerprint"); _setVisibility(FaceOnlyGlyph, false); Title.textContent = helloResources['HelloTitleFingerprint']; LeadText.textContent = helloResources['HelloLeadTextFingerprint']; FingerprintOnlyGlyph.textContent = "\uE928"; FingerprintOnlyGlyph.setAttribute("aria-label", helloResources['HelloFingerprintIconAriaLabel']); } } // Enable page bridge.fireEvent(CloudExperienceHost.Events.visible, true); } else { _logEvent("NotShowingHelloEnrollmentPage"); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.abort); } function _logEvent(eventName, eventParam) { if (eventParam) { bridge.invoke("CloudExperienceHost.Telemetry.logEvent", eventName, eventParam); } else { bridge.invoke("CloudExperienceHost.Telemetry.logEvent", eventName); } } function _setVisibility(container, visible) { container.style.visibility = (visible) ? 'visible' : 'hidden'; container.style.display = (visible) ? 'inline' : 'none'; container.setAttribute("aria-hidden", (visible) ? "false" : "true"); } // Helper function to invoke the Hello enrollment app function _enroll() { _logEvent("HelloEnrollmentShowingEnrollmentApp"); uiHelpers.SetElementVisibility(PageContent, false); // Size and position don't matter because it'll show fullscreen let rect = { height: 0, width: 0, x: 0, y: 0 }; bridge.invoke("CloudExperienceHost.Hello.startHelloEnrollment", enrollmentKinds, rect).then(function (enrollResult) { let enrollmentResult = JSON.parse(enrollResult); if (enrollmentResult.completed) { _logEvent("HelloEnrollmentSuccess"); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.success); } else { // Report enrollmentResult.incomplete and enrollmentResult.compeltedWithError as a cancel event _logEvent("HelloEnrollmentCanceled"); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.cancel); } }, function (e) { _logEvent("HelloEnrollmentFailed", JSON.stringify({ number: e && e.number.toString(16), stack: e && e.asyncOpSource && e.asyncOpSource.stack })); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.fail); }); } }, error: function (e) { _logEvent("HelloEnrollmentWinJSPageError", JSON.stringify({ number: e && e.number.toString(16), stack: e && e.asyncOpSource && e.asyncOpSource.stack })); bridge.fireEvent(CloudExperienceHost.Events.done, CloudExperienceHost.AppResult.fail); }, }); })(Hello = CloudExperienceHost.Hello || (CloudExperienceHost.Hello = {})); })(CloudExperienceHost || (CloudExperienceHost = {}));