{"version":3,"file":"js/9499-1d31e578ba8dae4e4570.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/app/survey/editor/styles/content/assets/AssetUploader.module.scss?9890","webpack://AYTM/./app/_stock/webpack/app/survey/editor/components/content/assets/AssetUploader.jsx","webpack://AYTM/./app/_stock/webpack/app/survey/editor/styles/content/assets/ImagePreview.module.scss?071c","webpack://AYTM/./app/_stock/webpack/app/survey/editor/components/content/assets/ImagePreview.jsx","webpack://AYTM/./app/_stock/webpack/lib/common/scroll.js","webpack://AYTM/./app/_stock/webpack/lib/hooks/useMountedRef.ts","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/check-box.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/basic/click-outside.module.scss?81cb","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/click-outside.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/basic/image-popup.scss?806a","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/image-popup.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/styles/basic/inline-select.module.scss?cb19","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/inline-select.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/radio-button.jsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"minPlaceholderHeight\":\"34\",\"indent0\":\"39\",\"indent1\":\"72\",\"indent2\":\"105\",\"indent3\":\"138\",\"component\":\"AssetUploader-module__component___1jn2G surveyeditor-AssetUploader\",\"component-readOnly\":\"AssetUploader-module__component-readOnly___1GBK0\",\"input\":\"AssetUploader-module__input___2umvZ\"};","// lib\nimport React from 'react'\nimport ManagedRenderComponent from '@aytm/lib/common/components/ManagedRenderComponent'\nimport autobind from 'autobind-decorator'\nimport PropTypes from 'prop-types'\n\n// styles\nimport style from '@aytm/app/survey/editor/styles/content/assets/AssetUploader.module.scss'\n\n// <Component>\nexport default class AssetUploader extends ManagedRenderComponent {\n  static propTypes = {\n    readOnly: PropTypes.bool,\n    children: PropTypes.any,\n    accept: PropTypes.string,\n    onUploadFile: PropTypes.func\n  }\n  static updateOnProps(/*nextProps, prevProps*/) {\n    return true\n  }\n\n  @autobind\n  fileSelected() {\n    if (this.refUploadInput && this.refUploadInput.files && this.refUploadInput.files.length) {\n      this.uploadFile(this.refUploadInput.files[0])\n    }\n  }\n\n  @autobind\n  uploadFile(file) {\n    const { onUploadFile } = this.props\n    if ('function' == typeof onUploadFile) {\n      onUploadFile(file)\n    }\n  }\n\n  render() {\n    const { accept, readOnly, children } = this.props\n    return readOnly ? (\n      <label className={`${style.component} ${style['component-readOnly']}`}>{children}</label>\n    ) : (\n      <label className={style.component}>\n        <input\n          type=\"file\"\n          name=\"file\"\n          onChange={this.fileSelected}\n          accept={accept}\n          className={style.input}\n          tabIndex=\"-1\"\n          ref={this.saveRef('UploadInput')}\n        />\n        {children}\n      </label>\n    )\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"minPlaceholderHeight\":\"34\",\"indent0\":\"39\",\"indent1\":\"72\",\"indent2\":\"105\",\"indent3\":\"138\",\"component\":\"ImagePreview-module__component___CgYZO surveyeditor-ImagePreview\",\"zoom\":\"ImagePreview-module__zoom___1TVio icon-aytmfd-zoom-in surveyeditor-ImagePreview-zoom\",\"uploadImage\":\"ImagePreview-module__uploadImage___2_jAZ rfd-highlight-hover-background-color\",\"deleteImage\":\"ImagePreview-module__deleteImage___1fHBa rfd-highlight-hover-background-color\",\"loading\":\"ImagePreview-module__loading___2HqjN\",\"loading-icon\":\"ImagePreview-module__loading-icon___PMkzk icon-aytmfd-spin aytmfd-spin\",\"imageHolder\":\"ImagePreview-module__imageHolder___2gNMf surveyeditor-ImagePreview-imageHolder\",\"image\":\"ImagePreview-module__image___hDIOm\",\"image-loading\":\"ImagePreview-module__image-loading___2ToMx\",\"image-loaded\":\"ImagePreview-module__image-loaded___3ArF2\",\"image-inactive\":\"ImagePreview-module__image-inactive___1j03Q\",\"loader\":\"ImagePreview-module__loader___1Zavk\"};","// lib\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport ManagedRenderComponent from '@aytm/lib/common/components/ManagedRenderComponent'\n\n// components\nimport ImagePopup from '@aytm//lib/rfd-ui/components/basic/image-popup'\nimport AssetUploader from '@aytm/app/survey/editor/components/content/assets/AssetUploader'\nimport Popup, { PopupContent } from '@aytm/lib/rfd-ui/components/basic/popup'\n\n// style\nimport style from '@aytm/app/survey/editor/styles/content/assets/ImagePreview.module.scss'\n\n// <Components>\nexport default class ImagePreview extends ManagedRenderComponent {\n  static propTypes = {\n    accept: PropTypes.string,\n    label: PropTypes.string,\n    imageUrl: PropTypes.string,\n    previewUrl: PropTypes.string,\n    maxHeight: PropTypes.string,\n    maxWidth: PropTypes.string,\n    minWidth: PropTypes.string,\n    minHeight: PropTypes.string,\n    openImageOnZoomButtonOnly: PropTypes.bool,\n    doubleBuffering: PropTypes.bool,\n    allowScrolling: PropTypes.bool,\n    onPreviewLoaded: PropTypes.func,\n    uploadImageLabel: PropTypes.string,\n    onUploadImage: PropTypes.func,\n    deleteImageLabel: PropTypes.string,\n    onDeleteImage: PropTypes.func,\n    onImageOpen: PropTypes.func,\n    onImageHide: PropTypes.func,\n    onImageLoaded: PropTypes.func\n  }\n  static updateOnProps(nextProps, prevProps) {\n    return (\n      nextProps.imageUrl != prevProps.imageUrl ||\n      nextProps.previewUrl != prevProps.previewUrl ||\n      nextProps.maxHeight != prevProps.maxHeight ||\n      nextProps.maxWidth != prevProps.maxWidth ||\n      nextProps.minWidth != prevProps.minWidth ||\n      nextProps.minHeight != prevProps.minHeight ||\n      nextProps.openImageOnZoomButtonOnly != prevProps.openImageOnZoomButtonOnly ||\n      nextProps.doubleBuffering != prevProps.doubleBuffering ||\n      nextProps.onImageLoaded != prevProps.onImageLoaded ||\n      nextProps.uploadImageLabel != prevProps.uploadImageLabel\n    )\n  }\n\n  static contextTypes = {\n    popup: PropTypes.instanceOf(Popup),\n    popupContent: PropTypes.instanceOf(PopupContent)\n  }\n\n  state = {\n    loading: true,\n    loaded: false,\n    previewUrl: null,\n    previewState: 'fetch',\n    showImage: false\n  }\n\n  constructor(props, context) {\n    super(props, context)\n    this.previewImage = null\n  }\n\n  componentDidMount() {\n    const { previewUrl } = this.props\n    this.setPreviewImage(previewUrl)\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps /*, nextContext*/) {\n    if (nextProps.previewUrl != this.props.previewUrl) {\n      this.setPreviewImage(nextProps.previewUrl)\n    }\n  }\n\n  @autobind\n  setPreviewImage(url) {\n    if (false === this.props.doubleBuffering) {\n      this.setState({ previewState: 'fetched', previewUrl: url }, () => {\n        this.reposition()\n      })\n    } else {\n      this.previewImage = document.createElement('img')\n      this.previewImage.addEventListener('load', () => {\n        const { onPreviewLoaded } = this.props\n        if ('function' == typeof onPreviewLoaded) {\n          onPreviewLoaded(url)\n        }\n        this.setState({ previewState: 'fetched', previewUrl: url }, () => {\n          this.reposition()\n        })\n      })\n      this.setState({ previewState: 'fetch' }, this.reposition)\n      setTimeout(() => {\n        if (this.mounted && 'fetch' == this.state.previewState) {\n          this.setState({ previewState: 'fetching' }, this.reposition)\n        }\n      }, 200)\n      this.previewImage.src = url\n    }\n  }\n\n  @autobind\n  reposition() {\n    const { popupContent } = this.context\n    if (popupContent) {\n      setTimeout(() => {\n        popupContent.reposition()\n      }, 0)\n      setTimeout(() => {\n        // control shot!\n        popupContent.reposition()\n      }, 100)\n    }\n  }\n\n  @autobind\n  onLoaded() {\n    const { onImageLoaded } = this.props\n    setTimeout(() => {\n      this.reposition()\n      if ('function' == typeof onImageLoaded) {\n        onImageLoaded()\n      }\n    }, 10)\n    this.setState({ loading: false, loaded: true })\n  }\n\n  @autobind\n  showImage() {\n    const { popup } = this.context\n    const { onImageOpen } = this.props\n    if (popup) popup.freeze()\n    if ('function' == typeof onImageOpen) onImageOpen()\n    this.setState({\n      showImage: true\n    })\n  }\n\n  @autobind\n  hideImage() {\n    const { popup } = this.context\n    const { onImageHide } = this.props\n    if (popup) {\n      popup.unfreeze()\n      popup.hide()\n    }\n    if ('function' == typeof onImageHide) onImageHide()\n    this.setState({\n      showImage: false\n    })\n  }\n\n  render() {\n    const {\n      label,\n      imageUrl,\n      maxHeight,\n      maxWidth,\n      minHeight,\n      minWidth,\n      allowScrolling,\n      openImageOnZoomButtonOnly,\n      accept,\n      onUploadImage,\n      uploadImageLabel,\n      onDeleteImage,\n      deleteImageLabel\n    } = this.props\n    const { loading, loaded, previewUrl, previewState, showImage } = this.state\n    return (\n      <div\n        className={`${style.component}${'fetched' != previewState ? ' ' + style.loading : ''}`}\n        style={{ maxHeight, maxWidth, minWidth, minHeight }}\n      >\n        {previewUrl && (\n          <div\n            className={`${style.image}${loading ? ' ' + style['image-loading'] : ''}${\n              loaded ? ' ' + style['image-loaded'] : ''\n            }${openImageOnZoomButtonOnly ? ' ' + style['image-inactive'] : ''}`}\n            onClick={openImageOnZoomButtonOnly ? null : this.showImage}\n            style={{ minWidth }}\n          >\n            <div className={style.imageHolder} style={{ maxHeight, minWidth, maxWidth }}>\n              <img role=\"presentation\" alt=\"\" src={previewUrl} onLoad={this.onLoaded} style={{ maxHeight, maxWidth }} />\n              {loading && !loaded && (\n                <div className={style.loader}>\n                  <i className=\"icon-aytmfd-spin aytmfd-spin\" />\n                </div>\n              )}\n              {'fetched' == previewState && <i className={style.zoom} onClick={this.showImage} />}\n              {'fetched' == previewState && 'function' == typeof onUploadImage && (\n                <div className={style.uploadImage}>\n                  <AssetUploader onUploadFile={onUploadImage} accept={accept}>\n                    <i className=\"icon-aytmfd-qimage\" /> {uploadImageLabel || 'CHANGE'}\n                  </AssetUploader>\n                </div>\n              )}\n              {'fetched' == previewState && 'function' == typeof onDeleteImage && (\n                <div className={style.deleteImage} onClick={onDeleteImage}>\n                  {deleteImageLabel || 'DELETE'}\n                </div>\n              )}\n            </div>\n          </div>\n        )}\n        {'fetching' == previewState && <i className={style['loading-icon']} />}\n        <ImagePopup\n          label={label}\n          src={imageUrl}\n          show={showImage}\n          scrolling={allowScrolling}\n          onClose={this.hideImage}\n          closeOnClick={true}\n        />\n      </div>\n    )\n  }\n}\n","const smoothStep = (start, end, point) => {\n  if (point <= start) {\n    return 0\n  }\n  if (point >= end) {\n    return 1\n  }\n  const x = (point - start) / (end - start)\n  return x * x * (3 - 2 * x)\n}\n\nexport default function scrollTo(element, params) {\n  if (params.duration < 0) return Promise.reject()\n\n  if (0 == params.duration) {\n    if (params.top != null) element.scrollTop = params.top\n    if (params.left != null) element.scrollLeft = params.left\n\n    return Promise.resolve()\n  }\n\n  const startTime = Date.now()\n  const endTime = startTime + params.duration\n  const start = { x: element.scrollLeft, y: element.scrollTop }\n  const distance = {\n    x: null == params.left ? null : params.left - start.x,\n    y: null == params.top ? null : params.top - start.y\n  }\n\n  return new Promise((resolve, reject) => {\n    const prev = { x: element.scrollLeft, y: element.scrollTop }\n\n    const scrollFrame = () => {\n      if (element.scrollLeft != prev.x || element.scrollTop != prev.y) {\n        reject()\n        return\n      }\n\n      const now = Date.now()\n      const point = smoothStep(startTime, endTime, now)\n      const frame = { x: Math.round(start.x + distance.x * point), y: Math.round(start.y + distance.y + point) }\n      element.scrollLeft = frame.x\n      element.scrollTop = frame.y\n\n      if (now >= endTime) {\n        resolve()\n        return\n      }\n\n      if (\n        element.scrollTop == prev.y &&\n        element.scrollLeft == prev.x &&\n        element.scrollTop !== frame.y &&\n        element.scrollLeft !== frame.x\n      ) {\n        resolve()\n        return\n      }\n\n      prev.x = element.scrollLeft\n      prev.y = element.scrollTop\n\n      setTimeout(scrollFrame, 0)\n    }\n\n    setTimeout(scrollFrame, 0)\n  })\n}\n\nexport function verticalScrollIntoContainerView(element, container = element.parentElement, { margin = 5 } = {}) {\n  if (element && container && element.getBoundingClientRect && container.getBoundingClientRect) {\n    const containerRect = container.getBoundingClientRect()\n    const elementRect = element.getBoundingClientRect()\n    if (elementRect.bottom > containerRect.bottom - margin) {\n      // scroll content up\n      container.scrollTop = container.scrollTop + (elementRect.bottom - (containerRect.bottom - margin))\n    } else if (elementRect.top < containerRect.top + margin) {\n      // scroll content down\n      container.scrollTop = container.scrollTop - (containerRect.top + margin - elementRect.top)\n    }\n  }\n}\n","import { useEffect, useRef } from 'react'\n\n/**\n * A ref object whose `.current` property is set to `true` when the component\n * is mounted and `false` when it is unmounted.\n * @typedef {Object} MountedRef\n * @property {boolean} current\n * @memberof useMountedRef\n */\nexport type MountedRef = React.RefObject<boolean>\n\n/**\n * Returns a ref object whose `.current` property is set to `true` when the\n * component is mounted and `false` when it is unmounted.\n * @function useMountedRef\n * @returns {MountedRef}\n */\nexport default function useMountedRef(): MountedRef {\n  const mounted = useRef<boolean>(false)\n\n  useEffect(() => {\n    mounted.current = true\n    return () => {\n      mounted.current = false\n    }\n  }, [])\n\n  return mounted\n}\n","import React, { useMemo, useCallback } from 'react'\nimport PropTypes from 'prop-types'\nimport { stopEvent } from '@aytm/lib/common/func'\n\nimport '@aytm/lib/rfd-ui/styles/basic/check-box.scss'\n\nCheckBox.propTypes = {\n  /**\n   * is checked\n   */\n  checked: PropTypes.bool,\n  /**\n   * is disabled\n   */\n  disabled: PropTypes.bool,\n  /**\n   * error state\n   */\n  error: PropTypes.bool,\n  /**\n   * Checkbox label\n   */\n  label: PropTypes.string,\n  /**\n   * check size in pixels\n   */\n  checkSize: PropTypes.number,\n  /**\n   * label size in pixels\n   */\n  labelSize: PropTypes.number,\n  /**\n   * lineHeight for check and label\n   */\n  lineHeight: PropTypes.number,\n  /**\n   * custom style\n   */\n  style: PropTypes.object,\n  /**\n   * custom className\n   */\n  className: PropTypes.string,\n  /**\n   * \"checked\" icon className\n   */\n  checkedIcon: PropTypes.string,\n  /**\n   * \"unchecked\" icon className\n   */\n  uncheckedIcon: PropTypes.string,\n  /**\n   * fires when CheckBox is `clicked` and `not disabled`: `onAction(event)`\n   */\n  onAction: PropTypes.func,\n  /**\n   * fires when CheckBox is `clicked` and `not disabled`: `onChange(!checked)`\n   */\n  onChange: PropTypes.func,\n  /**\n   * fires when CheckBox is `clicked` (disabled or not): `onClick(event)`\n   */\n  onClick: PropTypes.func,\n  /**\n   * onKeyDown callback\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * `SPACE` and `ENTER` keys presses works as clicks\n   */\n  spaceEnterAsClick: PropTypes.bool,\n  /**\n   * `UP` and `DOWN` key presses will move focus between CheckBoxes\n   */\n  upDownAsMoveFocus: PropTypes.bool,\n  /**\n   * CheckBox group name for `UP` and `DOWN` keys presses navigation\n   */\n  groupName: PropTypes.string\n}\nCheckBox.defaultProps = {\n  checkedIcon: 'icon-aytmfd-afdcheckbox-full',\n  uncheckedIcon: 'icon-aytmfd-afdcheckbox',\n  spaceEnterAsClick: true,\n  upDownAsMoveFocus: false,\n  groupName: 'default'\n}\nexport default function CheckBox({\n  checked,\n  disabled,\n  error,\n  label,\n  checkSize,\n  labelSize,\n  lineHeight,\n  style,\n  className,\n  checkedIcon = 'icon-aytmfd-afdcheckbox-full',\n  uncheckedIcon = 'icon-aytmfd-afdcheckbox',\n  onAction,\n  onChange,\n  onClick: onCustomClick,\n  onKeyDown: onCustomKeyDown,\n  spaceEnterAsClick = true,\n  upDownAsMoveFocus = false,\n  groupName = 'default',\n  ...otherProps\n} = {}) {\n  const commonLineHeight = useMemo(\n    () =>\n      lineHeight\n        ? `${lineHeight}px`\n        : (() => {\n            const maxSize = Math.max(checkSize, labelSize)\n            return maxSize ? `${maxSize * 1.2}px` : null\n          })(),\n    [lineHeight, checkSize, labelSize]\n  )\n  const applyStyle = useMemo(() => (commonLineHeight ? { lineHeight: commonLineHeight } : {}), [commonLineHeight])\n  const mergedStyle = useMemo(\n    () => (null != style ? Object.assign(applyStyle, style) : applyStyle),\n    [style, applyStyle]\n  )\n\n  const onClick = useCallback(\n    event => {\n      if (onCustomClick) {\n        onCustomClick(event)\n      }\n      if (!disabled && (void 0 === event.button || 0 === event.button)) {\n        if (onAction) {\n          onAction(event)\n        }\n        if (onChange) {\n          onChange(!checked)\n        }\n      }\n    },\n    [onCustomClick, onAction, onChange, disabled, checked]\n  )\n\n  const onKeyDown = useCallback(\n    event => {\n      if (onCustomKeyDown) {\n        onCustomKeyDown(event)\n      }\n      if (!disabled) {\n        if (spaceEnterAsClick && onClick && (' ' === event.key || 'Enter' === event.key)) {\n          onClick(event)\n          stopEvent(event)\n        } else if (upDownAsMoveFocus) {\n          if ('ArrowUp' === event.key) {\n            const activeCheckboxes = document.querySelectorAll(\n              `${groupName ? `.rfd-ui-checkbox-group-${groupName}` : ''}.rfd-ui-checkbox[tabindex=\"0\"]`\n            )\n            for (let i = 0; i < activeCheckboxes.length; i++) {\n              if (document.activeElement === activeCheckboxes[i]) {\n                if (i > 0) {\n                  activeCheckboxes[i - 1].focus()\n                }\n                break\n              }\n            }\n            stopEvent(event)\n          } else if ('ArrowDown' === event.key) {\n            const activeCheckboxes = document.querySelectorAll(\n              `${groupName ? `.rfd-ui-checkbox-group-${groupName}` : ''}.rfd-ui-checkbox[tabindex=\"0\"]`\n            )\n            for (let i = 0; i < activeCheckboxes.length; i++) {\n              if (document.activeElement === activeCheckboxes[i]) {\n                if (i < activeCheckboxes.length - 1) {\n                  activeCheckboxes[i + 1].focus()\n                }\n                break\n              }\n            }\n            stopEvent(event)\n          }\n        }\n      }\n    },\n    [onCustomKeyDown, onClick, disabled, spaceEnterAsClick, upDownAsMoveFocus, groupName]\n  )\n\n  return (\n    <span\n      className={`rfd-ui-checkbox${className ? ' ' + className : ''}${checked ? ' rfd-ui-checkbox-checked' : ''}${\n        disabled ? ' rfd-ui-checkbox-disabled' : ''\n      }${error ? ' rfd-ui-checkbox-error' : ''}${groupName ? ` rfd-ui-checkbox-group-${groupName}` : ''}`}\n      tabIndex={disabled ? -1 : 0}\n      style={mergedStyle}\n      onClick={onClick}\n      onKeyDown={onKeyDown}\n      role=\"checkbox\"\n      aria-checked={checked}\n      aria-disabled={disabled ? true : null}\n      {...otherProps}\n    >\n      <i\n        className={`rfd-ui-checkbox-icon ${checked ? checkedIcon : uncheckedIcon}`}\n        style={{ fontSize: checkSize, lineHeight: commonLineHeight }}\n        role=\"presentation\"\n      />\n      {label && (\n        <span\n          className=\"rfd-ui-checkbox-label\"\n          dangerouslySetInnerHTML={{ __html: label }}\n          style={{ fontSize: labelSize, lineHeight: commonLineHeight }}\n        />\n      )}\n    </span>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"click-outside-module__wrapper___1byHf\"};","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\n\nimport style from '@aytm/lib/rfd-ui/styles/basic/click-outside.module.scss'\n\nexport default class ClickOutside extends Component {\n  static propTypes = {\n    children: PropTypes.any,\n    captured: PropTypes.bool,\n    onClickOutside: PropTypes.func.isRequired\n  }\n\n  constructor(props) {\n    super(props)\n    this.captured = 'boolean' == typeof props.captured ? props.captured : true\n    this.isTouch = false\n  }\n\n  @autobind\n  saveRefContainer(ref) {\n    this.refContainer = ref\n  }\n\n  @autobind\n  handle(event) {\n    if ('touchend' === event.type) this.isTouch = true\n    if ('click' === event.type && this.isTouch) return\n\n    const { onClickOutside } = this.props\n    if (!this.refContainer.contains(event.target)) onClickOutside(event)\n  }\n\n  componentDidMount() {\n    document.addEventListener('click', this.handle, this.captured)\n    document.addEventListener('touchend', this.handle, this.captured)\n  }\n\n  componentWillUnmount() {\n    document.removeEventListener('click', this.handle, this.captured)\n    document.removeEventListener('touchend', this.handle, this.captured)\n  }\n\n  render() {\n    const { children, onClickOutside, ...props } = this.props\n    return (\n      <div ref={this.saveRefContainer} className={style.wrapper} {...props}>\n        {children}\n      </div>\n    )\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"popupDefaultWidth\":\"200px\",\"popupDefaultHeight\":\"160px\"};","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 { viewport, preprocessText, escapeText } from '@aytm/lib/common/func'\n\nimport LightBox from './light-box'\n\nimport styles from '@aytm/lib/rfd-ui/styles/basic/image-popup.scss'\n\nconst POPUP_PADDING = 5\nconst FRAME_PADDING = 7\nconst SCROLLING_PADDING = 30\nconst LABEL_HEIGHT = 40\n\nexport default class ImagePopup extends PureDataComponent {\n  static propTypes = {\n    src: PropTypes.string,\n    imageProps: PropTypes.object,\n    label: PropTypes.string,\n    show: PropTypes.bool,\n    scrolling: PropTypes.bool,\n    loadingIcon: PropTypes.string,\n    failedIcon: PropTypes.string,\n    closeIcon: PropTypes.string,\n    onLoad: PropTypes.func,\n    onError: PropTypes.func,\n    onClose: PropTypes.func,\n    closeOnClick: PropTypes.bool\n  }\n\n  constructor(props) {\n    super(props)\n\n    this.animate = true\n    this.bodyElm = document.querySelector('body')\n    this.bodyElmOverflowBackup = this.bodyElm.style.overflow\n    this.state = {\n      loading: true,\n      loaded: false,\n      imageWidth: styles.popupDefaultWidth,\n      imageHeight: styles.popupDefaultHeight,\n      intrinsicWidth: 0,\n      intrinsicHeight: 0\n    }\n  }\n\n  @autobind\n  onLoad(event) {\n    const target = event.target\n    this.setState({ intrinsicWidth: target.naturalWidth, intrinsicHeight: target.naturalHeight })\n\n    setTimeout(() => {\n      const { onLoad } = this.props\n      if ('function' == typeof onLoad) {\n        onLoad()\n      }\n      this.resize()\n    }, 10)\n\n    this.setState({ loading: false, loaded: true })\n  }\n\n  @autobind\n  onError() {\n    this.setState({ intrinsicWidth: 0, intrinsicHeight: 0 })\n\n    setTimeout(() => {\n      const { onError } = this.props\n      if ('function' == typeof onError) {\n        onError()\n      }\n      this.resize()\n    }, 10)\n\n    this.setState({ loading: false, loaded: false })\n  }\n\n  @autobind\n  handleWindowResize() {\n    this.resize()\n  }\n\n  @autobind\n  resizePreload() {\n    const { label } = this.props\n\n    if (this.refImageFrame) {\n      const fWidth = this.refImageFrame.offsetWidth\n      const fHeight = this.refImageFrame.offsetHeight\n\n      this.setState({\n        imageWidth: fWidth - 2 * POPUP_PADDING - 2 * FRAME_PADDING,\n        imageHeight: fHeight - 2 * POPUP_PADDING - 2 * FRAME_PADDING - (label ? LABEL_HEIGHT : 0)\n      })\n    }\n  }\n\n  @autobind\n  resize() {\n    const { label, scrolling } = this.props\n    const { loaded, intrinsicWidth, intrinsicHeight } = this.state\n\n    if (this.refImageFrame) {\n      const v = viewport()\n      const maxIWidth =\n        v.w - 2 * POPUP_PADDING - 2 * FRAME_PADDING - SCROLLING_PADDING - (scrolling ? SCROLLING_PADDING : 0)\n      const maxIHeight = v.h - 2 * POPUP_PADDING - 2 * FRAME_PADDING - SCROLLING_PADDING - (label ? LABEL_HEIGHT : 0)\n\n      if (loaded) {\n        const img =\n          this.refImageFrame.querySelector('.rfd-ui-image-popup-image') || this.refImageFrame.querySelector('img')\n\n        if (img) {\n          let iWidth = Math.max(60, intrinsicWidth)\n          let iHeight = Math.max(60, intrinsicHeight)\n\n          const ratio = iWidth / iHeight\n\n          if (iWidth > maxIWidth) {\n            iWidth = maxIWidth\n            iHeight = iWidth / ratio\n          }\n          if (iHeight > maxIHeight) {\n            iHeight = maxIHeight\n            !scrolling && (iWidth = iHeight * ratio)\n          }\n\n          this.setState({ imageWidth: iWidth, imageHeight: iHeight })\n\n          if (this.animate) {\n            const refImageFrame = this.refImageFrame\n\n            refImageFrame.classList.add('rfd-ui-image-popup-frame-before-animate')\n            setTimeout(() => {\n              refImageFrame.classList.remove('rfd-ui-image-popup-frame-before-animate')\n              refImageFrame.classList.add('rfd-ui-image-popup-frame-animate')\n              setTimeout(() => {\n                refImageFrame.classList.remove('rfd-ui-image-popup-frame-animate')\n              }, 500)\n            }, 100)\n            this.animate = false\n          }\n        } else this.resizePreload()\n      } else this.resizePreload()\n    }\n  }\n\n  @autobind\n  handleClose() {\n    this.animate = true\n\n    const { onClose } = this.props\n\n    if ('function' == typeof onClose) {\n      onClose()\n    }\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    super.UNSAFE_componentWillReceiveProps(nextProps)\n\n    if (nextProps.show && !this.props.show) {\n      if (this.bodyElm) {\n        this.bodyElmOverflowBackup = this.bodyElm.style.overflow\n        this.bodyElm.style.setProperty('overflow', 'hidden')\n      }\n      window.addEventListener('resize', this.handleWindowResize)\n    } else if (!nextProps.show && this.props.show) {\n      if (this.bodyElm) {\n        this.bodyElm.style.setProperty('overflow', this.bodyElmOverflowBackup || null)\n      }\n      window.removeEventListener('resize', this.handleWindowResize)\n    }\n\n    this.resize()\n  }\n\n  componentDidMount() {\n    super.componentDidMount()\n\n    const { show } = this.props\n\n    if (show) {\n      if (this.bodyElm) {\n        this.bodyElmOverflowBackup = this.bodyElm.style.overflow\n        this.bodyElm.style.setProperty('overflow', 'hidden')\n      }\n      window.addEventListener('resize', this.handleWindowResize)\n    } else {\n      if (this.bodyElm) {\n        this.bodyElm.style.setProperty('overflow', this.bodyElmOverflowBackup || null)\n      }\n      window.removeEventListener('resize', this.handleWindowResize)\n    }\n  }\n\n  componentWillUnmount() {\n    super.componentWillUnmount()\n\n    if (this.bodyElm) {\n      this.bodyElm.style.setProperty('overflow', this.bodyElmOverflowBackup || null)\n    }\n    window.removeEventListener('resize', this.handleWindowResize)\n  }\n\n  render() {\n    const {\n      src,\n      imageProps,\n      label,\n      show,\n      scrolling,\n      loadingIcon = 'icon-aytmfd-spin aytmfd-spin',\n      failedIcon = 'icon-aytmfd-delete',\n      closeIcon = 'icon-aytmfd-delete',\n      closeOnClick = false\n    } = this.props\n    const { loading, loaded, imageWidth, imageHeight } = this.state\n\n    if (show) {\n      const iWidth = imageWidth + (scrolling ? SCROLLING_PADDING : 0)\n      const iHeight = imageHeight + (label && loaded ? LABEL_HEIGHT : 0)\n\n      return (\n        <LightBox onClose={this.handleClose} fullSize={scrolling}>\n          <div\n            className={classNames('rfd-ui-image-popup-frame', {\n              'rfd-ui-image-popup-frame-loading': loading,\n              'rfd-ui-image-popup-frame-loaded': loaded,\n              'rfd-ui-image-popup-frame-scrolling': loaded && scrolling\n            })}\n            ref={this.saveRef('ImageFrame')}\n            style={{\n              width: `${Math.max(styles.popupDefaultWidth, iWidth)}px`,\n              height: `${Math.max(styles.popupDefaultHeight, iHeight)}px`,\n              margin: `-${iHeight / 2 + FRAME_PADDING}px 0 0 -${iWidth / 2 + FRAME_PADDING}px`,\n              padding: `${FRAME_PADDING}px`\n            }}\n            onClick={closeOnClick ? this.handleClose : null}\n            data-testid=\"SW-Image-Popup\"\n          >\n            <div className=\"rfd-ui-image-popup-close-button\" onClick={this.handleClose}>\n              <i className={closeIcon} />\n            </div>\n            <div className=\"rfd-ui-image-popup-image\">\n              <img\n                {...imageProps}\n                src={src}\n                width={`${imageWidth}px`}\n                height={scrolling ? 'auto' : `${imageHeight}px`}\n                onLoad={this.onLoad}\n                onError={this.onError}\n                style={closeOnClick ? { cursor: 'pointer' } : null}\n                data-testid=\"SW-Image\"\n                alt=\"\"\n                role=\"presentation\"\n              />\n            </div>\n            {loading && !loaded && (\n              <div className=\"rfd-ui-image-popup-image-loader\">\n                <i className={loadingIcon} />\n              </div>\n            )}\n            {!loading && !loaded && (\n              <div className=\"rfd-ui-image-popup-image-failed\">\n                <i className={failedIcon} />\n              </div>\n            )}\n            {label && loaded && (\n              <div\n                className=\"rfd-ui-image-popup-image-label\"\n                style={{ width: `${imageWidth}px`, height: `${LABEL_HEIGHT}px` }}\n                dangerouslySetInnerHTML={{ __html: preprocessText(escapeText(label)) }}\n              />\n            )}\n          </div>\n        </LightBox>\n      )\n    } else return null\n  }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"component\":\"inline-select-module__component___2YoCs rfd-ui-inline-select\",\"select\":\"inline-select-module__select___2XfSv rfd-ui-inline-select-select\",\"disabled\":\"inline-select-module__disabled___2T5SI\",\"options\":\"inline-select-module__options___2NGdf rfd-ui-inline-select-options\",\"option\":\"inline-select-module__option___1IiWb rfd-ui-inline-select-option\",\"option-selected\":\"inline-select-module__option-selected___21TeQ rfd-ui-inline-select-option-selected\",\"arrowDown\":\"inline-select-module__arrowDown___1t8Wf icon-aytmfd-down rfd-ui-inline-select-arrowDown\",\"component-opened\":\"inline-select-module__component-opened___20U1r rfd-ui-inline-select-opened\",\"component-selected\":\"inline-select-module__component-selected___eAKeY rfd-ui-inline-select-selected\",\"component-multiple\":\"inline-select-module__component-multiple___3Knx4 rfd-ui-inline-select-multiple\",\"option-multiple-icon\":\"inline-select-module__option-multiple-icon___3HKNw rfd-ui-inline-select-option-multiple-icon\",\"option-multiple-icon-selected\":\"inline-select-module__option-multiple-icon-selected___GXuZv\",\"focusHolder\":\"inline-select-module__focusHolder___3TTTD\",\"options-keyboard-selected\":\"inline-select-module__options-keyboard-selected___2H1T7\",\"option-keyboard-selected\":\"inline-select-module__option-keyboard-selected___12fip\",\"option-disabled\":\"inline-select-module__option-disabled___1-Iip rfd-ui-inline-select-option-disabled\",\"label\":\"inline-select-module__label___13lYQ rfd-ui-inline-select-label\",\"label-readOnly\":\"inline-select-module__label-readOnly___72-6B\",\"label-opened\":\"inline-select-module__label-opened___2jtf5 rfd-ui-inline-select-label-opened\"};","// lib\nimport React, { useState, useRef, useEffect, useLayoutEffect, useContext } from 'react'\nimport PropTypes from 'prop-types'\nimport { List, Map, Set } from 'immutable'\nimport { stopEvent, DOMchildOf } from '@aytm/lib/common/func'\nimport { verticalScrollIntoContainerView } from '@aytm/lib/common/scroll'\n\n// styles\nimport style from '@aytm/lib/rfd-ui/styles/basic/inline-select.module.scss'\n\nexport default InlineSelect\nexport { InlineSelectLabel }\n\nconst InlineSelectLabelSetOpenedContext = React.createContext(false)\n\n// <InlineSelectOption />\nInlineSelectOption.propTypes = {\n  option: PropTypes.instanceOf(Map).isRequired,\n  selectOptionRef: PropTypes.shape({ current: PropTypes.func.isRequired }).isRequired,\n  index: PropTypes.number,\n  multiple: PropTypes.bool,\n  multipleIconUnchecked: PropTypes.string,\n  multipleIconChecked: PropTypes.string,\n  disabled: PropTypes.bool,\n  optionSelected: PropTypes.bool,\n  optionKeyboardSelected: PropTypes.bool\n}\nfunction InlineSelectOption({\n  option,\n  selectOptionRef,\n  index,\n  multiple = false,\n  multipleIconUnchecked = 'icon-aytmfd-afdcheckbox',\n  multipleIconChecked = 'icon-aytmfd-afdcheckbox-full',\n  disabled = false,\n  optionSelected = false,\n  optionKeyboardSelected = false\n} = {}) {\n  const optionDisabled = option.has('disabled') && option.get('disabled')()\n  const renderOption = option.get('render')\n  return (\n    <div\n      className={`${style.option}${optionDisabled ? ' ' + style['option-disabled'] : ''}${\n        optionSelected ? ' ' + style['option-selected'] : ''\n      }${optionKeyboardSelected ? ' ' + style['option-keyboard-selected'] : ''}`}\n      onMouseDown={\n        disabled || optionDisabled\n          ? null\n          : event => {\n              if (1 == event.buttons && !(event.target instanceof HTMLInputElement)) {\n                stopEvent(event)\n                selectOptionRef.current(option)\n              }\n            }\n      }\n      role=\"menuitem\"\n      aria-checked={optionSelected}\n    >\n      {multiple && (\n        <i\n          className={`${style['option-multiple-icon']} ${\n            optionSelected ? `${multipleIconChecked} ${style['option-multiple-icon-selected']}` : multipleIconUnchecked\n          }`}\n          role=\"presentation\"\n        />\n      )}\n      {'function' === typeof renderOption ? renderOption(index, optionSelected) : renderOption}\n    </div>\n  )\n}\nconst InlineSelectOptionMemo = React.memo(\n  InlineSelectOption,\n  (prevProps, nextProps) =>\n    prevProps.option === nextProps.option &&\n    prevProps.optionSelected === nextProps.optionSelected &&\n    prevProps.optionKeyboardSelected === nextProps.optionKeyboardSelected &&\n    prevProps.disabled === nextProps.disabled\n)\n\n// <InlineSelect />\nInlineSelect.propTypes = {\n  fetchOptions: PropTypes.func.isRequired,\n  onSelect: PropTypes.func,\n  onShow: PropTypes.func,\n  onHide: PropTypes.func,\n  value: PropTypes.any,\n  disabled: PropTypes.bool,\n  maxHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  className: PropTypes.string,\n  tabIndex: PropTypes.any,\n  multiple: PropTypes.bool,\n  multipleIconUnchecked: PropTypes.string,\n  multipleIconChecked: PropTypes.string,\n  scrollToSelectedOnOpen: PropTypes.bool,\n  complex: PropTypes.bool,\n  children: PropTypes.any,\n  innerRef: PropTypes.any\n}\nfunction InlineSelect({\n  fetchOptions,\n  onSelect,\n  onShow,\n  onHide,\n  value,\n  disabled,\n  maxHeight,\n  width,\n  className,\n  tabIndex = 0,\n  multiple = false,\n  multipleIconUnchecked = 'icon-aytmfd-afdcheckbox',\n  multipleIconChecked = 'icon-aytmfd-afdcheckbox-full',\n  scrollToSelectedOnOpen = false,\n  children,\n  complex,\n  innerRef = null\n} = {}) {\n  const [options, setOptions] = useState(null)\n  const [keyboardIndex, setKeyboardIndex] = useState(-1)\n  const [selectedOptions, setSelectedOptions] = useState(Set())\n  const inlineSelectLabelSetOpened = useContext(InlineSelectLabelSetOpenedContext)\n\n  const refFocusHolder = useRef()\n  const refOptions = useRef()\n  const hideEvent = useRef()\n\n  const hideOptions = event => {\n    if (event && event.relatedTarget instanceof HTMLInputElement && 'innerInput' == event.relatedTarget.dataset?.role)\n      return\n    if (null != options) {\n      setOptions(null)\n      if (0 <= keyboardIndex) {\n        setKeyboardIndex(-1)\n      }\n      if (inlineSelectLabelSetOpened) {\n        inlineSelectLabelSetOpened(false)\n      }\n      if (onHide) {\n        onHide()\n      }\n      if (hideEvent.current) {\n        document.removeEventListener('click', hideEvent.current, true)\n        hideEvent.current = null\n      }\n    }\n  }\n\n  const showOptions = () => {\n    if (null == options) {\n      setOptions(List(fetchOptions()))\n      if (0 <= keyboardIndex) {\n        setKeyboardIndex(-1)\n      }\n      setSelectedOptions(setFromValue(value))\n      if (inlineSelectLabelSetOpened) {\n        inlineSelectLabelSetOpened(true)\n      }\n      if (refFocusHolder.current) {\n        refFocusHolder.current.focus()\n      }\n      if (onShow) {\n        onShow()\n      }\n    }\n    if (complex)\n      document.addEventListener(\n        'click',\n        (hideEvent.current = event => {\n          if (event.target && !DOMchildOf(event.target, refOptions.current)) {\n            hideOptions()\n          }\n        }),\n        true\n      )\n  }\n\n  useEffect(() => {\n    setSelectedOptions(setFromValue(value))\n  }, [value])\n\n  useLayoutEffect(() => {\n    if (\n      scrollToSelectedOnOpen &&\n      List.isList(options) &&\n      refOptions.current &&\n      refOptions.current.scrollHeight > refOptions.current.clientHeight\n    ) {\n      const firstSelectedOption = refOptions.current.querySelector('.rfd-ui-inline-select-option-selected')\n      if (firstSelectedOption) {\n        // firstSelectedOption.scrollIntoView(false)\n        verticalScrollIntoContainerView(firstSelectedOption, refOptions.current)\n      }\n    }\n  }, [options, scrollToSelectedOnOpen])\n\n  const onClickSelectButton = event => {\n    stopEvent(event)\n    if (1 == event.buttons && refFocusHolder.current) {\n      if (null == options) {\n        refFocusHolder.current.focus()\n      } else {\n        refFocusHolder.current.blur()\n      }\n    }\n  }\n\n  const selectOptionRef = useRef()\n  selectOptionRef.current = multiple\n    ? option => {\n        const value = option.get('value')\n        const updatedSelectedOptions = selectedOptions.has(value)\n          ? selectedOptions.delete(value)\n          : selectedOptions.add(value)\n        setSelectedOptions(updatedSelectedOptions)\n        if ('function' == typeof onSelect) {\n          onSelect(options.filter(option => updatedSelectedOptions.has(option.get('value'))).toArray())\n        }\n      }\n    : option => {\n        if ('function' == typeof onSelect) {\n          onSelect(option)\n        }\n        hideOptions()\n      }\n\n  const onKeyDown = event => {\n    switch (event.key) {\n      case 'ArrowUp': {\n        stopEvent(event)\n        if (0 <= keyboardIndex) {\n          setKeyboardIndex(Math.max(keyboardIndex - 1, -1))\n        }\n        break\n      }\n      case 'ArrowDown': {\n        stopEvent(event)\n        if (List.isList(options)) {\n          setKeyboardIndex(Math.min(keyboardIndex + 1, options.size))\n        }\n        break\n      }\n      case 'Escape': {\n        stopEvent(event)\n        if (refFocusHolder.current) {\n          hideOptions()\n        }\n        break\n      }\n      case 'Enter':\n      case ' ': {\n        stopEvent(event)\n        if (List.isList(options) && 0 <= keyboardIndex && options.has(keyboardIndex)) {\n          selectOptionRef.current(options.get(keyboardIndex))\n        } else {\n          showOptions()\n        }\n        break\n      }\n      case 'Home': {\n        stopEvent(event)\n        if (0 !== keyboardIndex) {\n          setKeyboardIndex(0)\n        }\n        break\n      }\n      case 'End': {\n        stopEvent(event)\n        if (List.isList(options)) {\n          setKeyboardIndex(options.size - 1)\n        }\n        break\n      }\n      default: {\n        break\n      }\n    }\n  }\n  useLayoutEffect(() => {\n    if (0 <= keyboardIndex && refOptions.current && refOptions.current.scrollHeight > refOptions.current.clientHeight) {\n      const keyboardSelectedOptions = refOptions.current.querySelector(`.${style['option-keyboard-selected']}`)\n      if (keyboardSelectedOptions) {\n        // keyboardSelectedOptions.scrollIntoView(false)\n        verticalScrollIntoContainerView(keyboardSelectedOptions, refOptions.current)\n      }\n    }\n  }, [keyboardIndex])\n\n  return (\n    <div\n      ref={innerRef ? innerRef : undefined}\n      className={`${style.component}${disabled ? ' ' + style.disabled : ''}${\n        null != options ? ' ' + style['component-opened'] : ''\n      }${multiple ? ' ' + style['component-multiple'] : ''}${\n        0 < selectedOptions.size ? ' ' + style['component-selected'] : ''\n      }${null != className ? ' ' + className : ''}`}\n      style={{ width }}\n      onClick={showOptions}\n      role=\"menu\"\n      aria-haspopup=\"true\"\n      aria-expanded={null != options}\n    >\n      <div className={style.focusHolder}>\n        <input\n          type=\"text\"\n          onFocus={showOptions}\n          onBlur={hideOptions}\n          onKeyDown={onKeyDown}\n          ref={refFocusHolder}\n          tabIndex={tabIndex}\n        />\n      </div>\n      <div className={style.select} onMouseDown={onClickSelectButton} style={{ width }}>\n        {children}\n        <i className={style.arrowDown} style={{ float: null == width ? null : 'right' }} />\n      </div>\n      {List.isList(options) && (\n        <div\n          className={`${style.options}${\n            0 <= keyboardIndex && keyboardIndex < options.size ? ' ' + style['options-keyboard-selected'] : ''\n          }`}\n          style={{ maxHeight, width, left: null == width ? null : 0 }}\n          ref={refOptions}\n        >\n          {options\n            .map((option, index) => (\n              <InlineSelectOptionMemo\n                option={option}\n                selectOptionRef={selectOptionRef}\n                index={index}\n                disabled={disabled}\n                multiple={multiple}\n                multipleIconUnchecked={multipleIconUnchecked}\n                multipleIconChecked={multipleIconChecked}\n                optionSelected={selectedOptions.has(option.get('value'))}\n                optionKeyboardSelected={index === keyboardIndex}\n                key={index}\n              />\n            ))\n            .toArray()}\n        </div>\n      )}\n    </div>\n  )\n}\n\n// <InlineSelectLabel />\nInlineSelectLabel.propTypes = {\n  readOnly: PropTypes.bool,\n  className: PropTypes.string,\n  children: PropTypes.any\n}\nfunction InlineSelectLabel({ readOnly, className, children } = {}) {\n  const [inlineSelectOpened, setInlineSelectOpened] = useState(false)\n  return (\n    <label\n      className={`${style.label}${readOnly ? ' ' + style['label-readOnly'] : ''}${\n        inlineSelectOpened ? ' ' + style['label-opened'] : ''\n      }${null == className ? '' : ' ' + className}`}\n    >\n      <InlineSelectLabelSetOpenedContext.Provider value={setInlineSelectOpened}>\n        {'function' === typeof children ? children(inlineSelectOpened) : children}\n      </InlineSelectLabelSetOpenedContext.Provider>\n    </label>\n  )\n}\n\nfunction setFromValue(value) {\n  return void 0 === value\n    ? Set()\n    : Set().withMutations(set => {\n        if (Array.isArray(value)) {\n          for (const v of value) {\n            set.add(v)\n          }\n        } else {\n          set.add(value)\n        }\n      })\n}\n","import React, { useMemo, useCallback } from 'react'\nimport PropTypes from 'prop-types'\nimport { stopEvent } from '@aytm/lib/common/func'\n\nimport '@aytm/lib/rfd-ui/styles/basic/radio-button.scss'\n\nRadioButton.propTypes = {\n  /**\n   * is checked\n   */\n  checked: PropTypes.bool,\n  /**\n   * is disabled\n   */\n  disabled: PropTypes.bool,\n  /**\n   * error state\n   */\n  error: PropTypes.bool,\n  /**\n   * Option label\n   */\n  label: PropTypes.string,\n  /**\n   * radio button size in pixels\n   */\n  checkSize: PropTypes.number,\n  /**\n   * label size in pixels\n   */\n  labelSize: PropTypes.number,\n  /**\n   * lineHeight for check and label\n   */\n  lineHeight: PropTypes.number,\n  /**\n   * custom style\n   */\n  style: PropTypes.object,\n  /**\n   * custom className\n   */\n  className: PropTypes.string,\n  /**\n   * \"checked\" icon className\n   */\n  checkedIcon: PropTypes.string,\n  /**\n   * \"unchecked\" icon className\n   */\n  uncheckedIcon: PropTypes.string,\n  /**\n   * fires when RadioButton is `clicked` and `not disabled`: `onAction(event)`\n   */\n  onAction: PropTypes.func,\n  /**\n   * fires when RadioButton is `clicked` (disabled or not): `onClick(event)`\n   */\n  onClick: PropTypes.func,\n  /**\n   * onKeyDown callback\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * `SPACE` and `ENTER` keys presses works as clicks\n   */\n  spaceEnterAsClick: PropTypes.bool,\n  /**\n   * `UP` and `DOWN` key presses will move focus between RadioButtons\n   */\n  upDownAsMoveFocus: PropTypes.bool,\n  /**\n   * RadioButton group name for `UP` and `DOWN` keys presses navigation\n   */\n  groupName: PropTypes.string\n}\nRadioButton.defaultProps = {\n  checkedIcon: 'icon-aytmfd-afdradio-full',\n  uncheckedIcon: 'icon-aytmfd-afdradio',\n  spaceEnterAsClick: true,\n  upDownAsMoveFocus: false,\n  groupName: 'default'\n}\nexport default function RadioButton({\n  checked,\n  disabled,\n  error,\n  label,\n  checkSize,\n  labelSize,\n  lineHeight,\n  style,\n  className,\n  checkedIcon = 'icon-aytmfd-afdradio-full',\n  uncheckedIcon = 'icon-aytmfd-afdradio',\n  onAction,\n  onClick: onCustomClick,\n  onKeyDown: onCustomKeyDown,\n  spaceEnterAsClick = true,\n  upDownAsMoveFocus = false,\n  groupName = 'default',\n  ...otherProps\n} = {}) {\n  const commonLineHeight = useMemo(\n    () =>\n      lineHeight\n        ? `${lineHeight}px`\n        : (() => {\n            const maxSize = Math.max(checkSize, labelSize)\n            return maxSize ? `${maxSize * 1.2}px` : null\n          })(),\n    [lineHeight, checkSize, labelSize]\n  )\n  const applyStyle = useMemo(() => (commonLineHeight ? { lineHeight: commonLineHeight } : {}), [commonLineHeight])\n  const mergedStyle = useMemo(\n    () => (null != style ? Object.assign(applyStyle, style) : applyStyle),\n    [style, applyStyle]\n  )\n\n  const onClick = useCallback(\n    event => {\n      if (onCustomClick) {\n        onCustomClick(event)\n      }\n      if (!disabled && (void 0 === event.button || 0 === event.button) && onAction) {\n        onAction(event)\n      }\n    },\n    [onCustomClick, onAction, disabled]\n  )\n\n  const onKeyDown = useCallback(\n    event => {\n      if (onCustomKeyDown) {\n        onCustomKeyDown(event)\n      }\n      if (!disabled) {\n        if (spaceEnterAsClick && onClick && (' ' === event.key || 'Enter' === event.key)) {\n          onClick(event)\n          stopEvent(event)\n        } else if (upDownAsMoveFocus) {\n          if ('ArrowUp' === event.key) {\n            const activeRadioButtons = document.querySelectorAll(\n              `${groupName ? `.rfd-ui-radiobutton-group-${groupName}` : ''}.rfd-ui-radiobutton[tabindex=\"0\"]`\n            )\n            for (let i = 0; i < activeRadioButtons.length; i++) {\n              if (document.activeElement === activeRadioButtons[i]) {\n                if (i > 0) {\n                  const prevRadioButtons = activeRadioButtons[i - 1]\n                  if (prevRadioButtons) {\n                    prevRadioButtons.focus()\n                    prevRadioButtons.click()\n                  }\n                }\n                break\n              }\n            }\n            stopEvent(event)\n          } else if ('ArrowDown' === event.key) {\n            const activeRadioButtons = document.querySelectorAll(\n              `${groupName ? `.rfd-ui-radiobutton-group-${groupName}` : ''}.rfd-ui-radiobutton[tabindex=\"0\"]`\n            )\n            for (let i = 0; i < activeRadioButtons.length; i++) {\n              if (document.activeElement === activeRadioButtons[i]) {\n                if (i < activeRadioButtons.length - 1) {\n                  const nextRadioButtons = activeRadioButtons[i + 1]\n                  if (nextRadioButtons) {\n                    nextRadioButtons.focus()\n                    nextRadioButtons.click()\n                  }\n                }\n                break\n              }\n            }\n            stopEvent(event)\n          }\n        }\n      }\n    },\n    [onCustomKeyDown, onClick, disabled, spaceEnterAsClick, upDownAsMoveFocus, groupName]\n  )\n\n  return (\n    <span\n      className={`rfd-ui-radiobutton${className ? ' ' + className : ''}${checked ? ' rfd-ui-radiobutton-checked' : ''}${\n        disabled ? ' rfd-ui-radiobutton-disabled' : ''\n      }${error ? ' rfd-ui-radiobutton-error' : ''}${groupName ? ` rfd-ui-radiobutton-group-${groupName}` : ''}`}\n      tabIndex={disabled ? -1 : 0}\n      style={mergedStyle}\n      onClick={onClick}\n      onKeyDown={onKeyDown}\n      role=\"radio\"\n      aria-checked={checked}\n      aria-disabled={disabled ? true : null}\n      {...otherProps}\n    >\n      <i\n        className={`rfd-ui-radiobutton-icon ${checked ? checkedIcon : uncheckedIcon}`}\n        style={{ fontSize: checkSize, lineHeight: commonLineHeight }}\n        role=\"presentation\"\n      />\n      {label && (\n        <span\n          className=\"rfd-ui-radiobutton-label\"\n          dangerouslySetInnerHTML={{ __html: label }}\n          style={{ fontSize: labelSize, lineHeight: commonLineHeight }}\n        />\n      )}\n    </span>\n  )\n}\n"],"names":["AssetUploader","_AssetUploader","_ManagedRenderCompone","_classCallCheck","_callSuper","arguments","_inherits","key","value","this","refUploadInput","files","length","uploadFile","file","onUploadFile","props","_this$props","accept","readOnly","children","React","className","style","type","name","onChange","fileSelected","tabIndex","ref","saveRef","ManagedRenderComponent","propTypes","PropTypes","_applyDecoratedDescriptor","_class","prototype","autobind","Object","getOwnPropertyDescriptor","ImagePreview","_ImagePreview","context","_this","state","loading","loaded","previewUrl","previewState","showImage","previewImage","setPreviewImage","nextProps","url","_this2","doubleBuffering","setState","reposition","document","createElement","addEventListener","onPreviewLoaded","setTimeout","mounted","src","popupContent","_this3","onImageLoaded","popup","onImageOpen","freeze","onImageHide","unfreeze","hide","label","imageUrl","maxHeight","maxWidth","minHeight","minWidth","allowScrolling","openImageOnZoomButtonOnly","onUploadImage","uploadImageLabel","onDeleteImage","deleteImageLabel","_this$state","onClick","role","alt","onLoad","onLoaded","ImagePopup","show","scrolling","onClose","hideImage","closeOnClick","prevProps","contextTypes","Popup","PopupContent","smoothStep","start","end","point","x","scrollTo","element","params","duration","Promise","reject","top","scrollTop","left","scrollLeft","resolve","startTime","Date","now","endTime","distance","prev","y","scrollFrame","frame","Math","round","verticalScrollIntoContainerView","container","undefined","parentElement","_ref$margin","margin","getBoundingClientRect","containerRect","elementRect","bottom","useMountedRef","useRef","useEffect","current","CheckBox","_ref","checked","disabled","error","checkSize","labelSize","lineHeight","_ref$checkedIcon","checkedIcon","_ref$uncheckedIcon","uncheckedIcon","onAction","onCustomClick","onCustomKeyDown","onKeyDown","_ref$spaceEnterAsClic","spaceEnterAsClick","_ref$upDownAsMoveFocu","upDownAsMoveFocus","_ref$groupName","groupName","otherProps","_objectWithoutProperties","_excluded","commonLineHeight","useMemo","maxSize","max","applyStyle","mergedStyle","assign","useCallback","event","button","stopEvent","activeCheckboxes","querySelectorAll","i","activeElement","focus","_extends","fontSize","dangerouslySetInnerHTML","__html","defaultProps","ClickOutside","_Component","captured","isTouch","refContainer","onClickOutside","contains","target","handle","removeEventListener","saveRefContainer","Component","_ImagePopup","_PureDataComponent","animate","bodyElm","querySelector","bodyElmOverflowBackup","overflow","imageWidth","styles","imageHeight","intrinsicWidth","intrinsicHeight","naturalWidth","naturalHeight","resize","onError","refImageFrame","fWidth","offsetWidth","fHeight","offsetHeight","v","viewport","maxIWidth","w","maxIHeight","h","iWidth","iHeight","ratio","classList","add","remove","resizePreload","_get","_getPrototypeOf","call","setProperty","window","handleWindowResize","_this$props2","imageProps","_this$props2$loadingI","loadingIcon","_this$props2$failedIc","failedIcon","_this$props2$closeIco","closeIcon","_this$props2$closeOnC","_this$state2","LightBox","handleClose","fullSize","classNames","width","height","padding","cursor","preprocessText","escapeText","PureDataComponent","_ref2","fetchOptions","onSelect","onShow","onHide","_ref2$tabIndex","_ref2$multiple","multiple","_ref2$multipleIconUnc","multipleIconUnchecked","_ref2$multipleIconChe","multipleIconChecked","_ref2$scrollToSelecte","scrollToSelectedOnOpen","complex","_ref2$innerRef","innerRef","_useState2","_slicedToArray","useState","options","setOptions","_useState4","keyboardIndex","setKeyboardIndex","_useState6","Set","selectedOptions","setSelectedOptions","inlineSelectLabelSetOpened","useContext","InlineSelectLabelSetOpenedContext","refFocusHolder","refOptions","hideEvent","hideOptions","_event$relatedTarget$","relatedTarget","HTMLInputElement","dataset","showOptions","List","setFromValue","DOMchildOf","useLayoutEffect","scrollHeight","clientHeight","firstSelectedOption","selectOptionRef","option","get","updatedSelectedOptions","has","delete","filter","toArray","keyboardSelectedOptions","size","onFocus","onBlur","min","onMouseDown","buttons","blur","float","map","index","InlineSelectOptionMemo","optionSelected","optionKeyboardSelected","InlineSelectOption","_ref$multiple","_ref$multipleIconUnch","_ref$multipleIconChec","_ref$disabled","_ref$optionSelected","_ref$optionKeyboardSe","optionDisabled","renderOption","InlineSelectLabel","_ref3","_useState8","inlineSelectOpened","setInlineSelectOpened","Provider","withMutations","set","Array","isArray","_step","_iterator","_createForOfIteratorHelper","s","n","done","err","e","f","RadioButton","activeRadioButtons","prevRadioButtons","click","nextRadioButtons"],"sourceRoot":""}