surveysparrow-ionic-plugin 1.0.7-beta.16 → 1.0.7-beta.17
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/helpers.mjs +2 -2
- package/dist/angular-ui/fesm2022/angular-ui.mjs +1 -1
- package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js +1 -1
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -1
- package/dist/plugin.cjs.js +1 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/package.json +1 -1
- package/src/angular-ui/lib/spotchecks/helpers.ts +1 -1
|
@@ -169,7 +169,7 @@ export const setAppearance = async (responseJson, screen, domainName, traceId, v
|
|
|
169
169
|
throw new Error(error.message);
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
|
-
throw new Error('
|
|
172
|
+
throw new Error('Something went wrong');
|
|
173
173
|
}
|
|
174
174
|
catch (error) {
|
|
175
175
|
throw new Error(error.message);
|
|
@@ -324,4 +324,4 @@ export const closeSpotCheckAndHandleSurveyEnd = async () => {
|
|
|
324
324
|
await closeSpotCheck();
|
|
325
325
|
handleSurveyEnd();
|
|
326
326
|
};
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2tzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxJQUFJLDJCQUFrRCxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQTBCLEVBQUU7SUFDbEUsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDakMsMkJBQTJCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLDJCQUEyQixDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixPQUFPLEdBQUcsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUMzQyxPQUFPLENBQ0wsSUFBSSxLQUFLLGdCQUFnQjtRQUN6QixJQUFJLEtBQUssU0FBUztRQUNsQixJQUFJLEtBQUssU0FBUztRQUNsQixJQUFJLEtBQUssVUFBVSxDQUNwQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxD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UCxPQUFPLEVBQUUsTUFBTTtvQkFDZixNQUFNLEVBQUUsTUFBTSxHQUFDLElBQUk7aUJBQ3BCLENBQUM7Z0JBQ0YsYUFBYSxHQUFHO29CQUNkLE9BQU8sRUFBRSxNQUFNO29CQUNmLGNBQWMsRUFBRSxRQUFRO2lCQUN6QixDQUFDO2dCQUNKLE1BQU07WUFFUjtnQkFDRSxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsYUFBYSxFQUFFO1lBQ2IsUUFBUSxFQUFFLE9BQU87WUFDakIsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLEdBQUc7WUFDVCxlQUFlLEVBQUUsb0JBQW9CO1lBQ3JDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFFBQVE7WUFDdkIsVUFBVSxFQUFFLE9BQU8sR0FBQyxJQUFJO1lBQ3hCLGFBQWEsRUFBRSxPQUFPLEdBQUMsSUFBSTtZQUMzQixHQUFHLGFBQWE7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsTUFBTTtZQUNmLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLEdBQUcsTUFBTTtTQUNWO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ3pELE1BQU0sY0FBYyxFQUFFLENBQUM7SUFDdkIsZUFBZSxFQUFFLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdAY2FwYWNpdG9yL2RldmljZSc7XG5pbXBvcnQgeyBTcG90Y2hlY2tTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlU2VydmljZSB9IGZyb20gJy4vU3BvdGNoZWNrU3RhdGVTZXJ2aWNlJztcblxubGV0IGdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlO1xuXG5leHBvcnQgY29uc3QgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0gKCk6IFNwb3RjaGVja1N0YXRlU2VydmljZSA9PiB7XG4gIGlmICghZ2xvYmFsU3BvdGNoZWNrU3RhdGVTZXJ2aWNlKSB7XG4gICAgZ2xvYmFsU3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0gbmV3IFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICB9XG4gIHJldHVybiBnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUcmFjZUlkKCkge1xuICBjb25zdCB1dWlkU3RyaW5nID0gdXVpZHY0KCk7XG4gIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gIHJldHVybiBgJHt1dWlkU3RyaW5nfS0ke3RpbWVzdGFtcH1gO1xufVxuXG5leHBvcnQgY29uc3QgaXNjaGF0U3VydmV5ID0gKHR5cGU6IFN0cmluZykgPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGUgPT09ICdDb252ZXJzYXRpb25hbCcgfHxcbiAgICB0eXBlID09PSAnQ0VTQ2hhdCcgfHxcbiAgICB0eXBlID09PSAnTlBTQ2hhdCcgfHxcbiAgICB0eXBlID09PSAnQ1NBVENoYXQnXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0T1MgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGluZm8gPSBhd2FpdCBEZXZpY2UuZ2V0SW5mbygpO1xuICByZXR1cm4gaW5mby5vcGVyYXRpbmdTeXN0ZW07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0QXBwZWFyYW5jZSA9IGFzeW5jIChcbiAgcmVzcG9uc2VKc29uOiBhbnksXG4gIHNjcmVlbjogc3RyaW5nLFxuICBkb21haW5OYW1lOiBzdHJpbmcsXG4gIHRyYWNlSWQ6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4pID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBsZXQgc3RhdGUgPSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcblxuICAgIGlmIChyZXNwb25zZUpzb24pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTcG90Y2hlY2sgPSBzdGF0ZS5maWx0ZXJlZFNwb3RDaGVja3MuZmluZChcbiAgICAgICAgKHNwb3RjaGVjaykgPT5cbiAgICAgICAgICBzcG90Y2hlY2tbJ2lkJ10gPT09IHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrSWQgfHxcbiAgICAgICAgICBzcG90Y2hlY2tbJ2lkJ10gPT09IHJlc3BvbnNlSnNvbj8uaWRcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGFwcGVhcmFuY2UgPSByZXNwb25zZUpzb24/LmFwcGVhcmFuY2U7XG4gICAgICBsZXQgY2hhdCA9IGZhbHNlO1xuXG4gICAgICBsZXQgdXBkYXRlZFN0YXRlOiBQYXJ0aWFsPFNwb3RjaGVja1N0YXRlPiA9IHt9O1xuXG4gICAgICBpZiAoYXBwZWFyYW5jZSkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgY2xvc2VCdXR0b24sXG4gICAgICAgICAgY29sb3JzLFxuICAgICAgICAgIGNhcmRQcm9wZXJ0aWVzLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgYmFubmVySW1hZ2UsXG4gICAgICAgIH0gPSBhcHBlYXJhbmNlO1xuICAgICAgICBjb25zdCB7IG1heEhlaWdodCB9ID0gY2FyZFByb3BlcnRpZXMgfHwge307XG5cbiAgICAgICAgdXBkYXRlZFN0YXRlID0ge1xuICAgICAgICAgIHNwb3RjaGVja1Bvc2l0aW9uOlxuICAgICAgICAgICAgcG9zaXRpb24gPT09ICd0b3BfZnVsbCcgfHwgcG9zaXRpb24gPT09ICdjZW50ZXJfdG9wJ1xuICAgICAgICAgICAgICA/ICd0b3AnXG4gICAgICAgICAgICAgIDogcG9zaXRpb24gPT09ICdjZW50ZXJfY2VudGVyJ1xuICAgICAgICAgICAgICA/ICdjZW50ZXInXG4gICAgICAgICAgICAgIDogJ2JvdHRvbScsXG4gICAgICAgICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGNsb3NlQnV0dG9uID8/IHRydWUsXG4gICAgICAgICAgY2xvc2VCdXR0b25TdHlsZTogY29sb3JzPy5vdmVycmlkZXMgPz8ge30sXG4gICAgICAgICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHQgPyBwYXJzZUZsb2F0KG1heEhlaWdodCkgLyAxMDAgOiAwLFxuICAgICAgICAgIHNwb3RDaGVja1R5cGU6XG4gICAgICAgICAgICBpc2NoYXRTdXJ2ZXkoY3VycmVudFNwb3RjaGVjaz8uWydzdXJ2ZXknXT8uc3VydmV5VHlwZSkgJiZcbiAgICAgICAgICAgIG1vZGUgPT09ICdmdWxsU2NyZWVuJ1xuICAgICAgICAgICAgICA/ICdjaGF0J1xuICAgICAgICAgICAgICA6ICdjbGFzc2ljJyxcbiAgICAgICAgICBpc0Z1bGxTY3JlZW5Nb2RlOiBtb2RlID09PSAnZnVsbFNjcmVlbicsXG4gICAgICAgICAgaXNCYW5uZXJJbWFnZU9uOiBiYW5uZXJJbWFnZT8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICBzcG90Q2hlY2tzTW9kZTogbW9kZSxcbiAgICAgICAgICBhdmF0YXJFbmFibGVkOiBhcHBlYXJhbmNlPy5hdmF0YXI/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgICAgYXZhdGFyVXJsOiBhcHBlYXJhbmNlPy5hdmF0YXI/LmF2YXRhclVybCA/PyAnJyxcbiAgICAgICAgfTtcblxuICAgICAgICBjaGF0ID0gdXBkYXRlZFN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0JztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3BvdENoZWNrSWQgPSByZXNwb25zZUpzb24/LnNwb3RDaGVja0lkID8/IDA7XG4gICAgICBjb25zdCBzcG90Q2hlY2tDb250YWN0SWQgPVxuICAgICAgICByZXNwb25zZUpzb24/LnNwb3RDaGVja0NvbnRhY3RJZCA/P1xuICAgICAgICByZXNwb25zZUpzb24/LnNwb3RDaGVja0NvbnRhY3Q/LmlkID8/XG4gICAgICAgIDA7XG4gICAgICBjb25zdCB0cmlnZ2VyVG9rZW4gPSByZXNwb25zZUpzb24/LnRyaWdnZXJUb2tlbiA/PyAnJztcblxuICAgICAgdXBkYXRlZFN0YXRlID0ge1xuICAgICAgICAuLi51cGRhdGVkU3RhdGUsXG4gICAgICAgIHNwb3RjaGVja0lEOiBzcG90Q2hlY2tJZCxcbiAgICAgICAgc3BvdGNoZWNrQ29udGFjdElEOiBzcG90Q2hlY2tDb250YWN0SWQsXG4gICAgICAgIHRyaWdnZXJUb2tlbixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJhc2VTcG90Y2hlY2tVUkwgPSBgaHR0cHM6Ly8ke2RvbWFpbk5hbWV9L3Mvc3BvdGNoZWNrLyR7dHJpZ2dlclRva2VufS8ke1xuICAgICAgICBjaGF0ID8gJ2NvbmZpZycgOiAnYm9vdHN0cmFwJ1xuICAgICAgfT9zcG90Y2hlY2tDb250YWN0SWQ9JHtzcG90Q2hlY2tDb250YWN0SWR9JnRyYWNlSWQ9JHt0cmFjZUlkfSZzcG90Y2hlY2tVcmw9JHtzY3JlZW59YDtcblxuICAgICAgbGV0IGZ1bGxTcG90Y2hlY2tVUkwgPSBiYXNlU3BvdGNoZWNrVVJMO1xuXG4gICAgICBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBmdWxsU3BvdGNoZWNrVVJMICs9IGAmJHtrZXl9PSR7dmFsdWV9YDtcbiAgICAgIH0pO1xuXG4gICAgICB1cGRhdGVkU3RhdGUuc3BvdGNoZWNrVVJMID0gZnVsbFNwb3RjaGVja1VSTDtcbiAgICAgIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh1cGRhdGVkU3RhdGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChmdWxsU3BvdGNoZWNrVVJMKTtcbiAgICAgICAgY29uc3QgdGhlbWVJbmZvID0gcmVzcG9uc2UuZGF0YS5jb25maWcuZ2VuZXJhdGVkQ1NTO1xuICAgICAgICBjb25zdCB0aGVtZV9wYXlsb2FkID0geyB0eXBlOiAnVEhFTUVfVVBEQVRFX1NQT1RDSEVDSycsIHRoZW1lSW5mbyB9O1xuICAgICAgICBzdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gICAgICAgIGxldCB3ZWJWaWV3UmVmID0gY2hhdCA/IHN0YXRlLmNoYXRXZWJWaWV3UmVmIDogc3RhdGUuY2xhc3NpY1dlYlZpZXdSZWY7XG4gICAgICAgIGxldCBpc0xvYWRpbmcgPSBjaGF0ID8gc3RhdGUuaXNDaGF0TG9hZGluZyA6IHN0YXRlLmlzQ2xhc3NpY0xvYWRpbmc7XG5cbiAgICAgICAgY29uc3QgcmVzZXRTdGF0ZURhdGEgPSB7XG4gICAgICAgICAgdHlwZTogJ1JFU0VUX1NUQVRFJyxcbiAgICAgICAgICBzdGF0ZToge1xuICAgICAgICAgICAgLi4uKHJlc3BvbnNlLmRhdGEgfHwge30pLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgIHNwb3RDaGVja0FwcGVhcmFuY2U6IHtcbiAgICAgICAgICAgICAgLi4uKGFwcGVhcmFuY2UgfHwge30pLFxuICAgICAgICAgICAgICB0YXJnZXRUeXBlOiAnTU9CSUxFJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzcG90Y2hlY2tVcmw6IHNjcmVlbixcbiAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICBlbGVtZW50QnVpbGRlclBhcmFtczoge1xuICAgICAgICAgICAgICAuLi4odmFyaWFibGVzIHx8IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZW5kTWVzc2FnZVRvSWZyYW1lID0gKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChpZnJhbWUgJiYgaWZyYW1lLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKGRhdGEsICcqJyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0byBpZnJhbWU6JywgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb21tdW5pY2F0ZVdpdGhXZWJWaWV3ID0gYXN5bmMgKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQpID0+IHtcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb0lmcmFtZShpZnJhbWUsIHJlc2V0U3RhdGVEYXRhKTtcbiAgICAgICAgICAgIHNlbmRNZXNzYWdlVG9JZnJhbWUoaWZyYW1lLCB0aGVtZV9wYXlsb2FkKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSwgMjAwMCkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh3ZWJWaWV3UmVmKSB7XG4gICAgICAgICAgaWYgKGlzTG9hZGluZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbW11bmljYXRlV2l0aFdlYlZpZXcod2ViVmlld1JlZik7XG4gICAgICAgICAgICBzdGFydCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRvZG86IHJlY2hlY2sgdGhpc1xuICAgICAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIGlzQ2hhdExvYWRpbmcsXG4gICAgICAgICAgICAgICAgICBpc0NsYXNzaWNMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgY2hhdFdlYlZpZXdSZWYsXG4gICAgICAgICAgICAgICAgICBjbGFzc2ljV2ViVmlld1JlZixcbiAgICAgICAgICAgICAgICB9ID0gY3VycmVudFN0YXRlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCghaXNDaGF0TG9hZGluZyAmJiBjaGF0KSB8fCAoIWlzQ2xhc3NpY0xvYWRpbmcgJiYgIWNoYXQpKSB7XG4gICAgICAgICAgICAgICAgICB1bnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlV2ViVmlld1JlZiA9IGNoYXRcbiAgICAgICAgICAgICAgICAgICAgPyBjaGF0V2ViVmlld1JlZlxuICAgICAgICAgICAgICAgICAgICA6IGNsYXNzaWNXZWJWaWV3UmVmO1xuICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVdlYlZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyhhY3RpdmVXZWJWaWV3UmVmKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAn4pqg77iPIEFjdGl2ZSBXZWJWaWV3IHJlZiBpcyBudWxsIGFmdGVyIGxvYWRpbmcgY29tcGxldGVkJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZVdlYlZpZXcgPSBzcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgICAgICAgIChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFdlYlZpZXdSZWYgPSBjaGF0XG4gICAgICAgICAgICAgICAgPyBjdXJyZW50U3RhdGUuY2hhdFdlYlZpZXdSZWZcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZElzTG9hZGluZyA9IGNoYXRcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTdGF0ZS5pc0NoYXRMb2FkaW5nXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50U3RhdGUuaXNDbGFzc2ljTG9hZGluZztcblxuICAgICAgICAgICAgICBpZiAodXBkYXRlZFdlYlZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXVwZGF0ZWRJc0xvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICAgIHVuc3Vic2NyaWJlV2ViVmlldy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyh1cGRhdGVkV2ViVmlld1JlZik7XG4gICAgICAgICAgICAgICAgICBzdGFydCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn4o+zIFdlYlZpZXcgcmVmIGF2YWlsYWJsZSBidXQgc3RpbGwgbG9hZGluZy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJzIxMicpO1xuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RhcnQgPSAoKSA9PiB7XG4gIGNvbnN0IHN0YXRlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuZ2V0U3RhdGUoKTtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCkuc2V0U3RhdGUoeyBpc1Zpc2libGU6IHRydWUgfSk7XG4gIH0sIHN0YXRlLmFmdGVyRGVsYXkgKiAxMDAwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbG9zZVNwb3RDaGVjayA9IGFzeW5jICgpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCBzdGF0ZSA9IHN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0cmFjZUlkOiBzdGF0ZS50cmFjZUlkLFxuICAgICAgdHJpZ2dlclRva2VuOiBzdGF0ZS50cmlnZ2VyVG9rZW4sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICBgaHR0cHM6Ly8ke3N0YXRlLmRvbWFpbk5hbWV9L2FwaS9pbnRlcm5hbC9zcG90Y2hlY2svZGlzbWlzcy8ke3N0YXRlLnNwb3RjaGVja0NvbnRhY3RJRH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhgRXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygnRXJyb3IgcGFyc2luZyBKU09OOicsIGVycm9yKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVN1cnZleUVuZCA9ICgpID0+IHtcbiAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIGNvbnN0IHN0YXRlID0gc3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG4gIGNvbnN0IHdlYlZpZXdSZWYgPVxuICAgIHN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjaGF0J1xuICAgICAgPyBzdGF0ZS5jaGF0V2ViVmlld1JlZlxuICAgICAgOiBzdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcblxuICB3ZWJWaWV3UmVmPy5jdXJyZW50Py5pbmplY3RKYXZhU2NyaXB0KGBcbiAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgnbWVzc2FnZScsIHtcbiAgICAgICAgICBkYXRhOiAke0pTT04uc3RyaW5naWZ5KHsgdHlwZTogJ1VOTU9VTlRfQVBQJyB9KX1cbiAgICAgICAgfSkpO1xuICAgICAgfSkoKTtcbiAgICBgKTtcblxuICBjb25zdCB1cGRhdGVkU3RhdGU6IFBhcnRpYWw8U3BvdGNoZWNrU3RhdGU+ID0ge1xuICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgaXNDbG9zZUJ1dHRvbkVuYWJsZWQ6IGZhbHNlLFxuICAgIGlzRnVsbFNjcmVlbk1vZGU6IGZhbHNlLFxuICAgIHNwb3RjaGVja0lEOiAwLFxuICAgIGN1cnJlbnRRdWVzdGlvbkhlaWdodDogMCxcbiAgICBjbG9zZUJ1dHRvblN0eWxlOiB7fSxcbiAgICBzcG90Y2hlY2tDb250YWN0SUQ6IDAsXG4gICAgc3BvdGNoZWNrVVJMOiAnJyxcbiAgICBzcG90Y2hlY2tQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgaXNNb3VudGVkOiBmYWxzZSxcbiAgICBzcG90Q2hlY2tUeXBlOiAnJyxcbiAgICBzY3JlZW5IZWlnaHQ6IDAsXG4gICAga2V5Qm9hcmRIZWlnaHQ6IDAsXG4gICAgdGV4dFBvc2l0aW9uOiAwLFxuICAgIHNwb3RDaGVja3NNb2RlOiAnJyxcbiAgICBhdmF0YXJFbmFibGVkOiBmYWxzZSxcbiAgICBhdmF0YXJVcmw6ICcnLFxuICB9O1xuXG4gIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh1cGRhdGVkU3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyA9IChzdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHsgXG4gIGxldCBzdHlsZXMgPSB7fVxuICBsZXQgd3JhcHBlclN0eWxlcyA9IHt9XG4gIGxldCBwYWRkaW5nID0gMzA7XG4gIGlmIChzdGF0ZS5pc0Z1bGxTY3JlZW5Nb2RlICYmIHN0YXRlLmlzVmlzaWJsZSkge1xuICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9O1xuICAgIHN0eWxlcyA9IHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gIH1cbiAgXG4gIGlmIChzdGF0ZS5pc1Zpc2libGUgJiYgc3RhdGUuaXNNb3VudGVkKSB7XG5cbiAgICBsZXQgaGVpZ2h0ID0gTWF0aC5taW4oc3RhdGUuY3VycmVudFF1ZXN0aW9uSGVpZ2h0LCAoc3RhdGUubWF4SGVpZ2h0ICogd2luZG93LmlubmVySGVpZ2h0KSk7XG4gICAgaWYoc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcpIHtcbiAgICAgIHBhZGRpbmcgPSA0NTtcbiAgICAgIGlmKHN0YXRlLmF2YXRhckVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNTY7XG4gICAgICB9XG4gICAgICBpZihzdGF0ZS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCkge1xuICAgICAgICBoZWlnaHQgPSBoZWlnaHQgLSA0MDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKHN0YXRlLnNwb3RjaGVja1Bvc2l0aW9uKSB7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGhlaWdodDogaGVpZ2h0KydweCcsXG4gICAgICAgIH07XG4gICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgc3R5bGVzID0ge1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQrJ3B4JyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgICAgIFxuICAgICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgICAgIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0KydweCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB3cmFwcGVyU3R5bGVzID0ge1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIHtcbiAgICB3cmFwcGVyU3R5bGVzOiB7XG4gICAgICBwb3NpdGlvbjogJ2ZpeGVkJywgXG4gICAgICB3aWR0aDogJzEwMCUnLCBcbiAgICAgIGhlaWdodDogJzEwMCUnLCBcbiAgICAgIHRvcDogJzAnLCBcbiAgICAgIGxlZnQ6ICcwJywgXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDAuMyknLCBcbiAgICAgIHpJbmRleDogJzk5OTk5OTk5JyxcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgcGFkZGluZ1RvcDogcGFkZGluZysncHgnLFxuICAgICAgcGFkZGluZ0JvdHRvbTogcGFkZGluZysncHgnLFxuICAgICAgLi4ud3JhcHBlclN0eWxlc1xuICAgIH0sXG4gICAgc3R5bGVzOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgIC4uLnN0eWxlcyxcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY2xvc2VTcG90Q2hlY2tBbmRIYW5kbGVTdXJ2ZXlFbmQgPSBhc3luYyAoKSA9PiB7XG4gIGF3YWl0IGNsb3NlU3BvdENoZWNrKCk7XG4gIGhhbmRsZVN1cnZleUVuZCgpO1xufTsiXX0=
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2tzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxJQUFJLDJCQUFrRCxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQTBCLEVBQUU7SUFDbEUsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDakMsMkJBQTJCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLDJCQUEyQixDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixPQUFPLEdBQUcsVUFBVSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUMzQyxPQUFPLENBQ0wsSUFBSSxLQUFLLGdCQUFnQjtRQUN6QixJQUFJLEtBQUssU0FBUztRQUNsQixJQUFJLEtBQUssU0FBUztRQUNsQixJQUFJLEtBQUssVUFBVSxDQUNwQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxD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QUNQLE9BQU8sRUFBRSxNQUFNO29CQUNmLE1BQU0sRUFBRSxNQUFNLEdBQUMsSUFBSTtpQkFDcEIsQ0FBQztnQkFDRixhQUFhLEdBQUc7b0JBQ2QsT0FBTyxFQUFFLE1BQU07b0JBQ2YsY0FBYyxFQUFFLFFBQVE7aUJBQ3pCLENBQUM7Z0JBQ0osTUFBTTtZQUVSO2dCQUNFLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxhQUFhLEVBQUU7WUFDYixRQUFRLEVBQUUsT0FBTztZQUNqQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLEdBQUc7WUFDUixJQUFJLEVBQUUsR0FBRztZQUNULGVBQWUsRUFBRSxvQkFBb0I7WUFDckMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsUUFBUTtZQUN2QixVQUFVLEVBQUUsT0FBTyxHQUFDLElBQUk7WUFDeEIsYUFBYSxFQUFFLE9BQU8sR0FBQyxJQUFJO1lBQzNCLEdBQUcsYUFBYTtTQUNqQjtRQUNELE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFFBQVE7WUFDdkIsR0FBRyxNQUFNO1NBQ1Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDekQsTUFBTSxjQUFjLEVBQUUsQ0FBQztJQUN2QixlQUFlLEVBQUUsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0BjYXBhY2l0b3IvZGV2aWNlJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9TcG90Y2hlY2tTdGF0ZVNlcnZpY2UnO1xuXG5sZXQgZ2xvYmFsU3BvdGNoZWNrU3RhdGVTZXJ2aWNlOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG5cbmV4cG9ydCBjb25zdCBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSAoKTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0+IHtcbiAgaWYgKCFnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2UpIHtcbiAgICBnbG9iYWxTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgPSBuZXcgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIH1cbiAgcmV0dXJuIGdsb2JhbFNwb3RjaGVja1N0YXRlU2VydmljZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRyYWNlSWQoKSB7XG4gIGNvbnN0IHV1aWRTdHJpbmcgPSB1dWlkdjQoKTtcbiAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgcmV0dXJuIGAke3V1aWRTdHJpbmd9LSR7dGltZXN0YW1wfWA7XG59XG5cbmV4cG9ydCBjb25zdCBpc2NoYXRTdXJ2ZXkgPSAodHlwZTogU3RyaW5nKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZSA9PT0gJ0NvbnZlcnNhdGlvbmFsJyB8fFxuICAgIHR5cGUgPT09ICdDRVNDaGF0JyB8fFxuICAgIHR5cGUgPT09ICdOUFNDaGF0JyB8fFxuICAgIHR5cGUgPT09ICdDU0FUQ2hhdCdcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPUyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgaW5mbyA9IGF3YWl0IERldmljZS5nZXRJbmZvKCk7XG4gIHJldHVybiBpbmZvLm9wZXJhdGluZ1N5c3RlbTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRBcHBlYXJhbmNlID0gYXN5bmMgKFxuICByZXNwb25zZUpzb246IGFueSxcbiAgc2NyZWVuOiBzdHJpbmcsXG4gIGRvbWFpbk5hbWU6IHN0cmluZyxcbiAgdHJhY2VJZDogc3RyaW5nLFxuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT5cbikgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIGxldCBzdGF0ZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuXG4gICAgaWYgKHJlc3BvbnNlSnNvbikge1xuICAgICAgY29uc3QgY3VycmVudFNwb3RjaGVjayA9IHN0YXRlLmZpbHRlcmVkU3BvdENoZWNrcy5maW5kKFxuICAgICAgICAoc3BvdGNoZWNrKSA9PlxuICAgICAgICAgIHNwb3RjaGVja1snaWQnXSA9PT0gcmVzcG9uc2VKc29uPy5zcG90Q2hlY2tJZCB8fFxuICAgICAgICAgIHNwb3RjaGVja1snaWQnXSA9PT0gcmVzcG9uc2VKc29uPy5pZFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYXBwZWFyYW5jZSA9IHJlc3BvbnNlSnNvbj8uYXBwZWFyYW5jZTtcbiAgICAgIGxldCBjaGF0ID0gZmFsc2U7XG5cbiAgICAgIGxldCB1cGRhdGVkU3RhdGU6IFBhcnRpYWw8U3BvdGNoZWNrU3RhdGU+ID0ge307XG5cbiAgICAgIGlmIChhcHBlYXJhbmNlKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICBjbG9zZUJ1dHRvbixcbiAgICAgICAgICBjb2xvcnMsXG4gICAgICAgICAgY2FyZFByb3BlcnRpZXMsXG4gICAgICAgICAgbW9kZSxcbiAgICAgICAgICBiYW5uZXJJbWFnZSxcbiAgICAgICAgfSA9IGFwcGVhcmFuY2U7XG4gICAgICAgIGNvbnN0IHsgbWF4SGVpZ2h0IH0gPSBjYXJkUHJvcGVydGllcyB8fCB7fTtcblxuICAgICAgICB1cGRhdGVkU3RhdGUgPSB7XG4gICAgICAgICAgc3BvdGNoZWNrUG9zaXRpb246XG4gICAgICAgICAgICBwb3NpdGlvbiA9PT0gJ3RvcF9mdWxsJyB8fCBwb3NpdGlvbiA9PT0gJ2NlbnRlcl90b3AnXG4gICAgICAgICAgICAgID8gJ3RvcCdcbiAgICAgICAgICAgICAgOiBwb3NpdGlvbiA9PT0gJ2NlbnRlcl9jZW50ZXInXG4gICAgICAgICAgICAgID8gJ2NlbnRlcidcbiAgICAgICAgICAgICAgOiAnYm90dG9tJyxcbiAgICAgICAgICBpc0Nsb3NlQnV0dG9uRW5hYmxlZDogY2xvc2VCdXR0b24gPz8gdHJ1ZSxcbiAgICAgICAgICBjbG9zZUJ1dHRvblN0eWxlOiBjb2xvcnM/Lm92ZXJyaWRlcyA/PyB7fSxcbiAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCA/IHBhcnNlRmxvYXQobWF4SGVpZ2h0KSAvIDEwMCA6IDAsXG4gICAgICAgICAgc3BvdENoZWNrVHlwZTpcbiAgICAgICAgICAgIGlzY2hhdFN1cnZleShjdXJyZW50U3BvdGNoZWNrPy5bJ3N1cnZleSddPy5zdXJ2ZXlUeXBlKSAmJlxuICAgICAgICAgICAgbW9kZSA9PT0gJ2Z1bGxTY3JlZW4nXG4gICAgICAgICAgICAgID8gJ2NoYXQnXG4gICAgICAgICAgICAgIDogJ2NsYXNzaWMnLFxuICAgICAgICAgIGlzRnVsbFNjcmVlbk1vZGU6IG1vZGUgPT09ICdmdWxsU2NyZWVuJyxcbiAgICAgICAgICBpc0Jhbm5lckltYWdlT246IGJhbm5lckltYWdlPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgIHNwb3RDaGVja3NNb2RlOiBtb2RlLFxuICAgICAgICAgIGF2YXRhckVuYWJsZWQ6IGFwcGVhcmFuY2U/LmF2YXRhcj8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICBhdmF0YXJVcmw6IGFwcGVhcmFuY2U/LmF2YXRhcj8uYXZhdGFyVXJsID8/ICcnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNoYXQgPSB1cGRhdGVkU3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzcG90Q2hlY2tJZCA9IHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrSWQgPz8gMDtcbiAgICAgIGNvbnN0IHNwb3RDaGVja0NvbnRhY3RJZCA9XG4gICAgICAgIHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrQ29udGFjdElkID8/XG4gICAgICAgIHJlc3BvbnNlSnNvbj8uc3BvdENoZWNrQ29udGFjdD8uaWQgPz9cbiAgICAgICAgMDtcbiAgICAgIGNvbnN0IHRyaWdnZXJUb2tlbiA9IHJlc3BvbnNlSnNvbj8udHJpZ2dlclRva2VuID8/ICcnO1xuXG4gICAgICB1cGRhdGVkU3RhdGUgPSB7XG4gICAgICAgIC4uLnVwZGF0ZWRTdGF0ZSxcbiAgICAgICAgc3BvdGNoZWNrSUQ6IHNwb3RDaGVja0lkLFxuICAgICAgICBzcG90Y2hlY2tDb250YWN0SUQ6IHNwb3RDaGVja0NvbnRhY3RJZCxcbiAgICAgICAgdHJpZ2dlclRva2VuLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYmFzZVNwb3RjaGVja1VSTCA9IGBodHRwczovLyR7ZG9tYWluTmFtZX0vcy9zcG90Y2hlY2svJHt0cmlnZ2VyVG9rZW59LyR7XG4gICAgICAgIGNoYXQgPyAnY29uZmlnJyA6ICdib290c3RyYXAnXG4gICAgICB9P3Nwb3RjaGVja0NvbnRhY3RJZD0ke3Nwb3RDaGVja0NvbnRhY3RJZH0mdHJhY2VJZD0ke3RyYWNlSWR9JnNwb3RjaGVja1VybD0ke3NjcmVlbn1gO1xuXG4gICAgICBsZXQgZnVsbFNwb3RjaGVja1VSTCA9IGJhc2VTcG90Y2hlY2tVUkw7XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGZ1bGxTcG90Y2hlY2tVUkwgKz0gYCYke2tleX09JHt2YWx1ZX1gO1xuICAgICAgfSk7XG5cbiAgICAgIHVwZGF0ZWRTdGF0ZS5zcG90Y2hlY2tVUkwgPSBmdWxsU3BvdGNoZWNrVVJMO1xuICAgICAgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHVwZGF0ZWRTdGF0ZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KGZ1bGxTcG90Y2hlY2tVUkwpO1xuICAgICAgICBjb25zdCB0aGVtZUluZm8gPSByZXNwb25zZS5kYXRhLmNvbmZpZy5nZW5lcmF0ZWRDU1M7XG4gICAgICAgIGNvbnN0IHRoZW1lX3BheWxvYWQgPSB7IHR5cGU6ICdUSEVNRV9VUERBVEVfU1BPVENIRUNLJywgdGhlbWVJbmZvIH07XG4gICAgICAgIHN0YXRlID0gc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCk7XG5cbiAgICAgICAgbGV0IHdlYlZpZXdSZWYgPSBjaGF0ID8gc3RhdGUuY2hhdFdlYlZpZXdSZWYgOiBzdGF0ZS5jbGFzc2ljV2ViVmlld1JlZjtcbiAgICAgICAgbGV0IGlzTG9hZGluZyA9IGNoYXQgPyBzdGF0ZS5pc0NoYXRMb2FkaW5nIDogc3RhdGUuaXNDbGFzc2ljTG9hZGluZztcblxuICAgICAgICBjb25zdCByZXNldFN0YXRlRGF0YSA9IHtcbiAgICAgICAgICB0eXBlOiAnUkVTRVRfU1RBVEUnLFxuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAuLi4ocmVzcG9uc2UuZGF0YSB8fCB7fSksXG4gICAgICAgICAgICBza2lwOiB0cnVlLFxuICAgICAgICAgICAgc3BvdENoZWNrQXBwZWFyYW5jZToge1xuICAgICAgICAgICAgICAuLi4oYXBwZWFyYW5jZSB8fCB7fSksXG4gICAgICAgICAgICAgIHRhcmdldFR5cGU6ICdNT0JJTEUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNwb3RjaGVja1VybDogc2NyZWVuLFxuICAgICAgICAgICAgdHJhY2VJZCxcbiAgICAgICAgICAgIGVsZW1lbnRCdWlsZGVyUGFyYW1zOiB7XG4gICAgICAgICAgICAgIC4uLih2YXJpYWJsZXMgfHwge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHNlbmRNZXNzYWdlVG9JZnJhbWUgPSAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCwgZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlmcmFtZSAmJiBpZnJhbWUuY29udGVudFdpbmRvdykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoZGF0YSwgJyonKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvIGlmcmFtZTonLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbW11bmljYXRlV2l0aFdlYlZpZXcgPSBhc3luYyAoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGlmcmFtZSwgcmVzZXRTdGF0ZURhdGEpO1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb0lmcmFtZShpZnJhbWUsIHRoZW1lX3BheWxvYWQpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LCAyMDAwKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHdlYlZpZXdSZWYpIHtcbiAgICAgICAgICBpZiAoaXNMb2FkaW5nID09PSBmYWxzZSkge1xuICAgICAgICAgICAgY29tbXVuaWNhdGVXaXRoV2ViVmlldyh3ZWJWaWV3UmVmKTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG9kbzogcmVjaGVjayB0aGlzXG4gICAgICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgaXNDaGF0TG9hZGluZyxcbiAgICAgICAgICAgICAgICAgIGlzQ2xhc3NpY0xvYWRpbmcsXG4gICAgICAgICAgICAgICAgICBjaGF0V2ViVmlld1JlZixcbiAgICAgICAgICAgICAgICAgIGNsYXNzaWNXZWJWaWV3UmVmLFxuICAgICAgICAgICAgICAgIH0gPSBjdXJyZW50U3RhdGU7XG5cbiAgICAgICAgICAgICAgICBpZiAoKCFpc0NoYXRMb2FkaW5nICYmIGNoYXQpIHx8ICghaXNDbGFzc2ljTG9hZGluZyAmJiAhY2hhdCkpIHtcbiAgICAgICAgICAgICAgICAgIHVuc3Vic2NyaWJlLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVXZWJWaWV3UmVmID0gY2hhdFxuICAgICAgICAgICAgICAgICAgICA/IGNoYXRXZWJWaWV3UmVmXG4gICAgICAgICAgICAgICAgICAgIDogY2xhc3NpY1dlYlZpZXdSZWY7XG4gICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlV2ViVmlld1JlZikge1xuICAgICAgICAgICAgICAgICAgICBjb21tdW5pY2F0ZVdpdGhXZWJWaWV3KGFjdGl2ZVdlYlZpZXdSZWYpO1xuICAgICAgICAgICAgICAgICAgICBzdGFydCgpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICfimqDvuI8gQWN0aXZlIFdlYlZpZXcgcmVmIGlzIG51bGwgYWZ0ZXIgbG9hZGluZyBjb21wbGV0ZWQnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlV2ViVmlldyA9IHNwb3RjaGVja1N0YXRlU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGN1cnJlbnRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkV2ViVmlld1JlZiA9IGNoYXRcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnRTdGF0ZS5jaGF0V2ViVmlld1JlZlxuICAgICAgICAgICAgICAgIDogY3VycmVudFN0YXRlLmNsYXNzaWNXZWJWaWV3UmVmO1xuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkSXNMb2FkaW5nID0gY2hhdFxuICAgICAgICAgICAgICAgID8gY3VycmVudFN0YXRlLmlzQ2hhdExvYWRpbmdcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRTdGF0ZS5pc0NsYXNzaWNMb2FkaW5nO1xuXG4gICAgICAgICAgICAgIGlmICh1cGRhdGVkV2ViVmlld1JlZikge1xuICAgICAgICAgICAgICAgIGlmICghdXBkYXRlZElzTG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgdW5zdWJzY3JpYmVXZWJWaWV3LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICBjb21tdW5pY2F0ZVdpdGhXZWJWaWV3KHVwZGF0ZWRXZWJWaWV3UmVmKTtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfij7MgV2ViVmlldyByZWYgYXZhaWxhYmxlIGJ1dCBzdGlsbCBsb2FkaW5nLi4uJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignU29tZXRoaW5nIHdlbnQgd3JvbmcnKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuICBjb25zdCBzdGF0ZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpLmdldFN0YXRlKCk7XG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpLnNldFN0YXRlKHsgaXNWaXNpYmxlOiB0cnVlIH0pO1xuICB9LCBzdGF0ZS5hZnRlckRlbGF5ICogMTAwMCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xvc2VTcG90Q2hlY2sgPSBhc3luYyAoKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgY29uc3Qgc3RhdGUgPSBzdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHJhY2VJZDogc3RhdGUudHJhY2VJZCxcbiAgICAgIHRyaWdnZXJUb2tlbjogc3RhdGUudHJpZ2dlclRva2VuLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYGh0dHBzOi8vJHtzdGF0ZS5kb21haW5OYW1lfS9hcGkvaW50ZXJuYWwvc3BvdGNoZWNrL2Rpc21pc3MvJHtzdGF0ZS5zcG90Y2hlY2tDb250YWN0SUR9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkge1xuICAgICAgY29uc29sZS5sb2coYEVycm9yOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coJ0Vycm9yIHBhcnNpbmcgSlNPTjonLCBlcnJvcik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVTdXJ2ZXlFbmQgPSAoKSA9PiB7XG4gIGNvbnN0IHN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICBjb25zdCBzdGF0ZSA9IHN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICBjb25zdCB3ZWJWaWV3UmVmID1cbiAgICBzdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2hhdCdcbiAgICAgID8gc3RhdGUuY2hhdFdlYlZpZXdSZWZcbiAgICAgIDogc3RhdGUuY2xhc3NpY1dlYlZpZXdSZWY7XG5cbiAgd2ViVmlld1JlZj8uY3VycmVudD8uaW5qZWN0SmF2YVNjcmlwdChgXG4gICAgICAoZnVuY3Rpb24oKSB7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBNZXNzYWdlRXZlbnQoJ21lc3NhZ2UnLCB7XG4gICAgICAgICAgZGF0YTogJHtKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdVTk1PVU5UX0FQUCcgfSl9XG4gICAgICAgIH0pKTtcbiAgICAgIH0pKCk7XG4gICAgYCk7XG5cbiAgY29uc3QgdXBkYXRlZFN0YXRlOiBQYXJ0aWFsPFNwb3RjaGVja1N0YXRlPiA9IHtcbiAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgIGlzQ2xvc2VCdXR0b25FbmFibGVkOiBmYWxzZSxcbiAgICBpc0Z1bGxTY3JlZW5Nb2RlOiBmYWxzZSxcbiAgICBzcG90Y2hlY2tJRDogMCxcbiAgICBjdXJyZW50UXVlc3Rpb25IZWlnaHQ6IDAsXG4gICAgY2xvc2VCdXR0b25TdHlsZToge30sXG4gICAgc3BvdGNoZWNrQ29udGFjdElEOiAwLFxuICAgIHNwb3RjaGVja1VSTDogJycsXG4gICAgc3BvdGNoZWNrUG9zaXRpb246ICdib3R0b20nLFxuICAgIGlzTW91bnRlZDogZmFsc2UsXG4gICAgc3BvdENoZWNrVHlwZTogJycsXG4gICAgc2NyZWVuSGVpZ2h0OiAwLFxuICAgIGtleUJvYXJkSGVpZ2h0OiAwLFxuICAgIHRleHRQb3NpdGlvbjogMCxcbiAgICBzcG90Q2hlY2tzTW9kZTogJycsXG4gICAgYXZhdGFyRW5hYmxlZDogZmFsc2UsXG4gICAgYXZhdGFyVXJsOiAnJyxcbiAgfTtcblxuICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUodXBkYXRlZFN0YXRlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTcG90Y2hlY2tDb21wb25lbnRDc3NTdHlsZXMgPSAoc3RhdGU6IFNwb3RjaGVja1N0YXRlKSA9PiB7IFxuICBsZXQgc3R5bGVzID0ge31cbiAgbGV0IHdyYXBwZXJTdHlsZXMgPSB7fVxuICBsZXQgcGFkZGluZyA9IDMwO1xuICBpZiAoc3RhdGUuaXNGdWxsU2NyZWVuTW9kZSAmJiBzdGF0ZS5pc1Zpc2libGUpIHtcbiAgICB3cmFwcGVyU3R5bGVzID0ge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgfTtcbiAgICBzdHlsZXMgPSB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9O1xuICB9XG4gIFxuICBpZiAoc3RhdGUuaXNWaXNpYmxlICYmIHN0YXRlLmlzTW91bnRlZCkge1xuXG4gICAgbGV0IGhlaWdodCA9IE1hdGgubWluKHN0YXRlLmN1cnJlbnRRdWVzdGlvbkhlaWdodCwgKHN0YXRlLm1heEhlaWdodCAqIHdpbmRvdy5pbm5lckhlaWdodCkpO1xuICAgIGlmKHN0YXRlLnNwb3RDaGVja3NNb2RlID09PSAnbWluaUNhcmQnKSB7XG4gICAgICBwYWRkaW5nID0gNDU7XG4gICAgICBpZihzdGF0ZS5hdmF0YXJFbmFibGVkKSB7XG4gICAgICAgIGhlaWdodCA9IGhlaWdodCAtIDU2O1xuICAgICAgfVxuICAgICAgaWYoc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gNDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZS5zcG90Y2hlY2tQb3NpdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgc3R5bGVzID0ge1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBoZWlnaHQ6IGhlaWdodCsncHgnLFxuICAgICAgICB9O1xuICAgICAgICB3cmFwcGVyU3R5bGVzID0ge1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAgIFxuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0KydweCcsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB3cmFwcGVyU3R5bGVzID0ge1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgICBcbiAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICBzdHlsZXMgPSB7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCsncHgnLFxuICAgICAgICAgIH07XG4gICAgICAgICAgd3JhcHBlclN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiB7XG4gICAgd3JhcHBlclN0eWxlczoge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsIFxuICAgICAgd2lkdGg6ICcxMDAlJywgXG4gICAgICBoZWlnaHQ6ICcxMDAlJywgXG4gICAgICB0b3A6ICcwJywgXG4gICAgICBsZWZ0OiAnMCcsIFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjMpJywgXG4gICAgICB6SW5kZXg6ICc5OTk5OTk5OScsXG4gICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgIHBhZGRpbmdUb3A6IHBhZGRpbmcrJ3B4JyxcbiAgICAgIHBhZGRpbmdCb3R0b206IHBhZGRpbmcrJ3B4JyxcbiAgICAgIC4uLndyYXBwZXJTdHlsZXNcbiAgICB9LFxuICAgIHN0eWxlczoge1xuICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAuLi5zdHlsZXMsXG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kID0gYXN5bmMgKCkgPT4ge1xuICBhd2FpdCBjbG9zZVNwb3RDaGVjaygpO1xuICBoYW5kbGVTdXJ2ZXlFbmQoKTtcbn07Il19
|
|
@@ -236,7 +236,7 @@ const setAppearance = async (responseJson, screen, domainName, traceId, variable
|
|
|
236
236
|
throw new Error(error.message);
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
throw new Error('
|
|
239
|
+
throw new Error('Something went wrong');
|
|
240
240
|
}
|
|
241
241
|
catch (error) {
|
|
242
242
|
throw new Error(error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-ui.mjs","sources":["../../../src/angular-ui/lib/spotchecks/SpotcheckStateService.ts","../../../src/angular-ui/lib/spotchecks/helpers.ts","../../../src/angular-ui/lib/spotchecks/SpotCheckComponent.ts","../../../src/angular-ui/lib/spotchecks/SpotCheckComponent.html","../../../src/angular-ui/lib/spotcheck.component.ts","../../../src/angular-ui/lib/spotchecks/storage.ts","../../../src/angular-ui/lib/spotchecks/api.ts","../../../src/angular-ui/lib/spotchecks/SpotCheck.ts","../../../src/angular-ui/lib/angular-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SpotcheckState } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SpotcheckStateService {\n private initialState: SpotcheckState = {\n isVisible: false,\n spotcheckPosition: 'bottom',\n spotcheckURL: '',\n spotcheckID: 0,\n spotcheckContactID: 0,\n afterDelay: 0.0,\n maxHeight: 0.5,\n currentQuestionHeight: 0,\n isFullScreenMode: false,\n isBannerImageOn: false,\n triggerToken: '',\n closeButtonStyle: {},\n isCloseButtonEnabled: false,\n isSpotPassed: false,\n isChecksPassed: false,\n customEventsSpotChecks: [],\n targetToken: '',\n domainName: '',\n userDetails: {},\n variables: {},\n customProperties: {},\n traceId: '',\n isClassicLoading: true,\n isChatLoading: true,\n classicUrl: '',\n chatUrl: '',\n classicWebViewRef: null,\n chatWebViewRef: null,\n filteredSpotChecks: [],\n spotCheckType: '',\n isMounted: false,\n textPosition: 0,\n screenHeight: 0,\n keyBoardHeight: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n \n private spotcheckState = new BehaviorSubject<SpotcheckState>(this.initialState);\n state$ = this.spotcheckState.asObservable();\n\n setState(state: Partial<SpotcheckState>) {\n this.spotcheckState.next({ ...this.spotcheckState.value, ...state });\n }\n \n clearState() {\n this.spotcheckState.next(this.initialState);\n }\n\n getState() {\n return this.spotcheckState.getValue();\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport { Device } from '@capacitor/device';\nimport { SpotcheckState } from './types';\nimport axios from 'axios';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport function generateTraceId() {\n const uuidString = uuidv4();\n const timestamp = Date.now();\n return `${uuidString}-${timestamp}`;\n}\n\nexport const ischatSurvey = (type: String) => {\n return (\n type === 'Conversational' ||\n type === 'CESChat' ||\n type === 'NPSChat' ||\n type === 'CSATChat'\n );\n};\n\nexport const getOS = async () => {\n const info = await Device.getInfo();\n return info.operatingSystem;\n};\n\nexport const setAppearance = async (\n responseJson: any,\n screen: string,\n domainName: string,\n traceId: string,\n variables: Record<string, any>\n) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n let state = spotcheckStateService.getState();\n\n if (responseJson) {\n const currentSpotcheck = state.filteredSpotChecks.find(\n (spotcheck) =>\n spotcheck['id'] === responseJson?.spotCheckId ||\n spotcheck['id'] === responseJson?.id\n );\n\n const appearance = responseJson?.appearance;\n let chat = false;\n\n let updatedState: Partial<SpotcheckState> = {};\n\n if (appearance) {\n const {\n position,\n closeButton,\n colors,\n cardProperties,\n mode,\n bannerImage,\n } = appearance;\n const { maxHeight } = cardProperties || {};\n\n updatedState = {\n spotcheckPosition:\n position === 'top_full' || position === 'center_top'\n ? 'top'\n : position === 'center_center'\n ? 'center'\n : 'bottom',\n isCloseButtonEnabled: closeButton ?? true,\n closeButtonStyle: colors?.overrides ?? {},\n maxHeight: maxHeight ? parseFloat(maxHeight) / 100 : 0,\n spotCheckType:\n ischatSurvey(currentSpotcheck?.['survey']?.surveyType) &&\n mode === 'fullScreen'\n ? 'chat'\n : 'classic',\n isFullScreenMode: mode === 'fullScreen',\n isBannerImageOn: bannerImage?.enabled ?? false,\n spotChecksMode: mode,\n avatarEnabled: appearance?.avatar?.enabled ?? false,\n avatarUrl: appearance?.avatar?.avatarUrl ?? '',\n };\n\n chat = updatedState.spotCheckType === 'chat';\n }\n\n const spotCheckId = responseJson?.spotCheckId ?? 0;\n const spotCheckContactId =\n responseJson?.spotCheckContactId ??\n responseJson?.spotCheckContact?.id ??\n 0;\n const triggerToken = responseJson?.triggerToken ?? '';\n\n updatedState = {\n ...updatedState,\n spotcheckID: spotCheckId,\n spotcheckContactID: spotCheckContactId,\n triggerToken,\n };\n\n const baseSpotcheckURL = `https://${domainName}/s/spotcheck/${triggerToken}/${\n chat ? 'config' : 'bootstrap'\n }?spotcheckContactId=${spotCheckContactId}&traceId=${traceId}&spotcheckUrl=${screen}`;\n\n let fullSpotcheckURL = baseSpotcheckURL;\n\n Object.entries(variables).forEach(([key, value]) => {\n fullSpotcheckURL += `&${key}=${value}`;\n });\n\n updatedState.spotcheckURL = fullSpotcheckURL;\n spotcheckStateService.setState(updatedState);\n\n try {\n const response = await axios.get(fullSpotcheckURL);\n const themeInfo = response.data.config.generatedCSS;\n const theme_payload = { type: 'THEME_UPDATE_SPOTCHECK', themeInfo };\n state = spotcheckStateService.getState();\n\n let webViewRef = chat ? state.chatWebViewRef : state.classicWebViewRef;\n let isLoading = chat ? state.isChatLoading : state.isClassicLoading;\n\n const resetStateData = {\n type: 'RESET_STATE',\n state: {\n ...(response.data || {}),\n skip: true,\n spotCheckAppearance: {\n ...(appearance || {}),\n targetType: 'MOBILE',\n },\n spotcheckUrl: screen,\n traceId,\n elementBuilderParams: {\n ...(variables || {}),\n },\n },\n };\n\n const sendMessageToIframe = (iframe: HTMLIFrameElement, data: any) => {\n if (iframe && iframe.contentWindow) {\n try {\n iframe.contentWindow.postMessage(data, '*');\n } catch (error) {\n console.error('❌ Failed to send message to iframe:', error);\n }\n }\n };\n\n const communicateWithWebView = async (iframe: HTMLIFrameElement) => {\n await new Promise(resolve => setTimeout(() => {\n sendMessageToIframe(iframe, resetStateData);\n sendMessageToIframe(iframe, theme_payload);\n resolve(true);\n }, 2000));\n };\n\n if (webViewRef) {\n if (isLoading === false) {\n communicateWithWebView(webViewRef);\n start();\n return true;\n } else {\n // todo: recheck this\n const unsubscribe = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const {\n isChatLoading,\n isClassicLoading,\n chatWebViewRef,\n classicWebViewRef,\n } = currentState;\n\n if ((!isChatLoading && chat) || (!isClassicLoading && !chat)) {\n unsubscribe.unsubscribe();\n const activeWebViewRef = chat\n ? chatWebViewRef\n : classicWebViewRef;\n if (activeWebViewRef) {\n communicateWithWebView(activeWebViewRef);\n start();\n } else {\n console.warn(\n '⚠️ Active WebView ref is null after loading completed'\n );\n }\n }\n }\n );\n return true;\n }\n } else {\n const unsubscribeWebView = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const updatedWebViewRef = chat\n ? currentState.chatWebViewRef\n : currentState.classicWebViewRef;\n const updatedIsLoading = chat\n ? currentState.isChatLoading\n : currentState.isClassicLoading;\n\n if (updatedWebViewRef) {\n if (!updatedIsLoading) {\n unsubscribeWebView.unsubscribe();\n communicateWithWebView(updatedWebViewRef);\n start();\n } else {\n console.log('⏳ WebView ref available but still loading...');\n }\n }\n }\n );\n return true;\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n throw new Error('212');\n } catch (error: any) {\n throw new Error(error.message);\n }\n};\n\nexport const start = () => {\n const state = getSpotcheckStateService().getState();\n setTimeout(() => {\n getSpotcheckStateService().setState({ isVisible: true });\n }, state.afterDelay * 1000);\n};\n\nexport const closeSpotCheck = async () => {\n try {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const payload = {\n traceId: state.traceId,\n triggerToken: state.triggerToken,\n };\n\n const response = await fetch(\n `https://${state.domainName}/api/internal/spotcheck/dismiss/${state.spotcheckContactID}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n );\n\n if (response.status != 200) {\n console.log(`Error: ${response.status}`);\n }\n } catch (error) {\n console.log('Error parsing JSON:', error);\n }\n};\n\nexport const handleSurveyEnd = () => {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const webViewRef =\n state.spotCheckType === 'chat'\n ? state.chatWebViewRef\n : state.classicWebViewRef;\n\n webViewRef?.current?.injectJavaScript(`\n (function() {\n window.dispatchEvent(new MessageEvent('message', {\n data: ${JSON.stringify({ type: 'UNMOUNT_APP' })}\n }));\n })();\n `);\n\n const updatedState: Partial<SpotcheckState> = {\n isVisible: false,\n isCloseButtonEnabled: false,\n isFullScreenMode: false,\n spotcheckID: 0,\n currentQuestionHeight: 0,\n closeButtonStyle: {},\n spotcheckContactID: 0,\n spotcheckURL: '',\n spotcheckPosition: 'bottom',\n isMounted: false,\n spotCheckType: '',\n screenHeight: 0,\n keyBoardHeight: 0,\n textPosition: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n\n stateService.setState(updatedState);\n};\n\nexport const getSpotcheckComponentCssStyles = (state: SpotcheckState) => { \n let styles = {}\n let wrapperStyles = {}\n let padding = 30;\n if (state.isFullScreenMode && state.isVisible) {\n wrapperStyles = {\n display: 'flex',\n height: '100%',\n };\n styles = {\n display: 'flex',\n height: '100%',\n };\n }\n \n if (state.isVisible && state.isMounted) {\n\n let height = Math.min(state.currentQuestionHeight, (state.maxHeight * window.innerHeight));\n if(state.spotChecksMode === 'miniCard') {\n padding = 45;\n if(state.avatarEnabled) {\n height = height - 56;\n }\n if(state.isCloseButtonEnabled) {\n height = height - 40;\n }\n }\n\n switch (state.spotcheckPosition) {\n case 'bottom':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-end',\n };\n break;\n \n case 'top':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-start',\n };\n break;\n \n case 'center':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'center',\n };\n break;\n \n default:\n break;\n }\n }\n \n return {\n wrapperStyles: {\n position: 'fixed', \n width: '100%', \n height: '100%', \n top: '0', \n left: '0', \n backgroundColor: 'rgba(0, 0, 0, 0.3)', \n zIndex: '99999999',\n display: 'none',\n flexDirection: 'column',\n paddingTop: padding+'px',\n paddingBottom: padding+'px',\n ...wrapperStyles\n },\n styles: {\n display: 'none',\n flexDirection: 'column',\n ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};","import {\n OnInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n ElementRef,\n AfterViewInit,\n HostListener,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { closeSpotCheck, closeSpotCheckAndHandleSurveyEnd, getSpotcheckComponentCssStyles, handleSurveyEnd, ischatSurvey } from './helpers';\nimport { SpotcheckState } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport { SpotcheckStateService } from './SpotcheckStateService';\nimport axios from 'axios';\n\n@Component({\n selector: 'WebViewComponent',\n template: `\n <div style=\"overflow: hidden; height: 100%;\">\n <iframe\n #iframeRef\n [src]=\"safeUrl\"\n style=\"width: 100%; height: 100%; display: block;\"\n frameborder=\"0\"\n >\n </iframe>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class WebViewComponent implements OnInit, AfterViewInit {\n @Input() url: string = '';\n @Input() webviewType: 'classic' | 'chat' = 'classic';\n\n safeUrl: SafeResourceUrl | null = null;\n @ViewChild('iframeRef') iframe!: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n ngOnInit() {\n if (this.url) {\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.url);\n }\n }\n\n ngAfterViewInit() {\n const stateService = getSpotcheckStateService();\n const webViewRef = this.iframe.nativeElement;\n\n if (this.webviewType === 'classic') {\n stateService.setState({\n classicWebViewRef: webViewRef,\n isClassicLoading: false,\n });\n } else {\n stateService.setState({\n chatWebViewRef: webViewRef,\n isChatLoading: false,\n });\n }\n this.setupIframeLoadListener();\n }\n\n private setupIframeLoadListener() {\n const iframe = this.iframe.nativeElement;\n iframe.addEventListener('load', () => {\n const stateService = getSpotcheckStateService();\n if (this.webviewType === 'classic') {\n stateService.setState({ isClassicLoading: false });\n } else {\n stateService.setState({ isChatLoading: false });\n }\n });\n }\n\n @HostListener('window:message', ['$event'])\n onMessage(event: MessageEvent) {\n const stateService = getSpotcheckStateService();\n const { data } = event;\n switch (data.type) {\n case 'slideInFrame':\n if (data.mounted) {\n stateService.setState({ isMounted: true });\n }\n break;\n\n case 'resizeWindow':\n if (data.size) {\n stateService.setState({\n currentQuestionHeight: data.size.height,\n });\n } else if (data.isCloseButtonEnabled) {\n stateService.setState({\n isCloseButtonEnabled: data.isCloseButtonEnabled,\n });\n }\n break;\n\n case 'surveyCompleted':\n closeSpotCheckAndHandleSurveyEnd();\n // spotchecksListener.emitSurveyCompleted(data.response);\n break;\n\n case 'surveyLoadStarted':\n // spotchecksListener.emitSurveyLoadStarted(data.surveyDetails);\n break;\n\n default:\n break;\n }\n }\n}\n\n@Component({\n selector: 'close-svg',\n template: `\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"https://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.6665 10.667L21.3332 21.3337M21.3332 10.667L10.6665 21.3337\"\n [attr.stroke]=\"stroke\"\n [attr.stroke-width]=\"strokeWidth\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class CloseSVGComponent {\n @Input() size: number = 32;\n @Input() stroke: string = '#919191';\n @Input() strokeWidth: number = 1.5;\n}\n\n@Component({\n selector: 'spotcheck-close-button',\n template: `\n <div style=\"position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;\" (click)=\"onClick()\" *ngIf=\"isVisible && isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\" style=\"display: flex; align-items: center; justify-content: center;\"/>\n </div>\n <div style=\"position: absolute; top: 16px; right: 16px; z-index: 100001; cursor: pointer;\" (click)=\"onClick()\" *ngIf=\"isVisible && !isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\"/>\n </div>\n `,\n standalone: true,\n imports: [CommonModule, CloseSVGComponent],\n})\nexport class CloseButtonComponent implements OnDestroy {\n @Input() size: number = 30;\n @Input() strokeWidth: number = 1.2;\n \n state: SpotcheckState;\n private stateService: SpotcheckStateService;\n private stateSubscription!: Subscription;\n \n isVisible: boolean = false;\n isMiniCard: boolean = false;\n stroke: string = 'black';\n \n constructor() {\n this.stateService = getSpotcheckStateService();\n this.state = this.stateService.getState();\n this.updateComponentState();\n\n this.stateSubscription = this.stateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentState();\n }\n );\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentState(): void {\n this.isVisible =\n this.state.isCloseButtonEnabled &&\n ((this.state.currentQuestionHeight > 0 && !this.state.isFullScreenMode) ||\n (this.state.isFullScreenMode &&\n ((!this.state.isClassicLoading &&\n this.state.spotCheckType === 'classic') ||\n (!this.state.isChatLoading &&\n this.state.spotCheckType === 'chat'))));\n this.isMiniCard = this.state.spotChecksMode === 'miniCard';\n this.stroke = this.isMiniCard ? 'black' : this.state.closeButtonStyle?.['ctaButton'] || 'black';\n }\n\n onClick = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n };\n}\n\n\n@Component({\n selector: 'SpotCheckComponent',\n templateUrl: './SpotCheckComponent.html',\n standalone: true,\n imports: [CommonModule, WebViewComponent, CloseButtonComponent],\n})\nexport class SpotCheckComponent implements OnInit, OnDestroy {\n state: SpotcheckState;\n private spotcheckStateService: SpotcheckStateService;\n private stateSubscription: Subscription;\n componentStyles: any = {};\n avatarUrl: string = '';\n\n constructor() {\n this.spotcheckStateService = getSpotcheckStateService();\n this.state = this.spotcheckStateService.getState();\n this.updateComponentStyles();\n\n this.stateSubscription = this.spotcheckStateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentStyles();\n this.avatarUrl = this.state.avatarUrl || \"https://static.surveysparrow.com/application/images/profile.png\";\n }\n );\n }\n\n ngOnInit(): void {\n this.initializeComponent();\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentStyles(): void {\n this.componentStyles = getSpotcheckComponentCssStyles(this.state);\n }\n\n initializeComponent = async () => {\n try {\n const domainName = this.state.domainName;\n const targetToken = this.state.targetToken;\n const response = await axios.get(\n `https://${domainName}/api/internal/spotcheck/widget/${targetToken}/init`\n );\n const data = response.data;\n\n if (data.filteredSpotChecks && data.filteredSpotChecks.length > 0) {\n let classicIframe = false;\n let chatIframe = false;\n\n data.filteredSpotChecks.forEach((spotcheck: any) => {\n if (\n spotcheck.appearance.mode === 'fullScreen' &&\n ischatSurvey(spotcheck?.survey?.surveyType)\n ) {\n chatIframe = true;\n } else {\n classicIframe = true;\n }\n });\n\n const newClassicUrl = classicIframe\n ? `https://${domainName}/eui-template/classic`\n : '';\n const newChatUrl = chatIframe\n ? `https://${domainName}/eui-template/chat`\n : '';\n\n this.spotcheckStateService.setState({\n filteredSpotChecks: data.filteredSpotChecks,\n classicUrl: newClassicUrl,\n chatUrl: newChatUrl,\n });\n }\n } catch (error) {\n console.log('Error initializing widget:', JSON.stringify(error));\n }\n };\n}\n","<div [ngStyle]=\"componentStyles.wrapperStyles\">\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 />\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 />\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","import { Component } from '@angular/core';\nimport { SpotCheckComponent } from './spotchecks/SpotCheckComponent';\n\n@Component({\n selector: 'SpotCheck',\n template: `<SpotCheckComponent />`,\n standalone: true,\n imports: [SpotCheckComponent],\n})\nexport class SpotCheck {}\n","export const getStoredUUID = () => {\n return localStorage.getItem('SurveySparrowUUID') || null;\n}\n\nexport const setUUID = (uuid: string) => {\n localStorage.setItem('SurveySparrowUUID', uuid);\n}","import { generateTraceId, getOS, setAppearance } from './helpers';\nimport { getStoredUUID, setUUID } from './storage';\nimport { TrackScreenProps, UserDetails, Variables, CustomProperties, TrackEventProps } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport axios from 'axios';\n\nexport const sendTrackScreenRequest = async ({\n screen,\n options,\n}: TrackScreenProps) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n const oldState = spotcheckStateService.getState();\n let variables = {} as Variables;\n let customProperties = {} as CustomProperties;\n let userDetails = {} as UserDetails; \n\n if (options && options.variables && Object.keys(options.variables).length > 0) {\n variables = { ...oldState.variables, ...options.variables };\n }\n if (options && options.customProperties && Object.keys(options.customProperties).length > 0) {\n customProperties = { ...oldState.customProperties, ...options.customProperties };\n }\n if (options && options.userDetails && Object.keys(options.userDetails).length > 0) {\n userDetails = { ...oldState.userDetails, ...options.userDetails };\n }\n\n let traceId = oldState.traceId;\n if (!traceId) {\n traceId = generateTraceId();\n }\n\n if (!userDetails.uuid && !userDetails.email && !userDetails.mobile) {\n const uuid = getStoredUUID();\n if (uuid) {\n userDetails.uuid = uuid;\n }\n }\n\n spotcheckStateService.setState({\n traceId,\n variables,\n customProperties,\n userDetails,\n });\n\n const state = spotcheckStateService.getState();\n let { isSpotPassed, isChecksPassed } = state;\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: state.userDetails,\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n traceId: state.traceId,\n customProperties: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true&sdk=IOS`;\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if(response.status === 200) {\n const responseJson = response.data;\n\n if (responseJson.uuid) {\n setUUID(responseJson.uuid);\n }\n\n if (responseJson?.show) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n isSpotPassed = true;\n spotcheckStateService.setState({ isSpotPassed });\n return { valid: true };\n }\n } else {\n throw new Error('');\n }\n }\n \n if (!isSpotPassed && responseJson?.checkPassed) {\n if (responseJson.checkCondition) {\n const checkCondition = responseJson.checkCondition;\n spotcheckStateService.setState({ afterDelay: checkCondition.afterDelay || 0 });\n if (checkCondition.customEvent) {\n spotcheckStateService.setState({ customEventsSpotChecks: [responseJson] });\n throw new Error('');\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n isChecksPassed = true;\n spotcheckStateService.setState({ isChecksPassed });\n return { valid: true };\n }\n }\n\n if (!isSpotPassed && !isChecksPassed && responseJson?.multiShow != null) {\n if (responseJson.multiShow) {\n spotcheckStateService.setState({ customEventsSpotChecks: responseJson.resultantSpotCheck });\n\n let selectedSpotCheck = {};\n let minDelay: number = Number.POSITIVE_INFINITY;\n\n for (const spotcheck of responseJson.resultantSpotCheck) {\n const checks = spotcheck?.checks || {};\n if (Object.keys(checks).length === 0) {\n minDelay = 0;\n selectedSpotCheck = spotcheck;\n } else if (checks.afterDelay != null) {\n const delay = parseFloat(checks.afterDelay);\n if (minDelay > delay) {\n minDelay = delay;\n selectedSpotCheck = spotcheck;\n }\n }\n }\n\n if (Object.keys(selectedSpotCheck).length > 0) {\n spotcheckStateService.setState({ afterDelay: minDelay });\n const appearance_response = await setAppearance(\n selectedSpotCheck,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n return { valid: true };\n }\n }\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};\n\n\nexport const sendTrackEventRequest = async ({ screen, event }: TrackEventProps) => {\n try {\n const intMax = Number.POSITIVE_INFINITY;\n const state = getSpotcheckStateService().getState();\n let selectedSpotCheckID = intMax;\n let { isSpotPassed } = state;\n if (state.customEventsSpotChecks.length > 0) {\n const eventKeys = Object.keys(event);\n for (const spotCheck of state.customEventsSpotChecks) {\n const checks = spotCheck?.['checks'] ?? spotCheck?.['checkCondition'];\n\n if (checks) {\n const customEvent = checks?.customEvent;\n\n if (eventKeys.includes(customEvent?.eventName)) {\n selectedSpotCheckID =\n spotCheck?.['id'] ?? spotCheck?.['spotCheckId'] ?? intMax;\n let payloadUserDetails = { ...state.userDetails };\n\n if (selectedSpotCheckID !== intMax) {\n if (\n !payloadUserDetails?.email &&\n !payloadUserDetails?.uuid &&\n !payloadUserDetails?.mobile\n ) {\n const uuid = getStoredUUID();\n if (uuid) {\n payloadUserDetails.uuid = uuid;\n }\n }\n\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: payloadUserDetails,\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n spotCheckId: selectedSpotCheckID,\n eventTrigger: {\n customEvent: event,\n },\n traceId: state.traceId,\n customProperties: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/eventTrigger?isSpotCheck=true`;\n\n try {\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (response.status === 200) {\n const responseJson = response.data;\n if (responseJson?.show != null) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n getSpotcheckStateService().setState({ isSpotPassed: true });\n isSpotPassed = true;\n return { valid: true };\n }\n }\n }\n\n if (!isSpotPassed && responseJson?.eventShow) {\n if (responseJson?.checkCondition != null) {\n const checkCondition = responseJson?.checkCondition;\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.afterDelay ?? 0,\n });\n\n if (checkCondition?.customEvent != null) {\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.customEvent?.delayInSeconds ?? 0,\n });\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n return { valid: true };\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n }\n }\n }\n throw new Error('');\n } else {\n throw new Error('');\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};","import { InitializeSpotChecksProps, TrackEventProps, TrackScreenProps } from './types';\nimport { sendTrackScreenRequest, sendTrackEventRequest } from './api';\nimport { getSpotcheckStateService } from './helpers';\n\nexport const initializeSpotChecks = ({\n domainName,\n targetToken,\n userDetails = {},\n variables = {},\n customProperties = {},\n}: InitializeSpotChecksProps) => {\n const spotcheckStateService = getSpotcheckStateService();\n spotcheckStateService.setState({\n domainName,\n targetToken,\n userDetails,\n variables,\n customProperties,\n });\n};\n\nexport const trackScreen = async ({ screen, options }: TrackScreenProps) => {\n try {\n const response = await sendTrackScreenRequest({ screen, options });\n if (response.valid) {\n console.log('Screen Tracking succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Screen Tracking Failed. ${error.message}`);\n }\n};\n\nexport const trackEvent = async ({ screen, event }: TrackEventProps) => {\n try {\n const response = await sendTrackEventRequest({ screen, event });\n if (response.valid) {\n console.log('TrackEvent succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Event Tracking Failed. ${error.message}`);\n }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-ui.mjs","sources":["../../../src/angular-ui/lib/spotchecks/SpotcheckStateService.ts","../../../src/angular-ui/lib/spotchecks/helpers.ts","../../../src/angular-ui/lib/spotchecks/SpotCheckComponent.ts","../../../src/angular-ui/lib/spotchecks/SpotCheckComponent.html","../../../src/angular-ui/lib/spotcheck.component.ts","../../../src/angular-ui/lib/spotchecks/storage.ts","../../../src/angular-ui/lib/spotchecks/api.ts","../../../src/angular-ui/lib/spotchecks/SpotCheck.ts","../../../src/angular-ui/lib/angular-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SpotcheckState } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SpotcheckStateService {\n private initialState: SpotcheckState = {\n isVisible: false,\n spotcheckPosition: 'bottom',\n spotcheckURL: '',\n spotcheckID: 0,\n spotcheckContactID: 0,\n afterDelay: 0.0,\n maxHeight: 0.5,\n currentQuestionHeight: 0,\n isFullScreenMode: false,\n isBannerImageOn: false,\n triggerToken: '',\n closeButtonStyle: {},\n isCloseButtonEnabled: false,\n isSpotPassed: false,\n isChecksPassed: false,\n customEventsSpotChecks: [],\n targetToken: '',\n domainName: '',\n userDetails: {},\n variables: {},\n customProperties: {},\n traceId: '',\n isClassicLoading: true,\n isChatLoading: true,\n classicUrl: '',\n chatUrl: '',\n classicWebViewRef: null,\n chatWebViewRef: null,\n filteredSpotChecks: [],\n spotCheckType: '',\n isMounted: false,\n textPosition: 0,\n screenHeight: 0,\n keyBoardHeight: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n \n private spotcheckState = new BehaviorSubject<SpotcheckState>(this.initialState);\n state$ = this.spotcheckState.asObservable();\n\n setState(state: Partial<SpotcheckState>) {\n this.spotcheckState.next({ ...this.spotcheckState.value, ...state });\n }\n \n clearState() {\n this.spotcheckState.next(this.initialState);\n }\n\n getState() {\n return this.spotcheckState.getValue();\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport { Device } from '@capacitor/device';\nimport { SpotcheckState } from './types';\nimport axios from 'axios';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport function generateTraceId() {\n const uuidString = uuidv4();\n const timestamp = Date.now();\n return `${uuidString}-${timestamp}`;\n}\n\nexport const ischatSurvey = (type: String) => {\n return (\n type === 'Conversational' ||\n type === 'CESChat' ||\n type === 'NPSChat' ||\n type === 'CSATChat'\n );\n};\n\nexport const getOS = async () => {\n const info = await Device.getInfo();\n return info.operatingSystem;\n};\n\nexport const setAppearance = async (\n responseJson: any,\n screen: string,\n domainName: string,\n traceId: string,\n variables: Record<string, any>\n) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n let state = spotcheckStateService.getState();\n\n if (responseJson) {\n const currentSpotcheck = state.filteredSpotChecks.find(\n (spotcheck) =>\n spotcheck['id'] === responseJson?.spotCheckId ||\n spotcheck['id'] === responseJson?.id\n );\n\n const appearance = responseJson?.appearance;\n let chat = false;\n\n let updatedState: Partial<SpotcheckState> = {};\n\n if (appearance) {\n const {\n position,\n closeButton,\n colors,\n cardProperties,\n mode,\n bannerImage,\n } = appearance;\n const { maxHeight } = cardProperties || {};\n\n updatedState = {\n spotcheckPosition:\n position === 'top_full' || position === 'center_top'\n ? 'top'\n : position === 'center_center'\n ? 'center'\n : 'bottom',\n isCloseButtonEnabled: closeButton ?? true,\n closeButtonStyle: colors?.overrides ?? {},\n maxHeight: maxHeight ? parseFloat(maxHeight) / 100 : 0,\n spotCheckType:\n ischatSurvey(currentSpotcheck?.['survey']?.surveyType) &&\n mode === 'fullScreen'\n ? 'chat'\n : 'classic',\n isFullScreenMode: mode === 'fullScreen',\n isBannerImageOn: bannerImage?.enabled ?? false,\n spotChecksMode: mode,\n avatarEnabled: appearance?.avatar?.enabled ?? false,\n avatarUrl: appearance?.avatar?.avatarUrl ?? '',\n };\n\n chat = updatedState.spotCheckType === 'chat';\n }\n\n const spotCheckId = responseJson?.spotCheckId ?? 0;\n const spotCheckContactId =\n responseJson?.spotCheckContactId ??\n responseJson?.spotCheckContact?.id ??\n 0;\n const triggerToken = responseJson?.triggerToken ?? '';\n\n updatedState = {\n ...updatedState,\n spotcheckID: spotCheckId,\n spotcheckContactID: spotCheckContactId,\n triggerToken,\n };\n\n const baseSpotcheckURL = `https://${domainName}/s/spotcheck/${triggerToken}/${\n chat ? 'config' : 'bootstrap'\n }?spotcheckContactId=${spotCheckContactId}&traceId=${traceId}&spotcheckUrl=${screen}`;\n\n let fullSpotcheckURL = baseSpotcheckURL;\n\n Object.entries(variables).forEach(([key, value]) => {\n fullSpotcheckURL += `&${key}=${value}`;\n });\n\n updatedState.spotcheckURL = fullSpotcheckURL;\n spotcheckStateService.setState(updatedState);\n\n try {\n const response = await axios.get(fullSpotcheckURL);\n const themeInfo = response.data.config.generatedCSS;\n const theme_payload = { type: 'THEME_UPDATE_SPOTCHECK', themeInfo };\n state = spotcheckStateService.getState();\n\n let webViewRef = chat ? state.chatWebViewRef : state.classicWebViewRef;\n let isLoading = chat ? state.isChatLoading : state.isClassicLoading;\n\n const resetStateData = {\n type: 'RESET_STATE',\n state: {\n ...(response.data || {}),\n skip: true,\n spotCheckAppearance: {\n ...(appearance || {}),\n targetType: 'MOBILE',\n },\n spotcheckUrl: screen,\n traceId,\n elementBuilderParams: {\n ...(variables || {}),\n },\n },\n };\n\n const sendMessageToIframe = (iframe: HTMLIFrameElement, data: any) => {\n if (iframe && iframe.contentWindow) {\n try {\n iframe.contentWindow.postMessage(data, '*');\n } catch (error) {\n console.error('❌ Failed to send message to iframe:', error);\n }\n }\n };\n\n const communicateWithWebView = async (iframe: HTMLIFrameElement) => {\n await new Promise(resolve => setTimeout(() => {\n sendMessageToIframe(iframe, resetStateData);\n sendMessageToIframe(iframe, theme_payload);\n resolve(true);\n }, 2000));\n };\n\n if (webViewRef) {\n if (isLoading === false) {\n communicateWithWebView(webViewRef);\n start();\n return true;\n } else {\n // todo: recheck this\n const unsubscribe = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const {\n isChatLoading,\n isClassicLoading,\n chatWebViewRef,\n classicWebViewRef,\n } = currentState;\n\n if ((!isChatLoading && chat) || (!isClassicLoading && !chat)) {\n unsubscribe.unsubscribe();\n const activeWebViewRef = chat\n ? chatWebViewRef\n : classicWebViewRef;\n if (activeWebViewRef) {\n communicateWithWebView(activeWebViewRef);\n start();\n } else {\n console.warn(\n '⚠️ Active WebView ref is null after loading completed'\n );\n }\n }\n }\n );\n return true;\n }\n } else {\n const unsubscribeWebView = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const updatedWebViewRef = chat\n ? currentState.chatWebViewRef\n : currentState.classicWebViewRef;\n const updatedIsLoading = chat\n ? currentState.isChatLoading\n : currentState.isClassicLoading;\n\n if (updatedWebViewRef) {\n if (!updatedIsLoading) {\n unsubscribeWebView.unsubscribe();\n communicateWithWebView(updatedWebViewRef);\n start();\n } else {\n console.log('⏳ WebView ref available but still loading...');\n }\n }\n }\n );\n return true;\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n throw new Error('Something went wrong');\n } catch (error: any) {\n throw new Error(error.message);\n }\n};\n\nexport const start = () => {\n const state = getSpotcheckStateService().getState();\n setTimeout(() => {\n getSpotcheckStateService().setState({ isVisible: true });\n }, state.afterDelay * 1000);\n};\n\nexport const closeSpotCheck = async () => {\n try {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const payload = {\n traceId: state.traceId,\n triggerToken: state.triggerToken,\n };\n\n const response = await fetch(\n `https://${state.domainName}/api/internal/spotcheck/dismiss/${state.spotcheckContactID}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n );\n\n if (response.status != 200) {\n console.log(`Error: ${response.status}`);\n }\n } catch (error) {\n console.log('Error parsing JSON:', error);\n }\n};\n\nexport const handleSurveyEnd = () => {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const webViewRef =\n state.spotCheckType === 'chat'\n ? state.chatWebViewRef\n : state.classicWebViewRef;\n\n webViewRef?.current?.injectJavaScript(`\n (function() {\n window.dispatchEvent(new MessageEvent('message', {\n data: ${JSON.stringify({ type: 'UNMOUNT_APP' })}\n }));\n })();\n `);\n\n const updatedState: Partial<SpotcheckState> = {\n isVisible: false,\n isCloseButtonEnabled: false,\n isFullScreenMode: false,\n spotcheckID: 0,\n currentQuestionHeight: 0,\n closeButtonStyle: {},\n spotcheckContactID: 0,\n spotcheckURL: '',\n spotcheckPosition: 'bottom',\n isMounted: false,\n spotCheckType: '',\n screenHeight: 0,\n keyBoardHeight: 0,\n textPosition: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n\n stateService.setState(updatedState);\n};\n\nexport const getSpotcheckComponentCssStyles = (state: SpotcheckState) => { \n let styles = {}\n let wrapperStyles = {}\n let padding = 30;\n if (state.isFullScreenMode && state.isVisible) {\n wrapperStyles = {\n display: 'flex',\n height: '100%',\n };\n styles = {\n display: 'flex',\n height: '100%',\n };\n }\n \n if (state.isVisible && state.isMounted) {\n\n let height = Math.min(state.currentQuestionHeight, (state.maxHeight * window.innerHeight));\n if(state.spotChecksMode === 'miniCard') {\n padding = 45;\n if(state.avatarEnabled) {\n height = height - 56;\n }\n if(state.isCloseButtonEnabled) {\n height = height - 40;\n }\n }\n\n switch (state.spotcheckPosition) {\n case 'bottom':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-end',\n };\n break;\n \n case 'top':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-start',\n };\n break;\n \n case 'center':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'center',\n };\n break;\n \n default:\n break;\n }\n }\n \n return {\n wrapperStyles: {\n position: 'fixed', \n width: '100%', \n height: '100%', \n top: '0', \n left: '0', \n backgroundColor: 'rgba(0, 0, 0, 0.3)', \n zIndex: '99999999',\n display: 'none',\n flexDirection: 'column',\n paddingTop: padding+'px',\n paddingBottom: padding+'px',\n ...wrapperStyles\n },\n styles: {\n display: 'none',\n flexDirection: 'column',\n ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};","import {\n OnInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n ElementRef,\n AfterViewInit,\n HostListener,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { closeSpotCheck, closeSpotCheckAndHandleSurveyEnd, getSpotcheckComponentCssStyles, handleSurveyEnd, ischatSurvey } from './helpers';\nimport { SpotcheckState } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport { SpotcheckStateService } from './SpotcheckStateService';\nimport axios from 'axios';\n\n@Component({\n selector: 'WebViewComponent',\n template: `\n <div style=\"overflow: hidden; height: 100%;\">\n <iframe\n #iframeRef\n [src]=\"safeUrl\"\n style=\"width: 100%; height: 100%; display: block;\"\n frameborder=\"0\"\n >\n </iframe>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class WebViewComponent implements OnInit, AfterViewInit {\n @Input() url: string = '';\n @Input() webviewType: 'classic' | 'chat' = 'classic';\n\n safeUrl: SafeResourceUrl | null = null;\n @ViewChild('iframeRef') iframe!: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n ngOnInit() {\n if (this.url) {\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.url);\n }\n }\n\n ngAfterViewInit() {\n const stateService = getSpotcheckStateService();\n const webViewRef = this.iframe.nativeElement;\n\n if (this.webviewType === 'classic') {\n stateService.setState({\n classicWebViewRef: webViewRef,\n isClassicLoading: false,\n });\n } else {\n stateService.setState({\n chatWebViewRef: webViewRef,\n isChatLoading: false,\n });\n }\n this.setupIframeLoadListener();\n }\n\n private setupIframeLoadListener() {\n const iframe = this.iframe.nativeElement;\n iframe.addEventListener('load', () => {\n const stateService = getSpotcheckStateService();\n if (this.webviewType === 'classic') {\n stateService.setState({ isClassicLoading: false });\n } else {\n stateService.setState({ isChatLoading: false });\n }\n });\n }\n\n @HostListener('window:message', ['$event'])\n onMessage(event: MessageEvent) {\n const stateService = getSpotcheckStateService();\n const { data } = event;\n switch (data.type) {\n case 'slideInFrame':\n if (data.mounted) {\n stateService.setState({ isMounted: true });\n }\n break;\n\n case 'resizeWindow':\n if (data.size) {\n stateService.setState({\n currentQuestionHeight: data.size.height,\n });\n } else if (data.isCloseButtonEnabled) {\n stateService.setState({\n isCloseButtonEnabled: data.isCloseButtonEnabled,\n });\n }\n break;\n\n case 'surveyCompleted':\n closeSpotCheckAndHandleSurveyEnd();\n // spotchecksListener.emitSurveyCompleted(data.response);\n break;\n\n case 'surveyLoadStarted':\n // spotchecksListener.emitSurveyLoadStarted(data.surveyDetails);\n break;\n\n default:\n break;\n }\n }\n}\n\n@Component({\n selector: 'close-svg',\n template: `\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"https://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.6665 10.667L21.3332 21.3337M21.3332 10.667L10.6665 21.3337\"\n [attr.stroke]=\"stroke\"\n [attr.stroke-width]=\"strokeWidth\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class CloseSVGComponent {\n @Input() size: number = 32;\n @Input() stroke: string = '#919191';\n @Input() strokeWidth: number = 1.5;\n}\n\n@Component({\n selector: 'spotcheck-close-button',\n template: `\n <div style=\"position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;\" (click)=\"onClick()\" *ngIf=\"isVisible && isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\" style=\"display: flex; align-items: center; justify-content: center;\"/>\n </div>\n <div style=\"position: absolute; top: 16px; right: 16px; z-index: 100001; cursor: pointer;\" (click)=\"onClick()\" *ngIf=\"isVisible && !isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\"/>\n </div>\n `,\n standalone: true,\n imports: [CommonModule, CloseSVGComponent],\n})\nexport class CloseButtonComponent implements OnDestroy {\n @Input() size: number = 30;\n @Input() strokeWidth: number = 1.2;\n \n state: SpotcheckState;\n private stateService: SpotcheckStateService;\n private stateSubscription!: Subscription;\n \n isVisible: boolean = false;\n isMiniCard: boolean = false;\n stroke: string = 'black';\n \n constructor() {\n this.stateService = getSpotcheckStateService();\n this.state = this.stateService.getState();\n this.updateComponentState();\n\n this.stateSubscription = this.stateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentState();\n }\n );\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentState(): void {\n this.isVisible =\n this.state.isCloseButtonEnabled &&\n ((this.state.currentQuestionHeight > 0 && !this.state.isFullScreenMode) ||\n (this.state.isFullScreenMode &&\n ((!this.state.isClassicLoading &&\n this.state.spotCheckType === 'classic') ||\n (!this.state.isChatLoading &&\n this.state.spotCheckType === 'chat'))));\n this.isMiniCard = this.state.spotChecksMode === 'miniCard';\n this.stroke = this.isMiniCard ? 'black' : this.state.closeButtonStyle?.['ctaButton'] || 'black';\n }\n\n onClick = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n };\n}\n\n\n@Component({\n selector: 'SpotCheckComponent',\n templateUrl: './SpotCheckComponent.html',\n standalone: true,\n imports: [CommonModule, WebViewComponent, CloseButtonComponent],\n})\nexport class SpotCheckComponent implements OnInit, OnDestroy {\n state: SpotcheckState;\n private spotcheckStateService: SpotcheckStateService;\n private stateSubscription: Subscription;\n componentStyles: any = {};\n avatarUrl: string = '';\n\n constructor() {\n this.spotcheckStateService = getSpotcheckStateService();\n this.state = this.spotcheckStateService.getState();\n this.updateComponentStyles();\n\n this.stateSubscription = this.spotcheckStateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentStyles();\n this.avatarUrl = this.state.avatarUrl || \"https://static.surveysparrow.com/application/images/profile.png\";\n }\n );\n }\n\n ngOnInit(): void {\n this.initializeComponent();\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentStyles(): void {\n this.componentStyles = getSpotcheckComponentCssStyles(this.state);\n }\n\n initializeComponent = async () => {\n try {\n const domainName = this.state.domainName;\n const targetToken = this.state.targetToken;\n const response = await axios.get(\n `https://${domainName}/api/internal/spotcheck/widget/${targetToken}/init`\n );\n const data = response.data;\n\n if (data.filteredSpotChecks && data.filteredSpotChecks.length > 0) {\n let classicIframe = false;\n let chatIframe = false;\n\n data.filteredSpotChecks.forEach((spotcheck: any) => {\n if (\n spotcheck.appearance.mode === 'fullScreen' &&\n ischatSurvey(spotcheck?.survey?.surveyType)\n ) {\n chatIframe = true;\n } else {\n classicIframe = true;\n }\n });\n\n const newClassicUrl = classicIframe\n ? `https://${domainName}/eui-template/classic`\n : '';\n const newChatUrl = chatIframe\n ? `https://${domainName}/eui-template/chat`\n : '';\n\n this.spotcheckStateService.setState({\n filteredSpotChecks: data.filteredSpotChecks,\n classicUrl: newClassicUrl,\n chatUrl: newChatUrl,\n });\n }\n } catch (error) {\n console.log('Error initializing widget:', JSON.stringify(error));\n }\n };\n}\n","<div [ngStyle]=\"componentStyles.wrapperStyles\">\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 />\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 />\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","import { Component } from '@angular/core';\nimport { SpotCheckComponent } from './spotchecks/SpotCheckComponent';\n\n@Component({\n selector: 'SpotCheck',\n template: `<SpotCheckComponent />`,\n standalone: true,\n imports: [SpotCheckComponent],\n})\nexport class SpotCheck {}\n","export const getStoredUUID = () => {\n return localStorage.getItem('SurveySparrowUUID') || null;\n}\n\nexport const setUUID = (uuid: string) => {\n localStorage.setItem('SurveySparrowUUID', uuid);\n}","import { generateTraceId, getOS, setAppearance } from './helpers';\nimport { getStoredUUID, setUUID } from './storage';\nimport { TrackScreenProps, UserDetails, Variables, CustomProperties, TrackEventProps } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport axios from 'axios';\n\nexport const sendTrackScreenRequest = async ({\n screen,\n options,\n}: TrackScreenProps) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n const oldState = spotcheckStateService.getState();\n let variables = {} as Variables;\n let customProperties = {} as CustomProperties;\n let userDetails = {} as UserDetails; \n\n if (options && options.variables && Object.keys(options.variables).length > 0) {\n variables = { ...oldState.variables, ...options.variables };\n }\n if (options && options.customProperties && Object.keys(options.customProperties).length > 0) {\n customProperties = { ...oldState.customProperties, ...options.customProperties };\n }\n if (options && options.userDetails && Object.keys(options.userDetails).length > 0) {\n userDetails = { ...oldState.userDetails, ...options.userDetails };\n }\n\n let traceId = oldState.traceId;\n if (!traceId) {\n traceId = generateTraceId();\n }\n\n if (!userDetails.uuid && !userDetails.email && !userDetails.mobile) {\n const uuid = getStoredUUID();\n if (uuid) {\n userDetails.uuid = uuid;\n }\n }\n\n spotcheckStateService.setState({\n traceId,\n variables,\n customProperties,\n userDetails,\n });\n\n const state = spotcheckStateService.getState();\n let { isSpotPassed, isChecksPassed } = state;\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: state.userDetails,\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n traceId: state.traceId,\n customProperties: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true&sdk=IOS`;\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if(response.status === 200) {\n const responseJson = response.data;\n\n if (responseJson.uuid) {\n setUUID(responseJson.uuid);\n }\n\n if (responseJson?.show) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n isSpotPassed = true;\n spotcheckStateService.setState({ isSpotPassed });\n return { valid: true };\n }\n } else {\n throw new Error('');\n }\n }\n \n if (!isSpotPassed && responseJson?.checkPassed) {\n if (responseJson.checkCondition) {\n const checkCondition = responseJson.checkCondition;\n spotcheckStateService.setState({ afterDelay: checkCondition.afterDelay || 0 });\n if (checkCondition.customEvent) {\n spotcheckStateService.setState({ customEventsSpotChecks: [responseJson] });\n throw new Error('');\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n isChecksPassed = true;\n spotcheckStateService.setState({ isChecksPassed });\n return { valid: true };\n }\n }\n\n if (!isSpotPassed && !isChecksPassed && responseJson?.multiShow != null) {\n if (responseJson.multiShow) {\n spotcheckStateService.setState({ customEventsSpotChecks: responseJson.resultantSpotCheck });\n\n let selectedSpotCheck = {};\n let minDelay: number = Number.POSITIVE_INFINITY;\n\n for (const spotcheck of responseJson.resultantSpotCheck) {\n const checks = spotcheck?.checks || {};\n if (Object.keys(checks).length === 0) {\n minDelay = 0;\n selectedSpotCheck = spotcheck;\n } else if (checks.afterDelay != null) {\n const delay = parseFloat(checks.afterDelay);\n if (minDelay > delay) {\n minDelay = delay;\n selectedSpotCheck = spotcheck;\n }\n }\n }\n\n if (Object.keys(selectedSpotCheck).length > 0) {\n spotcheckStateService.setState({ afterDelay: minDelay });\n const appearance_response = await setAppearance(\n selectedSpotCheck,\n screen,\n state.domainName,\n traceId,\n state.variables\n );\n if (appearance_response) {\n return { valid: true };\n }\n }\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};\n\n\nexport const sendTrackEventRequest = async ({ screen, event }: TrackEventProps) => {\n try {\n const intMax = Number.POSITIVE_INFINITY;\n const state = getSpotcheckStateService().getState();\n let selectedSpotCheckID = intMax;\n let { isSpotPassed } = state;\n if (state.customEventsSpotChecks.length > 0) {\n const eventKeys = Object.keys(event);\n for (const spotCheck of state.customEventsSpotChecks) {\n const checks = spotCheck?.['checks'] ?? spotCheck?.['checkCondition'];\n\n if (checks) {\n const customEvent = checks?.customEvent;\n\n if (eventKeys.includes(customEvent?.eventName)) {\n selectedSpotCheckID =\n spotCheck?.['id'] ?? spotCheck?.['spotCheckId'] ?? intMax;\n let payloadUserDetails = { ...state.userDetails };\n\n if (selectedSpotCheckID !== intMax) {\n if (\n !payloadUserDetails?.email &&\n !payloadUserDetails?.uuid &&\n !payloadUserDetails?.mobile\n ) {\n const uuid = getStoredUUID();\n if (uuid) {\n payloadUserDetails.uuid = uuid;\n }\n }\n\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: payloadUserDetails,\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n spotCheckId: selectedSpotCheckID,\n eventTrigger: {\n customEvent: event,\n },\n traceId: state.traceId,\n customProperties: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/eventTrigger?isSpotCheck=true`;\n\n try {\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (response.status === 200) {\n const responseJson = response.data;\n if (responseJson?.show != null) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n getSpotcheckStateService().setState({ isSpotPassed: true });\n isSpotPassed = true;\n return { valid: true };\n }\n }\n }\n\n if (!isSpotPassed && responseJson?.eventShow) {\n if (responseJson?.checkCondition != null) {\n const checkCondition = responseJson?.checkCondition;\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.afterDelay ?? 0,\n });\n\n if (checkCondition?.customEvent != null) {\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.customEvent?.delayInSeconds ?? 0,\n });\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n return { valid: true };\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n }\n }\n }\n throw new Error('');\n } else {\n throw new Error('');\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};","import { InitializeSpotChecksProps, TrackEventProps, TrackScreenProps } from './types';\nimport { sendTrackScreenRequest, sendTrackEventRequest } from './api';\nimport { getSpotcheckStateService } from './helpers';\n\nexport const initializeSpotChecks = ({\n domainName,\n targetToken,\n userDetails = {},\n variables = {},\n customProperties = {},\n}: InitializeSpotChecksProps) => {\n const spotcheckStateService = getSpotcheckStateService();\n spotcheckStateService.setState({\n domainName,\n targetToken,\n userDetails,\n variables,\n customProperties,\n });\n};\n\nexport const trackScreen = async ({ screen, options }: TrackScreenProps) => {\n try {\n const response = await sendTrackScreenRequest({ screen, options });\n if (response.valid) {\n console.log('Screen Tracking succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Screen Tracking Failed. ${error.message}`);\n }\n};\n\nexport const trackEvent = async ({ screen, event }: TrackEventProps) => {\n try {\n const response = await sendTrackEventRequest({ screen, event });\n if (response.valid) {\n console.log('TrackEvent succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Event Tracking Failed. ${error.message}`);\n }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
|
|
@@ -151,7 +151,7 @@ export const setAppearance = async (responseJson, screen, domainName, traceId, v
|
|
|
151
151
|
throw new Error(error.message);
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
throw new Error('
|
|
154
|
+
throw new Error('Something went wrong');
|
|
155
155
|
}
|
|
156
156
|
catch (error) {
|
|
157
157
|
throw new Error(error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { Device } from '@capacitor/device';\nimport { SpotcheckState } from './types';\nimport axios from 'axios';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport function generateTraceId() {\n const uuidString = uuidv4();\n const timestamp = Date.now();\n return `${uuidString}-${timestamp}`;\n}\n\nexport const ischatSurvey = (type: String) => {\n return (\n type === 'Conversational' ||\n type === 'CESChat' ||\n type === 'NPSChat' ||\n type === 'CSATChat'\n );\n};\n\nexport const getOS = async () => {\n const info = await Device.getInfo();\n return info.operatingSystem;\n};\n\nexport const setAppearance = async (\n responseJson: any,\n screen: string,\n domainName: string,\n traceId: string,\n variables: Record<string, any>\n) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n let state = spotcheckStateService.getState();\n\n if (responseJson) {\n const currentSpotcheck = state.filteredSpotChecks.find(\n (spotcheck) =>\n spotcheck['id'] === responseJson?.spotCheckId ||\n spotcheck['id'] === responseJson?.id\n );\n\n const appearance = responseJson?.appearance;\n let chat = false;\n\n let updatedState: Partial<SpotcheckState> = {};\n\n if (appearance) {\n const {\n position,\n closeButton,\n colors,\n cardProperties,\n mode,\n bannerImage,\n } = appearance;\n const { maxHeight } = cardProperties || {};\n\n updatedState = {\n spotcheckPosition:\n position === 'top_full' || position === 'center_top'\n ? 'top'\n : position === 'center_center'\n ? 'center'\n : 'bottom',\n isCloseButtonEnabled: closeButton ?? true,\n closeButtonStyle: colors?.overrides ?? {},\n maxHeight: maxHeight ? parseFloat(maxHeight) / 100 : 0,\n spotCheckType:\n ischatSurvey(currentSpotcheck?.['survey']?.surveyType) &&\n mode === 'fullScreen'\n ? 'chat'\n : 'classic',\n isFullScreenMode: mode === 'fullScreen',\n isBannerImageOn: bannerImage?.enabled ?? false,\n spotChecksMode: mode,\n avatarEnabled: appearance?.avatar?.enabled ?? false,\n avatarUrl: appearance?.avatar?.avatarUrl ?? '',\n };\n\n chat = updatedState.spotCheckType === 'chat';\n }\n\n const spotCheckId = responseJson?.spotCheckId ?? 0;\n const spotCheckContactId =\n responseJson?.spotCheckContactId ??\n responseJson?.spotCheckContact?.id ??\n 0;\n const triggerToken = responseJson?.triggerToken ?? '';\n\n updatedState = {\n ...updatedState,\n spotcheckID: spotCheckId,\n spotcheckContactID: spotCheckContactId,\n triggerToken,\n };\n\n const baseSpotcheckURL = `https://${domainName}/s/spotcheck/${triggerToken}/${\n chat ? 'config' : 'bootstrap'\n }?spotcheckContactId=${spotCheckContactId}&traceId=${traceId}&spotcheckUrl=${screen}`;\n\n let fullSpotcheckURL = baseSpotcheckURL;\n\n Object.entries(variables).forEach(([key, value]) => {\n fullSpotcheckURL += `&${key}=${value}`;\n });\n\n updatedState.spotcheckURL = fullSpotcheckURL;\n spotcheckStateService.setState(updatedState);\n\n try {\n const response = await axios.get(fullSpotcheckURL);\n const themeInfo = response.data.config.generatedCSS;\n const theme_payload = { type: 'THEME_UPDATE_SPOTCHECK', themeInfo };\n state = spotcheckStateService.getState();\n\n let webViewRef = chat ? state.chatWebViewRef : state.classicWebViewRef;\n let isLoading = chat ? state.isChatLoading : state.isClassicLoading;\n\n const resetStateData = {\n type: 'RESET_STATE',\n state: {\n ...(response.data || {}),\n skip: true,\n spotCheckAppearance: {\n ...(appearance || {}),\n targetType: 'MOBILE',\n },\n spotcheckUrl: screen,\n traceId,\n elementBuilderParams: {\n ...(variables || {}),\n },\n },\n };\n\n const sendMessageToIframe = (iframe: HTMLIFrameElement, data: any) => {\n if (iframe && iframe.contentWindow) {\n try {\n iframe.contentWindow.postMessage(data, '*');\n } catch (error) {\n console.error('❌ Failed to send message to iframe:', error);\n }\n }\n };\n\n const communicateWithWebView = async (iframe: HTMLIFrameElement) => {\n await new Promise(resolve => setTimeout(() => {\n sendMessageToIframe(iframe, resetStateData);\n sendMessageToIframe(iframe, theme_payload);\n resolve(true);\n }, 2000));\n };\n\n if (webViewRef) {\n if (isLoading === false) {\n communicateWithWebView(webViewRef);\n start();\n return true;\n } else {\n // todo: recheck this\n const unsubscribe = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const {\n isChatLoading,\n isClassicLoading,\n chatWebViewRef,\n classicWebViewRef,\n } = currentState;\n\n if ((!isChatLoading && chat) || (!isClassicLoading && !chat)) {\n unsubscribe.unsubscribe();\n const activeWebViewRef = chat\n ? chatWebViewRef\n : classicWebViewRef;\n if (activeWebViewRef) {\n communicateWithWebView(activeWebViewRef);\n start();\n } else {\n console.warn(\n '⚠️ Active WebView ref is null after loading completed'\n );\n }\n }\n }\n );\n return true;\n }\n } else {\n const unsubscribeWebView = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const updatedWebViewRef = chat\n ? currentState.chatWebViewRef\n : currentState.classicWebViewRef;\n const updatedIsLoading = chat\n ? currentState.isChatLoading\n : currentState.isClassicLoading;\n\n if (updatedWebViewRef) {\n if (!updatedIsLoading) {\n unsubscribeWebView.unsubscribe();\n communicateWithWebView(updatedWebViewRef);\n start();\n } else {\n console.log('⏳ WebView ref available but still loading...');\n }\n }\n }\n );\n return true;\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n throw new Error('212');\n } catch (error: any) {\n throw new Error(error.message);\n }\n};\n\nexport const start = () => {\n const state = getSpotcheckStateService().getState();\n setTimeout(() => {\n getSpotcheckStateService().setState({ isVisible: true });\n }, state.afterDelay * 1000);\n};\n\nexport const closeSpotCheck = async () => {\n try {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const payload = {\n traceId: state.traceId,\n triggerToken: state.triggerToken,\n };\n\n const response = await fetch(\n `https://${state.domainName}/api/internal/spotcheck/dismiss/${state.spotcheckContactID}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n );\n\n if (response.status != 200) {\n console.log(`Error: ${response.status}`);\n }\n } catch (error) {\n console.log('Error parsing JSON:', error);\n }\n};\n\nexport const handleSurveyEnd = () => {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const webViewRef =\n state.spotCheckType === 'chat'\n ? state.chatWebViewRef\n : state.classicWebViewRef;\n\n webViewRef?.current?.injectJavaScript(`\n (function() {\n window.dispatchEvent(new MessageEvent('message', {\n data: ${JSON.stringify({ type: 'UNMOUNT_APP' })}\n }));\n })();\n `);\n\n const updatedState: Partial<SpotcheckState> = {\n isVisible: false,\n isCloseButtonEnabled: false,\n isFullScreenMode: false,\n spotcheckID: 0,\n currentQuestionHeight: 0,\n closeButtonStyle: {},\n spotcheckContactID: 0,\n spotcheckURL: '',\n spotcheckPosition: 'bottom',\n isMounted: false,\n spotCheckType: '',\n screenHeight: 0,\n keyBoardHeight: 0,\n textPosition: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n\n stateService.setState(updatedState);\n};\n\nexport const getSpotcheckComponentCssStyles = (state: SpotcheckState) => { \n let styles = {}\n let wrapperStyles = {}\n let padding = 30;\n if (state.isFullScreenMode && state.isVisible) {\n wrapperStyles = {\n display: 'flex',\n height: '100%',\n };\n styles = {\n display: 'flex',\n height: '100%',\n };\n }\n \n if (state.isVisible && state.isMounted) {\n\n let height = Math.min(state.currentQuestionHeight, (state.maxHeight * window.innerHeight));\n if(state.spotChecksMode === 'miniCard') {\n padding = 45;\n if(state.avatarEnabled) {\n height = height - 56;\n }\n if(state.isCloseButtonEnabled) {\n height = height - 40;\n }\n }\n\n switch (state.spotcheckPosition) {\n case 'bottom':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-end',\n };\n break;\n \n case 'top':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-start',\n };\n break;\n \n case 'center':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'center',\n };\n break;\n \n default:\n break;\n }\n }\n \n return {\n wrapperStyles: {\n position: 'fixed', \n width: '100%', \n height: '100%', \n top: '0', \n left: '0', \n backgroundColor: 'rgba(0, 0, 0, 0.3)', \n zIndex: '99999999',\n display: 'none',\n flexDirection: 'column',\n paddingTop: padding+'px',\n paddingBottom: padding+'px',\n ...wrapperStyles\n },\n styles: {\n display: 'none',\n flexDirection: 'column',\n ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { Device } from '@capacitor/device';\nimport { SpotcheckState } from './types';\nimport axios from 'axios';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport function generateTraceId() {\n const uuidString = uuidv4();\n const timestamp = Date.now();\n return `${uuidString}-${timestamp}`;\n}\n\nexport const ischatSurvey = (type: String) => {\n return (\n type === 'Conversational' ||\n type === 'CESChat' ||\n type === 'NPSChat' ||\n type === 'CSATChat'\n );\n};\n\nexport const getOS = async () => {\n const info = await Device.getInfo();\n return info.operatingSystem;\n};\n\nexport const setAppearance = async (\n responseJson: any,\n screen: string,\n domainName: string,\n traceId: string,\n variables: Record<string, any>\n) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n let state = spotcheckStateService.getState();\n\n if (responseJson) {\n const currentSpotcheck = state.filteredSpotChecks.find(\n (spotcheck) =>\n spotcheck['id'] === responseJson?.spotCheckId ||\n spotcheck['id'] === responseJson?.id\n );\n\n const appearance = responseJson?.appearance;\n let chat = false;\n\n let updatedState: Partial<SpotcheckState> = {};\n\n if (appearance) {\n const {\n position,\n closeButton,\n colors,\n cardProperties,\n mode,\n bannerImage,\n } = appearance;\n const { maxHeight } = cardProperties || {};\n\n updatedState = {\n spotcheckPosition:\n position === 'top_full' || position === 'center_top'\n ? 'top'\n : position === 'center_center'\n ? 'center'\n : 'bottom',\n isCloseButtonEnabled: closeButton ?? true,\n closeButtonStyle: colors?.overrides ?? {},\n maxHeight: maxHeight ? parseFloat(maxHeight) / 100 : 0,\n spotCheckType:\n ischatSurvey(currentSpotcheck?.['survey']?.surveyType) &&\n mode === 'fullScreen'\n ? 'chat'\n : 'classic',\n isFullScreenMode: mode === 'fullScreen',\n isBannerImageOn: bannerImage?.enabled ?? false,\n spotChecksMode: mode,\n avatarEnabled: appearance?.avatar?.enabled ?? false,\n avatarUrl: appearance?.avatar?.avatarUrl ?? '',\n };\n\n chat = updatedState.spotCheckType === 'chat';\n }\n\n const spotCheckId = responseJson?.spotCheckId ?? 0;\n const spotCheckContactId =\n responseJson?.spotCheckContactId ??\n responseJson?.spotCheckContact?.id ??\n 0;\n const triggerToken = responseJson?.triggerToken ?? '';\n\n updatedState = {\n ...updatedState,\n spotcheckID: spotCheckId,\n spotcheckContactID: spotCheckContactId,\n triggerToken,\n };\n\n const baseSpotcheckURL = `https://${domainName}/s/spotcheck/${triggerToken}/${\n chat ? 'config' : 'bootstrap'\n }?spotcheckContactId=${spotCheckContactId}&traceId=${traceId}&spotcheckUrl=${screen}`;\n\n let fullSpotcheckURL = baseSpotcheckURL;\n\n Object.entries(variables).forEach(([key, value]) => {\n fullSpotcheckURL += `&${key}=${value}`;\n });\n\n updatedState.spotcheckURL = fullSpotcheckURL;\n spotcheckStateService.setState(updatedState);\n\n try {\n const response = await axios.get(fullSpotcheckURL);\n const themeInfo = response.data.config.generatedCSS;\n const theme_payload = { type: 'THEME_UPDATE_SPOTCHECK', themeInfo };\n state = spotcheckStateService.getState();\n\n let webViewRef = chat ? state.chatWebViewRef : state.classicWebViewRef;\n let isLoading = chat ? state.isChatLoading : state.isClassicLoading;\n\n const resetStateData = {\n type: 'RESET_STATE',\n state: {\n ...(response.data || {}),\n skip: true,\n spotCheckAppearance: {\n ...(appearance || {}),\n targetType: 'MOBILE',\n },\n spotcheckUrl: screen,\n traceId,\n elementBuilderParams: {\n ...(variables || {}),\n },\n },\n };\n\n const sendMessageToIframe = (iframe: HTMLIFrameElement, data: any) => {\n if (iframe && iframe.contentWindow) {\n try {\n iframe.contentWindow.postMessage(data, '*');\n } catch (error) {\n console.error('❌ Failed to send message to iframe:', error);\n }\n }\n };\n\n const communicateWithWebView = async (iframe: HTMLIFrameElement) => {\n await new Promise(resolve => setTimeout(() => {\n sendMessageToIframe(iframe, resetStateData);\n sendMessageToIframe(iframe, theme_payload);\n resolve(true);\n }, 2000));\n };\n\n if (webViewRef) {\n if (isLoading === false) {\n communicateWithWebView(webViewRef);\n start();\n return true;\n } else {\n // todo: recheck this\n const unsubscribe = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const {\n isChatLoading,\n isClassicLoading,\n chatWebViewRef,\n classicWebViewRef,\n } = currentState;\n\n if ((!isChatLoading && chat) || (!isClassicLoading && !chat)) {\n unsubscribe.unsubscribe();\n const activeWebViewRef = chat\n ? chatWebViewRef\n : classicWebViewRef;\n if (activeWebViewRef) {\n communicateWithWebView(activeWebViewRef);\n start();\n } else {\n console.warn(\n '⚠️ Active WebView ref is null after loading completed'\n );\n }\n }\n }\n );\n return true;\n }\n } else {\n const unsubscribeWebView = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const updatedWebViewRef = chat\n ? currentState.chatWebViewRef\n : currentState.classicWebViewRef;\n const updatedIsLoading = chat\n ? currentState.isChatLoading\n : currentState.isClassicLoading;\n\n if (updatedWebViewRef) {\n if (!updatedIsLoading) {\n unsubscribeWebView.unsubscribe();\n communicateWithWebView(updatedWebViewRef);\n start();\n } else {\n console.log('⏳ WebView ref available but still loading...');\n }\n }\n }\n );\n return true;\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n throw new Error('Something went wrong');\n } catch (error: any) {\n throw new Error(error.message);\n }\n};\n\nexport const start = () => {\n const state = getSpotcheckStateService().getState();\n setTimeout(() => {\n getSpotcheckStateService().setState({ isVisible: true });\n }, state.afterDelay * 1000);\n};\n\nexport const closeSpotCheck = async () => {\n try {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const payload = {\n traceId: state.traceId,\n triggerToken: state.triggerToken,\n };\n\n const response = await fetch(\n `https://${state.domainName}/api/internal/spotcheck/dismiss/${state.spotcheckContactID}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n );\n\n if (response.status != 200) {\n console.log(`Error: ${response.status}`);\n }\n } catch (error) {\n console.log('Error parsing JSON:', error);\n }\n};\n\nexport const handleSurveyEnd = () => {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const webViewRef =\n state.spotCheckType === 'chat'\n ? state.chatWebViewRef\n : state.classicWebViewRef;\n\n webViewRef?.current?.injectJavaScript(`\n (function() {\n window.dispatchEvent(new MessageEvent('message', {\n data: ${JSON.stringify({ type: 'UNMOUNT_APP' })}\n }));\n })();\n `);\n\n const updatedState: Partial<SpotcheckState> = {\n isVisible: false,\n isCloseButtonEnabled: false,\n isFullScreenMode: false,\n spotcheckID: 0,\n currentQuestionHeight: 0,\n closeButtonStyle: {},\n spotcheckContactID: 0,\n spotcheckURL: '',\n spotcheckPosition: 'bottom',\n isMounted: false,\n spotCheckType: '',\n screenHeight: 0,\n keyBoardHeight: 0,\n textPosition: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n\n stateService.setState(updatedState);\n};\n\nexport const getSpotcheckComponentCssStyles = (state: SpotcheckState) => { \n let styles = {}\n let wrapperStyles = {}\n let padding = 30;\n if (state.isFullScreenMode && state.isVisible) {\n wrapperStyles = {\n display: 'flex',\n height: '100%',\n };\n styles = {\n display: 'flex',\n height: '100%',\n };\n }\n \n if (state.isVisible && state.isMounted) {\n\n let height = Math.min(state.currentQuestionHeight, (state.maxHeight * window.innerHeight));\n if(state.spotChecksMode === 'miniCard') {\n padding = 45;\n if(state.avatarEnabled) {\n height = height - 56;\n }\n if(state.isCloseButtonEnabled) {\n height = height - 40;\n }\n }\n\n switch (state.spotcheckPosition) {\n case 'bottom':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-end',\n };\n break;\n \n case 'top':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-start',\n };\n break;\n \n case 'center':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'center',\n };\n break;\n \n default:\n break;\n }\n }\n \n return {\n wrapperStyles: {\n position: 'fixed', \n width: '100%', \n height: '100%', \n top: '0', \n left: '0', \n backgroundColor: 'rgba(0, 0, 0, 0.3)', \n zIndex: '99999999',\n display: 'none',\n flexDirection: 'column',\n paddingTop: padding+'px',\n paddingBottom: padding+'px',\n ...wrapperStyles\n },\n styles: {\n display: 'none',\n flexDirection: 'column',\n ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};"]}
|