surveysparrow-ionic-plugin 2.0.2-beta.1 → 2.0.2-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +87 -58
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckEventListener.mjs +26 -0
- package/dist/angular-ui/esm2022/spotchecks/api.mjs +1 -1
- package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +6 -3
- package/dist/angular-ui/esm2022/spotchecks/index.mjs +2 -1
- package/dist/angular-ui/fesm2022/angular-ui.mjs +116 -61
- package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -1
- package/dist/angular-ui/spotchecks/SpotCheckComponent.d.ts +10 -4
- package/dist/angular-ui/spotchecks/SpotCheckEventListener.d.ts +16 -0
- package/dist/angular-ui/spotchecks/index.d.ts +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.d.ts +10 -4
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js +82 -55
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.d.ts +16 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js +28 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js +5 -2
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -1
- package/dist/plugin.cjs.js +110 -54
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +110 -54
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +94 -62
- package/src/angular-ui/lib/spotchecks/SpotCheckEventListener.ts +50 -0
- package/src/angular-ui/lib/spotchecks/api.ts +2 -2
- package/src/angular-ui/lib/spotchecks/helpers.ts +6 -4
- package/src/angular-ui/lib/spotchecks/index.ts +3 -0
|
@@ -2,6 +2,7 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
2
2
|
import { Device } from '@capacitor/device';
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
import { SpotcheckStateService } from './SpotcheckStateService';
|
|
5
|
+
import { getSpotCheckEventListener } from './SpotCheckEventListener';
|
|
5
6
|
let globalSpotcheckStateService;
|
|
6
7
|
let globalOS = null;
|
|
7
8
|
export const getSpotcheckStateService = () => {
|
|
@@ -198,7 +199,10 @@ export const closeSpotCheck = async () => {
|
|
|
198
199
|
},
|
|
199
200
|
body: JSON.stringify(payload),
|
|
200
201
|
});
|
|
201
|
-
if (response.status
|
|
202
|
+
if (response.status == 200) {
|
|
203
|
+
getSpotCheckEventListener().emit('surveyDismissed');
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
202
206
|
console.log(`Error: ${response.status}`);
|
|
203
207
|
}
|
|
204
208
|
}
|
|
@@ -329,7 +333,6 @@ export const getSpotcheckComponentCssStyles = (state) => {
|
|
|
329
333
|
};
|
|
330
334
|
};
|
|
331
335
|
export const closeSpotCheckAndHandleSurveyEnd = async () => {
|
|
332
|
-
await closeSpotCheck();
|
|
333
336
|
handleSurveyEnd();
|
|
334
337
|
};
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2tzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxJQUFJLDJCQUFrRCxDQUFDO0FBQ3ZELElBQUksUUFBUSxHQUFrQixJQUFJLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBMEIsRUFBRTtJQUNsRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNqQywyQkFBMkIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sMkJBQTJCLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWU7SUFDN0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzNDLE9BQU8sQ0FDTCxJQUFJLEtBQUssZ0JBQWdCO1FBQ3pCLElBQUksS0FBSyxTQUFTO1FBQ2xCLElBQUksS0FBSyxTQUFTO1FBQ2xCLElBQUksS0FBSyxVQUFVLENBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUU7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LE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFFBQVE7WUFDdkIsVUFBVSxFQUFFLCtDQUErQyxHQUFDLElBQUk7WUFDaEUsWUFBWSxFQUFFLFlBQVksR0FBQyxJQUFJO1lBQy9CLEdBQUcsTUFBTTtTQUNWO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ3pELE1BQU0sY0FBYyxFQUFFLENBQUM7SUFDdkIsZUFBZSxFQUFFLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdAY2FwYWNpdG9yL2RldmljZSc7XG5pbXBvcnQgeyBTcG90Y2hlY2tTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlU2VydmljZSB9IGZyb20gJy4vU3BvdGNoZWNrU3RhdGVTZXJ2aWNlJztcblxubGV0IGdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlO1xubGV0IGdsb2JhbE9TOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGNvbnN0IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSA9ICgpOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPT4ge1xuICBpZiAoIWdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZSkge1xuICAgIGdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZSA9IG5ldyBTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgfVxuICByZXR1cm4gZ2xvYmFsU3BvdGNoZWNrU3RhdGVTZXJ2aWNlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVHJhY2VJZCgpIHtcbiAgY29uc3QgdXVpZFN0cmluZyA9IHV1aWR2NCgpO1xuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICByZXR1cm4gYCR7dXVpZFN0cmluZ30tJHt0aW1lc3RhbXB9YDtcbn1cblxuZXhwb3J0IGNvbnN0IGlzY2hhdFN1cnZleSA9ICh0eXBlOiBTdHJpbmcpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlID09PSAnQ29udmVyc2F0aW9uYWwnIHx8XG4gICAgdHlwZSA9PT0gJ0NFU0NoYXQnIHx8XG4gICAgdHlwZSA9PT0gJ05QU0NoYXQnIHx8XG4gICAgdHlwZSA9PT0gJ0NTQVRDaGF0J1xuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE9TID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBpbmZvID0gYXdhaXQgRGV2aWNlLmdldEluZm8oKTtcbiAgZ2xvYmFsT1MgPSBpbmZvLm9wZXJhdGluZ1N5c3RlbTtcbiAgcmV0dXJuIGdsb2JhbE9TO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldEFwcGVhcmFuY2UgPSBhc3luYyAoXG4gIHJlc3BvbnNlSnNvbjogYW55LFxuICBzY3JlZW46IHN0cmluZyxcbiAgZG9tYWluTmFtZTogc3RyaW5nLFxuICB0cmFjZUlkOiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgYW55PlxuKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgbGV0IHN0YXRlID0gc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG5cbiAgICBpZiAocmVzcG9uc2VKc29uKSB7XG4gICAgICBjb25zdCBjdXJyZW50U3BvdGNoZWNrID0gc3RhdGUuZmlsdGVyZWRTcG90Q2hlY2tzLmZpbmQoXG4gICAgICAgIChzcG90Y2hlY2spID0+XG4gICAgICAgICAgc3BvdGNoZWNrWydpZCddID09PSByZXNwb25zZUpzb24/LnNwb3RDaGVja0lkIHx8XG4gICAgICAgICAgc3BvdGNoZWNrWydpZCddID09PSByZXNwb25zZUpzb24/LmlkXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBlYXJhbmNlID0gcmVzcG9uc2VKc29uPy5hcHBlYXJhbmNlO1xuICAgICAgbGV0IGNoYXQgPSBmYWxzZTtcblxuICAgICAgbGV0IHVwZGF0ZWRTdGF0ZTogUGFydGlhbDxTcG90Y2hlY2tTdGF0ZT4gPSB7fTtcblxuICAgICAgaWYgKGFwcGVhcmFuY2UpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgIGNsb3NlQnV0dG9uLFxuICAgICAgICAgIGNvbG9ycyxcbiAgICAgICAgICBjYXJkUHJvcGVydGllcyxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGJhbm5lckltYWdlLFxuICAgICAgICB9ID0gYXBwZWFyYW5jZTtcbiAgICAgICAgY29uc3QgeyBtYXhIZWlnaHQgfSA9IGNhcmRQcm9wZXJ0aWVzIHx8IHt9O1xuXG4gICAgICAgIHVwZGF0ZWRTdGF0ZSA9IHtcbiAgICAgICAgICBzcG90Y2hlY2tQb3NpdGlvbjpcbiAgICAgICAgICAgIHBvc2l0aW9uID09PSAndG9wX2Z1bGwnIHx8IHBvc2l0aW9uID09PSAnY2VudGVyX3RvcCdcbiAgICAgICAgICAgICAgPyAndG9wJ1xuICAgICAgICAgICAgICA6IHBvc2l0aW9uID09PSAnY2VudGVyX2NlbnRlcidcbiAgICAgICAgICAgICAgPyAnY2VudGVyJ1xuICAgICAgICAgICAgICA6ICdib3R0b20nLFxuICAgICAgICAgIGlzQ2xvc2VCdXR0b25FbmFibGVkOiBjbG9zZUJ1dHRvbiA/PyB0cnVlLFxuICAgICAgICAgIGNsb3NlQnV0dG9uU3R5bGU6IGNvbG9ycz8ub3ZlcnJpZGVzID8/IHt9LFxuICAgICAgICAgIG1heEhlaWdodDogbWF4SGVpZ2h0ID8gcGFyc2VGbG9hdChtYXhIZWlnaHQpIC8gMTAwIDogMCxcbiAgICAgICAgICBzcG90Q2hlY2tUeXBlOlxuICAgICAgICAgICAgaXNjaGF0U3VydmV5KGN1cnJlbnRTcG90Y2hlY2s/Llsnc3VydmV5J10/LnN1cnZleVR5cGUpICYmXG4gICAgICAgICAgICBtb2RlID09PSAnZnVsbFNjcmVlbidcbiAgICAgICAgICAgICAgPyAnY2hhdCdcbiAgICAgICAgICAgICAgOiAnY2xhc3NpYycsXG4gICAgICAgICAgaXNGdWxsU2NyZWVuTW9kZTogbW9kZSA9PT0gJ2Z1bGxTY3JlZW4nLFxuICAgICAgICAgIGlzQmFubmVySW1hZ2VPbjogYmFubmVySW1hZ2U/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgICAgc3BvdENoZWNrc01vZGU6IG1vZGUsXG4gICAgICAgICAgYXZhdGFyRW5hYmxlZDogYXBwZWFyYW5jZT8uYXZhdGFyPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgIGF2YXRhclVybDogYXBwZWFyYW5jZT8uYXZhdGFyPy5hdmF0YXJVcmwgPz8gJycsXG4gICAgICAgIH07XG5cbiAgICAgICAgY2hhdCA9IHVwZGF0ZWRTdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2hhdCc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNwb3RDaGVja0lkID0gcmVzcG9uc2VKc29uPy5zcG90Q2hlY2tJZCA/PyAwO1xuICAgICAgY29uc3Qgc3BvdENoZWNrQ29udGFjdElkID1cbiAgICAgICAgcmVzcG9uc2VKc29uPy5zcG90Q2hlY2tDb250YWN0SWQgPz9cbiAgICAgICAgcmVzcG9uc2VKc29uPy5zcG90Q2hlY2tDb250YWN0Py5pZCA/P1xuICAgICAgICAwO1xuICAgICAgY29uc3QgdHJpZ2dlclRva2VuID0gcmVzcG9uc2VKc29uPy50cmlnZ2VyVG9rZW4gPz8gJyc7XG5cbiAgICAgIHVwZGF0ZWRTdGF0ZSA9IHtcbiAgICAgICAgLi4udXBkYXRlZFN0YXRlLFxuICAgICAgICBzcG90Y2hlY2tJRDogc3BvdENoZWNrSWQsXG4gICAgICAgIHNwb3RjaGVja0NvbnRhY3RJRDogc3BvdENoZWNrQ29udGFjdElkLFxuICAgICAgICB0cmlnZ2VyVG9rZW4sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBiYXNlU3BvdGNoZWNrVVJMID0gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9zL3Nwb3RjaGVjay8ke3RyaWdnZXJUb2tlbn0vJHtcbiAgICAgICAgY2hhdCA/ICdjb25maWcnIDogJ2Jvb3RzdHJhcCdcbiAgICAgIH0/c3BvdGNoZWNrQ29udGFjdElkPSR7c3BvdENoZWNrQ29udGFjdElkfSZ0cmFjZUlkPSR7dHJhY2VJZH0mc3BvdGNoZWNrVXJsPSR7c2NyZWVufWA7XG5cbiAgICAgIGxldCBmdWxsU3BvdGNoZWNrVVJMID0gYmFzZVNwb3RjaGVja1VSTDtcblxuICAgICAgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgZnVsbFNwb3RjaGVja1VSTCArPSBgJiR7a2V5fT0ke3ZhbHVlfWA7XG4gICAgICB9KTtcblxuICAgICAgdXBkYXRlZFN0YXRlLnNwb3RjaGVja1VSTCA9IGZ1bGxTcG90Y2hlY2tVUkw7XG4gICAgICBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc2V0U3RhdGUodXBkYXRlZFN0YXRlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoZnVsbFNwb3RjaGVja1VSTCk7XG4gICAgICAgIGNvbnN0IHRoZW1lSW5mbyA9IHJlc3BvbnNlLmRhdGE/LmNvbmZpZz8uZ2VuZXJhdGVkQ1NTO1xuICAgICAgICBjb25zdCB0aGVtZV9wYXlsb2FkID0geyB0eXBlOiAnVEhFTUVfVVBEQVRFX1NQT1RDSEVDSycsIHRoZW1lSW5mbyB9O1xuICAgICAgICBzdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gICAgICAgIGxldCB3ZWJWaWV3UmVmID0gY2hhdCA/IHN0YXRlLmNoYXRXZWJWaWV3UmVmIDogc3RhdGUuY2xhc3NpY1dlYlZpZXdSZWY7XG4gICAgICAgIGxldCBpc0xvYWRpbmcgPSBjaGF0ID8gc3RhdGUuaXNDaGF0TG9hZGluZyB8fCAhc3RhdGUuaXNDaGF0TG9hZEV2ZW50UmVjZWl2ZWQgOiBzdGF0ZS5pc0NsYXNzaWNMb2FkaW5nIHx8ICFzdGF0ZS5pc0NsYXNzaWNMb2FkRXZlbnRSZWNlaXZlZDtcblxuICAgICAgICBjb25zdCByZXNldFN0YXRlRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiAnUkVTRVRfU1RBVEUnLFxuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAuLi4ocmVzcG9uc2UuZGF0YSB8fCB7fSksXG4gICAgICAgICAgICBza2lwOiB0cnVlLFxuICAgICAgICAgICAgc3BvdENoZWNrQXBwZWFyYW5jZToge1xuICAgICAgICAgICAgICAuLi4oYXBwZWFyYW5jZSB8fCB7fSksXG4gICAgICAgICAgICAgIHRhcmdldFR5cGU6ICdNT0JJTEUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNwb3RjaGVja1VybDogc2NyZWVuLFxuICAgICAgICAgICAgdHJhY2VJZCxcbiAgICAgICAgICAgIGVsZW1lbnRCdWlsZGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgIC4uLih2YXJpYWJsZXMgfHwge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHNlbmRNZXNzYWdlVG9JZnJhbWUgPSAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCwgZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlmcmFtZSAmJiBpZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvIGlmcmFtZTonLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbW11bmljYXRlV2l0aFdlYlZpZXcgPSBhc3luYyAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGlmcmFtZSwgcmVzZXRTdGF0ZURhdGEpO1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb0lmcmFtZShpZnJhbWUsIHRoZW1lX3BheWxvYWQpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LCAyMDAwKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHdlYlZpZXdSZWYpIHtcbiAgICAgICAgICBpZiAoaXNMb2FkaW5nID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyh3ZWJWaWV3UmVmKTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG9kbzogcmVjaGVjayB0aGlzXG4gICAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgaXNDaGF0TG9hZGluZyxcbiAgICAgICAgICAgICAgICAgIGlzQ2xhc3NpY0xvYWRpbmcsXG4gICAgICAgICAgICAgICAgICBjaGF0V2ViVmlld1JlZixcbiAgICAgICAgICAgICAgICAgIGNsYXNzaWNXZWJWaWV3UmVmLFxuICAgICAgICAgICAgICAgICAgaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQsXG4gICAgICAgICAgICAgICAgICBpc0NoYXRMb2FkRXZlbnRSZWNlaXZlZCxcbiAgICAgICAgICAgICAgICB9ID0gY3VycmVudFN0YXRlO1xuXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKCghaXNDaGF0TG9hZGluZyAmJiBjaGF0ICYmIGlzQ2hhdExvYWRFdmVudFJlY2VpdmVkKSB8fCAoIWlzQ2xhc3NpY0xvYWRpbmcgJiYgIWNoYXQgJiYgaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQpKSB7XG4gICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlV2ViVmlld1JlZiA9IGNoYXRcbiAgICAgICAgICAgICAgICAgICAgPyBjaGF0V2ViVmlld1JlZlxuICAgICAgICAgICAgICAgICAgICA6IGNsYXNzaWNXZWJWaWV3UmVmO1xuICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVdlYlZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyhhY3RpdmVXZWJWaWV3UmVmKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAn4pqg77iPIEFjdGl2ZSBXZWJWaWV3IHJlZiBpcyBudWxsIGFmdGVyIGxvYWRpbmcgY29tcGxldGVkJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZVdlYlZpZXcgPSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgICAgICAgIChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFdlYlZpZXdSZWYgPSBjaGF0XG4gICAgICAgICAgICAgICAgPyBjdXJyZW50U3RhdGUuY2hhdFdlYlZpZXdSZWZcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZElzTG9hZGluZyA9IGNoYXRcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTdGF0ZS5pc0NoYXRMb2FkaW5nIHx8ICFjdXJyZW50U3RhdGUuaXNDaGF0TG9hZEV2ZW50UmVjZWl2ZWRcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5pc0NsYXNzaWNMb2FkaW5nIHx8ICFjdXJyZW50U3RhdGUuaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQ7XG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRXZWJWaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF1cGRhdGVkSXNMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZVdlYlZpZXcudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgIGNvbW11bmljYXRlV2l0aFdlYlZpZXcodXBkYXRlZFdlYlZpZXdSZWYpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+KPsyBXZWJWaWV3IHJlZiBhdmFpbGFibGUgYnV0IHN0aWxsIGxvYWRpbmcuLi4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZycpO1xuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RhcnQgPSAoKSA9PiB7XG4gIGNvbnN0IHN0YXRlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuZ2V0U3RhdGUoKTtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuc2V0U3RhdGUoeyBpc1Zpc2libGU6IHRydWUgfSk7XG4gIH0sIHN0YXRlLmFmdGVyRGVsYXkgKiAxMDAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbG9zZVNwb3RDaGVjayA9IGFzeW5jICgpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCBzdGF0ZSA9IHN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0cmFjZUlkOiBzdGF0ZS50cmFjZUlkLFxuICAgICAgdHJpZ2dlclRva2VuOiBzdGF0ZS50cmlnZ2VyVG9rZW4sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICBgaHR0cHM6Ly8ke3N0YXRlLmRvbWFpbk5hbWV9L2FwaS9pbnRlcm5hbC9zcG90Y2hlY2svZGlzbWlzcy8ke3N0YXRlLnNwb3RjaGVja0NvbnRhY3RJRH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhgRXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygnRXJyb3IgcGFyc2luZyBKU09OOicsIGVycm9yKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVN1cnZleUVuZCA9ICgpID0+IHtcbiAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIGNvbnN0IHN0YXRlID0gc3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGNvbnN0IHdlYlZpZXdSZWYgPVxuICAgIHN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0J1xuICAgICAgPyBzdGF0ZS5jaGF0V2ViVmlld1JlZlxuICAgICAgOiBzdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcblxuICB3ZWJWaWV3UmVmPy5jdXJyZW50Py5pbmplY3RKYXZhU2NyaXB0KGBcbiAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgnbWVzc2FnZScsIHtcbiAgICAgICAgICBkYXRhOiAke0pTT04uc3RyaW5naWZ5KHsgdHlwZTogJ1VOTU9VTlRfQVBQJyB9KX1cbiAgICAgICAgfSkpO1xuICAgICAgfSkoKTtcbiAgICBgKTtcblxuICBjb25zdCB1cGRhdGVkU3RhdGU6IFBhcnRpYWw8U3BvdGNoZWNrU3RhdGU+ID0ge1xuICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGZhbHNlLFxuICAgIGlzRnVsbFNjcmVlbk1vZGU6IGZhbHNlLFxuICAgIHNwb3RjaGVja0lEOiAwLFxuICAgIGN1cnJlbnRRdWVzdGlvbkhlaWdodDogMCxcbiAgICBjbG9zZUJ1dHRvblN0eWxlOiB7fSxcbiAgICBzcG90Y2hlY2tDb250YWN0SUQ6IDAsXG4gICAgc3BvdGNoZWNrVVJMOiAnJyxcbiAgICBzcG90Y2hlY2tQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgaXNNb3VudGVkOiBmYWxzZSxcbiAgICBzcG90Q2hlY2tUeXBlOiAnJyxcbiAgICBzY3JlZW5IZWlnaHQ6IDAsXG4gICAga2V5Qm9hcmRIZWlnaHQ6IDAsXG4gICAgdGV4dFBvc2l0aW9uOiAwLFxuICAgIHNwb3RDaGVja3NNb2RlOiAnJyxcbiAgICBhdmF0YXJFbmFibGVkOiBmYWxzZSxcbiAgICBhdmF0YXJVcmw6ICcnLFxuICB9O1xuXG4gIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh1cGRhdGVkU3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyA9IChzdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHsgXG4gIGxldCBzdHlsZXMgPSB7fVxuICBsZXQgd3JhcHBlclN0eWxlcyA9IHt9XG4gIGxldCBleHRyYVBhZGRpbmdGb3JNaW5pQ2FyZENsb3NlQnV0dG9uSWZUb3BQb3NpdGlvbiA9IDA7XG4gIGlmIChzdGF0ZS5pc0Z1bGxTY3JlZW5Nb2RlICYmIHN0YXRlLmlzVmlzaWJsZSkge1xuICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9O1xuICAgIHN0eWxlcyA9IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gIH1cblxuICBsZXQgbWFyZ2luQm90dG9tID0gIGdsb2JhbE9TICE9PSAnaW9zJyA/IDE4IDogMDtcbiAgXG4gIGlmIChzdGF0ZS5pc1Zpc2libGUgJiYgc3RhdGUuaXNNb3VudGVkKSB7XG5cbiAgICBsZXQgaGVpZ2h0ID0gTWF0aC5taW4oc3RhdGUuY3VycmVudFF1ZXN0aW9uSGVpZ2h0LCAoc3RhdGUubWF4SGVpZ2h0ICogd2luZG93LmlubmVySGVpZ2h0KSk7XG4gICAgaWYoc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcpIHtcbiAgICAgIGlmKHN0YXRlLmF2YXRhckVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNTY7XG4gICAgICAgIGlmKHN0YXRlLnNwb3RjaGVja1Bvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgIG1hcmdpbkJvdHRvbSArPSA1NjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZS5zcG90Y2hlY2tQb3NpdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tJzogIFxuICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGhlaWdodDogaGVpZ2h0KydweCcsXG4gICAgICAgIH07XG4gICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgc3R5bGVzID0ge1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQrJ3B4JyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYoc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcgJiYgc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgICAgIGV4dHJhUGFkZGluZ0Zvck1pbmlDYXJkQ2xvc2VCdXR0b25JZlRvcFBvc2l0aW9uID0gMzA7XG4gICAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgICAgICBcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCsncHgnLFxuICAgICAgICAgIH07XG4gICAgICAgICAgd3JhcHBlclN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB7XG4gICAgd3JhcHBlclN0eWxlczoge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsIFxuICAgICAgd2lkdGg6ICcxMDAlJywgXG4gICAgICBoZWlnaHQ6ICcxMDAlJywgXG4gICAgICB0b3A6ICcwJywgXG4gICAgICBsZWZ0OiAnMCcsIFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjMpJywgXG4gICAgICB6SW5kZXg6ICcxMDAwMDEnLFxuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAuLi53cmFwcGVyU3R5bGVzXG4gICAgfSxcbiAgICBzdHlsZXM6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgcGFkZGluZ1RvcDogZXh0cmFQYWRkaW5nRm9yTWluaUNhcmRDbG9zZUJ1dHRvbklmVG9wUG9zaXRpb24rJ3B4JyxcbiAgICAgIG1hcmdpbkJvdHRvbTogbWFyZ2luQm90dG9tKydweCcsXG4gICAgICAuLi5zdHlsZXMsXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kID0gYXN5bmMgKCkgPT4ge1xuICBhd2FpdCBjbG9zZVNwb3RDaGVjaygpO1xuICBoYW5kbGVTdXJ2ZXlFbmQoKTtcbn07Il19
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2tzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRSxJQUFJLDJCQUFrRCxDQUFDO0FBQ3ZELElBQUksUUFBUSxHQUFrQixJQUFJLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBMEIsRUFBRTtJQUNsRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNqQywyQkFBMkIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sMkJBQTJCLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGVBQWU7SUFDN0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzNDLE9BQU8sQ0FDTCxJQUFJLEtBQUssZ0JBQWdCO1FBQ3pCLElBQUksS0FBSyxTQUFTO1FBQ2xCLElBQUksS0FBSyxTQUFTO1FBQ2xCLElBQUksS0FBSyxVQUFVLENBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7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RUFBRSxvQkFBb0I7WUFDckMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsUUFBUTtZQUN2QixHQUFHLGFBQWE7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsTUFBTTtZQUNmLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSwrQ0FBK0MsR0FBQyxJQUFJO1lBQ2hFLFlBQVksRUFBRSxZQUFZLEdBQUMsSUFBSTtZQUMvQixHQUFHLE1BQU07U0FDVjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxLQUFLLElBQUksRUFBRTtJQUN6RCxlQUFlLEVBQUUsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0BjYXBhY2l0b3IvZGV2aWNlJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9TcG90Y2hlY2tTdGF0ZVNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0U3BvdENoZWNrRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4vU3BvdENoZWNrRXZlbnRMaXN0ZW5lcic7XG5cbmxldCBnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2U6IFNwb3RjaGVja1N0YXRlU2VydmljZTtcbmxldCBnbG9iYWxPUzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSAoKTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0+IHtcbiAgaWYgKCFnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2UpIHtcbiAgICBnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSBuZXcgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIH1cbiAgcmV0dXJuIGdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRyYWNlSWQoKSB7XG4gIGNvbnN0IHV1aWRTdHJpbmcgPSB1dWlkdjQoKTtcbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgcmV0dXJuIGAke3V1aWRTdHJpbmd9LSR7dGltZXN0YW1wfWA7XG59XG5cbmV4cG9ydCBjb25zdCBpc2NoYXRTdXJ2ZXkgPSAodHlwZTogU3RyaW5nKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZSA9PT0gJ0NvbnZlcnNhdGlvbmFsJyB8fFxuICAgIHR5cGUgPT09ICdDRVNDaGF0JyB8fFxuICAgIHR5cGUgPT09ICdOUFNDaGF0JyB8fFxuICAgIHR5cGUgPT09ICdDU0FUQ2hhdCdcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPUyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgaW5mbyA9IGF3YWl0IERldmljZS5nZXRJbmZvKCk7XG4gIGdsb2JhbE9TID0gaW5mby5vcGVyYXRpbmdTeXN0ZW07XG4gIHJldHVybiBnbG9iYWxPUztcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRBcHBlYXJhbmNlID0gYXN5bmMgKFxuICByZXNwb25zZUpzb246IGFueSxcbiAgc2NyZWVuOiBzdHJpbmcsXG4gIGRvbWFpbk5hbWU6IHN0cmluZyxcbiAgdHJhY2VJZDogc3RyaW5nLFxuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT5cbikgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIGxldCBzdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gICAgaWYgKHJlc3BvbnNlSnNvbikge1xuICAgICAgY29uc3QgY3VycmVudFNwb3RjaGVjayA9IHN0YXRlLmZpbHRlcmVkU3BvdENoZWNrcy5maW5kKFxuICAgICAgICAoc3BvdGNoZWNrKSA9PlxuICAgICAgICAgIHNwb3RjaGVja1snaWQnXSA9PT0gcmVzcG9uc2VKc29uPy5zcG90Q2hlY2tJZCB8fFxuICAgICAgICAgIHNwb3RjaGVja1snaWQnXSA9PT0gcmVzcG9uc2VKc29uPy5pZFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYXBwZWFyYW5jZSA9IHJlc3BvbnNlSnNvbj8uYXBwZWFyYW5jZTtcbiAgICAgIGxldCBjaGF0ID0gZmFsc2U7XG5cbiAgICAgIGxldCB1cGRhdGVkU3RhdGU6IFBhcnRpYWw8U3BvdGNoZWNrU3RhdGU+ID0ge307XG5cbiAgICAgIGlmIChhcHBlYXJhbmNlKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICBjbG9zZUJ1dHRvbixcbiAgICAgICAgICBjb2xvcnMsXG4gICAgICAgICAgY2FyZFByb3BlcnRpZXMsXG4gICAgICAgICAgbW9kZSxcbiAgICAgICAgICBiYW5uZXJJbWFnZSxcbiAgICAgICAgfSA9IGFwcGVhcmFuY2U7XG4gICAgICAgIGNvbnN0IHsgbWF4SGVpZ2h0IH0gPSBjYXJkUHJvcGVydGllcyB8fCB7fTtcblxuICAgICAgICB1cGRhdGVkU3RhdGUgPSB7XG4gICAgICAgICAgc3BvdGNoZWNrUG9zaXRpb246XG4gICAgICAgICAgICBwb3NpdGlvbiA9PT0gJ3RvcF9mdWxsJyB8fCBwb3NpdGlvbiA9PT0gJ2NlbnRlcl90b3AnXG4gICAgICAgICAgICAgID8gJ3RvcCdcbiAgICAgICAgICAgICAgOiBwb3NpdGlvbiA9PT0gJ2NlbnRlcl9jZW50ZXInXG4gICAgICAgICAgICAgID8gJ2NlbnRlcidcbiAgICAgICAgICAgICAgOiAnYm90dG9tJyxcbiAgICAgICAgICBpc0Nsb3NlQnV0dG9uRW5hYmxlZDogY2xvc2VCdXR0b24gPz8gdHJ1ZSxcbiAgICAgICAgICBjbG9zZUJ1dHRvblN0eWxlOiBjb2xvcnM/Lm92ZXJyaWRlcyA/PyB7fSxcbiAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCA/IHBhcnNlRmxvYXQobWF4SGVpZ2h0KSAvIDEwMCA6IDAsXG4gICAgICAgICAgc3BvdENoZWNrVHlwZTpcbiAgICAgICAgICAgIGlzY2hhdFN1cnZleShjdXJyZW50U3BvdGNoZWNrPy5bJ3N1cnZleSddPy5zdXJ2ZXlUeXBlKSAmJlxuICAgICAgICAgICAgbW9kZSA9PT0gJ2Z1bGxTY3JlZW4nXG4gICAgICAgICAgICAgID8gJ2NoYXQnXG4gICAgICAgICAgICAgIDogJ2NsYXNzaWMnLFxuICAgICAgICAgIGlzRnVsbFNjcmVlbk1vZGU6IG1vZGUgPT09ICdmdWxsU2NyZWVuJyxcbiAgICAgICAgICBpc0Jhbm5lckltYWdlT246IGJhbm5lckltYWdlPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgIHNwb3RDaGVja3NNb2RlOiBtb2RlLFxuICAgICAgICAgIGF2YXRhckVuYWJsZWQ6IGFwcGVhcmFuY2U/LmF2YXRhcj8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICBhdmF0YXJVcmw6IGFwcGVhcmFuY2U/LmF2YXRhcj8uYXZhdGFyVXJsID8/ICcnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNoYXQgPSB1cGRhdGVkU3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzcG90Q2hlY2tJZCA9IHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrSWQgPz8gMDtcbiAgICAgIGNvbnN0IHNwb3RDaGVja0NvbnRhY3RJZCA9XG4gICAgICAgIHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrQ29udGFjdElkID8/XG4gICAgICAgIHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrQ29udGFjdD8uaWQgPz9cbiAgICAgICAgMDtcbiAgICAgIGNvbnN0IHRyaWdnZXJUb2tlbiA9IHJlc3BvbnNlSnNvbj8udHJpZ2dlclRva2VuID8/ICcnO1xuXG4gICAgICB1cGRhdGVkU3RhdGUgPSB7XG4gICAgICAgIC4uLnVwZGF0ZWRTdGF0ZSxcbiAgICAgICAgc3BvdGNoZWNrSUQ6IHNwb3RDaGVja0lkLFxuICAgICAgICBzcG90Y2hlY2tDb250YWN0SUQ6IHNwb3RDaGVja0NvbnRhY3RJZCxcbiAgICAgICAgdHJpZ2dlclRva2VuLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYmFzZVNwb3RjaGVja1VSTCA9IGBodHRwczovLyR7ZG9tYWluTmFtZX0vcy9zcG90Y2hlY2svJHt0cmlnZ2VyVG9rZW59LyR7XG4gICAgICAgIGNoYXQgPyAnY29uZmlnJyA6ICdib290c3RyYXAnXG4gICAgICB9P3Nwb3RjaGVja0NvbnRhY3RJZD0ke3Nwb3RDaGVja0NvbnRhY3RJZH0mdHJhY2VJZD0ke3RyYWNlSWR9JnNwb3RjaGVja1VybD0ke3NjcmVlbn1gO1xuXG4gICAgICBsZXQgZnVsbFNwb3RjaGVja1VSTCA9IGJhc2VTcG90Y2hlY2tVUkw7XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGZ1bGxTcG90Y2hlY2tVUkwgKz0gYCYke2tleX09JHt2YWx1ZX1gO1xuICAgICAgfSk7XG5cbiAgICAgIHVwZGF0ZWRTdGF0ZS5zcG90Y2hlY2tVUkwgPSBmdWxsU3BvdGNoZWNrVVJMO1xuICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHVwZGF0ZWRTdGF0ZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0PGFueT4oZnVsbFNwb3RjaGVja1VSTCk7XG4gICAgICAgIGNvbnN0IHRoZW1lSW5mbyA9IHJlc3BvbnNlLmRhdGE/LmNvbmZpZz8uZ2VuZXJhdGVkQ1NTO1xuICAgICAgICBjb25zdCB0aGVtZV9wYXlsb2FkID0geyB0eXBlOiAnVEhFTUVfVVBEQVRFX1NQT1RDSEVDSycsIHRoZW1lSW5mbyB9O1xuICAgICAgICBzdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gICAgICAgIGxldCB3ZWJWaWV3UmVmID0gY2hhdCA/IHN0YXRlLmNoYXRXZWJWaWV3UmVmIDogc3RhdGUuY2xhc3NpY1dlYlZpZXdSZWY7XG4gICAgICAgIGxldCBpc0xvYWRpbmcgPSBjaGF0ID8gc3RhdGUuaXNDaGF0TG9hZGluZyB8fCAhc3RhdGUuaXNDaGF0TG9hZEV2ZW50UmVjZWl2ZWQgOiBzdGF0ZS5pc0NsYXNzaWNMb2FkaW5nIHx8ICFzdGF0ZS5pc0NsYXNzaWNMb2FkRXZlbnRSZWNlaXZlZDtcblxuICAgICAgICBjb25zdCByZXNldFN0YXRlRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiAnUkVTRVRfU1RBVEUnLFxuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAuLi4ocmVzcG9uc2UuZGF0YSB8fCB7fSksXG4gICAgICAgICAgICBza2lwOiB0cnVlLFxuICAgICAgICAgICAgc3BvdENoZWNrQXBwZWFyYW5jZToge1xuICAgICAgICAgICAgICAuLi4oYXBwZWFyYW5jZSB8fCB7fSksXG4gICAgICAgICAgICAgIHRhcmdldFR5cGU6ICdNT0JJTEUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNwb3RjaGVja1VybDogc2NyZWVuLFxuICAgICAgICAgICAgdHJhY2VJZCxcbiAgICAgICAgICAgIGVsZW1lbnRCdWlsZGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgIC4uLih2YXJpYWJsZXMgfHwge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHNlbmRNZXNzYWdlVG9JZnJhbWUgPSAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCwgZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlmcmFtZSAmJiBpZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvIGlmcmFtZTonLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbW11bmljYXRlV2l0aFdlYlZpZXcgPSBhc3luYyAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGlmcmFtZSwgcmVzZXRTdGF0ZURhdGEpO1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb0lmcmFtZShpZnJhbWUsIHRoZW1lX3BheWxvYWQpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LCAyMDAwKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHdlYlZpZXdSZWYpIHtcbiAgICAgICAgICBpZiAoaXNMb2FkaW5nID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyh3ZWJWaWV3UmVmKTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG9kbzogcmVjaGVjayB0aGlzXG4gICAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgaXNDaGF0TG9hZGluZyxcbiAgICAgICAgICAgICAgICAgIGlzQ2xhc3NpY0xvYWRpbmcsXG4gICAgICAgICAgICAgICAgICBjaGF0V2ViVmlld1JlZixcbiAgICAgICAgICAgICAgICAgIGNsYXNzaWNXZWJWaWV3UmVmLFxuICAgICAgICAgICAgICAgICAgaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQsXG4gICAgICAgICAgICAgICAgICBpc0NoYXRMb2FkRXZlbnRSZWNlaXZlZCxcbiAgICAgICAgICAgICAgICB9ID0gY3VycmVudFN0YXRlO1xuXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKCghaXNDaGF0TG9hZGluZyAmJiBjaGF0ICYmIGlzQ2hhdExvYWRFdmVudFJlY2VpdmVkKSB8fCAoIWlzQ2xhc3NpY0xvYWRpbmcgJiYgIWNoYXQgJiYgaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQpKSB7XG4gICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlV2ViVmlld1JlZiA9IGNoYXRcbiAgICAgICAgICAgICAgICAgICAgPyBjaGF0V2ViVmlld1JlZlxuICAgICAgICAgICAgICAgICAgICA6IGNsYXNzaWNXZWJWaWV3UmVmO1xuICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVdlYlZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyhhY3RpdmVXZWJWaWV3UmVmKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAn4pqg77iPIEFjdGl2ZSBXZWJWaWV3IHJlZiBpcyBudWxsIGFmdGVyIGxvYWRpbmcgY29tcGxldGVkJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZVdlYlZpZXcgPSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgICAgICAgIChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFdlYlZpZXdSZWYgPSBjaGF0XG4gICAgICAgICAgICAgICAgPyBjdXJyZW50U3RhdGUuY2hhdFdlYlZpZXdSZWZcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZElzTG9hZGluZyA9IGNoYXRcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTdGF0ZS5pc0NoYXRMb2FkaW5nIHx8ICFjdXJyZW50U3RhdGUuaXNDaGF0TG9hZEV2ZW50UmVjZWl2ZWRcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5pc0NsYXNzaWNMb2FkaW5nIHx8ICFjdXJyZW50U3RhdGUuaXNDbGFzc2ljTG9hZEV2ZW50UmVjZWl2ZWQ7XG5cbiAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRXZWJWaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF1cGRhdGVkSXNMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZVdlYlZpZXcudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgIGNvbW11bmljYXRlV2l0aFdlYlZpZXcodXBkYXRlZFdlYlZpZXdSZWYpO1xuICAgICAgICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+KPsyBXZWJWaWV3IHJlZiBhdmFpbGFibGUgYnV0IHN0aWxsIGxvYWRpbmcuLi4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZycpO1xuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RhcnQgPSAoKSA9PiB7XG4gIGNvbnN0IHN0YXRlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuZ2V0U3RhdGUoKTtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuc2V0U3RhdGUoeyBpc1Zpc2libGU6IHRydWUgfSk7XG4gIH0sIHN0YXRlLmFmdGVyRGVsYXkgKiAxMDAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbG9zZVNwb3RDaGVjayA9IGFzeW5jICgpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCBzdGF0ZSA9IHN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0cmFjZUlkOiBzdGF0ZS50cmFjZUlkLFxuICAgICAgdHJpZ2dlclRva2VuOiBzdGF0ZS50cmlnZ2VyVG9rZW4sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICBgaHR0cHM6Ly8ke3N0YXRlLmRvbWFpbk5hbWV9L2FwaS9pbnRlcm5hbC9zcG90Y2hlY2svZGlzbWlzcy8ke3N0YXRlLnNwb3RjaGVja0NvbnRhY3RJRH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICB9XG4gICAgKTtcbiAgICBpZihyZXNwb25zZS5zdGF0dXMgPT0gMjAwKSB7XG4gICAgICBnZXRTcG90Q2hlY2tFdmVudExpc3RlbmVyKCkuZW1pdCgnc3VydmV5RGlzbWlzc2VkJyk7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBjb25zb2xlLmxvZyhgRXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygnRXJyb3IgcGFyc2luZyBKU09OOicsIGVycm9yKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVN1cnZleUVuZCA9ICgpID0+IHtcbiAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIGNvbnN0IHN0YXRlID0gc3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGNvbnN0IHdlYlZpZXdSZWYgPVxuICAgIHN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0J1xuICAgICAgPyBzdGF0ZS5jaGF0V2ViVmlld1JlZlxuICAgICAgOiBzdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcblxuICB3ZWJWaWV3UmVmPy5jdXJyZW50Py5pbmplY3RKYXZhU2NyaXB0KGBcbiAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgnbWVzc2FnZScsIHtcbiAgICAgICAgICBkYXRhOiAke0pTT04uc3RyaW5naWZ5KHsgdHlwZTogJ1VOTU9VTlRfQVBQJyB9KX1cbiAgICAgICAgfSkpO1xuICAgICAgfSkoKTtcbiAgICBgKTtcblxuICBjb25zdCB1cGRhdGVkU3RhdGU6IFBhcnRpYWw8U3BvdGNoZWNrU3RhdGU+ID0ge1xuICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGZhbHNlLFxuICAgIGlzRnVsbFNjcmVlbk1vZGU6IGZhbHNlLFxuICAgIHNwb3RjaGVja0lEOiAwLFxuICAgIGN1cnJlbnRRdWVzdGlvbkhlaWdodDogMCxcbiAgICBjbG9zZUJ1dHRvblN0eWxlOiB7fSxcbiAgICBzcG90Y2hlY2tDb250YWN0SUQ6IDAsXG4gICAgc3BvdGNoZWNrVVJMOiAnJyxcbiAgICBzcG90Y2hlY2tQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgaXNNb3VudGVkOiBmYWxzZSxcbiAgICBzcG90Q2hlY2tUeXBlOiAnJyxcbiAgICBzY3JlZW5IZWlnaHQ6IDAsXG4gICAga2V5Qm9hcmRIZWlnaHQ6IDAsXG4gICAgdGV4dFBvc2l0aW9uOiAwLFxuICAgIHNwb3RDaGVja3NNb2RlOiAnJyxcbiAgICBhdmF0YXJFbmFibGVkOiBmYWxzZSxcbiAgICBhdmF0YXJVcmw6ICcnLFxuICB9O1xuXG4gIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh1cGRhdGVkU3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyA9IChzdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHsgXG4gIGxldCBzdHlsZXMgPSB7fVxuICBsZXQgd3JhcHBlclN0eWxlcyA9IHt9XG4gIGxldCBleHRyYVBhZGRpbmdGb3JNaW5pQ2FyZENsb3NlQnV0dG9uSWZUb3BQb3NpdGlvbiA9IDA7XG4gIGlmIChzdGF0ZS5pc0Z1bGxTY3JlZW5Nb2RlICYmIHN0YXRlLmlzVmlzaWJsZSkge1xuICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9O1xuICAgIHN0eWxlcyA9IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gIH1cblxuICBsZXQgbWFyZ2luQm90dG9tID0gIGdsb2JhbE9TICE9PSAnaW9zJyA/IDE4IDogMDtcbiAgXG4gIGlmIChzdGF0ZS5pc1Zpc2libGUgJiYgc3RhdGUuaXNNb3VudGVkKSB7XG5cbiAgICBsZXQgaGVpZ2h0ID0gTWF0aC5taW4oc3RhdGUuY3VycmVudFF1ZXN0aW9uSGVpZ2h0LCAoc3RhdGUubWF4SGVpZ2h0ICogd2luZG93LmlubmVySGVpZ2h0KSk7XG4gICAgaWYoc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcpIHtcbiAgICAgIGlmKHN0YXRlLmF2YXRhckVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNTY7XG4gICAgICAgIGlmKHN0YXRlLnNwb3RjaGVja1Bvc2l0aW9uID09PSAnYm90dG9tJykge1xuICAgICAgICAgIG1hcmdpbkJvdHRvbSArPSA1NjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZS5zcG90Y2hlY2tQb3NpdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tJzogIFxuICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGhlaWdodDogaGVpZ2h0KydweCcsXG4gICAgICAgIH07XG4gICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgc3R5bGVzID0ge1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQrJ3B4JyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYoc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcgJiYgc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgICAgIGV4dHJhUGFkZGluZ0Zvck1pbmlDYXJkQ2xvc2VCdXR0b25JZlRvcFBvc2l0aW9uID0gMzA7XG4gICAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgICAgICBcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCsncHgnLFxuICAgICAgICAgIH07XG4gICAgICAgICAgd3JhcHBlclN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB7XG4gICAgd3JhcHBlclN0eWxlczoge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsIFxuICAgICAgd2lkdGg6ICcxMDAlJywgXG4gICAgICBoZWlnaHQ6ICcxMDAlJywgXG4gICAgICB0b3A6ICcwJywgXG4gICAgICBsZWZ0OiAnMCcsIFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjMpJywgXG4gICAgICB6SW5kZXg6ICcxMDAwMDEnLFxuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAuLi53cmFwcGVyU3R5bGVzXG4gICAgfSxcbiAgICBzdHlsZXM6IHtcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgcGFkZGluZ1RvcDogZXh0cmFQYWRkaW5nRm9yTWluaUNhcmRDbG9zZUJ1dHRvbklmVG9wUG9zaXRpb24rJ3B4JyxcbiAgICAgIG1hcmdpbkJvdHRvbTogbWFyZ2luQm90dG9tKydweCcsXG4gICAgICAuLi5zdHlsZXMsXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kID0gYXN5bmMgKCkgPT4ge1xuICBoYW5kbGVTdXJ2ZXlFbmQoKTtcbn07Il19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';
|
|
2
|
-
|
|
2
|
+
export { addSpotCheckListener, } from './SpotCheckEventListener';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYW5ndWxhci11aS9saWIvc3BvdGNoZWNrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsb0JBQW9CLEdBQ3JCLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBpbml0aWFsaXplU3BvdENoZWNrcywgdHJhY2tTY3JlZW4sIHRyYWNrRXZlbnQgfSBmcm9tICcuL1Nwb3RDaGVjayc7XG5leHBvcnQge1xuICBhZGRTcG90Q2hlY2tMaXN0ZW5lcixcbn0gZnJvbSAnLi9TcG90Q2hlY2tFdmVudExpc3RlbmVyJztcbmV4cG9ydCB0eXBlIHtcbiAgVXNlckRldGFpbHMsXG4gIFZhcmlhYmxlcyxcbiAgQ3VzdG9tUHJvcGVydGllcyxcbiAgVHJhY2tTY3JlZW5Qcm9wcyxcbiAgVHJhY2tFdmVudFByb3BzLFxuICBJbml0aWFsaXplU3BvdENoZWNrc1Byb3BzLFxufSBmcm9tICcuL3R5cGVzJztcbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import { v4 } from 'uuid';
|
|
6
6
|
import { Device } from '@capacitor/device';
|
|
7
7
|
import axios from 'axios';
|
|
8
|
-
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
9
9
|
import * as i1 from '@angular/platform-browser';
|
|
10
10
|
|
|
11
11
|
class SpotcheckStateService {
|
|
@@ -72,6 +72,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
72
72
|
}]
|
|
73
73
|
}] });
|
|
74
74
|
|
|
75
|
+
class SpotCheckEventListenerService {
|
|
76
|
+
eventSubject = new Subject();
|
|
77
|
+
event$ = this.eventSubject.asObservable();
|
|
78
|
+
emit(type, data) {
|
|
79
|
+
this.eventSubject.next({ type, data });
|
|
80
|
+
}
|
|
81
|
+
addListener(eventType, callback) {
|
|
82
|
+
return this.event$.subscribe((event) => {
|
|
83
|
+
if (event.type === eventType) {
|
|
84
|
+
callback(event.data);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
let globalInstance;
|
|
90
|
+
const getSpotCheckEventListener = () => {
|
|
91
|
+
if (!globalInstance) {
|
|
92
|
+
globalInstance = new SpotCheckEventListenerService();
|
|
93
|
+
}
|
|
94
|
+
return globalInstance;
|
|
95
|
+
};
|
|
96
|
+
const addSpotCheckListener = (eventType, callback) => {
|
|
97
|
+
return getSpotCheckEventListener().addListener(eventType, callback);
|
|
98
|
+
};
|
|
99
|
+
|
|
75
100
|
let globalSpotcheckStateService;
|
|
76
101
|
let globalOS = null;
|
|
77
102
|
const getSpotcheckStateService = () => {
|
|
@@ -268,7 +293,10 @@ const closeSpotCheck = async () => {
|
|
|
268
293
|
},
|
|
269
294
|
body: JSON.stringify(payload),
|
|
270
295
|
});
|
|
271
|
-
if (response.status
|
|
296
|
+
if (response.status == 200) {
|
|
297
|
+
getSpotCheckEventListener().emit('surveyDismissed');
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
272
300
|
console.log(`Error: ${response.status}`);
|
|
273
301
|
}
|
|
274
302
|
}
|
|
@@ -399,19 +427,22 @@ const getSpotcheckComponentCssStyles = (state) => {
|
|
|
399
427
|
};
|
|
400
428
|
};
|
|
401
429
|
const closeSpotCheckAndHandleSurveyEnd = async () => {
|
|
402
|
-
await closeSpotCheck();
|
|
403
430
|
handleSurveyEnd();
|
|
404
431
|
};
|
|
405
432
|
|
|
406
433
|
class WebViewComponent {
|
|
407
434
|
sanitizer;
|
|
435
|
+
ngZone;
|
|
436
|
+
cdr;
|
|
408
437
|
url = '';
|
|
409
438
|
webviewType = 'classic';
|
|
410
439
|
isMiniCard = false;
|
|
411
440
|
safeUrl = null;
|
|
412
441
|
iframe;
|
|
413
|
-
constructor(sanitizer) {
|
|
442
|
+
constructor(sanitizer, ngZone, cdr) {
|
|
414
443
|
this.sanitizer = sanitizer;
|
|
444
|
+
this.ngZone = ngZone;
|
|
445
|
+
this.cdr = cdr;
|
|
415
446
|
}
|
|
416
447
|
ngOnInit() {
|
|
417
448
|
if (this.url) {
|
|
@@ -438,14 +469,16 @@ class WebViewComponent {
|
|
|
438
469
|
setupIframeLoadListener() {
|
|
439
470
|
const iframe = this.iframe.nativeElement;
|
|
440
471
|
iframe.addEventListener('load', () => {
|
|
441
|
-
this.
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
472
|
+
this.ngZone.run(() => {
|
|
473
|
+
this.injectNativeBridgeAdapters(iframe);
|
|
474
|
+
const stateService = getSpotcheckStateService();
|
|
475
|
+
if (this.webviewType === 'classic') {
|
|
476
|
+
stateService.setState({ isClassicLoading: false });
|
|
477
|
+
}
|
|
478
|
+
else {
|
|
479
|
+
stateService.setState({ isChatLoading: false });
|
|
480
|
+
}
|
|
481
|
+
});
|
|
449
482
|
});
|
|
450
483
|
}
|
|
451
484
|
injectNativeBridgeAdapters(iframe) {
|
|
@@ -488,44 +521,49 @@ class WebViewComponent {
|
|
|
488
521
|
}
|
|
489
522
|
}
|
|
490
523
|
onMessage(event) {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
524
|
+
this.ngZone.run(() => {
|
|
525
|
+
const stateService = getSpotcheckStateService();
|
|
526
|
+
const { data } = event;
|
|
527
|
+
switch (data.type) {
|
|
528
|
+
case 'slideInFrame':
|
|
529
|
+
if (data.mounted) {
|
|
530
|
+
stateService.setState({ isMounted: true });
|
|
531
|
+
}
|
|
532
|
+
break;
|
|
533
|
+
case 'resizeWindow':
|
|
534
|
+
if (data.size) {
|
|
535
|
+
stateService.setState({
|
|
536
|
+
currentQuestionHeight: data.size.height,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
else if (data.isCloseButtonEnabled) {
|
|
540
|
+
stateService.setState({
|
|
541
|
+
isCloseButtonEnabled: data.isCloseButtonEnabled,
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
break;
|
|
545
|
+
case 'surveyCompleted':
|
|
546
|
+
closeSpotCheckAndHandleSurveyEnd().then(() => {
|
|
547
|
+
getSpotCheckEventListener().emit('surveyCompleted', data.response);
|
|
548
|
+
this.cdr.detectChanges();
|
|
508
549
|
});
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
default:
|
|
525
|
-
break;
|
|
526
|
-
}
|
|
550
|
+
break;
|
|
551
|
+
case 'surveyLoadStarted':
|
|
552
|
+
getSpotCheckEventListener().emit('surveyLoadStarted', data.surveyDetails);
|
|
553
|
+
break;
|
|
554
|
+
case 'classicLoadEvent':
|
|
555
|
+
stateService.setState({ isClassicLoadEventReceived: true });
|
|
556
|
+
break;
|
|
557
|
+
case 'chatLoadEvent':
|
|
558
|
+
stateService.setState({ isChatLoadEventReceived: true });
|
|
559
|
+
break;
|
|
560
|
+
default:
|
|
561
|
+
break;
|
|
562
|
+
}
|
|
563
|
+
this.cdr.detectChanges();
|
|
564
|
+
});
|
|
527
565
|
}
|
|
528
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
566
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
529
567
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: WebViewComponent, isStandalone: true, selector: "WebViewComponent", inputs: { url: "url", webviewType: "webviewType", isMiniCard: "isMiniCard" }, host: { listeners: { "window:message": "onMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframeRef"], descendants: true }], ngImport: i0, template: `
|
|
530
568
|
<div style="overflow: hidden; height: 100%; border-radius: {{isMiniCard ? 12 : 0}}px; padding-left: {{isMiniCard ? 12 : 0}}px; padding-right: {{isMiniCard ? 12 : 0}}px; box-sizing: border-box;">
|
|
531
569
|
<iframe
|
|
@@ -560,7 +598,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
560
598
|
standalone: true,
|
|
561
599
|
imports: [CommonModule],
|
|
562
600
|
}]
|
|
563
|
-
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { url: [{
|
|
601
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { url: [{
|
|
564
602
|
type: Input
|
|
565
603
|
}], webviewType: [{
|
|
566
604
|
type: Input
|
|
@@ -628,6 +666,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
628
666
|
type: Input
|
|
629
667
|
}] } });
|
|
630
668
|
class CloseButtonComponent {
|
|
669
|
+
ngZone;
|
|
670
|
+
cdr;
|
|
631
671
|
size = 30;
|
|
632
672
|
strokeWidth = 1.2;
|
|
633
673
|
state;
|
|
@@ -636,13 +676,18 @@ class CloseButtonComponent {
|
|
|
636
676
|
isVisible = false;
|
|
637
677
|
isMiniCard = false;
|
|
638
678
|
stroke = 'black';
|
|
639
|
-
constructor() {
|
|
679
|
+
constructor(ngZone, cdr) {
|
|
680
|
+
this.ngZone = ngZone;
|
|
681
|
+
this.cdr = cdr;
|
|
640
682
|
this.stateService = getSpotcheckStateService();
|
|
641
683
|
this.state = this.stateService.getState();
|
|
642
684
|
this.updateComponentState();
|
|
643
685
|
this.stateSubscription = this.stateService.state$.subscribe((newState) => {
|
|
644
|
-
this.
|
|
645
|
-
|
|
686
|
+
this.ngZone.run(() => {
|
|
687
|
+
this.state = newState;
|
|
688
|
+
this.updateComponentState();
|
|
689
|
+
this.cdr.detectChanges();
|
|
690
|
+
});
|
|
646
691
|
});
|
|
647
692
|
}
|
|
648
693
|
ngOnDestroy() {
|
|
@@ -665,8 +710,11 @@ class CloseButtonComponent {
|
|
|
665
710
|
onClick = async () => {
|
|
666
711
|
await closeSpotCheck();
|
|
667
712
|
handleSurveyEnd();
|
|
713
|
+
this.ngZone.run(() => {
|
|
714
|
+
this.cdr.detectChanges();
|
|
715
|
+
});
|
|
668
716
|
};
|
|
669
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
717
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
670
718
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: CloseButtonComponent, isStandalone: true, selector: "spotcheck-close-button", inputs: { size: "size", strokeWidth: "strokeWidth" }, ngImport: i0, template: `
|
|
671
719
|
<div style="position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;" (click)="onClick()" *ngIf="isVisible && isMiniCard">
|
|
672
720
|
<close-svg [size]="size" [stroke]="stroke" [strokeWidth]="strokeWidth" style="display: flex; align-items: center; justify-content: center;"/>
|
|
@@ -691,25 +739,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
691
739
|
standalone: true,
|
|
692
740
|
imports: [CommonModule, CloseSVGComponent],
|
|
693
741
|
}]
|
|
694
|
-
}], ctorParameters: () => [], propDecorators: { size: [{
|
|
742
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { size: [{
|
|
695
743
|
type: Input
|
|
696
744
|
}], strokeWidth: [{
|
|
697
745
|
type: Input
|
|
698
746
|
}] } });
|
|
699
747
|
class SpotCheckComponent {
|
|
748
|
+
ngZone;
|
|
749
|
+
cdr;
|
|
700
750
|
state;
|
|
701
751
|
spotcheckStateService;
|
|
702
752
|
stateSubscription;
|
|
703
753
|
componentStyles = {};
|
|
704
754
|
avatarUrl = '';
|
|
705
|
-
constructor() {
|
|
755
|
+
constructor(ngZone, cdr) {
|
|
756
|
+
this.ngZone = ngZone;
|
|
757
|
+
this.cdr = cdr;
|
|
706
758
|
this.spotcheckStateService = getSpotcheckStateService();
|
|
707
759
|
this.state = this.spotcheckStateService.getState();
|
|
708
760
|
this.updateComponentStyles();
|
|
709
761
|
this.stateSubscription = this.spotcheckStateService.state$.subscribe((newState) => {
|
|
710
|
-
this.
|
|
711
|
-
|
|
712
|
-
|
|
762
|
+
this.ngZone.run(() => {
|
|
763
|
+
this.state = newState;
|
|
764
|
+
this.updateComponentStyles();
|
|
765
|
+
this.avatarUrl = this.state.avatarUrl || "https://static.surveysparrow.com/application/images/profile.png";
|
|
766
|
+
this.cdr.detectChanges();
|
|
767
|
+
});
|
|
713
768
|
});
|
|
714
769
|
}
|
|
715
770
|
ngOnInit() {
|
|
@@ -758,13 +813,13 @@ class SpotCheckComponent {
|
|
|
758
813
|
console.log('Error initializing widget:', JSON.stringify(error));
|
|
759
814
|
}
|
|
760
815
|
};
|
|
761
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
816
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
762
817
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: SpotCheckComponent, isStandalone: true, selector: "SpotCheckComponent", ngImport: i0, template: "<div [ngStyle]=\"componentStyles.wrapperStyles\" class=\"safe-area\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".safe-area{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WebViewComponent, selector: "WebViewComponent", inputs: ["url", "webviewType", "isMiniCard"] }, { kind: "component", type: CloseButtonComponent, selector: "spotcheck-close-button", inputs: ["size", "strokeWidth"] }] });
|
|
763
818
|
}
|
|
764
819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, decorators: [{
|
|
765
820
|
type: Component,
|
|
766
821
|
args: [{ selector: 'SpotCheckComponent', standalone: true, imports: [CommonModule, WebViewComponent, CloseButtonComponent], template: "<div [ngStyle]=\"componentStyles.wrapperStyles\" class=\"safe-area\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n [isMiniCard]=\"state.spotChecksMode === 'miniCard'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".safe-area{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}\n"] }]
|
|
767
|
-
}], ctorParameters: () => [] });
|
|
822
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }] });
|
|
768
823
|
|
|
769
824
|
class SpotCheck {
|
|
770
825
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheck, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1066,5 +1121,5 @@ const trackEvent = async ({ screen, event }) => {
|
|
|
1066
1121
|
* Generated bundle index. Do not edit.
|
|
1067
1122
|
*/
|
|
1068
1123
|
|
|
1069
|
-
export { SpotCheck, initializeSpotChecks, trackEvent, trackScreen };
|
|
1124
|
+
export { SpotCheck, addSpotCheckListener, initializeSpotChecks, trackEvent, trackScreen };
|
|
1070
1125
|
//# sourceMappingURL=angular-ui.mjs.map
|