{"version":3,"file":"chunks/gdpr.4885.2ffd8e40370df658cccb.chunk.js","mappings":"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","sources":["webpack://gdprPackage/./node_modules/err-code/index.js","webpack://gdprPackage/./node_modules/promise-retry/index.js","webpack://gdprPackage/./node_modules/retry/index.js","webpack://gdprPackage/./node_modules/retry/lib/retry.js","webpack://gdprPackage/./node_modules/retry/lib/retry_operation.js","webpack://gdprPackage/./src/controllers/transport/TransportController.ts","webpack://gdprPackage/./src/controllers/transport/index.ts","webpack://gdprPackage/./src/configuredTransport.ts","webpack://gdprPackage/./src/controllers/announcementManager/checkIsUserLoggedIn.ts","webpack://gdprPackage/./src/controllers/requestConfigurations/getSDProjectKey.ts","webpack://gdprPackage/./src/controllers/announcementManager/getCurrentParentContentKey.ts","webpack://gdprPackage/./src/controllers/userActivity/userActivity.ts","webpack://gdprPackage/./src/controllers/announcementManager/announcementManager.ts"],"sourcesContent":["'use strict';\n\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = undefined;\n }\n\n if (code != null) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n return assign(new ErrClass(), props);\n }\n}\n\nmodule.exports = createError;\n","'use strict';\n\nvar errcode = require('err-code');\nvar retry = require('retry');\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction isRetryError(err) {\n return err && err.code === 'EPROMISERETRY' && hasOwn.call(err, 'retried');\n}\n\nfunction promiseRetry(fn, options) {\n var temp;\n var operation;\n\n if (typeof fn === 'object' && typeof options === 'function') {\n // Swap options and fn when using alternate signature (options, fn)\n temp = options;\n options = fn;\n fn = temp;\n }\n\n operation = retry.operation(options);\n\n return new Promise(function (resolve, reject) {\n operation.attempt(function (number) {\n Promise.resolve()\n .then(function () {\n return fn(function (err) {\n if (isRetryError(err)) {\n err = err.retried;\n }\n\n throw errcode(new Error('Retrying'), 'EPROMISERETRY', { retried: err });\n }, number);\n })\n .then(resolve, function (err) {\n if (isRetryError(err)) {\n err = err.retried;\n\n if (operation.retry(err || new Error())) {\n return;\n }\n }\n\n reject(err);\n });\n });\n });\n}\n\nmodule.exports = promiseRetry;\n","module.exports = require('./lib/retry');","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && options.forever,\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts;\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(this._errors.length - 1, this._errors.length);\n this._timeouts = this._cachedTimeouts.slice(0);\n timeout = this._timeouts.shift();\n } else {\n return false;\n }\n }\n\n var self = this;\n var timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","import promiseRetry from 'promise-retry';\nimport { promiseAllWithConcurrency } from 'promiseAllWithConcurrency';\nimport { default as Notification } from '../notification';\n\nexport class TransportController {\n instanceType: string;\n\n api: any;\n\n isCloud: false;\n\n constructor(instanceType = 'server') {\n this.instanceType = instanceType;\n\n this.api = window.AJS.$.ajax;\n\n this.isCloud = false;\n }\n\n errorHandler(data: any) {\n console.error('[TransportController][errorHandler] Exception:', data);\n\n const { err, responseJSON } = data;\n\n if (err) {\n const errorData = JSON.parse(err);\n\n if (errorData) {\n const { errorMessages } = errorData;\n\n return Notification.create({\n body: errorMessages[0],\n type: 'error',\n close: 'auto',\n });\n }\n }\n\n if (responseJSON) {\n const { errorMessages } = responseJSON;\n\n return Notification.create({\n body: errorMessages[0],\n type: 'error',\n close: 'auto',\n });\n }\n }\n\n getUrlToPaginationRequest(isExtraParameterExist: boolean, url: string, maxResults: number, startAt?: number) {\n return isExtraParameterExist\n ? `${url}&startAt=${startAt ? startAt : 0}&maxResults=${maxResults}`\n : `${url}?startAt=${startAt ? startAt : 0}&maxResults=${maxResults}`;\n }\n\n // FIXME: Fix types\n async requestWithPaginationSequently(requestData: any, maxResults: number, loadingCallback: any) {\n const { fieldName, type, url } = requestData;\n const isPost = type === 'POST';\n const isExtraParameterExist = requestData.url.indexOf('?') !== -1;\n\n const resultRequestData = {\n ...requestData,\n url: isPost ? url : this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults),\n };\n\n if (isPost) {\n resultRequestData.data = new Blob(\n [JSON.stringify(requestData.data)],\n { type: 'application/json' },\n );\n }\n try {\n const firstRequestResult = await this.api({ ...resultRequestData });\n\n const bodyData = this.isCloud ? JSON.parse(firstRequestResult.body) : firstRequestResult;\n const { startAt, total } = bodyData;\n\n if (loadingCallback) {\n loadingCallback({\n total,\n loaded: 0,\n });\n }\n\n const field = bodyData[fieldName];\n\n if (!field) {\n console.error(\n '[request][paginationRequests] No field data! Try to use some of these fields - ',\n Object.keys(bodyData)\n .reduce((acc, cur) => acc + `${cur}, `, ''),\n );\n return;\n }\n\n const resultsLength = field.length;\n let resultData: any = [];\n\n resultData = resultData.concat(field);\n\n if (total > (startAt + resultsLength)) {\n for (let i = startAt + resultsLength; i < total; i += maxResults) {\n if (loadingCallback) {\n const isProcessValid = loadingCallback({\n total,\n loaded: i,\n });\n\n if (!isProcessValid) return;\n }\n\n const newResultRequestData = {\n ...requestData,\n url: isPost ? url : this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults, i),\n };\n\n if (isPost) {\n requestData.data.startAt = i;\n newResultRequestData.data = new Blob(\n [JSON.stringify(requestData.data)],\n { type: 'application/json' },\n );\n }\n\n const requestResult = await this.api({ ...newResultRequestData });\n\n const result = this.isCloud ? JSON.parse(requestResult.body)[fieldName] : requestResult[fieldName];\n resultData = resultData.concat(result);\n }\n\n return await Promise.all(resultData);\n }\n\n return resultData;\n } catch (data) {\n this.errorHandler(data);\n return [];\n }\n }\n\n async requestWithPaginationParallel(requestData: any, maxResults: number, loadingCallback: any) {\n const { fieldName, type, url } = requestData;\n const isPost = type === 'POST';\n const isExtraParameterExist = requestData.url.indexOf('?') !== -1;\n\n const resultRequestData = {\n ...requestData,\n url: isPost ? url : this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults),\n };\n\n if (isPost) {\n resultRequestData.data = new Blob(\n [JSON.stringify(requestData.data)],\n { type: 'application/json' },\n );\n }\n\n try {\n const firstRequestResult = await this.api({ ...resultRequestData });\n\n const bodyData = this.isCloud ? JSON.parse(firstRequestResult.body) : firstRequestResult;\n const { startAt, total } = bodyData;\n\n if (loadingCallback) {\n loadingCallback({\n total,\n loaded: 0,\n });\n }\n\n const field = bodyData[fieldName];\n\n if (!field) {\n console.error(\n '[request][paginationRequests] No field data! Try to use some of these fields - ',\n Object.keys(bodyData)\n .reduce((acc, cur) => acc + `${cur}, `, ''),\n );\n return;\n }\n\n const resultsLength = field.length;\n const resultData = [];\n\n resultData.push(...field);\n\n if (total > (startAt + resultsLength)) {\n const pagesCount = Math.ceil((total - maxResults) / maxResults);\n\n const startAtArray = new Array(pagesCount).fill(0).map((item, index) => 50 + 50 * index);\n\n await Promise.all(startAtArray.map(async (currentStartAt) => {\n await promiseRetry(async (retry: any) => {\n try {\n if (isPost) {\n resultRequestData.data.startAt = currentStartAt;\n }\n\n const requestResult = await this.api({\n ...resultRequestData,\n url: this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults, currentStartAt),\n });\n\n const result = this.isCloud ? JSON.parse(requestResult.body)[fieldName] : requestResult[fieldName];\n\n resultData.push(...result);\n } catch (error) {\n retry(error);\n }\n });\n }));\n }\n\n return resultData;\n } catch (data) {\n this.errorHandler(data);\n return [];\n }\n }\n\n async requestWithPaginationConcurrently(requestData: any, maxResults: number, loadingCallback: any) {\n const { fieldName, type, url } = requestData;\n const isPost = type === 'POST';\n const isExtraParameterExist = requestData.url.indexOf('?') !== -1;\n\n const resultRequestData = {\n ...requestData,\n url: isPost ? url : this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults),\n };\n\n if (isPost) {\n resultRequestData.data = new Blob(\n [JSON.stringify(requestData.data)],\n { type: 'application/json' },\n );\n }\n\n try {\n const firstRequestResult = await this.api({ ...resultRequestData });\n\n const bodyData = this.isCloud ? JSON.parse(firstRequestResult.body) : firstRequestResult;\n const { startAt, total } = bodyData;\n\n if (loadingCallback) {\n loadingCallback({\n total,\n loaded: 0,\n });\n }\n\n const field = bodyData[fieldName];\n\n if (!field) {\n console.error(\n '[request][paginationRequests] No field data! Try to use some of these fields - ',\n Object.keys(bodyData)\n .reduce((acc, cur) => acc + `${cur}, `, ''),\n );\n return;\n }\n\n const resultsLength = field.length;\n const resultData = [];\n\n resultData.push(...field);\n\n if (total > (startAt + resultsLength)) {\n const pagesCount = Math.ceil((total - maxResults) / maxResults);\n\n // FIXME: concurrently mode could not work because of this\n const startAtArray = new Array(pagesCount).fill(0).map((item, index) => 50 + 50 * index);\n\n const requestForStartAt = (currentStartAt: any) => async () => {\n if (loadingCallback) {\n const isProcessValid = loadingCallback();\n\n if (!isProcessValid) return;\n }\n await promiseRetry(async (retry: any) => {\n try {\n const finalRequestData = {\n ...{\n ...resultRequestData,\n ...(isPost\n ? {\n data: new Blob(\n [JSON.stringify({ ...requestData.data, startAt: currentStartAt })],\n { type: 'application/json' },\n ),\n }\n : {}),\n },\n url: this.getUrlToPaginationRequest(isExtraParameterExist, url, maxResults, currentStartAt),\n };\n\n const requestResult = await this.api(finalRequestData);\n\n const result = this.isCloud ? JSON.parse(requestResult.body)[fieldName] : requestResult[fieldName];\n\n resultData.push(...result);\n\n if (loadingCallback) {\n const isProcessValid = loadingCallback({\n total,\n loaded: resultData.length,\n });\n\n if (!isProcessValid) return;\n }\n } catch (error) {\n retry(error);\n }\n });\n };\n\n const tasks = startAtArray.map((currentStartAt) => requestForStartAt(currentStartAt));\n\n await promiseAllWithConcurrency(tasks, 6);\n }\n\n return resultData;\n } catch (data) {\n this.errorHandler(data);\n return [];\n }\n }\n\n async request({\n config,\n query,\n data,\n loadingCallback,\n }: any) {\n const {\n url,\n method,\n migration,\n headers,\n allPages,\n allPagesConcurrently,\n allPagesParallel,\n fieldName,\n contentType,\n startAt = 0,\n maxResults = 100,\n } = config[this.instanceType];\n\n let requestUrl = this.isCloud ? url : window.AJS.contextPath() + url;\n\n if (query && query.length > 0) {\n requestUrl += query;\n }\n\n const requestData: any = {\n type: method,\n url: requestUrl,\n };\n\n if (!this.isCloud) {\n requestData.dataType = 'json';\n requestData.async = true;\n requestData.processData = false;\n }\n\n if (headers) requestData.headers = headers;\n if (fieldName) requestData.fieldName = fieldName;\n if (typeof contentType !== 'undefined') requestData.contentType = contentType;\n if (data) requestData.data = data;\n\n let result;\n\n if (allPagesConcurrently) {\n result = await this.requestWithPaginationConcurrently(requestData, maxResults, loadingCallback);\n } else if (allPagesParallel) {\n result = await this.requestWithPaginationParallel(requestData, maxResults, loadingCallback);\n } else if (allPages) {\n result = await this.requestWithPaginationSequently(requestData, maxResults, loadingCallback);\n } else {\n const isExtraParameterExist = requestData.url.indexOf('?') !== -1;\n\n const requestResult = await this.api({\n ...requestData,\n url: isExtraParameterExist\n ? `${requestData.url}&startAt=${startAt}&maxResults=${maxResults}`\n : `${requestData.url}?startAt=${startAt}&maxResults=${maxResults}`,\n });\n\n const bodyData = this.isCloud && requestResult && requestResult.body ? JSON.parse(requestResult.body) : requestResult;\n\n const fieldData = fieldName ? bodyData[fieldName] : bodyData;\n\n result = fieldData;\n }\n\n const resultData = migration ? await migration(result) : result;\n\n return resultData;\n }\n}\n","import { TransportController } from './TransportController';\n\nexport default TransportController;\n","import TransportController from 'controllers/transport';\n\nexport const Transport = new TransportController();\n","export const checkIsUserLoggedIn = () => {\n const { AJS } = window;\n\n if (AJS?.Meta?.get('remote-user')) return Boolean(AJS.Meta.get('remote-user'));\n\n const metaForUser = document.querySelector('meta[name=loggedInUser]');\n\n if (metaForUser) {\n return Boolean(metaForUser.getAttribute('content'));\n }\n\n return false;\n};\n","const globalConfig = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n allPages: false,\n },\n};\n\nconst config = {\n server: {\n ...globalConfig,\n url: '/rest/servicedesk/1/customer/models',\n },\n};\n\nexport { config as getSDProjectKey };\n","import { Transport } from 'configuredTransport';\nimport { getSDProjectKey } from 'controllers/requestConfigurations/getSDProjectKey';\nimport { checkIsServiceManagement } from './checkLocation';\n\nconst getProjectKeyFromSearch = () => {\n const search = new URLSearchParams(window.location.search);\n\n return search.get('projectKey');\n};\n\nconst getProjectKeyFromIssue = async () => {\n await new Promise((resolve) => {\n window.AJS.toInit(() => {\n resolve(null);\n });\n });\n\n const issueKey = window.JIRA.Issue.getIssueKey();\n\n if (issueKey) {\n const [projectKey] = issueKey.split('-');\n\n return projectKey;\n }\n};\n\nconst getProjectKeyFromIcon = (): string | void => {\n const projectIcon: HTMLAnchorElement = document.querySelector('.jira-project-avatar');\n\n if (projectIcon) {\n const projectHref = projectIcon.href;\n const splitted = projectHref.split('/');\n\n return splitted[splitted.length - 2];\n }\n};\n\nconst getSpaceKeyFromLogo = (): string | void => {\n const spaceLogo: HTMLDivElement = document.querySelector('.space-logo');\n\n if (spaceLogo) {\n const { dataset } = spaceLogo;\n\n return dataset.key;\n }\n};\n\nexport const getCurrentParentContentKey = async (): Promise => {\n const url = window.location.href;\n\n const isServiceManagement = checkIsServiceManagement();\n\n try {\n if (window.AJS.Confluence) {\n const confluenceMetaKey = window.AJS.Meta.get('space-key');\n\n if (confluenceMetaKey) return confluenceMetaKey;\n\n const confluenceKeyFromLogo = getSpaceKeyFromLogo();\n\n if (confluenceKeyFromLogo) return confluenceKeyFromLogo;\n\n return null;\n }\n\n if (isServiceManagement) {\n const firstIndex = url.indexOf('/servicedesk/customer/portal/') + 29;\n const lastIndex = url.indexOf('/', firstIndex) > 0 ? url.indexOf('/', firstIndex) : url.length;\n\n const portalId = url.substring(firstIndex, lastIndex);\n\n const dataObj = {\n models: ['portal'],\n options: { portalId: '' + portalId },\n };\n\n const portalData = await Transport.request({\n config: getSDProjectKey,\n data: JSON.stringify(dataObj),\n });\n\n const { portal: { key: portalProjectKey } } = portalData;\n\n return portalProjectKey;\n }\n\n const projectKeyFromSearch = getProjectKeyFromSearch();\n\n if (projectKeyFromSearch) return projectKeyFromSearch;\n\n const projectKeyFromIssue = await getProjectKeyFromIssue();\n\n if (projectKeyFromIssue) return projectKeyFromIssue;\n\n const projectKeyFromIcon = getProjectKeyFromIcon();\n\n if (projectKeyFromIcon) return projectKeyFromIcon;\n\n return null;\n } catch (error) {\n console.error('[announcementManager][getCurrentProjectKey] Error while getting current project key', error);\n\n return null;\n }\n};\n","export class UserActivity {\n onUserLeft = () => { };\n\n onUserReturnBack = () => { };\n\n _idleTimeout = 60;\n\n _idleSecondsCounter = 0;\n\n _stopTracking = false;\n\n constructor(onUserLeft: () => void, onUserReturnBack: () => void, secondsBeforeIdle = 60) {\n this.onUserLeft = onUserLeft;\n this.onUserReturnBack = onUserReturnBack;\n this._idleTimeout = secondsBeforeIdle;\n\n document.addEventListener('mousemove', this.resetTimer);\n document.addEventListener('mousedown', this.resetTimer);\n document.addEventListener('touchstart', this.resetTimer);\n document.addEventListener('click', this.resetTimer);\n document.addEventListener('keypress', this.resetTimer);\n\n window.addEventListener('scroll', this.resetTimer, true);\n\n window.setInterval(this.checkIdleTime, 1000);\n }\n\n resetTimer = () => {\n this._idleSecondsCounter = 0;\n };\n\n checkIsUserActive = () => this._idleSecondsCounter < this._idleTimeout;\n\n checkIdleTime = () => {\n this._idleSecondsCounter += 1;\n\n const isUserActive = this.checkIsUserActive();\n\n if (!isUserActive && !this._stopTracking) {\n this._stopTracking = true;\n\n this.onUserLeft && this.onUserLeft();\n }\n\n if (isUserActive && this._stopTracking) { // if return from idle state\n this._stopTracking = false;\n\n this.onUserReturnBack && this.onUserReturnBack();\n }\n };\n}\n","import i18next from 'i18n';\n\nimport Notification from 'controllers/notification';\nimport { checkIsUserLoggedIn } from './checkIsUserLoggedIn';\nimport { getCurrentParentContentKey } from './getCurrentParentContentKey';\nimport { UserActivity } from '../userActivity/userActivity';\n\nimport {\n getAnnouncement,\n getAnnouncementDraft,\n getTemplateAnnouncementDraft,\n getUserAnnouncements,\n sendUserAnswer,\n} from './userAnnouncementsRequests';\n\nimport { checkIsNodeMounted } from './checkNode';\n\nimport type { Announcement, ChangeLoginFormCheckbox, InitLoginCheck, LoginFormAnnouncement, RenderAnnouncement } from './types';\n\nimport { AnnouncementRenderer } from './announcementRenderer';\nimport { AnswersStorage } from './answersStorage';\n\nimport { checkIsPreviewPage } from './checkLocation';\n\nconst t = i18next.t.bind(i18next);\n\nconst TIMEOUT_BEFORE_IDLE_IN_SECONDS = 60;\n\nexport class AnnouncementManager {\n isInitialized = false;\n\n currentInterval: null | ReturnType = null;\n\n windowAnnouncements: Announcement[] = [];\n\n pinnedAnnouncements: Announcement[] = [];\n\n loginFormAnnouncements: LoginFormAnnouncement[] = [];\n\n currentParentContentKey: null | string = null;\n\n answersStorage: AnswersStorage;\n\n isDialogVisible = false;\n\n lastAnnouncementRequestTime: number | null = null;\n\n announcementRenderer: AnnouncementRenderer;\n\n interval = 30000;\n\n // TODO: add types for NotificationController and use it here\n notification: any;\n\n constructor(interval: number, announcementRenderer: AnnouncementRenderer, answersStorage: AnswersStorage) {\n this.interval = interval;\n this.announcementRenderer = announcementRenderer;\n this.answersStorage = answersStorage;\n\n this.notification = Notification;\n }\n\n handleChangeLoginFormCheckbox: ChangeLoginFormCheckbox = (e) => {\n const currentTarget = e.currentTarget as HTMLInputElement;\n const { announcementId } = currentTarget.dataset;\n\n const isChecked = currentTarget.checked;\n\n const announcementToChange = this.loginFormAnnouncements.find(({ id }) => id === Number(announcementId));\n\n if (announcementToChange) {\n announcementToChange.isChecked = isChecked;\n\n this.answersStorage.saveUserAnswers({ [announcementId]: { isChecked } });\n }\n };\n\n handleLogin = (e: Event) => {\n const isLoginFormAnnouncementsChecked = this.loginFormAnnouncements.every(({ isChecked }) => isChecked);\n\n if (!this.isInitialized) {\n e.preventDefault();\n\n this.notification.create({\n body: t`announcer.notifications.notInitialized`,\n type: 'error',\n close: 'auto',\n });\n }\n\n if (!isLoginFormAnnouncementsChecked) {\n e.preventDefault();\n\n const notCheckedAnnouncements = this.loginFormAnnouncements.filter(({ isChecked }) => !isChecked);\n const notCheckedAnnouncementsNames = notCheckedAnnouncements.map(({ name }) => name).join(', ');\n\n const isAcceptAllNotification = notCheckedAnnouncements.length > 5 || notCheckedAnnouncementsNames.length > 500;\n\n this.notification.create({\n body: isAcceptAllNotification\n ? t`announcer.notifications.acceptAll`\n : t('announcer.notifications.acceptNotChecked', { announcementNames: notCheckedAnnouncementsNames }),\n type: 'error',\n close: 'auto',\n });\n }\n };\n\n getLoginFormAnnouncements = async () => {\n const loginFormAnnouncements = await getUserAnnouncements('login-form', this.currentParentContentKey) || [];\n\n this.answersStorage.removeInvalidAnswers(loginFormAnnouncements);\n\n const prevUserAnswers = this.answersStorage.getUserAnswers() || {};\n\n const formattedLoginFormAnnouncements = loginFormAnnouncements.map((announcement: any) => {\n const isChecked = prevUserAnswers[announcement.id];\n\n return {\n ...announcement,\n isChecked,\n };\n });\n\n this.loginFormAnnouncements = formattedLoginFormAnnouncements;\n };\n\n getPinnedAnnouncements = async () => {\n this.pinnedAnnouncements = await getUserAnnouncements('pinned', this.currentParentContentKey) || [];\n };\n\n getWindowAnnouncements = async () => {\n this.lastAnnouncementRequestTime = new Date().getTime();\n\n this.windowAnnouncements = await getUserAnnouncements('window', this.currentParentContentKey) || [];\n\n if (this.windowAnnouncements.length > 0) {\n this.stopAnnouncementsCheck();\n\n const announcement = this.windowAnnouncements[0];\n\n this.renderAnnouncement(announcement);\n\n this.isDialogVisible = true;\n\n return true;\n }\n\n return false;\n };\n\n submitAnnouncement = async (announcementData: Announcement, isAccepted: boolean, userFeedback: string) => {\n const { id, isSubmitted } = announcementData;\n\n this.isDialogVisible = false;\n\n if (!isSubmitted) {\n this.answersStorage.setSubmittedAnnouncements(id);\n\n await sendUserAnswer(announcementData, isAccepted, userFeedback);\n }\n\n const announcementIndex = this.windowAnnouncements.findIndex(({ id: announcementId }) => announcementId === id);\n\n this.windowAnnouncements.splice(announcementIndex, 1);\n\n if (this.windowAnnouncements.length > 0) {\n const announcement: any = this.windowAnnouncements[0];\n\n this.renderAnnouncement(announcement);\n } else {\n this.startAnnouncementsCheck();\n }\n };\n\n submitLoginFormAnnouncement = async (announcementData: Announcement, isAccepted: boolean, userFeedback: string) => {\n const { id: announcementId, questionnaire } = announcementData;\n const announcementCheckbox: HTMLInputElement = document.querySelector(`#announcement-checkbox-${announcementId}`);\n\n const isChecked = Boolean(isAccepted);\n\n if (announcementCheckbox) {\n announcementCheckbox.checked = isChecked;\n }\n\n const announcementToChange = this.loginFormAnnouncements.find(({ id }) => id === Number(announcementId));\n\n if (announcementToChange) {\n announcementToChange.isChecked = isChecked;\n\n this.answersStorage.saveUserAnswers({\n [announcementId]: {\n isChecked,\n userFeedback: questionnaire ? userFeedback : '',\n },\n });\n }\n };\n\n // This function reusable for pinned, login-form and window announcement\n // for window this function will be called directly\n // for login-form and pinned as callback\n renderAnnouncement: RenderAnnouncement = (announcementData, isLoginFormAnnouncement) => {\n this.announcementRenderer.renderAnnouncement(\n announcementData,\n isLoginFormAnnouncement\n ? this.submitLoginFormAnnouncement\n : this.submitAnnouncement,\n );\n };\n\n stopAnnouncementsCheck = () => {\n clearInterval(this.currentInterval);\n\n this.currentInterval = null;\n };\n\n startAnnouncementsCheck = async () => {\n if (this.isDialogVisible) setTimeout(this.startAnnouncementsCheck, 1000);\n\n if (!this.isDialogVisible) {\n const now = new Date().getTime();\n\n const isInitRequestApplicable = this.lastAnnouncementRequestTime\n ? now - this.lastAnnouncementRequestTime > this.interval\n : true;\n\n const isAnnouncementsFound = isInitRequestApplicable && await this.getWindowAnnouncements();\n\n if (!isAnnouncementsFound && this.interval > 0) {\n this.currentInterval = setInterval(this.getWindowAnnouncements, this.interval);\n }\n }\n };\n\n sendLoginFormAnswers = async () => {\n if (checkIsUserLoggedIn()) {\n const answers = this.answersStorage.getUserAnswers() || {};\n\n if (answers.isChanged) {\n Object.entries(answers)\n .forEach(([key, value]: [key: any, value: any]) => {\n if (key !== 'isChanged') {\n sendUserAnswer(\n {\n id: key,\n questionnaire: Boolean(value.userFeedback),\n anonymous: false,\n },\n value.isChecked,\n value.userFeedback,\n );\n }\n });\n\n this.answersStorage.markAsSent(answers);\n }\n }\n };\n\n showAnnouncementPreview = async (callback: () => void) => {\n const params = new URLSearchParams(document.location.search);\n let announcementDraftData: unknown;\n\n const announcementId = params.get('id');\n const templateId = params.get('templateId');\n\n try {\n if (announcementId) {\n announcementDraftData = await getAnnouncementDraft(announcementId);\n }\n\n if (templateId) {\n announcementDraftData = await getTemplateAnnouncementDraft(templateId);\n }\n\n const announcementData = !announcementDraftData && await getAnnouncement(announcementId);\n\n if (!announcementDraftData && !announcementData) throw new Error('Announcement data is not found');\n\n this.announcementRenderer.renderAnnouncement(\n announcementDraftData || announcementData,\n callback,\n );\n } catch (error) {\n console.error('[announcementManager][showAnnouncementPreview] Error while showing announcement preview', error);\n }\n };\n\n defineParentContentKey = async () => {\n this.currentParentContentKey = await getCurrentParentContentKey();\n\n checkIsNodeMounted(window.AJS.Confluence ? '.space-logo' : '.jira-project-avatar', async () => {\n console.log('currentParentContentKey will be redefined, image with parent content key info found');\n\n this.lastAnnouncementRequestTime = null;\n this.currentParentContentKey = await getCurrentParentContentKey();\n\n this.stopAnnouncementsCheck();\n this.startAnnouncementsCheck();\n\n await this.getPinnedAnnouncements();\n this.initPinnedAnnouncements();\n });\n };\n\n init = async () => {\n this.sendLoginFormAnswers();\n\n if (!checkIsPreviewPage()) {\n await this.defineParentContentKey();\n\n this.startAnnouncementsCheck();\n\n new UserActivity(this.stopAnnouncementsCheck, this.startAnnouncementsCheck, TIMEOUT_BEFORE_IDLE_IN_SECONDS);\n }\n };\n\n initPinnedAnnouncements = async () => {\n if (this.pinnedAnnouncements.length > 0) {\n this.announcementRenderer.renderPinnedAnnouncements(this.pinnedAnnouncements, this.renderAnnouncement);\n }\n };\n\n initLoginForm = async () => {\n const isUserLoggedIn = checkIsUserLoggedIn();\n\n if (!isUserLoggedIn) {\n this.initLoginCheck();\n\n this.isInitialized = true;\n\n if (this.loginFormAnnouncements.length > 0) {\n this.announcementRenderer.renderLoginFormAnnouncements(\n this.loginFormAnnouncements,\n this.handleChangeLoginFormCheckbox,\n this.renderAnnouncement,\n this.initLoginCheck,\n );\n }\n }\n };\n\n initLoginCheck: InitLoginCheck = () => {\n // This button visible on login from dashboard\n const submitButton = document.querySelector('input#login');\n // This button visible on separate login form\n const loginFormSubmitButton = document.querySelector('#login-form-submit');\n\n // This button visible for Jira Service Management login\n const serviceManagementSubmitButton = document.querySelector('#js-login-submit');\n\n const confluenceLoginButton = document.querySelector('input#loginButton');\n\n (\n submitButton || loginFormSubmitButton\n || serviceManagementSubmitButton || confluenceLoginButton\n ).addEventListener('click', this.handleLogin);\n };\n}\n"],"names":["assign","obj","props","key","createError","err","code","_","ErrClass","module","errcode","retry","hasOwn","isRetryError","promiseRetry","fn","options","temp","operation","resolve","reject","number","RetryOperation","exports","timeouts","opts","i","a","b","attempt","random","timeout","methods","method","original","op","args","callback","currentTime","self","timer","timeoutOps","counts","mainError","mainErrorCount","error","message","count","TransportController","instanceType","data","responseJSON","errorData","errorMessages","isExtraParameterExist","url","maxResults","startAt","requestData","loadingCallback","fieldName","type","isPost","resultRequestData","firstRequestResult","bodyData","total","field","acc","cur","resultsLength","resultData","newResultRequestData","requestResult","result","pagesCount","startAtArray","item","index","currentStartAt","requestForStartAt","finalRequestData","tasks","promiseAllWithConcurrency","config","query","migration","headers","allPages","allPagesConcurrently","allPagesParallel","contentType","requestUrl","Transport","checkIsUserLoggedIn","AJS","metaForUser","getProjectKeyFromSearch","getProjectKeyFromIssue","issueKey","projectKey","getProjectKeyFromIcon","projectIcon","splitted","getSpaceKeyFromLogo","spaceLogo","dataset","getCurrentParentContentKey","isServiceManagement","confluenceMetaKey","confluenceKeyFromLogo","firstIndex","lastIndex","portalId","dataObj","portalData","portalProjectKey","projectKeyFromSearch","projectKeyFromIssue","projectKeyFromIcon","UserActivity","onUserLeft","onUserReturnBack","secondsBeforeIdle","isUserActive","t","i18n","TIMEOUT_BEFORE_IDLE_IN_SECONDS","AnnouncementManager","interval","announcementRenderer","answersStorage","e","currentTarget","announcementId","isChecked","announcementToChange","id","isLoginFormAnnouncementsChecked","notCheckedAnnouncements","notCheckedAnnouncementsNames","name","isAcceptAllNotification","loginFormAnnouncements","prevUserAnswers","formattedLoginFormAnnouncements","announcement","announcementData","isAccepted","userFeedback","isSubmitted","announcementIndex","questionnaire","announcementCheckbox","isLoginFormAnnouncement","now","answers","value","params","announcementDraftData","templateId","submitButton","loginFormSubmitButton","serviceManagementSubmitButton","confluenceLoginButton"],"sourceRoot":""}