{"version":3,"file":"js/lib-rfdui-ff6ce67ed9740326e6bf.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/common/content-editable.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/image-gallery.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/basic/autosized-input.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/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/classnames/index.js","webpack://AYTM/./node_modules/primereact/overlaypanel/overlaypanel.esm.js","webpack://AYTM/./node_modules/rxjs/_esm5/internal/observable/fromEvent.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// <Component>\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    <Popup\n      width={width}\n      trigger={trigger}\n      content={children}\n      direction={direction}\n      className={style.component}\n      popupOffset={popupOffset}\n      headerCloseButton={true}\n      {...restProps}\n    >\n      <i className=\"icon-aytmfd-help\" />\n    </Popup>\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","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, `<span class='highlight'>$1</span>`)\n            : o.get('text')\n          : o\n      const category = Map.isMap(o) && o.get('category') ? `<span class='category'>${o.get('category')}: </span>` : ``\n      const span = `${category}<span class='text'>${text}</span>`\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      <div className={classNames('rfd-ui-select rfd-ui-autocomplete', className)} style={{ width: width }}>\n        <TextField\n          width={width ? width : 200}\n          value={`${Map.isMap(value) ? value.get('value') : value}`}\n          placeholder={placeholder}\n          readOnly={false}\n          onChange={this.onChange}\n          onFocus={this.onFocus}\n          onBlur={this.onBlur}\n          onKeyDown={this.onKeyDown}\n        />\n        {opened &&\n          ((options && options.size > 0) || loading) &&\n          (() => (\n            <div className=\"rfd-ui-select-container\">\n              <ul\n                className=\"rfd-ui-select-options\"\n                style={{\n                  width: width ? width - 2 : 198,\n                  maxHeight: listMaxHeight || DEFAULT_LIST_MAXHEIGHT\n                }}\n                onScroll={this.onListScroll}\n                onMouseDown={this.clickOptionList}\n                ref={ul => {\n                  this.options = ul\n                }}\n              >\n                {(() => {\n                  const optionsMap = options.map((o, oi) => (\n                    <li\n                      className={classNames('rfd-ui-select-option', {\n                        'rfd-ui-select-option-first': 0 == oi,\n                        'rfd-ui-select-option-current': keyboardIndex == oi\n                      })}\n                      data-index={oi}\n                      key={oi}\n                    >\n                      <div className=\"rfd-ui-select-option-text\" dangerouslySetInnerHTML={{ __html: o.get('span') }} />\n                    </li>\n                  ))\n                  const loadingSign = (\n                    <li className=\"rfd-ui-select-option rfd-ui-loading-sign\" data-index={-1} key={-1}>\n                      <span className=\"rfd-ui-select-option-text rfd-ui-autocomplete-loader\">\n                        <LoaderWave bars={5} height={10} />\n                      </span>\n                    </li>\n                  )\n                  return loading ? optionsMap.set(optionsMap.size, loadingSign).toArray() : optionsMap.toArray()\n                })()}\n              </ul>\n            </div>\n          ))()}\n      </div>\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      <div\n        className={getClassName('picker', event.className)}\n        onClick={event.onClick}\n        key={event.key || 'picker'}\n        ref={event.ref}\n      >\n        <div className={`${CLASS}-picker-upper`} style={upperStyle}></div>\n        <div className={`${CLASS}-picker-lower`} style={lowerStyle}></div>\n      </div>\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        <div key={1} className={`${CLASS}-caption`}>\n          {'Background:'}\n        </div>\n      )\n      items.push(\n        <div key={2} className={`${CLASS}-line`}>\n          <input\n            className={`${CLASS}-input ${CLASS}-input-upper`}\n            type={'text'}\n            value={colors.upper.background || ''}\n            onChange={onInputChange('upper.background')}\n            onKeyDown={onInputKeyPress}\n          />\n          <input\n            className={`${CLASS}-input  ${CLASS}-input-lower`}\n            type={'text'}\n            value={colors.lower.background || ''}\n            onChange={onInputChange('lower.background')}\n            onKeyDown={onInputKeyPress}\n          />\n        </div>\n      )\n      items.push(\n        <div key={3} className={`${CLASS}-caption`}>\n          {'Text:'}\n        </div>\n      )\n      items.push(\n        <div key={4} className={`${CLASS}-line`}>\n          <input\n            className={`${CLASS}-input ${CLASS}-input-upper`}\n            type={'text'}\n            value={colors.upper.text || ''}\n            onChange={onInputChange('upper.text')}\n            onKeyDown={onInputKeyPress}\n          />\n          <input\n            className={`${CLASS}-input ${CLASS}-input-lower`}\n            type={'text'}\n            value={colors.lower.text || ''}\n            onChange={onInputChange('lower.text')}\n            onKeyDown={onInputKeyPress}\n          />\n        </div>\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      <OverlayPanel\n        key={'panel'}\n        className={`${CLASS}-panel-wrapper`}\n        ref={panelRef}\n        onClick={onPanelClick}\n        prime-fixed-dropdown-dir=\"bottom\"\n        aytm-overlay-panel-patch=\"true\"\n      >\n        <div className={`${CLASS}-panel`} style={style}>\n          {items}\n          <div className={`${CLASS}-divider`}></div>\n          <div className={`${CLASS}-button`} onClick={onCustomClick}>\n            {button}\n          </div>\n        </div>\n      </OverlayPanel>\n    )\n    // return (\n    //   <div key={'panel'} ref={panelRef} className={`${CLASS}-panel`} style={style} onClick={onPanelClick}>\n    //     {items}\n    //     <div className={`${CLASS}-divider`}></div>\n    //     <div className={`${CLASS}-button`} onClick={onCustomClick}>\n    //       {button}\n    //     </div>\n    //   </div>\n    // )\n  }\n\n  const panel = show ? renderPanel() : null\n\n  const label = props.label ? <div className={getClassName('label')}>{props.label}</div> : 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    <div className={className} ref={containerRef}>\n      {label}\n      {renderPicker({ colors: props.colors, ref: pickerRef, onClick: onPickerClick })}\n      <i className={iconClass} onClick={onPickerClick} />\n      {panel}\n    </div>\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          <div\n            key={colIndex}\n            className={className}\n            style={{ backgroundColor: panelColor }}\n            onClick={() => onColorClick({ color: panelColor })}\n          />\n        )\n      })\n      return (\n        <div key={rowIndex} className={`${CLASS}-line`}>\n          {colors}\n        </div>\n      )\n    })\n\n    items.push(\n      <input\n        key={palette.length}\n        className={`${CLASS}-input`}\n        type={'text'}\n        value={color}\n        onChange={onInputChange}\n        onKeyPress={onInputKeyPress}\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      <div ref={panelRef} className={`${CLASS}-panel`} style={style} tabIndex={1} onClick={onPanelClick}>\n        {items}\n      </div>\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 ? <div className={`${CLASS}-label`}>{props.label}</div> : 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    <div className={className} ref={containerRef}>\n      {label}\n      <div className={`${CLASS}-picker`} style={pickerStyle} onClick={onClick} />\n      <i className={iconClass} onClick={onClick} />\n      {panel}\n    </div>\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, { 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    <div\n      className={classNames('rfd-ui-image-gallery', {\n        hideIcons: hideIcons,\n        showIcons: !hideIcons\n      })}\n    >\n      {hideIcons ? (\n        <ImagePin\n          previewURL={imageList.getIn([current, 'trimmed_path'])}\n          baseUrl={imageList.getIn([current, 'original_url'])}\n          closeOnClick={false}\n          withPincher={false}\n          withZoom={false}\n          withPopup={!('function' == typeof onChange)}\n        />\n      ) : (\n        imageList.map((image, i) => (\n          <div className={current == i ? `current` : ``} key={'galleryImage' + i}>\n            {'view3d' == image.get('original_url') ? (\n              <div className={classNames('view3d', { opened: i == opened })} onClick={() => onClick(i)}>\n                <i className=\"icon-aytmfd-qshelf-ar\" />\n              </div>\n            ) : (\n              <ImageGalleryItem\n                previewURL={image.getIn(['trimmed_path'])}\n                onChange={onClick}\n                withPopup={!('function' == typeof onChange)}\n                index={i}\n                opened={i == opened && hideIcons}\n                baseUrl={i == opened ? imageList.getIn([current, 'original_url']) : image.getIn(['original_url'])}\n              />\n            )}\n          </div>\n        ))\n      )}\n    </div>\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      <ImagePin\n        baseURL={baseUrl}\n        previewURL={previewURL}\n        closeOnClick={false}\n        withPincher={false}\n        withPopup={withPopup}\n        onClick={() => {\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","// 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// <Component>\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    <div\n      ref={sliderRef}\n      className={classNames({\n        ['rfd-ui-range-slider']: true,\n        [className]: className,\n        ['rfd-ui-range-slider-read-only']: readOnly\n      })}\n      onClick={readOnly ? null : onSliderClick}\n      style={{ width: `${sliderWidth}px` }}\n    >\n      {showMarks && (\n        <div className=\"rfd-ui-slider-marks\">\n          {positions.map((_, index) => (\n            <span className=\"rfd-ui-slider-mark\" style={{ left: `${getSliderPositionPX(index)}px` }} key={index} />\n          ))}\n        </div>\n      )}\n      <span className=\"rfd-ui-range-slider-bg\" style={refSliderBgStyle.current} />\n      <span className=\"rfd-ui-slider-handle rfd-ui-slider-from\" ref={refSliderFrom} style={{ left: `${fromPX}px` }}>\n        <div className=\"rfd-ui-slider-arrow\">{renderArrow()}</div>\n      </span>\n      <span className=\"rfd-ui-slider-handle rfd-ui-slider-to\" ref={refSliderTo} style={{ left: `${toPX}px` }}>\n        <div className=\"rfd-ui-slider-arrow\">{renderArrow()}</div>\n      </span>\n      {renderLabels(fromPX, positions[from], toPX, positions[to])}\n    </div>\n  )\n}\n\nfunction renderArrow() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 28 28\">\n      <filter id=\"shadow\">\n        <feDropShadow dx=\"1\" dy=\"0.7\" stdDeviation=\"1\" floodColor=\"#AAAAAA\" />\n      </filter>\n      <g id=\"Layer_2\" data-name=\"Layer 2\">\n        <g id=\"Layer_4\" data-name=\"Layer 4\">\n          <path\n            filter=\"url(#shadow)\"\n            className=\"rfd-ui-slider-arrow-border\"\n            d=\"M10,1.06a.81.81,0,0,1,.76.45L18.89,20a.59.59,0,0,1-.07.61.85.85,0,0,1-.7.33H1.88a.85.85,0,0,1-.7-.33A.59.59,0,0,1,1.11,20L9.24,1.51A.81.81,0,0,1,10,1.06M10,0A1.85,1.85,0,0,0,8.27,1.09L.15,19.57a1.64,1.64,0,0,0,.17,1.65A1.87,1.87,0,0,0,1.88,22H18.12a1.87,1.87,0,0,0,1.56-.78,1.64,1.64,0,0,0,.17-1.65L11.73,1.09A1.85,1.85,0,0,0,10,0Z\"\n          />\n          <path\n            className=\"rfd-ui-slider-arrow-bg\"\n            d=\"M1.88,21.47a1.34,1.34,0,0,1-1.13-.56,1.1,1.1,0,0,1-.12-1.13L8.75,1.3a1.4,1.4,0,0,1,2.5,0l8.12,18.48a1.1,1.1,0,0,1-.12,1.13,1.34,1.34,0,0,1-1.13.56Z\"\n          />\n        </g>\n      </g>\n    </svg>\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      <span className=\"rfd-ui-slider-arrow-label\" style={{ left: `${labelPosition}px` }}>\n        {0 == diff ? fromLabel : 0 < diff ? `${toLabel} - ${fromLabel}` : `${fromLabel} - ${toLabel}`}\n      </span>\n    )\n  }\n  return (\n    <>\n      <span className=\"rfd-ui-slider-arrow-label\" style={{ left: `${fromPX - 23}px` }}>\n        {fromLabel}\n      </span>\n      <span className=\"rfd-ui-slider-arrow-label\" style={{ left: `${toPX - 23}px` }}>\n        {toLabel}\n      </span>\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// <Component>\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    <div className={componentStyle}>{renderCustomQuote(payload)}</div>\n  ) : 'panel' == surveyType ? (\n    // panel survey\n    <div className={`${componentStyle} rfd-ui-panel-survey-estimator`}>\n      {showMeter && renderComplexityMeter(payload)}\n      <div\n        className={classNames(\n          'rfd-ui-survey-estimator-data',\n          { ['hidden-price']: hidePrice },\n          { ['show-meter']: showMeter }\n        )}\n      >\n        {renderDeliveryDate(payload)}\n        {renderPrice(payload)}\n        {renderTargetingsOverlap(payload)}\n        {renderFooter(payload)}\n        {showPanelsMode && renderPanels(payload)}\n      </div>\n    </div>\n  ) : (\n    // list survey\n    <div className={`${componentStyle} rfd-ui-list-survey-estimator`}>\n      <div className={classNames('rfd-ui-survey-estimator-data', 'list-survey')}>\n        {renderPrice(payload)}\n        {renderFooter(payload)}\n      </div>\n    </div>\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    <div className=\"rfd-ui-survey-estimator-price-loader\">\n      <LoaderWave bars={20} height={20} />\n    </div>\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    <div className=\"rfd-ui-survey-estimator-delivery-date\">\n      {ttlText && <div className=\"delivery-date-note\" dangerouslySetInnerHTML={{ __html: ttlText }} />}\n      <div className=\"delivery-date-date\">{formatDeliveryDate(deliveryBy, locale)}</div>\n    </div>\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    <div className=\"rfd-ui-survey-estimator-custom-quote\">\n      <div className=\"custom-quote-title\">{customQuoteLocale.get('title')}</div>\n      {customQuoteImage && <img className=\"custom-quote-image\" src={customQuoteImage} alt=\"Custom Quote\" />}\n      {'fetching' == status ? (\n        <div className=\"rfd-ui-survey-estimator-price-loader\">\n          <LoaderWave bars={20} height={20} />\n        </div>\n      ) : (\n        <div\n          className=\"custom-quote-message\"\n          dangerouslySetInnerHTML={{ __html: message && '' != message ? message : customQuoteLocale.get('text') }}\n        />\n      )}\n      {phone && <div className=\"custom-quote-sep\" />}\n      {phone && (\n        <div className=\"custom-quote-phone\" onClick={'function' == typeof onPriceClick ? onPriceClick : null}>\n          {phone}\n        </div>\n      )}\n      {renderFooter(payload)}\n    </div>\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    <div className=\"rfd-ui-survey-estimator-footer\">\n      <div className=\"footer-data\">\n        <div className={classNames('footer-col', 'rfd-ui-survey-estimator-respondents')}>\n          <span className=\"footer-col-label\">{respondentsLocale.get('label')}</span>\n          <span className=\"footer-col-value\">{respondents || '----'}</span>\n        </div>\n        <div className={classNames('footer-col', 'rfd-ui-survey-estimator-loi', { warning: loiWarning })}>\n          <span className=\"footer-col-label\">{loiLocale.get('label')}</span>\n          <span className=\"footer-col-value\">{loi ? loiFormat(loi) : '----'}</span>\n        </div>\n        <div className={classNames('footer-col', 'rfd-ui-survey-estimator-ir')}>\n          <span className=\"footer-col-label\">{irLocale.get('label')}</span>\n          <span className=\"footer-col-value\">{unescapeHTML(ir) || '–'}</span>\n        </div>\n        <div className=\"footer-hint\">\n          <div className=\"rfd-ui-survey-estimator-respondents-hint\">\n            <span className=\"footer-hint-label\">N</span>\n            <span className=\"footer-hint-text\" dangerouslySetInnerHTML={{ __html: respondentsLocale.get('hint') }} />\n          </div>\n          <div className={classNames('rfd-ui-survey-estimator-loi-hint', { ['footer-hint-warning-row']: loiWarning })}>\n            <span className=\"footer-hint-label\">LOI</span>\n            <span className=\"footer-hint-text\" dangerouslySetInnerHTML={{ __html: loiLocale.get('hint') }} />\n          </div>\n          {loiWarning && (\n            <div>\n              <span className=\"footer-hint-label loi-label-warning\">\n                {Math.ceil(loi / 60)}\n                <div>min</div>\n              </span>\n              <span className=\"footer-hint-text\" dangerouslySetInnerHTML={{ __html: loiLocale.get('warning') }} />\n            </div>\n          )}\n          <div className=\"rfd-ui-survey-estimator-ir-hint\">\n            <span className=\"footer-hint-label\">IR</span>\n            <span className=\"footer-hint-text\" dangerouslySetInnerHTML={{ __html: irLocale.get('hint') }} />\n          </div>\n        </div>\n      </div>\n    </div>\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    <div className=\"rfd-ui-survey-estimator-price\">\n      <span onClick={'function' == typeof onPriceClick ? onPriceClick : null}>\n        ${formatCurrency(price / 100).split('.')[0]}\n        <span className=\"rfd-ui-survey-estimator-price-cents\">\n          .{formatCurrency(price / 100).split('.')[1] || '00'}\n        </span>\n      </span>\n      <span className=\"rfd-ui-survey-estimator-price-tax-note\">{0 < price ? locale.get('tax') : ''}</span>\n      <PopupHelper width=\"470px\" popupOffset={8} direction=\"righttop\">\n        {() => <div dangerouslySetInnerHTML={{ __html: locale.getIn(['help', surveyType]) }} />}\n      </PopupHelper>\n    </div>\n  )\n}\n\n// targetings overlap\nfunction renderTargetingsOverlap(payload = {}) {\n  const { phone, locale, targetingsOverlap } = payload\n  return targetingsOverlap ? (\n    <div className=\"rfd-ui-survey-estimator-targetings-overlap\">\n      <div\n        className=\"targetings-overlap-text\"\n        dangerouslySetInnerHTML={{ __html: locale.getIn(['targetingsOverlap', 'text']) }}\n      />\n      <div className=\"targetings-overlap-phone\">{phone}</div>\n    </div>\n  ) : null\n}\n\nfunction renderPanels(payload = {}) {\n  const { panelsMode, locale } = payload\n  return 'curated' === panelsMode ? (\n    <div className=\"rfd-ui-survey-estimator-curated-panels\">\n      <div className=\"curated-panels-text\">{locale.getIn(['curated', 'text'])}</div>\n      <PopupHelper width=\"470px\" popupOffset={9} direction=\"righttop\" targetClassName=\"pendo-help-tm-blended\">\n        {() => <div dangerouslySetInnerHTML={{ __html: locale.getIn(['curated', 'help']) }} />}\n      </PopupHelper>\n    </div>\n  ) : 'blended' === panelsMode ? (\n    <div className=\"rfd-ui-survey-estimator-blended-panels\">\n      <div className=\"blended-panels-text\">{locale.getIn(['blended', 'text'])}</div>\n      <PopupHelper width=\"470px\" popupOffset={9} direction=\"righttop\" targetClassName=\"pendo-help-tm-blended\">\n        {() => <div dangerouslySetInnerHTML={{ __html: locale.getIn(['blended', 'help']) }} />}\n      </PopupHelper>\n    </div>\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    <div className=\"rfd-ui-survey-estimator-meter\">\n      <div className=\"rfd-ui-survey-estimator-meter-title\">SAMPLE COMPLEXITY</div>\n      <div className=\"arrow-circle\" />\n      <div className=\"rfd-ui-survey-estimator-meter-arrow-wrap\" style={{ transform: `rotateZ(${arrowAngle - 2}deg)` }}>\n        <div className={classNames('arrow-shadow', 'arrow-shadow-top', `sector${arrowSector}`)} />\n        <div className={classNames('arrow-shadow', 'arrow-shadow-bottom', `sector${arrowSector}`)} />\n        <div className=\"rfd-ui-survey-estimator-meter-arrow\" />\n      </div>\n      <div className=\"rfd-ui-survey-estimator-meter-subtitle\">{METER_TITLES[Math.ceil(arrowSector / 2) - 1]}</div>\n    </div>\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    <div className=\"rfd-ui-tabbed-sidebar\">\n      <div className=\"rfd-ui-tabbed-sidebar-tabs\">\n        <div className=\"rfd-ui-tabbed-sidebar-tabs-container\" role=\"tablist\">\n          <TabbedSidebarTabsMemo\n            tabs={tabs}\n            className={tabClassName}\n            tabIndex={currentTabIndex}\n            setTabID={setCurrentTabID}\n            onTabChange={onTabChange}\n          />\n        </div>\n      </div>\n      <div className={`rfd-ui-tabbed-sidebar-panel${className ? ' ' + className : ''}`} role=\"tabpanel\">\n        <div className=\"rfd-ui-tabbed-sidebar-panel-container\">{currentPanel}</div>\n      </div>\n    </div>\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    <div\n      className={`rfd-ui-tabbed-sidebar-tab${tabIndex === thisTabIndex ? ' rfd-ui-tabbed-sidebar-tab-active' : ''}${\n        className ? ' ' + className : ''\n      }${tabIndex != null && thisTabIndex === tabIndex - 1 ? ' rfd-ui-tabbed-sidebar-tab-prev' : ''}${\n        tabIndex != null && tabIndex >= 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    </div>\n  ))\n  // add terminator\n  tabElements.push(\n    <div\n      className={`rfd-ui-tabbed-sidebar-tab rfd-ui-tabbed-sidebar-tab-terminator${\n        tabIndex === tabs.length - 1 ? ' rfd-ui-tabbed-sidebar-tab-next' : ''\n      }`}\n      role=\"none\"\n      key={null}\n    >\n      &nbsp;\n    </div>\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      <div className=\"rfd-ui-tags-list\">\n        {tList &&\n          (() =>\n            tList\n              .map((o, oi) => (\n                <div className=\"rfd-ui-tag\" key={oi}>\n                  <span className=\"rfd-ui-tag-text\">\n                    {o.has('category') && <span className=\"rfd-ui-tag-category\">{o.get('category')}: </span>}\n                    {o.get('value') ? o.get('value') : o.get('text')}\n                  </span>\n                  <i className=\"icon-aytmfd-delete\" onClick={this.onDelete(o, oi)} />\n                </div>\n              ))\n              .toArray())()}\n      </div>\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      <div\n        className={classNames('rfd-ui-toggle', {\n          [`rfd-ui-toggle-theme-${theme}`]: theme,\n          'rfd-ui-toggle-active': active\n        })}\n      >\n        {!label && (\n          <div\n            className={classNames('rfd-ui-toggle-button-label', {\n              'rfd-ui-toggle-button-label-active': !active,\n              'rfd-ui-toggle-button-label-disabled': disabled\n            })}\n            style={{ width: width ? width : 'none' }}\n            onClick={\n              !disabled\n                ? () => {\n                    this.setActiveState(0)\n                  }\n                : undefined\n            }\n          >\n            <div className=\"rfd-ui-toggle-button\">\n              <i className={left.get('icon')} />\n              <span className=\"rfd-ui-toggle-button-text\">{left.get('label')}</span>\n            </div>\n          </div>\n        )}\n        <span\n          className={classNames('rfd-ui-toggle-inner', { 'rfd-ui-toggle-inner-disabled': disabled })}\n          ref={this.saveRef('Toggle')}\n        >\n          <span\n            className={'rfd-ui-toggle-inner-m'}\n            onClick={!disabled ? this.toggleClick : undefined}\n            style={{ width: this.toggleWidth }}\n          >\n            <a\n              href=\"#\"\n              className=\"rfd-ui-toggle-pin\"\n              ref={this.saveRef('TogglePin')}\n              draggable={false}\n              style={{ left: position }}\n              onClick={this.pinClick}\n              onMouseDown={!disabled ? this.pinCatch : undefined}\n              onMouseUp={!disabled ? this.pinRelease : undefined}\n            >\n              <span className={classNames('rfd-ui-toggle-pin-c', { active: this.pinCaught })} />\n            </a>\n          </span>\n        </span>\n        {!label && (\n          <div\n            className={classNames('rfd-ui-toggle-button-label', {\n              'rfd-ui-toggle-button-label-active': active,\n              'rfd-ui-toggle-button-label-disabled': disabled\n            })}\n            style={{ width: width ? width : 'none' }}\n            onClick={\n              !disabled\n                ? () => {\n                    this.setActiveState(1)\n                  }\n                : undefined\n            }\n          >\n            <div className=\"rfd-ui-toggle-button right\">\n              <i className={right.get('icon')} />\n\n              <span className=\"rfd-ui-toggle-button-text\">{right.get('label')}</span>\n            </div>\n          </div>\n        )}\n        {label && (\n          <div className={'rfd-ui-toggle-label'}>\n            <span\n              className=\"rfd-ui-toggle-label-text\"\n              onClick={\n                !disabled\n                  ? () => {\n                      this.setActiveState(active ? 0 : 1)\n                    }\n                  : undefined\n              }\n            >\n              {label}\n            </span>\n          </div>\n        )}\n      </div>\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// <Component>\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    <div\n      title={tooltip || 'Tutorial video list'}\n      className={classNames('rfd-ui-tutorial-video-list', {\n        'rfd-ui-tutorial-video-list-opened': opened,\n        [className]: className\n      })}\n    >\n      <div className=\"rfd-ui-tutorial-video-list-button\" onClick={onButtonClick}>\n        <span className=\"rfd-ui-tutorial-video-list-button-text\">Tutorial video</span>\n        <span className=\"rfd-ui-tutorial-video-list-button-icon\">\n          <i className={classNames('icon-aytmfd-videotut', { [targetClassName]: targetClassName })} />\n        </span>\n      </div>\n      <Transition in={opened} timeout={1000}>\n        {status => (\n          <div\n            className={classNames('rfd-ui-tutorial-video-list-container', {\n              'rfd-ui-tutorial-video-list-container-opened': 'entered' == status,\n              'rfd-ui-tutorial-video-list-container-opening': 'entering' == status,\n              'rfd-ui-tutorial-video-list-container-closed': 'exited' == status,\n              'rfd-ui-tutorial-video-list-container-closing': 'exiting' == status\n            })}\n          >\n            {renderVideoList({ ...props, setPopup, onCloseButtonClick })}\n          </div>\n        )}\n      </Transition>\n      <VideoPopup\n        videoStartTime={startTime}\n        onClose={() => setPopup({ showPopup: false, startTime: 0 })}\n        videos={List().set(0, video)}\n        show={showPopup}\n      />\n    </div>\n  )\n}\n\nfunction renderVideoList({ video, videoPoints, videoNote, videoThumbnail, setPopup, onCloseButtonClick }) {\n  const videoLength = video.get('length')\n  return (\n    <>\n      <span className=\"rfd-ui-tutorial-video-list-close-button\" onClick={onCloseButtonClick}>\n        <i className=\"icon-aytmfd-delete\" />\n      </span>\n      <div\n        className=\"rfd-ui-tutorial-video-list-video-thumbnail\"\n        onClick={() => setPopup({ showPopup: true, startTime: 0 })}\n      >\n        <img src={videoThumbnail} alt=\"video thumbnail\" />\n        <i className=\"icon-aytmfd-play\" />\n      </div>\n      <div className=\"rfd-ui-tutorial-video-list-video-points\">\n        <div className=\"rfd-ui-tutorial-video-list-video-points-title\">\n          Tutorial video ({Number.isInteger(videoLength) ? secondsToMMSS(videoLength) : videoLength})\n        </div>\n        <div className=\"rfd-ui-tutorial-video-list-video-points-note\">{videoNote}</div>\n        <ul>\n          {videoPoints.map((point, index) => (\n            <li\n              key={index}\n              onClick={() => 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            </li>\n          ))}\n        </ul>\n      </div>\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// <Component />\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      <div\n        {...restProps}\n        ref={this.divRef}\n        contentEditable={!readOnly}\n        onFocus={readOnly ? null : this.onFocus}\n        onBlur={readOnly ? null : this.onBlur}\n        key={this.divKey}\n        className={restProps.className ? `rfd-ui-autosized-input ${restProps.className}` : 'rfd-ui-autosized-input'}\n      />\n    )\n\n    const placeholderComponent = placeholder ? (\n      <div\n        className=\"rfd-ui-autosized-input-placeholder\"\n        ref={this.placeholderRef}\n        key={this.placeholderKey}\n        onClick={this.onPlaceholderClick}\n      >\n        {placeholder}\n      </div>\n    ) : null\n\n    return placeholderComponent ? [placeholderComponent, inputComponent] : inputComponent\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    <span\n      {...restProps}\n      className={`rfd-ui-hover-target${className ? ' ' + className : ''}`}\n      onMouseEnter={onMouseEnter}\n      onMouseLeave={onMouseLeave}\n    >\n      {children(hovered, setHovered)}\n    </span>\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(/&amp;/gi, '&').replace(/&lt;/gi, '<').replace(/&gt;/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        <div key={i} className={`${CLASS}-list-option ${className}`} onClick={closeList(v.option)}>\n          {v.text}\n        </div>\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          <div className={listClassName} style={style} ref={listRef}>\n            {options}\n          </div>\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    <div\n      className={`${CLASS}-input ${CLASS}-input-read-only`}\n      tabIndex={1}\n      onClick={iconClick}\n      onKeyDown={inputKeyDown}\n    >\n      {text}\n    </div>\n  ) : props.multiline ? (\n    <textarea\n      className={`${CLASS}-input`}\n      placeholder={props.placeholder}\n      value={text}\n      onBlur={inputBlur}\n      onChange={inputChange}\n      onKeyDown={inputKeyDown}\n    />\n  ) : (\n    <input\n      className={`${CLASS}-input`}\n      type={'text'}\n      placeholder={props.placeholder}\n      value={text}\n      onBlur={inputBlur}\n      onChange={inputChange}\n      onKeyDown={inputKeyDown}\n    />\n  )\n\n  const label = props.label ? (\n    React.isValidElement(props.label) ? (\n      props.label\n    ) : (\n      <div className={`${CLASS}-label`} dangerouslySetInnerHTML={{ __html: props.label }} />\n    )\n  ) : null\n\n  return (\n    <span className={`${CLASS} ${props.className}`} ref={containerRef}>\n      {label}\n      {input}\n      <i className={iconClass} onClick={iconClick} />\n      {renderList()}\n    </span>\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// <Component>\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    <div className={classNames('rfd-ui-multi-select', className, { readOnly: readOnly })}>\n      <InlineSelect\n        disabled={Boolean(readOnly)}\n        onSelect={onSelect}\n        fetchOptions={fetchOptions}\n        hideOptionsOnSelect={false}\n      >\n        {label}\n      </InlineSelect>\n    </div>\n  )\n}\n\nfunction setCheckBoxRender(option) {\n  return option.set('render', () => <CheckBox label={option.get('text')} checked={option.get('selected')} />)\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    <div className={`${CLASS}-${direction} ${props.className || ''}`}>\n      <div className={`${CLASS}-${direction}-button`} draggable={'false'} ref={buttonRef}></div>\n    </div>\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      <div\n        className={classNames('rfd-ui-static-block', className)}\n        dangerouslySetInnerHTML={{\n          __html:\n            null != content\n              ? content\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 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      <div className={classNames('rfd-ui-invoice', { receipt: isReceipt })}>\n        <InvoiceTable\n          ref={this.saveRef('InvoiceTable')}\n          invoice={invoice}\n          additionalData={additionalData}\n          width={width || 500}\n          valuesWidth={valuesWidth || 250}\n          updateURL={invoiceURL}\n          beforeUpdate={this.beforeUpdate}\n          update={update}\n          afterUpdate={this.afterUpdate}\n          onUpdateData={this.onUpdateData}\n        />\n        {isReceipt && (\n          <div className=\"subscriptions-summary-invoice subscriptions-description receipt\">\n            <h2 className=\"no-print\">Thanks for your business!</h2>\n            <h4 className=\"no-print\">We just emailed this receipt to you and account admins.</h4>\n          </div>\n        )}\n        <div className=\"page-actions\" style={{ width: width + valuesWidth + 6 }}>\n          {checkBoxes &&\n            checkBoxes.map((d, i) => {\n              const isLast = d === checkBoxes.last()\n              return (\n                <div\n                  key={'afd-checkout-checkboxes' + i}\n                  className={`afd-panel afd-bordered${isLast ? ' afd-solid launch-row' : ''}${\n                    d.get('error') ? ' error' : ''\n                  }`}\n                >\n                  <div className=\"afd-panel-text\">\n                    <CheckBox\n                      error={d.get('error')}\n                      onClick={event => this.checkBoxesChanged(event, i)}\n                      checked={d.get('checked') || false}\n                      label={d.get('label')}\n                    />\n                  </div>\n                  <div className=\"page-actions-buttons\">\n                    {isLast && !isReceipt && (\n                      <Button\n                        label={buttonLabel || 'CHECKOUT'}\n                        onAction={this.onPay}\n                        width={valuesWidth}\n                        icon={launching ? 'icon-aytmfd-spin afd-spin' : null}\n                        disabled={invoiceError || error || updatingTable || launching}\n                      />\n                    )}\n                    {isLast && 'function' == typeof onCancel && (\n                      <Button label={cancelButtonLabel || 'CANCEL'} style={{ margin: '0 6px' }} onClick={onCancel} />\n                    )}\n                  </div>\n                </div>\n              )\n            })}\n          {(!checkBoxes || !checkBoxes.size) && (\n            <div className=\"afd-panel afd-solid launch-row\">\n              {'function' == typeof onCancel && (\n                <Button label={cancelButtonLabel || 'CLOSE'} onClick={onCancel} disabled={invoiceError || error} />\n              )}\n              {!isReceipt && (\n                <Button\n                  label={buttonLabel || 'CHECKOUT'}\n                  disabled={disabled || invoiceError || updatingTable}\n                  width={valuesWidth}\n                  onAction={this.onPay}\n                  className=\"left\"\n                  icon={launching ? 'icon-aytmfd-spin afd-spin' : null}\n                />\n              )}\n              {isReceipt && receiptID && (\n                <Button\n                  label={'PRINT'}\n                  icon=\"icon-aytmfd-print\"\n                  iconPosition=\"left\"\n                  compact={true}\n                  className=\"left\"\n                  width={120}\n                  asAnchor={`/receipts/${receiptID}`}\n                  target={'_blank'}\n                />\n              )}\n            </div>\n          )}\n        </div>\n        {!isReceipt && errorText && <div className=\"checkout-text-error\">{errorText}</div>}\n      </div>\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      <div className=\"rfd-ui-stripe-ach\" style={{ width }}>\n        <div className=\"rfd-ui-stripe-ach-form\">\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <img className=\"rfd-ui-stripe-ach-icon\" src={StripeLockSvg} alt=\"\" />\n            <div className=\"rfd-ui-stripe-ach-description\">\n              Securely add your payment information directly to our payment processing company, Stripe, using SSL\n              encrypted connection.\n              <br />\n              We use PCI compliant technology to keep you safe.\n              <br />\n              We never see nor store your full billing info on our servers.\n            </div>\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <MaterialTextField\n              placeholder='Give it a title (e.g. \"Marketing account\")'\n              className=\"rfd-ui-stripe-ach-title\"\n              width=\"100%\"\n              value={title}\n              readOnly={saving}\n              onBlur={this.onBlurValidator('title')}\n              error={Boolean(errors.get('title'))}\n              onChange={this.onTitleChange}\n            />\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <MaterialTextField\n              placeholder=\"Country\"\n              className=\"rfd-ui-stripe-ach-country\"\n              width=\"45%\"\n              value=\"United States\"\n              readOnly={true}\n            />\n            <div className=\"rfd-ui-stripe-ach-hsep\">&nbsp;</div>\n            <MaterialTextField\n              placeholder=\"Currency\"\n              className=\"rfd-ui-stripe-ach-currency\"\n              width=\"45%\"\n              value=\"$ (USD)\"\n              readOnly={true}\n            />\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <MaterialTextField\n              placeholder=\"Routing number (9 digits)\"\n              className=\"rfd-ui-stripe-ach-routing-number\"\n              width=\"100%\"\n              value={routingNumber}\n              readOnly={saving}\n              onBlur={this.onBlurValidator('routingNumber')}\n              error={Boolean(errors.get('routingNumber'))}\n              onChange={this.onRoutingNumberChange}\n            />\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <MaterialTextField\n              placeholder=\"Account number\"\n              className=\"rfd-ui-stripe-ach-account-number\"\n              width=\"100%\"\n              value={accountNumber}\n              readOnly={saving}\n              onBlur={this.onBlurValidator('accountNumber')}\n              error={Boolean(errors.get('accountNumber'))}\n              onChange={this.onAccountNumberChange}\n            />\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <MaterialTextField\n              placeholder=\"Account holder name\"\n              className=\"rfd-ui-stripe-ach-account-holder-name\"\n              width=\"100%\"\n              value={accountHolderName}\n              readOnly={saving}\n              onBlur={this.onBlurValidator('accountHolderName')}\n              error={Boolean(errors.get('accountHolderName'))}\n              onChange={this.onAccountHolderNameChange}\n            />\n          </div>\n          <div className=\"rfd-ui-stripe-ach-row\">\n            <RadioButton\n              label=\"Individual account\"\n              checked={'individual' == accountHolderType}\n              onClick={this.setAccountHolderTypeToIndividual}\n            />\n            <div className=\"rfd-ui-stripe-ach-hsep\">&nbsp;</div>\n            <RadioButton\n              label=\"Company account\"\n              checked={'company' == accountHolderType}\n              onClick={this.setAccountHolderTypeToCompany}\n            />\n          </div>\n          {errorMessage && <div className=\"rfd-ui-stripe-ach-row rfd-ui-stripe-ach-row-error\">{errorMessage}</div>}\n          <div className=\"rfd-ui-stripe-ach-buttons\">\n            <Button\n              className=\"light-gray cancel-button\"\n              label={'CANCEL'}\n              disabled={saving}\n              onAction={this.onCancelButton}\n            />\n            <Button\n              label={'SAVE ACH ACCOUNT'}\n              onAction={this.onSaveButton}\n              disabled={!stripeLoaded}\n              icon={saving ? 'icon-aytmfd-spin aytmfd-spin' : null}\n            />\n          </div>\n        </div>\n      </div>\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      <div className={`rfd-ui-image-item${isMobile ? ' mobile' : ''}`} style={{ width }}>\n        {isMobile ? (\n          <ImagePin\n            scrolling={scrolling}\n            withPopup={true}\n            baseURL={picture.get('original_url')}\n            width={width}\n            previewURL={picture.get('big_thumbnail_path')}\n          />\n        ) : !inFrame ? (\n          <Popup\n            portal={true}\n            width=\"250px\"\n            trigger=\"hover\"\n            direction={direction}\n            hideOtherPopupsOnShow={true}\n            content={() => (\n              <ImagePreview\n                allowScrolling={scrolling}\n                maxHeight=\"480px\"\n                imageUrl={picture.get('original_url')}\n                previewUrl={picture.get('big_thumbnail_path')}\n              />\n            )}\n            contentTheme=\"thin-black\"\n          >\n            <img src={picture.get('big_thumbnail_path')} className=\"rfd-ui-thumbnail\" />\n          </Popup>\n        ) : (\n          <SwidgetImage picture={picture} theme=\"desktop\" inFrame={inFrame} imageCallback={imageCallback} />\n        )}\n      </div>\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<ISmileysProps> = ({\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<HTMLDivElement> = 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    <div\n      className=\"rfd-ui-smileys\"\n      data-testid=\"SW-Smileys\"\n      onMouseLeave={onLeave}\n      onKeyDown={onKeyDown}\n      role=\"radiogroup\"\n      aria-label={ariaLabel}\n      aria-required={ariaRequired}\n      tabIndex={0}\n    >\n      {smileys.map(smiley => (\n        <div\n          className={`rfd-ui-smileys-smile ${selected == smiley.value ? 'rfd-ui-smileys-selected-smile' : ''}`}\n          style={customColorStyle}\n          onClick={onChange ? () => 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          <i\n            className={smiley.iconSelected && selected == smiley.value ? smiley.iconSelected : smiley.icon}\n            role=\"presentation\"\n          />\n        </div>\n      ))}\n    </div>\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      <div className=\"rfd-ui-stars\" onMouseLeave={this.onLeave} data-testid=\"SW-Stars\">\n        {Range(0, stars)\n          .map(i => (\n            <div\n              className={classNames('rfd-ui-stars-star', {\n                'rfd-ui-stars-selected-star': null == over ? selected > 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              <i className={starIcon} style={{ fontSize: size, lineHeight: size }} />\n            </div>\n          ))\n          .toArray()}\n        {na && (\n          <div\n            className={classNames('rfd-ui-stars-na', {\n              'rfd-ui-stars-selected-star': null == over ? 0 == selected : 0 == over\n            })}\n            onClick={() => this.onChange(0)}\n            onMouseEnter={() => this.onEnter(0)}\n            style={{ height: size, width: size }}\n          >\n            <i className={naIcon} style={{ fontSize: size, lineHeight: size }} />\n          </div>\n        )}\n      </div>\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// <Component>\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    <div\n      className={classNames({\n        ['rfd-ui-sample-size']: true,\n        [className]: className,\n        ['rfd-ui-sample-size-read-only']: readOnly\n      })}\n    >\n      <div className=\"rfd-ui-sample-size-slider\" style={{ width: `${sliderWidth}px` }} ref={sliderRef}>\n        <span className=\"rfd-ui-sample-size-click\" onClick={readOnly ? null : onSliderClick} />\n        <span className=\"rfd-ui-sample-size-slider-bg\" style={sliderBgStyle} />\n        <span className=\"rfd-ui-slider-handle\" ref={dragHandleRef} style={{ left: `${sliderPosition}%` }}>\n          <span className=\"rfd-ui-slider-arrow-label\">{sampleSize}</span>\n          <div className=\"rfd-ui-slider-arrow\">{renderArrow()}</div>\n        </span>\n        <div className=\"rfd-ui-sample-size-slider-labels\" onClick={readOnly ? null : onSliderClick}>\n          {rangesList.map((range, id) => (\n            <span\n              key={id}\n              style={{ width: range.width }}\n              className={classNames({ 'rfd-ui-sample-size-slider-labels-active': activeRange.label == range.label })}\n            >\n              {range.label}\n            </span>\n          ))}\n        </div>\n      </div>\n      <div className=\"rfd-ui-sample-size-input\">\n        <input\n          ref={sampleSizeInputRef}\n          type=\"number\"\n          maxLength={6}\n          onBlur={readOnly ? null : onInputBlur}\n          readOnly={Boolean(readOnly)}\n          onKeyDown={readOnly ? null : updateSampleSizeOnKeyPress}\n          defaultValue={sampleSize}\n        />\n      </div>\n    </div>\n  )\n}\n\nfunction renderArrow() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 28 28\">\n      <filter id=\"shadow\">\n        <feDropShadow dx=\"1\" dy=\"0.7\" stdDeviation=\"1\" floodColor=\"#AAAAAA\" />\n      </filter>\n      <g id=\"Layer_2\" data-name=\"Layer 2\">\n        <g id=\"Layer_4\" data-name=\"Layer 4\">\n          <path\n            filter=\"url(#shadow)\"\n            className=\"rfd-ui-slider-arrow-border\"\n            d=\"M10,1.06a.81.81,0,0,1,.76.45L18.89,20a.59.59,0,0,1-.07.61.85.85,0,0,1-.7.33H1.88a.85.85,0,0,1-.7-.33A.59.59,0,0,1,1.11,20L9.24,1.51A.81.81,0,0,1,10,1.06M10,0A1.85,1.85,0,0,0,8.27,1.09L.15,19.57a1.64,1.64,0,0,0,.17,1.65A1.87,1.87,0,0,0,1.88,22H18.12a1.87,1.87,0,0,0,1.56-.78,1.64,1.64,0,0,0,.17-1.65L11.73,1.09A1.85,1.85,0,0,0,10,0Z\"\n          />\n          <path\n            className=\"rfd-ui-slider-arrow-bg\"\n            d=\"M1.88,21.47a1.34,1.34,0,0,1-1.13-.56,1.1,1.1,0,0,1-.12-1.13L8.75,1.3a1.4,1.4,0,0,1,2.5,0l8.12,18.48a1.1,1.1,0,0,1-.12,1.13,1.34,1.34,0,0,1-1.13.56Z\"\n          />\n        </g>\n      </g>\n    </svg>\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","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\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","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","getVisualSelection","node","nodeDocument","document","ownerDocument","nodeWindow","window","defaultView","activeElement","selection","getSelection","rangeCount","range","getRangeAt","selectionStart","findVisualSelectionOffsetFromRangeNode","startContainer","startOffset","collapsed","endContainer","endOffset","setVisualSelection","start","end","undefined","_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","Math","max","rootNode","rangeNode","rangeNodeOffset","currentVisualOffset","i","searchPath","tailIndex","currentNode","pop","parentNodeIndex","parentNode","nextSibling","push","visualOffset","currentNodeLength","currentOffset","setSelectionAtEnd","contentEditableEl","selectNodeContents","_unused","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","data","list","formatOptionsList","fromJS","opts","_toConsumableArray","overflow","event","stopEvent","optionElement","DOMfindParent","split","includes","optionIndex","dataset","index","optionIndexInt","parseInt","isNaN","selectOption","_this3","clearTimeout","setTimeout","mounted","onChange","updateURL","railsPostFetch","body","JSON","stringify","then","response","json","onSearch","searchPromise","Promise","_resolve","reject","_this4","fetchOptions","applyOptions","catch","_error","nextProps","_get","_getPrototypeOf","call","optionsMap","loadingSign","_this5","_this$props","placeholder","_this$state","keyboardIndex","classNames","TextField","readOnly","onFocus","onBlur","onKeyDown","size","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","name","onInputChange","type","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","ImageGallery","_ref","imageList","hideIcons","setCurrent","setOpened","getIn","showIcons","ImagePin","previewURL","baseUrl","closeOnClick","withPincher","withZoom","withPopup","image","ImageGalleryItem","prev","next","baseURL","displayName","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","mousemove","ObservableFromEvent","EMPTY_OBSERVABLE","mouseup","sliderFromMouseDown","pipe","rxMap","md","sliderID","sliderToMouseDown","clicks","rxMerge","rxMapTo","mousedrag","rxMergeMap","startX","clientX","startPositionID","mm","preventDefault","positionId","round","rxFilter","rxTakeUntil","dragSubscription","subscribe","_ref3","clicksSubscription","cursor","classList","toggle","activeSlider","min","unsubscribe","dragSlider","sliderRef","onSliderClick","slider","x","abs","_defineProperty","_","left","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","status","message","showMeter","panelsMode","deliveryBy","surveyType","difficulty","respondents","customQuote","customQuoteImage","targetingsOverlap","onPriceClick","locale","showPanelsMode","getTtlText","ttlText","setTimeToLifeText","ttlInterval","ttlCountdown","clearInterval","setInterval","launchWithinSec","_objectSpread","componentStyle","customQuoteLocale","src","alt","renderFooter","renderCustomQuote","arrowAngle","arrowSector","ceil","transform","renderComplexityMeter","renderLoader","date","deliveryDateLocal","currentDateLocal","isSame","add","toUpperCase","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","_PureDataComponent","tag","onDelete","tags","tList","has","PureDataComponent","Toggle","_Toggle","active","position","pinCaught","moveTimeout","toggleWidth","addEventListener","pinRelease","pinMove","setActive","val","setActiveState","nativeEvent","offsetX","refLeft","refToggle","_this$props2","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","onClose","videos","AutosizedInput","_Component","args","lastText","divRef","placeholderRef","placeholderEnabled","onChangeDebounceTimer","divKey","random","toString","placeholderKey","divMutationObserver","MutationObserver","getText","maxLength","multiline","filteredText","setText","slice","indexOf","html","getHTML","setHTML","togglePlaceholder","sendUpdatedText","watchChanges","unwatchChanges","observe","characterData","childList","subtree","disconnect","removeEventListener","forceUpdate","keepSelection","innerText","_this$props3","enabled","remove","focus","innerHTML","withFunction","rangeBefore","endOffsetBefore","rangeAfter","selectionAfter","_this$props4","execCommand","stopImmediatePropagation","_this$props5","_this$props6","contentEditable","inputComponent","placeholderComponent","onPlaceholderClick","Component","HoverTarget","_props$gracePeriod","gracePeriod","_props$hovered","hovered","propsHovered","leaveGracePeriodTimer","setHovered","onMouseEnter","onMouseLeave","toText","source","String","getOptionText","render","InlineSearch","listRef","editing","timer","propsValue","setValue","showList","setShowList","setIndex","anchors","defaultProps","inputChange","newValue","closeList","autoClear","stepList","element","offsetTop","clientHeight","inputKeyDown","iconClick","inputBlur","onWheel","passive","selector","input","container","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","reduce","acc","_option","every","inRect","margins","ignoreClasses","testClass","m","bottom","clientY","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","offsetLeft","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","querySelector","Checkout","_Checkout","updateData","invoice","launching","checkBoxes","additionalData","invoiceError","updatingTable","cbData","cb","cbs","merge","beforeCheckout","newInvoice","delete","validate","checkoutURL","prepareLocalDataToSend","ok","onCheckout","invoice_table","table","errorText","newState","_checkBoxes","validateInvoiceData","error","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","resolve","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","configure","onStripeToken","email","stripeIcon","open","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","onEnter","onLeave","customColorStyle","assign","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","keyCode","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","hasOwn","classes","arg","argType","inner","module","exports","default","_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","align","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","_objectWithoutPropertiesLoose","excluded","sourceKeys"],"sourceRoot":""}