@zoho_apptics/apptics-js-sdk 2.0.0-beta.1 → 2.0.0-beta.2
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/CHANGELOG.md +80 -16
- package/README.md +187 -100
- package/dist/apptics.esm.min.js +2 -2
- package/dist/apptics.esm.min.js.map +1 -1
- package/dist/apptics.min.js +2 -2
- package/dist/apptics.min.js.map +1 -1
- package/dist/chunks/lifecycle-C6m1W7jo.min.js +3 -0
- package/dist/chunks/lifecycle-C6m1W7jo.min.js.map +1 -0
- package/dist/chunks/send-CgUO82ne.min.js +3 -0
- package/dist/chunks/send-CgUO82ne.min.js.map +1 -0
- package/dist/cjs/core/attempts.js +1 -1
- package/dist/cjs/core/batch.js +1 -2
- package/dist/cjs/core/consent.d.ts +13 -3
- package/dist/cjs/core/consent.js +24 -10
- package/dist/cjs/core/constants.d.ts +22 -17
- package/dist/cjs/core/constants.js +22 -19
- package/dist/cjs/core/db.js +1 -1
- package/dist/cjs/core/debug.js +1 -1
- package/dist/cjs/core/env.d.ts +0 -3
- package/dist/cjs/core/env.js +1 -9
- package/dist/cjs/core/framework-id.d.ts +1 -1
- package/dist/cjs/core/framework-id.js +3 -3
- package/dist/cjs/core/guard.js +1 -1
- package/dist/cjs/core/hooks.d.ts +5 -0
- package/dist/cjs/core/hooks.js +2 -1
- package/dist/cjs/core/locks.js +1 -1
- package/dist/cjs/core/logger.js +1 -1
- package/dist/cjs/core/state.d.ts +6 -4
- package/dist/cjs/core/state.js +2 -4
- package/dist/cjs/core/storage.js +1 -4
- package/dist/cjs/core/stylesheet.js +1 -1
- package/dist/cjs/core/transport.js +13 -16
- package/dist/cjs/core/utils.js +1 -1
- package/dist/cjs/core/validate.js +1 -1
- package/dist/cjs/device/appversion.d.ts +10 -1
- package/dist/cjs/device/appversion.js +26 -3
- package/dist/cjs/device/index.d.ts +17 -2
- package/dist/cjs/device/index.js +195 -27
- package/dist/cjs/engagement/api-rules.js +1 -1
- package/dist/cjs/engagement/auto-api.js +1 -1
- package/dist/cjs/engagement/auto-screen.js +1 -1
- package/dist/cjs/engagement/defined-events.js +1 -1
- package/dist/cjs/engagement/send.js +7 -3
- package/dist/cjs/engagement/session.d.ts +17 -0
- package/dist/cjs/engagement/session.js +95 -4
- package/dist/cjs/engagement/track.d.ts +4 -4
- package/dist/cjs/engagement/track.js +15 -12
- package/dist/cjs/errors/send.js +2 -2
- package/dist/cjs/errors/track.d.ts +2 -1
- package/dist/cjs/errors/track.js +6 -4
- package/dist/cjs/feedback/controls.d.ts +6 -0
- package/dist/cjs/feedback/controls.js +74 -25
- package/dist/cjs/feedback/index.js +1 -1
- package/dist/cjs/feedback/logs.d.ts +3 -6
- package/dist/cjs/feedback/logs.js +8 -18
- package/dist/cjs/feedback/quartz.js +1 -1
- package/dist/cjs/feedback/send.d.ts +2 -2
- package/dist/cjs/feedback/send.js +4 -27
- package/dist/cjs/feedback/styles.js +2 -2
- package/dist/cjs/feedback/template.d.ts +1 -1
- package/dist/cjs/feedback/template.js +9 -1
- package/dist/cjs/feedback/ui.d.ts +7 -0
- package/dist/cjs/feedback/ui.js +160 -25
- package/dist/cjs/heatmap/send.d.ts +2 -0
- package/dist/cjs/heatmap/send.js +3 -5
- package/dist/cjs/heatmap/track.js +1 -1
- package/dist/cjs/index.d.ts +1 -2
- package/dist/cjs/index.js +54 -17
- package/dist/cjs/lifecycle.d.ts +13 -2
- package/dist/cjs/lifecycle.js +122 -54
- package/dist/cjs/remoteconfig/country.js +1 -1
- package/dist/cjs/remoteconfig/custom.js +1 -1
- package/dist/cjs/remoteconfig/evaluate.js +1 -1
- package/dist/cjs/remoteconfig/fetch.d.ts +17 -10
- package/dist/cjs/remoteconfig/fetch.js +126 -31
- package/dist/cjs/remoteconfig/index.d.ts +13 -4
- package/dist/cjs/remoteconfig/index.js +36 -20
- package/dist/cjs/remoteconfig/store.d.ts +15 -7
- package/dist/cjs/remoteconfig/store.js +68 -35
- package/dist/cjs/remoteconfig/tz-countries.js +1 -1
- package/dist/cjs/{core → remotelog}/callsite.d.ts +5 -4
- package/dist/cjs/{core → remotelog}/callsite.js +6 -5
- package/dist/cjs/remotelog/gate.js +1 -1
- package/dist/cjs/remotelog/logger.js +2 -2
- package/dist/cjs/remotelog/send.js +2 -2
- package/dist/cjs/remotelogger/index.js +1 -1
- package/dist/cjs/scheduler.d.ts +3 -1
- package/dist/cjs/scheduler.js +24 -21
- package/dist/cjs/types.d.ts +61 -16
- package/dist/cjs/user/index.js +6 -2
- package/dist/esm/core/attempts.js +1 -1
- package/dist/esm/core/batch.js +1 -2
- package/dist/esm/core/consent.d.ts +13 -3
- package/dist/esm/core/consent.js +24 -11
- package/dist/esm/core/constants.d.ts +22 -17
- package/dist/esm/core/constants.js +22 -19
- package/dist/esm/core/db.js +1 -1
- package/dist/esm/core/debug.js +1 -1
- package/dist/esm/core/env.d.ts +0 -3
- package/dist/esm/core/env.js +2 -9
- package/dist/esm/core/framework-id.d.ts +1 -1
- package/dist/esm/core/framework-id.js +3 -3
- package/dist/esm/core/guard.js +1 -1
- package/dist/esm/core/hooks.d.ts +5 -0
- package/dist/esm/core/hooks.js +2 -1
- package/dist/esm/core/locks.js +1 -1
- package/dist/esm/core/logger.js +1 -1
- package/dist/esm/core/state.d.ts +6 -4
- package/dist/esm/core/state.js +2 -4
- package/dist/esm/core/storage.js +1 -4
- package/dist/esm/core/stylesheet.js +1 -1
- package/dist/esm/core/transport.js +13 -16
- package/dist/esm/core/utils.js +1 -1
- package/dist/esm/core/validate.js +1 -1
- package/dist/esm/device/appversion.d.ts +10 -1
- package/dist/esm/device/appversion.js +26 -4
- package/dist/esm/device/index.d.ts +17 -2
- package/dist/esm/device/index.js +195 -30
- package/dist/esm/engagement/api-rules.js +1 -1
- package/dist/esm/engagement/auto-api.js +1 -1
- package/dist/esm/engagement/auto-screen.js +1 -1
- package/dist/esm/engagement/defined-events.js +1 -1
- package/dist/esm/engagement/send.js +7 -3
- package/dist/esm/engagement/session.d.ts +17 -0
- package/dist/esm/engagement/session.js +93 -5
- package/dist/esm/engagement/track.d.ts +4 -4
- package/dist/esm/engagement/track.js +16 -13
- package/dist/esm/errors/send.js +2 -2
- package/dist/esm/errors/track.d.ts +2 -1
- package/dist/esm/errors/track.js +6 -4
- package/dist/esm/feedback/controls.d.ts +6 -0
- package/dist/esm/feedback/controls.js +74 -26
- package/dist/esm/feedback/index.js +1 -1
- package/dist/esm/feedback/logs.d.ts +3 -6
- package/dist/esm/feedback/logs.js +8 -18
- package/dist/esm/feedback/quartz.js +1 -1
- package/dist/esm/feedback/send.d.ts +2 -2
- package/dist/esm/feedback/send.js +6 -29
- package/dist/esm/feedback/styles.js +2 -2
- package/dist/esm/feedback/template.d.ts +1 -1
- package/dist/esm/feedback/template.js +9 -1
- package/dist/esm/feedback/ui.d.ts +7 -0
- package/dist/esm/feedback/ui.js +161 -26
- package/dist/esm/heatmap/send.d.ts +2 -0
- package/dist/esm/heatmap/send.js +3 -5
- package/dist/esm/heatmap/track.js +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +57 -20
- package/dist/esm/lifecycle.d.ts +13 -2
- package/dist/esm/lifecycle.js +126 -60
- package/dist/esm/remoteconfig/country.js +1 -1
- package/dist/esm/remoteconfig/custom.js +1 -1
- package/dist/esm/remoteconfig/evaluate.js +1 -1
- package/dist/esm/remoteconfig/fetch.d.ts +17 -10
- package/dist/esm/remoteconfig/fetch.js +127 -32
- package/dist/esm/remoteconfig/index.d.ts +13 -4
- package/dist/esm/remoteconfig/index.js +36 -20
- package/dist/esm/remoteconfig/store.d.ts +15 -7
- package/dist/esm/remoteconfig/store.js +68 -36
- package/dist/esm/remoteconfig/tz-countries.js +1 -1
- package/dist/esm/{core → remotelog}/callsite.d.ts +5 -4
- package/dist/esm/{core → remotelog}/callsite.js +6 -5
- package/dist/esm/remotelog/gate.js +1 -1
- package/dist/esm/remotelog/logger.js +2 -2
- package/dist/esm/remotelog/send.js +2 -2
- package/dist/esm/remotelogger/index.js +1 -1
- package/dist/esm/scheduler.d.ts +3 -1
- package/dist/esm/scheduler.js +25 -23
- package/dist/esm/types.d.ts +61 -16
- package/dist/esm/user/index.js +7 -3
- package/dist/feedback.esm.min.js +2 -2
- package/dist/feedback.esm.min.js.map +1 -1
- package/dist/remoteconfig.esm.min.js +3 -0
- package/dist/remoteconfig.esm.min.js.map +1 -0
- package/dist/remotelogger.esm.min.js +3 -0
- package/dist/remotelogger.esm.min.js.map +1 -0
- package/package.json +3 -2
- package/dist/chunks/lifecycle-VYr43KcB.min.js +0 -3
- package/dist/chunks/lifecycle-VYr43KcB.min.js.map +0 -1
- package/dist/cjs/auto-init.d.ts +0 -8
- package/dist/cjs/auto-init.js +0 -32
- package/dist/esm/auto-init.d.ts +0 -8
- package/dist/esm/auto-init.js +0 -29
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.
|
|
1
|
+
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.2 | (c) Zoho Corporation Private Limited | see LICENSE */
|
|
2
2
|
import { _ZAP } from '../core/state.js';
|
|
3
3
|
import { Console } from '../core/logger.js';
|
|
4
|
-
import { isEmpty, nowMs,
|
|
4
|
+
import { isEmpty, nowMs, sizeof } from '../core/utils.js';
|
|
5
5
|
import { is_apptics_disabled, getBatteryPercent, getConnectionType, getOrientation, getNetworkStatus } from '../core/env.js';
|
|
6
6
|
import { getMetaObj, rejectIfDisabled, rejectIfNoDeviceIds, postToApptics, apiHeaders } from '../core/transport.js';
|
|
7
|
-
import {
|
|
7
|
+
import { toLogFile, toDyninfoFile, feedbacklog_transactions_remove } from './logs.js';
|
|
8
8
|
|
|
9
9
|
const SUCCESS_MESSAGE = 'Feedback sent successfully'; // no i18n
|
|
10
10
|
const FAILURE_MESSAGE = 'Something went wrong. Send feedback again'; // no i18n
|
|
11
|
-
/**
|
|
12
|
-
* Ids left out of dyninfo.txt.
|
|
13
|
-
*
|
|
14
|
-
* The file is read by a person looking at a report, and every one of these is a server-side id
|
|
15
|
-
* that the server already has from the request's own params and meta. Repeating them buries the
|
|
16
|
-
* four lines that actually describe the device - browser, OS, screen, timezone - in bookkeeping.
|
|
17
|
-
*/
|
|
18
|
-
const DYNINFO_EXCLUDED_KEYS = ['deviceid', 'anonymousid', 'aaid', 'apid', 'mapid', 'devicetypeid', 'osversionid', 'platformid', 'appversionid', 'appreleaseversionid', 'modelid', 'timezoneid', 'frameworkid', 'projectid', 'portalid', 'donottrackenabled', 'uuid', 'hadsession']; // no i18n
|
|
19
11
|
/**
|
|
20
12
|
* Sends feedback to the Apptics API.
|
|
21
13
|
* Resolves with the outcome, or null when nothing was sent (disabled client or offline).
|
|
@@ -123,28 +115,13 @@ function readAttachments(fileList) {
|
|
|
123
115
|
}
|
|
124
116
|
return Promise.all(reads);
|
|
125
117
|
}
|
|
126
|
-
/** The device info dump that goes in dyninfo.txt, or null when it can't be serialised. */
|
|
127
|
-
function deviceInfoText() {
|
|
128
|
-
try {
|
|
129
|
-
return JSON.stringify(cloneMapExcludingKeys(_ZAP._device_info, DYNINFO_EXCLUDED_KEYS) || {}, null, 2);
|
|
130
|
-
}
|
|
131
|
-
catch (e) {
|
|
132
|
-
Console.error('Failed to prepare dyninfo file', e); // no i18n
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
118
|
/** Renders whatever addFeedbackLog() and addDiagnosticsInfo() left behind, honouring the flags. */
|
|
137
119
|
function collectStoredFiles(obj) {
|
|
138
120
|
var wantLog = obj.includeLog !== false;
|
|
139
|
-
var
|
|
140
|
-
var wantDyninfo = dyninfo === true ? Promise.resolve(true)
|
|
141
|
-
: dyninfo === false ? Promise.resolve(false)
|
|
142
|
-
: hasDiagnostics(); // unset: send it only because there is something to say
|
|
121
|
+
var wantDyninfo = obj.includeDyninfo !== false;
|
|
143
122
|
return Promise.all([
|
|
144
123
|
wantLog ? toLogFile() : Promise.resolve(null),
|
|
145
|
-
wantDyninfo
|
|
146
|
-
return wanted ? toDyninfoFile(deviceInfoText()) : null;
|
|
147
|
-
}),
|
|
124
|
+
wantDyninfo ? toDyninfoFile() : Promise.resolve(null),
|
|
148
125
|
]).then(function ([log, dyn]) {
|
|
149
126
|
return {
|
|
150
127
|
logFile: log ? log.file : null,
|
|
@@ -164,7 +141,7 @@ function appendLogsAndDyninfo(sendformdata, _logsFiles, stored) {
|
|
|
164
141
|
if (stored.logFile) {
|
|
165
142
|
sendformdata.append('logfile', stored.logFile); // no i18n
|
|
166
143
|
}
|
|
167
|
-
// dyninfo: addDiagnosticsInfo() entries
|
|
144
|
+
// dyninfo: the addDiagnosticsInfo() entries
|
|
168
145
|
if (stored.dyninfoFile) {
|
|
169
146
|
sendformdata.append('dyninfo', stored.dyninfoFile); // no i18n
|
|
170
147
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.
|
|
2
|
-
const css = ".zasdk-modal{color:var(--zasdk-text-color);margin:0;padding:0;font-family:inherit;line-height:normal}.zasdk-modal p{margin:0}.zasdk-modal ul{margin:0;padding:0;list-style:none}.zasdk-modal,.zasdk-timer-container{--zasdk-background-color:#fff;--zasdk-text-color:#333;--zasdk-border-color:#ddd;--zasdk-modal-background:#0006;--zasdk-close-color:#aaa;--zasdk-close-hover-color:#000;--zasdk-input-background:#fff;--zasdk-button-background:#f0f0f0;--zasdk-primary-color:#007bff;--zasdk-primary-text-color:#000;--zasdk-button-text-color:#fff;--zasdk-secondary-background:#ddd;--zasdk-icon-border-color:#ccc;--zasdk-dropdown-hover:#f0f0f0;--zasdk-selected-background:#f0f0f0;--zasdk-selected-border:#ddd;--zasdk-muted-text:#999;--zasdk-link-color:#0078d4;--zasdk-switch-off:#ccc;--zasdk-viewer-background:#f8f8f8;--zasdk-placeholder-color:#757575;--zasdk-shadow:#0000002e}.zasdk-modal[data-zasdk-theme=dark],.zasdk-timer-container[data-zasdk-theme=dark],.zasdk-modal.zasdk-dark-theme,.zasdk-timer-container.zasdk-dark-theme{--zasdk-background-color:#1a1a1a;--zasdk-text-color:#f0f0f0;--zasdk-border-color:#444;--zasdk-modal-background:#ffffff1a;--zasdk-close-color:#888;--zasdk-close-hover-color:#fff;--zasdk-input-background:#2a2a2a;--zasdk-button-background:#333;--zasdk-primary-color:#2f7bd8;--zasdk-primary-text-color:#fff;--zasdk-secondary-background:#333;--zasdk-icon-border-color:#555;--zasdk-dropdown-hover:#2a2a2a;--zasdk-selected-background:#2a2a2a;--zasdk-selected-border:#555;--zasdk-muted-text:#888;--zasdk-link-color:#5aa9ff;--zasdk-switch-off:#555;--zasdk-viewer-background:#222;--zasdk-placeholder-color:#9a9a9a;--zasdk-shadow:#0009}@media (prefers-color-scheme:dark){.zasdk-modal[data-zasdk-theme=auto],.zasdk-timer-container[data-zasdk-theme=auto]{--zasdk-background-color:#1a1a1a;--zasdk-text-color:#f0f0f0;--zasdk-border-color:#444;--zasdk-modal-background:#ffffff1a;--zasdk-close-color:#888;--zasdk-close-hover-color:#fff;--zasdk-input-background:#2a2a2a;--zasdk-button-background:#333;--zasdk-primary-color:#2f7bd8;--zasdk-primary-text-color:#fff;--zasdk-secondary-background:#333;--zasdk-icon-border-color:#555;--zasdk-dropdown-hover:#2a2a2a;--zasdk-selected-background:#2a2a2a;--zasdk-selected-border:#555;--zasdk-muted-text:#888;--zasdk-link-color:#5aa9ff;--zasdk-switch-off:#555;--zasdk-viewer-background:#222;--zasdk-placeholder-color:#9a9a9a;--zasdk-shadow:#0009}}.zasdk-modal-content *{box-sizing:border-box;font-size:14px}.zasdk-modal{z-index:214748364;pointer-events:none;width:100%;height:100%;color:var(--zasdk-primary-text-color);background:0 0;position:fixed;top:0;left:0;overflow:visible}.zasdk-modal-content{background-color:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);width:500px;max-width:calc(100% - 40px);max-height:calc(100% - 40px);box-shadow:0 8px 24px var(--zasdk-shadow);pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;padding:10px 0 20px;transition:none;display:flex;position:fixed;inset:auto 20px 20px auto}.zasdk-header{cursor:grab;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 20px;display:flex}.zasdk-title{margin:0;font-size:24px;font-weight:700}.zasdk-close{color:var(--zasdk-close-color);cursor:pointer;font-size:28px;font-weight:700}.zasdk-close svg path{fill:var(--zasdk-primary-text-color)}.zasdk-close:hover,.zasdk-close:focus{color:var(--zasdk-close-hover-color);cursor:pointer;text-decoration:none}.zasdk-feedback-types{text-align:center;justify-content:space-evenly;margin-bottom:20px;font-size:14px;display:flex}.zasdk-feedback-type{cursor:pointer;display:inline-block}.zasdk-iconcnt{background-color:var(--zasdk-background-color);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:5px;font-weight:700;display:inline-block}.zasdk-form{max-height:calc(100% - 190px);padding:0 20px;position:relative;overflow-y:auto}.zasdk-form select,.zasdk-form input,.zasdk-form textarea{border:1px solid var(--zasdk-border-color);background-color:var(--zasdk-input-background);width:100%;color:var(--zasdk-text-color);border-radius:4px;margin-bottom:15px;padding:8px;font-family:inherit;font-size:14px}.zasdk-form textarea::placeholder,.zasdk-form input::placeholder{color:var(--zasdk-placeholder-color);opacity:1}.zasdk-form textarea{resize:none;height:100px}.zasdkdesclbl{margin-bottom:5px;font-weight:700;display:block}.zasdkmadfeld{color:#f33558;padding-left:3px}.zaleftcharspan{float:right}.zaleftchartxt{margin-left:3px;font-weight:400}.zasdk_submit_btncnt{justify-content:end;align-items:center;margin-top:20px;padding:0 20px;display:flex}.zasdkstsmsg{text-align:end;margin-right:20px;font-size:14px;display:none}.zasdkstserror{color:#f33155}.zasdkstssucs{color:#009c08}.zasdk-buttons{margin-top:20px}.zasdk-btn{cursor:pointer;text-align:center;border:none;border-radius:4px;padding:7px 20px;font-size:14px}.zasdk-send-btn{background-color:var(--zasdk-primary-color);color:var(--zasdk-button-text-color);min-width:81px;height:34px}.zasdk-attach-btn{background-color:var(--zasdk-button-background);vertical-align:middle;justify-content:center;align-items:center;height:40px;margin-bottom:0;margin-right:10px;padding:10px 15px 10px 5px;font-size:14px;font-weight:400;display:inline-flex}.zasdkfilesizeinf{vertical-align:middle;margin-top:10px;font-size:13px;display:inline-block}.zasdkattachinf{vertical-align:middle;margin-bottom:10px;font-size:13px;display:inline-block}input[type=file].zasdk-file-input{display:none}.zasdkfeedback__icon{border:1px solid var(--zasdk-icon-border-color);vertical-align:middle;text-align:center;box-sizing:border-box;border-radius:100%;width:32px;height:32px;transition:all .5s;display:inline-block}.zasdk-feedback-types svg{width:inherit;height:inherit;vertical-align:middle;display:inline-block}.zasdkfeedback__icon-report .zasdkfeedback__icon{fill:#ff4122}.zasdkfeedback__icon-report svg{width:28px;height:100%}.zasdk-feedback-type{text-align:center;border:1px solid #0000;width:90px;padding:10px 0;transition:all .5s}.zasdk-selected{border:1px solid var(--zasdk-selected-border);background-color:var(--zasdk-selected-background);border-radius:6px}.zasdk-selected .zasdkfeedback__icon-report .zasdkfeedback__icon{fill:#fff;background:#ff4122;border-color:#ff4122}.zasdk-feedback-type:hover .zasdkfeedback__icon-report .zasdkfeedback__icon{border-color:#ff4122}.zasdkfeedback__icon-reqest .zasdkfeedback__icon{fill:#a63cff}.zasdkfeedback__icon-reqest svg{width:24px;height:100%}.zasdk-feedback-type:hover .zasdkfeedback__icon-reqest .zasdkfeedback__icon{border-color:#a63cff}.zasdk-selected .zasdkfeedback__icon-reqest .zasdkfeedback__icon{fill:#fff;background:#a63cff;border-color:#a63cff}.zasdkfeedback__icon-help .zasdkfeedback__icon{fill:#fba400}.zasdkfeedback__icon-help svg{width:28px;height:100%}.zasdk-feedback-type:hover .zasdkfeedback__icon-help .zasdkfeedback__icon{border-color:#fba400}.zasdk-selected .zasdkfeedback__icon-help .zasdkfeedback__icon{fill:#fff;background:#fba400;border-color:#fba400}.zasdkfeedback__icon-appreciate .zasdkfeedback__icon{fill:#ff297a}.zasdkfeedback__icon-appreciate svg{width:25px;height:28px}.zasdk-feedback-type:hover .zasdkfeedback__icon-appreciate .zasdkfeedback__icon{border-color:#ff297a}.zasdk-selected .zasdkfeedback__icon-appreciate .zasdkfeedback__icon{fill:#fff;background:#ff297a;border-color:#ff297a}.zasdk-btncnt{margin-bottom:10px}.zasdk-dropdown{width:100%;margin-bottom:15px;position:relative}.zasdk-dropdown-header{border:1px solid var(--zasdk-border-color);cursor:pointer;background-color:var(--zasdk-input-background);color:var(--zasdk-text-color);border-radius:4px;padding:5px 10px}.zasdk-dropdown-options{background-color:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);z-index:1;border-radius:5px;display:none;position:absolute;top:35px;left:0;right:0}.zasdk-dropdown-option{cursor:pointer;padding:5px 10px}.zasdk-dropdown-option:hover{background-color:var(--zasdk-dropdown-hover)}.zasdkqz-container{width:100%;color:var(--zasdk-text-color);background:var(--zasdk-secondary-background);box-sizing:border-box;border-radius:8px;padding:15px;font-size:14px}.zasdkqz-checkbox-wrapper{align-items:flex-start;display:flex;position:relative}input[type=checkbox].zasdkqz-checkbox{opacity:0;width:auto;margin:0;position:absolute}.zasdkqz-checkbox+label{cursor:pointer;margin:0;padding-left:30px;font-weight:400;line-height:1.5;display:inline-block;position:relative}.zasdkqz-checkbox+label:before{content:\"\";border:1px solid var(--zasdk-primary-color);border-radius:4px;width:18px;height:18px;position:absolute;top:2px;left:0}.zasdkqz-checkbox:focus+label:before{border:2px solid var(--zasdk-primary-color)}.zasdkqz-content .zasdkqz-prop-content{margin-top:10px;padding-left:30px}.zasdkqz-checkbox:checked+label:before{background:var(--zasdk-primary-color)}.zasdkqz-checkbox:checked+label:after{content:\"\";border:0 solid #fff;border-width:0 0 1px 1px;width:10px;height:5px;transition:transform .3s;position:absolute;top:6px;left:10px;transform:rotate(-40deg)translate(-50%,-50%)scale(1)}.zasdkqz-content{max-height:0;transition:max-height .5s;overflow:hidden}.zasdkqz-content.zasdkqz-show{max-height:250px;display:block}.zasdkqz-button{background:var(--zasdk-primary-color);color:var(--zasdk-button-text-color);cursor:pointer;border:none;border-radius:4px;margin-top:16px;padding:10px 20px;text-decoration:none;transition:background-color .3s;display:inline-block}.zasdkqz-button:hover{background:var(--zasdk-primary-color)}.zasdkqz-info{margin-top:5px;font-size:14px}.zasdkqz-icon{vertical-align:middle;width:20px;height:20px;margin-left:4px;display:inline-block}.zasdk-modal .zasakfilelstcnt{margin-top:10px;list-style:none}.zasdk-modal .zasakfilelstcnt li{border:1px solid var(--zasdk-border-color);vertical-align:middle;cursor:default;background:var(--zasdk-secondary-background);border-radius:3px;margin:0 5px 5px 0;padding:2px 20px 2px 5px;font-size:1.1rem;display:inline-flex;position:relative}.zaskFdBckFlName{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:120px;display:inline-block;overflow:hidden}.zasdkFdBckFlCls{background:var(--zasdk-secondary-background);cursor:pointer;border-radius:0 3px 3px 0;padding:0 3px;font-size:14px;line-height:22px;position:absolute;top:0;bottom:0;right:2px}.zasdkmaxerror{color:#f33155;font-size:14px}.zasdk-timer-container{background-color:var(--zasdk-secondary-background);z-index:11111;cursor:pointer;border-radius:50px;align-items:center;gap:8px;padding:8px 10px;display:inline-flex;position:fixed;bottom:10px;right:10px;box-shadow:0 4px 15px #0000001a}.zasdk-timer-stopcricle{cursor:pointer;background-color:#f33155;border:none;border-radius:50%;width:12px;height:12px;padding:0;animation:1s infinite alternate blink}@keyframes blink{0%{opacity:1}to{opacity:.3}}.zasdk-timer-control{border:1px solid #f33155;border-radius:100%;padding:3px}.zasdk-timer-display{color:var(--zasdk-text-color);text-align:left;min-width:55px;font-size:14px;font-weight:500}.zasdk_videoPrev{justify-content:center;display:flex}.zasdk_videoPrev video{opacity:.4}.zasdk_recordedClipArea{border:1px solid var(--zasdk-border-color);border-radius:6px;display:none;position:relative}.zasdk_recordedClipArea .zasdk_rec_hdr{background-color:var(--zasdk-secondary-background);color:var(--zasdk-text-color);border-radius:3px 3px 0 0;padding:5px 10px}.zasdk_rec_hdr_icon{vertical-align:middle;display:inline-block;position:relative}.zasdk_rec_hdr i{vertical-align:middle;line-height:normal}.zasdk_rec_hdr svg{width:20px}.zasdk_playEdit{z-index:1;justify-content:space-between;align-items:stretch;width:180px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zasdk_clipAreaButtonCnt,.zasdk_submit_btnsubcnt{position:relative}.zasdk_clipAreaButton{background:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);box-sizing:border-box;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:50px;height:40px;display:flex;box-shadow:0 0 9px #0003}.zasdk_clipAreaButton:hover{background:var(--zasdk-dropdown-hover)}.zasdk_clipAreaButton svg{width:28px}.zasdk-send-btn.zasdkbtndisableclr{filter:grayscale();pointer-events:none;opacity:.5}.zasdk-send-btn.zasdkbtndisabled{cursor:not-allowed;position:relative}.zasdkbtndisabled:after{content:\"\";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;margin:auto;animation:1s ease-in-out infinite zasdkbuttonspin;position:absolute;inset:0}@keyframes zasdkbuttonspin{to{transform:rotate(360deg)}}.zasdk-tooltip,.zasdk-tooltip-top{visibility:hidden;color:#fff;opacity:0;z-index:111111;background-color:#000;border-radius:4px;width:max-content;max-width:200px;margin-top:8px;padding:8px 12px;font-size:14px;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.zasdk-tooltip:after,.zasdk-tooltip-top:after{content:\"\";border:5px solid #0000;border-bottom-color:#000;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.zasdk-tooltip-container:hover .zasdk-tooltip,.zasdk-tooltip-container:hover .zasdk-tooltip-top{visibility:visible;opacity:1}.zasdk-tooltip-top{margin-top:0;margin-bottom:8px;top:auto;bottom:100%}.zasdk-tooltip-top:after{border-color:#000 #0000 #0000;top:100%}.zasdk-prop-info{max-width:320px}.zasdk-prop-info li{font-size:13px}.zasdkqz-content:has(.zasdk_rec_hdr:hover){overflow:visible}@media (width<=450px){.zasdk-modal-content{width:calc(100% - 10px);bottom:5px;left:5px;right:5px}}@media (height<=600px){.zasdk-modal-content{max-height:100%;top:auto}}@media (width<=370px){.zasdk-feedback-type{width:70px}.zasdk-iconcnt,.zasdkfeedback__icon{width:25px;height:25px}.zasdkfeedback__icon-report svg{width:20px;height:100%}.zasdkfeedback__icon-reqest svg{width:18px}.zasdkfeedback__icon-help svg{width:18px;height:22px}.zasdkfeedback__icon-appreciate svg{width:20px;height:20px}.zasdk-feedback-type *{word-break:break-word;font-size:12px}.zasdk-buttons{margin-top:0}}.zasdk-custom-select{width:100%;margin-bottom:15px;font-size:14px;position:relative}.zasdk-select-trigger{border:1px solid var(--zasdk-border-color);background:var(--zasdk-input-background);cursor:pointer;color:var(--zasdk-text-color);-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.zasdk-select-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.zasdk-select-arrow{flex-shrink:0;margin-left:8px}.zasdk-select-panel{background:var(--zasdk-input-background);border:1px solid var(--zasdk-border-color);box-shadow:0 6px 20px var(--zasdk-shadow);z-index:99;border-radius:8px;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow:hidden}.zasdk-select-list{max-height:180px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.zasdk-select-option{cursor:pointer;color:var(--zasdk-text-color);justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px;display:flex}.zasdk-select-option:hover{background:var(--zasdk-dropdown-hover)}.zasdk-select-option.zasdk-option-selected{color:var(--zasdk-link-color);font-weight:500}.zasdk-select-empty{color:var(--zasdk-muted-text);text-align:center;padding:10px 16px;font-size:13px;font-style:italic}.zasdk-toggles-section{margin:5px 16px}.zasdk-toggle-row{border-top:1px solid var(--zasdk-border-color);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.zasdk-toggle-info{flex-direction:row;flex:1;align-items:center;gap:8px;display:flex}.zasdk-toggle-label{color:var(--zasdk-text-color);font-size:14px;font-weight:600}.zasdk-view-link{color:var(--zasdk-link-color);cursor:pointer;white-space:nowrap;font-size:12px}.zasdk-view-link:hover{text-decoration:underline}.zasdk-toggle-separator{background:var(--zasdk-border-color);margin:0 16px}.zasdk-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.zasdk-switch input{opacity:0;width:0;height:0}.zasdk-slider{cursor:pointer;background:var(--zasdk-switch-off);border-radius:24px;transition:all .3s;position:absolute;inset:0}.zasdk-slider:before{content:\"\";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}.zasdk-switch input:checked+.zasdk-slider{background:var(--zasdk-link-color)}.zasdk-switch input:checked+.zasdk-slider:before{transform:translate(20px)}.zasdk-data-viewer{background:var(--zasdk-background-color);z-index:100;border-radius:12px;flex-direction:column;position:absolute;inset:0;overflow:hidden}.zasdk-viewer-hdr{border-bottom:1px solid var(--zasdk-border-color);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.zasdk-viewer-back{cursor:pointer;flex-shrink:0;align-items:center;padding:2px;display:flex}.zasdk-viewer-back:hover svg path{stroke:var(--zasdk-link-color)}.zasdk-viewer-title{color:var(--zasdk-text-color);flex:1;font-size:16px;font-weight:600}.zasdk-viewer-content{color:var(--zasdk-text-color);white-space:pre-wrap;word-break:break-word;background:var(--zasdk-viewer-background);border-radius:6px;flex:1;margin:8px;padding:16px;font-family:monospace;font-size:12px;overflow-y:auto}.zasdk-modal-content :focus-visible{outline:2px solid var(--zasdk-primary-color);outline-offset:2px}@media (prefers-reduced-motion:reduce){.zasdk-modal *,.zasdk-timer-container *{transition:none!important;animation:none!important}}";
|
|
1
|
+
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.2 | (c) Zoho Corporation Private Limited | see LICENSE */
|
|
2
|
+
const css = ".zasdk-modal{color:var(--zasdk-text-color);margin:0;padding:0;font-family:inherit;line-height:normal}.zasdk-modal p{margin:0}.zasdk-modal ul{margin:0;padding:0;list-style:none}.zasdk-modal,.zasdk-timer-container{--zasdk-background-color:#fff;--zasdk-text-color:#333;--zasdk-border-color:#ddd;--zasdk-modal-background:#0006;--zasdk-close-color:#aaa;--zasdk-close-hover-color:#000;--zasdk-input-background:#fff;--zasdk-button-background:#f0f0f0;--zasdk-primary-color:#007bff;--zasdk-primary-text-color:#000;--zasdk-button-text-color:#fff;--zasdk-secondary-background:#ddd;--zasdk-icon-border-color:#ccc;--zasdk-dropdown-hover:#f0f0f0;--zasdk-selected-background:#f0f0f0;--zasdk-selected-border:#ddd;--zasdk-muted-text:#999;--zasdk-link-color:#0078d4;--zasdk-switch-off:#ccc;--zasdk-viewer-background:#f8f8f8;--zasdk-placeholder-color:#757575;--zasdk-shadow:#0000002e}.zasdk-modal[data-zasdk-theme=dark],.zasdk-timer-container[data-zasdk-theme=dark],.zasdk-modal.zasdk-dark-theme,.zasdk-timer-container.zasdk-dark-theme{--zasdk-background-color:#1a1a1a;--zasdk-text-color:#f0f0f0;--zasdk-border-color:#444;--zasdk-modal-background:#ffffff1a;--zasdk-close-color:#888;--zasdk-close-hover-color:#fff;--zasdk-input-background:#2a2a2a;--zasdk-button-background:#333;--zasdk-primary-color:#2f7bd8;--zasdk-primary-text-color:#fff;--zasdk-secondary-background:#333;--zasdk-icon-border-color:#555;--zasdk-dropdown-hover:#2a2a2a;--zasdk-selected-background:#2a2a2a;--zasdk-selected-border:#555;--zasdk-muted-text:#888;--zasdk-link-color:#5aa9ff;--zasdk-switch-off:#555;--zasdk-viewer-background:#222;--zasdk-placeholder-color:#9a9a9a;--zasdk-shadow:#0009}@media (prefers-color-scheme:dark){.zasdk-modal[data-zasdk-theme=auto],.zasdk-timer-container[data-zasdk-theme=auto]{--zasdk-background-color:#1a1a1a;--zasdk-text-color:#f0f0f0;--zasdk-border-color:#444;--zasdk-modal-background:#ffffff1a;--zasdk-close-color:#888;--zasdk-close-hover-color:#fff;--zasdk-input-background:#2a2a2a;--zasdk-button-background:#333;--zasdk-primary-color:#2f7bd8;--zasdk-primary-text-color:#fff;--zasdk-secondary-background:#333;--zasdk-icon-border-color:#555;--zasdk-dropdown-hover:#2a2a2a;--zasdk-selected-background:#2a2a2a;--zasdk-selected-border:#555;--zasdk-muted-text:#888;--zasdk-link-color:#5aa9ff;--zasdk-switch-off:#555;--zasdk-viewer-background:#222;--zasdk-placeholder-color:#9a9a9a;--zasdk-shadow:#0009}}.zasdk-modal-content *{box-sizing:border-box;font-size:14px}.zasdk-modal{z-index:214748364;pointer-events:none;width:100%;height:100%;color:var(--zasdk-primary-text-color);background:0 0;position:fixed;top:0;left:0;overflow:visible}.zasdk-modal-content{background-color:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);width:500px;max-width:calc(100% - 40px);max-height:calc(100% - 40px);box-shadow:0 8px 24px var(--zasdk-shadow);transform-origin:100% 100%;pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;padding:10px 0 20px;transition:transform .3s,opacity .3s;display:flex;position:fixed;inset:auto 20px 20px auto}.zasdk-header{touch-action:none;cursor:move;flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 20px;display:flex}.zasdk-title{margin:0;font-size:24px;font-weight:700}.zasdk-close{color:var(--zasdk-close-color);cursor:pointer;font-size:28px;font-weight:700}.zasdk-close svg path{fill:var(--zasdk-primary-text-color)}.zasdk-close:hover,.zasdk-close:focus{color:var(--zasdk-close-hover-color);cursor:pointer;text-decoration:none}.zasdk-feedback-types{text-align:center;flex-shrink:0;justify-content:space-evenly;margin-bottom:20px;font-size:14px;display:flex}.zasdk-feedback-type{cursor:pointer;display:inline-block}.zasdk-iconcnt{background-color:var(--zasdk-background-color);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:5px;font-weight:700;display:inline-block}.zasdk-body{flex:auto;min-height:0;overflow-y:auto}.zasdk-form{padding:0 20px;position:relative}.zasdk-form select,.zasdk-form input,.zasdk-form textarea{border:1px solid var(--zasdk-border-color);background-color:var(--zasdk-input-background);width:100%;color:var(--zasdk-text-color);border-radius:4px;margin-bottom:15px;padding:8px;font-family:inherit;font-size:14px}.zasdk-form textarea::placeholder,.zasdk-form input::placeholder{color:var(--zasdk-placeholder-color);opacity:1}.zasdk-form textarea{resize:none;height:100px}.zasdkdesclbl{margin-bottom:5px;font-weight:700;display:block}.zasdkmadfeld{color:#f33558;padding-left:3px}.zaleftcharspan{float:right}.zaleftchartxt{margin-left:3px;font-weight:400}.zasdk_submit_btncnt{flex-shrink:0;justify-content:end;align-items:center;margin-top:20px;padding:0 20px;display:flex}.zasdkstsmsg{text-align:end;margin-right:20px;font-size:14px;display:none}.zasdkstserror{color:#f33155}.zasdkstssucs{color:#009c08}.zasdk-buttons{margin-top:20px}.zasdk-btn{cursor:pointer;text-align:center;border:none;border-radius:4px;padding:7px 20px;font-size:14px}.zasdk-send-btn{background-color:var(--zasdk-primary-color);color:var(--zasdk-button-text-color);min-width:81px;height:34px}.zasdk-attach-btn{background-color:var(--zasdk-button-background);vertical-align:middle;justify-content:center;align-items:center;height:40px;margin-bottom:0;margin-right:10px;padding:10px 15px 10px 5px;font-size:14px;font-weight:400;display:inline-flex}.zasdkfilesizeinf{vertical-align:middle;margin-top:10px;font-size:13px;display:inline-block}.zasdkattachinf{vertical-align:middle;margin-bottom:10px;font-size:13px;display:inline-block}input[type=file].zasdk-file-input{display:none}.zasdkfeedback__icon{border:1px solid var(--zasdk-icon-border-color);vertical-align:middle;text-align:center;box-sizing:border-box;border-radius:100%;width:32px;height:32px;transition:all .5s;display:inline-block}.zasdk-feedback-types svg{width:inherit;height:inherit;vertical-align:middle;display:inline-block}.zasdkfeedback__icon-report .zasdkfeedback__icon{fill:#ff4122}.zasdkfeedback__icon-report svg{width:28px;height:100%}.zasdk-feedback-type{text-align:center;border:1px solid #0000;width:90px;padding:10px 0;transition:all .5s}.zasdk-selected{border:1px solid var(--zasdk-selected-border);background-color:var(--zasdk-selected-background);border-radius:6px}.zasdk-selected .zasdkfeedback__icon-report .zasdkfeedback__icon{fill:#fff;background:#ff4122;border-color:#ff4122}.zasdk-feedback-type:hover .zasdkfeedback__icon-report .zasdkfeedback__icon{border-color:#ff4122}.zasdkfeedback__icon-reqest .zasdkfeedback__icon{fill:#a63cff}.zasdkfeedback__icon-reqest svg{width:24px;height:100%}.zasdk-feedback-type:hover .zasdkfeedback__icon-reqest .zasdkfeedback__icon{border-color:#a63cff}.zasdk-selected .zasdkfeedback__icon-reqest .zasdkfeedback__icon{fill:#fff;background:#a63cff;border-color:#a63cff}.zasdkfeedback__icon-help .zasdkfeedback__icon{fill:#fba400}.zasdkfeedback__icon-help svg{width:28px;height:100%}.zasdk-feedback-type:hover .zasdkfeedback__icon-help .zasdkfeedback__icon{border-color:#fba400}.zasdk-selected .zasdkfeedback__icon-help .zasdkfeedback__icon{fill:#fff;background:#fba400;border-color:#fba400}.zasdkfeedback__icon-appreciate .zasdkfeedback__icon{fill:#ff297a}.zasdkfeedback__icon-appreciate svg{width:25px;height:28px}.zasdk-feedback-type:hover .zasdkfeedback__icon-appreciate .zasdkfeedback__icon{border-color:#ff297a}.zasdk-selected .zasdkfeedback__icon-appreciate .zasdkfeedback__icon{fill:#fff;background:#ff297a;border-color:#ff297a}.zasdk-btncnt{margin-bottom:10px}.zasdk-dropdown{width:100%;margin-bottom:15px;position:relative}.zasdk-dropdown-header{border:1px solid var(--zasdk-border-color);cursor:pointer;background-color:var(--zasdk-input-background);color:var(--zasdk-text-color);border-radius:4px;padding:5px 10px}.zasdk-dropdown-options{background-color:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);z-index:1;border-radius:5px;display:none;position:absolute;top:35px;left:0;right:0}.zasdk-dropdown-option{cursor:pointer;padding:5px 10px}.zasdk-dropdown-option:hover{background-color:var(--zasdk-dropdown-hover)}.zasdkqz-container{width:100%;color:var(--zasdk-text-color);background:var(--zasdk-secondary-background);box-sizing:border-box;border-radius:8px;padding:15px;font-size:14px}.zasdkqz-checkbox-wrapper{align-items:flex-start;display:flex;position:relative}input[type=checkbox].zasdkqz-checkbox{opacity:0;width:auto;margin:0;position:absolute}.zasdkqz-checkbox+label{cursor:pointer;margin:0;padding-left:30px;font-weight:400;line-height:1.5;display:inline-block;position:relative}.zasdkqz-checkbox+label:before{content:\"\";border:1px solid var(--zasdk-primary-color);border-radius:4px;width:18px;height:18px;position:absolute;top:2px;left:0}.zasdkqz-checkbox:focus+label:before{border:2px solid var(--zasdk-primary-color)}.zasdkqz-content .zasdkqz-prop-content{margin-top:10px;padding-left:30px}.zasdkqz-checkbox:checked+label:before{background:var(--zasdk-primary-color)}.zasdkqz-checkbox:checked+label:after{content:\"\";border:0 solid #fff;border-width:0 0 1px 1px;width:10px;height:5px;transition:transform .3s;position:absolute;top:6px;left:10px;transform:rotate(-40deg)translate(-50%,-50%)scale(1)}.zasdkqz-content{max-height:0;transition:max-height .5s;overflow:hidden}.zasdkqz-content.zasdkqz-show{max-height:250px;display:block}.zasdkqz-button{background:var(--zasdk-primary-color);color:var(--zasdk-button-text-color);cursor:pointer;border:none;border-radius:4px;margin-top:16px;padding:10px 20px;text-decoration:none;transition:background-color .3s;display:inline-block}.zasdkqz-button:hover{background:var(--zasdk-primary-color)}.zasdkqz-info{margin-top:5px;font-size:14px}.zasdkqz-icon{vertical-align:middle;width:20px;height:20px;margin-left:4px;display:inline-block}.zasdk-modal .zasakfilelstcnt{margin-top:10px;list-style:none}.zasdk-modal .zasakfilelstcnt li{border:1px solid var(--zasdk-border-color);vertical-align:middle;cursor:default;background:var(--zasdk-secondary-background);border-radius:3px;margin:0 5px 5px 0;padding:2px 20px 2px 5px;font-size:1.1rem;display:inline-flex;position:relative}.zaskFdBckFlName{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:120px;display:inline-block;overflow:hidden}.zasdkFdBckFlCls{background:var(--zasdk-secondary-background);cursor:pointer;border-radius:0 3px 3px 0;padding:0 3px;font-size:14px;line-height:22px;position:absolute;top:0;bottom:0;right:2px}.zasdkmaxerror{color:#f33155;font-size:14px}.zasdk-timer-container{background-color:var(--zasdk-secondary-background);z-index:11111;cursor:move;touch-action:none;border-radius:50px;align-items:center;gap:8px;padding:8px 10px;display:inline-flex;position:fixed;bottom:10px;right:10px;box-shadow:0 4px 15px #0000001a}.zasdk-timer-stopcricle{cursor:pointer;background-color:#f33155;border:none;border-radius:50%;width:12px;height:12px;padding:0;animation:1s infinite alternate blink}@keyframes blink{0%{opacity:1}to{opacity:.3}}.zasdk-timer-control{cursor:pointer;border:1px solid #f33155;border-radius:100%;padding:3px}.zasdk-timer-display{color:var(--zasdk-text-color);text-align:left;min-width:55px;font-size:14px;font-weight:500}.zasdk_videoPrev{justify-content:center;display:flex}.zasdk_videoPrev video{opacity:.4}.zasdk-recstatus{background:var(--zasdk-secondary-background);color:var(--zasdk-text-color);border-radius:8px;align-items:center;gap:8px;margin-bottom:15px;padding:10px 15px;display:flex}.zasdk-recstatus-text{flex:1;font-weight:500}.zasdk-recstatus .zasdk-timer-display{min-width:0}.zasdk-recstatus-stop{background:#f33155;margin-top:0;padding:6px 14px}.zasdk-recstatus-stop:hover{background:#f33155}.zasdk_recordedClipArea{border:1px solid var(--zasdk-border-color);border-radius:6px;display:none;position:relative}.zasdk_recordedClipArea .zasdk_rec_hdr{background-color:var(--zasdk-secondary-background);color:var(--zasdk-text-color);border-radius:3px 3px 0 0;padding:5px 10px}.zasdk_rec_hdr_icon{vertical-align:middle;display:inline-block;position:relative}.zasdk_rec_hdr i{vertical-align:middle;line-height:normal}.zasdk_rec_hdr svg{width:20px}.zasdk_playEdit{z-index:1;justify-content:space-between;align-items:stretch;width:180px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zasdk_clipAreaButtonCnt,.zasdk_submit_btnsubcnt{position:relative}.zasdk_clipAreaButton{background:var(--zasdk-background-color);border:1px solid var(--zasdk-border-color);box-sizing:border-box;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:50px;height:40px;display:flex;box-shadow:0 0 9px #0003}.zasdk_clipAreaButton:hover{background:var(--zasdk-dropdown-hover)}.zasdk_clipAreaButton svg{width:28px}.zasdk-send-btn.zasdkbtndisableclr{filter:grayscale();pointer-events:none;opacity:.5}.zasdk-send-btn.zasdkbtndisabled{cursor:not-allowed;position:relative}.zasdkbtndisabled:after{content:\"\";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;margin:auto;animation:1s ease-in-out infinite zasdkbuttonspin;position:absolute;inset:0}@keyframes zasdkbuttonspin{to{transform:rotate(360deg)}}.zasdk-tooltip,.zasdk-tooltip-top{visibility:hidden;color:#fff;opacity:0;z-index:111111;background-color:#000;border-radius:4px;width:max-content;max-width:200px;margin-top:8px;padding:8px 12px;font-size:14px;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.zasdk-tooltip:after,.zasdk-tooltip-top:after{content:\"\";border:5px solid #0000;border-bottom-color:#000;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.zasdk-tooltip-container:hover .zasdk-tooltip,.zasdk-tooltip-container:hover .zasdk-tooltip-top{visibility:visible;opacity:1}.zasdk-tooltip-top{margin-top:0;margin-bottom:8px;top:auto;bottom:100%}.zasdk-tooltip-top:after{border-color:#000 #0000 #0000;top:100%}.zasdk-prop-info{max-width:320px}.zasdk-prop-info li{font-size:13px}.zasdkqz-content:has(.zasdk_rec_hdr:hover){overflow:visible}@media (width<=450px){.zasdk-modal-content{width:calc(100% - 10px);bottom:5px;left:5px;right:5px}}@media (height<=600px){.zasdk-modal-content{max-height:100%;top:auto}}@media (width<=370px){.zasdk-feedback-type{width:70px}.zasdk-iconcnt,.zasdkfeedback__icon{width:25px;height:25px}.zasdkfeedback__icon-report svg{width:20px;height:100%}.zasdkfeedback__icon-reqest svg{width:18px}.zasdkfeedback__icon-help svg{width:18px;height:22px}.zasdkfeedback__icon-appreciate svg{width:20px;height:20px}.zasdk-feedback-type *{word-break:break-word;font-size:12px}.zasdk-buttons{margin-top:0}}.zasdk-custom-select{width:100%;margin-bottom:15px;font-size:14px;position:relative}.zasdk-select-trigger{border:1px solid var(--zasdk-border-color);background:var(--zasdk-input-background);cursor:pointer;color:var(--zasdk-text-color);-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.zasdk-select-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.zasdk-select-arrow{flex-shrink:0;margin-left:8px}.zasdk-select-panel{background:var(--zasdk-input-background);border:1px solid var(--zasdk-border-color);box-shadow:0 6px 20px var(--zasdk-shadow);z-index:99;border-radius:8px;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow:hidden}.zasdk-select-list{max-height:180px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.zasdk-select-option{cursor:pointer;color:var(--zasdk-text-color);justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px;display:flex}.zasdk-select-option:hover{background:var(--zasdk-dropdown-hover)}.zasdk-select-option.zasdk-option-selected{color:var(--zasdk-link-color);font-weight:500}.zasdk-select-empty{color:var(--zasdk-muted-text);text-align:center;padding:10px 16px;font-size:13px;font-style:italic}.zasdk-toggles-section{margin:5px 16px}.zasdk-toggle-row{border-top:1px solid var(--zasdk-border-color);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.zasdk-toggle-info{flex-direction:row;flex:1;align-items:center;gap:8px;display:flex}.zasdk-toggle-label{color:var(--zasdk-text-color);font-size:14px;font-weight:600}.zasdk-view-link{color:var(--zasdk-link-color);cursor:pointer;white-space:nowrap;font-size:12px}.zasdk-view-link:hover{text-decoration:underline}.zasdk-toggle-separator{background:var(--zasdk-border-color);margin:0 16px}.zasdk-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.zasdk-switch input{opacity:0;width:0;height:0}.zasdk-slider{cursor:pointer;background:var(--zasdk-switch-off);border-radius:24px;transition:all .3s;position:absolute;inset:0}.zasdk-slider:before{content:\"\";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}.zasdk-switch input:checked+.zasdk-slider{background:var(--zasdk-link-color)}.zasdk-switch input:checked+.zasdk-slider:before{transform:translate(20px)}.zasdk-data-viewer{background:var(--zasdk-background-color);z-index:100;border-radius:12px;flex-direction:column;position:absolute;inset:0;overflow:hidden}.zasdk-viewer-hdr{border-bottom:1px solid var(--zasdk-border-color);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.zasdk-viewer-back{cursor:pointer;flex-shrink:0;align-items:center;padding:2px;display:flex}.zasdk-viewer-back:hover svg path{stroke:var(--zasdk-link-color)}.zasdk-viewer-title{color:var(--zasdk-text-color);flex:1;font-size:16px;font-weight:600}.zasdk-viewer-content{color:var(--zasdk-text-color);white-space:pre-wrap;word-break:break-word;background:var(--zasdk-viewer-background);border-radius:6px;flex:1;margin:8px;padding:16px;font-family:monospace;font-size:12px;overflow-y:auto}.zasdk-modal-content :focus-visible{outline:2px solid var(--zasdk-primary-color);outline-offset:2px}@media (prefers-reduced-motion:reduce){.zasdk-modal *,.zasdk-timer-container *{transition:none!important;animation:none!important}}";
|
|
3
3
|
|
|
4
4
|
export { css as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const feedbackUIHtml = "<div id=\"zasdkFeedbackconatiner\" class=\"zasdk-modal-content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"zasdkFeedbackTitle\">\n <div class=\"zasdk-header\">\n <h2 id=\"zasdkFeedbackTitle\" class=\"zasdk-title\">Share feedback</h2>\n <span id=\"appticsfeedbackclose\" class=\"zasdk-close\" role=\"button\" tabindex=\"0\" aria-label=\"Close\"><svg viewBox=\"0 0 24 24\" style=\" width: 20px; \"><path d=\"M19.92,19.08c.23.23.23.61,0,.85-.12.12-.27.18-.42.18s-.31-.06-.42-.18l-7.08-7.08-7.08,7.08c-.12.12-.27.18-.42.18s-.31-.06-.42-.18c-.23-.23-.23-.61,0-.85l7.08-7.08-7.08-7.08c-.23-.23-.23-.61,0-.85s.61-.23.85,0l7.08,7.08,7.08-7.08c.23-.23.61-.23.85,0s.23.61,0,.85l-7.08,7.08,7.08,7.08Z\"/></svg></span>\n </div>\n <div class=\"zasdk-feedback-types\" data-type=\"\">\n <div class=\"zasdk-feedback-type zasdk-selected\" data-type=\"feedback\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-reqest\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M6.69,9.25h10.81c.41,0,.75-.34.75-.75s-.34-.75-.75-.75H6.69c-.41,0-.75.34-.75.75s.34.75.75.75Z\"/><path d=\"M6.69,13.07h8.11c.41,0,.75-.34.75-.75s-.34-.75-.75-.75H6.69c-.41,0-.75.34-.75.75s.34.75.75.75Z\"/><path d=\"M20.72,5.17c0-.68-.55-1.23-1.23-1.23H4.48c-.68,0-1.23.55-1.23,1.23v11.84c0,.68.55,1.23,1.23,1.23h13.49l1.25,1.51c.17.2.41.31.67.31.1,0,.2-.02.3-.05.34-.13.57-.46.56-.83l-.03-14.01ZM19.22,17.39l-.17-.2c-.24-.29-.58-.45-.95-.45H4.75V5.44h14.47v11.95Z\"/></svg></i>\n </div>\n <div>Feedback</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"bug\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-report\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M15.6,6.58c-.13-.37-.3-.7-.5-.97l1.23-1.18c.24-.23.25-.61.02-.85-.23-.24-.61-.25-.85-.02l-1.26,1.21c-.66-.45-1.37-.62-1.79-.68-.25-.04-.51-.04-.76-.02-.83.08-1.45.35-1.93.7l-1.22-1.2c-.24-.23-.62-.23-.85,0-.23.24-.23.62,0,.85l1.21,1.19c-.24.34-.41.68-.51.96-2.02,1.37-3.27,3.82-3.27,6.44,0,4.18,3.08,7.58,6.87,7.58s6.87-3.4,6.87-7.58c0-2.62-1.25-5.06-3.26-6.44ZM11.82,5.27c.15-.02.31-.01.47.01.69.1,1.86.48,2.26,1.9-.17.17-.51.44-1.14.65-1.08.36-2.31.28-3.36-.23-.24-.11-.44-.23-.6-.36,0-.01,0-.03.01-.04.18-.65.73-1.77,2.36-1.93ZM12,19.4c-3.12,0-5.67-2.86-5.67-6.38,0-1.98.82-3.82,2.19-5.02.26.25.59.48,1.01.68.78.38,1.65.57,2.5.57.6,0,1.19-.09,1.76-.28.88-.29,1.39-.7,1.67-1,1.38,1.2,2.21,3.06,2.21,5.05,0,3.52-2.54,6.38-5.67,6.38ZM9.12,9.86c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM9.12,11.99c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47ZM14.88,9.86c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM14.88,11.99c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47ZM12,14.49c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM12,16.62c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47Z\"/></svg></i>\n </div>\n <div>Bug</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"help\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-help\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M12.45,16.47c-.33,0-.6-.27-.6-.6v-2.7c0-.43.25-.82.64-.99.95-.42,3.15-1.62,3.15-3.51,0-1.6-1.01-3.03-2.51-3.55-.95-.33-1.97-.28-2.87.16-.91.43-1.59,1.2-1.92,2.14-.11.31-.45.48-.77.37-.31-.11-.48-.45-.37-.77.44-1.25,1.34-2.25,2.54-2.83,1.2-.57,2.54-.65,3.79-.21,1.99.7,3.32,2.58,3.31,4.69,0,2.46-2.34,3.91-3.79,4.57v2.63c0,.33-.27.6-.6.6ZM13.21,19.1c0-.66-.54-1.2-1.2-1.2h-.03c-.66,0-1.19.54-1.19,1.2s.55,1.2,1.21,1.2,1.2-.54,1.2-1.2Z\"/></svg></i>\n </div>\n <div>Help</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"report\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-appreciate\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.47,16.72l-6.66-11.53c-.37-.65-1.07-1.05-1.81-1.05s-1.44.4-1.81,1.05l-6.66,11.53c-.37.65-.37,1.45,0,2.09.37.65,1.07,1.05,1.81,1.05h13.32c.75,0,1.44-.4,1.81-1.05.37-.64.37-1.45,0-2.09ZM19.17,18.06c-.11.18-.3.3-.51.3H5.34c-.21,0-.41-.11-.51-.3-.1-.18-.1-.41,0-.59l6.66-11.53h0c.11-.18.3-.3.51-.3s.41.11.51.3l6.66,11.53c.11.18.11.41,0,.59Z\"/><path d=\"M12.35,13.9s.37-4.72.37-4.72c.05-1.08-1.58-1.06-1.5.02l.48,4.71c.03.38.62.37.64,0Z\"/><path d=\"M11.97,15.06c-.52,0-.94.42-.94.94s.42.94.94.94.94-.42.94-.94-.42-.94-.94-.94Z\"/></svg></i>\n </div>\n <div>Report</div>\n </div>\n </div>\n <div id=\"zasdkFeedbackForm\" class=\"zasdk-form\">\n <label class=\"zasdkdesclbl\">User<span class=\"zasdkmadfeld\">*</span></label>\n <div id=\"zasdkEmailDropdown\" class=\"zasdk-custom-select\">\n <div id=\"zasdkEmailTrigger\" class=\"zasdk-select-trigger\">\n <span id=\"zasdkEmailLabel\" class=\"zasdk-select-label\">Anonymous</span>\n <svg class=\"zasdk-select-arrow\" viewBox=\"0 0 12 8\" width=\"12\" height=\"8\"><path d=\"M1 1l5 5 5-5\" stroke=\"#999\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\"/></svg>\n </div>\n <div id=\"zasdkEmailPanel\" class=\"zasdk-select-panel\" style=\"display:none\">\n <ul id=\"zasdkEmailList\" class=\"zasdk-select-list\"></ul>\n </div>\n </div>\n <label class=\"zasdkdesclbl\" for=\"zasdkDescription\">Add details here<span class=\"zasdkmadfeld\">*</span> <span class=\"zaleftcharspan\"><span class=\"zaleftcharcnt\">5000</span><span class=\"zaleftchartxt\">characters left</span></span></label>\n <textarea id=\"zasdkDescription\" name=\"description\" placeholder=\"Please provide more details for us to help you better.\" reqname=\"name\" maxlength=\"5000\"></textarea>\n <div id=\"zasdkreccheckcnt\" class=\"zasdkqz-container\">\n <div class=\"zasdkqz-checkbox-wrapper\">\n <input type=\"checkbox\" id=\"zasdkqz-consent\" class=\"zasdkqz-checkbox\">\n <label for=\"zasdkqz-consent\">By agreeing to record screen, I allow the collection of the required information for further analysis.</label>\n </div>\n <div id=\"zasdkqz-content\" class=\"zasdkqz-content\">\n <div class=\"zasdkqz-prop-content\">Data collected while screen recording.\n <div class=\"zasdk_rec_hdr_icon zasdk-tooltip-container zasdk_rec_hdr\">\n <i><svg viewBox=\"0 0 24 24\"><path d=\"M12,20.6c-4.74,0-8.6-3.86-8.6-8.6S7.26,3.4,12,3.4s8.6,3.86,8.6,8.6-3.86,8.6-8.6,8.6ZM12,4.6c-4.08,0-7.4,3.32-7.4,7.4s3.32,7.4,7.4,7.4,7.4-3.32,7.4-7.4-3.32-7.4-7.4-7.4ZM12.6,15.97v-4.91c0-.33-.27-.6-.6-.6s-.6.27-.6.6v4.91c0,.33.27.6.6.6s.6-.27.6-.6ZM12.61,9.03c0-.33-.27-.6-.6-.6h-.01c-.33,0-.59.27-.59.6s.28.6.61.6.6-.27.6-.6Z\"/></svg></i>\n <div class=\"zasdk-tooltip-top zasdk-prop-info\">\n <ul>\n <li>- A recording of the window or region specified.</li>\n <li>- Audio captured during recording. (You can mute or re-record)</li>\n <li>- IP address.</li>\n <li>- Browser console logs generated while recording.</li>\n <li>- Device details (screen resolution, OS, and browser version).</li>\n <li>- Client-side performance metrics (DNS lookup time, TCP connection time, etc.).</li>\n </ul>\n </div>\n </div>\n </div>\n <div id=\"zasdkqz_rec_button\" class=\"zasdkqz-button\">Start screen recording</div>\n </div>\n </div>\n <div id=\"editRecordedVideo\" class=\"zasdk_recordedClipArea\" style=\"\">\n <div id=\"recordScreenDesc\" class=\"zasdk_rec_hdr\"> Recorded Clip\n <div class=\"zasdk_rec_hdr_icon zasdk-tooltip-container\">\n <i><svg viewBox=\"0 0 24 24\"><path d=\"M12,20.6c-4.74,0-8.6-3.86-8.6-8.6S7.26,3.4,12,3.4s8.6,3.86,8.6,8.6-3.86,8.6-8.6,8.6ZM12,4.6c-4.08,0-7.4,3.32-7.4,7.4s3.32,7.4,7.4,7.4,7.4-3.32,7.4-7.4-3.32-7.4-7.4-7.4ZM12.6,15.97v-4.91c0-.33-.27-.6-.6-.6s-.6.27-.6.6v4.91c0,.33.27.6.6.6s.6-.27.6-.6ZM12.61,9.03c0-.33-.27-.6-.6-.6h-.01c-.33,0-.59.27-.59.6s.28.6.61.6.6-.27.6-.6Z\"/></svg></i>\n <div class=\"zasdk-tooltip\">This recording will be sent along with your feedback for further analysis.</div>\n </div>\n </div>\n <div class=\"zasdk_playEdit\">\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"preivewPlayButton\" class=\"zasdk_clipAreaButton\" title=\"Preview\">\n <svg viewBox=\"0 0 24 24\"><path d=\"M6.24,20.6c-.2,0-.39-.05-.57-.15-.38-.21-.62-.61-.62-1.05V4.59c0-.44.24-.84.62-1.05.38-.21.85-.19,1.22.04l11.52,7.41c.34.22.55.6.55,1,0,.41-.2.78-.55,1l-11.52,7.41c-.2.13-.42.19-.64.19ZM6.56,4.1l-.33.5v14.81s11.52-7.41,11.52-7.41L6.23,4.6l.33-.5Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Preview</div>\n </div>\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"videoEditButton\" class=\"zasdk_clipAreaButton\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\"><path d=\"M20.6,7.18c0-.58-.23-1.13-.65-1.54l-1.53-1.51c-.83-.83-2.29-.83-3.12,0l-1.31,1.3h0S4.88,14.41,4.88,14.41c-.12.12-.21.27-.26.44l-1.19,4.4c-.09.34,0,.7.26.95.19.18.44.29.7.29.09,0,.17-.01.26-.04l4.44-1.2c.16-.05.31-.13.44-.25l8.54-8.43h0s1.88-1.86,1.88-1.86c.06-.06.12-.12.17-.19h0c.31-.39.48-.86.48-1.36ZM8.72,18.12l-4.03,1.09,1.08-3.98L13.97,7.12l2.88,2.97-8.13,8.03ZM17.71,9.25l-2.88-2.97,1.32-1.3c.38-.38,1.04-.38,1.43,0l1.53,1.51c.19.18.29.43.29.69,0,.22-.08.43-.21.6h0s-.04.05-.08.08l-1.4,1.39Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Edit</div>\n </div>\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"videoDelButton\" class=\"zasdk_clipAreaButton\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\"><path d=\"M19.2,6.6h-3.4v-1c0-1.21-.99-2.2-2.2-2.2h-3.2c-1.21,0-2.2.99-2.2,2.2v1h-3.4c-.33,0-.6.27-.6.6s.27.6.6.6h1v10.6c0,1.21.99,2.2,2.2,2.2h8c1.21,0,2.2-.99,2.2-2.2V7.8h1c.33,0,.6-.27.6-.6s-.27-.6-.6-.6ZM9.4,5.6c0-.55.45-1,1-1h3.2c.55,0,1,.45,1,1v1h-5.2v-1ZM17,18.4c0,.55-.45,1-1,1h-8c-.55,0-1-.45-1-1V7.8h10v10.6ZM11,11.2v4.8c0,.33-.27.6-.6.6s-.6-.27-.6-.6v-4.8c0-.33.27-.6.6-.6s.6.27.6.6ZM14.2,11.2v4.8c0,.33-.27.6-.6.6s-.6-.27-.6-.6v-4.8c0-.33.27-.6.6-.6s.6.27.6.6Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Delete</div>\n </div>\n </div>\n <div class=\"zasdk_videoPrev\">\n <video id=\"previewVideoElemId\" width=\"320\" height=\"240\" src=\"\"></video>\n </div>\n </div>\n\n <div class=\"zasdk-buttons\">\n <div class=\"zasdk-btncnt\">\n <div id=\"zasdkattachinfo\" class=\"zasdkattachinf\">Maximum 5 attachments with a total file size of 10MB is allowed</div>\n <input type=\"file\" id=\"zasdkFileInput\" class=\"zasdk-file-input\" multiple accept=\".png, .jpg, .txt\">\n <label id=\"zasdkAttachBtn\" class=\"zasdk-btn zasdk-attach-btn\" for=\"zasdkFileInput\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\" style=\" width: 25px; \"><path d=\"M12,20.6c-2.63,0-4.78-2.14-4.78-4.78V6.78c0-1.87,1.52-3.38,3.38-3.38s3.38,1.52,3.38,3.38v9.04c0,1.1-.9,1.99-2,1.99s-1.99-.89-1.99-1.99V7.48c0-.33.27-.6.6-.6h0c.33,0,.6.27.6.6v8.35c0,.44.35.79.79.79s.79-.36.79-.79V6.78c0-1.2-.98-2.18-2.18-2.18s-2.18.98-2.18,2.18v9.04c0,1.97,1.6,3.58,3.58,3.58s3.58-1.6,3.58-3.58V6.78c0-.33.27-.6.6-.6s.6.27.6.6v9.04c0,2.63-2.14,4.78-4.78,4.78Z\"/></svg>\n <span>Attachments</span>\n </label>\n <div id=\"zasdkfilesizeinfo\" class=\"zasdkfilesizeinf\"></div>\n <ul id=\"zasakfileList\" class=\"zasakfilelstcnt\"></ul>\n </div>\n </div>\n </div>\n <div class=\"zasdk-toggles-section\">\n <div class=\"zasdk-toggle-row\">\n <div class=\"zasdk-toggle-info\">\n <span class=\"zasdk-toggle-label\">Include System Logs</span>\n <span class=\"zasdk-view-link\" id=\"zasdkViewLogsBtn\">View</span>\n </div>\n <label class=\"zasdk-switch\">\n <input type=\"checkbox\" id=\"zasdkIncludeLogToggle\">\n <span class=\"zasdk-slider\"></span>\n </label>\n </div>\n <div class=\"zasdk-toggle-separator\"></div>\n <div class=\"zasdk-toggle-row\">\n <div class=\"zasdk-toggle-info\">\n <span class=\"zasdk-toggle-label\">Include Diagnostic Information</span>\n <span class=\"zasdk-view-link\" id=\"zasdkViewDiagBtn\">View</span>\n </div>\n <label class=\"zasdk-switch\">\n <input type=\"checkbox\" id=\"zasdkIncludeDiagToggle\">\n <span class=\"zasdk-slider\"></span>\n </label>\n </div>\n </div>\n <div class=\"zasdk_submit_btncnt\">\n <div id=\"zasdksubmitstatus\" class=\"zasdkstsmsg\" style=\"display:none;\" ></div>\n <div id=\"zasdk_submit_btnsubcnt\" class=\"zasdk_submit_btnsubcnt\">\n <input type=\"button\" id=\"zasdk_submit_btn\" class=\"zasdk-btn zasdk-send-btn zasdkbtndisableclr\" value=\"Send\">\n </div>\n </div>\n <div id=\"zasdkDataViewer\" class=\"zasdk-data-viewer\" style=\"display:none\">\n <div class=\"zasdk-viewer-hdr\">\n <span id=\"zasdkViewerClose\" class=\"zasdk-viewer-back\"><svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\"><path d=\"M15 19l-7-7 7-7\" stroke=\"#333\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n <span id=\"zasdkViewerTitle\" class=\"zasdk-viewer-title\"></span>\n </div>\n <pre id=\"zasdkViewerContent\" class=\"zasdk-viewer-content\"></pre>\n </div>\n </div>";
|
|
1
|
+
export declare const feedbackUIHtml = "<div id=\"zasdkFeedbackconatiner\" class=\"zasdk-modal-content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"zasdkFeedbackTitle\">\n <div class=\"zasdk-header\">\n <h2 id=\"zasdkFeedbackTitle\" class=\"zasdk-title\">Share feedback</h2>\n <span id=\"appticsfeedbackclose\" class=\"zasdk-close\" role=\"button\" tabindex=\"0\" aria-label=\"Close\"><svg viewBox=\"0 0 24 24\" style=\" width: 20px; \"><path d=\"M19.92,19.08c.23.23.23.61,0,.85-.12.12-.27.18-.42.18s-.31-.06-.42-.18l-7.08-7.08-7.08,7.08c-.12.12-.27.18-.42.18s-.31-.06-.42-.18c-.23-.23-.23-.61,0-.85l7.08-7.08-7.08-7.08c-.23-.23-.23-.61,0-.85s.61-.23.85,0l7.08,7.08,7.08-7.08c.23-.23.61-.23.85,0s.23.61,0,.85l-7.08,7.08,7.08,7.08Z\"/></svg></span>\n </div>\n <div class=\"zasdk-feedback-types\" data-type=\"\">\n <div class=\"zasdk-feedback-type zasdk-selected\" data-type=\"feedback\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-reqest\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M6.69,9.25h10.81c.41,0,.75-.34.75-.75s-.34-.75-.75-.75H6.69c-.41,0-.75.34-.75.75s.34.75.75.75Z\"/><path d=\"M6.69,13.07h8.11c.41,0,.75-.34.75-.75s-.34-.75-.75-.75H6.69c-.41,0-.75.34-.75.75s.34.75.75.75Z\"/><path d=\"M20.72,5.17c0-.68-.55-1.23-1.23-1.23H4.48c-.68,0-1.23.55-1.23,1.23v11.84c0,.68.55,1.23,1.23,1.23h13.49l1.25,1.51c.17.2.41.31.67.31.1,0,.2-.02.3-.05.34-.13.57-.46.56-.83l-.03-14.01ZM19.22,17.39l-.17-.2c-.24-.29-.58-.45-.95-.45H4.75V5.44h14.47v11.95Z\"/></svg></i>\n </div>\n <div>Feedback</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"bug\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-report\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M15.6,6.58c-.13-.37-.3-.7-.5-.97l1.23-1.18c.24-.23.25-.61.02-.85-.23-.24-.61-.25-.85-.02l-1.26,1.21c-.66-.45-1.37-.62-1.79-.68-.25-.04-.51-.04-.76-.02-.83.08-1.45.35-1.93.7l-1.22-1.2c-.24-.23-.62-.23-.85,0-.23.24-.23.62,0,.85l1.21,1.19c-.24.34-.41.68-.51.96-2.02,1.37-3.27,3.82-3.27,6.44,0,4.18,3.08,7.58,6.87,7.58s6.87-3.4,6.87-7.58c0-2.62-1.25-5.06-3.26-6.44ZM11.82,5.27c.15-.02.31-.01.47.01.69.1,1.86.48,2.26,1.9-.17.17-.51.44-1.14.65-1.08.36-2.31.28-3.36-.23-.24-.11-.44-.23-.6-.36,0-.01,0-.03.01-.04.18-.65.73-1.77,2.36-1.93ZM12,19.4c-3.12,0-5.67-2.86-5.67-6.38,0-1.98.82-3.82,2.19-5.02.26.25.59.48,1.01.68.78.38,1.65.57,2.5.57.6,0,1.19-.09,1.76-.28.88-.29,1.39-.7,1.67-1,1.38,1.2,2.21,3.06,2.21,5.05,0,3.52-2.54,6.38-5.67,6.38ZM9.12,9.86c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM9.12,11.99c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47ZM14.88,9.86c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM14.88,11.99c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47ZM12,14.49c-.92,0-1.67.75-1.67,1.67s.75,1.67,1.67,1.67,1.67-.75,1.67-1.67-.75-1.67-1.67-1.67ZM12,16.62c-.26,0-.47-.21-.47-.47s.21-.47.47-.47.47.21.47.47-.21.47-.47.47Z\"/></svg></i>\n </div>\n <div>Bug</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"help\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-help\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M12.45,16.47c-.33,0-.6-.27-.6-.6v-2.7c0-.43.25-.82.64-.99.95-.42,3.15-1.62,3.15-3.51,0-1.6-1.01-3.03-2.51-3.55-.95-.33-1.97-.28-2.87.16-.91.43-1.59,1.2-1.92,2.14-.11.31-.45.48-.77.37-.31-.11-.48-.45-.37-.77.44-1.25,1.34-2.25,2.54-2.83,1.2-.57,2.54-.65,3.79-.21,1.99.7,3.32,2.58,3.31,4.69,0,2.46-2.34,3.91-3.79,4.57v2.63c0,.33-.27.6-.6.6ZM13.21,19.1c0-.66-.54-1.2-1.2-1.2h-.03c-.66,0-1.19.54-1.19,1.2s.55,1.2,1.21,1.2,1.2-.54,1.2-1.2Z\"/></svg></i>\n </div>\n <div>Help</div>\n </div>\n <div class=\"zasdk-feedback-type\" data-type=\"report\">\n <div class=\"zasdk-iconcnt zasdkfeedback__icon-appreciate\">\n <i class=\"zasdkfeedback__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.47,16.72l-6.66-11.53c-.37-.65-1.07-1.05-1.81-1.05s-1.44.4-1.81,1.05l-6.66,11.53c-.37.65-.37,1.45,0,2.09.37.65,1.07,1.05,1.81,1.05h13.32c.75,0,1.44-.4,1.81-1.05.37-.64.37-1.45,0-2.09ZM19.17,18.06c-.11.18-.3.3-.51.3H5.34c-.21,0-.41-.11-.51-.3-.1-.18-.1-.41,0-.59l6.66-11.53h0c.11-.18.3-.3.51-.3s.41.11.51.3l6.66,11.53c.11.18.11.41,0,.59Z\"/><path d=\"M12.35,13.9s.37-4.72.37-4.72c.05-1.08-1.58-1.06-1.5.02l.48,4.71c.03.38.62.37.64,0Z\"/><path d=\"M11.97,15.06c-.52,0-.94.42-.94.94s.42.94.94.94.94-.42.94-.94-.42-.94-.94-.94Z\"/></svg></i>\n </div>\n <div>Report</div>\n </div>\n </div>\n <div class=\"zasdk-body\">\n <div id=\"zasdkFeedbackForm\" class=\"zasdk-form\">\n <label class=\"zasdkdesclbl\">User<span class=\"zasdkmadfeld\">*</span></label>\n <div id=\"zasdkEmailDropdown\" class=\"zasdk-custom-select\">\n <div id=\"zasdkEmailTrigger\" class=\"zasdk-select-trigger\">\n <span id=\"zasdkEmailLabel\" class=\"zasdk-select-label\">Anonymous</span>\n <svg class=\"zasdk-select-arrow\" viewBox=\"0 0 12 8\" width=\"12\" height=\"8\"><path d=\"M1 1l5 5 5-5\" stroke=\"#999\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\"/></svg>\n </div>\n <div id=\"zasdkEmailPanel\" class=\"zasdk-select-panel\" style=\"display:none\">\n <ul id=\"zasdkEmailList\" class=\"zasdk-select-list\"></ul>\n </div>\n </div>\n <label class=\"zasdkdesclbl\" for=\"zasdkDescription\">Add details here<span class=\"zasdkmadfeld\">*</span> <span class=\"zaleftcharspan\"><span class=\"zaleftcharcnt\">5000</span><span class=\"zaleftchartxt\">characters left</span></span></label>\n <textarea id=\"zasdkDescription\" name=\"description\" placeholder=\"Please provide more details for us to help you better.\" reqname=\"name\" maxlength=\"5000\"></textarea>\n <div id=\"zasdkreccheckcnt\" class=\"zasdkqz-container\">\n <div class=\"zasdkqz-checkbox-wrapper\">\n <input type=\"checkbox\" id=\"zasdkqz-consent\" class=\"zasdkqz-checkbox\">\n <label for=\"zasdkqz-consent\">By agreeing to record screen, I allow the collection of the required information for further analysis.</label>\n </div>\n <div id=\"zasdkqz-content\" class=\"zasdkqz-content\">\n <div class=\"zasdkqz-prop-content\">Data collected while screen recording.\n <div class=\"zasdk_rec_hdr_icon zasdk-tooltip-container zasdk_rec_hdr\">\n <i><svg viewBox=\"0 0 24 24\"><path d=\"M12,20.6c-4.74,0-8.6-3.86-8.6-8.6S7.26,3.4,12,3.4s8.6,3.86,8.6,8.6-3.86,8.6-8.6,8.6ZM12,4.6c-4.08,0-7.4,3.32-7.4,7.4s3.32,7.4,7.4,7.4,7.4-3.32,7.4-7.4-3.32-7.4-7.4-7.4ZM12.6,15.97v-4.91c0-.33-.27-.6-.6-.6s-.6.27-.6.6v4.91c0,.33.27.6.6.6s.6-.27.6-.6ZM12.61,9.03c0-.33-.27-.6-.6-.6h-.01c-.33,0-.59.27-.59.6s.28.6.61.6.6-.27.6-.6Z\"/></svg></i>\n <div class=\"zasdk-tooltip-top zasdk-prop-info\">\n <ul>\n <li>- A recording of the window or region specified.</li>\n <li>- Audio captured during recording. (You can mute or re-record)</li>\n <li>- IP address.</li>\n <li>- Browser console logs generated while recording.</li>\n <li>- Device details (screen resolution, OS, and browser version).</li>\n <li>- Client-side performance metrics (DNS lookup time, TCP connection time, etc.).</li>\n </ul>\n </div>\n </div>\n </div>\n <div id=\"zasdkqz_rec_button\" class=\"zasdkqz-button\">Start screen recording</div>\n </div>\n </div>\n <div id=\"zasdkrecstatus\" class=\"zasdk-recstatus\" style=\"display:none\">\n <div class=\"zasdk-timer-control\"><div class=\"zasdk-timer-stopcricle\"></div></div>\n <span class=\"zasdk-recstatus-text\">Recording in progress</span>\n <span id=\"zasdkRecStatusTime\" class=\"zasdk-timer-display\">05:00</span>\n <div id=\"zasdkRecStatusStop\" class=\"zasdkqz-button zasdk-recstatus-stop\" role=\"button\" tabindex=\"0\">Stop recording</div>\n </div>\n <div id=\"editRecordedVideo\" class=\"zasdk_recordedClipArea\" style=\"\">\n <div id=\"recordScreenDesc\" class=\"zasdk_rec_hdr\"> Recorded Clip\n <div class=\"zasdk_rec_hdr_icon zasdk-tooltip-container\">\n <i><svg viewBox=\"0 0 24 24\"><path d=\"M12,20.6c-4.74,0-8.6-3.86-8.6-8.6S7.26,3.4,12,3.4s8.6,3.86,8.6,8.6-3.86,8.6-8.6,8.6ZM12,4.6c-4.08,0-7.4,3.32-7.4,7.4s3.32,7.4,7.4,7.4,7.4-3.32,7.4-7.4-3.32-7.4-7.4-7.4ZM12.6,15.97v-4.91c0-.33-.27-.6-.6-.6s-.6.27-.6.6v4.91c0,.33.27.6.6.6s.6-.27.6-.6ZM12.61,9.03c0-.33-.27-.6-.6-.6h-.01c-.33,0-.59.27-.59.6s.28.6.61.6.6-.27.6-.6Z\"/></svg></i>\n <div class=\"zasdk-tooltip\">This recording will be sent along with your feedback for further analysis.</div>\n </div>\n </div>\n <div class=\"zasdk_playEdit\">\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"preivewPlayButton\" class=\"zasdk_clipAreaButton\" title=\"Preview\">\n <svg viewBox=\"0 0 24 24\"><path d=\"M6.24,20.6c-.2,0-.39-.05-.57-.15-.38-.21-.62-.61-.62-1.05V4.59c0-.44.24-.84.62-1.05.38-.21.85-.19,1.22.04l11.52,7.41c.34.22.55.6.55,1,0,.41-.2.78-.55,1l-11.52,7.41c-.2.13-.42.19-.64.19ZM6.56,4.1l-.33.5v14.81s11.52-7.41,11.52-7.41L6.23,4.6l.33-.5Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Preview</div>\n </div>\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"videoEditButton\" class=\"zasdk_clipAreaButton\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\"><path d=\"M20.6,7.18c0-.58-.23-1.13-.65-1.54l-1.53-1.51c-.83-.83-2.29-.83-3.12,0l-1.31,1.3h0S4.88,14.41,4.88,14.41c-.12.12-.21.27-.26.44l-1.19,4.4c-.09.34,0,.7.26.95.19.18.44.29.7.29.09,0,.17-.01.26-.04l4.44-1.2c.16-.05.31-.13.44-.25l8.54-8.43h0s1.88-1.86,1.88-1.86c.06-.06.12-.12.17-.19h0c.31-.39.48-.86.48-1.36ZM8.72,18.12l-4.03,1.09,1.08-3.98L13.97,7.12l2.88,2.97-8.13,8.03ZM17.71,9.25l-2.88-2.97,1.32-1.3c.38-.38,1.04-.38,1.43,0l1.53,1.51c.19.18.29.43.29.69,0,.22-.08.43-.21.6h0s-.04.05-.08.08l-1.4,1.39Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Edit</div>\n </div>\n <div class=\"zasdk_clipAreaButtonCnt zasdk-tooltip-container\">\n <div id=\"videoDelButton\" class=\"zasdk_clipAreaButton\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\"><path d=\"M19.2,6.6h-3.4v-1c0-1.21-.99-2.2-2.2-2.2h-3.2c-1.21,0-2.2.99-2.2,2.2v1h-3.4c-.33,0-.6.27-.6.6s.27.6.6.6h1v10.6c0,1.21.99,2.2,2.2,2.2h8c1.21,0,2.2-.99,2.2-2.2V7.8h1c.33,0,.6-.27.6-.6s-.27-.6-.6-.6ZM9.4,5.6c0-.55.45-1,1-1h3.2c.55,0,1,.45,1,1v1h-5.2v-1ZM17,18.4c0,.55-.45,1-1,1h-8c-.55,0-1-.45-1-1V7.8h10v10.6ZM11,11.2v4.8c0,.33-.27.6-.6.6s-.6-.27-.6-.6v-4.8c0-.33.27-.6.6-.6s.6.27.6.6ZM14.2,11.2v4.8c0,.33-.27.6-.6.6s-.6-.27-.6-.6v-4.8c0-.33.27-.6.6-.6s.6.27.6.6Z\"/></svg>\n </div>\n <div class=\"zasdk-tooltip\">Delete</div>\n </div>\n </div>\n <div class=\"zasdk_videoPrev\">\n <video id=\"previewVideoElemId\" width=\"320\" height=\"240\" src=\"\"></video>\n </div>\n </div>\n\n <div class=\"zasdk-buttons\">\n <div class=\"zasdk-btncnt\">\n <div id=\"zasdkattachinfo\" class=\"zasdkattachinf\">Maximum 5 attachments with a total file size of 10MB is allowed</div>\n <input type=\"file\" id=\"zasdkFileInput\" class=\"zasdk-file-input\" multiple accept=\".png, .jpg, .txt\">\n <label id=\"zasdkAttachBtn\" class=\"zasdk-btn zasdk-attach-btn\" for=\"zasdkFileInput\">\n <svg id=\"Layer_2\" viewBox=\"0 0 24 24\" style=\" width: 25px; \"><path d=\"M12,20.6c-2.63,0-4.78-2.14-4.78-4.78V6.78c0-1.87,1.52-3.38,3.38-3.38s3.38,1.52,3.38,3.38v9.04c0,1.1-.9,1.99-2,1.99s-1.99-.89-1.99-1.99V7.48c0-.33.27-.6.6-.6h0c.33,0,.6.27.6.6v8.35c0,.44.35.79.79.79s.79-.36.79-.79V6.78c0-1.2-.98-2.18-2.18-2.18s-2.18.98-2.18,2.18v9.04c0,1.97,1.6,3.58,3.58,3.58s3.58-1.6,3.58-3.58V6.78c0-.33.27-.6.6-.6s.6.27.6.6v9.04c0,2.63-2.14,4.78-4.78,4.78Z\"/></svg>\n <span>Attachments</span>\n </label>\n <div id=\"zasdkfilesizeinfo\" class=\"zasdkfilesizeinf\"></div>\n <ul id=\"zasakfileList\" class=\"zasakfilelstcnt\"></ul>\n </div>\n </div>\n </div>\n <div class=\"zasdk-toggles-section\">\n <div class=\"zasdk-toggle-row\">\n <div class=\"zasdk-toggle-info\">\n <span class=\"zasdk-toggle-label\">Include System Logs</span>\n <span class=\"zasdk-view-link\" id=\"zasdkViewLogsBtn\">View</span>\n </div>\n <label class=\"zasdk-switch\">\n <input type=\"checkbox\" id=\"zasdkIncludeLogToggle\">\n <span class=\"zasdk-slider\"></span>\n </label>\n </div>\n <div class=\"zasdk-toggle-separator\"></div>\n <div class=\"zasdk-toggle-row\">\n <div class=\"zasdk-toggle-info\">\n <span class=\"zasdk-toggle-label\">Include Diagnostic Information</span>\n <span class=\"zasdk-view-link\" id=\"zasdkViewDiagBtn\">View</span>\n </div>\n <label class=\"zasdk-switch\">\n <input type=\"checkbox\" id=\"zasdkIncludeDiagToggle\">\n <span class=\"zasdk-slider\"></span>\n </label>\n </div>\n </div>\n </div>\n <div class=\"zasdk_submit_btncnt\">\n <div id=\"zasdksubmitstatus\" class=\"zasdkstsmsg\" style=\"display:none;\" ></div>\n <div id=\"zasdk_submit_btnsubcnt\" class=\"zasdk_submit_btnsubcnt\">\n <input type=\"button\" id=\"zasdk_submit_btn\" class=\"zasdk-btn zasdk-send-btn zasdkbtndisableclr\" value=\"Send\">\n </div>\n </div>\n <div id=\"zasdkDataViewer\" class=\"zasdk-data-viewer\" style=\"display:none\">\n <div class=\"zasdk-viewer-hdr\">\n <span id=\"zasdkViewerClose\" class=\"zasdk-viewer-back\"><svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\"><path d=\"M15 19l-7-7 7-7\" stroke=\"#333\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n <span id=\"zasdkViewerTitle\" class=\"zasdk-viewer-title\"></span>\n </div>\n <pre id=\"zasdkViewerContent\" class=\"zasdk-viewer-content\"></pre>\n </div>\n </div>";
|
|
2
2
|
export declare const timerHtml = "<div id=\"zasdkrectimer\" class=\"zasdk-timer-container zasdk-tooltip-container\">\n <div class=\"zasdk-timer-control\" id=\"zasdkRecordButton\"><div class=\"zasdk-timer-stopcricle\"></div></div>\n <span class=\"zasdk-timer-display\" id=\"zasdkTimerDisplay\">05:00</span>\n <div class=\"zasdk-tooltip-top\">Stop Recording</div>\n </div>";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.
|
|
1
|
+
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.2 | (c) Zoho Corporation Private Limited | see LICENSE */
|
|
2
2
|
// Feedback modal markup (moved from js/apptics.js).
|
|
3
3
|
const feedbackUIHtml = `<div id="zasdkFeedbackconatiner" class="zasdk-modal-content" role="dialog" aria-modal="true" aria-labelledby="zasdkFeedbackTitle">
|
|
4
4
|
<div class="zasdk-header">
|
|
@@ -31,6 +31,7 @@ const feedbackUIHtml = `<div id="zasdkFeedbackconatiner" class="zasdk-modal-cont
|
|
|
31
31
|
<div>Report</div>
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
|
+
<div class="zasdk-body">
|
|
34
35
|
<div id="zasdkFeedbackForm" class="zasdk-form">
|
|
35
36
|
<label class="zasdkdesclbl">User<span class="zasdkmadfeld">*</span></label>
|
|
36
37
|
<div id="zasdkEmailDropdown" class="zasdk-custom-select">
|
|
@@ -68,6 +69,12 @@ const feedbackUIHtml = `<div id="zasdkFeedbackconatiner" class="zasdk-modal-cont
|
|
|
68
69
|
<div id="zasdkqz_rec_button" class="zasdkqz-button">Start screen recording</div>
|
|
69
70
|
</div>
|
|
70
71
|
</div>
|
|
72
|
+
<div id="zasdkrecstatus" class="zasdk-recstatus" style="display:none">
|
|
73
|
+
<div class="zasdk-timer-control"><div class="zasdk-timer-stopcricle"></div></div>
|
|
74
|
+
<span class="zasdk-recstatus-text">Recording in progress</span>
|
|
75
|
+
<span id="zasdkRecStatusTime" class="zasdk-timer-display">05:00</span>
|
|
76
|
+
<div id="zasdkRecStatusStop" class="zasdkqz-button zasdk-recstatus-stop" role="button" tabindex="0">Stop recording</div>
|
|
77
|
+
</div>
|
|
71
78
|
<div id="editRecordedVideo" class="zasdk_recordedClipArea" style="">
|
|
72
79
|
<div id="recordScreenDesc" class="zasdk_rec_hdr"> Recorded Clip
|
|
73
80
|
<div class="zasdk_rec_hdr_icon zasdk-tooltip-container">
|
|
@@ -136,6 +143,7 @@ const feedbackUIHtml = `<div id="zasdkFeedbackconatiner" class="zasdk-modal-cont
|
|
|
136
143
|
</label>
|
|
137
144
|
</div>
|
|
138
145
|
</div>
|
|
146
|
+
</div>
|
|
139
147
|
<div class="zasdk_submit_btncnt">
|
|
140
148
|
<div id="zasdksubmitstatus" class="zasdkstsmsg" style="display:none;" ></div>
|
|
141
149
|
<div id="zasdk_submit_btnsubcnt" class="zasdk_submit_btnsubcnt">
|
|
@@ -45,7 +45,10 @@ export interface FeedbackUI {
|
|
|
45
45
|
close(): void;
|
|
46
46
|
/** Escape closes the form; listened for from open to close. */
|
|
47
47
|
onEscape(e: KeyboardEvent): void;
|
|
48
|
+
dismiss(): void;
|
|
49
|
+
showRecordingStatus(on: boolean): void;
|
|
48
50
|
toggleWindowAnimation(): void;
|
|
51
|
+
finishHiding(): void;
|
|
49
52
|
fileAttachment(): void;
|
|
50
53
|
elementCreator<K extends keyof HTMLElementTagNameMap>(elType: K): HTMLElementTagNameMap[K];
|
|
51
54
|
fileLimitExceeded(limitReached: boolean, filesLengthReached?: boolean): void;
|
|
@@ -54,6 +57,10 @@ export interface FeedbackUI {
|
|
|
54
57
|
toggleRecording(): void;
|
|
55
58
|
startRecording(): void;
|
|
56
59
|
stopRecording(): void;
|
|
60
|
+
/** The recording has ended, however it ended: the form comes back, with the preview. */
|
|
61
|
+
recordingEnded(): void;
|
|
62
|
+
/** The form back in sight after a recording took it out. */
|
|
63
|
+
showForm(): void;
|
|
57
64
|
submitRecording(): void;
|
|
58
65
|
updateTimer(): void;
|
|
59
66
|
updateDisplay(): void;
|
package/dist/esm/feedback/ui.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.
|
|
1
|
+
/*! @zoho_apptics/apptics-js-sdk v2.0.0-beta.2 | (c) Zoho Corporation Private Limited | see LICENSE */
|
|
2
2
|
import { AP_TRACKING_STATUS } from '../core/constants.js';
|
|
3
3
|
import { _ZAP } from '../core/state.js';
|
|
4
4
|
import { Console, warnAlways } from '../core/logger.js';
|
|
@@ -6,7 +6,7 @@ import { isEmpty, isEmptyObj } from '../core/utils.js';
|
|
|
6
6
|
import { opt_in_status } from '../core/consent.js';
|
|
7
7
|
import { timerHtml, feedbackUIHtml } from './template.js';
|
|
8
8
|
import { sendFeedbackData } from './send.js';
|
|
9
|
-
import { chooseUserForSend, userChoice, wireDrag, wireUserPicker, wireLogControls, logChoice } from './controls.js';
|
|
9
|
+
import { chooseUserForSend, userChoice, wireTimerDrag, wireDrag, wireUserPicker, wireLogControls, logChoice } from './controls.js';
|
|
10
10
|
import { injectStylesheet } from '../core/stylesheet.js';
|
|
11
11
|
import { recordingDomain, loadQuartz, quartzScriptSource } from './quartz.js';
|
|
12
12
|
import css from './styles.js';
|
|
@@ -22,6 +22,12 @@ const QUARTZ_NOOP = {
|
|
|
22
22
|
submitRecording() { return Promise.resolve({}); }
|
|
23
23
|
};
|
|
24
24
|
const QUARTZ_CONSTANTS_NOOP = { ErrorType: {}, FeedbackState: {} };
|
|
25
|
+
/** From Quartz's RECORDING_IN_PROGRESS until the form has come back from it. */
|
|
26
|
+
var recordingInProgress = false;
|
|
27
|
+
/** Send was pressed during a recording: it is sent, recording and all, once the recording has ended. */
|
|
28
|
+
var sendWhenEnded = false;
|
|
29
|
+
/** How long the form takes to shrink away when a recording starts: the stylesheet's transition. */
|
|
30
|
+
const HIDE_MS = 300;
|
|
25
31
|
function hasQuartz() {
|
|
26
32
|
return typeof Quartz !== 'undefined' && !!Quartz; // no i18n
|
|
27
33
|
}
|
|
@@ -40,11 +46,12 @@ function submitFeedback(dataobj) {
|
|
|
40
46
|
if (!result) {
|
|
41
47
|
return null;
|
|
42
48
|
}
|
|
43
|
-
feedback.handleStatusmsg(result.ok, result.message);
|
|
44
49
|
if (result.ok) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
// sent: the form goes at once rather than holding the page for the success line
|
|
51
|
+
feedback.close();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
feedback.handleStatusmsg(result.ok, result.message);
|
|
48
55
|
}
|
|
49
56
|
return result;
|
|
50
57
|
});
|
|
@@ -204,6 +211,12 @@ const feedback = {
|
|
|
204
211
|
feedback._opts = opts || {};
|
|
205
212
|
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
206
213
|
if (!isEmpty(modal)) {
|
|
214
|
+
// already open. A recording takes the form out of sight, and one that ended without the
|
|
215
|
+
// form hearing of it would leave it there, every later open a no-op. Asked to open, it
|
|
216
|
+
// comes back; a recording still going carries on, and its end is handled as ever
|
|
217
|
+
if (feedback.isHidden || feedback.isScaled) {
|
|
218
|
+
feedback.showForm();
|
|
219
|
+
}
|
|
207
220
|
return;
|
|
208
221
|
}
|
|
209
222
|
const tempContainer = document.createElement('div'); // no i18n
|
|
@@ -257,10 +270,21 @@ const feedback = {
|
|
|
257
270
|
});
|
|
258
271
|
}
|
|
259
272
|
feedbackbox.addEventListener('transitionend', function (event) {
|
|
260
|
-
if (event.propertyName === 'transform'
|
|
261
|
-
feedback.
|
|
273
|
+
if (event.propertyName === 'transform') { // no i18n
|
|
274
|
+
feedback.finishHiding();
|
|
262
275
|
}
|
|
263
276
|
});
|
|
277
|
+
// the form, opened again while a recording goes on, says so and can stop it
|
|
278
|
+
const recStop = modal.querySelector('#zasdkRecStatusStop'); // no i18n
|
|
279
|
+
recStop.onclick = function () {
|
|
280
|
+
feedback.stopRecording();
|
|
281
|
+
};
|
|
282
|
+
recStop.onkeydown = function (e) {
|
|
283
|
+
if (e.key === 'Enter' || e.key === ' ') { // no i18n
|
|
284
|
+
e.preventDefault();
|
|
285
|
+
feedback.stopRecording();
|
|
286
|
+
}
|
|
287
|
+
};
|
|
264
288
|
quartzrecbtn.onclick = function (e) {
|
|
265
289
|
e.stopImmediatePropagation();
|
|
266
290
|
let recordingDetails = {
|
|
@@ -282,13 +306,13 @@ const feedback = {
|
|
|
282
306
|
quartz().startRecording(recordingDetails);
|
|
283
307
|
};
|
|
284
308
|
closeBtn.onclick = function () {
|
|
285
|
-
feedback.
|
|
309
|
+
feedback.dismiss();
|
|
286
310
|
};
|
|
287
311
|
// keyboard: Enter or Space on the close control, and Escape anywhere, close the form
|
|
288
312
|
closeBtn.onkeydown = function (e) {
|
|
289
313
|
if (e.key === 'Enter' || e.key === ' ') { // no i18n
|
|
290
314
|
e.preventDefault();
|
|
291
|
-
feedback.
|
|
315
|
+
feedback.dismiss();
|
|
292
316
|
}
|
|
293
317
|
};
|
|
294
318
|
document.addEventListener('keydown', feedback.onEscape); // no i18n
|
|
@@ -314,6 +338,12 @@ const feedback = {
|
|
|
314
338
|
submitbtncnt.classList.add('zasdkbtndisabled'); // no i18n
|
|
315
339
|
submitbtn.value = '';
|
|
316
340
|
try {
|
|
341
|
+
if (recordingInProgress) {
|
|
342
|
+
// sent with the recording: stopped first, and sent once Quartz has stored it
|
|
343
|
+
sendWhenEnded = true;
|
|
344
|
+
feedback.stopRecording();
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
317
347
|
let videoElement = modal.querySelector('#previewVideoElemId'), // no i18n
|
|
318
348
|
videoVisible = videoElement && videoElement.offsetParent !== null;
|
|
319
349
|
if (videoVisible) {
|
|
@@ -454,7 +484,14 @@ const feedback = {
|
|
|
454
484
|
},
|
|
455
485
|
bindQuartzEvent: function (event) {
|
|
456
486
|
let feedbackState = event.detail.feedbackState;
|
|
487
|
+
if (feedbackState == quartzConstants().FeedbackState.RECORDING_COMPLETED) {
|
|
488
|
+
// Quartz's own stop control and the browser's "Stop sharing" end the recording without
|
|
489
|
+
// the SDK's timer; this is the only word of it the form gets
|
|
490
|
+
feedback.recordingEnded();
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
457
493
|
if (feedbackState == quartzConstants().FeedbackState.RECORDING_IN_PROGRESS) {
|
|
494
|
+
recordingInProgress = true;
|
|
458
495
|
var feedbacktimer = document.getElementById("zasdkrectimer"); // no i18n
|
|
459
496
|
if (!isEmpty(feedbacktimer)) {
|
|
460
497
|
feedbacktimer.remove();
|
|
@@ -465,6 +502,8 @@ const feedback = {
|
|
|
465
502
|
node.setAttribute('data-zasdk-theme', _ZAP._config.feedback_theme); // no i18n
|
|
466
503
|
document.body.appendChild(node);
|
|
467
504
|
var feedbacktimer = document.getElementById("zasdkrectimer"); // no i18n
|
|
505
|
+
// draggable anywhere on the page; wired before the click that stops the recording
|
|
506
|
+
wireTimerDrag(feedbacktimer);
|
|
468
507
|
feedback.timerDisplay = feedbacktimer.querySelector('#zasdkTimerDisplay'); // no i18n
|
|
469
508
|
feedback.recordButton = feedbacktimer;
|
|
470
509
|
feedback.TOTAL_TIME = 5 * 60; // 5 minutes in seconds
|
|
@@ -472,12 +511,35 @@ const feedback = {
|
|
|
472
511
|
feedback.isRecording = true;
|
|
473
512
|
feedback.recordButton.addEventListener('click', feedback.toggleRecording); // no i18n
|
|
474
513
|
feedback.startRecording();
|
|
514
|
+
feedback.updateDisplay();
|
|
515
|
+
feedback.showRecordingStatus(true);
|
|
475
516
|
feedback.toggleWindowAnimation();
|
|
476
517
|
}
|
|
477
518
|
},
|
|
478
519
|
onEscape: function (e) {
|
|
479
520
|
if (e.key === 'Escape') { // no i18n
|
|
480
|
-
feedback.
|
|
521
|
+
feedback.dismiss();
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
dismiss: function () {
|
|
525
|
+
// the form's own close (its X, Escape) during a recording puts it out of sight rather than
|
|
526
|
+
// throwing away what was typed: the recording goes on, and the next open brings it all back
|
|
527
|
+
if (recordingInProgress) {
|
|
528
|
+
if (!feedback.isScaled && !feedback.isHidden) {
|
|
529
|
+
feedback.toggleWindowAnimation();
|
|
530
|
+
}
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
feedback.close();
|
|
534
|
+
},
|
|
535
|
+
showRecordingStatus: function (on) {
|
|
536
|
+
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
537
|
+
if (!modal) {
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
modal.querySelector("#zasdkrecstatus").style.display = on ? "flex" : "none"; // no i18n
|
|
541
|
+
if (on) {
|
|
542
|
+
modal.querySelector("#zasdkreccheckcnt").style.display = "none"; // no i18n
|
|
481
543
|
}
|
|
482
544
|
},
|
|
483
545
|
close: function () {
|
|
@@ -485,6 +547,16 @@ const feedback = {
|
|
|
485
547
|
document.removeEventListener('keydown', feedback.onEscape); // no i18n
|
|
486
548
|
document.removeEventListener('quartz-feedback-state', feedback.bindQuartzEvent); // no i18n
|
|
487
549
|
quartz().clearFeedback();
|
|
550
|
+
// the recording goes with the form: no timer left on the page, and the next form starts clean
|
|
551
|
+
recordingInProgress = false;
|
|
552
|
+
sendWhenEnded = false;
|
|
553
|
+
feedback.isRecording = false;
|
|
554
|
+
clearInterval(feedback.timerInterval || undefined);
|
|
555
|
+
feedback.timerInterval = null;
|
|
556
|
+
var timer = document.getElementById("zasdkrectimer"); // no i18n
|
|
557
|
+
if (timer) {
|
|
558
|
+
timer.remove();
|
|
559
|
+
}
|
|
488
560
|
if (!isEmpty(modal)) {
|
|
489
561
|
modal.remove();
|
|
490
562
|
}
|
|
@@ -493,23 +565,29 @@ const feedback = {
|
|
|
493
565
|
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
494
566
|
const box = modal.querySelector('#zasdkFeedbackconatiner'); // no i18n
|
|
495
567
|
if (feedback.isHidden) {
|
|
496
|
-
|
|
497
|
-
setTimeout(() => {
|
|
498
|
-
box.style.transform = 'scale(1)'; // no i18n
|
|
499
|
-
feedback.validateFeedbackField();
|
|
500
|
-
}, 10);
|
|
501
|
-
feedback.isHidden = false;
|
|
502
|
-
feedback.isScaled = false;
|
|
568
|
+
feedback.showForm();
|
|
503
569
|
}
|
|
504
570
|
else if (feedback.isScaled) {
|
|
505
|
-
|
|
506
|
-
feedback.isHidden = true;
|
|
571
|
+
feedback.finishHiding();
|
|
507
572
|
}
|
|
508
573
|
else {
|
|
574
|
+
// shrinks away (the stylesheet's transition), and is taken off the page once it has;
|
|
575
|
+
// the timeout covers a page where the transition does not run (reduced motion)
|
|
509
576
|
box.style.transform = 'scale(0)'; // no i18n
|
|
577
|
+
box.style.opacity = '0'; // no i18n
|
|
510
578
|
feedback.isScaled = true;
|
|
579
|
+
setTimeout(feedback.finishHiding, HIDE_MS + 50);
|
|
511
580
|
}
|
|
512
581
|
},
|
|
582
|
+
finishHiding: function () {
|
|
583
|
+
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
584
|
+
// once only, and not when the form was brought back meanwhile
|
|
585
|
+
if (!modal || !feedback.isScaled || feedback.isHidden) {
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
modal.style.display = 'none'; // no i18n
|
|
589
|
+
feedback.isHidden = true;
|
|
590
|
+
},
|
|
513
591
|
fileAttachment: function () {
|
|
514
592
|
var uploadedFiles = feedback.fileInput.files;
|
|
515
593
|
feedback.uploadTotalSize = 0;
|
|
@@ -623,16 +701,65 @@ const feedback = {
|
|
|
623
701
|
}
|
|
624
702
|
},
|
|
625
703
|
stopRecording: function () {
|
|
626
|
-
|
|
704
|
+
if (!recordingInProgress) {
|
|
705
|
+
// Quartz has ended it already (its RECORDING_COMPLETED came first): asking again
|
|
706
|
+
// only gets a "no recording in progress" error shown in the form
|
|
707
|
+
return;
|
|
708
|
+
}
|
|
627
709
|
clearInterval(feedback.timerInterval || undefined);
|
|
628
710
|
feedback.timerInterval = null;
|
|
629
|
-
|
|
630
|
-
|
|
711
|
+
// the preview is read from what Quartz stored, so only once the recording has ended
|
|
712
|
+
Promise.resolve(quartz().endRecording()).catch(function (err) {
|
|
713
|
+
Console.log('stopRecording: ' + err); // no i18n
|
|
714
|
+
}).then(feedback.recordingEnded);
|
|
715
|
+
},
|
|
716
|
+
recordingEnded: function () {
|
|
717
|
+
if (!recordingInProgress) {
|
|
718
|
+
return;
|
|
719
|
+
}
|
|
720
|
+
recordingInProgress = false;
|
|
721
|
+
feedback.isRecording = false;
|
|
722
|
+
clearInterval(feedback.timerInterval || undefined);
|
|
723
|
+
feedback.timerInterval = null;
|
|
724
|
+
var timer = document.getElementById("zasdkrectimer"); // no i18n
|
|
725
|
+
if (timer) {
|
|
726
|
+
timer.remove();
|
|
727
|
+
}
|
|
728
|
+
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
729
|
+
if (!modal) {
|
|
730
|
+
return; // the form was closed meanwhile
|
|
731
|
+
}
|
|
732
|
+
var send = sendWhenEnded;
|
|
733
|
+
sendWhenEnded = false;
|
|
734
|
+
feedback.showRecordingStatus(false);
|
|
735
|
+
feedback.showForm();
|
|
631
736
|
modal.querySelector("#editRecordedVideo").style.display = "block"; // no i18n
|
|
632
737
|
modal.querySelector("#zasdkreccheckcnt").style.display = "none"; // no i18n
|
|
633
738
|
let videoElem = modal.querySelector('#previewVideoElemId'); // no i18n
|
|
634
|
-
quartz().
|
|
635
|
-
|
|
739
|
+
Promise.resolve(quartz().setVideoContent(videoElem)).catch(function (err) {
|
|
740
|
+
Console.warn('AppticsFeedback: the recording could not be shown: ' + err); // no i18n
|
|
741
|
+
}).then(function () {
|
|
742
|
+
if (send && document.getElementById("zasdkFeedbackModal")) { // no i18n
|
|
743
|
+
feedback.submitRecording();
|
|
744
|
+
}
|
|
745
|
+
});
|
|
746
|
+
},
|
|
747
|
+
showForm: function () {
|
|
748
|
+
// shown outright, not toggled: a recording that ends mid-way through the scale-down would
|
|
749
|
+
// otherwise be toggled out of sight instead of back into it
|
|
750
|
+
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
751
|
+
if (!modal) {
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
const box = modal.querySelector('#zasdkFeedbackconatiner'); // no i18n
|
|
755
|
+
feedback.isHidden = false;
|
|
756
|
+
feedback.isScaled = false;
|
|
757
|
+
modal.style.display = 'block'; // no i18n
|
|
758
|
+
setTimeout(() => {
|
|
759
|
+
box.style.transform = 'scale(1)'; // no i18n
|
|
760
|
+
box.style.opacity = '1'; // no i18n
|
|
761
|
+
feedback.validateFeedbackField();
|
|
762
|
+
}, 10);
|
|
636
763
|
},
|
|
637
764
|
submitRecording: function () {
|
|
638
765
|
var modal = document.getElementById("zasdkFeedbackModal"); // no i18n
|
|
@@ -673,7 +800,15 @@ const feedback = {
|
|
|
673
800
|
updateDisplay: function () {
|
|
674
801
|
const minutes = Math.floor(feedback.remainingTime / 60);
|
|
675
802
|
const seconds = feedback.remainingTime % 60;
|
|
676
|
-
|
|
803
|
+
const shown = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; // no i18n
|
|
804
|
+
if (feedback.timerDisplay) {
|
|
805
|
+
feedback.timerDisplay.textContent = shown;
|
|
806
|
+
}
|
|
807
|
+
// and in the form, for when it is opened again mid-recording
|
|
808
|
+
var inForm = document.getElementById("zasdkRecStatusTime"); // no i18n
|
|
809
|
+
if (inForm) {
|
|
810
|
+
inForm.textContent = shown;
|
|
811
|
+
}
|
|
677
812
|
},
|
|
678
813
|
validateFeedbackField: function () {
|
|
679
814
|
feedback.updateLeftCount();
|