{"version":3,"file":"js/lib-rfdui-883cbedb121dd442d145.js","mappings":"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","sources":["webpack://AYTM/./node_modules/autobind-decorator/lib/esm/index.js","webpack://AYTM/./app/_stock/webpack/app/survey/editor/styles/content/PopupHelper.module.scss?6762","webpack://AYTM/./app/_stock/webpack/app/survey/editor/components/content/PopupHelper.jsx","webpack://AYTM/./app/_stock/webpack/lib/AsyncJobManager/jobs/assets/ImageAssetUploadJob.js","webpack://AYTM/./app/_stock/webpack/lib/AsyncJobManager/jobs/assets/VideoAssetUploadJob.js","webpack://AYTM/./app/_stock/webpack/lib/common/content-editable.js","webpack://AYTM/./app/_stock/webpack/lib/common/upload-with-progress.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/autocomplete.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/color-complex.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/color-palette.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/color-picker-popup.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/color-picker.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/image-gallery.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/pagination.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/range-slider.jsx","webpack://AYTM/./app/_stock/webpack/lib/common/moment-duration-format.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/survey-estimator.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/tabbed-sidebar.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/tags-list.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/toggle.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/tutorial-video-list.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/assets/jobs/video-asset-upload-manager.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/assets/asset-files-uploader.module.scss?fad6","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/assets/asset-files-uploader.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/assets/jobs/image-asset-upload-manager.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/assets/upload-assets-button.module.scss?2991","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/assets/upload-assets-button.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/autosized-input.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/dropdown.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/hover-target.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/inline-search.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/multi-select.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/scroll-bar.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/static-block.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/text-popup.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/payment/checkout.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/payment/stripe-ach.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/payment/update-stripe-credit-card.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/swidget/image-item.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/swidget/smileys.tsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/swidget/stars.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/target-market/sample-size.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/lib/outer-click-listener.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/export.val-loaded.js","webpack://AYTM/./node_modules/primereact/overlaypanel/overlaypanel.esm.js","webpack://AYTM/./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","webpack://AYTM/./node_modules/rxjs/_esm5/internal/operators/mapTo.js","webpack://AYTM/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://AYTM/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nexport function boundMethod(target, key, descriptor) {\n var fn = descriptor.value;\n\n if (typeof fn !== 'function') {\n throw new TypeError(\"@boundMethod decorator can only be applied to methods not: \".concat(_typeof(fn)));\n } // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n\n\n var definingProperty = false;\n return {\n configurable: true,\n get: function get() {\n // eslint-disable-next-line no-prototype-builtins\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key) || typeof fn !== 'function') {\n return fn;\n }\n\n var boundFn = fn.bind(this);\n definingProperty = true;\n Object.defineProperty(this, key, {\n configurable: true,\n get: function get() {\n return boundFn;\n },\n set: function set(value) {\n fn = value;\n delete this[key];\n }\n });\n definingProperty = false;\n return boundFn;\n },\n set: function set(value) {\n fn = value;\n }\n };\n}\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\n\nexport function boundClass(target) {\n // (Using reflect to get all keys including symbols)\n var keys; // Use Reflect if exists\n\n if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n keys = Reflect.ownKeys(target.prototype);\n } else {\n keys = Object.getOwnPropertyNames(target.prototype); // Use symbols if support is provided\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n }\n }\n\n keys.forEach(function (key) {\n // Ignore special case target method\n if (key === 'constructor') {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key); // Only methods need binding\n\n if (typeof descriptor.value === 'function') {\n Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n }\n });\n return target;\n}\nexport default function autobind() {\n if (arguments.length === 1) {\n return boundClass.apply(void 0, arguments);\n }\n\n return boundMethod.apply(void 0, arguments);\n}","// extracted by mini-css-extract-plugin\nexport default {\"minPlaceholderHeight\":\"34\",\"indent0\":\"39\",\"indent1\":\"72\",\"indent2\":\"105\",\"indent3\":\"138\",\"component\":\"PopupHelper-module__component___2XEgx rfd-ui-popup-notification surveyeditor-PopupHelper\"};","// lib\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport Popup from '@aytm/lib/rfd-ui/components/basic/popup'\n\n// styles\nimport style from '@aytm/app/survey/editor/styles/content/PopupHelper.module.scss'\n\n// \nPopupHelper.propTypes = {\n width: PropTypes.string,\n trigger: PropTypes.string,\n children: PropTypes.func.isRequired,\n direction: PropTypes.string,\n popupOffset: PropTypes.number\n}\nexport default function PopupHelper(props) {\n const { width = '350px', direction = 'topright', trigger = 'click', children, popupOffset = 13, ...restProps } = props\n return (\n \n \n \n )\n}\n","import ProgressivePromise from '@aytm/lib/AsyncJobManager/ProgressivePromise'\nimport railsPostFetch, { getCSRFToken } from '@aytm/lib/common/rails-post-fetch'\nimport fetch from 'isomorphic-fetch'\nimport uploadWithProgress from '@aytm/lib/common/upload-with-progress'\nimport { headersFromGoogleUploadUrl } from '@aytm/lib/common/google-cloud-url'\n\nexport default function ImageAssetUploadJob({ createAssetPath, file, params = {} } = {}) {\n return () =>\n new ProgressivePromise((resolve, reject, progress) => {\n const totalProgress = file.size\n // CREATE ASSET\n\n progress(0, totalProgress) // set progress to 0\n\n const createParams = Object.assign({}, params, {\n filename: file.name,\n content_type: file.type,\n filesize: file.size\n })\n const asset = {}\n\n railsPostFetch(createAssetPath, {\n body: JSON.stringify(createParams)\n })\n .then(response => (response.ok ? response.json() : {}))\n\n // UPLOAD IMAGE\n .then(createdAsset => {\n Object.assign(asset, createdAsset)\n\n if (\n !asset.uid ||\n 'uploading' !== asset.status ||\n !asset.upload_urls ||\n !asset.upload_urls.binary_upload_url ||\n !asset.upload_urls.finish_upload_url ||\n !asset.upload_urls.status_upload_url\n ) {\n return Promise.reject(new Error('createAsset - invalid response data'))\n }\n\n return uploadWithProgress(\n asset.upload_urls.binary_upload_url,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type,\n ...headersFromGoogleUploadUrl(asset.upload_urls.binary_upload_url)\n },\n body: file\n },\n progressEvent => {\n progress(Math.round(progressEvent.loaded * 0.9), totalProgress) // set progress for uploaded bytes with correction 100% -> 90%\n }\n )\n })\n\n // FINISH UPLOAD\n .then(() =>\n fetch(asset.upload_urls.finish_upload_url, {\n method: 'POST',\n headers: {\n 'X-CSRF-Token': getCSRFToken()\n },\n mode: 'cors'\n })\n )\n\n // CHECK STATUS\n .then(finishResponse => {\n if (finishResponse.ok) {\n progress(Math.round(file.size * 0.95), totalProgress) // set progress to 95%\n return new Promise((resolve, reject) => {\n const checkStatus = () => {\n fetch(asset.upload_urls.status_upload_url, {\n method: 'POST',\n mode: 'cors',\n headers: {\n 'X-CSRF-Token': getCSRFToken()\n },\n Accept: 'application/json'\n })\n .then(response => (response.ok ? response.json() : {}))\n .then(assetStatus => {\n switch (assetStatus.status) {\n case 'ready':\n case 'source_valid': {\n progress(totalProgress, totalProgress) // set progress to 100%\n resolve(\n Object.assign({}, asset, assetStatus, {\n status: 'ready',\n fileName: file.name,\n contentType: file.type,\n fileSize: file.size\n })\n )\n break\n }\n case 'processing': {\n setTimeout(checkStatus, 1000)\n break\n }\n default: {\n reject(assetStatus)\n break\n }\n }\n })\n .catch(_error => {\n setTimeout(checkStatus, 1000)\n })\n }\n setTimeout(checkStatus, 500)\n })\n } else {\n return Promise.reject(new Error('unable to finish upload'))\n }\n })\n .then(resolve, reject)\n .catch(error => reject(error))\n })\n}\n","import ProgressivePromise from '@aytm/lib/AsyncJobManager/ProgressivePromise'\nimport railsPostFetch, { getCSRFToken } from '@aytm/lib/common/rails-post-fetch'\nimport fetch from 'isomorphic-fetch'\nimport uploadWithProgress from '@aytm/lib/common/upload-with-progress'\nimport { headersFromGoogleUploadUrl } from '@aytm/lib/common/google-cloud-url'\n\nexport default function VideoAssetUploadJob({ createAssetPath, file, params = {} } = {}) {\n return () =>\n new ProgressivePromise((resolve, reject, progress) => {\n const totalProgress = file.size\n // CREATE ASSET\n\n progress(0, totalProgress) // set progress to 0\n\n const createParams = Object.assign({}, params, {\n filename: file.name,\n content_type: file.type,\n filesize: file.size\n })\n const asset = {}\n\n railsPostFetch(createAssetPath, {\n body: JSON.stringify(createParams)\n })\n .then(response => (response.ok ? response.json() : {}))\n\n // UPLOAD VIDEO\n .then(createdAsset => {\n Object.assign(asset, createdAsset)\n\n if (\n !asset.uid ||\n 'uploading' !== asset.status ||\n !asset.upload_urls ||\n !asset.upload_urls.binary_upload_url ||\n !asset.upload_urls.finish_upload_url ||\n !asset.upload_urls.status_upload_url\n ) {\n return Promise.reject(new Error('createAsset - invalid response data'))\n }\n\n return uploadWithProgress(\n asset.upload_urls.binary_upload_url,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type,\n ...headersFromGoogleUploadUrl(asset.upload_urls.binary_upload_url)\n },\n body: file\n },\n progressEvent => {\n progress(Math.round(progressEvent.loaded * 0.5), totalProgress) // set progress for uploaded bytes with correction 100% -> 50%\n }\n )\n })\n\n // FINISH UPLOAD\n .then(() =>\n fetch(asset.upload_urls.finish_upload_url, {\n method: 'POST',\n mode: 'cors',\n headers: {\n 'X-CSRF-Token': getCSRFToken()\n }\n })\n )\n\n // CHECK STATUS\n .then(finishResponse => {\n if (finishResponse.ok) {\n let processingVirtualProgress = 0.55\n progress(Math.round(totalProgress * processingVirtualProgress), totalProgress) // set progress to 55%\n return new Promise((resolve, reject) => {\n const checkStatus = () => {\n fetch(asset.upload_urls.status_upload_url, {\n method: 'POST',\n mode: 'cors',\n headers: {\n 'X-CSRF-Token': getCSRFToken()\n },\n Accept: 'application/json'\n })\n .then(response => (response.ok ? response.json() : {}))\n .then(assetStatus => {\n switch (assetStatus.status) {\n case 'ready':\n case 'source_valid': {\n progress(totalProgress, totalProgress) // set progress to 100%\n resolve(\n Object.assign({}, asset, assetStatus, {\n status: 'ready',\n fileName: file.name,\n contentType: file.type,\n fileSize: file.size\n })\n )\n break\n }\n case 'processing': {\n processingVirtualProgress = Math.min(processingVirtualProgress + 0.05, 0.9)\n progress(totalProgress * processingVirtualProgress, totalProgress) // set progress to processingVirtualProgress%\n setTimeout(checkStatus, 2000)\n break\n }\n default: {\n reject(assetStatus)\n break\n }\n }\n })\n .catch(_error => {\n setTimeout(checkStatus, 2000)\n })\n }\n setTimeout(checkStatus, 2000)\n })\n } else {\n return Promise.reject(new Error('unable to finish upload'))\n }\n })\n .then(resolve, reject)\n .catch(error => reject(error))\n })\n}\n","// contentEditable tools\n\nexport function getVisualSelection(node) {\n const nodeDocument = null == node ? document : node.ownerDocument\n const nodeWindow = null == nodeDocument ? window : nodeDocument.defaultView\n if (null != node && nodeDocument.activeElement === node) {\n const selection = nodeWindow.getSelection()\n if (selection.rangeCount >= 1) {\n const range = selection.getRangeAt(0)\n const selectionStart = findVisualSelectionOffsetFromRangeNode(node, range.startContainer, range.startOffset)\n const selectionEnd = range.collapsed\n ? selectionStart\n : findVisualSelectionOffsetFromRangeNode(node, range.endContainer, range.endOffset)\n return [selectionStart, selectionEnd]\n }\n }\n return [null, null]\n}\n\nexport function setVisualSelection(node, start, end = start) {\n const nodeDocument = null == node ? document : node.ownerDocument\n const nodeWindow = null == nodeDocument ? window : nodeDocument.defaultView\n if (null != node && nodeDocument.activeElement === node && start >= 0 && end >= 0) {\n const [normalizedStart, normalizedEnd] = end < start ? [end, start] : [start, end]\n const range = nodeDocument.createRange()\n const { node: rangeStartNode, offset: rangeStartOffset } = findRangeNodeForVisualSelectionOffset(\n node,\n normalizedStart\n )\n range.setStart(rangeStartNode, rangeStartOffset)\n if (normalizedEnd !== normalizedStart) {\n const { node: rangeEndNode, offset: rangeEndOffset } = findRangeNodeForVisualSelectionOffset(node, normalizedEnd)\n range.setEnd(rangeEndNode, rangeEndOffset)\n } else {\n range.setEnd(rangeStartNode, rangeStartOffset)\n range.collapse(true)\n }\n const selection = nodeWindow.getSelection()\n selection.removeAllRanges()\n selection.addRange(range)\n }\n}\n\nexport function getNodeVisualLength(node) {\n if (node.hasChildNodes()) {\n let nodeLength = 0\n const childNodes = node.childNodes\n for (const childNode of childNodes) {\n nodeLength += getNodeVisualLength(childNode)\n }\n return nodeLength\n } else {\n switch (node.nodeType) {\n case Node.TEXT_NODE: {\n return (node.textContent || '').length\n }\n case Node.ELEMENT_NODE: {\n // collapsed element\n switch (node.tagName ? node.tagName.toLowerCase() : '') {\n case 'span':\n case 'div': {\n return (node.textContent || '').length\n }\n default: {\n return Math.max(1, (node.textContent || '').length)\n }\n }\n }\n default: {\n return 0\n }\n }\n }\n}\n\nexport function findVisualSelectionOffsetFromRangeNode(rootNode, rangeNode, rangeNodeOffset) {\n if (rootNode === rangeNode) {\n if (rootNode.hasChildNodes()) {\n let currentVisualOffset = 0\n const childNodes = rootNode.childNodes\n for (let i = 0; i < childNodes.length && i < rangeNodeOffset; i++) {\n currentVisualOffset += getNodeVisualLength(childNodes[i])\n }\n return currentVisualOffset\n } else {\n return rangeNodeOffset\n }\n } else if (rootNode.hasChildNodes()) {\n let currentVisualOffset = 0\n const searchPath = [rootNode.childNodes[0]]\n while (0 < searchPath.length) {\n const tailIndex = searchPath.length - 1\n const currentNode = searchPath[tailIndex]\n if (rangeNode === currentNode) {\n // rangeNode found\n return currentVisualOffset + findVisualSelectionOffsetFromRangeNode(currentNode, rangeNode, rangeNodeOffset)\n } else if (null == currentNode) {\n // at the end of children list\n searchPath.pop()\n const parentNodeIndex = searchPath.length - 1\n if (0 <= parentNodeIndex) {\n const parentNode = searchPath[parentNodeIndex]\n searchPath[parentNodeIndex] = null == parentNode ? null : parentNode.nextSibling\n }\n } else if (currentNode.hasChildNodes()) {\n // go deeper\n searchPath.push(currentNode.childNodes[0])\n } else {\n // count this node and move forward\n searchPath[tailIndex] = currentNode.nextSibling\n currentVisualOffset += getNodeVisualLength(currentNode)\n }\n }\n return currentVisualOffset\n } else {\n return getNodeVisualLength(rootNode)\n }\n}\n\nexport function findRangeNodeForVisualSelectionOffset(rootNode, visualOffset) {\n if (0 === visualOffset) {\n return {\n node: rootNode,\n offset: 0\n }\n } else if (rootNode.hasChildNodes()) {\n let currentVisualOffset = visualOffset\n const searchPath = [rootNode.childNodes[0]]\n while (0 < searchPath.length) {\n const tailIndex = searchPath.length - 1\n const currentNode = searchPath[tailIndex]\n if (null == currentNode) {\n // at the end of children list\n searchPath.pop()\n const parentNodeIndex = searchPath.length - 1\n if (0 <= parentNodeIndex) {\n const parentNode = searchPath[parentNodeIndex]\n searchPath[parentNodeIndex] = null == parentNode ? null : parentNode.nextSibling\n }\n } else if (currentNode.hasChildNodes()) {\n // go deeper\n searchPath.push(currentNode.childNodes[0])\n } else {\n // count this node and possibly move forward\n const currentNodeLength = getNodeVisualLength(currentNode)\n if (0 > currentVisualOffset - currentNodeLength) {\n // offset inside node\n return findRangeNodeForVisualSelectionOffset(currentNode, currentVisualOffset)\n } else if (currentVisualOffset === currentNodeLength) {\n // offset after node\n searchPath.pop()\n const parentNodeIndex = searchPath.length - 1\n if (0 <= parentNodeIndex) {\n let currentOffset = 0\n const parentNode = searchPath[parentNodeIndex]\n for (let i = 0; i < parentNode.childNodes.length; i++) {\n if (parentNode.childNodes[i] === currentNode) {\n return {\n node: parentNode,\n offset: currentOffset + 1\n }\n }\n currentOffset++\n }\n }\n } else {\n currentVisualOffset -= currentNodeLength\n }\n searchPath[tailIndex] = currentNode.nextSibling\n }\n }\n // offset overflow - set it to the end\n return {\n node: rootNode,\n offset: rootNode.childNodes.length\n }\n } else {\n return {\n node: rootNode,\n offset: visualOffset\n }\n }\n}\n\nexport function setSelectionAtEnd(contentEditableEl) {\n try {\n const nodeDocument = null == contentEditableEl ? document : contentEditableEl.ownerDocument\n const nodeWindow = null == nodeDocument ? window : nodeDocument.defaultView\n const range = nodeDocument.createRange()\n range.selectNodeContents(contentEditableEl)\n range.collapse(false)\n const selection = nodeWindow.getSelection()\n selection.removeAllRanges()\n selection.addRange(range)\n } catch {\n //\n }\n}\n","/* globals XDomainRequest */\nexport default function uploadWithProgress(url, data = {}, onProgress) {\n return new Promise((resolve, reject) => {\n let xhr = new XMLHttpRequest()\n if (data.withCredentials) {\n if ('withCredentials' in xhr) {\n xhr.open(data.method || 'POST', url, true)\n } else if ('undefined' !== typeof XDomainRequest) {\n xhr = new XDomainRequest()\n xhr.open(data.method || 'POST', url)\n } else {\n xhr = null\n reject(new Error('CORS not supported'))\n }\n } else {\n xhr.open(data.method || 'POST', url, true)\n }\n if (xhr) {\n Object.keys(data.headers || {}).forEach(headerKey => {\n xhr.setRequestHeader(headerKey, data.headers[headerKey])\n })\n xhr.withCredentials = data.withCredentials || false\n xhr.onload = event => resolve(event.target.responseText)\n xhr.onerror = reject\n if (xhr.upload && onProgress) xhr.upload.onprogress = onProgress\n xhr.send(data.body)\n }\n })\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { List, Map, fromJS } from 'immutable'\nimport { DOMfindParent, stopEvent } from '@aytm/lib/common/func'\nimport TextField from '@aytm/lib/rfd-ui/components/basic/text-field'\nimport LoaderWave from '@aytm/lib/rfd-ui/components/basic/loader-wave'\nimport Select from '@aytm/lib/rfd-ui/components/basic/select'\nimport railsPostFetch from '@aytm/lib/common/rails-post-fetch'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/autocomplete.scss'\nimport '@aytm/lib/rfd-ui/styles/basic/select.scss'\n\nconst DEFAULT_LIST_MAXHEIGHT = 200\n\nexport default class AutocompleteInput extends Select {\n static propTypes = {\n placeholder: PropTypes.string,\n updateURL: PropTypes.string,\n width: PropTypes.number,\n debounce: PropTypes.number,\n listMaxHeight: PropTypes.number,\n highlight: PropTypes.bool,\n clearOnSelect: PropTypes.bool,\n onSearch: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n value: '',\n opened: false,\n options: List(),\n loading: false\n }\n\n this.updating = false\n this.debounceTimeout = null\n this.debounce = props.debounce >= 0 ? props.debounce : 1000\n this.options = null\n this.page = 0\n this.more = false\n }\n\n @autobind\n onFocus() {\n this.setState({ opened: true })\n }\n\n @autobind\n onBlur() {\n this.setState({ opened: false })\n }\n\n @autobind\n formatOptionsList(options) {\n const regex = new RegExp(`(${this.state.value.replace(/[$()*+.?[\\\\\\]^{|}]/g, `\\\\$&`)})`, `gi`)\n return options.map(o => {\n const text =\n Map.isMap(o) && o.get('text')\n ? this.props.highlight\n ? o.get('text').replace(regex, `$1`)\n : o.get('text')\n : o\n const category = Map.isMap(o) && o.get('category') ? `${o.get('category')}: ` : ``\n const span = `${category}${text}`\n\n return Map({\n id: Map.isMap(o) && o.get('id') ? o.get('id') : o,\n category: Map.isMap(o) && o.get('category') ? o.get('category') : '',\n value: Map.isMap(o) && o.get('text') ? o.get('text') : o,\n span: span\n })\n })\n }\n\n @autobind\n selectOption(option) {\n if (Map.isMap(option)) {\n option && 'function' == typeof this.props.onSelect && this.props.onSelect(option)\n option &&\n this.setState({\n value: this.props.clearOnSelect ? `` : option,\n opened: false,\n loading: false,\n options: List()\n })\n }\n }\n\n @autobind\n onListScroll() {\n if (\n this.options &&\n this.options.scrollHeight - this.options.scrollTop - 5 <= (this.props.listMaxHeight || DEFAULT_LIST_MAXHEIGHT) &&\n this.more &&\n !this.updating\n ) {\n this.updating = true\n this.setState({ loading: true })\n this.getOptions(this.state.value, this.page)\n }\n }\n\n applyOptions(data, page) {\n const list = this.formatOptionsList(fromJS(data.options))\n const opts = page ? List([...this.state.options, ...list]) : list\n\n this.setState({\n options: opts,\n loading: data.more\n })\n\n const overflow = (opts.length + 1) * 29 >= (this.props.listMaxHeight || DEFAULT_LIST_MAXHEIGHT)\n this.more && !overflow && this.getOptions(this.state.value, this.page)\n }\n\n @autobind\n clickOptionList(event) {\n stopEvent(event)\n\n const optionElement = event.target\n ? DOMfindParent(event.target, i => i.className && i.className.split(/\\s+/).includes('rfd-ui-select-option'), 32)\n : null\n const optionIndex = optionElement ? optionElement.dataset.index : null\n\n if (null != optionIndex) {\n if (-1 == optionIndex) return false\n\n const optionIndexInt = parseInt(optionIndex, 10)\n if (!isNaN(optionIndexInt)) {\n const option = this.state.options.get(optionIndexInt)\n this.selectOption(option)\n }\n }\n\n return false\n }\n\n @autobind\n onChange(value) {\n if (value.length) {\n this.setState({\n loading: true,\n options: List()\n })\n\n if (this.debounce) {\n if (this.debounceTimeout) clearTimeout(this.debounceTimeout)\n this.debounceTimeout = setTimeout(() => {\n if (!this.mounted) return\n this.debounceTimeout = null\n if ('function' == typeof this.props.onChange) this.props.onChange(value)\n this.getOptions(value, 0)\n }, this.debounce)\n } else {\n 'function' == typeof this.props.onChange && this.props.onChange(value)\n this.getOptions(value, 0)\n }\n\n if (this.options && this.options.scrollTop) this.options.scrollTop = 0\n this.setState({\n opened: true,\n value: value\n })\n } else\n this.setState({\n opened: false,\n value: value,\n loading: false,\n options: List()\n })\n }\n\n @autobind\n fetchOptions(value, page = 0) {\n if (this.props.updateURL) {\n const data = {\n text: value,\n page: page\n }\n return railsPostFetch(this.props.updateURL, {\n body: JSON.stringify(data)\n }).then(response => response.json())\n } else {\n if (this.props.onSearch) {\n const searchPromise = this.props.onSearch(value, page)\n if ('function' == typeof searchPromise.then) {\n return searchPromise\n }\n }\n return new Promise((_resolve, reject) => {\n reject('No source to update')\n })\n }\n }\n\n @autobind\n getOptions(text, page = 0) {\n this.fetchOptions(text, page)\n .then(data => {\n if (!this.mounted) return\n this.more = data.more\n this.page = page\n if (data.more) this.page += 1\n this.updating = false\n\n this.applyOptions(data, page)\n })\n .catch(_error => {\n //console.log(e)\n this.setState({ loading: false })\n })\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.debounce) this.debounce = nextProps.debounce\n }\n\n filteredOptions() {\n return this.state.options\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n if (this.debounceTimeout) clearTimeout(this.debounceTimeout)\n }\n\n render() {\n const { placeholder, width, className, listMaxHeight } = this.props\n const { opened, value, options, loading, keyboardIndex } = this.state\n\n return (\n
\n \n {opened &&\n ((options && options.size > 0) || loading) &&\n (() => (\n
\n {\n this.options = ul\n }}\n >\n {(() => {\n const optionsMap = options.map((o, oi) => (\n \n
\n \n ))\n const loadingSign = (\n
  • \n \n \n \n
  • \n )\n return loading ? optionsMap.set(optionsMap.size, loadingSign).toArray() : optionsMap.toArray()\n })()}\n \n
    \n ))()}\n
    \n )\n }\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport PropTypes from 'prop-types'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/color-complex.scss'\nimport useOuterClickListener from '@aytm/lib/rfd-ui/lib/outer-click-listener'\nimport { OverlayPanel } from 'primereact/overlaypanel'\n\nconst CLASS = 'rfd-ui-color-complex'\n\nconst palette = [\n { upper: { background: '#88d1cd', text: '#000000' }, lower: { background: '#c3e8e6', text: '#000000' } },\n { upper: { background: '#8db3d4', text: '#000000' }, lower: { background: '#c6d9ea', text: '#000000' } },\n { upper: { background: '#b9d376', text: '#000000' }, lower: { background: '#d6e5af', text: '#000000' } },\n { upper: { background: '#ffdd00', text: '#000000' }, lower: { background: '#8ab51a', text: '#000000' } },\n { upper: { background: '#ffdd00', text: '#000000' }, lower: { background: '#29abe2', text: '#000000' } },\n { upper: { background: null, text: '#000000' }, lower: { background: '#88d1cd', text: '#000000' } },\n { upper: { background: '#c3e8e6', text: '#000000' }, lower: { background: null, text: '#000000' } }\n]\n\nconst onPanelClick = event => event.stopPropagation()\n\nconst copy = obj => {\n if (!obj) return obj\n const res = {}\n if ('string' === typeof obj) return obj\n else if ('object' === typeof obj) for (const [key, value] of Object.entries(obj)) res[key] = copy(value)\n return res\n}\n\nconst ColorComplex = props => {\n const panelRef = useRef()\n const containerRef = useRef()\n const pickerRef = useRef()\n\n const lastColors = useRef(props.colors)\n\n const [show, setShow] = useState(false)\n const [custom, setCustom] = useState(false)\n\n const [colors, setColors] = useState(() => props.colors)\n\n useEffect(() => {\n if (JSON.stringify(props.colors) !== JSON.stringify(lastColors.current)) {\n lastColors.current = props.colors\n setColors(props.colors)\n }\n }, [props.colors])\n\n const onColorsClick = colors => () => {\n setShow(false)\n if (props.onSelect) {\n const newColors = copy(colors)\n props.onSelect({ name: props.name, colors: newColors })\n }\n }\n\n const onInputChange = type => event => {\n const inputColor = event.target.value\n const newColors = copy(colors)\n if ('upper.background' === type) newColors.upper.background = inputColor\n else if ('upper.text' === type) newColors.upper.text = inputColor\n else if ('lower.background' === type) newColors.lower.background = inputColor\n else if ('lower.text' === type) newColors.lower.text = inputColor\n setColors(newColors)\n if (CSS.supports('color', inputColor) && props.onSelect) {\n props.onSelect({ name: props.name, colors: newColors })\n }\n }\n\n const onInputKeyPress = event => {\n if (['escape', 'Enter'].includes(event.key)) {\n setShow(false)\n }\n }\n\n const onPickerClick = () => {\n if (!props.disabled) {\n if (show) {\n panelRef.current?.hide?.()\n }\n setTimeout(() => {\n setShow(!show)\n setTimeout(() => {\n if (!show) {\n panelRef.current?.show?.(null, pickerRef.current)\n }\n }, 10)\n }, 100)\n }\n }\n\n const onCustomClick = () => {\n setCustom(!custom)\n }\n\n const getClassName = (name, ...names) =>\n `${CLASS}-${name}${props.disabled ? ` ${CLASS}-${name}-disabled` : ''}${\n names.length ? names.map(v => ` ${CLASS}-${v}`) : ''\n }`\n\n const renderPicker = event => {\n const [upperBackground, lowerBackground] = [\n event.colors?.upper?.background || '#fff',\n event.colors?.lower?.background || '#fff'\n ]\n const [upperStyle, lowerStyle] = [\n upperBackground ? { backgroundColor: upperBackground } : null,\n lowerBackground ? { backgroundColor: lowerBackground } : null\n ]\n return (\n \n
    \n
    \n
    \n )\n }\n\n const renderPanel = () => {\n const containerRect = containerRef.current ? containerRef.current.getBoundingClientRect() : null\n const pickerRect = pickerRef.current ? pickerRef.current.getBoundingClientRect() : null\n const style =\n containerRect && pickerRect\n ? {\n // left: `${pickerRect.left - containerRect.left}px`,\n width: `${custom ? 2 * pickerRect.width : pickerRect.width}px`\n // top: `${containerRect.height + 4}px`\n }\n : {}\n const button = custom ? 'palette' : 'custom'\n let items = []\n if (custom) {\n items.push(\n
    \n {'Background:'}\n
    \n )\n items.push(\n
    \n \n \n
    \n )\n items.push(\n
    \n {'Text:'}\n
    \n )\n items.push(\n
    \n \n \n
    \n )\n } else {\n items = palette.map((colors, index) =>\n renderPicker({ colors, key: index, className: 'item', onClick: onColorsClick(colors) })\n )\n }\n\n return (\n \n
    \n {items}\n
    \n
    \n {button}\n
    \n
    \n \n )\n // return (\n //
    \n // {items}\n //
    \n //
    \n // {button}\n //
    \n //
    \n // )\n }\n\n const panel = show ? renderPanel() : null\n\n const label = props.label ?
    {props.label}
    : null\n\n const iconClass = show\n ? `icon-aytmfd-up ${CLASS}-icon ${CLASS}-icon-selector`\n : `icon-aytmfd-down ${CLASS}-icon ${CLASS}-icon-selector`\n\n const className = props.className ? `${CLASS} ${props.className}` : CLASS\n\n useOuterClickListener({ ref: panelRef, listen: show, onClick: () => setShow(false) })\n\n return (\n
    \n {label}\n {renderPicker({ colors: props.colors, ref: pickerRef, onClick: onPickerClick })}\n \n {panel}\n
    \n )\n}\n\nColorComplex.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n show: PropTypes.any,\n label: PropTypes.any,\n colors: PropTypes.object,\n disabled: PropTypes.any,\n onSelect: PropTypes.func,\n onClick: PropTypes.func\n}\n\nColorComplex.palette = palette\n\nexport default ColorComplex\n","import React, { useState, useRef, useEffect } from 'react'\nimport PropTypes from 'prop-types'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/color-palette.scss'\nimport useOuterClickListener from '@aytm/lib/rfd-ui/lib/outer-click-listener'\n\nconst CLASS = 'rfd-ui-color-palette'\n\nconst palette = [\n [null, '#88d1cd', '#29abe2', '#1c67aa', '#223d64'],\n ['#d9fc21', '#c2e021', '#8cc63f', '#009245', '#01502b'],\n ['#ffd700', '#fbb03b', '#ff7700', '#ed1c1c', '#c1272d'],\n ['#ce88bc', '#8c3375', '#683389', '#46338b', '#28056b'],\n ['#dddddd', '#cccccc', '#999999', '#666666', '#333333'],\n ['#e3f4f4', '#ded2e5', '#f4e3f4', '#e5ded2', '#d2e5de']\n]\n\nconst onPanelClick = event => event.stopPropagation()\n\nconst ColorPalette = props => {\n const panelRef = useRef()\n const containerRef = useRef()\n\n const [show, setShow] = useState(false)\n\n const [color, setColor] = useState(props.color)\n\n const onColorClick = event => {\n setShow(false)\n if (props.onSelect) props.onSelect({ name: props.name, color: event.color })\n }\n\n const onInputChange = event => {\n const inputColor = event.target.value\n setColor(inputColor)\n if (CSS.supports('color', inputColor) && props.onSelect) {\n props.onSelect({ name: props.name, color: inputColor })\n }\n }\n\n const onInputKeyPress = event => {\n if (['escape', 'Enter'].includes(event.key)) setShow(false)\n }\n\n const renderPanel = () => {\n const items = palette.map((row, rowIndex) => {\n const colors = row.map((col, colIndex) => {\n const panelColor = col || '#fff'\n const className = 0 === rowIndex && 0 === colIndex ? `${CLASS}-color ${CLASS}-color-empty` : `${CLASS}-color`\n return (\n onColorClick({ color: panelColor })}\n />\n )\n })\n return (\n
    \n {colors}\n
    \n )\n })\n\n items.push(\n \n )\n\n const rect = containerRef.current ? containerRef.current.getBoundingClientRect() : null\n const style = rect ? { right: 0, top: `${rect.height + 4}px` } : {}\n\n return (\n
    \n {items}\n
    \n )\n }\n\n const onClick = event => {\n event.stopPropagation()\n setShow(!show)\n }\n\n useEffect(() => {\n if (props.color !== color) setColor(color)\n }, [color, props.color])\n\n useOuterClickListener({ ref: panelRef, listen: show, onClick: () => setShow(false) })\n\n const panel = show ? renderPanel() : null\n\n const pickerStyle = { backgroundColor: props.color }\n\n const label = props.label ?
    {props.label}
    : null\n\n const iconClass = show\n ? `icon-aytmfd-up ${CLASS}-icon ${CLASS}-icon-selector`\n : `icon-aytmfd-down ${CLASS}-icon ${CLASS}-icon-selector`\n\n const className = props.className ? `${CLASS} ${props.className}` : CLASS\n\n return (\n
    \n {label}\n
    \n \n {panel}\n
    \n )\n}\n\nColorPalette.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n show: PropTypes.any,\n color: PropTypes.string,\n label: PropTypes.any,\n onSelect: PropTypes.func,\n onClick: PropTypes.func\n}\n\nexport default ColorPalette\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { fromEvent as ObservableFromEvent } from 'rxjs'\nimport { mergeMap as rxMergeMap, map as rxMap, takeUntil as rxTakeUntil } from 'rxjs/operators'\n\n// components\nimport { DOMElementRect } from '@aytm/lib/common/func'\n\nimport Portal from '@aytm/lib/rfd-ui/components/basic/portal'\nimport ColorPicker from 'lib/rfd-ui/components/advanced/color-picker'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/color-picker.scss'\n\nclass ColorPickerPopup extends Component {\n static propTypes = {\n target: PropTypes.any,\n color: PropTypes.string.isRequired,\n offsetTop: PropTypes.number,\n offsetLeft: PropTypes.number,\n container: PropTypes.any,\n readOnly: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClose: PropTypes.func\n }\n\n popup = null\n\n @autobind\n dragModal() {\n if (!this.popup) return\n\n const { container } = this.props\n const popup = this.popup\n const popupHeader = popup.querySelector('.rfd-ui-popup-header')\n\n if (popup && popupHeader) {\n const mouseup = ObservableFromEvent(document, 'mouseup')\n const mousemove = ObservableFromEvent(document, 'mousemove')\n const mousedown = ObservableFromEvent(popupHeader, 'mousedown')\n\n const mousedrag = mousedown.pipe(\n rxMergeMap(function (md) {\n // calculate start positions of modal window and cursor\n const popupRect = DOMElementRect(popup)\n\n const startX = md.clientX\n const startY = md.clientY\n\n // calculate delta with mousemove until mouseup\n return mousemove.pipe(\n rxMap(function (mm) {\n mm.preventDefault()\n let top = popupRect.top + mm.clientY - startY\n let left = popupRect.left + mm.clientX - startX\n if (container) {\n const containerRect = DOMElementRect(container)\n top = Math.min(containerRect.height - popupRect.height, Math.max(0, top))\n left = Math.min(containerRect.width - popupRect.width, Math.max(0, left))\n }\n return {\n top,\n left\n }\n }),\n rxTakeUntil(mouseup)\n )\n })\n )\n\n // update position\n this.subscription = mousedrag.subscribe(pos => {\n // TODO\n this.popup.style.top = `${pos.top}px`\n this.popup.style.left = `${pos.left}px`\n })\n\n const { target } = this.props\n if (target) {\n const { offsetTop, offsetLeft } = this.props\n const targetRect = DOMElementRect(target)\n const popupRect = DOMElementRect(popup)\n let top = targetRect.top + (offsetTop ? offsetTop : targetRect.height)\n let left = targetRect.left + (offsetLeft ? offsetLeft : targetRect.width)\n if (container) {\n const containerRect = DOMElementRect(container)\n top = Math.min(containerRect.height - popupRect.height, Math.max(0, top))\n left = Math.min(containerRect.width - popupRect.width, Math.max(0, left))\n }\n this.popup.style.top = `${top}px`\n this.popup.style.left = `${left}px`\n }\n }\n }\n\n @autobind\n closePopup() {\n const { onClose } = this.props\n if (onClose) {\n onClose()\n }\n }\n\n componentDidMount() {\n setTimeout(() => {\n this.dragModal()\n }, 0)\n }\n\n componentWillUnmount() {\n if (this.subscription) this.subscription.unsubscribe()\n }\n\n render() {\n const { color, readOnly, onChange } = this.props\n\n return (\n \n {\n this.popup = div\n }}\n >\n
    \n Color Picker\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n )\n }\n}\n\nexport default ColorPickerPopup\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { CustomPicker } from 'react-color'\nimport colorHelper from 'react-color/lib/helpers/color'\nimport { EditableInput, Saturation, Hue } from 'react-color/lib/components/common/'\n\n// components\nimport ManagedRenderComponent from '@aytm/lib/common/components/ManagedRenderComponent'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/color-picker.scss'\n\nexport class PointerSaturation extends ManagedRenderComponent {\n render() {\n return
    \n }\n}\n\nexport class PointerHue extends ManagedRenderComponent {\n render() {\n return (\n
    \n
    \n
    \n
    \n )\n }\n}\n\nclass ColorPicker extends Component {\n static propTypes = {\n color: PropTypes.string.isRequired,\n readOnly: PropTypes.bool,\n onChange: PropTypes.func.isRequired\n }\n\n @autobind\n onInputChange(value) {\n const { onChange } = this.props\n if (value.hex) {\n colorHelper.isValidHex(value.hex) && onChange(value)\n }\n }\n\n render() {\n const { color, readOnly, onChange } = this.props\n\n return (\n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n )\n }\n}\n\nexport default CustomPicker(ColorPicker)\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { List } from 'immutable'\nimport ImagePin from '@aytm/lib/rfd-ui/components/basic/image-pin'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/image-gallery.scss'\nimport classNames from 'classnames'\n\nImageGallery.propTypes = {\n imageList: PropTypes.instanceOf(List).isRequired,\n hideIcons: PropTypes.bool,\n value: PropTypes.number,\n onChange: PropTypes.func\n}\n\nexport function ImageGallery({ imageList, hideIcons, onChange, value } = {}) {\n const [current, setCurrent] = useState(value)\n const [opened, setOpened] = useState(0)\n\n const onClick = value => {\n if (onChange) onChange(imageList.getIn([value, 'original_url']), value)\n setCurrent(value)\n setOpened(value)\n }\n\n return (\n \n {hideIcons ? (\n \n ) : (\n imageList.map((image, i) => (\n
    \n {'view3d' == image.get('original_url') ? (\n
    onClick(i)}>\n \n
    \n ) : (\n \n )}\n
    \n ))\n )}\n
    \n )\n}\n\nexport default React.memo(ImageGallery, (prev, next) => prev.imageList === next.imageList)\n\nconst ImageGalleryItem = React.memo(\n props => {\n const { index, onChange, previewURL, baseUrl, withPopup } = props\n\n return (\n {\n onChange(index)\n }}\n />\n )\n },\n (prev, next) => prev.baseUrl === next.baseUrl\n)\n\nImageGalleryItem.displayName = 'ImageGalleryItem'\n\nImageGalleryItem.propTypes = {\n index: PropTypes.number.isRequired,\n baseUrl: PropTypes.string.isRequired,\n onChange: PropTypes.any.isRequired,\n withPopup: PropTypes.bool.isRequired,\n previewURL: PropTypes.any.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/paginator.scss'\n\nexport default class Pagination extends PureDataComponent {\n static propTypes = {\n page: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired,\n prefix: PropTypes.string,\n separator: PropTypes.string,\n disabled: PropTypes.bool,\n onPageChange: PropTypes.func.isRequired\n }\n\n @autobind\n onChange(index) {\n const { total, onPageChange } = this.props\n return null == index || 1 > index || total < index || 'function' != typeof onPageChange\n ? null\n : () => {\n onPageChange(index)\n return false\n }\n }\n\n render() {\n const { page, total, prefix = '', separator = ' of ', disabled } = this.props\n\n return (\n
    \n {total > 1 && (\n \n \n \n \n \n {' '}\n {prefix}\n {page + separator + total}{' '}\n \n \n \n \n \n )}\n
    \n )\n }\n}\n","// lib\nimport { List } from 'immutable'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { fromEvent as ObservableFromEvent, merge as rxMerge, EMPTY as EMPTY_OBSERVABLE } from 'rxjs'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport {\n takeUntil as rxTakeUntil,\n mergeMap as rxMergeMap,\n filter as rxFilter,\n mapTo as rxMapTo,\n map as rxMap\n} from 'rxjs/operators'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/range-slider.scss'\n\n//AYTM-2888 implement labels view with DOMElementRect()\n//import { DOMElementRect } from '@aytm/lib/common/func'\n\n// \nRangeSlider.propTypes = {\n fromValue: PropTypes.number,\n toValue: PropTypes.number,\n onUpdate: PropTypes.func,\n readOnly: PropTypes.bool,\n options: PropTypes.instanceOf(List).isRequired,\n showMarks: PropTypes.bool,\n // positions: PropTypes.array.isRequired,\n className: PropTypes.string,\n sliderWidth: PropTypes.number.isRequired, // pixels\n samePositionRange: PropTypes.bool\n}\nexport default React.memo(\n RangeSlider,\n (prevProps, nextProps) =>\n prevProps.options == nextProps.options &&\n prevProps.readOnly == nextProps.readOnly &&\n prevProps.className == nextProps.className &&\n prevProps.samePositionRange == nextProps.samePositionRange\n)\nfunction RangeSlider(props, _context) {\n const { options, readOnly, className, showMarks, sliderWidth, toValue, fromValue, onUpdate, samePositionRange } =\n props\n\n const positions = useMemo(() => options.toArray().map(option => option.get('text')), [options])\n\n const sliderStepSize = useMemo(() => sliderWidth / (positions.length - 1), [sliderWidth, positions.length])\n const getSliderPositionPX = useCallback(\n positionID => (sliderWidth / (positions.length - 1)) * positionID,\n [sliderWidth, positions.length]\n )\n const refGetSliderPositionPX = useRef(getSliderPositionPX)\n useEffect(() => void (refGetSliderPositionPX.current = getSliderPositionPX), [getSliderPositionPX])\n\n // FROM slider\n const refSliderFrom = useRef(null)\n const [from, setFromPosition] = useState(getPositionID('from', fromValue, options))\n\n // TO slider\n const refSliderTo = useRef(null)\n const [to, setToPosition] = useState(getPositionID('to', toValue, options))\n\n const refRangePX = useRef({ from: getSliderPositionPX(from), to: getSliderPositionPX(to) })\n const refRange = useRef({ from, to })\n const fromPX = refRangePX.current.from\n const toPX = refRangePX.current.to\n const refSliderBgStyle = useRef(getSliderBgStyle(refRangePX.current))\n\n // onUpdate\n const onUpdateCallback = useCallback(\n (from, to) => {\n onUpdate(options.getIn([from, 'value']), options.getIn([to, 'value']))\n },\n [onUpdate, options]\n )\n const refOnUpdate = useRef(onUpdateCallback)\n useEffect(() => void (refOnUpdate.current = onUpdateCallback), [onUpdateCallback])\n\n // drag slider subscription\n const unsubscribeRef = useRef(null)\n useEffect(() => {\n if (unsubscribeRef.current && 'function' == typeof unsubscribeRef.current) {\n unsubscribeRef.current()\n }\n if (!readOnly) {\n unsubscribeRef.current = dragSlider({\n refGetSliderPositionPX,\n samePositionRange,\n refSliderBgStyle,\n setFromPosition,\n sliderStepSize,\n setToPosition,\n refSliderFrom,\n refSliderTo,\n refOnUpdate,\n refRangePX,\n refRange,\n positionsLength: positions.length,\n readOnly\n })\n }\n }, [positions.length, readOnly, samePositionRange, sliderStepSize])\n\n const sliderRef = useRef(null)\n const onSliderClick = useCallback(\n event => {\n const slider = sliderRef.current.getBoundingClientRect()\n const id = Math.max(\n 0,\n Math.min(positions.length - 1, Math.round(((positions.length - 1) / slider.width) * (event.clientX - slider.x)))\n )\n if (Math.abs(id - from) >= Math.abs(id - to)) {\n refOnUpdate.current(from, id)\n refRange.current['to'] = id\n refRangePX.current['to'] = getSliderPositionPX(id)\n refSliderBgStyle.current = getSliderBgStyle(refRangePX.current)\n setToPosition(id)\n } else {\n refOnUpdate.current(id, to)\n refRange.current['from'] = id\n refRangePX.current['from'] = getSliderPositionPX(id)\n refSliderBgStyle.current = getSliderBgStyle(refRangePX.current)\n setFromPosition(id)\n }\n },\n [from, to, getSliderPositionPX, positions.length]\n )\n\n // * * * L O G * * *\n // console.log('bg:', refSliderBgStyle.current)\n // console.log(`range [${from}, ${to}]`, `[${fromPX}px, ${toPX}px]`)\n // console.log('positions:', positions)\n // console.log(`positions [${from}, ${to}]`, positions[from], positions[to])\n\n return (\n \n {showMarks && (\n
    \n {positions.map((_, index) => (\n \n ))}\n
    \n )}\n \n \n
    {renderArrow()}
    \n
    \n \n
    {renderArrow()}
    \n
    \n {renderLabels(fromPX, positions[from], toPX, positions[to])}\n
    \n )\n}\n\nfunction renderArrow() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction renderLabels(fromPX, fromLabel, toPX, toLabel) {\n const diff = fromPX - toPX\n if (30 > Math.abs(diff)) {\n const labelPosition = (0 >= diff ? fromPX : toPX) + Math.abs(diff / 2) - 23\n return (\n \n {0 == diff ? fromLabel : 0 < diff ? `${toLabel} - ${fromLabel}` : `${fromLabel} - ${toLabel}`}\n \n )\n }\n return (\n <>\n \n {fromLabel}\n \n \n {toLabel}\n \n \n )\n}\nfunction dragSlider(payload = {}) {\n const {\n refGetSliderPositionPX,\n samePositionRange,\n refSliderBgStyle,\n setFromPosition,\n sliderStepSize,\n setToPosition,\n refSliderFrom,\n refSliderTo,\n refOnUpdate,\n refRangePX,\n refRange,\n positionsLength,\n readOnly\n } = payload\n const sliderFromElement = refSliderFrom.current\n const sliderToElement = refSliderTo.current\n const rangePx = refRangePX.current\n const range = refRange.current\n const mousemove = document ? ObservableFromEvent(document, 'mousemove') : EMPTY_OBSERVABLE\n const mouseup = document ? ObservableFromEvent(document, 'mouseup') : EMPTY_OBSERVABLE\n const sliderFromMouseDown = sliderFromElement\n ? ObservableFromEvent(sliderFromElement, 'mousedown').pipe(\n rxMap(function (md) {\n return { md, sliderID: 'from' }\n })\n )\n : EMPTY_OBSERVABLE\n const sliderToMouseDown = sliderToElement\n ? ObservableFromEvent(sliderToElement, 'mousedown').pipe(\n rxMap(function (md) {\n return { md, sliderID: 'to' }\n })\n )\n : EMPTY_OBSERVABLE\n const clicks = rxMerge(\n sliderFromMouseDown.pipe(rxMapTo('sliderFromStartDrag')),\n sliderToMouseDown.pipe(rxMapTo('sliderToStartDrag')),\n mouseup.pipe(rxMapTo('stopDrag'))\n )\n const mousedrag = rxMerge(sliderFromMouseDown, sliderToMouseDown).pipe(\n rxMergeMap(function ({ md, sliderID } = {}) {\n const startX = md.clientX\n const startPositionID = range[sliderID]\n // calculate position\n return mousemove.pipe(\n rxMap(function (mm) {\n mm.preventDefault()\n const positionId = startPositionID + Math.round((mm.clientX - startX) / sliderStepSize)\n return {\n sliderID,\n // positionID: 0 > positionId ? 0 : positionId > positions.length - 1 ? positions.length - 1 : positionId\n positionID: 0 > positionId ? 0 : positionId > positionsLength - 1 ? positionsLength - 1 : positionId\n }\n }),\n rxFilter(\n ({ positionID }) =>\n range[sliderID] != positionID &&\n (samePositionRange || (!samePositionRange && positionID != range['from' == sliderID ? 'to' : 'from']))\n ),\n rxTakeUntil(mouseup)\n )\n })\n )\n\n // update slider position\n const dragSubscription = mousedrag.subscribe(({ sliderID, positionID }) => {\n range[sliderID] = positionID\n rangePx[sliderID] = refGetSliderPositionPX.current(positionID)\n refSliderBgStyle.current = getSliderBgStyle(rangePx)\n return 'from' == sliderID ? setFromPosition(positionID) : setToPosition(positionID)\n })\n\n // update cursor style & call update callback\n const clicksSubscription = clicks.subscribe(event => {\n if ('sliderFromStartDrag' == event) {\n sliderFromElement.style.cursor = 'grabbing'\n sliderFromElement.classList.toggle('active')\n }\n if ('sliderToStartDrag' == event) {\n sliderToElement.style.cursor = 'grabbing'\n sliderToElement.classList.toggle('active')\n }\n const activeSlider =\n 'grabbing' == sliderFromElement.style.cursor\n ? sliderFromElement\n : 'grabbing' == sliderToElement.style.cursor\n ? sliderToElement\n : null\n if (!readOnly && 'stopDrag' == event && activeSlider) {\n if ('function' == typeof refOnUpdate.current) {\n refOnUpdate.current(Math.min(range.from, range.to), Math.max(range.from, range.to))\n }\n activeSlider.classList.toggle('active')\n activeSlider.style.cursor = 'grab'\n }\n })\n\n return () => {\n clicksSubscription.unsubscribe()\n dragSubscription.unsubscribe()\n }\n}\n\nfunction getSliderBgStyle({ from, to } = {}) {\n return {\n left: `${Math.min(from, to)}px`,\n width: `${Math.abs(from - to)}px`\n }\n}\nfunction getPositionID(sliderID, value, options) {\n if (!value) {\n return 'from' == sliderID ? 0 : options.size - 1\n }\n const foundID = options.findIndex(option => value == option.get('value'))\n return -1 < foundID ? foundID : 0\n // return options.reduce(\n // (prevID, _, currID) => (Math.abs(options[currID] - value) < Math.abs(positions[prevID] - value) ? currID : prevID),\n // 0\n // )\n}\n","import moment from 'moment'\nimport momentDurationFormatSetup from 'moment-duration-format'\nmomentDurationFormatSetup(moment)\n","// lib\nimport React, { useEffect, useRef, useState } from 'react'\nimport moment from 'moment'\nimport '@aytm/lib/common/moment-duration-format'\nimport { Map } from 'immutable'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { formatCurrency, padRight, unescapeHTML } from '@aytm/lib/common/func'\n\n// components\nimport LoaderWave from '@aytm/lib/rfd-ui/components/basic/loader-wave'\nimport PopupHelper from '@aytm/app/survey/editor/components/content/PopupHelper'\n\n// constants\nconst MAX_DIFFICULTY = 795\nconst MAX_METER_ANGLE = 268\nconst LOI_WARNING_TIME = 1440 // in seconds\nconst METER_TITLES = ['BLITZ', 'STREAMLINED', 'ROBUST', 'ADVANCED', 'SOPHISTICATED', 'SOPHISTICATED']\nconst loiFormat = loi => moment.duration(loi, 'seconds').format('mm:ss', { trim: false })\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/survey-estimator.scss'\n\n// \nSurveyEstimator.propTypes = {\n ir: PropTypes.string,\n loi: PropTypes.number,\n ttl: PropTypes.number,\n hidePrice: PropTypes.bool,\n price: PropTypes.number,\n phone: PropTypes.string,\n status: PropTypes.string.isRequired, // fetching | failed | ready\n message: PropTypes.string,\n panelsMode: PropTypes.oneOf(['blended', 'curated', 'default']),\n showPanelsMode: PropTypes.bool,\n showMeter: PropTypes.bool,\n deliveryBy: PropTypes.number,\n surveyType: PropTypes.string.isRequired,\n difficulty: PropTypes.number,\n respondents: PropTypes.number,\n customQuote: PropTypes.bool,\n customQuoteImage: PropTypes.string,\n targetingsOverlap: PropTypes.bool,\n onPriceClick: PropTypes.func,\n className: PropTypes.string,\n locale: PropTypes.instanceOf(Map).isRequired\n}\nexport default React.memo(\n SurveyEstimator,\n (prevProps, nextProps) =>\n prevProps.ir == nextProps.ir &&\n prevProps.loi == nextProps.loi &&\n prevProps.ttl == nextProps.ttl &&\n prevProps.hidePrice == nextProps.hidePrice &&\n prevProps.price == nextProps.price &&\n prevProps.phone == nextProps.phone &&\n prevProps.status == nextProps.status &&\n prevProps.message == nextProps.message &&\n prevProps.showMeter == nextProps.showMeter &&\n prevProps.panelsMode == nextProps.panelsMode &&\n prevProps.deliveryBy == nextProps.deliveryBy &&\n prevProps.surveyType == nextProps.surveyType &&\n prevProps.difficulty == nextProps.difficulty &&\n prevProps.respondents == nextProps.respondents &&\n prevProps.customQuote == nextProps.customQuote &&\n prevProps.customQuoteImage == nextProps.customQuoteImage &&\n prevProps.targetingsOverlap == nextProps.targetingsOverlap &&\n prevProps.onPriceClick == nextProps.onPriceClick &&\n prevProps.className == nextProps.className &&\n prevProps.locale == nextProps.locale\n)\nfunction SurveyEstimator(props, _context) {\n const { ttl, status, locale, showMeter, hidePrice, className, customQuote, surveyType, showPanelsMode } = props\n\n // delivery guarantee text\n const [ttlText, setTimeToLifeText] = useState(getTtlText(ttl, locale))\n const ttlInterval = useRef(0)\n const ttlCountdown = useRef(ttl ? ttl : 0)\n useEffect(() => {\n ttlCountdown.current = ttl\n if (ttlInterval.current) clearInterval(ttlInterval.current)\n if (0 < ttl) {\n setTimeToLifeText(getTtlText(ttl, locale))\n ttlInterval.current = setInterval(() => {\n const launchWithinSec = Math.max(0, ttlCountdown.current - 60)\n ttlCountdown.current = launchWithinSec\n\n if (0 == launchWithinSec) {\n if (ttlInterval.current) clearInterval(ttlInterval.current)\n ttlCountdown.current = 0\n ttlInterval.current = 0\n setTimeToLifeText(null)\n } else {\n setTimeToLifeText(getTtlText(launchWithinSec, locale))\n }\n }, 60000)\n } else {\n ttlInterval.current = 0\n }\n }, [locale, ttl])\n\n useEffect(() => () => ttlInterval.current && clearInterval(ttlInterval.current), [])\n\n const payload = { ...props, ttlText }\n const componentStyle = classNames('rfd-ui-survey-estimator', className, {\n ['rfd-ui-survey-estimator-custom-quota']: customQuote\n })\n\n return customQuote || 'failed' == status ? (\n // custom quote\n
    {renderCustomQuote(payload)}
    \n ) : 'panel' == surveyType ? (\n // panel survey\n
    \n {showMeter && renderComplexityMeter(payload)}\n \n {renderDeliveryDate(payload)}\n {renderPrice(payload)}\n {renderTargetingsOverlap(payload)}\n {renderFooter(payload)}\n {showPanelsMode && renderPanels(payload)}\n
    \n
    \n ) : (\n // list survey\n
    \n
    \n {renderPrice(payload)}\n {renderFooter(payload)}\n
    \n
    \n )\n}\n\nfunction getTtlText(ttl = 0, locale) {\n return ttl ? locale.get('launchTime').replace('{time}', formatLaunchTime(ttl)) : null\n}\n\n// loader\nfunction renderLoader() {\n return (\n
    \n \n
    \n )\n}\n\n// delivery date\nfunction renderDeliveryDate(payload = {}) {\n const { locale, status, ttlText, hidePrice, deliveryBy } = payload\n return hidePrice && 'fetching' == status ? (\n renderLoader()\n ) : 'failed' != status && deliveryBy && deliveryBy != 0 && ttlText ? (\n
    \n {ttlText &&
    }\n
    {formatDeliveryDate(deliveryBy, locale)}
    \n
    \n ) : null\n}\nfunction formatLaunchTime(launchTime) {\n const launchWithinDuration = moment.duration(launchTime, 's')\n return `${launchWithinDuration.hours()}h:${padRight(launchWithinDuration.minutes(), 2, '0')}m`\n}\nfunction formatDeliveryDate(date, locale) {\n const deliveryDateLocal = moment.unix(date)\n const currentDateLocal = moment()\n return (\n deliveryDateLocal.format('hh:mm A, ') +\n (() => {\n if (deliveryDateLocal.isSame(currentDateLocal, 'day')) {\n return locale.getIn(['date', 'today'])\n }\n if (deliveryDateLocal.isSame(currentDateLocal.add(1, 'day'), 'day')) {\n return locale.getIn(['date', 'tomorrow'])\n }\n return deliveryDateLocal.format('D MMM').toUpperCase()\n })()\n )\n}\n\n// customQuote\nfunction renderCustomQuote(payload = {}) {\n const { phone, status, locale, message, onPriceClick, customQuoteImage } = payload\n const customQuoteLocale = locale.get('customQuote')\n return (\n
    \n
    {customQuoteLocale.get('title')}
    \n {customQuoteImage && \"Custom}\n {'fetching' == status ? (\n
    \n \n
    \n ) : (\n \n )}\n {phone &&
    }\n {phone && (\n
    \n {phone}\n
    \n )}\n {renderFooter(payload)}\n
    \n )\n}\n\n// footer\nfunction renderFooter(payload = {}) {\n const { ir, loi, locale, respondents } = payload\n const irLocale = locale.get('ir')\n const loiLocale = locale.get('loi')\n const loiWarning = loi && LOI_WARNING_TIME < loi\n const respondentsLocale = locale.get('respondents')\n return (\n
    \n
    \n
    \n {respondentsLocale.get('label')}\n {respondents || '----'}\n
    \n
    \n {loiLocale.get('label')}\n {loi ? loiFormat(loi) : '----'}\n
    \n
    \n {irLocale.get('label')}\n {unescapeHTML(ir) || '–'}\n
    \n
    \n
    \n N\n \n
    \n
    \n LOI\n \n
    \n {loiWarning && (\n
    \n \n {Math.ceil(loi / 60)}\n
    min
    \n
    \n \n
    \n )}\n
    \n IR\n \n
    \n
    \n
    \n
    \n )\n}\n\n// total price\nfunction renderPrice(payload = {}) {\n const { price, locale, status, hidePrice, surveyType, onPriceClick } = payload\n return hidePrice ? null : 'fetching' == status || null == price ? (\n renderLoader()\n ) : (\n
    \n \n ${formatCurrency(price / 100).split('.')[0]}\n \n .{formatCurrency(price / 100).split('.')[1] || '00'}\n \n \n {0 < price ? locale.get('tax') : ''}\n \n {() =>
    }\n \n
    \n )\n}\n\n// targetings overlap\nfunction renderTargetingsOverlap(payload = {}) {\n const { phone, locale, targetingsOverlap } = payload\n return targetingsOverlap ? (\n
    \n \n
    {phone}
    \n
    \n ) : null\n}\n\nfunction renderPanels(payload = {}) {\n const { panelsMode, locale } = payload\n return 'curated' === panelsMode ? (\n
    \n
    {locale.getIn(['curated', 'text'])}
    \n \n {() =>
    }\n \n
    \n ) : 'blended' === panelsMode ? (\n
    \n
    {locale.getIn(['blended', 'text'])}
    \n \n {() =>
    }\n \n
    \n ) : null\n}\n\n// meter\nfunction renderComplexityMeter(payload = {}) {\n const { difficulty } = payload\n const arrowAngle = (MAX_METER_ANGLE / MAX_DIFFICULTY) * Math.min(difficulty, MAX_DIFFICULTY)\n const arrowSector = Math.min(Math.max(Math.ceil((arrowAngle - 1) / (MAX_METER_ANGLE / 12)), 1), 12)\n return (\n
    \n
    SAMPLE COMPLEXITY
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    {METER_TITLES[Math.ceil(arrowSector / 2) - 1]}
    \n
    \n )\n}\n","import PropTypes from 'prop-types'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/tabbed-sidebar.scss'\n\nexport { TabbedSidebar }\nexport default React.memo(\n TabbedSidebar,\n (prevProps, nextProps) =>\n prevProps.tabID === nextProps.tabID &&\n prevProps.defaultID === nextProps.defaultID &&\n prevProps.className === nextProps.className &&\n prevProps.tabs === nextProps.tabs &&\n prevProps.onTabChange === nextProps.onTabChange\n)\n\nconst TabbedSidebarTabsMemo = React.memo(\n TabbedSidebarTabs,\n (prevProps, nextProps) =>\n prevProps.tabIndex === nextProps.tabIndex &&\n prevProps.tabs === nextProps.tabs &&\n prevProps.className === nextProps.className &&\n prevProps.onTabChange === nextProps.onTabChange\n)\n\nTabbedSidebar.propTypes = {\n /**\n * Panel custom className\n */\n className: PropTypes.string,\n /**\n * Tab custom className\n */\n tabClassName: PropTypes.string,\n /**\n * Current tab id\n */\n tabID: PropTypes.string,\n /**\n * Default tab id\n */\n defaultID: PropTypes.string,\n /**\n * onTabChange callback\n * @param {string} tabID\n */\n onTabChange: PropTypes.func,\n /**\n * Sidebar tabs\n * @typedef {Object} Tabs\n * @property {string} id - tab id\n * @property {(function|ReactNode)} tab - what to render inside tab\n * @property {(function|ReactNode)} panel - what to render inside sidebar (function works as lazy render)\n */\n tabs: PropTypes.array.isRequired\n}\nfunction TabbedSidebar({ className, tabClassName, tabID, defaultID, tabs = [], onTabChange } = {}) {\n const [currentTabID, setCurrentTabID] = useState(tabID)\n const tabsIsArray = Array.isArray(tabs)\n let currentTabIndex = tabsIsArray ? tabs.findIndex(tab => tab.id === currentTabID) : -1\n if (currentTabID && -1 === currentTabIndex && tabsIsArray) {\n currentTabIndex = tabs.findIndex(tab => tab.id === defaultID)\n if (-1 === currentTabIndex) {\n currentTabIndex = 0\n }\n }\n const currentPanel =\n tabsIsArray && 0 <= currentTabIndex\n ? tabs[currentTabIndex] && tabs[currentTabIndex].panel\n ? 'function' === typeof tabs[currentTabIndex].panel\n ? tabs[currentTabIndex].panel()\n : tabs[currentTabIndex].panel\n : null\n : null\n const lastPropTabID = useRef(tabID)\n useEffect(() => {\n if (lastPropTabID.current !== tabID) {\n lastPropTabID.current = tabID\n setCurrentTabID(tabID)\n }\n }, [tabID])\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    {currentPanel}
    \n
    \n
    \n )\n}\n\nTabbedSidebarTabs.propTypes = {\n tabs: PropTypes.array.isRequired,\n setTabID: PropTypes.func.isRequired,\n tabIndex: PropTypes.number,\n onTabChange: PropTypes.func,\n className: PropTypes.string\n}\nfunction TabbedSidebarTabs({ className, setTabID, tabIndex, tabs = [], onTabChange } = {}) {\n // map tabs\n const tabElements = tabs.map((tab, thisTabIndex) => (\n = 0 && thisTabIndex === tabIndex + 1 ? ' rfd-ui-tabbed-sidebar-tab-next' : ''\n }`}\n onClick={() => {\n setTabID(tab.id)\n onTabChange && 'function' === typeof onTabChange && onTabChange(tab.id)\n }}\n role=\"tab\"\n aria-selected={tabIndex === thisTabIndex}\n key={thisTabIndex}\n >\n {'function' === typeof tab.tab ? tab.tab() : tab.tab}\n
    \n ))\n // add terminator\n tabElements.push(\n \n  \n
    \n )\n return tabElements\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { List, fromJS } from 'immutable'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/tags-list.scss'\n\nexport default class TagsList extends PureDataComponent {\n static propTypes = {\n tags: PropTypes.oneOfType([PropTypes.instanceOf(List), PropTypes.array]),\n onDelete: PropTypes.func\n }\n\n @autobind\n onDelete(tag, index) {\n const { onDelete } = this.props\n return 'function' == typeof onDelete\n ? () => {\n onDelete(tag, index)\n return false\n }\n : null\n }\n\n render() {\n const { tags } = this.props\n const tList = tags ? (List.isList(tags) ? tags : fromJS(tags)) : List()\n\n return (\n
    \n {tList &&\n (() =>\n tList\n .map((o, oi) => (\n
    \n \n {o.has('category') && {o.get('category')}: }\n {o.get('value') ? o.get('value') : o.get('text')}\n \n \n
    \n ))\n .toArray())()}\n
    \n )\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport { Map } from 'immutable'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/toggle.scss'\n\nconst TOGGLE_WIDTH = 36\nconst TOGGLE_BORDER_WIDTH = 16\n\nexport default class Toggle extends PureDataComponent {\n static propTypes = {\n width: PropTypes.number,\n value: PropTypes.number,\n left: PropTypes.instanceOf(Map),\n right: PropTypes.instanceOf(Map),\n label: PropTypes.string,\n theme: PropTypes.string,\n toggleWidth: PropTypes.number,\n disabled: PropTypes.bool,\n onChange: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n active: props.value == props.right.get('value') ? 1 : 0,\n position: 0\n }\n\n this.pinCaught = false\n this.moveTimeout = null\n this.active = 0\n this.toggleWidth = props.toggleWidth ? props.toggleWidth : TOGGLE_WIDTH\n }\n\n componentDidMount() {\n super.componentDidMount()\n\n this.setState({\n active: this.props.value,\n position: this.props.value * (this.toggleWidth - TOGGLE_BORDER_WIDTH)\n })\n\n document.addEventListener('mouseup', this.pinRelease)\n document.addEventListener('mousemove', this.pinMove)\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n super.UNSAFE_componentWillReceiveProps(nextProps)\n\n if (nextProps.value != this.props.value) {\n this.setActive(nextProps.value == nextProps.right.get('value') ? 1 : 0)\n }\n }\n\n @autobind\n setActive(val, position) {\n this.setState({\n active: val,\n position: position ? position : val * (this.toggleWidth - TOGGLE_BORDER_WIDTH)\n })\n }\n\n @autobind\n toggleClick(event) {\n this.setActiveState(event.nativeEvent.offsetX > this.toggleWidth / 2 ? 1 : 0)\n }\n\n @autobind\n setActiveState(val) {\n const { left, right, onChange } = this.props\n if ('function' == typeof onChange) {\n if (val != this.state.active) onChange(val ? right.get('value') : left.get('value'))\n this.active = val\n }\n this.setActive(val)\n }\n\n @autobind\n pinClick(event) {\n event.preventDefault()\n event.stopPropagation()\n return false\n }\n\n @autobind\n pinCatch() {\n this.pinCaught = true\n }\n\n @autobind\n pinMove(event) {\n if (this.pinCaught) {\n const refLeft = this.refToggle.getBoundingClientRect().left\n const x = Math.min(Math.max(event.clientX - refLeft, 0), this.toggleWidth)\n this.active = event.clientX > refLeft + this.toggleWidth / 2 ? 1 : 0\n const _this = this\n\n clearTimeout(this.moveTimeout)\n this.moveTimeout = setTimeout(() => {\n if (_this.pinCaught)\n _this.setState({ position: (x * (_this.toggleWidth - TOGGLE_BORDER_WIDTH)) / _this.toggleWidth })\n }, 15)\n }\n }\n\n @autobind\n pinRelease() {\n if (this.pinCaught) {\n this.pinCaught = false\n this.setActiveState(this.active)\n }\n }\n\n render() {\n const { width, theme, left, right, label, disabled } = this.props\n const { active, position } = this.state\n\n return (\n \n {!label && (\n {\n this.setActiveState(0)\n }\n : undefined\n }\n >\n
    \n \n {left.get('label')}\n
    \n
    \n )}\n \n \n \n \n \n \n \n {!label && (\n {\n this.setActiveState(1)\n }\n : undefined\n }\n >\n
    \n \n\n {right.get('label')}\n
    \n
    \n )}\n {label && (\n
    \n {\n this.setActiveState(active ? 0 : 1)\n }\n : undefined\n }\n >\n {label}\n \n
    \n )}\n
    \n )\n }\n}\n","// lib\nimport React, { useRef, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { List, Map } from 'immutable'\nimport { Transition } from 'react-transition-group'\nimport { secondsToMMSS } from '@aytm/lib/common/func'\n\n// components\nimport VideoPopup from '@aytm/lib/rfd-ui/components/basic/video-popup'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/tutorial-video-list.scss'\n\n// \nTutorialVideoList.propTypes = {\n tooltip: PropTypes.string,\n video: PropTypes.instanceOf(Map).isRequired,\n videoPoints: PropTypes.instanceOf(List).isRequired,\n videoNote: PropTypes.string,\n className: PropTypes.string,\n videoThumbnail: PropTypes.string,\n targetClassName: PropTypes.string\n}\nexport default function TutorialVideoList(props) {\n const { video, tooltip, className, targetClassName } = props\n\n const [opened, setOpened] = useState(false)\n const [showPopup, setShowPopup] = useState(false)\n const [startTime, setStartTime] = useState(0)\n\n const openedRef = useRef(opened)\n openedRef.current = opened\n\n const setPopup = ({ showPopup, startTime }) => {\n setShowPopup(showPopup)\n setStartTime(startTime)\n }\n\n const onButtonClick = () => {\n setOpened(!openedRef.current)\n setStartTime(0)\n }\n\n const onCloseButtonClick = () => {\n setOpened(false)\n setStartTime(0)\n }\n\n return (\n \n
    \n Tutorial video\n \n \n \n
    \n \n {status => (\n \n {renderVideoList({ ...props, setPopup, onCloseButtonClick })}\n
    \n )}\n \n setPopup({ showPopup: false, startTime: 0 })}\n videos={List().set(0, video)}\n show={showPopup}\n />\n
    \n )\n}\n\nfunction renderVideoList({ video, videoPoints, videoNote, videoThumbnail, setPopup, onCloseButtonClick }) {\n const videoLength = video.get('length')\n return (\n <>\n \n \n \n setPopup({ showPopup: true, startTime: 0 })}\n >\n \"video\n \n
    \n
    \n
    \n Tutorial video ({Number.isInteger(videoLength) ? secondsToMMSS(videoLength) : videoLength})\n
    \n
    {videoNote}
    \n
      \n {videoPoints.map((point, index) => (\n setPopup({ showPopup: true, startTime: point.get('time') })}\n className=\"rfd-ui-tutorial-video-list-video-points-link\"\n >\n {secondsToMMSS(point.get('time'))} – {point.get('text')}\n \n ))}\n
    \n
    \n \n )\n}\n","import GeneralVideoAssetUploadJob from '@aytm/lib/AsyncJobManager/jobs/assets/VideoAssetUploadJob'\nimport AsyncJobManager from '@aytm/lib/AsyncJobManager/AsyncJobManager'\n\nexport const VideoAssetUploadManager = AsyncJobManager({ concurrency: 2 })\n\nconst config = {\n createAssetPath: null,\n templateID: null,\n srcSurveyID: null\n}\n\nexport function configure({ createAssetPath, templateID, srcSurveyID } = {}) {\n config.createAssetPath = createAssetPath\n config.templateID = templateID\n config.srcSurveyID = srcSurveyID\n}\n\nexport function VideoAssetUploadJob(file) {\n return config.createAssetPath\n ? GeneralVideoAssetUploadJob({\n createAssetPath: config.createAssetPath,\n file,\n params: { template_id: config.templateID, src_survey_id: config.srcSurveyID }\n })\n : Promise.reject(new Error('VideoAssetUploadManager - createAssetPath not configured'))\n}\n\nexport default function upload(droppedFiles, onProgress) {\n const files = droppedFiles.slice(0, 100) // protect from mass upload\n return new Promise(resolve => {\n const uploadJobs = [...files].map(file => VideoAssetUploadJob(file))\n const fileTotalSizes = files.map(file => file.size || 0)\n const progress = {\n fileTotalSizes,\n fileLoadedSizes: Array.from({ length: files.length }),\n totalSize: fileTotalSizes.reduce((totalSize, fileSize) => totalSize + fileSize, 0),\n loadedSize: 0,\n totalFiles: files.length,\n loadedFiles: 0\n }\n VideoAssetUploadManager.queue(...uploadJobs).then(\n jobResults => {\n resolve(jobResults.map(result => ('done' === result.status ? result.result : null)).filter(x => x))\n },\n null,\n onProgress\n ? (type, fileIndex, loaded, total) => {\n // calculate progress\n switch (type) {\n case 'done': {\n progress.totalFiles = total\n progress.loadedFiles = loaded\n onProgress({\n percents: Math.round((progress.loadedSize * 100) / progress.totalSize),\n totalFiles: progress.totalFiles,\n loadedFiles: progress.loadedFiles,\n totalSize: progress.totalSize,\n loadedSize: progress.loadedSize\n })\n break\n }\n case 'progress': {\n progress.fileLoadedSizes[fileIndex] = loaded\n progress.fileTotalSizes[fileIndex] = total\n progress.totalSize = progress.fileTotalSizes.reduce(\n (fileSize, totalSize) => (totalSize ? fileSize + totalSize : fileSize),\n 0\n )\n progress.loadedSize = progress.fileLoadedSizes.reduce(\n (loadedSize, fileLoadedSize) => (fileLoadedSize ? loadedSize + fileLoadedSize : loadedSize),\n 0\n )\n onProgress({\n percents: Math.round((progress.loadedSize * 100) / progress.totalSize),\n totalFiles: progress.totalFiles,\n loadedFiles: progress.loadedFiles,\n totalSize: progress.totalSize,\n loadedSize: progress.loadedSize\n })\n break\n }\n default: {\n break\n }\n }\n }\n : null\n )\n })\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"component\":\"asset-files-uploader-module__component___1wV8z\",\"selectOnClick\":\"asset-files-uploader-module__selectOnClick___3Mia7\",\"input\":\"asset-files-uploader-module__input___12VWQ\"};","// lib\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport ADND from '@aytm/lib/adnd/ADND'\nimport uploadImageAssets from '@aytm/lib/rfd-ui/components/assets/jobs/image-asset-upload-manager'\nimport uploadVideoAssets from '@aytm/lib/rfd-ui/components/assets/jobs/video-asset-upload-manager'\n\n// styles\nimport style from '@aytm/lib/rfd-ui/styles/assets/asset-files-uploader.module.scss'\n\nexport default class AssetFilesUploader extends Component {\n static propTypes = {\n type: PropTypes.oneOf(['image', 'video']),\n onFilesUploaded: PropTypes.func.isRequired,\n onFilesUpload: PropTypes.func,\n watchProgress: PropTypes.bool,\n multiple: PropTypes.bool,\n withOriginal: PropTypes.bool,\n withErrors: PropTypes.bool,\n maxItems: PropTypes.number,\n selectOnClick: PropTypes.bool,\n content: PropTypes.func.isRequired\n }\n\n state = {\n dragOver: false,\n acceptFiles: true,\n progress: null\n }\n\n inputRef = React.createRef()\n\n dropAssetFileTarget = ADND.targets\n .files()\n .onDrop(this.onAssetFileDrop)\n .onEnter(this.onAssetFileDragEnter)\n .onLeave(this.onAssetFileDragLeave)\n .acceptDrop(this.acceptAssetFileDrop)\n\n @autobind\n connectDropTarget(ref) {\n this.dropAssetFileTarget.connect(ref)\n }\n\n componentDidMount() {\n this.mounted = true\n }\n\n componentWillUnmount() {\n this.mounted = false\n this.dropAssetFileTarget.disconnect()\n }\n\n @autobind\n onAssetFileDragEnter() {\n this.setState(state => {\n return {\n ...state,\n dragOver: true\n }\n })\n }\n\n @autobind\n onAssetFileDragLeave() {\n this.setState(state => {\n return {\n ...state,\n dragOver: false\n }\n })\n }\n\n @autobind\n acceptAssetFileDrop() {\n const { acceptFiles = true } = this.state\n return acceptFiles\n }\n\n @autobind\n onAssetFileDrop(...files) {\n const { multiple = false, maxItems = null } = this.props\n\n if (files.length) {\n this.onDropFiles(multiple ? (maxItems ? Array.prototype.slice.call(files, 0, maxItems) : files) : [files[0]])\n }\n }\n\n @autobind\n inputFilesSelected() {\n if (this.inputRef.current && this.inputRef.current.files && this.inputRef.current.files.length) {\n const { multiple = false, maxItems = null } = this.props\n this.onDropFiles(\n multiple\n ? Array.apply(\n null,\n maxItems\n ? Array.prototype.slice.call(this.inputRef.current.files, 0, maxItems)\n : this.inputRef.current.files\n )\n : [this.inputRef.current.files[0]]\n )\n }\n }\n\n @autobind\n onDropFiles(files) {\n const { type, watchProgress = true, withErrors = false, onFilesUpload, onFilesUploaded } = this.props\n\n if ('function' === typeof onFilesUploaded) {\n this.setState(\n state => {\n return {\n ...state,\n acceptFiles: false,\n progress: watchProgress\n ? {\n percents: 0,\n totalFiles: files.length,\n loadedFiles: 0,\n totalSize: files.reduce((totalSize, file) => totalSize + (file.size || 0), 0),\n loadedSize: 0\n }\n : null\n }\n },\n () => {\n const uploadAsset = 'video' === type ? uploadVideoAssets : uploadImageAssets\n if ('function' === typeof onFilesUpload) {\n onFilesUpload()\n }\n uploadAsset(\n files,\n watchProgress\n ? progress => {\n if (this.mounted) {\n this.setState(state => {\n return {\n ...state,\n progress\n }\n })\n }\n }\n : null,\n withErrors\n ).then(assets => {\n const { withOriginal = false } = this.props\n if (this.mounted) {\n this.setState(\n state => {\n return {\n ...state,\n acceptFiles: true,\n progress: null\n }\n },\n () => {\n onFilesUploaded(\n assets.map(asset => {\n if ('video' === type) {\n const videoAsset = {\n assetUid: asset.uid,\n videoPath: asset.original ? asset.original.mp4 : null,\n thumbnailPath: asset.original ? asset.original.thumbnail : null\n }\n withOriginal && (videoAsset.original = asset.original || null)\n return videoAsset\n } else {\n const imageAsset = {\n assetUid: asset.uid,\n imagePath: asset.original ? asset.original.path : null\n }\n withOriginal && (imageAsset.original = asset.original || null)\n withErrors && asset.error && (imageAsset.error = asset.error)\n withErrors && asset.status && (imageAsset.status = asset.status)\n return imageAsset\n }\n })\n )\n }\n )\n }\n })\n }\n )\n }\n }\n\n render() {\n const { type, multiple = false, content, selectOnClick = true } = this.props\n const { acceptFiles = true, dragOver, progress } = this.state\n return (\n \n {selectOnClick && acceptFiles ? (\n \n ) : null}\n {content ? content({ dragOver, progress, uploading: !acceptFiles }) : null}\n \n )\n }\n}\n","import GeneralImageAssetUploadJob from '@aytm/lib/AsyncJobManager/jobs/assets/ImageAssetUploadJob'\nimport AsyncJobManager from '@aytm/lib/AsyncJobManager/AsyncJobManager'\n\nexport const ImageAssetUploadManager = AsyncJobManager({ concurrency: 3 })\n\nconst config = {\n createAssetPath: null,\n templateID: null,\n srcSurveyID: null\n}\n\nexport function configure({ createAssetPath, templateID, srcSurveyID } = {}) {\n config.createAssetPath = createAssetPath\n config.templateID = templateID\n config.srcSurveyID = srcSurveyID\n}\n\nexport function ImageAssetUploadJob(file) {\n return config.createAssetPath\n ? GeneralImageAssetUploadJob({\n createAssetPath: config.createAssetPath,\n file,\n params: { template_id: config.templateID, src_survey_id: config.srcSurveyID }\n })\n : Promise.reject(new Error('ImageAssetUploadManager - createAssetPath not configured'))\n}\n\nexport default function upload(droppedFiles, onProgress, withErrors) {\n const files = droppedFiles.slice(0, 100) // protect from mass upload\n return new Promise(resolve => {\n const uploadJobs = [...files].map(file => ImageAssetUploadJob(file))\n const fileTotalSizes = files.map(file => file.size || 0)\n const progress = {\n fileTotalSizes,\n fileLoadedSizes: Array.from({ length: files.length }),\n totalSize: fileTotalSizes.reduce((totalSize, fileSize) => totalSize + fileSize, 0),\n loadedSize: 0,\n totalFiles: files.length,\n loadedFiles: 0\n }\n ImageAssetUploadManager.queue(...uploadJobs).then(\n jobResults => {\n resolve(\n withErrors\n ? jobResults.map(result => (result.result?.status ? result.result : result))\n : jobResults.map(result => ('done' === result.status ? result.result : null)).filter(x => x)\n )\n },\n null,\n onProgress\n ? (type, fileIndex, loaded, total) => {\n // calculate progress\n switch (type) {\n case 'done': {\n progress.totalFiles = total\n progress.loadedFiles = loaded\n onProgress({\n percents: Math.round((progress.loadedSize * 100) / progress.totalSize),\n totalFiles: progress.totalFiles,\n loadedFiles: progress.loadedFiles,\n totalSize: progress.totalSize,\n loadedSize: progress.loadedSize\n })\n break\n }\n case 'progress': {\n progress.fileLoadedSizes[fileIndex] = loaded\n progress.fileTotalSizes[fileIndex] = total\n progress.totalSize = progress.fileTotalSizes.reduce(\n (fileSize, totalSize) => (totalSize ? fileSize + totalSize : fileSize),\n 0\n )\n progress.loadedSize = progress.fileLoadedSizes.reduce(\n (loadedSize, fileLoadedSize) => (fileLoadedSize ? loadedSize + fileLoadedSize : loadedSize),\n 0\n )\n onProgress({\n percents: Math.round((progress.loadedSize * 100) / progress.totalSize),\n totalFiles: progress.totalFiles,\n loadedFiles: progress.loadedFiles,\n totalSize: progress.totalSize,\n loadedSize: progress.loadedSize\n })\n break\n }\n default: {\n break\n }\n }\n }\n : null\n )\n })\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"component\":\"upload-assets-button-module__component___HYOK1\",\"text\":\"upload-assets-button-module__text___2_Thq\",\"dragOver\":\"upload-assets-button-module__dragOver___27rsO\",\"inner\":\"upload-assets-button-module__inner___3Gelg\",\"label\":\"upload-assets-button-module__label___2kUrd\",\"icon\":\"upload-assets-button-module__icon___3uXul\",\"icon-image\":\"upload-assets-button-module__icon-image___3ZINw icon-aytmfd-image\",\"icon-video\":\"upload-assets-button-module__icon-video___22Jjt icon-aytmfd-qvideo\",\"uploadingPercents\":\"upload-assets-button-module__uploadingPercents___2rfWr\",\"uploadingFiles\":\"upload-assets-button-module__uploadingFiles___2h7Xe\"};","// lib\nimport React, { useCallback } from 'react'\nimport PropTypes from 'prop-types'\n\n// components\nimport AssetFilesUploader from '@aytm/lib/rfd-ui/components/assets/asset-files-uploader'\nimport LoaderDots from '@aytm/lib/rfd-ui/components/basic/loader-dots'\n\n// styles\nimport style from '@aytm/lib/rfd-ui/styles/assets/upload-assets-button.module.scss'\n\nUploadAssetsButton.propTypes = {\n type: PropTypes.oneOf(['image', 'video']),\n text: PropTypes.string,\n renderProgressText: PropTypes.func,\n maxItems: PropTypes.number,\n multiple: PropTypes.bool,\n withOriginal: PropTypes.bool,\n withErrors: PropTypes.bool,\n onFilesUploaded: PropTypes.func.isRequired,\n onFilesUpload: PropTypes.func\n}\n\nexport default function UploadAssetsButton(props) {\n const {\n text,\n type,\n renderProgressText,\n multiple = false,\n maxItems,\n withOriginal,\n withErrors = false,\n onFilesUpload,\n onFilesUploaded\n } = props\n\n const renderButton = useCallback(\n ({ dragOver = false, progress, uploading } = {}) => (\n
    \n {uploading && progress ? (\n \n ) : (\n \n )}\n
    \n ),\n [type, text, renderProgressText]\n )\n\n return (\n \n )\n}\n\nDropPanel.propTypes = {\n type: PropTypes.oneOf(['image', 'video']),\n text: PropTypes.string.isRequired\n}\n\nexport function DropPanel(props) {\n const { type, text } = props\n return (\n
    \n
    \n \n
    {text || ''}
    \n
    \n
    \n )\n}\n\nProgressPanel.propTypes = {\n renderProgressText: PropTypes.func,\n progress: PropTypes.object.isRequired\n}\nexport function ProgressPanel(props) {\n const { progress = {}, renderProgressText } = props\n const { percents = 0, loadedFiles = 0, totalFiles = 1 } = progress || {}\n return (\n
    \n
    \n
    \n {100 > percents ? `${percents}%` : ''}\n
    \n {'function' === typeof renderProgressText ? (\n
    {renderProgressText({ loadedFiles, totalFiles })}
    \n ) : null}\n
    \n
    \n )\n}\n","// lib\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport {\n findVisualSelectionOffsetFromRangeNode,\n findRangeNodeForVisualSelectionOffset\n} from '@aytm/lib/common/content-editable'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/basic/autosized-input.scss'\n\n// \nexport default class AutosizedInput extends Component {\n static propTypes = {\n text: PropTypes.string.isRequired,\n maxLength: PropTypes.number,\n multiline: PropTypes.bool,\n onChange: PropTypes.func,\n onUpdate: PropTypes.func,\n onKeyDown: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n debounce: PropTypes.number,\n placeholder: PropTypes.any,\n filter: PropTypes.func,\n readOnly: PropTypes.bool,\n contentEditable: PropTypes.any\n }\n\n lastText = null\n divRef = React.createRef()\n placeholderRef = React.createRef()\n placeholderEnabled = false\n onChangeDebounceTimer = null\n divKey = `autosizedInput-${Math.round(Math.random() * 46656).toString(36)}`\n placeholderKey = `autosizedInputPlaceholder-${Math.round(Math.random() * 46656).toString(36)}`\n divMutationObserver =\n 'undefined' === typeof MutationObserver\n ? null\n : new MutationObserver(() => {\n const text = this.getText()\n const { maxLength, filter, multiline } = this.props\n if ('function' === typeof filter) {\n // apply text filter\n const filteredText = filter(text, maxLength)\n if (filteredText !== text) {\n this.setText(filteredText, true)\n return\n }\n } else if (maxLength && text.length > maxLength) {\n // crop max length\n this.setText(text.slice(0, maxLength), true)\n return\n }\n if (!multiline && 0 <= text.indexOf('\\n')) {\n this.setText(text.replace(/\\n/g, ' '), true)\n return\n }\n const html = this.getHTML()\n if (0 <= html.indexOf('<')) {\n // remove tags from HTML if present\n this.setHTML(html.replace(/<[^<]*>/g, ''))\n return\n }\n this.togglePlaceholder('' == text)\n this.sendUpdatedText(text)\n })\n\n componentDidMount() {\n const { text } = this.props\n this.setText(text)\n this.watchChanges()\n }\n\n componentWillUnmount() {\n this.unwatchChanges()\n }\n\n shouldComponentUpdate(nextProps) {\n return nextProps.text !== this.props.text || nextProps.readOnly !== this.props.readOnly\n }\n\n componentDidUpdate(prevProps) {\n const { text, readOnly } = this.props\n this.setText(text)\n if (readOnly !== prevProps.readOnly) {\n if (readOnly) {\n this.unwatchChanges()\n } else {\n this.watchChanges()\n }\n }\n }\n\n @autobind\n watchChanges() {\n const { readOnly } = this.props\n if (!readOnly) {\n if (this.divMutationObserver && this.divRef.current) {\n this.divMutationObserver.observe(this.divRef.current, {\n characterData: true,\n childList: true,\n subtree: true\n })\n }\n if (this.divRef.current) {\n this.divRef.current.addEventListener('keydown', this.onKeyDown, true)\n }\n }\n }\n\n @autobind\n unwatchChanges() {\n if (this.divMutationObserver) {\n this.divMutationObserver.disconnect()\n }\n if (this.divRef.current) {\n this.divRef.current.removeEventListener('keydown', this.onKeyDown, true)\n }\n }\n\n @autobind\n setText(text, forceUpdate = false) {\n if (this.divRef.current && (forceUpdate || text !== this.lastText)) {\n this.keepSelection(() => {\n this.divRef.current.innerText = text\n })\n this.sendUpdatedText(text)\n }\n this.togglePlaceholder('' == text)\n }\n\n @autobind\n sendUpdatedText(text) {\n if (text !== this.lastText) {\n if (null != this.lastText) {\n const { onChange, onUpdate, debounce } = this.props\n if ('function' === typeof onUpdate) {\n onUpdate(text)\n }\n if ('function' === typeof onChange) {\n if (this.onChangeDebounceTimer) {\n clearTimeout(this.onChangeDebounceTimer)\n this.onChangeDebounceTimer = null\n }\n if (debounce) {\n this.onChangeDebounceTimer = setTimeout(() => {\n if ('function' === typeof onChange) {\n onChange(text)\n }\n }, debounce)\n } else {\n onChange(text)\n }\n }\n }\n this.lastText = text\n }\n }\n\n @autobind\n togglePlaceholder(enabled) {\n if (this.placeholderRef.current && this.placeholderEnabled != enabled) {\n this.placeholderEnabled = enabled\n if (enabled) {\n this.placeholderRef.current.classList.add('rfd-ui-autosized-input-placeholder-active')\n } else {\n this.placeholderRef.current.classList.remove('rfd-ui-autosized-input-placeholder-active')\n }\n }\n }\n\n @autobind\n onPlaceholderClick() {\n if (this.divRef.current) {\n this.divRef.current.focus()\n }\n }\n\n @autobind\n focus() {\n if (this.divRef.current) {\n this.divRef.current.focus()\n }\n }\n\n @autobind\n getText() {\n return this.divRef.current ? this.divRef.current.innerText : ''\n }\n\n @autobind\n getHTML() {\n return this.divRef.current ? this.divRef.current.innerHTML : ''\n }\n\n @autobind\n setHTML(html = '') {\n if (this.divRef.current) {\n //this.divRef.current.innerHTML = html\n this.keepSelection(() => {\n this.divRef.current.innerHTML = html\n })\n }\n }\n\n @autobind\n keepSelection(withFunction) {\n if (this.divRef.current) {\n if (this.divRef.current === document.activeElement) {\n const rangeBefore = window.getSelection().getRangeAt(0)\n const endOffsetBefore = findVisualSelectionOffsetFromRangeNode(\n this.divRef.current,\n rangeBefore.endContainer,\n rangeBefore.endOffset\n )\n withFunction()\n try {\n const rangeAfter = document.createRange()\n const { node, offset } = findRangeNodeForVisualSelectionOffset(this.divRef.current, endOffsetBefore)\n rangeAfter.setStart(node, offset)\n rangeAfter.collapse(true)\n const selectionAfter = window.getSelection()\n selectionAfter.removeAllRanges()\n selectionAfter.addRange(rangeAfter)\n } catch {\n // skip trying to set selection - content changed beyond recovery\n }\n } else {\n withFunction()\n }\n }\n }\n\n @autobind\n onKeyDown(event) {\n const { onKeyDown, multiline } = this.props\n if ('function' === typeof onKeyDown) {\n onKeyDown(event)\n }\n if (multiline && 'Enter' === event.key) {\n document.execCommand('insertLineBreak')\n event.preventDefault()\n }\n if (event && event.stopImmediatePropagation) {\n event.stopImmediatePropagation()\n } else if (event && event.nativeEvent && event.nativeEvent.stopImmediatePropagation) {\n event.nativeEvent.stopImmediatePropagation()\n }\n }\n\n @autobind\n onBlur(event) {\n const { onBlur, onChange } = this.props\n if (this.onChangeDebounceTimer) {\n clearTimeout(this.onChangeDebounceTimer)\n this.onChangeDebounceTimer = null\n if ('function' === typeof onChange) {\n const text = this.getText()\n this.sendUpdatedText(text)\n }\n }\n if ('function' === typeof onBlur) {\n onBlur(event)\n }\n }\n\n @autobind\n onFocus(event) {\n const { onFocus } = this.props\n if ('function' === typeof onFocus) {\n onFocus(event)\n }\n }\n\n render() {\n const {\n text,\n maxLength,\n multiline,\n onChange,\n onUpdate,\n placeholder,\n debounce,\n contentEditable,\n onKeyDown,\n onBlur,\n readOnly,\n filter,\n ...restProps\n } = this.props\n\n const inputComponent = (\n \n )\n\n const placeholderComponent = placeholder ? (\n \n {placeholder}\n
    \n ) : null\n\n return placeholderComponent ? [placeholderComponent, inputComponent] : inputComponent\n }\n}\n","// lib\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { DOMclosest } from '@aytm/lib/common/func'\nimport {\n KEYCODE_UP,\n KEYCODE_DOWN,\n KEYCODE_PGUP,\n KEYCODE_PGDOWN,\n KEYCODE_ENTER,\n KEYCODE_ESC\n} from '@aytm/lib/common/const'\n\n// constants\nconst SCROLL_TO_ITEM_MARGIN = 10\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/basic/dropdown.scss'\n\n// \nDropdown.propTypes = {\n opened: PropTypes.bool.isRequired,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n align: PropTypes.string, // left, right, fill (100% width)\n className: PropTypes.string,\n children: PropTypes.any\n}\nexport default function Dropdown(props) {\n const { opened, width, className, children, maxHeight, align } = props\n return opened ? (\n \n
    \n {children()}\n
    \n \n ) : null\n}\n\nexport class DropdownList extends Component {\n static propTypes = {\n fetchItems: PropTypes.func.isRequired,\n filter: PropTypes.any,\n onSelectItem: PropTypes.func\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n return this.props.filter != nextProps.filter || this.state.items != nextState.items\n }\n\n constructor(props) {\n super(props)\n this.state = {\n lastFilter: props.filter,\n items: props.fetchItems ? props.fetchItems({ filter: props.filter }) : []\n }\n this.listRef = null\n this.keyboardFocusIndex = 0\n }\n\n static getDerivedStateFromProps(props, state) {\n return state.lastFilter != props.filter\n ? {\n lastFilter: props.filter,\n items: props.fetchItems ? props.fetchItems({ filter: props.filter }) : []\n }\n : null\n }\n\n @autobind\n setListRef(ref) {\n if (this.listRef != ref) {\n if (this.listRef) {\n this.listRef.removeEventListener('mousedown', this.mouseDownListener, true)\n }\n this.listRef = ref\n if (this.listRef) {\n this.listRef.addEventListener('mousedown', this.mouseDownListener, true)\n }\n }\n }\n\n @autobind\n mouseDownListener(event) {\n if (0 === event.button) {\n event.preventDefault()\n const selectedItemElement = DOMclosest(event.target, '.rfd-ui-dropdown-list-item')\n if (selectedItemElement && this.state.items && this.props.onSelectItem) {\n const selectedItemIndex = parseInt(selectedItemElement.dataset.itemIndex, 10)\n if (!isNaN(selectedItemIndex)) {\n const selectedItem = this.state.items[selectedItemIndex]\n if (selectedItem) {\n this.props.onSelectItem(selectedItem)\n }\n }\n }\n }\n }\n\n @autobind\n onKeyDown(event) {\n switch (event.keyCode) {\n case KEYCODE_ESC: {\n event.preventDefault()\n this.moveKeyboardFocus(null)\n return 'close'\n }\n case KEYCODE_DOWN: {\n event.preventDefault()\n this.moveKeyboardFocus(Math.min(this.state.items.length - 1, this.keyboardFocusIndex + 1))\n return 'down'\n }\n case KEYCODE_UP: {\n event.preventDefault()\n this.moveKeyboardFocus(Math.max(0, this.keyboardFocusIndex - 1))\n return 'up'\n }\n case KEYCODE_PGDOWN: {\n event.preventDefault()\n this.moveKeyboardFocus(Math.min(this.state.items.length - 1, this.keyboardFocusIndex + 3))\n return 'pgdown'\n }\n case KEYCODE_PGUP: {\n event.preventDefault()\n this.moveKeyboardFocus(Math.max(0, this.keyboardFocusIndex - 3))\n return 'pgup'\n }\n case KEYCODE_ENTER: {\n event.preventDefault()\n if (this.props.onSelectItem) {\n const selectedItem = this.state.items[this.keyboardFocusIndex]\n if (selectedItem) {\n this.props.onSelectItem(selectedItem)\n }\n this.moveKeyboardFocus(null)\n }\n return 'select'\n }\n default: {\n return 'default'\n }\n }\n }\n\n @autobind\n moveKeyboardFocus(toIndex) {\n if (this.listRef) {\n // remove className from old focused item\n const focusedItems = this.listRef.querySelectorAll('.rfd-ui-dropdown-list-item-focused')\n for (const focusedItem of focusedItems) {\n focusedItem.classList.remove('rfd-ui-dropdown-list-item-focused')\n }\n // add className to the new focused item\n this.keyboardFocusIndex = toIndex\n if (null != this.keyboardFocusIndex) {\n const newFocuseditem = this.listRef.querySelectorAll('.rfd-ui-dropdown-list-item')[this.keyboardFocusIndex]\n if (newFocuseditem) {\n newFocuseditem.classList.add('rfd-ui-dropdown-list-item-focused')\n // scroll container to item\n const dropdownContent = DOMclosest(this.listRef, '.rfd-ui-dropdown-content')\n if (dropdownContent) {\n const containerTop = dropdownContent.scrollTop\n const containerHeight = dropdownContent.clientHeight\n const listHeight = this.listRef.scrollHeight\n const itemTop = newFocuseditem.offsetTop\n const itemHeight = newFocuseditem.offsetHeight\n if (itemTop < containerTop) {\n dropdownContent.scrollTop = Math.max(0, itemTop - SCROLL_TO_ITEM_MARGIN)\n } else if (itemTop + itemHeight > containerTop + containerHeight) {\n dropdownContent.scrollTop = Math.min(\n listHeight - containerHeight,\n itemTop + itemHeight + SCROLL_TO_ITEM_MARGIN - containerHeight\n )\n }\n }\n }\n }\n }\n }\n\n componentDidUpdate(_prevProps, prevState) {\n if (this.state.items.length != prevState.items.length) {\n this.moveKeyboardFocus(0)\n }\n }\n\n componentDidMount() {\n this.moveKeyboardFocus(0)\n }\n\n render() {\n const { items } = this.state\n const { filter } = this.props\n return (\n
    \n {items.map((item, index) => (\n
    \n {item.render ? item.render({ index, item, filter }) : item.id}\n
    \n ))}\n
    \n )\n }\n}\n","import React, { useEffect, useState, useRef, useCallback } from 'react'\nimport PropTypes from 'prop-types'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/basic/hover-target.scss'\n\nHoverTarget.propTypes = {\n hovered: PropTypes.bool,\n className: PropTypes.string,\n gracePeriod: PropTypes.number,\n children: PropTypes.any\n}\nexport default function HoverTarget(props) {\n const { className, children, gracePeriod = 200, hovered: propsHovered = false, ...restProps } = props\n\n const leaveGracePeriodTimer = useRef(null)\n const [hovered, setHovered] = useState(propsHovered)\n\n // sync props to state\n useEffect(() => {\n setHovered(propsHovered)\n }, [propsHovered])\n\n const onMouseEnter = useCallback(() => {\n if (null != leaveGracePeriodTimer.current) {\n clearTimeout(leaveGracePeriodTimer.current)\n leaveGracePeriodTimer.current = null\n }\n if (!hovered) {\n setHovered(true)\n }\n }, [hovered, setHovered])\n\n const onMouseLeave = useCallback(() => {\n if (leaveGracePeriodTimer.current) {\n clearTimeout(leaveGracePeriodTimer.current)\n }\n leaveGracePeriodTimer.current = setTimeout(() => {\n leaveGracePeriodTimer.current = null\n setHovered(false)\n }, gracePeriod)\n }, [setHovered, gracePeriod])\n\n return (\n \n {children(hovered, setHovered)}\n \n )\n}\n","import React, { useState, useRef, useEffect, useMemo } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { List } from 'immutable'\n\nimport '@aytm/lib/rfd-ui/styles/basic/inline-search.scss'\nimport useOuterClickListener from '@aytm/lib/rfd-ui/lib/outer-click-listener'\n\nconst CLASS = 'rfd-ui-inline-search'\n\nconst toText = source =>\n source ? String(source).replace(/&/gi, '&').replace(/</gi, '<').replace(/>/gi, '>') : ''\n\nconst getOptionText = option => {\n const render = option.get('render')\n const text = 'function' === typeof render ? render() : render\n return toText(text)\n}\n\nconst InlineSearch = props => {\n const listRef = useRef()\n const containerRef = useRef()\n const editing = useRef()\n const timer = useRef(0)\n\n const propsValue = useMemo(() => props.children || props.value || '', [props.children, props.value])\n\n const [value, setValue] = useState(propsValue)\n const [showList, setShowList] = useState(false)\n const [index, setIndex] = useState(-1)\n\n const anchors = props.anchors || InlineSearch.defaultProps.anchors\n\n const getOptions = () => {\n if (props.fetchOptions) {\n const list = props.fetchOptions().map(option => {\n return { option, text: getOptionText(option) }\n })\n return editing.current ? list.filter(v => v.text.toLowerCase().includes((value || '').toLowerCase())) : list\n } else return List()\n }\n\n const inputChange = event => {\n const newValue = event.target.value\n editing.current = true\n setValue(newValue)\n setIndex(-1)\n if (timer.current) clearTimeout(timer.current)\n timer.current = setTimeout(() => {\n if (getOptions().size > 0) setShowList(true)\n clearTimeout(timer.current)\n }, [props.timeout])\n }\n\n const closeList = option => () => {\n setShowList(false)\n setIndex(-1)\n if (props.autoClear) setValue('')\n if (option) {\n setValue(getOptionText(option))\n editing.current = false\n if (props.onSelect) props.onSelect({ option })\n } else setValue(propsValue)\n }\n\n const stepList = to => {\n if (index >= 0 && listRef.current) {\n const rect = listRef.current.getBoundingClientRect()\n const scrollTop = listRef.current.scrollTop\n const element = listRef.current.children[to]\n if (element.offsetTop < scrollTop) listRef.current.scrollTop -= element.clientHeight\n else if (element.offsetTop + element.clientHeight > scrollTop + rect.height)\n listRef.current.scrollTop += element.clientHeight\n }\n setIndex(to)\n }\n\n const inputKeyDown = event => {\n if (showList) {\n const options = getOptions()\n const length = options.size\n if (length > 0) {\n if (['ArrowDown', 'ArrowRight'].includes(event.key) && index < length - 1) {\n event.preventDefault()\n stepList(index + 1)\n } else if (['ArrowUp', 'ArrowLeft'].includes(event.key) && index > 0) {\n event.preventDefault()\n stepList(index - 1)\n } else if (['Enter'].includes(event.key) && index >= 0 && index < length) {\n event.preventDefault()\n closeList(options.get(index).option)()\n } else if (['Escape'].includes(event.key)) {\n event.preventDefault()\n setShowList(false)\n setValue(propsValue)\n }\n }\n }\n }\n\n const renderList = () => {\n if (!showList) return null\n const options = getOptions().map((v, i) => {\n const className = i === index ? `${CLASS}-list-option-selected` : ''\n return (\n
    \n {v.text}\n
    \n )\n })\n if (options.size) {\n const container = containerRef.current\n if (container) {\n const rect = container.getBoundingClientRect()\n const style = {\n top: props.topMargin || `${rect.height}px`\n }\n if (anchors.includes('left')) style.left = '0px'\n if (anchors.includes('right')) style.right = '0px'\n const listClassName = props.wrap ? `${CLASS}-list ${CLASS}-list-wrap` : `${CLASS}-list`\n return (\n
    \n {options}\n
    \n )\n }\n }\n return null\n }\n\n const iconClick = event => {\n event.stopPropagation()\n editing.current = false\n setShowList(!showList)\n }\n\n const inputBlur = () => {\n if (!showList) {\n clearTimeout(timer.current)\n setValue(propsValue)\n }\n }\n\n useOuterClickListener({\n ref: listRef,\n listen: showList,\n onClick: () => {\n setShowList(false)\n setValue(propsValue)\n }\n })\n\n useEffect(() => {\n const newValue = propsValue\n if (!editing.current && value !== newValue) setValue(newValue)\n }, [propsValue, value])\n\n useEffect(() => {\n const list = listRef.current\n const onWheel = event => event.stopPropagation()\n if (showList && list) {\n list.addEventListener('wheel', onWheel, { passive: false })\n return () => list.removeEventListener('wheel', onWheel)\n } else return () => {}\n }, [showList])\n\n const iconClass = props.selector\n ? showList\n ? `icon-aytmfd-chevron-bracket ${CLASS}-icon ${CLASS}-icon-selector ${CLASS}-icon-up`\n : `icon-aytmfd-chevron-bracket ${CLASS}-icon ${CLASS}-icon-selector ${CLASS}-icon-down`\n : `pi pi-search ${CLASS}-icon`\n\n const text = toText(value)\n\n const input = props.readOnly ? (\n \n {text}\n \n ) : props.multiline ? (\n \n ) : (\n \n )\n\n const label = props.label ? (\n React.isValidElement(props.label) ? (\n props.label\n ) : (\n
    \n )\n ) : null\n\n return (\n \n {label}\n {input}\n \n {renderList()}\n \n )\n}\n\nInlineSearch.propTypes = {\n className: PropTypes.string,\n placeholder: PropTypes.string,\n fetchOptions: PropTypes.func,\n timeout: PropTypes.number,\n autoClear: PropTypes.any,\n children: PropTypes.any,\n value: PropTypes.any,\n selector: PropTypes.any,\n multiline: PropTypes.any,\n label: PropTypes.any,\n readOnly: PropTypes.any,\n anchors: PropTypes.string,\n wrap: PropTypes.any,\n topMargin: PropTypes.string,\n onSelect: PropTypes.func\n}\n\nInlineSearch.defaultProps = {\n autoClear: false,\n timeout: 1000,\n selector: false,\n multiline: false,\n readOnly: false,\n anchors: 'left right',\n wrap: true,\n value: '',\n children: ''\n}\n\nexport default InlineSearch\n","// lib\nimport { Map, List } from 'immutable'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\n// components\nimport CheckBox from '@aytm/lib/rfd-ui/components/basic/check-box'\nimport InlineSelect from '@aytm/lib/rfd-ui/components/basic/inline-select'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/basic/multi-select.scss'\n\n// \nMultiSelect.propTypes = {\n showSelectAllOption: PropTypes.bool,\n className: PropTypes.string,\n getLabel: PropTypes.func,\n readOnly: PropTypes.bool,\n options: PropTypes.instanceOf(List).isRequired\n}\nexport default React.memo(\n MultiSelect,\n (prevProps, nextProps) =>\n prevProps.showSelectAllOption == nextProps.showSelectAllOption &&\n prevProps.className == nextProps.className &&\n prevProps.readOnly == nextProps.readOnly &&\n prevProps.getLabel == nextProps.getLabel &&\n prevProps.options == nextProps.options\n)\nfunction MultiSelect(props, _context) {\n const { getLabel, readOnly, className, showSelectAllOption, options: optionsProp } = props\n\n const [options, setOptions] = useState(initOptions(optionsProp, showSelectAllOption))\n\n // update options on optionsProp change\n useEffect(() => setOptions(initOptions(optionsProp, showSelectAllOption)), [optionsProp, showSelectAllOption])\n\n const fetchOptions = useCallback(() => options, [options])\n const onSelect = useCallback(option => setOptions(updateOptions(options, option.get('value'))), [options])\n const label = useMemo(\n () => ('function' == typeof getLabel ? getLabel(options) : 'Please select'),\n [getLabel, options]\n )\n return (\n
    \n \n {label}\n \n
    \n )\n}\n\nfunction setCheckBoxRender(option) {\n return option.set('render', () => )\n}\n\nfunction initOptions(options = List(), showSelectAllOption = false) {\n return List(\n options.reduce((acc, _option) => {\n const option = setCheckBoxRender(Map.isMap(_option) ? _option : Map(_option))\n\n // insert \"select all\" option\n if (showSelectAllOption && 0 == acc.length) {\n const selected = option.get('selected')\n const selectAllOption = isOptionsSimilar(options)\n ? Map({ value: 'all', text: selected ? 'Deselect all' : 'Select all', selected })\n : Map({ value: 'all', text: 'Deselect all', selected: true })\n acc.push(setCheckBoxRender(selectAllOption))\n }\n\n const value = option.get('value')\n acc.push('string' == typeof value ? option : option.set('value', value.toString()))\n return acc\n }, [])\n )\n}\n\nfunction updateOptions(options, optionValue) {\n // update all options\n if ('all' == optionValue) {\n const selectAll = !options.getIn([0, 'selected'])\n return options.map(option => {\n const selected = option.get('selected')\n const updatedOption =\n 'all' == option.get('value') ? option.set('text', selected ? 'Select all' : 'Deselect all') : option\n return setCheckBoxRender(selectAll == selected ? updatedOption : updatedOption.set('selected', !selected))\n })\n }\n\n // update single option\n const index = options.findIndex(option => optionValue == option.get('value'))\n if (-1 == index) return options\n\n const updatedOptions = options.update(index, option =>\n setCheckBoxRender(option.update('selected', selected => !selected))\n )\n\n const selectAllOption = 'all' == options.getIn([0, 'value']) ? options.get(0) : null\n return selectAllOption &&\n isOptionsSimilar(updatedOptions.skip(1)) &&\n selectAllOption.get('selected') != updatedOptions.getIn([1, 'selected'])\n ? updatedOptions.update(0, option =>\n setCheckBoxRender(\n option\n .set('selected', !option.get('selected'))\n .set('text', option.get('selected') ? 'Select all' : 'Deselect all')\n )\n )\n : updatedOptions\n}\n\nfunction isOptionsSimilar(options) {\n const selected = options.getIn([0, 'selected'])\n return options.skip(1).every(option => selected == option.get('selected'))\n}\n","import React, { useMemo, useEffect, useRef } from 'react'\nimport PropTypes from 'prop-types'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/basic/scroll-bar.scss'\n\nconst CLASS = 'rfd-ui-scroll-bar'\n\nconst inRect = (event, rect, margins, ignoreClasses) => {\n if (!event || !rect) return false\n if (ignoreClasses && ignoreClasses.length) {\n const className = event && event.target ? event.target.className : null\n if (className && className.includes) {\n for (const testClass of ignoreClasses) {\n if (className.includes(testClass)) {\n return false\n }\n }\n }\n }\n const m = {\n top: margins?.top || 0,\n left: margins?.left || 0,\n right: margins?.right || 0,\n bottom: margins?.bottom || 0\n }\n return (\n event.clientX >= rect.left + m.left &&\n event.clientX <= rect.right - m.right &&\n event.clientY >= rect.top + m.top &&\n event.clientY <= rect.bottom - m.bottom\n )\n}\n\nconst Scroll = ({\n listener: eventListener,\n button,\n element,\n direction = 'ver',\n minButtonSize = 32,\n wheelStep = 32,\n clickStep = 32,\n wheelEvents = 'none',\n ignoreClasses = null,\n margins = {}\n} = {}) => {\n let mounted = false\n let move = 0\n let position = 0\n let startPoint = 0\n let scrollEvent = null\n let source = 'mouse'\n let showScroll = true\n let buttonSize = 0\n let barSize = 0\n\n const listener = eventListener || document\n const container = element?.parentElement\n const horizontal = 'hor' === direction.slice(0, 3)\n const scrollBar = button?.parentElement\n\n let containerRect = null\n let barRect = null\n\n const handleScroll = () => {\n if (mounted && scrollEvent) {\n if (horizontal)\n scrollEvent({\n scrollLeft: container.scrollLeft,\n scrollPosition: container.scrollLeft,\n scrollSize: container.scrollWidth,\n horizontal: true\n })\n else\n scrollEvent({\n scrollTop: container.scrollTop,\n scrollPosition: container.scrollTop,\n scrollSize: container.scrollHeight,\n horizontal: false\n })\n }\n }\n\n const scrollElement = () => {\n if (mounted && container && button && barRect) {\n const [scrollSize, barSize] = horizontal\n ? [container.scrollWidth, barRect.width]\n : [container.scrollHeight, barRect.height]\n const scrollPos = Math.round((position * scrollSize) / barSize)\n if (horizontal) container.scrollLeft = scrollPos\n else container.scrollTop = scrollPos\n handleScroll()\n }\n }\n\n const stepBy = step => {\n if (mounted && button && barRect) {\n const buttonPos = horizontal ? button.offsetLeft : button.offsetTop\n const moveTo = buttonPos + step\n const right = barSize - buttonSize\n const newPosition = moveTo < 0 ? 0 : moveTo > right ? right : moveTo\n if (newPosition !== position) {\n position = newPosition\n if (horizontal) button.style.left = `${position}px`\n else button.style.top = `${position}px`\n scrollElement()\n }\n }\n }\n\n const scrollTo = to => {\n if (mounted && !move && container && button) {\n if (horizontal) {\n container.scrollLeft = to\n handleScroll()\n } else {\n container.scrollTop = to\n handleScroll()\n }\n }\n }\n\n const scrollBy = step => {\n if (mounted && container) {\n if (horizontal) {\n container.scrollLeft = container.scrollLeft + step\n handleScroll()\n } else {\n container.scrollTop = container.scrollTop + step\n handleScroll()\n }\n }\n }\n\n const onMouseUp = () => {\n move = 0\n }\n\n const onMouseLeave = () => {\n move = 0\n }\n\n const onMouseDown = (event, touch) => {\n if (mounted && button) {\n const [clientX, clientY] = touch\n ? [event.touches[0].clientX, event.touches[0].clientY]\n : [event.clientX, event.clientY]\n const buttonRect = button.getBoundingClientRect()\n if (inRect({ clientX, clientY }, buttonRect)) {\n move = 1\n startPoint = horizontal ? clientX : clientY\n } else if (inRect({ clientX, clientY }, barRect)) {\n if (horizontal) {\n if (clientX < buttonRect.left) stepBy(-clickStep)\n else if (clientX > buttonRect.right) stepBy(clickStep)\n } else {\n if (clientY < buttonRect.top) stepBy(-clickStep)\n else if (clientY >= buttonRect.bottom) stepBy(clickStep)\n }\n } else if (touch && inRect({ clientX, clientY }, containerRect)) {\n move = 2\n startPoint = horizontal ? clientX : clientY\n event.stopPropagation()\n }\n }\n }\n\n const onMouseMove = (event, touch) => {\n if (mounted && move && button) {\n const [clientX, clientY] = touch\n ? [event.touches[0].clientX, event.touches[0].clientY]\n : [event.clientX, event.clientY]\n if (touch && 2 === move) {\n const pointPos = horizontal ? clientX : clientY\n const step = startPoint - pointPos\n scrollBy(step)\n startPoint = pointPos\n } else if (barRect) {\n const [pointPos, buttonPos] = horizontal ? [clientX, button.offsetLeft] : [clientY, button.offsetTop]\n const moveTo = buttonPos + pointPos - startPoint\n const right = barSize - buttonSize\n const newPosition = moveTo < 0 ? 0 : moveTo > right ? right : moveTo\n if (newPosition !== position) {\n position = newPosition\n startPoint = pointPos\n if (horizontal) button.style.left = `${position}px`\n else button.style.top = `${position}px`\n scrollElement()\n }\n }\n }\n }\n\n const onMouseWheel = event => {\n if (mounted && showScroll) {\n containerRect = container ? container.getBoundingClientRect() : null\n if (event.deltaX > 0) source = 'pad'\n if ((wheelEvents || '').includes('shift') && event.shiftKey && container) {\n if (inRect(event, containerRect)) {\n const step = Math.round(0.01 * event.deltaY * wheelStep)\n stepBy(step)\n event.preventDefault()\n return false\n }\n } else {\n if ((wheelEvents || '').includes('element') && container) {\n // eslint-disable-next-line unicorn/no-lonely-if\n if (inRect(event, containerRect, margins.current, ignoreClasses)) {\n if ('mouse' === source) {\n const delta = event.deltaY\n const step = Math.round(0.01 * delta * wheelStep)\n stepBy(step)\n event.preventDefault()\n return false\n } else {\n if (Math.abs(event.deltaX) > Math.abs(event.deltaY)) {\n const delta = event.deltaX\n const step = Math.round(0.01 * delta * wheelStep)\n stepBy(step)\n event.preventDefault()\n return false\n }\n }\n }\n }\n if ((wheelEvents || '').includes('bar') && button) {\n // eslint-disable-next-line unicorn/no-lonely-if\n barRect = scrollBar ? scrollBar.getBoundingClientRect() : null\n if (inRect(event, barRect)) {\n const step = Math.round(0.01 * event.deltaY * wheelStep)\n stepBy(step)\n event.preventDefault()\n return false\n }\n }\n }\n }\n return true\n }\n\n const onTouchStart = event => {\n onMouseDown(event, true)\n }\n\n const onTouchEnd = () => {\n onMouseUp()\n }\n\n const onTouchMove = event => {\n onMouseMove(event, true)\n }\n\n const updateBar = () => {\n if (mounted && container && button && element) {\n const [scrollSize, containerSize, scrollPos, elementSize] = horizontal\n ? [container.scrollWidth, container.clientWidth, container.scrollLeft, element.clientWidth]\n : [container.scrollHeight, container.clientHeight, container.scrollTop, element.clientHeight]\n showScroll = containerSize < elementSize\n if (showScroll) {\n if ('none' === button.parentElement.style.display) button.parentElement.style.display = 'flex'\n if ('none' === button.style.display) button.style.display = 'flex'\n barRect = scrollBar ? scrollBar.getBoundingClientRect() : null\n barSize = horizontal ? barRect.width : barRect.height\n buttonSize = Math.floor((barSize * containerSize) / scrollSize)\n const size = buttonSize < minButtonSize ? minButtonSize : buttonSize >= barSize ? 0 : buttonSize\n const position = Math.floor((scrollPos * barSize) / scrollSize)\n if (size > 0) {\n if (horizontal) {\n button.style.width = `${size}px`\n button.style.left = `${position}px`\n } else {\n button.style.height = `${size}px`\n button.style.top = `${position}px`\n }\n }\n } else {\n if ('none' !== button.style.display || 'none' !== button.parentElement.style.display) scrollTo(0)\n if ('none' !== button.style.display) button.style.display = 'none'\n if ('none' !== button.parentElement.style.display) button.parentElement.style.display = 'none'\n barRect = scrollBar ? scrollBar.getBoundingClientRect() : null\n }\n }\n }\n\n const onResize = () => {\n updateBar()\n handleScroll()\n }\n\n const bind = ({ onScroll }) => {\n if (scrollEvent !== onScroll) scrollEvent = onScroll\n mounted = true\n updateBar()\n }\n\n let observer = null\n if (element && container) {\n observer = new ResizeObserver(() => onResize())\n observer.observe(element)\n observer.observe(container)\n }\n\n const unbind = () => {\n mounted = false\n if (observer) observer.disconnect()\n listener.removeEventListener('mouseup', onMouseUp)\n listener.removeEventListener('mousedown', onMouseDown)\n listener.removeEventListener('mousemove', onMouseMove)\n listener.removeEventListener('mouseleave', onMouseLeave)\n listener.removeEventListener('wheel', onMouseWheel)\n listener.removeEventListener('touchstart', onTouchStart)\n listener.removeEventListener('touchend', onTouchEnd)\n listener.removeEventListener('touchmove', onTouchMove)\n }\n\n listener.addEventListener('mouseup', onMouseUp, { passive: false })\n listener.addEventListener('mousedown', onMouseDown, { passive: false })\n listener.addEventListener('mousemove', onMouseMove, { passive: false })\n listener.addEventListener('mouseleave', onMouseLeave, { passive: false })\n listener.addEventListener('wheel', onMouseWheel, { passive: false })\n listener.addEventListener('touchstart', onTouchStart, { passive: false })\n listener.addEventListener('touchend', onTouchEnd, { passive: false })\n listener.addEventListener('touchmove', onTouchMove, { passive: false })\n\n containerRect = container ? container.getBoundingClientRect() : null\n barRect = scrollBar ? scrollBar.getBoundingClientRect() : null\n\n return {\n unbind,\n bind,\n scrollTo,\n updateBar\n }\n}\n\nconst ScrollBar = props => {\n const scrollRef = useRef()\n const buttonRef = useRef()\n\n const margins = useRef()\n margins.current = props.margins\n\n const paddings = useRef()\n paddings.current = props.paddings\n\n const direction = useMemo(() => props.direction?.slice(0, 3), [props.direction])\n const ignoreClasses = useMemo(\n () =>\n Array.isArray(props.ignoreClasses)\n ? props.ignoreClasses\n : 'string' === typeof props.ignoreClasses\n ? props.ignoreClasses.split(' ')\n : [],\n [props.ignoreClasses]\n )\n\n useEffect(() => {\n const listener = props.listenerRef?.current\n const button = buttonRef.current\n const element = props.elementRef?.current\n scrollRef.current = Scroll({\n listener,\n button,\n element,\n direction,\n minButtonSize: props.minButtonSize,\n clickStep: props.clickStep,\n wheelStep: props.wheelStep,\n wheelEvents: props.wheelEvents,\n ignoreClasses: ignoreClasses.length ? ignoreClasses : null,\n margins,\n paddings\n })\n return () => scrollRef.current.unbind()\n }, [\n direction,\n ignoreClasses,\n props.clickStep,\n props.elementRef,\n props.listenerRef,\n props.minButtonSize,\n props.wheelEvents,\n props.wheelStep\n ])\n\n useEffect(() => {\n if (scrollRef && scrollRef.current) scrollRef.current.bind({ onScroll: props.onScroll })\n }, [props.onScroll, scrollRef])\n\n useEffect(() => {\n if (scrollRef && scrollRef.current) {\n scrollRef.current.scrollTo(props.scrollPosition)\n scrollRef.current.updateBar()\n }\n }, [props.scrollPosition, scrollRef])\n\n return (\n
    \n
    \n
    \n )\n}\n\nScrollBar.propTypes = {\n className: PropTypes.string,\n direction: PropTypes.string,\n listenerRef: PropTypes.object,\n elementRef: PropTypes.object,\n minButtonSize: PropTypes.number,\n wheelStep: PropTypes.number,\n clickStep: PropTypes.number,\n wheelEvents: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n ignoreClasses: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n scrollPosition: PropTypes.number,\n margins: PropTypes.object,\n paddings: PropTypes.object,\n onScroll: PropTypes.func\n}\n\nScrollBar.defaultProps = {\n direction: 'hor',\n minButtonSize: 32,\n wheelStep: 32,\n clickStep: 32,\n wheelEvents: 'bar shift',\n scrollPosition: 0,\n margins: {},\n paddings: { left: 100, right: 100 }\n}\n\nexport default ScrollBar\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nexport default class StaticBlock extends PureDataComponent {\n static propTypes = {\n element: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n content: PropTypes.string\n }\n\n render() {\n const { element, content, className, ...otherProps } = this.props\n return (\n {\n if ('string' == typeof element) {\n const foundElement = document.querySelector(element)\n if (foundElement) return foundElement.innerHTML\n } else if ('object' == typeof element && null != element.innerHTML) {\n return element.innerHTML\n }\n return ''\n })()\n }}\n {...otherProps}\n />\n )\n }\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport Popup, { PopupTrigger } from '@aytm/lib/rfd-ui/components/basic/popup'\n\nimport '@aytm/lib/rfd-ui/styles/basic/text-popup.scss'\n\nexport default class TextPopup extends Component {\n static propTypes = {\n trigger: PropTypes.string,\n text: PropTypes.string,\n content: PropTypes.string\n }\n\n @autobind\n renderContent() {\n const { content } = this.props\n\n return
    \n }\n\n render() {\n const { trigger = 'hover', text, ...props } = this.props\n return (\n \n \n \n \n \n )\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, List, fromJS } from 'immutable'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport railsPostFetch from '@aytm/lib/common/rails-post-fetch'\nimport CheckBox from '@aytm/lib/rfd-ui/components/basic/check-box'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\nimport InvoiceTable from '@aytm/lib/rfd-ui/components/payment/invoice-table'\n\nimport '@aytm/lib/rfd-ui/styles/payment/checkout.scss'\n\nexport default class Checkout extends PureDataComponent {\n static propTypes = {\n width: PropTypes.number,\n valuesWidth: PropTypes.number,\n checkBoxes: PropTypes.oneOfType([PropTypes.instanceOf(List), PropTypes.array]),\n checkoutButtonLabel: PropTypes.string,\n checkoutURL: PropTypes.string,\n invoiceURL: PropTypes.string,\n additionalData: PropTypes.oneOfType([PropTypes.instanceOf(Map), PropTypes.object]),\n invoice: PropTypes.oneOfType([PropTypes.instanceOf(Map), PropTypes.object]),\n beforeUpdate: PropTypes.func,\n update: PropTypes.func,\n afterUpdate: PropTypes.func,\n onUpdateData: PropTypes.func,\n cancelButtonLabel: PropTypes.string,\n onCancel: PropTypes.func,\n beforeCheckout: PropTypes.func,\n onCheckout: PropTypes.func,\n isReceipt: PropTypes.bool,\n receiptID: PropTypes.string\n }\n\n constructor(props) {\n super(props)\n this.updateData = null\n this.state = {\n invoice: Map(),\n launching: false,\n checkBoxes: List(),\n additionalData: Map(),\n invoiceError: false,\n updatingTable: false\n }\n }\n\n @autobind\n prepareLocalDataToSend() {\n const cbData = this.state.checkBoxes\n .filter(cb => cb.get('id'))\n .reduce((cbs, cb) => cbs.set(cb.get('id'), cb.get('checked')), Map())\n return Map.of('data', this.updateData).merge(this.state.additionalData).merge(cbData)\n }\n\n @autobind\n onPay() {\n if ('function' == typeof this.props.beforeCheckout) {\n const newInvoice = this.props.beforeCheckout(this.updateData, this.state.invoice)\n\n if (Map.isMap(newInvoice)) {\n this.setState({\n invoice:\n newInvoice.has('invoice_table') && !newInvoice.has('table')\n ? newInvoice.set('table', newInvoice.get('invoice_table')).delete('invoice_table')\n : newInvoice\n })\n return\n } else if (false === newInvoice) return\n }\n\n if (this.validate()) {\n this.setState({ launching: true })\n railsPostFetch(this.props.checkoutURL, {\n body: JSON.stringify(this.prepareLocalDataToSend())\n })\n .then(response => (response.ok ? response.json() : {}))\n .then(data => {\n if ('function' == typeof this.props.onCheckout && this.props.onCheckout(data)) return\n\n const invoice = data.invoice\n ? fromJS(data.invoice)\n : data.invoice_table && 'fail' == data.status\n ? Map({ table: fromJS(data.invoice_table) })\n : false\n invoice\n ? this.setState({\n launching: false,\n invoice: invoice,\n errorText: null\n })\n : this.setState({\n launching: false,\n errorText: null\n })\n })\n .catch(_error => {\n this.setState({\n launching: false,\n errorText: 'Something went wrong, please try again later'\n })\n })\n }\n }\n\n @autobind\n updateLocalData(props) {\n const newState = {}\n\n const _checkBoxes = Array.isArray(props.checkBoxes) ? fromJS(props.checkBoxes) : props.checkBoxes\n if (_checkBoxes) {\n newState.checkBoxes = _checkBoxes.map(d => d.set('error', null).set('checked', d.get('checked') || false))\n }\n\n if (props.invoice) {\n newState.invoice = Map.isMap(props.invoice) ? props.invoice : fromJS(props.invoice)\n if (newState.invoice.has('invoice_table') && !newState.invoice.has('table')) {\n newState.invoice = newState.invoice.set('table', newState.invoice.get('invoice_table')).delete('invoice_table')\n }\n }\n\n if (props.additionalData) {\n newState.additionalData =\n 'object' == typeof props.additionalData ? fromJS(props.additionalData) : props.additionalData\n }\n\n this.validateInvoiceData()\n\n this.setState(newState)\n }\n\n @autobind\n validate(checkBoxes) {\n const _checkBoxes = (checkBoxes ? checkBoxes : this.state.checkBoxes).map(d =>\n d.set('error', d.get('required') && !d.get('checked'))\n )\n\n const error = _checkBoxes.some(d => d.get('error'))\n this.setState({\n checkBoxes: _checkBoxes,\n error: error\n })\n return !error\n }\n\n @autobind\n checkBoxesChanged(event, num) {\n const _checkBoxes = this.state.checkBoxes.set(\n num,\n this.state.checkBoxes.get(num).withMutations(map => {\n map.set('checked', !map.get('checked'))\n map.set('error', null != map.get('error') ? map.get('required') && !map.get('checked') : null)\n })\n )\n\n !event.target.href &&\n this.setState({\n checkBoxes: _checkBoxes,\n error: !this.validate(_checkBoxes)\n })\n }\n\n @autobind\n prepareData(invoice, updateData) {\n if ('function' == typeof this.props.beforeUpdate) {\n const data = this.props.beforeUpdate(invoice, updateData)\n return Map.isMap(data) ? data : fromJS(data)\n }\n return updateData\n }\n\n @autobind\n beforeUpdate(invoice, updateData) {\n this.setState({\n errorText: null,\n updatingTable: true\n })\n return this.prepareData(invoice, updateData)\n }\n\n @autobind\n afterUpdate(invoice, updateData, additionalData) {\n this.setState({\n invoice: invoice,\n updatingTable: false\n })\n if ('function' == typeof this.props.afterUpdate) this.props.afterUpdate(invoice, updateData, additionalData)\n }\n\n @autobind\n validateInvoiceData() {\n const error1 = (this.state.invoice || List()).find(r => Map.isMap(r) && Boolean(r.get('error')), null, null)\n const error2 = (this.updateData || List()).find(\n r => Map.isMap(r) && (Boolean(r.get('error')) || ('paymentMethod' == r.get('type') && r.getIn(['value', 'new']))),\n null,\n null\n )\n\n const invoiceError = Boolean(error1) || Boolean(error2)\n if (invoiceError != this.state.invoiceError) this.setState({ invoiceError: invoiceError })\n }\n\n @autobind\n onUpdateData(updateData) {\n this.updateData = updateData\n this.validateInvoiceData()\n if ('function' == typeof this.props.onUpdateData) this.props.onUpdateData(updateData)\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n super.UNSAFE_componentWillReceiveProps(nextProps)\n this.updateLocalData(nextProps)\n }\n\n UNSAFE_componentWillMount() {\n super.UNSAFE_componentWillMount()\n this.updateLocalData(this.props)\n }\n\n //TODO: consider breaking into subrenders\n render() {\n const {\n width,\n valuesWidth,\n isReceipt,\n receiptID,\n invoiceURL,\n update,\n buttonLabel,\n onCancel,\n cancelButtonLabel,\n disabled\n } = this.props\n const { checkBoxes, launching, updatingTable, additionalData, invoiceError, error, errorText } = this.state\n const invoice = this.state.invoice.has('table')\n ? this.state.invoice\n : this.state.invoice.has('invoice_table')\n ? Map({ table: this.state.invoice.get('invoice_table') })\n : Map({ table: List() })\n\n return (\n
    \n \n {isReceipt && (\n
    \n

    Thanks for your business!

    \n

    We just emailed this receipt to you and account admins.

    \n
    \n )}\n
    \n {checkBoxes &&\n checkBoxes.map((d, i) => {\n const isLast = d === checkBoxes.last()\n return (\n \n
    \n this.checkBoxesChanged(event, i)}\n checked={d.get('checked') || false}\n label={d.get('label')}\n />\n
    \n
    \n {isLast && !isReceipt && (\n \n )}\n {isLast && 'function' == typeof onCancel && (\n
    \n
    \n )\n })}\n {(!checkBoxes || !checkBoxes.size) && (\n
    \n {'function' == typeof onCancel && (\n
    \n )}\n
    \n {!isReceipt && errorText &&
    {errorText}
    }\n
    \n )\n }\n}\n","/* global Stripe */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { Map, fromJS } from 'immutable'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport { listPipe, updateImmutableIfNeeded } from '@aytm/lib/common/func'\nimport MaterialTextField from '@aytm/lib/rfd-ui/components/basic/material-text-field'\nimport RadioButton from '@aytm/lib/rfd-ui/components/basic/radio-button'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\nimport StripeLockSvg from '@aytm/lib/rfd-ui/images/stripe/stripe-lock.svg'\n\nimport '@aytm/lib/rfd-ui/styles/payment/stripe-ach.scss'\n\nconst INVALID_FIELDS_ERROR_MESSAGE = 'Please fill highlighted fields.'\nconst STRIPE_REQUEST_FAILED_ERROR_MESSAGE = 'Unable to process request. Please try again or contact us.'\n\nlet stripeLibraryIncluded = false\nfunction ensureStripeLibrary() {\n return new Promise((resolve /*, reject*/) => {\n if ('undefined' == typeof Stripe && !stripeLibraryIncluded) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = 'https://js.stripe.com/v2/'\n document.querySelector('head').appendChild(script)\n stripeLibraryIncluded = true\n }\n const checkLib = () => {\n if ('undefined' != typeof Stripe) resolve(Stripe)\n else {\n setTimeout(checkLib, 500)\n }\n }\n checkLib()\n })\n}\n\nexport default class StripeACH extends PureDataComponent {\n static propTypes = {\n stripeKey: PropTypes.string.isRequired,\n title: PropTypes.string,\n routingNumber: PropTypes.string,\n accountNumber: PropTypes.string,\n accountHolderName: PropTypes.string,\n accountHolderType: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onSave: PropTypes.func.isRequired,\n onCancel: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n this.state = {\n title: props.title || '',\n routingNumber: props.routingNumber || '',\n accountNumber: props.accountNumber || '',\n accountHolderName: props.accountHolderName || '',\n accountHolderType: props.accountHolderType || 'individual',\n errors: Map(),\n errorMessage: null,\n saving: false,\n stripeLoaded: 'undefined' != typeof Stripe\n }\n this.stripeHandler = null\n this.mounted = false\n this.onBlurValidators = {}\n ensureStripeLibrary()\n }\n\n @autobind\n onTitleChange(newValue /*, oldValue*/) {\n if (this.state.saving || !this.mounted) return\n this.setState({ title: newValue.replace(/(^\\s+|\\s+$)/g, '') })\n }\n\n @autobind\n onRoutingNumberChange(newValue /*, oldValue*/) {\n if (this.state.saving || !this.mounted) return\n this.setState({ routingNumber: newValue.replace(/(^\\s+|\\s+$)/g, '') })\n }\n\n @autobind\n onAccountNumberChange(newValue /*, oldValue*/) {\n if (this.state.saving || !this.mounted) return\n this.setState({ accountNumber: newValue.replace(/(^\\s+|\\s+$)/g, '') })\n }\n\n @autobind\n onAccountHolderNameChange(newValue /*, oldValue*/) {\n if (this.state.saving || !this.mounted) return\n this.setState({ accountHolderName: newValue.replace(/(^\\s+|\\s+$)/g, '') })\n }\n\n @autobind\n setAccountHolderTypeToIndividual() {\n if (this.state.saving || !this.mounted) return\n this.setState({ accountHolderType: 'individual' })\n }\n\n @autobind\n setAccountHolderTypeToCompany() {\n if (this.state.saving || !this.mounted) return\n this.setState({ accountHolderType: 'company' })\n }\n\n @autobind\n onCancelButton() {\n const { onCancel } = this.props\n if ('function' == typeof onCancel) onCancel()\n }\n\n @autobind\n onSaveButton() {\n const { onSave } = this.props\n if (0 == this.validate().count(v => v)) {\n if (this.mounted)\n this.setState({\n errorMessage: null,\n saving: true\n })\n ensureStripeLibrary().then(Stripe => {\n const { title, routingNumber, accountNumber, accountHolderName, accountHolderType } = this.state\n const { stripeKey } = this.props\n\n Stripe.setPublishableKey(stripeKey)\n Stripe.bankAccount.createToken(\n {\n country: 'US',\n currency: 'USD',\n routing_number: routingNumber,\n account_number: accountNumber,\n account_holder_name: accountHolderName,\n account_holder_type: accountHolderType\n },\n (_status, response) => {\n if (!response || response.error) {\n const errorMessage =\n response && response.error && response.error.message\n ? response.error.message\n : STRIPE_REQUEST_FAILED_ERROR_MESSAGE\n if (this.mounted)\n this.setState({\n saving: false,\n errorMessage: errorMessage\n })\n } else {\n if ('function' == typeof onSave) {\n const willSave = onSave(fromJS({ title, token: response }), Promise)\n Promise.resolve(willSave).then(\n (saved, errorMessage) => {\n if (this.mounted)\n this.setState({\n saving: null == saved ? false : !saved,\n errorMessage: errorMessage\n })\n },\n () => {\n if (this.mounted)\n this.setState({\n saving: false,\n errorMessage: STRIPE_REQUEST_FAILED_ERROR_MESSAGE\n })\n }\n )\n } else if (this.mounted)\n this.setState({\n errorMessage: STRIPE_REQUEST_FAILED_ERROR_MESSAGE,\n saving: false\n })\n }\n }\n )\n })\n }\n }\n\n @autobind\n validate(only) {\n const { title, routingNumber, accountNumber, accountHolderName } = this.state\n const errors = listPipe(\n [\n errors => (only && 'title' != only ? errors : updateImmutableIfNeeded(errors, 'title', !title)),\n errors =>\n only && 'routingNumber' != only\n ? errors\n : updateImmutableIfNeeded(\n errors,\n 'routingNumber',\n !Stripe.bankAccount.validateRoutingNumber(routingNumber, 'US')\n ),\n errors =>\n only && 'accountNumber' != only\n ? errors\n : updateImmutableIfNeeded(\n errors,\n 'accountNumber',\n !Stripe.bankAccount.validateAccountNumber(accountNumber, 'US')\n ),\n errors =>\n only && 'accountHolderName' != only\n ? errors\n : updateImmutableIfNeeded(errors, 'accountHolderName', !accountHolderName)\n ],\n this.state.errors\n )\n if (this.mounted && errors != this.state.errors) {\n this.setState({\n errors,\n errorMessage: 0 == errors.count(v => v) ? null : INVALID_FIELDS_ERROR_MESSAGE\n })\n }\n return errors\n }\n\n @autobind\n onBlurValidator(field) {\n return (\n this.onBlurValidators[field] ||\n (this.onBlurValidators[field] = () => {\n this.validate(field)\n })\n )\n }\n\n UNSAFE_componentWillMount() {\n super.UNSAFE_componentWillMount()\n this.setState({ saving: false })\n\n ensureStripeLibrary().then((/*Stripe*/) => {\n if (this.mounted) this.setState({ stripeLoaded: true })\n })\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n this.stripeHandler = null\n }\n\n //TODO: consider breaking into subrenders\n render() {\n const { width } = this.props\n const {\n title,\n routingNumber,\n accountNumber,\n accountHolderName,\n accountHolderType,\n saving,\n stripeLoaded,\n errors,\n errorMessage\n } = this.state\n return (\n
    \n
    \n
    \n \"\"\n
    \n Securely add your payment information directly to our payment processing company, Stripe, using SSL\n encrypted connection.\n
    \n We use PCI compliant technology to keep you safe.\n
    \n We never see nor store your full billing info on our servers.\n
    \n
    \n
    \n \n
    \n
    \n \n
     
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
     
    \n \n
    \n {errorMessage &&
    {errorMessage}
    }\n
    \n \n \n
    \n
    \n
    \n )\n }\n}\n","/* global StripeCheckout */\n\nimport PropTypes from 'prop-types'\nimport { Map, fromJS } from 'immutable'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\nimport autobind from 'autobind-decorator'\nimport { listPipe } from '@aytm/lib/common/func'\n\nimport StripeLockIcon from '@aytm/lib/rfd-ui/images/stripe/stripe-lock.png'\n\nimport '@aytm/lib/rfd-ui/styles/payment/stripe-credit-card.scss'\n\nlet stripeCheckoutLibraryIncluded = false\n\nfunction ensureStripeCheckoutLibrary() {\n return new Promise((resolve /*, reject*/) => {\n if ('undefined' == typeof StripeCheckout && !stripeCheckoutLibraryIncluded) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = 'https://checkout.stripe.com/checkout.js'\n document.querySelector('head').appendChild(script)\n stripeCheckoutLibraryIncluded = true\n }\n const checkLib = () => {\n if ('undefined' != typeof StripeCheckout) resolve(StripeCheckout)\n else {\n setTimeout(checkLib, 500)\n }\n }\n checkLib()\n })\n}\n\nexport default class UpdatePayment extends PureDataComponent {\n static propTypes = {\n stripeKey: PropTypes.string.isRequired,\n stripeIcon: PropTypes.string,\n email: PropTypes.string,\n title: PropTypes.string,\n token: PropTypes.instanceOf(Map),\n returnFullToken: PropTypes.bool,\n onUpdate: PropTypes.func,\n onShow: PropTypes.func,\n onClose: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n this.state = {\n title: props.title || '',\n token: props.token || null,\n saving: false,\n stripeLoaded: 'undefined' != typeof StripeCheckout\n }\n this.mounted = false\n this.stripeHandler = null\n ensureStripeCheckoutLibrary()\n }\n\n @autobind\n onStripeToken(token /*, args*/) {\n if (this.mounted) this.setState({ token: token })\n const { onUpdate } = this.props\n if ('function' == typeof onUpdate) onUpdate(this.dataForCallbacks())\n }\n\n @autobind\n dataForCallbacks(title = this.state.title, token = this.state.token) {\n const { returnFullToken } = this.props\n return Map({\n title,\n token: returnFullToken ? token : Map.isMap(token) ? token.get('id') : null\n })\n }\n\n @autobind\n configureStripeCheckout(stripeKey = this.props.stripeKey) {\n ensureStripeCheckoutLibrary().then(StripeCheckout => {\n this.stripeHandler = StripeCheckout.configure({\n key: stripeKey,\n token: (token, args) => {\n this.onStripeToken(fromJS(token), args)\n }\n })\n if (this.mounted) this.setState({ stripeLoaded: true })\n })\n }\n\n @autobind\n showStripeCheckout() {\n const { email, stripeIcon, onClose } = this.props\n ensureStripeCheckoutLibrary().then((/*StripeCheckout*/) => {\n if (this.stripeHandler)\n this.stripeHandler.open({\n image: stripeIcon || StripeLockIcon,\n locale: 'auto',\n name: 'aytm.com',\n description: 'Update Credit Card via Stripe',\n panelLabel: 'UPDATE CREDIT CARD',\n allowRememberMe: false,\n zipCode: true,\n email: email,\n closed: () => {\n if ('function' == typeof onClose) onClose()\n }\n })\n\n const { onShow } = this.props\n if ('function' == typeof onShow) onShow()\n })\n }\n\n UNSAFE_componentWillMount() {\n super.UNSAFE_componentWillMount()\n this.mounted = true\n const { title, token } = this.props\n this.setState({ title: title || '', token })\n this.configureStripeCheckout()\n }\n\n componentDidMount() {\n super.componentDidMount()\n this.showStripeCheckout()\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n this.stripeHandler = null\n this.mounted = false\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const newState = listPipe([s => (nextProps.token != this.props.token ? s.set('token', nextProps.token) : s)], Map())\n if (newState.count()) this.setState(newState.toJS())\n\n if (nextProps.stripeKey != this.props.stripeKey) this.configureStripeCheckout(nextProps.stripeKey)\n }\n\n render() {\n return null\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport ImagePin from '@aytm/lib/rfd-ui/components/basic/image-pin'\nimport ImagePreview from '@aytm/app/survey/editor/components/content/assets/ImagePreview'\nimport Popup from '@aytm/lib/rfd-ui/components/basic/popup'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/swidget/image-item.scss'\nimport { SwidgetImage } from '@aytm/app/swidget/questions/components/common/swidget-image'\n\nexport default class ImageItem extends PureDataComponent {\n static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n baseURL: PropTypes.string.isRequired,\n previewURL: PropTypes.string.isRequired,\n direction: PropTypes.string.isRequired,\n isMobile: PropTypes.bool,\n scrolling: PropTypes.bool\n }\n\n render() {\n const { width, direction, isMobile, scrolling, inFrame, picture, imageCallback } = this.props\n\n return (\n
    \n {isMobile ? (\n \n ) : !inFrame ? (\n (\n \n )}\n contentTheme=\"thin-black\"\n >\n \n \n ) : (\n \n )}\n
    \n )\n }\n}\n","import React, { FC, useMemo } from 'react'\nimport { ISmileysConfig, ISmileysCustomColorCSSProperties, ISmileysProps } from './types'\n\nimport '@aytm/lib/rfd-ui/styles/swidget/smileys.scss'\n\nexport const DEFAULT_SMILEYS_CONFIG: ISmileysConfig = {\n 2: [\n { value: 0, icon: 'icon-aytmfd-sad-emoticon', emote: 'sad', label: 'sad smiley' },\n { value: 1, icon: 'icon-aytmfd-happy-emoticon', emote: 'happy', label: 'happy smiley' }\n ],\n 3: [\n { value: 0, icon: 'icon-aytmfd-sad-emoticon', emote: 'sad', label: 'sad smiley' },\n { value: 1, icon: 'icon-aytmfd-indifferent-emoticon', emote: 'indifferent', label: 'indifferent smiley' },\n { value: 2, icon: 'icon-aytmfd-happy-emoticon', emote: 'happy', label: 'happy smiley' }\n ],\n 5: [\n { value: 0, icon: 'icon-aytmfd-angry-emoticon', emote: 'angry', label: 'angry smiley' },\n { value: 1, icon: 'icon-aytmfd-sad-emoticon', emote: 'sad', label: 'sad smiley' },\n { value: 2, icon: 'icon-aytmfd-indifferent-emoticon', emote: 'indifferent', label: 'indifferent smiley' },\n { value: 3, icon: 'icon-aytmfd-happy-emoticon', emote: 'happy', label: 'happy smiley' },\n { value: 4, icon: 'icon-aytmfd-excited-emoticon', emote: 'excited', label: 'excited smiley' }\n ]\n}\n\nconst Smileys: FC = ({\n typesAmount = 3,\n smileys = DEFAULT_SMILEYS_CONFIG[`${typesAmount}`],\n selected,\n color,\n activeColor,\n focusColor,\n 'aria-label': ariaLabel,\n 'aria-required': ariaRequired = true,\n onChange,\n onEnter,\n onLeave\n}) => {\n const findNextSmiley = () => {\n const currentSmileyIndex = smileys.findIndex(smiley => smiley.value === selected)\n const nextSmileyIndex = currentSmileyIndex + 1\n return smileys[nextSmileyIndex] || smileys[smileys.length - 1]\n }\n\n const findPrevSmiley = () => {\n const currentSmileyIndex = smileys.findIndex(smiley => smiley.value === selected)\n return 0 < currentSmileyIndex ? smileys[currentSmileyIndex - 1] : smileys[0]\n }\n\n const onKeyDown: React.KeyboardEventHandler = event => {\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown': {\n if (onChange) {\n const nextSmiley = findNextSmiley()\n if (nextSmiley.value != selected) {\n onChange(nextSmiley.value)\n }\n }\n break\n }\n case 'ArrowLeft':\n case 'ArrowUp': {\n if (onChange) {\n const prevSmiley = findPrevSmiley()\n if (prevSmiley.value != selected) {\n onChange(prevSmiley.value)\n }\n }\n break\n }\n default: {\n break\n }\n }\n }\n\n const customColorStyle: ISmileysCustomColorCSSProperties = useMemo(\n () =>\n color || activeColor || focusColor\n ? Object.assign(\n {},\n color ? { '--smileys-color': color } : null,\n activeColor ? { '--smileys-active-color': activeColor } : null,\n focusColor ? { '--smileys-focus-color': focusColor } : null\n )\n : null,\n [activeColor, color, focusColor]\n )\n\n return (\n \n {smileys.map(smiley => (\n void onChange(smiley.value) : null}\n onMouseEnter={onEnter ? () => void onEnter(smiley.value) : null}\n key={smiley.value}\n data-testid=\"SW-Smile\"\n role=\"radio\"\n aria-checked={selected == smiley.value}\n aria-label={smiley.label || `${smiley.value}`}\n >\n \n
    \n ))}\n \n )\n}\nexport default Smileys\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { Range } from 'immutable'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/swidget/stars.scss'\n\nexport const DEFAULT_STAR_ICON = 'icon-aytmfd-star'\nexport const DEFAULT_NA_ICON = 'icon-aytmfd-na'\n\nexport default class Stars extends PureDataComponent {\n static propTypes = {\n stars: PropTypes.number.isRequired,\n na: PropTypes.bool,\n selected: PropTypes.number,\n starIcon: PropTypes.string,\n naIcon: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func\n }\n\n constructor(props) {\n super(props)\n this.state = {\n over: null\n }\n }\n\n @autobind\n onChange(starN) {\n const { onChange } = this.props\n if ('function' == typeof onChange) onChange(starN)\n }\n\n @autobind\n onEnter(starN) {\n this.setState({ over: starN })\n const { onEnter } = this.props\n if ('function' == typeof onEnter) onEnter(starN)\n }\n\n @autobind\n onLeave() {\n this.setState({ over: null })\n const { onLeave } = this.props\n if ('function' == typeof onLeave) onLeave()\n }\n\n render() {\n const { stars, na, size, selected, starIcon = DEFAULT_STAR_ICON, naIcon = DEFAULT_NA_ICON } = this.props\n const { over } = this.state\n return (\n
    \n {Range(0, stars)\n .map(i => (\n i : over > i\n })}\n key={i}\n onClick={() => this.onChange(i + 1)}\n onMouseEnter={() => this.onEnter(i + 1)}\n style={{ height: size, width: size }}\n data-testid=\"SW-Star\"\n >\n \n
    \n ))\n .toArray()}\n {na && (\n this.onChange(0)}\n onMouseEnter={() => this.onEnter(0)}\n style={{ height: size, width: size }}\n >\n \n \n )}\n \n )\n }\n}\n","// lib\nimport { Map } from 'immutable'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport useMountedRef from '@aytm/lib/hooks/useMountedRef'\nimport { fromEvent as ObservableFromEvent, merge as rxMerge } from 'rxjs'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { map as rxMap, mapTo as rxMapTo, mergeMap as rxMergeMap, takeUntil as rxTakeUntil } from 'rxjs/operators'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/target-market/sample-size.scss'\n\n// \nSampleSize.propTypes = {\n data: PropTypes.instanceOf(Map).isRequired, // Map({ value, ranges, positions, minSampleSize, maxSampleSize })\n readOnly: PropTypes.bool,\n onUpdate: PropTypes.func,\n className: PropTypes.string,\n sliderWidth: PropTypes.number.isRequired // pixels\n}\nexport default React.memo(\n SampleSize,\n (prevProps, nextProps) =>\n prevProps.data == nextProps.data &&\n prevProps.locale == nextProps.locale &&\n prevProps.onUpdate == nextProps.onUpdate &&\n prevProps.readOnly == nextProps.readOnly &&\n prevProps.className == nextProps.className\n)\nexport function SampleSize(props, _context) {\n const mountedRef = useMountedRef()\n const { data: dataProp, onUpdate: onUpdateProp } = props\n const { readOnly, className, sliderWidth } = props\n const sliderRef = useRef(null)\n const dragHandleRef = useRef(null)\n\n // init prop data\n const [data, setData] = useState(dataStateMap(dataProp))\n\n const { value, ranges, positions, sliderMax, sliderMin, minInputSampleSize } = data\n\n // onUpdate\n const onUpdate = useCallback(\n value => void ('function' === typeof onUpdateProp && onUpdateProp(value)),\n [onUpdateProp]\n )\n const onUpdateRef = useRef(null)\n onUpdateRef.current = onUpdate\n\n // sample size\n const [sampleSize, setSampleSize] = useState(validateSampleSize(value, sliderMin, sliderMax))\n\n // sample size input\n const sampleSizeInputRef = useRef(null)\n const updateSampleSizeOnKeyPress = useCallback(\n event => {\n if (13 === event.keyCode && sampleSizeInputRef.current) {\n const value = validateSampleSize(event.target.value, minInputSampleSize, sliderMax)\n sampleSizeInputRef.current.value = value\n onUpdate(value)\n }\n },\n [sliderMax, onUpdate, minInputSampleSize]\n )\n // on sampleSize input blur\n const onInputBlur = () => {\n if (sampleSizeInputRef.current) {\n const value = validateSampleSize(sampleSizeInputRef.current.value, minInputSampleSize, sliderMax)\n sampleSizeInputRef.current.value = value\n onUpdate(value)\n }\n }\n\n // slider position\n const [sliderPosition, setSliderPosition] = useState(getSliderPosition(sampleSize, positions))\n useEffect(() => {\n if (sampleSizeInputRef.current) {\n sampleSizeInputRef.current.value = sampleSize\n }\n setSliderPosition(getSliderPosition(sampleSize, positions))\n }, [positions, sampleSize])\n\n // ranges\n const rangesList = useMemo(\n () =>\n ranges.map(range => {\n const from = positionIdBySampleSize(range.from, positions)\n const to = positionIdBySampleSize(range.to, positions)\n const width = (sliderWidth / positions.length) * (to - from)\n return { ...range, width }\n }),\n [sliderWidth, ranges, positions]\n )\n const activeRange = getActiveRange(sampleSize, rangesList)\n const sliderBgStyle = {\n width: (sampleSize <= positions[0] ? 0 : sliderPosition + 1).toString() + '%',\n backgroundColor: activeRange.bgColor\n }\n\n // drag slider subscription\n const unsubscribeRef = useRef(null)\n useEffect(() => {\n if (unsubscribeRef.current && 'function' == typeof unsubscribeRef.current) {\n unsubscribeRef.current()\n unsubscribeRef.current = null\n }\n if (!readOnly) {\n unsubscribeRef.current = dragArrow({\n sampleSizeInputRef,\n dragHandleRef,\n setSampleSize,\n onUpdateRef,\n sliderMax,\n sliderMin,\n positions,\n stepSize: sliderWidth / positions.length\n })\n }\n return unsubscribeRef.current ? unsubscribeRef.current : void 0\n }, [positions, readOnly, sliderMax, sliderMin, sliderWidth])\n\n // on data prop update\n useEffect(() => {\n if (mountedRef.current) {\n const newSampleSize = dataProp.get('value')\n sampleSizeInputRef.current.value = newSampleSize\n setData(dataStateMap(dataProp))\n setSampleSize(validateSampleSize(newSampleSize, minInputSampleSize, sliderMax))\n }\n }, [dataProp, sliderMax, mountedRef, minInputSampleSize])\n\n const onSliderClick = event => {\n const slider = sliderRef.current.getBoundingClientRect()\n const id = Math.min(\n positions.length - 1,\n Math.round(((positions.length - 1) / slider.width) * (event.clientX - slider.x))\n )\n const newSampleSize = validateSampleSize(positions[id], sliderMin, sliderMax)\n sampleSizeInputRef.current.value = newSampleSize\n onUpdate(newSampleSize)\n }\n\n return (\n \n
    \n \n \n \n {sampleSize}\n
    {renderArrow()}
    \n
    \n
    \n {rangesList.map((range, id) => (\n \n {range.label}\n \n ))}\n
    \n
    \n
    \n \n
    \n \n )\n}\n\nfunction renderArrow() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction dataStateMap(data = Map()) {\n return {\n value: data.get('value'),\n ranges: data.get('ranges'),\n positions: data.get('positions'),\n sliderMin: data.get('sliderMin'),\n sliderMax: data.get('sliderMax'),\n minInputSampleSize: data.get('minInputSampleSize')\n }\n}\n\nfunction dragArrow(payload = {}) {\n const { stepSize, positions, sliderMin, sliderMax, setSampleSize, dragHandleRef, sampleSizeInputRef, onUpdateRef } =\n payload\n const firstPosition = positions[0]\n const lastPosition = positions[positions.length - 1]\n const dragElement = dragHandleRef.current\n const mousedown = ObservableFromEvent(dragElement, 'mousedown')\n const mousemove = ObservableFromEvent(document, 'mousemove')\n const mouseup = ObservableFromEvent(document, 'mouseup')\n const clicks = rxMerge(mousedown.pipe(rxMapTo('startDrag')), mouseup.pipe(rxMapTo('stopDrag')))\n const mousedrag = mousedown.pipe(\n rxMergeMap(function (md) {\n const startX = md.clientX\n const startPositionID = positionIdBySampleSize(sampleSizeInputRef.current.value, positions)\n // calculate sampleSize\n return mousemove.pipe(\n rxMap(function (mm) {\n mm.preventDefault()\n const newPositionID = startPositionID + Math.round((mm.clientX - startX) / stepSize)\n return 0 > newPositionID\n ? firstPosition\n : positions.length - 1 < newPositionID\n ? lastPosition\n : positions[newPositionID]\n }),\n rxTakeUntil(mouseup)\n )\n })\n )\n // update sampleSize\n const dragSubscription = mousedrag.subscribe(\n sampleSize => void setSampleSize(validateSampleSize(sampleSize, sliderMin, sliderMax))\n )\n\n // update cursor style\n let lastClickValue = 'stopDrag'\n const clicksSubscription = clicks.subscribe(value => {\n if ('startDrag' === lastClickValue && 'stopDrag' == value) {\n dragElement.style.cursor = 'grab'\n dragElement.classList.toggle('active')\n if ('function' == typeof onUpdateRef.current) {\n onUpdateRef.current(sampleSizeInputRef.current.value)\n }\n } else if ('stopDrag' === lastClickValue && 'startDrag' == value) {\n dragElement.style.cursor = 'grabbing'\n dragElement.classList.toggle('active')\n }\n lastClickValue = value\n })\n\n return () => {\n clicksSubscription.unsubscribe()\n dragSubscription.unsubscribe()\n }\n}\n\nfunction getActiveRange(sampleSize, ranges) {\n return ranges.find(range => range.from <= sampleSize && sampleSize <= range.to)\n}\nfunction getSliderPosition(sampleSize, positions) {\n return (100 / positions.length) * positionIdBySampleSize(sampleSize, positions)\n}\nfunction validateSampleSize(sampleSize, minSampleSize, maxSampleSize) {\n const value = parseInt(sampleSize, 10) || 0\n return minSampleSize > value ? minSampleSize : maxSampleSize < value ? maxSampleSize : value\n}\nfunction positionIdBySampleSize(sampleSize, positions) {\n return positions.reduce(\n (prevID, _, currID) =>\n Math.abs(positions[currID] - sampleSize) < Math.abs(positions[prevID] - sampleSize) ? currID : prevID,\n 0\n )\n}\n","import { useEffect } from 'react'\n\nexport const useOuterClickListener =\n /**\n *\n * @param {import('./outer-click-listener.d.ts').UseOuterClickListenerProps} args\n */\n args => {\n const { ref, listen = false, onClick, onKeyDown } = args || {}\n useEffect(() => {\n if (listen) {\n const click = event => {\n if (listen && ref && ref.current && onClick) {\n const element = ref.current.contains\n ? ref.current\n : ref.current.getElement\n ? ref.current.getElement()\n : null\n if (element && !element.contains(event.target)) {\n onClick(event)\n }\n }\n }\n const keyDown = event => {\n if (listen && onKeyDown) {\n onKeyDown(event)\n }\n }\n if (onClick) document.addEventListener('click', click)\n if (onKeyDown) document.addEventListener('keydown', keyDown)\n return () => {\n if (onClick) document.removeEventListener('click', click)\n if (onKeyDown) document.removeEventListener('keydown', keyDown)\n }\n } else return () => {}\n }, [listen, ref, onClick, onKeyDown])\n }\n\nexport default useOuterClickListener\n","\nexport function getComponent(name) {\n const [section, ...componentPath] = name.split('.');\n const componentName = componentPath.join('.');\n return new Promise( (resolve, reject) => {\n if (0 == componentName.length || 0 == section.length) { reject(\"invalid component's name\"); return; }\n if (false) {\n } else if (\"advanced\" == section) {\n const components = {\n 'autocomplete': require('./components/advanced/autocomplete').default\n ,'colorComplex': require('./components/advanced/color-complex').default\n ,'colorPalette': require('./components/advanced/color-palette').default\n ,'colorPickerPopup': require('./components/advanced/color-picker-popup').default\n ,'colorPicker': require('./components/advanced/color-picker').default\n ,'dateRangePicker': require('./components/advanced/date-range-picker').default\n ,'dateTimePicker': require('./components/advanced/date-time-picker').default\n ,'imageGallery': require('./components/advanced/image-gallery').default\n ,'pagination': require('./components/advanced/pagination').default\n ,'rangeSlider': require('./components/advanced/range-slider').default\n ,'richTextCounter': require('./components/advanced/rich-text-counter').default\n ,'richText': require('./components/advanced/rich-text').default\n ,'slider': require('./components/advanced/slider').default\n ,'surveyEstimator': require('./components/advanced/survey-estimator').default\n ,'tabbedSidebar': require('./components/advanced/tabbed-sidebar').default\n ,'tagsList': require('./components/advanced/tags-list').default\n ,'toggle': require('./components/advanced/toggle').default\n ,'tutorialVideoList': require('./components/advanced/tutorial-video-list').default\n ,'tutorialVideo': require('./components/advanced/tutorial-video').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else if (\"assets\" == section) {\n const components = {\n 'assetFilesUploader': require('./components/assets/asset-files-uploader').default\n ,'uploadAssetsButton': require('./components/assets/upload-assets-button').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else if (\"basic\" == section) {\n const components = {\n 'autosizedInput': require('./components/basic/autosized-input').default\n ,'button': require('./components/basic/button').default\n ,'checkBox': require('./components/basic/check-box').default\n ,'clickOutside': require('./components/basic/click-outside').default\n ,'clickTarget': require('./components/basic/click-target').default\n ,'dropdownMenu': require('./components/basic/dropdown-menu').default\n ,'dropdown': require('./components/basic/dropdown').default\n ,'formattedInput': require('./components/basic/formatted-input').default\n ,'hoverTarget': require('./components/basic/hover-target').default\n ,'imagePin': require('./components/basic/image-pin').default\n ,'imagePopup': require('./components/basic/image-popup').default\n ,'inlineSearch': require('./components/basic/inline-search').default\n ,'inlineSelect': require('./components/basic/inline-select').default\n ,'label': require('./components/basic/label').default\n ,'lightBox': require('./components/basic/light-box').default\n ,'loaderDots': require('./components/basic/loader-dots').default\n ,'loaderWave': require('./components/basic/loader-wave').default\n ,'maskedInput': require('./components/basic/masked-input').default\n ,'materialTextField': require('./components/basic/material-text-field').default\n ,'multiSelect': require('./components/basic/multi-select').default\n ,'pagination': require('./components/basic/pagination').default\n ,'popup': require('./components/basic/popup').default\n ,'portal': require('./components/basic/portal').default\n ,'radioButton': require('./components/basic/radio-button').default\n ,'rolldown': require('./components/basic/rolldown').default\n ,'scrollBar': require('./components/basic/scroll-bar').default\n ,'select': require('./components/basic/select').default\n ,'staticBlock': require('./components/basic/static-block').default\n ,'textField': require('./components/basic/text-field').default\n ,'textPopup': require('./components/basic/text-popup').default\n ,'videoPopup': require('./components/basic/video-popup').default\n ,'webcam': require('./components/basic/webcam').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else if (\"payment\" == section) {\n const components = {\n 'checkout': require('./components/payment/checkout').default\n ,'invoiceTable': require('./components/payment/invoice-table').default\n ,'selectPayment': require('./components/payment/select-payment').default\n ,'stripeAch': require('./components/payment/stripe-ach').default\n ,'stripeCreditCard': require('./components/payment/stripe-credit-card').default\n ,'updateStripeCreditCard': require('./components/payment/update-stripe-credit-card').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else if (\"swidget\" == section) {\n const components = {\n 'imageItem': require('./components/swidget/image-item').default\n ,'smileys': require('./components/swidget/smileys').default\n ,'stars': require('./components/swidget/stars').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else if (\"target-market\" == section) {\n const components = {\n 'sampleSize': require('./components/target-market/sample-size').default\n };\n if (null != components[componentName]) resolve(components[componentName]);\n else reject(\"invalid component's name\");\n } else reject(\"invalid component's name\");\n });\n}\n\nexport function getImmutableLib() {\n return require('immutable');\n}\n\nexport function getJisonLib() {\n return require('jison');\n}\n\nexport function getMomentLib() {\n return require('moment');\n}\n\nexport function getReact() {\n return require('react');\n}\n\nexport function getReactDOM() {\n return require('react-dom');\n}\n\nexport function renderComponent(componentClassOrName, props, el) {\n return new Promise( (resolve, reject) => {\n if (null == componentClassOrName) { reject('component not specified'); return; } \n if (null == el) { reject('element not specified'); return; }\n const React = require('react');\n const ReactDOM = require('react-dom');\n const doRender = (componentClass) => {\n const element = React.createElement(componentClass, props);\n ReactDOM.render(element, el);\n resolve(element);\n };\n if (\"string\" == typeof componentClassOrName) {\n getComponent(componentClassOrName)\n .then((componentClass) => doRender(componentClass))\n .catch((reason) => reject(reason));\n } else doRender(componentClassOrName);\n });\n}\n\nexport function unlinkComponent(element) {\n return new Promise( (resolve, reject) => {\n const ReactDOM = require('react-dom');\n if (null == element) { reject('element not specified'); return; }\n resolve( ReactDOM.unmountComponentAtNode(element) );\n });\n}\n\nexport function listComponents() {\n return new Promise( (resolve, reject) => {\n resolve({\n 'advanced': ['autocomplete', 'colorComplex', 'colorPalette', 'colorPickerPopup', 'colorPicker', 'dateRangePicker', 'dateTimePicker', 'imageGallery', 'pagination', 'rangeSlider', 'richTextCounter', 'richText', 'slider', 'surveyEstimator', 'tabbedSidebar', 'tagsList', 'toggle', 'tutorialVideoList', 'tutorialVideo']\n ,'assets': ['assetFilesUploader', 'uploadAssetsButton']\n ,'basic': ['autosizedInput', 'button', 'checkBox', 'clickOutside', 'clickTarget', 'dropdownMenu', 'dropdown', 'formattedInput', 'hoverTarget', 'imagePin', 'imagePopup', 'inlineSearch', 'inlineSelect', 'label', 'lightBox', 'loaderDots', 'loaderWave', 'maskedInput', 'materialTextField', 'multiSelect', 'pagination', 'popup', 'portal', 'radioButton', 'rolldown', 'scrollBar', 'select', 'staticBlock', 'textField', 'textPopup', 'videoPopup', 'webcam']\n ,'payment': ['checkout', 'invoiceTable', 'selectPayment', 'stripeAch', 'stripeCreditCard', 'updateStripeCreditCard']\n ,'swidget': ['imageItem', 'smileys', 'stars']\n ,'target-market': ['sampleSize']\n });\n });\n}\n\nif (\"undefined\" != typeof window) {\n window['$RFDUI'] || (window['$RFDUI'] = {});\n\n window['$RFDUI']['getComponent'] = getComponent;\n window['$RFDUI']['renderComponent'] = renderComponent;\n window['$RFDUI']['getImmutableLib'] = getImmutableLib;\n window['$RFDUI']['getJisonLib'] = getJisonLib;\n window['$RFDUI']['getMomentLib'] = getMomentLib;\n window['$RFDUI']['getReact'] = getReact;\n window['$RFDUI']['getReactDOM'] = getReactDOM;\n window['$RFDUI']['unlinkComponent'] = unlinkComponent;\n window['$RFDUI']['listComponents'] = listComponents;\n}\n","import * as React from 'react';\nimport PrimeReact, { localeOption } from 'primereact/api';\nimport { CSSTransition } from 'primereact/csstransition';\nimport { useOverlayListener, useMountEffect, useUnmountEffect } from 'primereact/hooks';\nimport { OverlayService } from 'primereact/overlayservice';\nimport { Portal } from 'primereact/portal';\nimport { Ripple } from 'primereact/ripple';\nimport { UniqueComponentId, DomHandler, ZIndexUtils, ObjectUtils, classNames } from 'primereact/utils';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nvar OverlayPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visibleState = _React$useState2[0],\n setVisibleState = _React$useState2[1];\n var attributeSelector = React.useRef('');\n var overlayRef = React.useRef(null);\n var currentTargetRef = React.useRef(null);\n var isPanelClicked = React.useRef(false);\n var styleElement = React.useRef(null);\n var overlayEventListener = React.useRef(null);\n var _useOverlayListener = useOverlayListener({\n target: currentTargetRef,\n overlay: overlayRef,\n listener: function listener(event, _ref) {\n var type = _ref.type,\n valid = _ref.valid;\n if (valid) {\n type === 'outside' ? props.dismissable && !isPanelClicked.current && hide() : hide();\n }\n isPanelClicked.current = false;\n },\n when: visibleState\n }),\n _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),\n bindOverlayListener = _useOverlayListener2[0],\n unbindOverlayListener = _useOverlayListener2[1];\n var isOutsideClicked = function isOutsideClicked(target) {\n return overlayRef && overlayRef.current && !(overlayRef.current.isSameNode(target) || overlayRef.current.contains(target));\n };\n var hasTargetChanged = function hasTargetChanged(event, target) {\n return currentTargetRef.current != null && currentTargetRef.current !== (target || event.currentTarget || event.target);\n };\n var onCloseClick = function onCloseClick(event) {\n hide();\n event.preventDefault();\n };\n var onPanelClick = function onPanelClick(event) {\n isPanelClicked.current = true;\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: currentTargetRef.current\n });\n };\n var onContentClick = function onContentClick() {\n isPanelClicked.current = true;\n };\n var toggle = function toggle(event, target) {\n if (visibleState) {\n hide();\n if (hasTargetChanged(event, target)) {\n currentTargetRef.current = target || event.currentTarget || event.target;\n setTimeout(function () {\n show(event, currentTargetRef.current);\n }, 200);\n }\n } else {\n show(event, target);\n }\n };\n var show = function show(event, target) {\n currentTargetRef.current = target || event.currentTarget || event.target;\n if (visibleState) {\n align();\n } else {\n setVisibleState(true);\n overlayEventListener.current = function (e) {\n !isOutsideClicked(e.target) && (isPanelClicked.current = true);\n };\n OverlayService.on('overlay-click', overlayEventListener.current);\n }\n };\n var hide = function hide() {\n setVisibleState(false);\n OverlayService.off('overlay-click', overlayEventListener.current);\n overlayEventListener.current = null;\n };\n var onEnter = function onEnter() {\n overlayRef.current.setAttribute(attributeSelector.current, '');\n ZIndexUtils.set('overlay', overlayRef.current, PrimeReact.autoZIndex, PrimeReact.zIndex['overlay']);\n align();\n };\n var onEntered = function onEntered() {\n bindOverlayListener();\n props.onShow && props.onShow();\n };\n var onExit = function onExit() {\n unbindOverlayListener();\n };\n var onExited = function onExited() {\n ZIndexUtils.clear(overlayRef.current);\n props.onHide && props.onHide();\n };\n var align = function align() {\n if (currentTargetRef.current && overlayRef.current) {\n DomHandler.absolutePosition(overlayRef.current, currentTargetRef.current);\n var containerOffset = DomHandler.getOffset(overlayRef.current);\n var targetOffset = DomHandler.getOffset(currentTargetRef.current);\n var arrowLeft = 0;\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n overlayRef.current.style.setProperty('--overlayArrowLeft', \"\".concat(arrowLeft, \"px\"));\n if (containerOffset.top < targetOffset.top) {\n DomHandler.addClass(overlayRef.current, 'p-overlaypanel-flipped');\n }\n }\n };\n var createStyle = function createStyle() {\n if (!styleElement.current) {\n styleElement.current = DomHandler.createInlineStyle(PrimeReact.nonce);\n var innerHTML = '';\n for (var breakpoint in props.breakpoints) {\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-overlaypanel[\").concat(attributeSelector.current, \"] {\\n width: \").concat(props.breakpoints[breakpoint], \" !important;\\n }\\n }\\n \");\n }\n styleElement.current.innerHTML = innerHTML;\n }\n };\n useMountEffect(function () {\n attributeSelector.current = UniqueComponentId();\n if (props.breakpoints) {\n createStyle();\n }\n });\n useUnmountEffect(function () {\n styleElement.current = DomHandler.removeInlineStyle(styleElement.current);\n if (overlayEventListener.current) {\n OverlayService.off('overlay-click', overlayEventListener.current);\n overlayEventListener.current = null;\n }\n ZIndexUtils.clear(overlayRef.current);\n });\n React.useImperativeHandle(ref, function () {\n return {\n props: props,\n toggle: toggle,\n show: show,\n hide: hide,\n getElement: function getElement() {\n return overlayRef.current;\n }\n };\n });\n var createCloseIcon = function createCloseIcon() {\n if (props.showCloseIcon) {\n var ariaLabel = props.ariaCloseLabel || localeOption('close');\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"p-overlaypanel-close p-link\",\n onClick: onCloseClick,\n \"aria-label\": ariaLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-overlaypanel-close-icon pi pi-times\",\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n return null;\n };\n var createElement = function createElement() {\n var otherProps = ObjectUtils.findDiffKeys(props, OverlayPanel.defaultProps);\n var className = classNames('p-overlaypanel p-component', props.className);\n var closeIcon = createCloseIcon();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: overlayRef,\n classNames: \"p-overlaypanel\",\n \"in\": visibleState,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: props.transitionOptions,\n unmountOnExit: true,\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: onExit,\n onExited: onExited\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: overlayRef,\n id: props.id,\n className: className,\n style: props.style\n }, otherProps, {\n onClick: onPanelClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-overlaypanel-content\",\n onClick: onContentClick,\n onMouseDown: onContentClick\n }, props.children), closeIcon));\n };\n var element = createElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: props.appendTo\n });\n});\nOverlayPanel.displayName = 'OverlayPanel';\nOverlayPanel.defaultProps = {\n __TYPE: 'OverlayPanel',\n id: null,\n dismissable: true,\n showCloseIcon: false,\n style: null,\n className: null,\n appendTo: null,\n breakpoints: null,\n ariaCloseLabel: null,\n transitionOptions: null,\n onShow: null,\n onHide: null\n};\n\nexport { OverlayPanel };\n","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = /*@__PURE__*/ (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","boundMethod","target","key","descriptor","fn","value","TypeError","concat","definingProperty","configurable","get","this","hasOwnProperty","boundFn","bind","Object","defineProperty","set","boundClass","keys","Reflect","ownKeys","getOwnPropertyNames","getOwnPropertySymbols","forEach","getOwnPropertyDescriptor","autobind","arguments","length","apply","PopupHelper","props","_props$width","width","_props$direction","direction","_props$trigger","trigger","children","_props$popupOffset","popupOffset","restProps","_objectWithoutProperties","_excluded","React","Popup","_extends","content","className","style","headerCloseButton","ImageAssetUploadJob","_ref","undefined","createAssetPath","file","_ref$params","params","ProgressivePromise","resolve","reject","progress","totalProgress","size","createParams","assign","filename","name","content_type","type","filesize","asset","railsPostFetch","body","JSON","stringify","then","response","ok","json","createdAsset","uid","status","upload_urls","binary_upload_url","finish_upload_url","status_upload_url","uploadWithProgress","method","headers","_objectSpread","headersFromGoogleUploadUrl","progressEvent","Math","round","loaded","Promise","Error","fetch","getCSRFToken","mode","finishResponse","setTimeout","checkStatus","Accept","assetStatus","fileName","contentType","fileSize","catch","_error","error","VideoAssetUploadJob","processingVirtualProgress","min","getVisualSelection","node","nodeDocument","document","ownerDocument","nodeWindow","window","defaultView","activeElement","selection","getSelection","rangeCount","range","getRangeAt","selectionStart","findVisualSelectionOffsetFromRangeNode","startContainer","startOffset","collapsed","endContainer","endOffset","setVisualSelection","start","end","_ref2","_slicedToArray","normalizedStart","normalizedEnd","createRange","_findRangeNodeForVisu","findRangeNodeForVisualSelectionOffset","rangeStartNode","rangeStartOffset","offset","setStart","_findRangeNodeForVisu2","rangeEndNode","rangeEndOffset","setEnd","collapse","removeAllRanges","addRange","getNodeVisualLength","hasChildNodes","_step","nodeLength","_iterator","_createForOfIteratorHelper","childNodes","s","n","done","err","e","f","nodeType","Node","TEXT_NODE","textContent","ELEMENT_NODE","tagName","toLowerCase","max","rootNode","rangeNode","rangeNodeOffset","currentVisualOffset","i","searchPath","tailIndex","currentNode","pop","parentNodeIndex","parentNode","nextSibling","push","visualOffset","currentNodeLength","currentOffset","setSelectionAtEnd","contentEditableEl","selectNodeContents","_unused","url","data","onProgress","xhr","XMLHttpRequest","withCredentials","open","XDomainRequest","headerKey","setRequestHeader","onload","event","responseText","onerror","upload","onprogress","send","AutocompleteInput","_AutocompleteInput","_Select","_this","_classCallCheck","_callSuper","state","opened","options","List","loading","updating","debounceTimeout","debounce","page","more","_inherits","setState","_this2","regex","RegExp","replace","map","o","text","Map","highlight","span","id","category","option","onSelect","clearOnSelect","scrollHeight","scrollTop","listMaxHeight","getOptions","list","formatOptionsList","fromJS","opts","_toConsumableArray","overflow","stopEvent","optionElement","DOMfindParent","split","includes","optionIndex","dataset","index","optionIndexInt","parseInt","isNaN","selectOption","_this3","clearTimeout","mounted","onChange","updateURL","onSearch","searchPromise","_resolve","_this4","fetchOptions","applyOptions","nextProps","_get","_getPrototypeOf","call","optionsMap","loadingSign","_this5","_this$props","placeholder","_this$state","keyboardIndex","classNames","TextField","readOnly","onFocus","onBlur","onKeyDown","maxHeight","onScroll","onListScroll","onMouseDown","clickOptionList","ref","ul","oi","dangerouslySetInnerHTML","__html","LoaderWave","bars","height","toArray","Select","propTypes","PropTypes","_applyDecoratedDescriptor","_class","CLASS","palette","upper","background","lower","onPanelClick","stopPropagation","copy","res","_i","_Object$entries","entries","ColorComplex","panelRef","useRef","containerRef","pickerRef","lastColors","colors","_useState2","useState","show","setShow","_useState4","custom","setCustom","_useState6","setColors","useEffect","current","containerRect","pickerRect","button","items","onColorsClick","newColors","onInputChange","inputColor","CSS","supports","onInputKeyPress","onPickerClick","disabled","_panelRef$current","_panelRef$current$hid","hide","_panelRef$current2","_panelRef$current2$sh","onCustomClick","getClassName","_len","names","Array","_key","v","renderPicker","_event$colors","_event$colors$upper","_event$colors2","_event$colors2$lower","upperBackground","lowerBackground","upperStyle","backgroundColor","lowerStyle","onClick","panel","getBoundingClientRect","OverlayPanel","label","iconClass","useOuterClickListener","listen","color","setColor","row","rowIndex","col","colIndex","panelColor","onKeyPress","rect","right","top","tabIndex","renderPanel","pickerStyle","ColorPickerPopup","_Component","args","popup","container","popupHeader","querySelector","mouseup","ObservableFromEvent","mousemove","mousedrag","pipe","rxMergeMap","md","popupRect","DOMElementRect","startX","clientX","startY","clientY","rxMap","mm","preventDefault","left","rxTakeUntil","subscription","subscribe","pos","offsetTop","offsetLeft","targetRect","onClose","dragModal","unsubscribe","_this$props2","Portal","div","closePopup","ColorPicker","Component","PointerSaturation","_ManagedRenderCompone","_createClass","ManagedRenderComponent","PointerHue","_ManagedRenderCompone2","hex","colorHelper","EditableInput","toUpperCase","Saturation","pointer","Hue","CustomPicker","ImageGallery","imageList","hideIcons","setCurrent","setOpened","getIn","showIcons","ImagePin","previewURL","baseUrl","closeOnClick","withPincher","withZoom","withPopup","image","ImageGalleryItem","prev","next","baseURL","displayName","Pagination","_Pagination","_PureDataComponent","total","onPageChange","_this$props2$prefix","prefix","_this$props2$separato","separator","PureDataComponent","RangeSlider","_context","showMarks","sliderWidth","toValue","fromValue","onUpdate","samePositionRange","positions","useMemo","sliderStepSize","getSliderPositionPX","useCallback","positionID","refGetSliderPositionPX","refSliderFrom","getPositionID","from","setFromPosition","refSliderTo","to","setToPosition","refRangePX","refRange","fromPX","toPX","refSliderBgStyle","getSliderBgStyle","onUpdateCallback","refOnUpdate","unsubscribeRef","payload","positionsLength","sliderFromElement","sliderToElement","rangePx","EMPTY_OBSERVABLE","sliderFromMouseDown","sliderID","sliderToMouseDown","clicks","rxMerge","rxMapTo","startPositionID","positionId","rxFilter","dragSubscription","_ref3","clicksSubscription","cursor","classList","toggle","activeSlider","dragSlider","sliderRef","onSliderClick","slider","x","abs","_defineProperty","_","renderArrow","fromLabel","toLabel","diff","labelPosition","renderLabels","xmlns","viewBox","dx","dy","stdDeviation","floodColor","filter","d","_ref4","foundID","findIndex","prevProps","momentDurationFormatSetup","moment","MAX_DIFFICULTY","MAX_METER_ANGLE","LOI_WARNING_TIME","METER_TITLES","loiFormat","loi","format","trim","SurveyEstimator","ir","ttl","hidePrice","price","phone","message","showMeter","panelsMode","deliveryBy","surveyType","difficulty","respondents","customQuote","customQuoteImage","targetingsOverlap","onPriceClick","locale","showPanelsMode","getTtlText","ttlText","setTimeToLifeText","ttlInterval","ttlCountdown","clearInterval","setInterval","launchWithinSec","componentStyle","customQuoteLocale","src","alt","renderFooter","renderCustomQuote","arrowAngle","arrowSector","ceil","transform","renderComplexityMeter","renderLoader","date","deliveryDateLocal","currentDateLocal","isSame","add","formatDeliveryDate","renderDeliveryDate","renderPrice","renderTargetingsOverlap","targetClassName","renderPanels","launchTime","launchWithinDuration","hours","padRight","minutes","irLocale","loiLocale","loiWarning","respondentsLocale","warning","unescapeHTML","formatCurrency","TabbedSidebar","tabID","defaultID","tabs","onTabChange","TabbedSidebarTabsMemo","TabbedSidebarTabs","tabClassName","_ref$tabs","currentTabID","setCurrentTabID","tabsIsArray","isArray","currentTabIndex","tab","currentPanel","lastPropTabID","role","setTabID","_ref2$tabs","tabElements","thisTabIndex","TagsList","_TagsList","tag","onDelete","tags","tList","has","Toggle","_Toggle","active","position","pinCaught","moveTimeout","toggleWidth","addEventListener","pinRelease","pinMove","setActive","val","setActiveState","nativeEvent","offsetX","refLeft","refToggle","theme","saveRef","toggleClick","href","draggable","pinClick","pinCatch","onMouseUp","TutorialVideoList","video","tooltip","showPopup","setShowPopup","startTime","setStartTime","openedRef","setPopup","onCloseButtonClick","title","Transition","in","timeout","videoPoints","videoNote","videoThumbnail","videoLength","Number","isInteger","secondsToMMSS","point","renderVideoList","VideoPopup","videoStartTime","videos","VideoAssetUploadManager","AsyncJobManager","concurrency","config","templateID","srcSurveyID","droppedFiles","files","slice","uploadJobs","GeneralVideoAssetUploadJob","template_id","src_survey_id","fileTotalSizes","fileLoadedSizes","totalSize","reduce","loadedSize","totalFiles","loadedFiles","queue","jobResults","result","fileIndex","percents","fileLoadedSize","AssetFilesUploader","dragOver","acceptFiles","inputRef","dropAssetFileTarget","ADND","onDrop","onAssetFileDrop","onEnter","onAssetFileDragEnter","onLeave","onAssetFileDragLeave","acceptDrop","acceptAssetFileDrop","connect","disconnect","_this$state$acceptFil","_this$props$multiple","multiple","_this$props$maxItems","maxItems","_len2","_key2","onDropFiles","_this$props2$multiple","_this$props2$maxItems","_this$props3","_this$props3$watchPro","watchProgress","_this$props3$withErro","withErrors","onFilesUpload","onFilesUploaded","uploadAsset","uploadVideoAssets","uploadImageAssets","assets","_this2$props$withOrig","withOriginal","videoAsset","assetUid","videoPath","original","mp4","thumbnailPath","thumbnail","imageAsset","imagePath","path","_this$props4","_this$props4$multiple","_this$props4$selectOn","selectOnClick","_this$state$acceptFil2","connectDropTarget","inputFilesSelected","accept","uploading","ImageAssetUploadManager","configure","GeneralImageAssetUploadJob","_result$result","UploadAssetsButton","renderProgressText","_props$multiple","_props$withErrors","renderButton","_ref$dragOver","ProgressPanel","DropPanel","_props$progress","_ref2$percents","_ref2$loadedFiles","_ref2$totalFiles","LoaderDots","dotSize","dots","AutosizedInput","lastText","divRef","placeholderRef","placeholderEnabled","onChangeDebounceTimer","divKey","random","toString","placeholderKey","divMutationObserver","MutationObserver","getText","maxLength","multiline","filteredText","setText","indexOf","html","getHTML","setHTML","togglePlaceholder","sendUpdatedText","watchChanges","unwatchChanges","observe","characterData","childList","subtree","removeEventListener","forceUpdate","keepSelection","innerText","enabled","remove","focus","innerHTML","withFunction","rangeBefore","endOffsetBefore","rangeAfter","selectionAfter","execCommand","stopImmediatePropagation","_this$props5","_this$props6","contentEditable","inputComponent","placeholderComponent","onPlaceholderClick","Dropdown","align","DropdownList","lastFilter","fetchItems","listRef","keyboardFocusIndex","nextState","mouseDownListener","selectedItemElement","DOMclosest","onSelectItem","selectedItemIndex","itemIndex","selectedItem","keyCode","KEYCODE_ESC","moveKeyboardFocus","KEYCODE_DOWN","KEYCODE_UP","KEYCODE_PGDOWN","KEYCODE_PGUP","KEYCODE_ENTER","toIndex","querySelectorAll","newFocuseditem","dropdownContent","containerTop","containerHeight","clientHeight","listHeight","itemTop","itemHeight","offsetHeight","_prevProps","prevState","setListRef","item","render","HoverTarget","_props$gracePeriod","gracePeriod","_props$hovered","hovered","propsHovered","leaveGracePeriodTimer","setHovered","onMouseEnter","onMouseLeave","toText","source","String","getOptionText","InlineSearch","editing","timer","propsValue","setValue","showList","setShowList","setIndex","anchors","defaultProps","inputChange","newValue","closeList","autoClear","stepList","element","inputKeyDown","iconClick","inputBlur","onWheel","passive","selector","input","topMargin","listClassName","wrap","renderList","MultiSelect","getLabel","showSelectAllOption","optionsProp","initOptions","setOptions","optionValue","selectAll","selected","updatedOption","setCheckBoxRender","updatedOptions","update","selectAllOption","isOptionsSimilar","skip","updateOptions","InlineSelect","Boolean","hideOptionsOnSelect","CheckBox","checked","acc","_option","every","inRect","margins","ignoreClasses","testClass","m","bottom","Scroll","eventListener","listener","_ref$direction","_ref$minButtonSize","minButtonSize","_ref$wheelStep","wheelStep","_ref$clickStep","clickStep","_ref$wheelEvents","wheelEvents","_ref$ignoreClasses","_ref$margins","move","startPoint","scrollEvent","showScroll","buttonSize","barSize","parentElement","horizontal","scrollBar","barRect","handleScroll","scrollLeft","scrollPosition","scrollSize","scrollWidth","scrollElement","scrollPos","stepBy","step","moveTo","newPosition","scrollTo","touch","_ref5","touches","buttonRect","onMouseMove","_ref7","pointPos","scrollBy","_ref9","onMouseWheel","deltaX","shiftKey","deltaY","delta","onTouchStart","onTouchEnd","onTouchMove","updateBar","_ref11","clientWidth","containerSize","elementSize","display","floor","observer","ResizeObserver","unbind","_ref12","ScrollBar","scrollRef","buttonRef","paddings","_props$listenerRef","_props$elementRef","listenerRef","elementRef","StaticBlock","otherProps","foundElement","TextPopup","_this$props$trigger","PopupTrigger","renderContent","Checkout","_Checkout","updateData","invoice","launching","checkBoxes","additionalData","invoiceError","updatingTable","cbData","cb","cbs","merge","beforeCheckout","newInvoice","delete","validate","checkoutURL","prepareLocalDataToSend","onCheckout","invoice_table","table","errorText","newState","_checkBoxes","validateInvoiceData","some","num","withMutations","beforeUpdate","prepareData","afterUpdate","error1","find","r","error2","onUpdateData","updateLocalData","valuesWidth","isReceipt","receiptID","invoiceURL","buttonLabel","onCancel","cancelButtonLabel","receipt","InvoiceTable","isLast","last","checkBoxesChanged","Button","onAction","onPay","icon","margin","iconPosition","compact","asAnchor","checkoutButtonLabel","STRIPE_REQUEST_FAILED_ERROR_MESSAGE","stripeLibraryIncluded","ensureStripeLibrary","Stripe","script","createElement","appendChild","checkLib","StripeACH","_StripeACH","routingNumber","accountNumber","accountHolderName","accountHolderType","errors","errorMessage","saving","stripeLoaded","stripeHandler","onBlurValidators","onSave","count","_this2$state","stripeKey","setPublishableKey","bankAccount","createToken","country","currency","routing_number","account_number","account_holder_name","account_holder_type","_status","willSave","token","saved","only","listPipe","updateImmutableIfNeeded","validateRoutingNumber","validateAccountNumber","field","_this$state2","StripeLockSvg","MaterialTextField","onBlurValidator","onTitleChange","onRoutingNumberChange","onAccountNumberChange","onAccountHolderNameChange","RadioButton","setAccountHolderTypeToIndividual","setAccountHolderTypeToCompany","onCancelButton","onSaveButton","stripeCheckoutLibraryIncluded","ensureStripeCheckoutLibrary","StripeCheckout","UpdatePayment","_UpdatePayment","dataForCallbacks","returnFullToken","onStripeToken","email","stripeIcon","StripeLockIcon","description","panelLabel","allowRememberMe","zipCode","closed","onShow","configureStripeCheckout","showStripeCheckout","toJS","ImageItem","isMobile","scrolling","inFrame","picture","imageCallback","SwidgetImage","portal","hideOtherPopupsOnShow","ImagePreview","allowScrolling","imageUrl","previewUrl","contentTheme","DEFAULT_SMILEYS_CONFIG","emote","_ref$typesAmount","typesAmount","_ref$smileys","smileys","activeColor","focusColor","ariaLabel","_ref$ariaRequired","ariaRequired","customColorStyle","nextSmiley","currentSmileyIndex","smiley","prevSmiley","findPrevSmiley","iconSelected","Stars","_Stars","over","starN","stars","na","_this$props$starIcon","starIcon","_this$props$naIcon","naIcon","Range","fontSize","lineHeight","SampleSize","mountedRef","useMountedRef","dataProp","onUpdateProp","dragHandleRef","dataStateMap","setData","ranges","sliderMax","sliderMin","minInputSampleSize","onUpdateRef","validateSampleSize","sampleSize","setSampleSize","sampleSizeInputRef","updateSampleSizeOnKeyPress","getSliderPosition","sliderPosition","setSliderPosition","rangesList","positionIdBySampleSize","activeRange","getActiveRange","sliderBgStyle","bgColor","stepSize","firstPosition","lastPosition","dragElement","mousedown","newPositionID","lastClickValue","dragArrow","newSampleSize","defaultValue","minSampleSize","maxSampleSize","prevID","currID","_ref$listen","click","contains","getElement","keyDown","getComponent","_name$split2","_toArray","section","componentName","join","components","require","_components","_components2","_components3","_components4","_components5","componentClassOrName","el","ReactDOM","doRender","componentClass","reason","unmountComponentAtNode","_arrayLikeToArray","arr","len","arr2","_arrayWithHoles","_s","_e","_x","_r","_arr","_n","_d","_iterableToArrayLimit","minLen","test","_unsupportedIterableToArray","_nonIterableRest","_React$useState2","visibleState","setVisibleState","attributeSelector","overlayRef","currentTargetRef","isPanelClicked","styleElement","overlayEventListener","_useOverlayListener2","overlay","valid","dismissable","when","bindOverlayListener","unbindOverlayListener","onCloseClick","originalEvent","onContentClick","currentTarget","hasTargetChanged","isSameNode","isOutsideClicked","setAttribute","onEntered","onExit","onExited","onHide","containerOffset","targetOffset","arrowLeft","setProperty","breakpoints","breakpoint","createStyle","closeIcon","showCloseIcon","ariaCloseLabel","createCloseIcon","nodeRef","enter","exit","transitionOptions","unmountOnExit","appendTo","__TYPE","fromEvent","eventName","resultSelector","subscriber","setupSubscription","sourceObj","handler","isEventTarget","source_1","on","off","isJQueryStyleEventEmitter","source_2","addListener","removeListener","isNodeStyleEventEmitter","source_3","mapTo","lift","MapToOperator","MapToSubscriber","_super","destination","_next","_objectWithoutPropertiesLoose","excluded","sourceKeys"],"sourceRoot":""}