{"version":3,"file":"bundle.70102.f730b566b6096b6cdaa4.js","mappings":"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","sources":["webpack://goformz-web-app/./src/components/FormVersionRevertModal/FormVersionRevertModal.scss","webpack://goformz-web-app/./src/forms/components/FormHistoryModal.scss","webpack://goformz-web-app/./src/components/FormVersionRevertModal/FormVersionRevertModal.scss?fecc","webpack://goformz-web-app/./src/forms/components/FormHistoryModal.scss?44ae","webpack://goformz-web-app/./src/components/FormVersionRevertModal/FormVersionRevertModal.tsx","webpack://goformz-web-app/./src/components/PopupDropdown.tsx","webpack://goformz-web-app/./src/components/TransferModal.tsx","webpack://goformz-web-app/./src/formeditor/components/GeneratePdfModal.tsx","webpack://goformz-web-app/./src/components/Map.tsx","webpack://goformz-web-app/./src/forms/components/FormHistoryModal.tsx","webpack://goformz-web-app/./src/tags/components/FormTagItem.tsx","webpack://goformz-web-app/./src/tags/components/FormTags.tsx","webpack://goformz-web-app/./src/tags/components/TagItem.tsx","webpack://goformz-web-app/./src/tags/components/TagList.tsx","webpack://goformz-web-app/./src/tags/components/TagsModal.tsx"],"sourcesContent":["// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".form-version-revert-modal .form-version-revert-modal-description{display:flex;flex-direction:column;row-gap:10px}.form-version-revert-modal .form-version-revert-modal-description .form-name{display:inline;font-weight:bold}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".ui.modal.form-history{min-height:360px}.ui.modal.form-history p{padding:0px 16px}.ui.modal.form-history .content .form-name .name-label{font-weight:bold}.ui.modal.form-history .content .history-items{margin-top:8px}.ui.modal.form-history .content .history-items .history-item-row{padding-left:5px}.light-theme .ui.modal.form-history .content .history-items .history-item-row{border-bottom:1px solid #f3f3f3}.dark-theme .ui.modal.form-history .content .history-items .history-item-row{border-bottom:1px solid #33383a}.ui.modal.form-history .content .history-items .history-item-row .map-wrapper{height:240px;margin-top:8px}.ui.modal.form-history .content .history-items .history-item-row .history-item{display:flex;flex-direction:row;align-items:center;padding:4px 0;height:60px}.ui.modal.form-history .content .history-items .history-item-row .history-item:last-child{border-bottom:rgba(0,0,0,0)}.ui.modal.form-history .content .history-items .history-item-row .history-item.sub-item{padding-left:34px;height:40px}.ui.modal.form-history .content .history-items .history-item-row .history-item.sub-item .item-content .item-header{font-size:13px}.ui.modal.form-history .content .history-items .history-item-row .history-item .icon{width:28px;height:28px;position:relative;display:inline-block;font-size:20px;margin-right:8px;margin-top:4px}.ui.modal.form-history .content .history-items .history-item-row .history-item .map-icon{cursor:pointer;display:flex;justify-content:right}.light-theme .ui.modal.form-history .content .history-items .history-item-row .history-item .map-icon{color:#e8ebec}.dark-theme .ui.modal.form-history .content .history-items .history-item-row .history-item .map-icon{color:#363a3d}.ui.modal.form-history .content .history-items .history-item-row .history-item .form-revert{visibility:hidden;display:inline-block;width:125px;font-size:12px;margin-left:auto;margin-top:auto;cursor:pointer;padding-right:10px}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content{position:relative;width:100%}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-header{font-size:14px}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description{font-size:12px;display:flex;align-items:center;column-gap:5px}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description a{border:none}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description button{font-size:12px}.ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description .circle.icon{font-size:6px;margin-top:0;padding:0;display:inline-block;height:9px}.light-theme .ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description .circle.icon{color:#636363}.dark-theme .ui.modal.form-history .content .history-items .history-item-row .history-item .item-content .item-description .circle.icon{color:#a9a297}.ui.modal.form-history .content .history-items .history-item-row .history-item .history-item-row-right-container{display:flex;flex-direction:column;align-items:flex-end;height:100%}.light-theme .ui.modal.form-history .content .history-items .history-item-row:hover{background-color:#eefafe}.dark-theme .ui.modal.form-history .content .history-items .history-item-row:hover{background-color:#032d3a}.ui.modal.form-history .content .history-items .history-item-row:hover .history-item .form-revert{visibility:visible}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormVersionRevertModal.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormVersionRevertModal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormVersionRevertModal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormHistoryModal.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormHistoryModal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./FormHistoryModal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}","import React, { useState } from 'react';\nimport Loader from '../loader';\nimport GfModal from '../../gfcomponents/GfModal/GfModal';\nimport './FormVersionRevertModal.scss';\nimport { useApim } from '../../hooks/useApi';\nimport { GoFormzServices } from '../../AppSettings';\nimport { Form, FormAndTemplate, FormTag } from '../../types/form-types';\nimport { apimCall } from '../../helpers/api';\nimport { Checkbox } from 'semantic-ui-react';\nimport moment from 'moment';\n\nexport interface FormHistorFormVersionRevertModalProps {\n formId?: string;\n versionId?: string;\n onClose?: VoidFunction;\n}\n\nexport default function FormVersionRevertModal(props: FormHistorFormVersionRevertModalProps) {\n const [saving, setSaving] = useState(false);\n const [formReverted, setFormReverted] = useState(false);\n const [error, setError] = useState(null);\n const [reOpenFormBeforeSaving, setReOpenFormBeforeSaving] = useState(false);\n const [formVersionResult, formVersionResultLoading] = useApim<FormAndTemplate>(\n GoFormzServices.TemplateService,\n `/formAndTemplate/${props.formId}/versions/${props.versionId}`\n );\n\n const [formResult, formResultLoading] = useApim<FormAndTemplate>(GoFormzServices.TemplateService, `/formAndTemplate/${props.formId}`);\n\n const cleanAutoTags = (form: Form) => {\n form?.tags?.forEach((x: FormTag) => {\n if (x.isAutoTag) {\n x.operation = null;\n }\n });\n };\n\n const getFormVersionForRevert = () => {\n if (formVersionResult?.form == null) {\n setError('This form version is unable to be reverted to.');\n }\n const formVersion = JSON.parse(JSON.stringify(formVersionResult.form)) as Form;\n cleanAutoTags(formVersion);\n formVersion.versionId = null;\n formVersion.versionNumber = null;\n formVersion.hasBeenReopened = null;\n //update the completed date to the current date\n if (formVersion.completedDate) {\n formVersion.completedDate = moment.utc().format('YYYY-MM-DDTHH:mm:ss');\n }\n\n formVersion.values = formVersion.values ?? [];\n\n //loop through the latest version values and clear any that are not in the form version we are reverting to\n (formResult.form?.values ?? []).forEach((value) => {\n const matchingValue = formVersion.values.find((x) => x.fieldId === value.fieldId);\n\n // If the value is not in the form version, then we want to add it as a cleared value\n if (!matchingValue) {\n formVersion.values.push({ fieldId: value.fieldId, operation: 2 });\n }\n });\n\n ///set all values to an update operation\n (formVersion.values ?? []).forEach((value) => {\n value.operation = 2;\n });\n\n return formVersion;\n };\n\n const onNavigateToLatest = () => {\n const url = `/forms/${props.formId}`;\n window.open(url);\n props.onClose();\n };\n\n const onConfirmRevert = async () => {\n // Clone the form so it can be manipulated before submitting\n // For autotags, remove the operation - the server will handle applying the autotags\n const currentForm = JSON.parse(JSON.stringify(formResult.form)) as Form;\n cleanAutoTags(currentForm);\n\n const formVersion = getFormVersionForRevert();\n setSaving(true);\n\n try {\n // If the form is completed, reopen it before saving the new version\n if (reOpenFormBeforeSaving) {\n currentForm.completedDate = null;\n await apimCall(GoFormzServices.TemplateService, `/forms/${props.formId}`, 'PUT', currentForm);\n }\n } catch (error) {\n console.error('Error occurred reopening form', error);\n setError('An error occurred while reopening the form before saving the new version');\n setSaving(false);\n return; // Don't continue if there was an error reopening the form\n }\n\n try {\n // Save the new form version as the one we are reverting to\n await apimCall(GoFormzServices.TemplateService, `/forms/${props.formId}`, 'PUT', formVersion);\n setSaving(false);\n setFormReverted(true);\n } catch (error) {\n console.error('Error occurred reverting form version', error);\n setError('AAn error occurred while reverting the Form version');\n setSaving(false);\n }\n };\n\n const loading = formVersionResultLoading || formResultLoading || saving;\n const primaryText = formReverted ? 'View Latest Version' : 'Revert to Version';\n const onPrimaryClick = formReverted ? onNavigateToLatest : onConfirmRevert;\n\n return (\n <GfModal\n className=\"form-version-revert-modal\"\n title={`Revert to Version ${formVersionResult?.form?.versionNumber ?? ''} `}\n onClose={props.onClose}\n onPrimaryClick={onPrimaryClick}\n primaryText={primaryText}\n errorText={error}\n semanticUiModalProps={{ size: 'small' }}\n >\n <Loader isLoading={loading} />\n <div className=\"form-version-revert-modal-description\">\n {formReverted && (\n <>\n <span>\n Version {formVersionResult?.form?.versionNumber} of <span className=\"form-name\">{formVersionResult?.form?.name}</span> is now the latest version.\n </span>\n </>\n )}\n {!formReverted && (\n <>\n <span>\n Version {formVersionResult?.form?.versionNumber} of <span className=\"form-name\">{formVersionResult?.form?.name}</span> will be recreated as the\n lastest version.\n </span>\n {formResult?.form?.completedDate != null && (\n <Checkbox\n label=\"Reopen form before saving version\"\n checked={reOpenFormBeforeSaving}\n onChange={() => setReOpenFormBeforeSaving(!reOpenFormBeforeSaving)}\n />\n )}\n </>\n )}\n </div>\n </GfModal>\n );\n}\n","import React, { useRef, useState } from 'react';\nimport { Menu, Icon, SemanticICONS } from 'semantic-ui-react';\nimport CloseablePopup from './closeable_popup';\n\nexport interface PopupDropdownProps {\n trigger?: TypeMePlease;\n content?: TypeMePlease;\n children?: TypeMePlease | TypeMePlease[];\n basic?: boolean;\n position?: string;\n offset?: string | number[];\n className?: string;\n selection?: boolean;\n search?: boolean;\n value?: string;\n onChange?: AnyFunc;\n placeholder?: string;\n options?: TypeMePlease;\n clearable?: boolean;\n loading?: boolean;\n}\n\nexport interface PopupDropdownMenuProps {\n children?: TypeMePlease | TypeMePlease[];\n className?: string;\n vertical?: boolean;\n}\n\nexport interface PopupDropdownItemProps {\n icon?: string;\n children?: any;\n text?: string;\n onClick?: AnyFunc;\n active?: boolean;\n selected?: boolean;\n}\n\nconst { Provider, Consumer } = React.createContext<TypeMePlease>(undefined);\n\nconst PopupDropdown = (props: PopupDropdownProps) => {\n const [popupOpened, setPopupOpened] = useState(false);\n const popup = useRef<TypeMePlease>();\n const searchInput = useRef<TypeMePlease>();\n const [searchTerm, setSearchTerm] = useState<string>();\n const [activeOptionIndex, setActiveOptionIndex] = useState<number>();\n\n const popupOnOpen = () => {\n setPopupOpened(true);\n };\n const popupOnClose = () => {\n if (searchInput.current) {\n searchInput.current.blur();\n }\n setSearchTerm(null);\n setPopupOpened(false);\n };\n const closePopup = () => {\n popup.current.close();\n popupOnClose();\n };\n\n const selectValue = (option) => {\n setSearchTerm(null);\n props.onChange(option);\n closePopup();\n };\n\n const filteredOptions =\n props.options && searchTerm ? props.options.filter((x) => x.text.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1) : props.options;\n\n const searchOnChange = (e) => {\n const value = e.target.value;\n setSearchTerm(value);\n setActiveOptionIndex(0);\n };\n const searchOnKeyDown = (e) => {\n if (filteredOptions && filteredOptions.length > 0) {\n if (e.keyCode === 13) {\n selectValue(filteredOptions[activeOptionIndex]);\n e.preventDefault();\n } else if (e.keyCode === 38) {\n setActiveOptionIndex((i) => Math.max(i - 1, 0));\n e.preventDefault();\n } else if (e.keyCode === 40) {\n setActiveOptionIndex((i) => Math.min(i + 1, filteredOptions.length - 1));\n e.preventDefault();\n }\n }\n };\n\n const clearSelection = (e) => {\n props.onChange('');\n e.stopPropagation();\n };\n\n let trigger = props.trigger;\n if (props.selection) {\n let text = props.value;\n if (props.options) {\n const matchingOption = props.options.find((x) => x.value === props.value);\n if (matchingOption) {\n text = matchingOption.text;\n }\n }\n\n trigger = (\n <div className={`popup-dropdown-trigger selection ${props.clearable ? `clearable` : null}`}>\n {!searchTerm && !popupOpened ? <span className=\"text\">{text}</span> : null}\n {props.placeholder && !searchTerm && !props.value ? <span className=\"placeholder\">{props.placeholder}</span> : null}\n {props.search ? (\n <input\n className={`search ${props.clearable ? `clearable` : null}`}\n value={searchTerm || ''}\n onKeyDown={searchOnKeyDown}\n onChange={searchOnChange}\n autoComplete=\"stop-autocomplete\"\n ref={searchInput}\n />\n ) : null}\n {props.value && props.clearable ? <Icon name=\"close\" className=\"clearable-icon\" onClick={clearSelection} /> : null}\n <i className=\"ui icon angle down\" />\n </div>\n );\n }\n\n let content = props.content || props.children;\n if (filteredOptions) {\n content = (\n <PopupDropdown.Menu className=\"options\">\n {filteredOptions.map((option, i) => (\n <PopupDropdown.Item key={option.value} onClick={() => selectValue(option)} active={i === activeOptionIndex} selected={option.value === props.value}>\n {option.text}\n </PopupDropdown.Item>\n ))}\n {filteredOptions.length === 0 ? <div className=\"no-results\">No results found.</div> : null}\n </PopupDropdown.Menu>\n );\n }\n\n const contentWrapper = <Provider value={{ closePopup }}>{content}</Provider>;\n return (\n <CloseablePopup\n trigger={trigger}\n content={contentWrapper}\n on=\"click\"\n basic={props.basic ? props.basic : false}\n position={(props.position as any) ?? 'bottom right'}\n // per: https://popper.js.org/docs/v2/modifiers/prevent-overflow/\n popperModifiers={[{ name: 'preventOverflow', options: { escapeWithReference: true } }]}\n offset={props.offset as any}\n className={`popup-dropdown${props.className ? ` ${props.className}` : ''}`}\n ref={popup}\n onClose={popupOnClose}\n onOpen={popupOnOpen}\n />\n );\n};\n\nPopupDropdown.Menu = (props: PopupDropdownMenuProps) => {\n return (\n <Menu vertical fluid className={props.className}>\n {props.children}\n </Menu>\n );\n};\n\nPopupDropdown.Header = ({ children }) => {\n return <div className=\"header\">{children}</div>;\n};\n\nPopupDropdown.Item = (props: PopupDropdownItemProps) => {\n return (\n <Consumer>\n {(context) => (\n <Menu.Item\n onClick={() => {\n context.closePopup();\n if (props.onClick) {\n props.onClick();\n }\n }}\n active={props.active}\n className={props.selected ? 'selected' : ''}\n >\n {props.icon && <Icon name={props.icon as SemanticICONS} />}\n {props.text}\n {props.children}\n </Menu.Item>\n )}\n </Consumer>\n );\n};\n\nexport default PopupDropdown;\n","import React, { useCallback, useState } from 'react';\nimport { Provider, ReactReduxContext } from 'react-redux';\nimport GfModal from '../gfcomponents/GfModal/GfModal';\nimport UserGroupDropdown from './UserGroupDropdown';\n\nexport interface TransferModalProps {\n currentOwnerId?: string;\n isTransferring?: boolean;\n bulkTransfer?: boolean;\n transferForms?: (item: string, transerType: number) => Promise<void>;\n toggleTransferModal?: VoidFunction;\n}\n\nexport type TransferModalState = {\n userPage: number;\n searchInput: string;\n typingTimeout: number;\n showSearchResults: boolean;\n selectedItem?: string;\n transferType?: number;\n selectedId?: string;\n selectedName?: string;\n};\n\nexport default function TransferModal(props: TransferModalProps) {\n const { bulkTransfer, isTransferring, toggleTransferModal, transferForms } = props;\n const [modalState, setModalState] = useState<TransferModalState>({\n userPage: 1,\n searchInput: '',\n typingTimeout: 0,\n showSearchResults: false\n });\n\n const handleClose = useCallback(() => {\n if (modalState.typingTimeout) {\n clearTimeout(modalState.typingTimeout);\n }\n\n toggleTransferModal();\n }, [modalState.typingTimeout]);\n\n const handleTransferClick = useCallback(async () => {\n if (modalState.selectedItem) {\n await transferForms(modalState.selectedItem, modalState.transferType);\n }\n\n handleClose();\n }, [modalState.selectedItem, modalState.transferType]);\n\n const onChange = useCallback(\n (id: string, name: string, type: 'user' | 'group') => {\n let transferType = -1;\n if (type === 'user') {\n transferType = 0;\n } else if (type === 'group') {\n transferType = 1;\n }\n\n setModalState({ ...modalState, selectedItem: id, selectedId: id, selectedName: name, transferType });\n },\n [modalState]\n );\n\n return (\n <ReactReduxContext.Consumer>\n {(ctx) => (\n <Provider store={ctx.store}>\n <GfModal\n className=\"transfer-form-modal\"\n title={bulkTransfer ? 'Transfer Forms' : 'Transfer Form'}\n primaryText=\"Transfer\"\n tertiaryText=\"Cancel\"\n onClose={handleClose}\n onPrimaryClick={handleTransferClick}\n onTertiaryClick={handleClose}\n loading={isTransferring}\n actionButtonProps={{ primary: { disabled: !modalState.selectedItem } }}\n >\n <UserGroupDropdown\n onChange={onChange}\n selectedId={modalState.selectedId}\n selectedName={modalState.selectedName}\n hideAdministrator={true}\n hideDeactivatedUsers={true}\n hideCurrentUser={true}\n hidePendingUsers={true}\n groupSelected={modalState.transferType === 1}\n />\n </GfModal>\n </Provider>\n )}\n </ReactReduxContext.Consumer>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Dropdown, Input } from 'semantic-ui-react';\nimport { showMessage } from '../../helpers/MessageUtility';\nimport { useApim } from '../../hooks/useApi';\nimport CalculationRunner from '../../calculation/CalculationRunner';\nimport { checkIfCalculationValueIsTrue, parsePageRange } from '../helpers';\nimport { GoFormzServices } from '../../AppSettings';\nimport GfModal from '../../gfcomponents/GfModal/GfModal';\n\nexport interface GeneratePdfModalProps {\n formId?: string;\n templateId?: string;\n printConfigs?: unknown[];\n onClose?: VoidFunction;\n versionId?: string;\n saveFirst?: boolean;\n saveForm?: VoidFunction;\n template?: unknown;\n form?: unknown;\n}\n\nexport default function GeneratePdfModal(props: GeneratePdfModalProps) {\n const [pageRange, setPageRange] = useState('');\n const [pageOutOfRange, setPageOutOfRange] = useState(false);\n const [validPages, setValidPages] = useState(true);\n const [pageVisibility, setPageVisibility] = useState<boolean>();\n const [selectionType, setSelectionType] = useState('All');\n const [exportingHiddenPages, setExportingHiddenPages] = useState(false);\n const [selectedPages, setSelectedPages] = useState('');\n\n const [formAndTemplateResult, loading, loaded] = useApim<{ template: unknown; form: unknown }>(\n GoFormzServices.TemplateService,\n props.versionId ? `/formAndTemplate/${props.formId}/versions/${props.versionId}` : `/formAndTemplate/${props.formId}`,\n !!(props.form && props.template)\n );\n\n let template;\n let form;\n if (props.form && props.template) {\n template = props.template;\n form = props.form;\n } else if (loaded) {\n template = formAndTemplateResult.template;\n form = formAndTemplateResult.form;\n }\n\n useEffect(() => {\n if (template) {\n getPageVisibility(template, form).then((pv: TypeMePlease) => {\n setPageVisibility(pv);\n });\n }\n }, [form, template]);\n\n useEffect(() => {\n if (pageVisibility) {\n let pages;\n\n if (selectionType === 'All') {\n pages = template.pages.map((x) => x.number).sort((a, b) => a - b);\n setSelectedPages('');\n setValidPages(true);\n setExportingHiddenPages(!template.pdfExportUseVisible && includesHiddenPage(pages, pageVisibility));\n } else if (selectionType === 'Custom') {\n pages = parsePageRange(\n pageRange,\n template.pages.map((x) => x.number).reduce((a, b) => Math.max(a, b))\n );\n const transformedPages = transformPages(pages, pageVisibility);\n setSelectedPages(transformedPages.join(','));\n setPageOutOfRange(!!(pageRange && transformedPages.length === 0));\n setValidPages(transformedPages.length > 0);\n } else {\n // preset\n const preset = template.printConfigs.find((x) => x.name === selectionType);\n pages = parsePageRange(\n preset.pages,\n template.pages.map((x) => x.number).reduce((a, b) => Math.max(a, b))\n );\n setSelectedPages(preset.pages);\n setValidPages(true);\n setExportingHiddenPages(!template.pdfExportUseVisible && includesHiddenPage(pages, pageVisibility));\n }\n }\n }, [selectionType, pageRange, pageVisibility]);\n\n const handleSelectButtonClicked = async (download: boolean) => {\n // TODO enable this once we want to do async pdf downloads\n const async = false;\n const exportSubmission = {\n type: 'pdf',\n pages: selectedPages,\n forceDownload: download\n };\n\n if (props.saveFirst && props.saveForm) {\n await props.saveForm();\n }\n\n let pdfWindow = null;\n if (!download && !async) {\n pdfWindow = window.open('/loading', '_blank');\n }\n try {\n const { downloadPdf } = await import('../../helpers/PdfUtility');\n const resultJson = await downloadPdf(props.formId, props.versionId, exportSubmission, async);\n\n if (!async) {\n if (!download) {\n pdfWindow.location.href = resultJson.data.downloadUrl;\n } else {\n window.location.href = resultJson.data.downloadUrl;\n }\n }\n } catch (err) {\n if (pdfWindow != null) {\n pdfWindow.close();\n }\n showMessage('Error', 'There was an error generating the pdf');\n }\n\n props.onClose();\n };\n\n const handlePageRangeChanged = (e) => {\n setPageRange(e.target.value);\n };\n\n const selectPageRange = [\n {\n text: 'All pages',\n value: 'All'\n }\n ];\n\n if (pageVisibility && template && template.pages && template.pages.length > 0) {\n selectPageRange.push({\n text: 'Custom',\n value: 'Custom'\n });\n }\n\n if (template && template.printConfigs && template.pages && template.pages.length > 0) {\n for (const printConfig of template.printConfigs) {\n selectPageRange.push({\n text: printConfig.name,\n value: printConfig.name\n });\n }\n }\n\n return (\n <GfModal\n className=\"pdf-modal\"\n title=\"Select Pages\"\n primaryText=\"Download\"\n secondaryText=\"Open\"\n onPrimaryClick={() => handleSelectButtonClicked(true)}\n onSecondaryClick={() => handleSelectButtonClicked(false)}\n onClose={props.onClose}\n actionButtonProps={{ primary: { disabled: !validPages }, secondary: { disabled: !validPages } }}\n >\n <Dropdown\n placeholder=\"Select Pages\"\n fluid\n selection\n options={selectPageRange}\n value={selectionType}\n onChange={(e, data) => setSelectionType(data.value as string)}\n loading={loading || !pageVisibility}\n />\n {selectionType === 'Custom' ? (\n <>\n <div style={{ marginTop: '8px' }}>Pages</div>\n <div style={{ marginTop: '8px' }}>\n <Input placeholder=\"e.g. 1-3, 4-7\" value={pageRange} onChange={handlePageRangeChanged} error={pageOutOfRange} />\n </div>\n </>\n ) : null}\n {selectionType !== 'Custom' && exportingHiddenPages ? (\n <>\n <div style={{ marginTop: '16px', color: '#9b870c' }}>\n <i className=\"ui icon warning sign\" />\n Some pages that are hidden will be included in the PDF.\n </div>\n </>\n ) : null}\n </GfModal>\n );\n}\n\n// TODO - GD-20719 web app perf cleanup\n\nasync function getPageVisibility(template, form) {\n const pageVisibility = [];\n for (const page of [...template.pages].sort((a, b) => a.number - b.number)) {\n pageVisibility.push({ pageNumber: page.number, visible: page.visible !== false });\n }\n\n const pageVisibleFormulas = getPageVisibleFormulas(template);\n\n if (pageVisibleFormulas.length > 0) {\n const calculationRunner = new CalculationRunner(form.id, template);\n await calculationRunner.init();\n\n for (const pageVisibleFormula of pageVisibleFormulas) {\n const result = await calculationRunner.executeFormula(pageVisibleFormula.formula, form.values);\n pageVisibility.find((x) => x.pageNumber === pageVisibleFormula.pageNumber).visible = checkIfCalculationValueIsTrue(result);\n }\n }\n\n return pageVisibility;\n}\n\nfunction getPageVisibleFormulas(template) {\n const pageVisibleFormulas = [];\n for (const page of template.pages) {\n if (page.formulas) {\n for (const formula of page.formulas) {\n if (formula.key === 'Visible') {\n pageVisibleFormulas.push({\n pageNumber: page.number,\n formula: formula.value\n });\n }\n }\n }\n }\n return pageVisibleFormulas;\n}\n\nfunction includesHiddenPage(pages, pageVisibility) {\n for (const page of pages) {\n const pageItem = pageVisibility.find((x) => x.pageNumber === page);\n if (!pageItem.visible) {\n return true;\n }\n }\n return false;\n}\n\nfunction transformPages(pages, pageVisibility) {\n const newPages = [];\n let pageOffset = 0;\n for (const { pageNumber, visible } of pageVisibility) {\n if (!visible) {\n pageOffset++;\n } else {\n const includePage = pages.indexOf(pageNumber - pageOffset) > -1;\n if (includePage) {\n newPages.push(pageNumber);\n }\n }\n }\n return newPages;\n}\n","/* eslint-disable global-require */\n/* boilerplate example of leaflet and webpack: https://github.com/btpschroeder/leaflet-webpack */\nimport React, { PureComponent } from 'react';\n\nimport L, { Map as LeafletMap } from 'leaflet';\nimport { analyticsTrack } from '../helpers/AnalyticsUtility';\nimport '../../node_modules/leaflet/dist/leaflet.css';\nimport icon from '../../node_modules/leaflet/dist/images/marker-icon.png';\nimport iconShadow from '../../node_modules/leaflet/dist/images/marker-shadow.png';\nimport { EditionCode } from '../subscription/subscription-types';\n\n/* This code is needed to properly load the images in the Leaflet CSS */\ndelete L.Icon.Default.prototype._getIconUrl;\n\nconst DefaultIcon = L.icon({\n iconUrl: icon,\n shadowUrl: iconShadow\n});\n\nL.Marker.prototype.options.icon = DefaultIcon;\n\ntype Coordinates = {\n latitude: number;\n longitude: number;\n};\n\ntype MapProps = {\n center: Coordinates;\n markers: Coordinates[];\n subscription: EditionCode;\n};\n\nexport default class Map extends PureComponent<MapProps> {\n map: LeafletMap;\n\n componentDidMount() {\n this.map = L.map(this.mapDiv).setView([this.props.center.latitude, this.props.center.longitude], 12);\n\n analyticsTrack('Form History Map Clicked', {\n tier: this.props.subscription\n });\n\n L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', {\n attribution: '© <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a> © <a href=\"https://carto.com/attributions\">CARTO</a>',\n subdomains: 'abcd',\n maxZoom: 19\n }).addTo(this.map);\n\n for (const marker of this.props.markers) {\n L.marker([marker.latitude, marker.longitude]).addTo(this.map);\n }\n }\n\n mapDiv() {\n throw new Error('Method not implemented.');\n }\n\n render() {\n return (\n <div\n style={{ width: '100%', height: '100%' }}\n ref={(r) => {\n this.mapDiv = r as any;\n }}\n />\n );\n }\n}\n","import './FormHistoryModal.scss';\n\nimport React, { useEffect, useState } from 'react';\nimport moment from 'moment';\nimport { Icon } from 'semantic-ui-react';\nimport { Link } from 'react-router-dom';\nimport Map from '../../components/Map';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport { apimCall } from '../../helpers/api';\nimport { getDateTimeFormat } from '../../helpers/DateTimeUtility';\nimport { useApim } from '../../hooks/useApi';\nimport { GoFormzServices } from '../../AppSettings';\nimport GfModal from '../../gfcomponents/GfModal/GfModal';\nimport { AppFeatures, canIUse } from '../../helpers/PermissionUtility';\nimport { FormVersion, FormAndTemplate } from '../../types/form-types';\nimport { useAppSelector } from '../../hooks/ReduxHooks';\nimport { EditionCode } from '../../subscription/subscription-types';\n\nexport interface FormHistoryModalProps {\n name?: string;\n id?: string;\n latitude?: number;\n longitude?: number;\n onClose?: VoidFunction;\n onRevertToVersion?: (formId: string, versionId: string) => void;\n formAndTemplate?: unknown;\n open?: boolean;\n}\n\nexport default function FormHistoryModal(props: FormHistoryModalProps) {\n const [versions, versionsLoading, versionsLoaded] = useApim<FormVersion[]>(GoFormzServices.TemplateService, `/forms/${props.id}/versions`);\n\n const [formAndTemplate, setFormAndTemplate] = useState<FormAndTemplate>({});\n const [loading, setLoading] = useState(false);\n const isAdmin = useAppSelector((state) => state.profile.isAdmin);\n\n useEffect(() => {\n async function fetchFormAndTemplate() {\n try {\n setLoading(true);\n if (props.formAndTemplate === undefined) {\n const response = await apimCall(GoFormzServices.TemplateService, `/formAndTemplate/${props.id}`);\n setFormAndTemplate(response.data);\n } else {\n setFormAndTemplate(props.formAndTemplate);\n }\n } finally {\n setLoading(false);\n }\n }\n fetchFormAndTemplate();\n }, []);\n\n const getUserName = (id) => (formAndTemplate.userMap ? formAndTemplate.userMap[id] : null);\n const calendarOptions = {\n sameElse: getDateTimeFormat()\n };\n\n let templateHeader = null;\n let historyBody: React.Component = null;\n\n if (formAndTemplate && formAndTemplate.form && versionsLoaded) {\n if (versions && versions.length > 0) {\n // @ts-ignore - FIX\n historyBody = (\n // @ts-ignore - FIX\n <VersionHistory\n isAdmin={isAdmin}\n formAndTemplate={formAndTemplate}\n versions={versions}\n getUserName={getUserName}\n calendarOptions={calendarOptions}\n onRevertToVersion={(versionId: string) => props.onRevertToVersion(props.id, versionId)}\n />\n );\n\n if (versions[0].templateName && versions[0].templateVersionNumber) {\n templateHeader = (\n <p>\n Template: {versions[0].templateName} (Version {versions[0].templateVersionNumber})\n </p>\n );\n }\n } else {\n // @ts-ignore - FIX\n historyBody = <LegacyHistory formAndTemplate={formAndTemplate} getUserName={getUserName} calendarOptions={calendarOptions} />;\n }\n }\n\n return (\n <GfModal className=\"form-history\" title=\"Form History\" onClose={props.onClose} scrolling semanticUiModalProps={{ size: 'small' }}>\n {templateHeader}\n {loading || versionsLoading ? <div className=\"ui active loader right-aligned\" /> : null}\n <div className=\"history-items\">{historyBody}</div>\n </GfModal>\n );\n}\n\n// TODO - GD-20719 web app performance, cleanup below\n\nfunction getVersionActions(version, previousVersion, formAndTemplate) {\n const actions = [];\n\n let previousVersionStatus = null;\n let previousVersionOwnerId = null;\n\n if (version.missingPriorVersions) {\n previousVersionStatus = formAndTemplate.form.completedDate ? 1 : 0;\n previousVersionOwnerId = formAndTemplate.form.userId || formAndTemplate.form.groupId;\n } else if (previousVersion !== null) {\n previousVersionStatus = previousVersion.status;\n previousVersionOwnerId = previousVersion.ownerId;\n }\n\n if (previousVersion === null && !version.missingPriorVersions) {\n // first version\n if (version.copiedForm) {\n actions.push('duplicated');\n } else {\n actions.push('created');\n }\n\n if (version.status === 1) {\n actions.push('completed');\n }\n\n // first version was created and transferred while offline on mobile\n if (version.createdBy !== version.ownerId) {\n actions.push('transferred');\n }\n } else {\n actions.push('modified');\n\n if (previousVersionStatus === 0 && version.status === 1) {\n actions.push('completed');\n } else if (previousVersionStatus === 1 && version.status === 0) {\n actions.push('reopened');\n }\n\n if (previousVersionOwnerId !== version.ownerId) {\n if (version.ownerId === version.createdBy) {\n actions.push('takeownership');\n } else {\n actions.push('transferred');\n }\n }\n if (version.publicFormSubmission) {\n actions.push('publicFormSubmission');\n }\n\n if (previousVersion && previousVersion.templateVersionId !== version.templateVersionId) {\n actions.push('templateVersionChanged');\n }\n\n if (version.esigned) {\n actions.push('esigned');\n }\n }\n\n return actions;\n}\n\nfunction getVersionActionTitle(version, actions, template, isAdmin) {\n const safeName = (name) => (name ? name : 'Unknown User');\n const workflowLink = (version.createdByName === 'Workflow' && isAdmin && version.workflowJobId) ?? false;\n const templateLink = canIUse(AppFeatures.TemplateList) ?? false;\n if (actions.indexOf('completed') > -1 && actions.indexOf('created') > -1 && !version.templateVersionNumber) {\n return (\n <span>\n Created and completed from Template {templateLink ? <a href={`/templates/${template.id}`}>{`'${template.name}'`}</a> : `'${template.name}'`} by{' '}\n {safeName(version.createdByName)}\n </span>\n );\n } else if (actions.indexOf('completed') > -1 && actions.indexOf('created') > -1) {\n return (\n <span>\n Created and completed from Template{' '}\n {templateLink ? (\n <a href={`/templates/${template.id}?versionId=${version.templateVersionId}`}>\n {`'${template.name}`} (Version {version.templateVersionNumber})'\n </a>\n ) : (\n `${`'${template.name}`} (Version ${version.templateVersionNumber})'`\n )}{' '}\n by {safeName(version.createdByName)}\n </span>\n );\n } else if (actions.indexOf('transferred') > -1 && actions.indexOf('created') > -1 && !version.templateVersionNumber) {\n return (\n <span>\n Created by {workflowLink ? <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a> : safeName(version.createdByName)}{' '}\n and transferred to {version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)} from Template{' '}\n {templateLink ? <a href={`/templates/${template.id}`}>{`'${template.name}'`}</a> : `'${template.name}'`}\n </span>\n );\n } else if (actions.indexOf('transferred') > -1 && actions.indexOf('created') > -1) {\n return (\n <span>\n Created by {workflowLink ? <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a> : safeName(version.createdByName)}{' '}\n and transferred to {version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)} from Template{' '}\n {templateLink ? (\n <a href={`/templates/${template.id}?versionId=${version.templateVersionId}`}>\n {`'${template.name}`} (Version {version.templateVersionNumber}')\n </a>\n ) : (\n `${`'${template.name}`} (Version ${version.templateVersionNumber})'`\n )}\n </span>\n );\n } else if (actions.indexOf('reopened') > -1 && actions.indexOf('transferred') > -1 && workflowLink) {\n return (\n <span>\n Reopened and transferred to {version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)} by{' '}\n <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a>\n </span>\n );\n } else if (actions.indexOf('reopened') > -1 && actions.indexOf('transferred') > -1) {\n return `Reopened and transferred to ${version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)}`;\n } else if (actions.indexOf('completed') > -1) {\n return `Completed by ${safeName(version.createdByName)}`;\n } else if (version.publicFormSubmission && version.versionNumber === 1) {\n return (\n <span>\n Created using a Public Form from Template '\n {templateLink ? (\n <a href={`/templates/${template.id}`}>{`${template.name} (Version ${version.templateVersionNumber})'`}</a>\n ) : (\n `'${template.name} (Version ${version.templateVersionNumber})'`\n )}{' '}\n - Owned by {safeName(version.createdByName)}\n </span>\n );\n } else if (version.publicFormSubmission) {\n const identifyingText =\n version.publicFormRecipient?.name && (version.publicFormRecipient?.phoneNumber || version.publicFormRecipient?.email)\n ? ` by ${version.publicFormRecipient.name} (${version.publicFormRecipient.phoneNumber || version.publicFormRecipient.email})`\n : '';\n return `Modified using a Public Form${identifyingText}`;\n } else if (actions.indexOf('created') > -1 && !version.templateVersionNumber) {\n return (\n <span>\n Created from Template {templateLink ? <a href={`/templates/${template.id}`}>{`'${template.name}'`}</a> : `'${template.name}'`} by{' '}\n {workflowLink ? <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a> : safeName(version.createdByName)}\n </span>\n );\n } else if (actions.indexOf('created') > -1) {\n return (\n <span>\n Created from Template{' '}\n {templateLink ? (\n <a href={`/templates/${template.id}?versionId=${version.templateVersionId}`}>\n {`'${template.name}`} (Version {version.templateVersionNumber})'\n </a>\n ) : (\n `${`'${template.name}`} (Version ${version.templateVersionNumber})'`\n )}{' '}\n by {safeName(version.createdByName)}\n </span>\n );\n } else if (actions.indexOf('reopened') > -1) {\n return (\n <span>\n Reopened by{' '}\n {workflowLink ? <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a> : safeName(version.createdByName)}\n </span>\n );\n } else if (actions.indexOf('transferred') > -1) {\n return `Transferred to ${version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)}`;\n } else if (actions.indexOf('takeownership') > -1) {\n return `Ownership taken by ${version.ownerType === 2 ? `Group '${safeName(version.ownerName)}'` : safeName(version.ownerName)}`;\n } else if (actions.indexOf('templateVersionChanged') > -1) {\n return `Updated to Template Version ${version.templateVersionNumber} by ${safeName(version.createdByName)}`;\n } else if (actions.indexOf('duplicated') > -1) {\n return `Duplicated from ${version.copiedForm.name} by ${safeName(version.createdByName)}`;\n }\n return (\n <span>\n Modified by {workflowLink ? <a href={`/workflows/jobs/${version.workflowJobId}`}>{safeName(version.createdByName)}</a> : safeName(version.createdByName)}\n </span>\n );\n}\n\nfunction getVersionIcon(actions) {\n if (actions.indexOf('completed') > -1) {\n return 'check circle outline';\n } else if (actions.indexOf('publicFormSubmission') > -1) {\n return 'file alternate outline';\n } else if (actions.indexOf('transferred') > -1 || actions.indexOf('takeownership') > -1) {\n return 'arrow alternate circle right outline';\n } else if (actions.indexOf('created') > -1) {\n return 'file text outline';\n } else if (actions.indexOf('reopened') > -1) {\n return 'undo';\n } else if (actions.indexOf('duplicated') > -1) {\n return 'copy outline';\n }\n return 'file alternate outline';\n}\n\nexport interface VersionHistoryProps {\n isAdmin: boolean;\n formAndTemplate: FormAndTemplate;\n versions: FormVersion[];\n getUserName: (id: string) => string;\n calendarOptions: {\n sameElse: string;\n };\n onRevertToVersion: (versionId: string) => void;\n}\nfunction VersionHistory(props: VersionHistoryProps) {\n const { isAdmin, formAndTemplate, versions, getUserName, calendarOptions } = props;\n const [expandedVersionGroup, setExpandedVersionGroup] = useState();\n const [showMapVersionId, setShowMapVersionId] = useState();\n const subscription = useAppSelector<EditionCode>((state) => state.profile.client.subscription);\n\n const historyItems = [];\n const versionsGroupedByActions = [];\n const latestFormVersion = versions[versions.length - 1];\n for (let i = 0; i < versions.length; i++) {\n const version = versions[i];\n const previousVersion = i > 0 ? versions[i - 1] : null;\n const versionActions = getVersionActions(version, previousVersion, formAndTemplate);\n\n const previousVersionsGroupedByAction = versionsGroupedByActions.length > 0 ? versionsGroupedByActions[versionsGroupedByActions.length - 1] : null;\n if (\n previousVersionsGroupedByAction &&\n previousVersionsGroupedByAction.versionActions.length === 1 &&\n previousVersionsGroupedByAction.versionActions[0] === 'modified' &&\n versionActions.length === 1 &&\n versionActions[0] === 'modified' &&\n previousVersionsGroupedByAction.versions[0].createdBy === version.createdBy &&\n previousVersionsGroupedByAction.versions[0].source === version.source\n ) {\n previousVersionsGroupedByAction.versions.push(version);\n } else {\n versionsGroupedByActions.push({\n groupId: version.versionId,\n versionActions,\n versions: [version]\n });\n }\n }\n\n for (const versionsGroupedByAction of versionsGroupedByActions) {\n const { versionActions } = versionsGroupedByAction;\n const groupedVersions = versionsGroupedByAction.versions;\n const firstVersion = groupedVersions[0];\n const lastVersion = groupedVersions[groupedVersions.length - 1];\n\n historyItems.push(\n <React.Fragment key={firstVersion.versionId}>\n {firstVersion.missingPriorVersions ? (\n <React.Fragment>\n <div key=\"created\" className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name=\"file text outline\" />\n <div className=\"item-content\">\n <div className=\"item-header\">\n Created from {formAndTemplate.template.name} (Version {firstVersion.templateVersionNumber}) by {getUserName(formAndTemplate.form.createdBy)}\n </div>\n <div className=\"item-description\">{moment.utc(formAndTemplate.form.createdDate).local().calendar(null, calendarOptions)}</div>\n </div>\n </div>\n </div>\n {getMergedTransferHistory(formAndTemplate, versionsGroupedByActions).map((item, i) => (\n <div key={i} className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name=\"arrow alternate circle right outline\" />\n <div className=\"item-content\">\n <div className=\"item-header\">Transferred to {getUserName(item.destId)}</div>\n <div className=\"item-description\">{moment.utc(item.date).local().calendar(null, calendarOptions)}</div>\n </div>\n </div>\n </div>\n ))}\n </React.Fragment>\n ) : null}\n <div className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name={getVersionIcon(versionActions)} />\n <div className=\"item-content\">\n <div className=\"item-header\">{getVersionActionTitle(firstVersion, versionActions, formAndTemplate.template, isAdmin)}</div>\n <div className=\"item-description\">\n <span>{moment.utc(lastVersion.createdDate).local().calendar(null, calendarOptions)}</span>\n {firstVersion.source ? <span>{getSourceDisplay(firstVersion.source)}</span> : null}\n <span>-</span>\n {groupedVersions.length > 1 ? (\n <React.Fragment>\n <span>{groupedVersions.length} versions -</span>\n <button\n className=\"link-button\"\n onClick={() => setExpandedVersionGroup(expandedVersionGroup === versionsGroupedByAction.groupId ? null : versionsGroupedByAction.groupId)}\n >\n {expandedVersionGroup === versionsGroupedByAction.groupId ? 'Collapse' : 'Expand'}\n </button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <Link to={`/forms/${firstVersion.formId}?versionId=${firstVersion.versionId}`} target=\"_blank\">\n Form Version {firstVersion.versionNumber}\n </Link>\n {firstVersion.esigned ? ' - eSigned' : ''}\n </React.Fragment>\n )}\n </div>\n </div>\n <div className=\"history-item-row-right-container\">\n {firstVersion.location && (\n <div\n className=\"map-icon\"\n onClick={() => {\n setShowMapVersionId(showMapVersionId === firstVersion.versionId ? '' : firstVersion.versionId);\n }}\n >\n <Icon name={'map outline'} />\n </div>\n )}\n {(groupedVersions.length ?? 0) <= 1 && (\n <RevertVersion formVersion={firstVersion} latestFormVersion={latestFormVersion} onRevertToVersion={props?.onRevertToVersion} />\n )}\n </div>\n </div>\n {showMapVersionId === firstVersion.versionId ? (\n <div className=\"map-wrapper\">\n <ErrorBoundary errorContent=\"Error rendering location\">\n <Map center={firstVersion.location} markers={[firstVersion.location]} subscription={subscription} />\n </ErrorBoundary>\n </div>\n ) : (\n ''\n )}\n </div>\n {expandedVersionGroup === versionsGroupedByAction.groupId\n ? groupedVersions.map((groupedVersion) => (\n <div key={groupedVersion.versionId} className=\"history-item-row\">\n <div className=\"history-item sub-item\">\n <div className=\"item-content\">\n <div className=\"item-description\">\n <Icon name=\"circle\" />\n <React.Fragment>\n <span>{moment.utc(groupedVersion.createdDate).local().calendar(null, calendarOptions)}</span>\n - \n <Link to={`/forms/${groupedVersion.formId}?versionId=${groupedVersion.versionId}`} target=\"_blank\">\n Form Version {groupedVersion.versionNumber}\n </Link>\n </React.Fragment>\n </div>\n </div>\n <div className=\"history-item-row-right-container\">\n <RevertVersion formVersion={groupedVersion} latestFormVersion={latestFormVersion} onRevertToVersion={props?.onRevertToVersion} />\n </div>\n </div>\n </div>\n ))\n : null}\n </React.Fragment>\n );\n }\n\n return historyItems;\n}\n\nfunction RevertVersion(props) {\n const { formVersion, latestFormVersion } = props;\n if (latestFormVersion?.versionId === formVersion?.versionId || !canIUse(AppFeatures.FormRevert)) {\n return <></>;\n }\n return (\n <div\n className=\"form-revert\"\n onClick={() => {\n props?.onRevertToVersion(formVersion.versionId);\n }}\n >\n <a>Revert to this version</a>\n </div>\n );\n}\n\nfunction getSourceDisplay(source) {\n switch (source) {\n case 'web':\n return 'using Web App';\n case 'ios':\n return 'using iOS App';\n case 'android':\n return 'using Android App';\n case 'windows':\n return 'using Windows App';\n case 'mobile':\n return 'using Mobile App';\n case 'system':\n return 'by System';\n default:\n return '';\n }\n}\n\nfunction getMergedTransferHistory(formAndTemplate, versionsGroupedByActions) {\n const transferVersions = versionsGroupedByActions\n .filter((x) => x.versionActions.indexOf('transferred') > -1 || x.versionActions.indexOf('takeownership') > -1)\n .map((x) => x.versions[0]);\n\n let transferHistory = formAndTemplate.form.transferHistory || [];\n\n console.log(transferVersions);\n console.log(JSON.parse(JSON.stringify(transferHistory)));\n\n transferHistory = transferHistory.slice(0, Math.max(0, transferHistory.length - transferVersions.length));\n\n console.log(transferHistory);\n\n return transferHistory;\n}\n\nfunction LegacyHistory(props) {\n const { formAndTemplate, getUserName, calendarOptions } = props;\n const historyItems = [];\n const subscription = useAppSelector<EditionCode>((state) => state.profile.client.subscription);\n const [showMap, setShowMap] = useState<boolean>(false);\n\n historyItems.push(\n <div key=\"created\" className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name=\"file alternate outline\" />\n <div className=\"item-content\">\n <div className=\"item-header\">Created by {getUserName(formAndTemplate.form.createdBy)}</div>\n <div className=\"item-description\">{moment.utc(formAndTemplate.form.createdDate).local().calendar(null, calendarOptions)}</div>\n </div>\n </div>\n </div>\n );\n\n if (formAndTemplate.form.transferHistory && formAndTemplate.form.transferHistory.length > 0) {\n let i = 0;\n for (const item of formAndTemplate.form.transferHistory) {\n historyItems.push(\n <div key={i} className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name=\"arrow alternate circle right outline\" />\n <div className=\"item-content\">\n <div className=\"item-header\">Transferred to {getUserName(item.destId)}</div>\n <div className=\"item-description\">{moment.utc(item.date).local().calendar(null, calendarOptions)}</div>\n </div>\n </div>\n </div>\n );\n i++;\n }\n }\n\n if (formAndTemplate.form.completedDate) {\n historyItems.push(\n <div key=\"completed\" className=\"history-item-row\">\n <div className=\"history-item\">\n <Icon name=\"check circle outline\" />\n <div className=\"item-content\">\n <div className=\"item-header\">Completed by {getUserName(formAndTemplate.form.userId)}</div>\n <div className=\"item-description\">{moment.utc(formAndTemplate.form.completedDate).local().calendar(null, calendarOptions)}</div>\n </div>\n <div className=\"history-item-row-right-container\">\n {formAndTemplate.form.longitude && formAndTemplate.form.latitude ? (\n <div\n className=\"map-icon\"\n onClick={() => {\n setShowMap(!showMap);\n }}\n >\n <Icon name={'map outline'} />\n </div>\n ) : null}\n </div>\n </div>\n {showMap && (\n <div className=\"map-wrapper\">\n <ErrorBoundary errorContent=\"Error rendering location\">\n <Map\n center={{ latitude: formAndTemplate.form.latitude, longitude: formAndTemplate.form.longitude }}\n markers={[{ latitude: formAndTemplate.form.latitude, longitude: formAndTemplate.form.longitude }]}\n subscription={subscription}\n />\n </ErrorBoundary>\n </div>\n )}\n </div>\n );\n }\n return historyItems;\n}\n","import React, { PureComponent } from 'react';\n\nimport { canIUse, AppFeatures } from '../../helpers/PermissionUtility';\nimport { FormTag } from '../tags-types';\n\nexport type FormTagItemProps = {\n tag: FormTag;\n onRemove: (id: string) => void;\n};\n\nexport default class FormTagItem extends PureComponent<FormTagItemProps, FormTag> {\n render() {\n const { tag, onRemove } = this.props;\n\n return (\n <div className=\"form-tag-item\">\n {tag.tagName}\n <button\n className=\"plain-button delete-button\"\n onClick={() => {\n onRemove(tag.tagId);\n }}\n >\n {canIUse(AppFeatures.TagAdd) ? <i className=\"ui icon delete\" /> : null}\n </button>\n </div>\n );\n }\n}\n","import React, { PureComponent } from 'react';\n\nimport { connect } from 'react-redux';\nimport { getFormTags, removeFormTag } from './../actions';\nimport Loader from '../../components/loader';\nimport FormTagItem from './FormTagItem';\nimport { RootState } from 'gf-types';\nimport { FormTag } from '../tags-types';\n\nexport type FormTagsProps = {\n formId?: string;\n tags?: FormTag[];\n loading?: boolean;\n getFormTags?: (id: string) => void;\n removeFormTag?: () => void;\n};\n\n//@ts-ignore - FIX\n@connect(\n (state: RootState) => ({\n tags: state.tags?.formTags,\n loading: state.tags?.formTagsLoading\n }),\n { getFormTags, removeFormTag }\n)\nexport default class FormTags extends PureComponent<FormTagsProps, FormTag> {\n constructor(props: FormTagsProps) {\n super(props);\n }\n\n componentDidMount() {\n this.props.getFormTags(this.props.formId);\n }\n\n render() {\n const { tags, loading } = this.props;\n\n if (loading) {\n return (\n <div className=\"form-tags\">\n <Loader isLoading />\n </div>\n );\n }\n\n const items = [];\n if (tags) {\n for (const tag of tags) {\n items.push(<FormTagItem key={tag.tagId} tag={tag} onRemove={this.props.removeFormTag} />);\n }\n }\n\n return <div className=\"form-tags\">{items}</div>;\n }\n}\n","import React, { PureComponent } from 'react';\n\nimport { DndProvider, DragSource, DropTarget } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport reactStringReplace from 'react-string-replace';\nimport { canIUse, AppFeatures } from '../../helpers/PermissionUtility';\nimport { showPrompt } from '../../helpers/MessageUtility';\nimport PopupDropdown from '../../components/PopupDropdown';\nimport { TagsItem } from '../tags-types';\n\nexport type TagItemProps = {\n tag: TagsItem;\n selectTag: (id: string, name: string) => void;\n level: number;\n expandedItems: string[];\n toggleExpanded: (id: string) => void;\n onRemove: (id: string) => void;\n onRename: (id: string, text: string, parentId: string) => void;\n onMove: (draggedId: string, name: string, droppedId: string) => void;\n parentId: string;\n parentIds: string[];\n connectDragSource?: AnyFunc;\n connectDropTarget?: AnyFunc;\n isOver?: boolean;\n canDrop?: boolean;\n highlight: string;\n};\n\nconst dragSource = {\n beginDrag(props) {\n return {\n tag: props.tag,\n parentId: props.parentId\n };\n }\n};\n\nconst dropTarget = {\n drop(props: TagItemProps, monitor) {\n const draggedItem = monitor.getItem();\n const draggedTag = draggedItem.tag;\n const dropTag = props.tag;\n props.onMove(draggedTag.id, draggedTag.name, dropTag.id);\n },\n canDrop(props: TagItemProps, monitor) {\n const draggedItem = monitor.getItem();\n const draggedTagId = draggedItem.tag.id;\n const dropTagId = props.tag.id;\n\n if (props.parentIds.indexOf(draggedTagId) > -1 || draggedTagId === dropTagId) {\n return false;\n }\n return true;\n }\n};\n//@ts-ignore - FIX\n@DropTarget('tagitem', dropTarget, (c, monitor) => ({\n connectDropTarget: c.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n}))\n//@ts-ignore - FIX\n@DragSource('tagitem', dragSource, (c, monitor) => ({\n connectDragSource: c.dragSource(),\n isDragging: monitor.isDragging()\n}))\nexport default class TagItem extends PureComponent<TagItemProps, TagItem> {\n private div: HTMLDivElement;\n\n constructor(props: TagItemProps) {\n super(props);\n\n this.toggleExpanded = this.toggleExpanded.bind(this);\n this.rename = this.rename.bind(this);\n }\n\n toggleExpanded() {\n this.props.toggleExpanded(this.props.tag.id);\n }\n\n isExpanded() {\n return this.props.expandedItems.includes(this.props.tag.id);\n }\n\n rename() {\n const { tag, parentId, onRename } = this.props;\n showPrompt(\n {\n title: 'Rename Tag',\n msg: 'Tag name',\n text: tag.name,\n maxLength: 50\n },\n (result, text) => {\n if (result) {\n onRename(tag.id, text, parentId);\n }\n }\n );\n }\n\n render() {\n const { tag, selectTag, level, connectDragSource, connectDropTarget, isOver, parentId, canDrop, highlight } = this.props;\n const expanded = this.isExpanded();\n const canManageTags = canIUse(AppFeatures.TagManage);\n const canAddTags = canIUse(AppFeatures.TagAdd);\n\n const children = tag.children;\n let icon;\n if (children?.length > 0) {\n icon = (\n <button className=\"plain-button expand-icon\" onClick={this.toggleExpanded}>\n <i className={`icon angle ${expanded ? 'down' : 'right'}`} />\n </button>\n );\n } else {\n icon = <i className=\"icon tag\" />;\n }\n\n let tagNameRender = null;\n if (highlight) {\n tagNameRender = reactStringReplace(tag.name, highlight, (match) => <span className=\"highlight\">{match}</span>);\n } else {\n tagNameRender = tag.name;\n }\n\n const tagLink = canAddTags ? (\n <div className=\"tag-link\">\n <a onClick={() => selectTag(tag.id, tag.name)}>{tagNameRender}</a>\n </div>\n ) : (\n <div className=\"tag-link\">{tagNameRender}</div>\n );\n\n const tagItem = canManageTags ? (\n <div\n key={tag.id}\n className={`tag-item${canManageTags ? ' draggable' : ''}${isOver && canDrop ? ' over' : ''}`}\n ref={(r) => {\n this.div = r;\n }}\n style={{ paddingLeft: `${2 + level * 16}px` }}\n >\n {icon}\n {tagLink}\n <PopupDropdown\n trigger={\n <button className=\"plain-button menu-button\">\n <i className=\"ellipsis horizontal icon\" />\n </button>\n }\n content={\n <PopupDropdown.Menu vertical>\n {parentId ? (\n <PopupDropdown.Item\n text=\"Move to root\"\n icon=\"move\"\n onClick={() => {\n this.props.onMove(tag.id, tag.name, null);\n }}\n />\n ) : null}\n <PopupDropdown.Item text=\"Rename\" icon=\"edit\" onClick={this.rename} />\n <PopupDropdown.Item\n text=\"Delete\"\n icon=\"remove\"\n onClick={() => {\n this.props.onRemove(tag.id);\n }}\n />\n </PopupDropdown.Menu>\n }\n />\n </div>\n ) : (\n <div key={tag.id} className=\"tag-item\" style={{ paddingLeft: `${2 + level * 16}px` }}>\n {icon}\n {tagLink}\n </div>\n );\n\n return canManageTags ? <DndProvider backend={HTML5Backend}>{connectDropTarget(connectDragSource(tagItem))}</DndProvider> : tagItem;\n }\n}\n","import React, { PureComponent } from 'react';\n\nimport { connect } from 'react-redux';\nimport VirtualizedList from '@enykeev/react-virtualized/dist/commonjs/List';\nimport ResizeSensor from 'resize-sensor';\nimport { getAllNestedTags, addFormTag, deleteTag, renameTag, moveTag } from './../actions';\nimport TagItem from './TagItem';\nimport Loader from '../../components/loader';\nimport { RootState } from 'gf-types';\nimport { TagsItem, TagsList, TagState } from './../tags-types';\n\nexport type TagListProps = {\n tags?: TagsItem[];\n getAllNestedTags?: () => void;\n tagsLoading?: boolean;\n tagsLoaded?: boolean;\n addFormTag?: () => void;\n search?: string;\n deleteTag?: () => void;\n renameTag?: () => void;\n moveTag?: () => void;\n};\n\n//@ts-ignore - FIX\n@connect(\n (state: RootState) => ({\n tags: state.tags?.items,\n tagsLoading: state.tags?.loading,\n tagsLoaded: state.tags?.loaded\n }),\n { getAllNestedTags, addFormTag, deleteTag, renameTag, moveTag }\n)\nexport default class TagList extends PureComponent<TagListProps, TagsList> {\n private resizeSensor: ResizeSensor;\n private tagList: TagsList;\n\n constructor(props: TagListProps) {\n super(props);\n\n this.toggleExpanded = this.toggleExpanded.bind(this);\n this.updateDimensions = this.updateDimensions.bind(this);\n\n this.state = {\n expandedItems: [],\n tags: this.props.tags,\n listWidth: 0,\n listHeight: 0\n };\n }\n\n componentDidMount() {\n if (!this.props.tagsLoaded && !this.props.tagsLoading) {\n this.props.getAllNestedTags();\n }\n\n this.resizeSensor = new ResizeSensor(this.tagList, this.updateDimensions);\n }\n\n componentDidUpdate(prevProps: TagListProps, prevState: TagState) {\n if (prevProps.tags !== this.props.tags || prevProps.search !== this.props.search) {\n if (this.props.search) {\n const result = this.getTagsBySearch(this.props.tags);\n this.setState({\n tags: result.filteredTags,\n expandedItems: result.expandedIds\n });\n } else {\n this.setState({ tags: this.props.tags, expandedItems: prevProps.search !== this.props.search ? [] : prevState.expandedItems });\n }\n }\n }\n\n componentWillUnmount() {\n if (this.resizeSensor) {\n this.resizeSensor.detach();\n }\n }\n\n getTagsBySearch(tags: TagsItem[]) {\n const filteredTags = [];\n let expandedIds = [];\n for (const tag of tags) {\n const c = this.getTagsBySearch(tag.children);\n const filteredChildren = c.filteredTags;\n if (filteredChildren.length > 0 || tag.name.toLowerCase().indexOf(this.props.search.toLowerCase()) > -1) {\n filteredTags.push({\n id: tag.id,\n name: tag.name,\n children: filteredChildren\n });\n }\n if (filteredChildren.length > 0) {\n expandedIds = [...expandedIds, tag.id, ...c.expandedIds];\n }\n }\n return { filteredTags: filteredTags, expandedIds };\n }\n\n getFlattenedTagList(tags: TagsItem[], level: number, parentIds: string[]) {\n let list = [];\n if (tags) {\n for (const tag of tags) {\n list.push({\n level,\n tag,\n parentIds\n });\n if (this.state.expandedItems.indexOf(tag.id) > -1) {\n list = [...list, ...this.getFlattenedTagList(tag.children, level + 1, [...parentIds, tag.id])];\n }\n }\n }\n return list;\n }\n\n updateDimensions() {\n this.setState({\n listWidth: this.tagList.offsetWidth,\n listHeight: this.tagList.offsetHeight\n });\n }\n\n toggleExpanded(id: string) {\n this.setState((prevState: TagState) => {\n let expandedItems;\n const currentIndex = prevState.expandedItems.indexOf(id);\n if (currentIndex > -1) {\n expandedItems = [...prevState.expandedItems];\n expandedItems.splice(currentIndex, 1);\n } else {\n expandedItems = [id, ...prevState.expandedItems];\n }\n return { expandedItems };\n });\n }\n\n render() {\n const { tagsLoading, tagsLoaded, search } = this.props;\n\n if (!tagsLoaded || tagsLoading) {\n return (\n <div\n key=\"tag-list\"\n className=\"tag-list\"\n ref={(r) => {\n this.tagList = r;\n }}\n >\n <Loader isLoading />\n </div>\n );\n }\n\n const flattenedList = this.getFlattenedTagList(this.state.tags, 0, []);\n\n const rowRenderer = (options) => {\n const { key, index, style } = options;\n const listItem = flattenedList[index];\n const { tag, level, parentIds } = listItem;\n return (\n <div key={key} style={style}>\n <TagItem\n tag={tag}\n selectTag={this.props.addFormTag}\n level={level}\n expandedItems={this.state.expandedItems}\n toggleExpanded={this.toggleExpanded}\n onRemove={this.props.deleteTag}\n onRename={this.props.renameTag}\n onMove={this.props.moveTag}\n parentIds={parentIds}\n parentId={parentIds.length > 0 ? parentIds[parentIds.length - 1] : null}\n highlight={search}\n />\n </div>\n );\n };\n\n return (\n <div\n key=\"tag-list\"\n className=\"tag-list\"\n ref={(r) => {\n this.tagList = r;\n }}\n >\n <VirtualizedList rowCount={flattenedList.length} height={this.state.listHeight} width={this.state.listWidth} rowHeight={32} rowRenderer={rowRenderer} />\n </div>\n );\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport { AppFeatures, canIUse } from '../../helpers/PermissionUtility';\nimport { DndProvider } from 'react-dnd';\nimport { FormTag } from '../tags-types';\nimport { Grid } from 'semantic-ui-react';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { Provider, ReactReduxContext, connect } from 'react-redux';\nimport { saveFormTagChanges, createAndAddTag, createTag, getAllNestedTags } from '../actions';\nimport { useAppSelector } from '../../hooks/ReduxHooks';\nimport FormTags from './FormTags';\nimport GfModal from '../../gfcomponents/GfModal/GfModal';\nimport TagList from './TagList';\nimport Loader from '../../components/loader';\n\nexport type TagsModalProps = {\n formId: string;\n formName: string;\n onClose: (formTags?: FormTag[]) => void;\n saveFormTagChanges?: (formId: string, onClose: () => void) => void;\n createAndAddTag?: (id: string) => void;\n createTag?: (id: string) => void;\n getAllNestedTags?: () => void;\n};\n\nconst mapDispatchToProps = {\n saveFormTagChanges,\n createAndAddTag,\n createTag,\n getAllNestedTags\n};\n\nfunction ConnectedTagsModal(props: TagsModalProps) {\n const [search, setSearch] = useState('');\n const saving = useAppSelector<boolean>((state) => !!state.tags?.saving);\n const savingTag = useAppSelector<boolean>((state) => !!state.tags?.savingTag);\n const canAddTags = canIUse(AppFeatures.TagAdd);\n const canCreateTags = canIUse(AppFeatures.TagCreate);\n\n useEffect(() => {\n // refresh the tags list every time the modal is opened\n props.getAllNestedTags();\n }, []);\n\n function searchChanged(e: React.ChangeEvent<HTMLInputElement>) {\n setSearch(e.target.value);\n }\n\n function searchKeyDown(e: React.KeyboardEvent) {\n if (e.key === 'Enter' && canCreateTags) {\n createTag();\n }\n }\n\n function createTag() {\n if (!!search?.trim() && canCreateTags) {\n if (canAddTags) {\n props.createAndAddTag(search);\n } else {\n props.createTag(search);\n }\n }\n\n setSearch('');\n }\n\n function handleSaveChangesClick() {\n props.saveFormTagChanges(props.formId, props.onClose);\n }\n\n function closeModal() {\n props.onClose(null);\n }\n\n return (\n <ReactReduxContext.Consumer>\n {(ctx) => (\n <DndProvider backend={HTML5Backend}>\n <Provider store={ctx.store}>\n <GfModal\n title={`Tags - ${props.formName}`}\n onClose={() => closeModal()}\n className=\"tags-modal\"\n primaryText=\"Save Changes\"\n onPrimaryClick={handleSaveChangesClick}\n tertiaryText=\"Cancel\"\n onTertiaryClick={() => closeModal()}\n loading={saving}\n semanticUiModalProps={{ size: 'small' }}\n >\n <Grid divided=\"vertically\">\n <Grid.Column width={8}>\n <div className=\"tag-column\">\n <h3>Tags</h3>\n <div className=\"select-add-label\">{canCreateTags ? 'Select a tag or create a new tag' : 'Select a tag'}</div>\n <div className=\"add-search\">\n <input\n className=\"add-search-input\"\n value={search}\n onChange={searchChanged}\n onKeyDown={searchKeyDown}\n style={{ paddingRight: canCreateTags ? '32px' : '8px' }}\n maxLength={50}\n />\n {canCreateTags ? (\n <button className=\"plain-button add-tag-button\" onClick={createTag}>\n <i className=\"icon plus circle\" />\n </button>\n ) : null}\n </div>\n <TagList search={search} />\n <Loader isLoading={savingTag || false} />\n </div>\n </Grid.Column>\n <Grid.Column width={8}>\n <div className=\"tag-column\">\n <h3>Tags In-Use</h3>\n <FormTags formId={props.formId} />\n </div>\n </Grid.Column>\n </Grid>\n </GfModal>\n </Provider>\n </DndProvider>\n )}\n </ReactReduxContext.Consumer>\n );\n}\n\nconst TagsModal = connect(null, mapDispatchToProps)(ConnectedTagsModal);\n\nexport default TagsModal;\n"],"names":["exports","___CSS_LOADER_API_IMPORT___","push","module","id","content","locals","FormVersionRevertModal","props","useState","saving","setSaving","formReverted","setFormReverted","error","setError","reOpenFormBeforeSaving","setReOpenFormBeforeSaving","TemplateService","formId","versionId","formVersionResult","formVersionResultLoading","formResult","formResultLoading","cleanAutoTags","form","tags","forEach","x","isAutoTag","operation","loading","primaryText","onPrimaryClick","url","window","open","onClose","currentForm","JSON","parse","stringify","formVersion","versionNumber","hasBeenReopened","completedDate","format","values","value","find","fieldId","getFormVersionForRevert","console","className","title","errorText","semanticUiModalProps","size","isLoading","name","label","checked","onChange","undefined","Provider","Consumer","PopupDropdown","popupOpened","setPopupOpened","popup","useRef","searchInput","searchTerm","setSearchTerm","activeOptionIndex","setActiveOptionIndex","popupOnClose","current","blur","closePopup","close","selectValue","option","filteredOptions","options","filter","text","toLowerCase","indexOf","trigger","selection","matchingOption","clearable","placeholder","search","onKeyDown","e","length","keyCode","preventDefault","i","Math","max","min","target","autoComplete","ref","onClick","stopPropagation","children","Menu","map","Item","key","active","selected","contentWrapper","on","basic","position","popperModifiers","escapeWithReference","offset","onOpen","vertical","fluid","Header","context","icon","TransferModal","bulkTransfer","isTransferring","toggleTransferModal","transferForms","userPage","typingTimeout","showSearchResults","modalState","setModalState","handleClose","useCallback","clearTimeout","handleTransferClick","selectedItem","transferType","type","selectedId","selectedName","ctx","store","tertiaryText","onTertiaryClick","actionButtonProps","primary","disabled","hideAdministrator","hideDeactivatedUsers","hideCurrentUser","hidePendingUsers","groupSelected","GeneratePdfModal","template","pageRange","setPageRange","pageOutOfRange","setPageOutOfRange","validPages","setValidPages","pageVisibility","setPageVisibility","selectionType","setSelectionType","exportingHiddenPages","setExportingHiddenPages","selectedPages","setSelectedPages","formAndTemplateResult","loaded","useEffect","pages","sort","a","b","number","page","pageNumber","visible","pageVisibleFormulas","formulas","formula","getPageVisibleFormulas","calculationRunner","init","pageVisibleFormula","executeFormula","result","getPageVisibility","then","pv","pdfExportUseVisible","includesHiddenPage","transformedPages","newPages","pageOffset","transformPages","reduce","join","preset","printConfigs","handleSelectButtonClicked","download","async","exportSubmission","forceDownload","saveFirst","saveForm","pdfWindow","downloadPdf","resultJson","location","href","data","downloadUrl","showMessage","selectPageRange","printConfig","secondaryText","onSecondaryClick","secondary","style","marginTop","color","Default","prototype","_getIconUrl","DefaultIcon","iconUrl","shadowUrl","componentDidMount","this","mapDiv","setView","center","latitude","longitude","tier","subscription","attribution","subdomains","maxZoom","addTo","markers","marker","Error","render","width","height","r","PureComponent","useApi","versions","versionsLoading","versionsLoaded","formAndTemplate","setFormAndTemplate","setLoading","isAdmin","state","profile","api","response","fetchFormAndTemplate","getUserName","userMap","calendarOptions","sameElse","templateHeader","historyBody","VersionHistory","onRevertToVersion","templateName","templateVersionNumber","LegacyHistory","GfModal","scrolling","getVersionActions","version","previousVersion","actions","previousVersionStatus","previousVersionOwnerId","missingPriorVersions","userId","groupId","status","ownerId","createdBy","publicFormSubmission","templateVersionId","esigned","copiedForm","expandedVersionGroup","setExpandedVersionGroup","showMapVersionId","setShowMapVersionId","client","historyItems","versionsGroupedByActions","latestFormVersion","versionActions","previousVersionsGroupedByAction","source","versionsGroupedByAction","groupedVersions","firstVersion","lastVersion","Icon","createdDate","local","calendar","transferVersions","transferHistory","log","slice","getMergedTransferHistory","item","destId","date","safeName","workflowLink","createdByName","workflowJobId","templateLink","TemplateList","ownerType","ownerName","identifyingText","publicFormRecipient","phoneNumber","email","getVersionActionTitle","getSourceDisplay","to","RevertVersion","ErrorBoundary","errorContent","groupedVersion","FormRevert","showMap","setShowMap","tag","onRemove","tagName","tagId","TagAdd","getFormTags","items","removeFormTag","FormTags","formTags","formTagsLoading","dragSource","beginDrag","parentId","dropTarget","drop","monitor","draggedTag","getItem","dropTag","onMove","canDrop","draggedTagId","dropTagId","parentIds","toggleExpanded","bind","rename","isExpanded","expandedItems","includes","onRename","showPrompt","msg","maxLength","selectTag","level","connectDragSource","connectDropTarget","isOver","highlight","expanded","canManageTags","TagManage","canAddTags","tagNameRender","match","tagLink","tagItem","div","paddingLeft","DndProvider","backend","TagItem","DropTarget","c","DragSource","isDragging","updateDimensions","listWidth","listHeight","tagsLoaded","tagsLoading","getAllNestedTags","resizeSensor","tagList","componentDidUpdate","prevProps","prevState","getTagsBySearch","setState","filteredTags","expandedIds","componentWillUnmount","detach","filteredChildren","getFlattenedTagList","list","offsetWidth","offsetHeight","currentIndex","splice","flattenedList","rowCount","rowHeight","rowRenderer","index","listItem","addFormTag","deleteTag","renameTag","moveTag","TagList","mapDispatchToProps","saveFormTagChanges","createAndAddTag","createTag","setSearch","savingTag","canCreateTags","TagCreate","searchChanged","searchKeyDown","trim","handleSaveChangesClick","closeModal","formName","Grid","divided","Column","paddingRight"],"sourceRoot":""}