{"version":3,"file":"static/js/index.baaf37eb.js","sources":["webpack://@jotforminc/presentations/../../configs/tracking-config/src/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Image.js","webpack://@jotforminc/presentations/../../libs/utils/src/misc.js","webpack://@jotforminc/presentations/../../libs/integration-constants/src/types/index.ts","webpack://@jotforminc/presentations/../../libs/branding-footer/src/assets/svg/jotform_21_logo.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/align-text-left.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/align-text-center.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/align-text-right.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/font_bold.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/font_italic.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/font_underline.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/heart-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/star-filled.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/sheetbox_unselect.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/sheetbox_select.svg","webpack://@jotforminc/presentations/../../../../src/icons/time-date/calendar.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/bar.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/pie.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/basic.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/donut.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/column.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/line.svg","webpack://@jotforminc/presentations/../../libs/report-components/src/assets/svg/chart/placeholder/grid.svg","webpack://@jotforminc/presentations/../../../../src/icons/finance/tags-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/time-date/calendar-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/type-square-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/finance/tag-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/at.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/number-square-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/communication/phone-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/text.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/location-pin-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/forms-files/paperclip-diagonal.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/conditional-branch-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/users/users-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/pen-sign-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/squares-arrow.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/shapes-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/thumbtack-vertical-filled.svg","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Workflow/Status/index.js","webpack://@jotforminc/presentations/../../../../src/logos/integration/googledrive-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/box-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/onedrive-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/dropbox-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/egnyte-logomark-dark.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/quickbooks-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/airtable-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/monday-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/googlesheets-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/microsoftteams-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/webhooks-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/campaignmonitor-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/trello-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/slack-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/clickup-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/zoho-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/googlecalendar-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/zoom-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/hubspot-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/asana-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/mailerlite-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/constantcontact-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/mailchimp-logomark-dark.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/getresponse-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/activecampaign-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/aweber-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/keap-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/zendesk-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/pipedrive-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/sendgrid-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/salesforce-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/ftp-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/icontact-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/madmimi-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/highrise-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/solve-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/insightly-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/callingly-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/verticalresponse-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/zapier-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/xzazu-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/paymo-logomark-color.svg","webpack://@jotforminc/presentations/../../../../src/logos/integration/boxsign-color.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/xmark.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/chevron-left.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/chevron-right.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/arrow-down-to-line.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/magnifying-glass-minus.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/magnifying-glass-plus.svg","webpack://@jotforminc/presentations/../../../../src/icons/documents/document-simple-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/products/product-sign-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/documents/document-list-bullet-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/info-circle-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/editor/printer-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/trash-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/forms-files/form-check-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/pencil-to-square.svg","webpack://@jotforminc/presentations/../../../../src/icons/communication/envelope-closed-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/arrow-up-right-from-square-sm.svg","webpack://@jotforminc/presentations/../../../../src/icons/users/user-filled.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/iconModalClose.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/iconViewAllSubmission.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/iconViewNewSubmission.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/arrow_left.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/iconPrint.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/icon_pdf.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/icon_download.svg","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/assets/iconInboxNavigator.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/task-filled.svg","webpack://@jotforminc/presentations/../../libs/workflow-components/src/assets/iconAssignFormFlow.svg","webpack://@jotforminc/presentations/../../libs/workflow-components/src/constants/systemOutcomes.js","webpack://@jotforminc/presentations/../../../../src/icons/arrows/chevron-down.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/xmark-circle.svg","webpack://@jotforminc/presentations/../../../../src/icons/media/triangle-circle-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/arrows-rotate.svg","webpack://@jotforminc/presentations/../../libs/workflow-components/src/assets/iconTakeover.svg","webpack://@jotforminc/presentations/../../libs/signature/src/assets/svg/signature_icon.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/link-diagonal.svg","webpack://@jotforminc/presentations/../../../../src/icons/arrows/angle-up.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/magnifying-glass.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/check.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/minus.svg","webpack://@jotforminc/presentations/../../../../src/icons/security/lock-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/exclamation-triangle-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/link-diagonal-broken.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/trash-exclamation-filled.svg","webpack://@jotforminc/presentations/../../libs/dialog/src/assets/svg/iconHipaaWarning.svg","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/StartCancelAction.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/hooks/useActionComponents.js","webpack://@jotforminc/presentations/../../libs/button-field/src/assets/svg/iconDropdownArrow.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/check-circle-filled.svg","webpack://@jotforminc/presentations/../../../../src/icons/general/exclamation-circle-filled.svg","webpack://@jotforminc/presentations/../../libs/image-upload/src/assets/svg/unsplash_icon.svg","webpack://@jotforminc/presentations/../../libs/workflow-components/src/SubmissionThread/EntryTypes.js","webpack://@jotforminc/presentations/./src/reducers/appReducer.ts","webpack://@jotforminc/presentations/./src/reducers/presentationReducer.ts","webpack://@jotforminc/presentations/../../libs/branding-footer/src/components/RemoveBrandingFooter.js","webpack://@jotforminc/presentations/../../libs/branding-footer/src/utils/HOCs/withClickOutside.js","webpack://@jotforminc/presentations/../../libs/branding-footer/src/components/constants.js","webpack://@jotforminc/presentations/../../libs/branding-footer/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/branding-footer/src/components/BrandingFooter.js","webpack://@jotforminc/presentations/../../libs/utils/src/data.js","webpack://@jotforminc/presentations/../../libs/utils/src/dom.js","webpack://@jotforminc/presentations/../../libs/editable/src/components/Editable.js","webpack://@jotforminc/presentations/../../libs/report-components/src/constants/fonts.js","webpack://@jotforminc/presentations/../../libs/report-components/src/constants/staticSettings.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Header/Header.js","webpack://@jotforminc/presentations/../../libs/utils/src/htmlTools.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/chartConstants.js","webpack://@jotforminc/presentations/../../libs/report-components/src/constants/commonChartConstants.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/chartFunctions.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartTooltip/PieChartTooltip.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Pie/PieLabel.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Pie/Pie.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Pie/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartTooltip/ChartTooltip.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Bar/CustomizedAxisTick.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Bar/CustomizedLabel.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartTooltip/ChartTooltipList.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Bar/ResponsiveContent.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Bar/Bar.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartTooltip/LineChartTooltip.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Line.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Basic.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Donut.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/TextGrid/TextGridItemRenderer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/TextGrid/TextGrid.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/TextGrid/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Charts/Column.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartLabel.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartPlaceholder.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/EmptyChart.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartLegend/ChartLegendItem.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartLegend/ChartLegend.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartDataList.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/InfoComponentContainer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/Chart.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartContainer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/StaticChart.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Chart/ChartSettings/chartDetails.js","webpack://@jotforminc/presentations/../../libs/search-filter/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/DefaultHeaderRenderer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/GridHeader.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/DefaultFixedCellRenderer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/DefaultCellRenderer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/TableGrid.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/GridHeaderItem.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Text/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/View/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/ViewWithAlignment/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/utils/environment.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Label/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/LabelWithAlignment/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Answer/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/AnswerWithAlignment/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Baseline/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Image/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Address/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/utils/styled.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Appointment/index.js","webpack://@jotforminc/presentations/../../libs/emoji-mart/src/components/EmojiWithoutLazy.js","webpack://@jotforminc/presentations/../../libs/icon-selector/src/components/EmojiRenderer/EmojiRendererWithoutLazy.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/AssigneeLine/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/AssigneeItem/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/constants/schemas.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/AssigneeList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Imageline/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/ImageItem/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/ImageList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/CommaList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/OptionItem/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/OptionList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/OrderedList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Checkbox/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/CheckboxList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/UnorderedList/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/List/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/hocs/SubmissionWidget/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Assignee/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Touchable/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Checkbox/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Datetime/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/constants/specials.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Dropdown/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Hypertext/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Email/index.js","webpack://@jotforminc/presentations/../../libs/upload-fields/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Fileupload/index.js","webpack://@jotforminc/presentations/../../libs/upload-fields/src/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Fullname/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Image/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Imagechoice/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Inline/helpers/utils.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Inline/helpers/getHTMLAnswer.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Line/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Inline/helpers/getListAnswer.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Inline/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Emoji/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/Tableview/index.js","webpack://@jotforminc/presentations/../../libs/utils/src/strings.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/hocs/Matrix/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Matrix/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Mixed/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Number/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Phone/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Radio/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Rating/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Scale/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Sheetbox/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Spinner/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Text/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Textarea/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Textbox/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Time/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Yesno/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Autocomp/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Autoincrement/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Birthdate/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Calculation/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Grading/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Hidden/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Range/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Signature/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Slider/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/MetaWidget/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/editables/Widget/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/utils.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5295b800485bd19f5d000005.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/529467003477f3512000001f.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/533946093c1ad0c45d000070.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/529c8286a75dae5e7f000005.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5297188631357d390700000d.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/55486915347ef1086c000017.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/52961c97e3e5266570000004.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/528ee7cf8d5a5fc76a000004.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5295f8da6396ecd66d00000e.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5290397c57a764425100000b.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/573ae96be567f40178000011.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/52934dbf3be147110a000030.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5343b614d5f416b42a000004.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5379f8c6d6aa823065000009.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5935688a725d1797050002e7.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/5ce54324d21603df40000031.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/302518f9f4744e3ae379dd71.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/CustomWidgets/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Widget/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/ClickOutside/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Payments/StyledComponents.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Payments/PaymentView.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/HtmlRenderer/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Payments/Payment/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Paymentmethods/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Date/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/ID/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/IP/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Submitter/index.js","webpack://@jotforminc/presentations/../../libs/utils/src/color.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/SubmittedVia/index.js","webpack://@jotforminc/presentations/../../libs/integration-constants/src/icons.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/GoogleDriveDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/BoxDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/DropboxDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/OnedriveDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/EgnyteDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/AirtableDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/QuickbooksDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/MondayDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/GoogleSheetsDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/WebhooksV2Details.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/MicrosoftTeamsDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/CampaignMonitorDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/AsanaDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/TrelloDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/SlackDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ClickUpDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ZohoDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/HubspotDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/GoogleCalendarDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ZoomDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/MailerliteDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ConstantContactDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/GetResponseDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/MailchimpDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ActiveCampaignDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/AWeberDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/KeapDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/ZendeskDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/PipedriveDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/SendgridDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/MailsoftlyDetails.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/V1Details.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/partnerDetails/index.ts","webpack://@jotforminc/presentations/../../libs/integration-constants/src/utils/index.tsx","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Thread/ThreadActor.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Thread/ThreadAction.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Thread/ThreadDate.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/Submission/Thread/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/DocumentStatus/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/fields/UserInfo/index.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/commonRenderers/MissingField.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/commonRenderers/getAnswerFieldComponent.js","webpack://@jotforminc/presentations/../../libs/answer-fields/src/components/commonRenderers/makeGetAnswerFieldComponent.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/Cell/ErrorBoundary.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/Cell/cellConstants.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/Cell/cellUtils.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/Cell/Cell.js","webpack://@jotforminc/presentations/../../libs/magnet/src/tokens/colors/primary.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/tokens/colors/secondary.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Button/button.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Button/button.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Indicator/indicator.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Indicator/Indicator.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Indicator/indicator.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Button/ButtonContent.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Loader/loader.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Loader/loader.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Loader/Loader.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/constants/common.values.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Button/Button.tsx","webpack://@jotforminc/presentations/../../libs/uikit/src/utils/constants.js","webpack://@jotforminc/presentations/../../libs/uikit/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PreviewZoomContainer.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Tiff.js","webpack://@jotforminc/presentations/../../libs/preview/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Unsupported.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Audio.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Video.js","webpack://@jotforminc/presentations/../../libs/utils/src/pdfjsworker.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PDF.js","webpack://@jotforminc/presentations/../../libs/preview/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PreviewArea.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PreviewThumbnail.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PreviewFooter.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/PreviewHeader.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/Preview.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/fileUtils.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/NoImageFilePlaceholder.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/ImageFile.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/File.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/FileUpload.js","webpack://@jotforminc/presentations/../../libs/uikit/src/utils/hooks.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/utils/helper.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Portal/index.js","webpack://@jotforminc/presentations/../../libs/tracking/src/utils/FullStoryManager.ts","webpack://@jotforminc/presentations/../../libs/tracking/src/constants/index.ts","webpack://@jotforminc/presentations/../../libs/tracking/src/utils/SentryManager.ts","webpack://@jotforminc/presentations/../../libs/tracking/src/index.ts","webpack://@jotforminc/presentations/../../libs/tracking/src/utils/TrackingManager.ts","webpack://@jotforminc/presentations/../../libs/placeholder/src/PlaceHolder.js","webpack://@jotforminc/presentations/../../libs/placeholder/src/WorkflowStatus.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/api.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/context.js","webpack://@jotforminc/presentations/../../libs/answer-utils/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/answer-utils/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/hocs/index.js","webpack://@jotforminc/presentations/../../libs/preview/src/components/SVG.js","webpack://@jotforminc/presentations/../../libs/fileuploadfield/src/components/FileUploadField/index.js","webpack://@jotforminc/presentations/../../libs/singlesubmissionview/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/singlesubmissionview/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/singlesubmissionview/src/components/ViewItem.js","webpack://@jotforminc/presentations/../../libs/singlesubmissionview/src/components/ViewHeader.js","webpack://@jotforminc/presentations/../../libs/singlesubmissionview/src/components/SingleSubmissionView.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/FormName.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/helper.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/DownloadButton.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/ViewInInboxButton.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/CustomName.js","webpack://@jotforminc/presentations/../../libs/single-submission-buttons/src/SingleSubmissionViewWithButton.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/ApprovalOptions.js","webpack://@jotforminc/presentations/../../libs/tooltip/src/components/index.js","webpack://@jotforminc/presentations/../../libs/avatar-groups/src/components/SingleAvatar.js","webpack://@jotforminc/presentations/../../libs/avatar-groups/src/components/SingleAvatarWithDetails.js","webpack://@jotforminc/presentations/../../libs/avatar-groups/src/components/AvatarGroup.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Popover/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/AvatarGroupWithContact.js","webpack://@jotforminc/presentations/../../libs/right-panel/src/index.tsx","webpack://@jotforminc/presentations/../../libs/collapse/src/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Modal/index.js","webpack://@jotforminc/presentations/../../libs/styled-modal/src/components/StyledModal/styled.js","webpack://@jotforminc/presentations/../../libs/styled-modal/src/components/StyledModal/index.js","webpack://@jotforminc/presentations/../../libs/signature/src/sc/scSignature.js","webpack://@jotforminc/presentations/../../libs/signature/src/helpers/utils.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/TypingArea.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/ColorSelection.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Button/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Option/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/OptionGroup/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/TextInput/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/Dropdown/index.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/FontSelection.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/Button.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/Signature.js","webpack://@jotforminc/presentations/../../libs/constants/src/date/index.js","webpack://@jotforminc/presentations/../../libs/short-date/src/index.js","webpack://@jotforminc/presentations/../../libs/short-date/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/UserAccount.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/constants/texts.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/Comment.js","webpack://@jotforminc/presentations/../../libs/loading/src/components/Loading.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/Outcome.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/SubmissionThread/scModal.js","webpack://@jotforminc/presentations/../../libs/email-wizards/src/components/Dropdown/index.js","webpack://@jotforminc/presentations/../../libs/email-wizards/src/components/EmailDropdown/index.js","webpack://@jotforminc/presentations/../../libs/constants/src/questions/index.js","webpack://@jotforminc/presentations/../../libs/utils/src/questions.js","webpack://@jotforminc/presentations/../../libs/constants/src/email/index.js","webpack://@jotforminc/presentations/../../libs/utils/src/validation.js","webpack://@jotforminc/presentations/../../libs/utils/src/emailUtils.js","webpack://@jotforminc/presentations/../../libs/search-input/src/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/SelectionGroup/index.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/SelectionGroup.js","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Checkbox/checkbox.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/contexts/index.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/utils/index.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Checkbox/checkbox.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/shared/ChoiceLabel/choice-label.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/shared/ChoiceLabel/ChoiceLabel.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/shared/ChoiceLabel/choice-label.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Checkbox/Checkbox.tsx","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/ProtectedTag.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/EncryptedTag.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/Option.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/MultipleForms.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/components/SingleForm.js","webpack://@jotforminc/presentations/../../libs/form-fields-menu/src/index.js","webpack://@jotforminc/presentations/../../libs/user-list/src/styles/index.js","webpack://@jotforminc/presentations/../../libs/user-list/src/index.js","webpack://@jotforminc/presentations/../../libs/tag-input/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/tag-input/src/patch/index.js","webpack://@jotforminc/presentations/../../libs/tag-input/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/tag-input/src/index.js","webpack://@jotforminc/presentations/../../libs/single-email-input/src/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/api/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/IndependentReassign.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/Reassign.new.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/hooks/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/constants/propTypes.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/sections/Task.js","webpack://@jotforminc/presentations/../../libs/utils/src/time.js","webpack://@jotforminc/presentations/../../libs/constants/src/propTypes/index.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/contexts/Workflow.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/containers/TaskSection.js","webpack://@jotforminc/presentations/../../libs/signature/src/components/AsyncModalWrapper.js","webpack://@jotforminc/presentations/../../libs/dialog/src/components/Dialog.js","webpack://@jotforminc/presentations/../../libs/button-field/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/button-field/src/components/ButtonField.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/ActionButton.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/MoreButton.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/AvatarWithApprovalAction.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/HiddenFrame/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/DragContainer/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/Text.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/Form.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/ErrorText.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/FileInput.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/FilePreview.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/TextWrapper.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/Thumbnail.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/LoadingScreen.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/Wrapper.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/FileUpload/defaults/DragContainer.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/components/TabListContainer.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/components/TabButtonContainer.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/TabListWithStyles.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/components/Wrapper.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/components/TabButton.js","webpack://@jotforminc/presentations/../../libs/magnet/src/components/FormControl/form-control.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/FormControl/FormControl.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Input/input.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/ColorPicker/color-picker.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Input/input.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/constants/common.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Input/BaseInput.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Input/InputText.tsx","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Textarea/textarea.cva.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Textarea/textarea.types.ts","webpack://@jotforminc/presentations/../../libs/magnet/src/components/Textarea/Textarea.tsx","webpack://@jotforminc/presentations/../../libs/safe-lazy-import/src/components/ErrorPage.js","webpack://@jotforminc/presentations/../../libs/safe-lazy-import/src/utils/safeLazy.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/components/IconSelector.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/components/UploadedImagesPanel.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/components/ImagePreview.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/utils/index.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/actions/index.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/components/ImageUpload.js","webpack://@jotforminc/presentations/../../libs/image-upload/src/components/LoadingScreen.js","webpack://@jotforminc/presentations/../../libs/emoji-mart/src/components/Picker.js","webpack://@jotforminc/presentations/../../libs/icon-selector/src/components/IconEmojiSelector/index.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/ColorPicker/defaults/Color.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/ColorPicker/defaults/Wrapper.js","webpack://@jotforminc/presentations/../../libs/uikit/src/components/ColorPicker/index.js","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/utils/api.ts","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/api.ts","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/utils/index.ts","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/utils.ts","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/ColorRenderer.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/constants.ts","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/StyledElements.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/CustomizeTeamAvatar.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/CustomizeCover.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Cover/CustomizationButton.tsx","webpack://@jotforminc/presentations/../../libs/emoji-mart/src/components/Emoji.js","webpack://@jotforminc/presentations/../../libs/icon-selector/src/components/EmojiRenderer/index.js","webpack://@jotforminc/presentations/../../libs/icon-selector/src/components/SVGIcon/index.js","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Image/StyledElements.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Image/index.tsx","webpack://@jotforminc/presentations/../../libs/enterprise-components/src/components/Image/ImageWithWrapper.tsx","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/TeamImageWithWrapper.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/WorkflowInformationPanel.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/AvatarGroupWithPanel.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/ThreadAvatar.js","webpack://@jotforminc/presentations/../../libs/workflow-components/src/components/WorkflowStatus.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/WorkflowStatusAnswer.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/GridCell.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/FileUpload/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/Cell/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/GridFixedCell.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/sheetUtils.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/Sheet.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/TableGrid/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/sheetConstants.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/StaticSheet.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Sheet/sheetDetails.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Icon/Icon.js","webpack://@jotforminc/presentations/./src/constants/app.ts","webpack://@jotforminc/presentations/./src/utils/report.ts","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Header/index.js","webpack://@jotforminc/presentations/../../libs/report-components/src/components/Icon/index.js","webpack://@jotforminc/presentations/./src/constants/api.ts","webpack://@jotforminc/presentations/./src/constants/actions.ts","webpack://@jotforminc/presentations/./src/utils/itemAccessor.ts","webpack://@jotforminc/presentations/./src/utils/hooks.ts","webpack://@jotforminc/presentations/./src/components/PresentationRenderer.tsx","webpack://@jotforminc/presentations/./src/api/index.ts","webpack://@jotforminc/presentations/./src/components/LoadingScreen.tsx","webpack://@jotforminc/presentations/./src/containers/PresentationContainer.tsx","webpack://@jotforminc/presentations/./src/actions/submissionsActions.ts","webpack://@jotforminc/presentations/./src/reducers/submissionsReducer.ts","webpack://@jotforminc/presentations/./src/utils/sanitizeChartData.ts","webpack://@jotforminc/presentations/./src/reducers/questionsReducer.ts","webpack://@jotforminc/presentations/./src/reducers/index.ts","webpack://@jotforminc/presentations/./src/sagas/submissionsSaga.ts","webpack://@jotforminc/presentations/./src/store.ts","webpack://@jotforminc/presentations/./src/sagas/index.ts","webpack://@jotforminc/presentations/./src/index.js","webpack://@jotforminc/presentations/../../libs/enterprise-utils/src/helpers.js","webpack://@jotforminc/presentations/../../libs/utils/src/moment.js","webpack://@jotforminc/presentations/../../libs/hooks/src/index.js","webpack://@jotforminc/presentations/../../libs/router-bridge/src/jfrouter.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/Tab.js","webpack://@jotforminc/presentations/../../libs/tabs/src/tab-list/TabList.js","webpack://@jotforminc/presentations/../../libs/translation/src/hof.js","webpack://@jotforminc/presentations/../../libs/translation/src/domHelper.js","webpack://@jotforminc/presentations/../../libs/translation/src/Translation.js","webpack://@jotforminc/presentations/../../libs/translation/src/constants/index.js","webpack://@jotforminc/presentations/../../libs/translation/src/utils.js","webpack://@jotforminc/presentations/../../libs/translation/src/index.js","webpack://@jotforminc/presentations/../../libs/translation/src/global.js","webpack://@jotforminc/presentations/../../libs/constants/src/platforms/index.js","webpack://@jotforminc/presentations/../../libs/feature-flag/src/components/FeatureFlag/FeatureFlag.js","webpack://@jotforminc/presentations/../../libs/utils/src/platform/platform.js","webpack://@jotforminc/presentations/../../libs/request-layer/src/request-cache/constants.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/request-cache/utils.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/request-cache/index.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/utils/argumentParser.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/utils/constructInterceptorConfig.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/index.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/index.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/utils.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/platform/salesforceInterceptors.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/defaultInterceptors.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/utils/setInterceptors.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/engines/utils.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/engines/constants.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/engines/AxiosEngine.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/utils.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/index.ts","webpack://@jotforminc/presentations/../../libs/request-layer/src/layer/interceptors/customInterceptors/index.ts"],"sourcesContent":["const { window } = global;\n\nconst getSheetsDSN = () => {\n if (window?.isReport) {\n return 'https://d69c7dc71f6243c19aa8f1466c32ab5c@o61806.ingest.sentry.io/5352078';\n }\n\n if (window?.isBoards) {\n return 'https://983ae60052ddc6cf8a60dca2bfaa3b8c@o61806.ingest.sentry.io/4507571577749504';\n }\n\n // Sheets\n return 'https://23de99eacf6c4a068ba11e1a39556e6a@o61806.ingest.sentry.io/1211430';\n};\n\nconst getFSEnabledForSignFiller = () => {\n try {\n return window?.parent?.fsEnabled;\n } catch (e) {\n return false;\n }\n};\n\nmodule.exports = {\n academy: {\n sentry: {\n enable: true,\n dsn: 'https://e21856d505644c643840103d8dbd250c@o61806.ingest.sentry.io/4506626385641472'\n // name: 'academy',\n }\n },\n checkout: {\n sentry: {\n enable: true,\n dsn: 'https://ca58c76e1157458f941020590eab787c@o61806.ingest.sentry.io/4505396476641280'\n },\n fullStory: {\n enable: true\n }\n },\n 'data-dashboards': {\n sentry: {\n enable: true,\n dsn: 'https://64a93c3dc440e48a9118dc2c169351ef@o61806.ingest.us.sentry.io/4507407451160576'\n }\n },\n 'email-builder': {\n sentry: {\n enable: true,\n dsn: 'https://6625f7b197c65a4d8e49bc8e7641c8c2@o61806.ingest.us.sentry.io/4507407576465408'\n }\n },\n 'email-details': {\n sentry: {\n enable: true,\n dsn: 'https://e0a74287bf15c46b981ddad77de5d7d7@o61806.ingest.sentry.io/4505822059823104'\n },\n fullStory: {\n enable: false\n }\n },\n 'form-builder': {\n sentry: {\n enable: true,\n dsn: 'https://7b39e767f39941dd89d9361cf50382dd@o61806.ingest.sentry.io/132624',\n name: 'jotform-40'\n }\n },\n inbox: {\n sentry: {\n enable: true,\n dsn: 'https://f5fc3cd88f0744df9e3c8a263cd00db1@o61806.ingest.sentry.io/1353659'\n // name: 'inbox'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n 'interview-management': {\n sentry: {\n enable: true,\n dsn: 'https://f875f9d7646f4149a6bfff821534e23b@o61806.ingest.sentry.io/4504971807162368'\n }\n },\n listings: {\n sentry: {\n enable: true,\n dsn: 'https://2c715cb8ed4745c383ff6830ca885807@o61806.ingest.sentry.io/5975209',\n name: 'listings'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n myaccount: {\n sentry: {\n enable: true,\n dsn: 'https://4048665e726d45eba296f250ad4d09bb@o61806.ingest.sentry.io/6396369'\n // name: 'myaccountv4'\n },\n fullStory: {\n enable: window?.fullstoryEnabled\n }\n },\n 'page-builder': {\n sentry: {\n enable: true,\n dsn: 'https://727c1f481e28485a97e8a4ddae1bdaab@o61806.ingest.sentry.io/6179928'\n // name: 'landing-builder'\n }\n },\n 'pdf-editor': {\n sentry: {\n enable: window?.location.href.indexOf('download') < 0,\n dsn: 'https://10dcd48960b74f9e84c93bee96ee2c9e@o61806.ingest.sentry.io/1234288'\n // name: 'pdf-designer'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n portal: {\n sentry: {\n enable: true,\n dsn: 'https://36d29a013f8a4bd7adfe310f5fe4d75a@o61806.ingest.sentry.io/5223511',\n name: 'app-builder'\n },\n fullStory: {\n enable: window?.fullStoryActiveForPortal\n }\n },\n 'refund-request': {\n sentry: {\n enable: true,\n dsn: 'https://c2bf244d1db8d74e25fafaf1b8f70747@o61806.ingest.sentry.io/4505786346110976'\n },\n fullStory: {\n enable: true\n }\n },\n sheets: {\n sentry: {\n enable: true,\n dsn: getSheetsDSN()\n // name: ['reports', 'spreadsheets']\n }\n },\n sign: {\n sentry: {\n enable: true,\n dsn: 'https://9b0abbc9280c47c683b8a9067f61e88e@o61806.ingest.sentry.io/5680940'\n // name: 'sign'\n },\n fullStory: {\n enable: window?.fsEnabled\n }\n },\n 'sign-filler': {\n sentry: {\n enable: true,\n dsn: 'https://1e23807c9020c755e635a09392e97b22@o61806.ingest.us.sentry.io/4507339316985856'\n },\n fullStory: {\n enable: getFSEnabledForSignFiller()\n }\n },\n 'subscription-dashboard': {\n sentry: {\n enable: true,\n dsn: 'https://75f5c88aeffd4f54964275c0fba96d59@o61806.ingest.sentry.io/6190171'\n // name: 'subscription-dashboard'\n }\n },\n workflow: {\n sentry: {\n enable: true,\n dsn: 'https://15571fc5437e4368b4e2ed0e32c6d93f@o61806.ingest.sentry.io/5261296'\n // name: 'workflow'\n },\n fullStory: {\n enable: !window?.isTemplateMode\n }\n },\n 'ai-agent': {\n sentry: {\n enable: true,\n dsn: 'https://9595e22b6185cd8e2ff3ea2fc28cc68f@o61806.ingest.us.sentry.io/4507502561001472',\n name: 'ai-agent'\n }\n },\n 'ai-agent-builder': {\n sentry: {\n enable: true,\n dsn: 'https://59098a0cef7524a00cbc88db5b10e2f5@o61806.ingest.us.sentry.io/4507883422875648'\n },\n fullStory: {\n enable: window?.fsEnabled\n }\n }\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Hammer from 'hammerjs';\nimport Draggable from 'react-draggable';\n\nimport PreviewZoomContainer from './PreviewZoomContainer';\n\nconst zoomX = 10;\nconst zoomMax = 200;\nconst zoomMin = 10;\nconst defaultImageStyle = {\n display: 'none'\n};\nconst checkSmallResolution = 840;\nlet checkImageHeight;\nlet checkImageWidth;\nlet browserWidth;\nlet zoomImage = false;\nconst zoomValue = 50;\nlet latestTap;\n\nclass Image extends Component {\n constructor(props) {\n super(props);\n this.image = React.createRef();\n this.imageLoaded = this.imageLoaded.bind(this);\n this.handleZoomIn = this.handleZoom.bind(this, 'in', false);\n this.handleZoomOut = this.handleZoom.bind(this, 'out', false);\n this.handleZoomInWithPercentage = this.handleZoom.bind(this, 'in', true);\n this.handleZoomOutWithPercentage = this.handleZoom.bind(this, 'out', true);\n this.handleDoubleTap = this.handleDoubleTap.bind(this);\n\n this.state = {\n initialPosition: true,\n axis: 'none',\n render: false,\n percentage: 0,\n imageStyle: defaultImageStyle\n };\n }\n\n componentDidMount() {\n checkImageHeight = window.innerHeight - (window.innerWidth > checkSmallResolution ? 260 : 20);\n checkImageWidth = window.innerWidth - (window.innerWidth > checkSmallResolution ? 80 : 10);\n browserWidth = window.innerWidth;\n if (this.image.current) {\n this.hammer = Hammer(this.image.current);\n this.hammer.on('tap', this.handleDoubleTap);\n }\n }\n\n componentWillUnmount() {\n this.hammer.off('tap', this.handleDoubleTap);\n }\n\n handleDoubleTap() {\n const now = new Date().getTime();\n const timesince = now - latestTap;\n if ((timesince < 500) && (timesince > 0)) {\n if (!zoomImage) {\n zoomImage = true;\n this.setState(prevState => ({ percentage: prevState.percentage + zoomValue }), this.handleZoomInWithPercentage);\n } else {\n zoomImage = false;\n this.setState(prevState => ({ percentage: prevState.percentage - zoomValue }), this.handleZoomOutWithPercentage);\n }\n }\n latestTap = new Date().getTime();\n }\n\n handleAxis(width, height) {\n let axisValue = 'none';\n if (width >= browserWidth && height >= checkImageHeight) {\n axisValue = 'both';\n } else if (width >= browserWidth) {\n axisValue = 'x';\n } else if (height >= checkImageHeight) {\n axisValue = 'y';\n }\n if (axisValue !== 'none') {\n this.setState({\n bounds: {\n left: -((width - browserWidth) / 2),\n top: -((height - checkImageHeight) / 2),\n right: (width - browserWidth) / 2,\n bottom: ((height - checkImageHeight) / 2)\n }\n });\n }\n return axisValue;\n }\n\n handleZoom(type, initialPercentage = false) {\n const { percentage } = this.state;\n const {\n naturalHeight, naturalWidth\n } = this.image.current;\n let nextPercentage;\n if (!initialPercentage) {\n if (type === 'in') {\n nextPercentage = Math.ceil((percentage + 1) / zoomX) * zoomX;\n if (nextPercentage > zoomMax) return false;\n } else {\n nextPercentage = Math.floor((percentage - 1) / zoomX) * zoomX;\n if (nextPercentage < zoomMin) return false;\n }\n } else {\n nextPercentage = percentage;\n }\n\n const newCalculationForWidth = (naturalWidth / 100) * nextPercentage;\n const newCalculationForHeight = (naturalHeight / 100) * nextPercentage;\n\n this.setState({\n initialPosition: nextPercentage < percentage,\n percentage: nextPercentage,\n imageStyle: {\n maxWidth: 'none',\n maxHeight: 'none',\n transform: type !== 'in' && 'translate(0,0)',\n width: `${newCalculationForWidth}px`,\n height: `${newCalculationForHeight}px`,\n left: `calc(50% - ${(newCalculationForWidth / 2)}px)`,\n top: `calc(50% - ${(newCalculationForHeight / 2)}px)`\n }\n }, () => {\n this.setState({ axis: this.handleAxis(newCalculationForWidth, newCalculationForHeight) });\n });\n\n if (initialPercentage) {\n this.setState({ render: true });\n }\n }\n\n imageLoaded() {\n const { width: currentWidth, naturalWidth, height: currentHeight } = this.image.current;\n const heightForRecursive = currentHeight;\n const widthForRecursive = currentWidth;\n let percentage = Math.floor((currentWidth * 100) / naturalWidth);\n let isBiggerImage = false;\n if (heightForRecursive > checkImageHeight || widthForRecursive > checkImageWidth) {\n isBiggerImage = true;\n const heightRatio = checkImageHeight / currentHeight;\n const widthRatio = checkImageWidth / currentWidth;\n percentage = Math.floor(Math.min(heightRatio, widthRatio) * 100);\n }\n if (isBiggerImage) {\n this.setState({ percentage }, () => this.handleZoom('out', true));\n } else {\n this.setState({\n percentage,\n render: true,\n imageStyle: {\n maxWidth: 'none',\n maxHeight: 'none',\n width: `${currentWidth}px`,\n height: `${currentHeight}px`,\n left: `calc(50% - ${currentWidth / 2}px)`,\n top: `calc(50% - ${currentHeight / 2}px)`,\n display: 'block'\n }\n });\n }\n }\n\n render() {\n const { file } = this.props;\n const {\n imageStyle, render, axis, bounds, initialPosition, percentage\n } = this.state;\n const resetPosition = { x: 0, y: 0 };\n\n return (\n <>\n \n \n \n {render && }\n \n );\n }\n}\n\nImage.propTypes = {\n file: PropTypes.shape({\n previewUrl: PropTypes.string\n }).isRequired\n};\n\nexport default Image;\n","import { getBaseURL, getEnv } from '@jotforminc/router-bridge';\nimport { t } from '@jotforminc/translation';\nimport { handleCustomNavigation } from './platform';\nimport { getUrlParameter } from './data';\n\nexport const shortenString = (str, maxLength = 15) => {\n const sanitizedString = str.replace(/(<([^>]+)>)/ig, '');\n return (\n sanitizedString.length > maxLength\n ? `${sanitizedString.substring(0, maxLength - 2)}...`\n : sanitizedString\n );\n};\n\nexport const getTextForDuplicate = ({\n list,\n count = 1,\n text = '',\n baseKey = 'text'\n}) => {\n const isExists = list.find(({ [baseKey]: tmpText }) => tmpText === text);\n if (!isExists) {\n return text;\n }\n\n const textParts = text.split('_');\n const originalText = textParts.length === 1 ? textParts[0] : textParts.slice(0, -1).join('_');\n return getTextForDuplicate({\n list,\n baseKey,\n count: count + 1,\n text: `${originalText}_${count}`\n });\n};\n\nexport const tagDuplicateProperty = baseKey => values => {\n const sanitizedValues = Array.isArray(values) ? values : [];\n const updatedValues = sanitizedValues.reduce((list, property = {}) => {\n const text = property[baseKey];\n\n if (text === undefined) {\n return [...list, property];\n }\n\n const newText = getTextForDuplicate({ list, baseKey, text });\n const updatedProperty = { ...property, [baseKey]: newText };\n return [...list, updatedProperty];\n }, []);\n return updatedValues;\n};\n\nfunction getRandomColor() {\n const letters = '0123456789ABCDEF';\n let color = '#';\n for (let i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n}\n\nconst defaultPalette = [\n '#007862',\n '#F46A00',\n '#047C9E',\n '#0876DB',\n '#00871E',\n '#363E76',\n '#656A9B',\n '#69E8AB',\n '#7553A3',\n '#9A674A',\n '#B0ECFF',\n '#B94B9A',\n '#C1FCF1',\n '#C7DF68',\n '#CE1F73',\n '#D1DEE2',\n '#DCC2FF',\n '#DD304C',\n '#DEE1FF',\n '#E2D1D1',\n '#FDC1CA',\n '#FFCDFA',\n '#FFD6BC',\n '#FFE195'\n];\n\nexport const colorifyFormArray = (formArray, palette = defaultPalette) => {\n return formArray.map((formObj, i) => {\n const color = palette[i] ? palette[i] : getRandomColor();\n return { ...formObj, color: formObj.color || color };\n });\n};\n\nexport const formatBytes = (bytes, decimals = 2) => {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;\n};\n\nexport const isBright = sourceColor => {\n if (sourceColor && sourceColor.length > 0) {\n const color = (sourceColor.charAt(0) === '#') ? sourceColor.substring(1, 7) : sourceColor;\n const r = parseInt(color.substring(0, 2), 16); // hexToR\n const g = parseInt(color.substring(2, 4), 16); // hexToG\n const b = parseInt(color.substring(4, 6), 16); // hexToB\n return (((r * 0.299) + (g * 0.587) + (b * 0.114)) > 186);\n }\n return false;\n};\n\n/**\n * This function creates an object with keys given in array of string type\n * and makes the defaultValue parameter the value of all keys.\n */\nexport const createObjectWithKeys = (keys, defaultValue = true) => keys.reduce((accumulatorObject, key) => ({ ...accumulatorObject, [key]: defaultValue }), {});\n\nexport const filterObjectKeysByValue = (obj, value = true) => Object.keys(obj).filter(key => obj[key] === value);\n\nexport const getAccountTypeName = user => {\n if (user.accountType) {\n return user.accountType;\n }\n return user?.account_type?.name;\n};\n\nexport const classNames = (...arr) => arr.flat().filter(Boolean).join(' ');\n\nexport const handleRedirect = formID => {\n const integrationParam = getUrlParameter('integration');\n\n handleCustomNavigation(`/sign/${formID}${integrationParam.length > 0 ? `/settings/integrations?integration=${integrationParam}` : ''}`, '_self');\n};\n\nexport const generateSessionLink = (sessionID, token, formID) => {\n const pathnameClean = window.location.pathname.replace(/^\\/|(?:(?=[&?]).*$)/g, '');\n if (window?.JFAppsManager?.isOpenedInPortal() && !window?.JFAppsManager?.isProductListForm) {\n return window.JFAppsManager.generateAppContinueLink(sessionID, token, formID);\n }\n return `${window.location.origin}/${pathnameClean}?session=${sessionID}&stoken=${token}`;\n};\n\nexport const generateUniqueID = () => (Math.random().toString(36).substring(2));\n\nexport const openInNewTab = (url, target = '_blank') => {\n handleCustomNavigation(url, target, 'noopener,noreferrer');\n};\n\nexport const handlePublishPRLink = originalLink => {\n const regex = /https:\\/\\/(?:www\\.)?jotform\\.ooo(?:\\/PR\\/(\\d+))?\\/build\\/(\\d+)(\\/publish)?/;\n const match = originalLink.match(regex);\n\n if (match) {\n const prNumber = match[1];\n const buildNumber = match[2];\n\n const newLink = prNumber ? `https://www.jotform.ooo/PR/${prNumber}/${buildNumber}` : `https://www.jotform.ooo/${buildNumber}`;\n return newLink;\n }\n\n return null;\n};\n\nexport const isUserAllowedView = credentials => {\n const { account_type: { name } = {} } = credentials || {};\n const allowedUsers = ['ADMIN', 'SUPPORT'];\n\n if (allowedUsers.indexOf(name) > -1) return true;\n return false;\n};\n\nexport const redirectToLoginPage = () => {\n window.location.href = `${getBaseURL()}/login`;\n};\n\nexport const isProduction = () => {\n return getEnv() === 'PRODUCTION' || window.JOTFORM_ENV === 'PRODUCTION';\n};\n\nfunction numberFormat(number, decimals, decPoint, thousandsSep) {\n const n = number;\n const prec = decimals;\n const toFixedFix = (num, _prec) => {\n const k = 10 ** _prec;\n return (Math.round(num * k) / k).toString();\n };\n // n = !isFinite(+n) ? 0 : +n;\n // prec = !isFinite(+prec) ? 0 : Math.abs(prec);\n const sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep;\n const dec = (typeof decPoint === 'undefined') ? '.' : decPoint;\n let s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec);\n const abs = toFixedFix(Math.abs(n), prec);\n let _; let i;\n if (abs >= 1000) {\n _ = abs.split(/\\D/);\n i = _[0].length % 3 || 3;\n _[0] = s.slice(0, i + (n < 0)) + _[0].slice(i).replace(/(\\d{3})/g, `${sep}$1`);\n s = _.join(dec);\n } else {\n s = s.replace('.', dec);\n }\n\n if (+s > 0) {\n if (s.indexOf(dec) === -1 && prec > 1) {\n const preca = [];\n preca[prec - 1] = undefined;\n s += `${dec} ${preca.join(0)} 0`;\n } else if (s.indexOf(dec) === s.length - 2) { // incorrect: 2.7, correct: 2.70\n s += '0';\n }\n }\n return s;\n}\n\nexport const bytesToHuman = octets => {\n const units = ['B', 'kB', 'MB', 'GB', 'TB']; // ...etc\n let i = 0;\n let size = octets;\n for (i = 0; size > 1024; size /= 1024) { i++; }\n return numberFormat(size, 1) + units[Math.min(i, units.length - 1)];\n};\n\nexport const saveBlobAsFile = (blob, fileName) => {\n // For ie and edge, use native msSaveOrOpenBlob method instead of dummy anchor and click\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(blob, fileName);\n } else if (window.URL.createObjectURL) {\n const link = document.createElement('a');\n const blobURL = window.URL.createObjectURL(blob);\n link.href = blobURL;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(blobURL);\n }\n};\n\n/**\n * When send a GET request to a PDF file url which has nc query parameter with value 1,\n * Content-Disposition in response header's value becomes 'inline'\n * and this behaviour causes to open file in the current tab\n * To have the downloaded file as an attachment,\n * we should convert the url to a blob and download this blob.\n * @param {string} fileURL\n * @param {function} callback\n */\nexport const downloadPDFCheckingNoCache = async (fileURL, callback = f => f) => {\n const contentURL = new window.URL(fileURL);\n const { searchParams, pathname } = contentURL;\n const hasNoChacheFlag = searchParams.get('nc') === '1';\n if (hasNoChacheFlag) {\n const fileResponse = await fetch(contentURL.href);\n const blob = await fileResponse.blob();\n const paths = pathname.split('/');\n const filename = paths[paths.length - 1];\n saveBlobAsFile(blob, filename);\n } else {\n callback();\n }\n};\n\nexport const sleep = ms => {\n return new Promise(resolve => setTimeout(resolve, ms));\n};\n\nexport const encodeURLs = context => {\n const urlRegex = /\"https?:\\/\\/(.*?)\"/g;\n return context.replace(urlRegex, (_, url) => `\"https://${encodeURI(url)}\"`);\n};\n\nexport const getDimensionsAndPosition = node => {\n const rect = node.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left\n };\n};\nexport const openSocialMediaPopup = (url, callback) => {\n if (!url) return;\n\n const w = (window.innerWidth || window.screen.width) / 2;\n const h = (window.innerHeight || window.screen.height) / 2;\n let y = window.outerHeight / 2 + window.screenY - h / 2;\n let x = window.outerWidth / 2 + window.screenX - w / 2;\n try {\n y = window.top.outerHeight / 2 + window.top.screenY - h / 2;\n x = window.top.outerWidth / 2 + window.top.screenX - w / 2;\n } catch (err) {\n // error accessing to cross origin frame. Do nothing.\n }\n\n handleCustomNavigation(url, '_blank', true, `toolbar=0,location=0,menubar=0,width=${w},height=${h},top=${y},left=${x}`);\n\n if (typeof callback === 'function') {\n callback();\n }\n};\n\nexport const getMissingPDFAttachmentMessage = (availablePDFIDs = [], currentSelectedPDFIDs = []) => {\n const diff = currentSelectedPDFIDs.filter(id => !availablePDFIDs.includes(id));\n if (diff.length) {\n if (diff.length > 1) {\n return t('Attached documents are missing.');\n }\n return t('Attached document is missing.');\n }\n};\n\nexport const doesTargetLinkContainsProtocol = targetURL => {\n const protocolRegex = /^(https|http|ftp|tel|mailto|ms-excel):\\/\\//gi;\n return protocolRegex.test(targetURL);\n};\n\nexport const checkAndAddProtocolToTargetLink = targetURL => {\n if (!doesTargetLinkContainsProtocol(targetURL)) return `https://${targetURL}`;\n\n return targetURL;\n};\n","import type { SVGProps, ReactSVGElement } from 'react';\n/**\n * Enums :: START\n */\nexport enum AUTH_METHODS {\n OAUTH = 'oauth',\n API_KEY = 'api_key',\n CUSTOM = 'CUSTOM'\n}\n\nexport enum PARTNER_NAMES {\n QUICKBOOKS = 'quickbooks',\n AIRTABLE = 'airtable',\n GOOGLE_DRIVE = 'google-drive',\n BOX = 'box',\n ONEDRIVE = 'onedrive',\n DROPBOX = 'dropbox',\n ASANA = 'asana',\n TRELLO = 'trello',\n MONDAY = 'monday',\n CLICKUP = 'clickup',\n EGNYTE = 'egnyte',\n GOOGLE_SHEETS_V2 = 'google-sheetsV2',\n WEBHOOKSV2 = 'webhooksV2',\n SLACK = 'slack',\n MICROSOFT_TEAMS = 'microsoft-teams',\n CAMPAIGN_MONITOR = 'campaign-monitor',\n ZOHO_CRM = 'zoho-crm',\n HUBSPOT = 'hubspot',\n GOOGLE_CALENDAR = 'google-calendar',\n ZOOM = 'zoom',\n MAILERLITE = 'mailerlite',\n CONSTANT_CONTACTV2 = 'constantContactV2',\n GETRESPONSE = 'getresponse',\n MAILCHIMP = 'mailchimp',\n ACTIVE_CAMPAIGN = 'activecampaign',\n AWEBER = 'aweber',\n KEAP = 'keap',\n ZENDESK = 'zendesk',\n PIPEDRIVE = 'pipedrive',\n SENDGRID = 'sendgrid',\n MAILSOFTLY = 'mailsoftly'\n}\n\nexport enum PARTNER_NAMES_V1 {\n GOOGLE_CALENDAR = 'googleCalendar',\n WEBHOOKS = 'webhooks',\n MONDAY = 'mondayCom',\n SALESFORCEV2 = 'salesforceV2',\n FTP = 'FTP',\n BOX = 'boxnet',\n CAMPAIGN_MONITOR = 'campaignMonitor',\n ICONTACT = 'iContact',\n MADMIMI = 'madMimi',\n HIGHRISE = 'highRise',\n SOLVE360 = 'solve360',\n ZOHOCRMV2 = 'zohoCrmV2',\n INSIGHTLY = 'insightlyCrm',\n CALLINGLY = 'callingly',\n SENDGRID = 'sendGrid',\n VERTICAL_RESPONSE = 'verticalResponse',\n INFUSIONSOFT = 'infusionsoft',\n ZAPIER = 'zapier',\n XZAZU = 'xzazu',\n ACTIVE_CAMPAIGN = 'activeCampaign',\n PAYMO = 'paymo',\n GOOGLE_SHEETS = 'google-sheets',\n BOXSIGN = 'box-sign',\n MAILCHIMP = 'mailChimp'\n}\n\nexport enum RESOURCE_TYPE {\n FORM = 'form',\n SIGN = 'sign',\n SHEET_FORM = 'sheet_form',\n WORKFLOW = 'workflow'\n}\n\nexport enum INTEGRATION_ACTION_TYPES {\n SEND_SUBMISSION_FILES = 'SendSubmissionFiles',\n CREATE_ACCOUNT = 'CreateAccount',\n CREATE_RECORD = 'CreateRecord',\n CREATE_CUSTOMER = 'CreateCustomer',\n CREATE_INVOICE = 'CreateInvoice',\n CREATE_ITEM = 'CreateItem',\n CREATE_UPDATE = 'CreateUpdate',\n CREATE_TASK = 'CreateTask',\n CREATE_SUBTASK = 'CreateSubTask',\n CREATE_SECTION = 'CreateSection',\n CREATE_PROJECT = 'CreateProject',\n CREATE_TASK_COMMENT = 'CreateTaskComment',\n CREATE_CARD = 'CreateCard',\n UPDATE_CARD = 'UpdateCard',\n ADD_SUBSCRIBER = 'AddSubscriber',\n CREATE_SPREADSHEET = 'SendSubmissionData',\n EXISTING_SPREADSHEET = 'SendSubmissionDataToExistingSheet',\n SEND_SUBMISSION_DATA = 'SendSubmissionData',\n PUBLIC_CHANNEL = 'SendMessagePublicChannel',\n PRIVATE_CHANNEL = 'SendMessagePrivateChannel',\n PRIVATE_MESSAGE = 'SendPrivateMessage',\n CREATE_EVENT = 'CreateEvent',\n CREATE_CONTACT = 'CreateContact',\n CREATE_DEAL = 'CreateDeal',\n CREATE_TICKET = 'CreateTicket',\n CREATE_COMPANY = 'CreateCompany',\n CREATE_EVENT_WITH_MEETING = 'CreateEventWithMeeting',\n SEND_DATA_BY_FORMDATA = 'SendDataByFormData',\n ADD_REGISTRANT = 'AddRegistrant',\n ADD_REGISTRANT_TO_WEBINAR = 'AddRegistrantToWebinar',\n CREATE_MEETING = 'CreateMeeting',\n CREATE_PERSON = 'CreatePerson',\n CREATE_ACTIVITY = 'CreateActivity'\n}\n\n/**\n * Enum :: END\n */\n\nexport type INTEGRATION_ACTION_DETAILS_TYPE = {\n text: string,\n value: string,\n description?: string,\n allowedResources?: Array\n};\n\nexport interface I_PARTNER_RAW_DETAILS {\n text: string,\n guideURL: string,\n icon: (props: SVGProps) => ReactSVGElement,\n logoURL: string,\n actions: Array,\n description: Partial>,\n shortDescription: Partial>,\n authMethod: AUTH_METHODS,\n guideURLText?: string\n url?: string,\n hipaaCompliance?: boolean,\n actionLimit?: number,\n betaIntegration?: boolean,\n accountFetcherParams?: Record,\n authParameters?: Array,\n customApiKey?: string\n}\n\nexport interface I_PARTNER_DETAILS extends Omit {\n description: string,\n shortDescription: string\n}\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgJotform21Logo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 123 22\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M85.6679 16.885C84.9073 16.885 84.1829 16.6078 83.6489 16.0712C83.1165 15.5363 82.757 14.7269 82.757 13.6326C82.757 12.5251 83.1169 11.7163 83.6484 11.1851C84.1817 10.6521 84.9059 10.3802 85.6679 10.3802C86.43 10.3802 87.1541 10.6521 87.6874 11.1851C88.2189 11.7163 88.5788 12.5251 88.5788 13.6326C88.5788 14.7401 88.2189 15.5489 87.6874 16.0802C87.1541 16.6131 86.43 16.885 85.6679 16.885ZM85.6679 6.84459C81.8053 6.84459 78.8799 9.68648 78.8799 13.6326C78.8799 17.5531 81.8047 20.4206 85.6679 20.4206C89.5311 20.4206 92.4559 17.5531 92.4559 13.6326C92.4559 9.68648 89.5305 6.84459 85.6679 6.84459Z\",\n fill: \"white\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M53.5485 16.9803C52.7879 16.9803 52.0635 16.7031 51.5295 16.1665C50.9971 15.6316 50.6376 14.8222 50.6376 13.7279C50.6376 12.6204 50.9975 11.8116 51.529 11.2804C52.0622 10.7474 52.7864 10.4755 53.5485 10.4755C54.3105 10.4755 55.0347 10.7474 55.5679 11.2804C56.0994 11.8116 56.4593 12.6204 56.4593 13.7279C56.4593 14.8354 56.0994 15.6442 55.5679 16.1755C55.0347 16.7084 54.3105 16.9803 53.5485 16.9803ZM53.5485 6.93989C49.6859 6.93989 46.7604 9.78178 46.7604 13.7279C46.7604 17.6484 49.6852 20.5159 53.5485 20.5159C57.4117 20.5159 60.3365 17.6484 60.3365 13.7279C60.3365 9.78178 57.411 6.93989 53.5485 6.93989Z\",\n fill: \"white\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M103.013 20.3794H106.867V12.7258C106.867 12.0936 107.065 11.5425 107.414 11.1527C107.76 10.7662 108.27 10.521 108.934 10.521C109.63 10.521 110.103 10.7515 110.406 11.107C110.715 11.4688 110.875 11.9926 110.875 12.6245V20.3794H114.704V12.7258C114.704 12.1071 114.902 11.5548 115.249 11.1608C115.594 10.7702 116.098 10.521 116.746 10.521C117.456 10.521 117.928 10.7521 118.227 11.1061C118.532 11.4671 118.687 11.9905 118.687 12.6245V20.3794H122.44V11.9409C122.44 10.2116 121.871 8.95622 120.976 8.13508C120.086 7.31786 118.899 6.9549 117.704 6.9549C116.856 6.9549 116.078 7.09903 115.38 7.45005C114.785 7.74881 114.259 8.19198 113.8 8.80406C113.056 7.5945 111.698 6.9549 110.094 6.9549C108.923 6.9549 107.569 7.41893 106.716 8.32123V7.26695H103.013V20.3794Z\",\n fill: \"white\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M101.563 7.27813V11.2056L101.262 11.1449C100.903 11.0726 100.593 11.0486 100.307 11.0486C99.4899 11.0486 98.7637 11.2486 98.2425 11.7345C97.7247 12.2172 97.3678 13.0208 97.3678 14.3174V20.3794H93.5243V7.26692H97.2674V8.53249C98.1931 7.41962 99.6306 7.20343 100.533 7.20343C100.822 7.20343 101.084 7.22982 101.332 7.25488L101.563 7.27813Z\",\n fill: \"white\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M32.2668 14.0609L36.0242 14.0609L36.0669 14.1026C36.0955 14.1306 36.1153 14.1705 36.1193 14.2149C36.1921 15.0378 36.5154 15.6584 36.9992 16.0718C37.4806 16.4832 38.1036 16.6747 38.7527 16.6747C39.5448 16.6747 40.1926 16.3829 40.6401 15.8757C41.0851 15.3714 41.3168 14.672 41.3168 13.8792V2.89618H45.3792V13.9928C45.3792 17.5452 42.6615 20.5161 38.7811 20.5161C36.8426 20.5161 35.2171 19.8719 34.0772 18.7542C32.9636 17.6622 32.2986 16.1037 32.2691 14.21L32.2668 14.0609Z\",\n fill: \"white\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M78.3341 4.67614L78.5476 4.73713V1.76251L78.4495 1.71789C78.2991 1.64955 78.0573 1.5877 77.7781 1.54267C77.4953 1.49705 77.1616 1.46674 76.8216 1.46674C75.4968 1.46674 74.0073 1.90515 73.236 2.69495C72.4652 3.48433 72.0402 4.60944 72.0402 5.95556V6.58402H70.1038V9.99872H72.0402V20.3794H73.9833H75.9265V9.99872H78.5476V6.58402H75.9265V6.00279C75.9265 5.3979 76.1381 5.04969 76.4085 4.84686C76.6875 4.63764 77.054 4.56452 77.3884 4.56452C77.8911 4.56452 78.1826 4.63285 78.3341 4.67614Z\",\n fill: \"white\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M68.7132 17.3115L68.9138 17.2503V20.2366L68.8215 20.2814C68.6803 20.35 68.453 20.4121 68.1906 20.4573C67.9248 20.5031 67.6113 20.5336 67.2918 20.5336C66.0468 20.5336 64.6545 20.0934 63.9298 19.3005C63.2054 18.508 62.8059 17.3785 62.8059 16.0271V10.0004H60.9862L60.9862 6.60158L62.8059 6.60158L62.8059 2.9137H66.4505V6.60158L68.9138 6.60158V10.0004L66.4505 10.0004V15.9797C66.4505 16.5869 66.6494 16.9365 66.9035 17.1402C67.1657 17.3502 67.5101 17.4236 67.8244 17.4236C68.2969 17.4236 68.5708 17.355 68.7132 17.3115Z\",\n fill: \"white\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.48 20.9075C5.89536 21.3101 5.60184 22 5.01202 22H1.32085C0.592582 22 0 21.4256 0 20.7196V17.1413C0 16.5695 0.711652 16.285 1.12701 16.6876L5.48 20.9075Z\",\n fill: \"white\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2498 21.1857C10.1572 20.1002 10.1572 18.3403 11.2498 17.2549L15.193 13.3374C16.2856 12.2519 18.0571 12.2519 19.1497 13.3374C20.2423 14.4228 20.2423 16.1828 19.1497 17.2682L15.2065 21.1857C14.1139 22.2712 12.3424 22.2712 11.2498 21.1857Z\",\n fill: \"#FFB629\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.831535 11.3423C-0.261065 10.2569 -0.261065 8.49695 0.831536 7.41147L7.46751 0.814111C8.56011 -0.27137 10.3316 -0.271371 11.4242 0.81411C12.5168 1.89959 12.5168 3.6595 11.4242 4.74498L4.78819 11.3423C3.69559 12.4278 1.92414 12.4278 0.831535 11.3423Z\",\n fill: \"#0099FF\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.25756 16.0445C5.16496 14.959 5.16496 13.1991 6.25756 12.1136L15.224 3.20565C16.3166 2.12017 18.088 2.12017 19.1806 3.20565C20.2732 4.29113 20.2732 6.05104 19.1806 7.13652L10.2142 16.0445C9.12162 17.13 7.35016 17.13 6.25756 16.0445Z\",\n fill: \"#FF6100\"\n})));\nexport default SvgJotform21Logo;","\n \n\n","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFontBold = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 10 12\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13,8.99166667 C13.8083333,8.43333333 14.375,7.51666667 14.375,6.66666667 C14.375,4.78333333 12.9166667,3.33333333 11.0416667,3.33333333 L5.83333333,3.33333333 L5.83333333,15 L11.7,15 C13.4416667,15 14.7916667,13.5833333 14.7916667,11.8416667 C14.7916667,10.575 14.075,9.49166667 13,8.99166667 Z M8.33333333,5.41666667 L10.8333333,5.41666667 C11.525,5.41666667 12.0833333,5.975 12.0833333,6.66666667 C12.0833333,7.35833333 11.525,7.91666667 10.8333333,7.91666667 L8.33333333,7.91666667 L8.33333333,5.41666667 Z M11.25,12.9166667 L8.33333333,12.9166667 L8.33333333,10.4166667 L11.25,10.4166667 C11.9416667,10.4166667 12.5,10.975 12.5,11.6666667 C12.5,12.3583333 11.9416667,12.9166667 11.25,12.9166667 Z\",\n transform: \"translate(-5 -3)\"\n})));\nexport default SvgFontBold;","var _polygon;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFontItalic = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 10 12\"\n}, props), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"8.333 3.333 8.333 5.833 10.175 5.833 7.325 12.5 5 12.5 5 15 11.667 15 11.667 12.5 9.825 12.5 12.675 5.833 15 5.833 15 3.333\",\n transform: \"translate(-5 -3)\"\n})));\nexport default SvgFontItalic;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFontUnderline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 12 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,14.1666667 C12.7583333,14.1666667 15,11.925 15,9.16666667 L15,2.5 L12.9166667,2.5 L12.9166667,9.16666667 C12.9166667,10.775 11.6083333,12.0833333 10,12.0833333 C8.39166667,12.0833333 7.08333333,10.775 7.08333333,9.16666667 L7.08333333,2.5 L5,2.5 L5,9.16666667 C5,11.925 7.24166667,14.1666667 10,14.1666667 Z M4.16666667,15.8333333 L4.16666667,17.5 L15.8333333,17.5 L15.8333333,15.8333333 L4.16666667,15.8333333 Z\",\n transform: \"translate(-4 -2)\"\n})));\nexport default SvgFontUnderline;","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgSheetboxUnselect = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 18 18\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.72727 1H15.2727C16.2267 1 17 1.77333 17 2.72727V15.2727C17 16.2267 16.2267 17 15.2727 17H2.72727C1.77333 17 1 16.2267 1 15.2727V2.72727C1 1.77333 1.77333 1 2.72727 1Z\",\n fill: \"white\",\n stroke: \"#D3D6EC\",\n strokeWidth: 2\n})));\nexport default SvgSheetboxUnselect;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgSheetboxSelect = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 18 18\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.72727 1H15.2727C16.2267 1 17 1.77333 17 2.72727V15.2727C17 16.2267 16.2267 17 15.2727 17H2.72727C1.77333 17 1 16.2267 1 15.2727V2.72727C1 1.77333 1.77333 1 2.72727 1Z\",\n fill: \"#F0FFF1\",\n stroke: \"#53B45C\",\n strokeWidth: 2\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 8.89189L7.83017 11.5405L12.5 7\",\n stroke: \"#54B45C\",\n strokeWidth: 2.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n})));\nexport default SvgSheetboxSelect;","\n \n\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBar = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 283 361\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"rotate(90 180.5 180.5)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 360,\n height: 360\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#F2F3F7\",\n points: \".03 359.254 360.03 359.254 360.03 360.254 .03 360.254\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F1F2F7\",\n d: \"M8.88028169 78L52.8802817 78C54.5371359 78 55.8802817 79.3431458 55.8802817 81L55.8802817 359.003534 55.8802817 359.003534 5.88028169 359.003534 5.88028169 81C5.88028169 79.3431458 7.22342744 78 8.88028169 78zM83 177.003534L127 177.003534C128.656854 177.003534 130 178.346679 130 180.003534L130 359.003534 130 359.003534 80 359.003534 80 180.003534C80 178.346679 81.3431458 177.003534 83 177.003534zM158 270L202 270C203.656854 270 205 271.343146 205 273L205 360 205 360 155 360 155 273C155 271.343146 156.343146 270 158 270zM233 199.003534L277 199.003534C278.656854 199.003534 280 200.346679 280 202.003534L280 359.003534 280 359.003534 230 359.003534 230 202.003534C230 200.346679 231.343146 199.003534 233 199.003534zM306.880282 149.003534L350.880282 149.003534C352.537136 149.003534 353.880282 150.346679 353.880282 152.003534L353.880282 359.003534 353.880282 359.003534 303.880282 359.003534 303.880282 152.003534C303.880282 150.346679 305.223427 149.003534 306.880282 149.003534z\"\n}))));\nexport default SvgBar;","var _defs, _use;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPie = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 160 160\"\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"pie-a\",\n d: \"M79.9998844,83.529 L134.894511,138.19473 C120.56846,151.713253 101.251967,160 80,160 C58.7505181,160 39.436057,151.715191 25.1105147,138.199472 L79.9998844,83.529 Z M158.718101,65.6585664 C159.560252,70.3114388 160,75.1043651 160,80 C160,102.211062 150.948419,122.308014 136.332782,136.80333 L81.9998844,82.698 Z M5.2956636,51.3170163 L78.2408844,82.455 L23.592505,136.729136 C9.0207408,122.239476 0,102.173191 0,80 C0,69.8915384 1.87480427,60.2209607 5.2956636,51.3170163 Z M81.0001873,0.00612409532 C119.150361,0.473536137 150.871585,27.6449407 158.336826,63.693305 L80.9998844,80.871 Z M78.999,0.008 L79,80.604 L6.0367718,49.4582957 C18.037802,20.4272663 46.6333791,0 80,0 L78.999,0.008 Z\"\n}))), _use || (_use = /*#__PURE__*/React.createElement(\"use\", {\n fill: \"#F1F2F7\",\n fillRule: \"evenodd\",\n transform: \"matrix(-1 0 0 1 160 0)\",\n xlinkHref: \"#pie-a\"\n})));\nexport default SvgPie;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBasic = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 320 111\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 190,\n height: 50,\n x: 65,\n fill: \"#F1F2F7\",\n fillOpacity: 0.4,\n rx: 3\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 178,\n height: 40,\n x: 71,\n y: 5,\n fill: \"#F1F2F7\",\n rx: 3\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 58)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 30,\n x: 15,\n fill: \"#F1F2F7\",\n rx: 3\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 30,\n x: 225,\n fill: \"#F1F2F7\",\n rx: 3\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 110,\n height: 18,\n x: 210,\n y: 35,\n fill: \"#F9FAFC\",\n rx: 3\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 110,\n height: 18,\n y: 35,\n fill: \"#F9FAFC\",\n rx: 3\n})))));\nexport default SvgBasic;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgDonut = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 160 160\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F1F2F7\",\n fillRule: \"evenodd\",\n d: \"M122.01854,107.111644 L147.553029,122.874374 C133.358687,145.192377 108.408596,160 80,160 C51.5914035,160 26.6413128,145.192377 12.4469711,122.874374 L37.9814601,107.111644 C46.8864298,120.884466 62.3786915,130 80,130 C97.6213085,130 113.11357,120.884466 122.01854,107.111644 Z M78.9999701,0.00612708608 L78.9999701,30.0098013 C51.847326,30.5424792 30,52.7198814 30,80 C30,89.2779685 32.5270368,97.965716 36.9303695,105.412501 L11.3955635,121.174732 C4.16083054,109.146254 0,95.059034 0,80 C0,36.5896673 34.5757833,1.2549414 77.6904759,0.0326964474 L78.9999701,0.00612708608 Z M81.0010306,30.009821 L81,0.008 L80,0 C124.18278,0 160,35.81722 160,80 C160,95.0586149 155.839401,109.14547 148.605041,121.173727 L123.070222,105.411502 C127.473189,97.9649383 130,89.2775533 130,80 C130,52.7202165 108.153211,30.543024 81.0010306,30.009821 Z\",\n transform: \"matrix(-1 0 0 1 160 0)\"\n})));\nexport default SvgDonut;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgColumn = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 361 283\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"translate(0 -78)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 360,\n height: 360\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#F2F3F7\",\n points: \".03 359.254 360.03 359.254 360.03 360.254 .03 360.254\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F1F2F7\",\n d: \"M8.88028169 78L52.8802817 78C54.5371359 78 55.8802817 79.3431458 55.8802817 81L55.8802817 359.003534 55.8802817 359.003534 5.88028169 359.003534 5.88028169 81C5.88028169 79.3431458 7.22342744 78 8.88028169 78zM83 177.003534L127 177.003534C128.656854 177.003534 130 178.346679 130 180.003534L130 359.003534 130 359.003534 80 359.003534 80 180.003534C80 178.346679 81.3431458 177.003534 83 177.003534zM158 270L202 270C203.656854 270 205 271.343146 205 273L205 360 205 360 155 360 155 273C155 271.343146 156.343146 270 158 270zM233 199.003534L277 199.003534C278.656854 199.003534 280 200.346679 280 202.003534L280 359.003534 280 359.003534 230 359.003534 230 202.003534C230 200.346679 231.343146 199.003534 233 199.003534zM306.880282 149.003534L350.880282 149.003534C352.537136 149.003534 353.880282 150.346679 353.880282 152.003534L353.880282 359.003534 353.880282 359.003534 303.880282 359.003534 303.880282 152.003534C303.880282 150.346679 305.223427 149.003534 306.880282 149.003534z\"\n}))));\nexport default SvgColumn;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLine = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 283 206\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F1F2F7\",\n fillRule: \"evenodd\",\n d: \"M84 62L118 62C119.656854 62 121 63.3431458 121 65L121 205 121 205 81 205 81 65C81 63.3431458 82.3431458 62 84 62zM164 122L198 122C199.656854 122 201 123.343146 201 125L201 205 201 205 161 205 161 125C161 123.343146 162.343146 122 164 122zM245 20L279 20C280.656854 20 282 21.3431458 282 23L282 205 282 205 242 205 242 23C242 21.3431458 243.343146 20 245 20zM3 0L37 0C38.6568542-3.04359188e-16 40 1.34314575 40 3L40 205 40 205 1.13686838e-13 205 1.13686838e-13 3C1.13483932e-13 1.34314575 1.34314575 3.04359188e-16 3 0z\",\n transform: \"translate(.5 .5)\"\n})));\nexport default SvgLine;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgGrid = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 302 210\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F1F2F7\",\n d: \"M3 0L299 0C300.656854-3.04359188e-16 302 1.34314575 302 3L302 42 302 42 0 42 0 3C-2.02906125e-16 1.34314575 1.34314575 3.04359188e-16 3 0zM0 168L302 168 302 207C302 208.656854 300.656854 210 299 210L3 210C1.34314575 210 2.02906125e-16 208.656854 0 207L0 168 0 168z\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 302,\n height: 42,\n y: 42,\n fill: \"#F9FAFC\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 302,\n height: 42,\n y: 84,\n fill: \"#F1F2F7\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 302,\n height: 42,\n y: 126,\n fill: \"#F9FAFC\"\n}))));\nexport default SvgGrid;","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n \n\n","\n \n\n","\n \n\n","\n \n\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Baseline from '../../../components/Baseline';\nimport List from '../../../components/List';\nimport { ListTypes } from '../../../constants/schemas';\nimport { hexToRgba } from '../../../utils';\n\nconst WorkflowStatus = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n containerProps,\n baselineProps,\n direction\n}) => (\n \n \n \n);\n\nWorkflowStatus.propTypes = {\n options: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n other: PropTypes.string\n })\n ]),\n showAll: PropTypes.bool,\n listType: ListTypes.schema,\n containerProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({\n backgroundColor: PropTypes.string\n }),\n answerWrapperProps: PropTypes.shape({}),\n text: PropTypes.string,\n labelProps: PropTypes.shape({}),\n editMode: PropTypes.bool,\n isToggleActive: PropTypes.bool,\n toggleProps: PropTypes.shape([\n PropTypes.object\n ]),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nWorkflowStatus.defaultProps = {\n options: '',\n answer: '',\n showAll: false,\n listType: ListTypes.default,\n containerProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n labelProps: {},\n text: global?.isWorklfowStatus ? 'Flow Status' : 'Approval Status',\n editMode: false,\n toggleProps: {},\n isToggleActive: false,\n direction: 'column'\n};\n\nexport default WorkflowStatus;\n","\n \n \n \n \n \n \n\n","\n \n\n","\n \n \n \n \n\n","\n \n \n\n","\n \n \n\n","\n \n \n\n","\n \n \n \n \n\n","\n \n \n \n\n","\n \n \n \n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","\n \n \n \n\n","\n \n\n","\n \n \n \n \n \n \n \n\n","\n \n \n \n \n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n\n","\n \n \n \n \n \n\n","\n \n \n \n \n \n \n \n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n \n\n","\n \n \n \n\n","\n \n \n\n","\n \n \n\n","\n \n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n \n\n","\n \n \n \n \n \n\n","\n \n \n\n","\n \n \n \n \n \n \n \n \n\n","\n \n \n\n","\n \n \n \n \n \n \n \n \n \n \n\n","\n \n \n \n \n \n \n \n \n \n \n \n \n\n","\n \n\n","\n \n\n","\n \n \n\n","\n \n \n \n \n\n","\n \n \n\n","\n \n \n \n\n","\n \n \n\n","\n \n \n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconModalClose = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 6 6\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.9349 5.4457 3.4892 3 5.9348.5543A.3507.3507 0 0 0 5.4457.065L3 2.5108.5543.0652A.3507.3507 0 0 0 .065.5543L2.5108 3 .0652 5.4457a.3507.3507 0 0 0 .4892.4892L3 3.4892l2.4457 2.4457a.3507.3507 0 0 0 .4892-.4892\",\n fill: \"#fff\"\n})));\nexport default SvgIconModalClose;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconViewAllSubmission = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 14\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.844 0v.131c0 .571-.002 1.143.002 1.714 0 .09-.026.117-.121.118a8.266 8.266 0 0 0-2.053.264c-1.104.294-2.06.83-2.834 1.654-.767.816-1.253 1.776-1.534 2.838-.05.19-.085.385-.127.578.032-.005.039-.017.044-.03.173-.37.441-.668.764-.922.632-.499 1.37-.788 2.147-.991 1.18-.31 2.388-.397 3.605-.41.088 0 .11.027.109.108-.003.574-.002 1.15-.002 1.724v.13l3.566-3.453L11.844 0Z\",\n fill: \"#5E74E6\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.063 14H2.458A1.87 1.87 0 0 1 .59 12.132v-9.91A1.87 1.87 0 0 1 2.458.351h5.675a.64.64 0 0 1 0 1.282H2.458a.588.588 0 0 0-.587.587v9.91c0 .324.264.588.587.588h9.605a.588.588 0 0 0 .587-.587v-4.41a.64.64 0 0 1 1.281 0v4.41A1.87 1.87 0 0 1 12.063 14Z\",\n fill: \"#5E74E6\"\n})));\nexport default SvgIconViewAllSubmission;","var _rect, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconViewNewSubmission = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 26 32\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.533,\n y: 0.533,\n width: 24.933,\n height: 30.933,\n rx: 3.733,\n fill: \"#fff\",\n stroke: \"#B1C3E9\",\n strokeWidth: 1.067\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.79 10.706c0-.933.787-1.69 1.758-1.69h12.9c.971 0 1.759.757 1.759 1.69 0 .934-.788 1.691-1.76 1.691H6.549c-.971 0-1.759-.757-1.759-1.69Z\",\n fill: \"#09F\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.79 16.342c0-.934.787-1.69 1.758-1.69h12.9c.971 0 1.759.756 1.759 1.69 0 .934-.788 1.69-1.76 1.69H6.549c-.971 0-1.759-.756-1.759-1.69Z\",\n fill: \"#FF6100\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.79 21.98c0-.934.787-1.69 1.758-1.69h12.9c.971 0 1.759.756 1.759 1.69 0 .934-.788 1.69-1.76 1.69H6.549c-.971 0-1.759-.756-1.759-1.69Z\",\n fill: \"#FFB629\"\n})));\nexport default SvgIconViewNewSubmission;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgArrowLeft = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 9 15\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M242.656854,19.2928932 C243.047379,18.9023689 243.680544,18.9023689 244.071068,19.2928932 C244.461592,19.6834175 244.461592,20.3165825 244.071068,20.7071068 L238.414214,26.363961 L244.071068,32.0208153 C244.461592,32.4113396 244.461592,33.0445046 244.071068,33.4350288 C243.680544,33.8255531 243.047379,33.8255531 242.656854,33.4350288 L236.292893,27.0710678 C235.902369,26.6805435 235.902369,26.0473785 236.292893,25.6568542 L242.656854,19.2928932 Z\",\n transform: \"translate(-236 -19)\"\n})));\nexport default SvgArrowLeft;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconPrint = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 15 15\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.43975 5.95834c-.00106-.45279-.29734-.74682-.7502-.7443-.44853.00253-.74429.30439-.74064.75585.00359.44243.29861.73407.74383.7352.45272.00112.74808-.29403.74701-.74675zm-2.9828 7.45772v-.18531c0-1.1167-.00346-2.2334.00391-3.35004.001-.1597-.05223-.1901-.19772-.18976a1245.05512 1245.05512 0 0 1-5.58896.00007c-.14535-.00034-.19872.03013-.19766.18988.00737 1.12215.00372 2.24436.00432 3.36664 0 .0533.00617.10666.01002.16852h5.96608zm-7.46928 1.49117V11.1863h-.20316c-.85719 0-1.71445.00007-2.57164-.00013-.21205 0-.21232-.00046-.21232-.21903-.00007-1.40475-.00146-2.8095.0004-4.2142.00219-1.68876 1.29232-3.01885 2.97949-3.02715a913.39338 913.39338 0 0 1 8.97597 0c1.68677.00823 2.97784 1.33865 2.97996 3.02682.00186 1.40476.00046 2.80951.0004 4.21427 0 .2191-.00027.21929-.22852.21936-.84617.00006-1.69235.00006-2.53852.00006h-.21345v3.72093h-8.9686zM2.99934 2.96044h8.94411V.00007H2.99934z\",\n fillRule: \"evenodd\"\n})));\nexport default SvgIconPrint;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconPdf = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.0742 0L14.777 3.78152H12.6769C11.7917 3.78152 11.0742 3.064 11.0742 2.17888V0Z\",\n fill: \"#252D5B\",\n fillOpacity: 0.5\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.70317 16H12.8509C13.9145 16 14.7767 15.0924 14.7767 13.9728V3.82663L14.7327 3.78152H12.6771C11.792 3.78152 11.0745 3.064 11.0745 2.17888V0.0322187L11.043 0H3.70317C2.63957 0 1.77734 0.907609 1.77734 2.0272V13.9728C1.77734 15.0924 2.63957 16 3.70317 16ZM4.27734 5.24125C4.27734 4.78419 4.64787 4.41367 5.10493 4.41367H11.1739C11.631 4.41367 12.0015 4.78419 12.0015 5.24125C12.0015 5.69831 11.631 6.06884 11.1739 6.06884H5.10493C4.64787 6.06884 4.27734 5.69831 4.27734 5.24125ZM4.27734 7.99987C4.27734 7.54281 4.64787 7.17228 5.10493 7.17228H11.1739C11.631 7.17228 12.0015 7.54281 12.0015 7.99987C12.0015 8.45693 11.631 8.82746 11.1739 8.82746H5.10493C4.64787 8.82746 4.27734 8.45693 4.27734 7.99987ZM5.10493 9.93089C4.64787 9.93089 4.27734 10.3014 4.27734 10.7585C4.27734 11.2155 4.64787 11.5861 5.10493 11.5861H11.1739C11.631 11.5861 12.0015 11.2155 12.0015 10.7585C12.0015 10.3014 11.631 9.93089 11.1739 9.93089H5.10493Z\",\n fill: \"#252D5B\"\n})));\nexport default SvgIconPdf;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconDownload = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 14 16\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#2C3345\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.933 11.886c.297 0 .496-.1.694-.297l5.645-5.646-1.386-1.387-3.962 3.962V0H5.943v8.518L1.98 4.556.594 5.943l5.646 5.646c.198.198.396.297.693.297zM0 13.867L13.867 13.867 13.867 15.848 0 15.848z\"\n}))));\nexport default SvgIconDownload;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconInboxNavigator = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 15\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.3924 0C11.3924 0.0469045 11.3924 0.0898704 11.3924 0.132881C11.3924 0.710907 11.3905 1.28889 11.3944 1.86687C11.395 1.95893 11.3683 1.98614 11.2717 1.98713C10.5683 1.99438 9.87377 2.0723 9.19394 2.25352C8.07609 2.55146 7.10905 3.09319 6.32557 3.92744C5.54968 4.75369 5.05716 5.72499 4.77337 6.80057C4.72247 6.99342 4.68706 7.19013 4.64453 7.38508C4.67694 7.37998 4.68383 7.36794 4.6896 7.35545C4.86393 6.9795 5.13584 6.67847 5.46226 6.42117C6.10224 5.91677 6.84837 5.6242 7.63485 5.41832C8.82961 5.10552 10.0524 5.01717 11.2841 5.00401C11.3729 5.00307 11.3944 5.0314 11.394 5.11272C11.391 5.69446 11.3924 6.2762 11.3924 6.8579C11.3924 6.901 11.3924 6.9441 11.3924 6.98904C12.6049 5.81522 13.8076 4.65088 15.0017 3.49483C13.8083 2.33927 12.6058 1.17489 11.3924 0\",\n fill: \"white\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.6133 14.1694H1.89295C0.850253 14.1694 0.00195312 13.3211 0.00195312 12.2784V2.24842C0.00195312 1.20568 0.850253 0.357422 1.89295 0.357422H7.63639C7.99449 0.357422 8.28481 0.647739 8.28481 1.00584C8.28481 1.36393 7.99449 1.65425 7.63639 1.65425H1.89295C1.56532 1.65425 1.29878 1.92079 1.29878 2.24842V12.2784C1.29878 12.606 1.56532 12.8725 1.89295 12.8725H11.6133C11.941 12.8725 12.2075 12.606 12.2075 12.2784V7.81614C12.2075 7.45804 12.4978 7.16772 12.8559 7.16772C13.214 7.16772 13.5043 7.45804 13.5043 7.81614V12.2784C13.5043 13.3211 12.656 14.1694 11.6133 14.1694\",\n fill: \"white\"\n})));\nexport default SvgIconInboxNavigator;","\n \n\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconAssignFormFlow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 15 20\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.28 15.1676C1.28 15.4438 1.50386 15.6676 1.78 15.6676H8.81C9.08614 15.6676 9.31 15.4438 9.31 15.1676V12.3811C9.2911 12.3827 9.32892 12.3843 9.31 12.3856C9.34168 12.3803 9.2739 12.3878 9.31 12.3856C8.21967 12.5599 6.98806 12.3871 6.00381 11.8823C5.91199 11.8386 5.81183 11.8164 5.7106 11.8174C4.99157 11.8136 4.27254 11.8143 3.55351 11.8143H2.76995C2.63188 11.8143 2.51995 11.7024 2.51995 11.5643V11.0079C2.51995 10.8698 2.63188 10.7579 2.76995 10.7579H4.53186L4.35874 10.5028C4.21213 10.2893 4.06847 10.0803 3.93292 9.8652C3.87251 9.77012 3.8121 9.73314 3.70306 9.73616C3.47174 9.74069 3.23967 9.73993 3.00466 9.73918L2.76956 9.73881C2.63164 9.7386 2.51995 9.62673 2.51995 9.48881V8.9448C2.51995 8.80673 2.63188 8.6948 2.76995 8.6948H3.43195C3.23967 7.98396 3.17853 7.28369 3.26767 6.57361C3.33082 6.08158 3.62943 5.26762 3.80438 4.84118H1.78C1.50386 4.84118 1.28 5.06503 1.28 5.34118V15.1676ZM10.62 15.8326C10.444 16.5196 9.825 17 9.11587 17H0.999999C0.447714 17 0 16.5523 0 16V4.72689C0 4.06227 0.538781 3.52349 1.2034 3.52349C2.32468 3.52349 3.44595 3.52424 4.56723 3.51896C4.66226 3.5182 4.77866 3.47217 4.84865 3.40652C5.96698 2.36517 7.28201 1.89731 8.78269 2.0188C11.0665 2.20368 12.9694 4.00568 13.3584 6.31855C13.7463 8.62008 12.6409 10.8599 10.62 11.9006C10.6729 11.8756 10.5683 11.9272 10.62 11.9006C10.62 12.1094 10.62 12.0913 10.62 12.212C10.6237 13.4194 10.6207 14.626 10.62 15.8326ZM7.75792 13.632C7.75792 13.77 7.646 13.882 7.50792 13.882H2.76995C2.63188 13.882 2.51995 13.77 2.51995 13.632V13.1042C2.51995 12.9661 2.63188 12.8542 2.76995 12.8542H7.50792C7.646 12.8542 7.75792 12.9661 7.75792 13.1042V13.632Z\",\n fill: \"#5E74E6\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.3 10.6V4H7.95973C7.81331 4.76587 7.06997 5.3628 6 5.37406V6.4215H7.757V10.6H9.3Z\",\n fill: \"white\"\n})));\nexport default SvgIconAssignFormFlow;","export const WORKFLOW_SYSTEM_OUTCOMES = {\n expire: {\n id: 'expire',\n text: 'Expire',\n passiveText: 'Expired',\n textColor: '#23283A',\n buttonColor: '#37836F'\n },\n escalate: {\n id: 'escalate',\n text: 'Escalate',\n passiveText: 'Escalated',\n textColor: '#23283A',\n buttonColor: '#37836F'\n },\n reassign: {\n id: 'reassign',\n text: 'Reassign',\n passiveText: 'Reassigned',\n textColor: '#23283A',\n buttonColor: '#FF9946'\n },\n start: {\n id: 'start',\n text: window?.isWorkflowReleased ? 'Start Flow' : 'Start Approval Flow',\n passiveText: 'Started',\n textColor: '#FFFFFF',\n buttonColor: '#01BD6F'\n },\n requestMoreInfo: {\n id: 'requestMoreInfo',\n text: 'Requested more info',\n passiveText: 'Requested more info',\n textColor: '#4599FF',\n buttonColor: '#01BD6F'\n }\n};\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconTakeover = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 14\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 0C0.895508 0 0 0.894531 0 2V12L0.0117188 12.2227L0.0429688 12.418C0.234375 13.3242 1.03809 14 2 14H9.26172L7.44824 11.8711C7.23047 11.6172 7.09277 11.3125 7.0332 11H2C1.44727 11 1 10.5508 1 10V2C1 1.70312 1.13086 1.43359 1.33887 1.25C1.47168 1.13281 1.63574 1.05078 1.81836 1.01562C1.87695 1.00391 1.9375 1 2 1H12C12.1709 1 12.332 1.04297 12.4727 1.12109C12.6279 1.20312 12.7578 1.32812 12.8506 1.47656C12.9453 1.62891 13 1.80859 13 2V8.47656L13.9443 7.52734C13.9629 7.50781 13.9814 7.48828 14 7.47266V2C14 0.894531 13.1045 0 12 0H2Z\",\n fill: \"#fff\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.64355 3.14844C2.73438 3.05859 2.86035 3 3 3H11C11.2764 3 11.5 3.22266 11.5 3.5C11.5 3.77734 11.2764 4 11 4H3C2.72363 4 2.5 3.77734 2.5 3.5L2.5127 3.38672C2.53418 3.29688 2.58008 3.21484 2.64355 3.14844Z\",\n fill: \"#fff\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 6C2.72363 6 2.5 6.22266 2.5 6.5C2.5 6.77734 2.72363 7 3 7H9C9.27637 7 9.5 6.77734 9.5 6.5C9.5 6.22266 9.27637 6 9 6H3Z\",\n fill: \"#fff\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.653 8.23163C14.9755 7.90798 15.4817 7.92566 15.7838 8.27112C16.0859 8.61658 16.0694 9.15901 15.747 9.48266L11.4774 13.7684C11.152 14.095 10.6403 14.0736 10.3397 13.7208L8.20922 11.2208C7.91131 10.8712 7.93431 10.3291 8.26059 10.0099C8.58687 9.69068 9.09288 9.71532 9.39079 10.0649L10.9748 11.9237L14.653 8.23163Z\",\n fill: \"#fff\"\n})));\nexport default SvgIconTakeover;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgSignatureIcon = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 18.23 16.63\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.14 8.86L11 .15a.39.39 0 00-.56-.06l-1.7 1.44a.41.41 0 00-.05.57l7.12 8.71a.39.39 0 00.56.06l1.72-1.45a.4.4 0 00.05-.56zM2.8 5.68a.39.39 0 00-.28.32L0 16l4.65-3.87a2 2 0 01.49-2.47 2 2 0 012.79.26 2 2 0 01-.26 2.81 2 2 0 01-1.45.45 2 2 0 01-1.06-.43L.51 16.63 10.79 16a.39.39 0 00.34-.22L14 9.9 9.09 4z\"\n})));\nexport default SvgSignatureIcon;","\n \n\n","\n \n\n","\n \n\n","","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconHipaaWarning = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 64 64\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.009 11.59L34.623 6.44602C32.7296 5.85157 30.6994 5.85157 28.806 6.44602L12.422 11.59C11.723 11.8079 11.1114 12.2426 10.676 12.8312C10.2405 13.4199 10.0038 14.1318 10 14.864V20.994C10.0078 28.0964 11.7337 35.0915 15.0303 41.3825C18.3269 47.6734 23.0965 53.0735 28.932 57.122C29.7335 57.6934 30.6936 58.0001 31.678 57.999C32.6708 58.0169 33.6415 57.7049 34.438 57.112C40.2731 53.0634 45.0441 47.6656 48.3455 41.3775C51.6468 35.0894 53.3808 28.097 53.4 20.995V14.916C53.4541 14.1693 53.2444 13.4272 52.8075 12.8192C52.3705 12.2112 51.734 11.7758 51.009 11.589V11.59Z\",\n fill: \"#008EF9\",\n stroke: \"#13B4FF\",\n strokeWidth: 2.017\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.5 16.719C37.396 15.809 36.594 16.037 35.489 18.005C35.2438 18.48 34.8622 18.8708 34.3932 19.1272C33.9242 19.3837 33.3892 19.494 32.857 19.444V19.178C33.3793 18.9273 33.8009 18.5067 34.0528 17.9849C34.3047 17.4632 34.3718 16.8714 34.2433 16.3066C34.1148 15.7417 33.7981 15.2372 33.3453 14.8758C32.8925 14.5145 32.3303 14.3177 31.751 14.3177C31.1717 14.3177 30.6095 14.5145 30.1567 14.8758C29.7039 15.2372 29.3873 15.7417 29.2587 16.3066C29.1302 16.8714 29.1974 17.4632 29.4492 17.9849C29.7011 18.5067 30.1227 18.9273 30.645 19.178V19.448C30.1127 19.4972 29.5779 19.3861 29.1092 19.129C28.6405 18.8718 28.2595 18.4804 28.015 18.005C26.912 16.007 26.11 15.807 25.005 16.719C23.861 17.626 19.438 22.887 14.015 22.394C14.3725 23.1117 14.9609 23.6884 15.6856 24.0316C16.4103 24.3747 17.2293 24.4643 18.011 24.286C18.5595 24.7748 19.2445 25.0839 19.974 25.1717C20.7034 25.2595 21.4422 25.1218 22.091 24.777C22.5877 25.1336 23.179 25.3348 23.7901 25.3553C24.4011 25.3757 25.0046 25.2145 25.524 24.892C25.9863 25.2212 26.5335 25.4105 27.1003 25.4372C27.6672 25.464 28.2298 25.3272 28.721 25.043C29.301 25.44 30.005 25.615 30.704 25.535L30.783 31.629C30.668 31.591 30.555 31.591 30.44 31.55C30.44 31.55 28.61 31.173 26.704 30.643C25.2318 30.3363 23.8251 29.7731 22.548 28.979C22.588 28.94 22.627 28.94 22.662 28.9C22.903 28.785 23.161 28.708 23.426 28.672C24.2577 28.5301 25.0994 28.4548 25.943 28.447C26.6763 28.3464 27.4207 28.3593 28.15 28.485C28.15 28.405 29.219 28.599 29.484 27.539C29.4891 27.5343 29.4932 27.5286 29.4959 27.5222C29.4987 27.5158 29.5001 27.5089 29.5 27.502C29.5 27.4951 29.4986 27.4882 29.4958 27.4819C29.4931 27.4755 29.4891 27.4698 29.484 27.465C29.406 26.745 28.834 26.707 28.381 26.594C27.929 26.5018 27.4644 26.4889 27.008 26.556C25.329 26.669 20.144 26.254 19.497 28.98V29.167C19.724 31.513 24.607 32.537 28.191 33.254C27.6287 33.6148 27.1504 34.0921 26.7885 34.6536C26.4265 35.2152 26.1894 35.8479 26.093 36.509C25.979 37.985 27.16 39.384 29.867 40.937C27.807 42.413 26.434 43.775 26.549 45.402C26.7935 46.3577 27.2589 47.2427 27.9078 47.9858C28.5566 48.7288 29.3709 49.3091 30.285 49.68C29.484 48.5023 28.8908 47.1961 28.531 45.818C28.417 45.018 28.874 43.847 30.895 42.421L30.975 47.416C30.975 47.6181 31.0553 47.8119 31.1982 47.9548C31.3411 48.0977 31.5349 48.178 31.737 48.178C31.9391 48.178 32.1329 48.0977 32.2758 47.9548C32.4187 47.8119 32.499 47.6181 32.499 47.416L32.578 42.533C34.408 43.896 34.828 45.03 34.751 45.788C34.3916 47.1662 33.7984 48.4725 32.997 49.65C33.912 49.2805 34.727 48.7006 35.3761 47.9573C36.0252 47.2141 36.49 46.3284 36.733 45.372C36.847 43.708 35.473 42.345 33.415 40.907C36.16 39.354 37.305 37.955 37.189 36.479C37.082 35.8213 36.8404 35.1928 36.4794 34.6327C36.1184 34.0727 35.6458 33.5931 35.091 33.224C38.638 32.504 43.557 31.484 43.785 29.138V28.95C43.138 26.262 37.951 26.68 36.274 26.526C35.8162 26.496 35.3565 26.5087 34.901 26.564C34.441 26.642 33.871 26.677 33.798 27.434V27.514C33.89 27.7935 34.0692 28.0362 34.3093 28.2063C34.5494 28.3764 34.8378 28.465 35.132 28.459C35.8677 28.3907 36.6075 28.3784 37.345 28.422C38.1876 28.4489 39.028 28.524 39.862 28.647C40.124 28.695 40.38 28.771 40.626 28.873C40.664 28.913 40.74 28.913 40.74 28.953C39.4632 29.7475 38.0563 30.3108 36.584 30.617C35.3476 30.9562 34.1014 31.2586 32.847 31.524C32.8264 31.5217 32.8055 31.5239 32.7858 31.5305C32.7661 31.537 32.7481 31.5478 32.733 31.562L32.812 25.544C33.5108 25.6308 34.2169 25.4555 34.794 25.052C35.2854 25.3362 35.8483 25.473 36.4154 25.4461C36.9824 25.4191 37.5298 25.2296 37.992 24.9C38.5037 25.2252 39.1017 25.3884 39.7076 25.368C40.3136 25.3477 40.8993 25.1448 41.388 24.786C42.0369 25.1306 42.7758 25.2682 43.5052 25.1803C44.2347 25.0923 44.9196 24.783 45.468 24.294C46.2499 24.4725 47.0691 24.3831 47.794 24.0399C48.5189 23.6968 49.1075 23.1199 49.465 22.402C44.034 22.889 39.61 17.626 38.5 16.719ZM29.31 38.259C28.623 37.843 28.311 37.276 28.395 36.897C28.433 36.367 28.244 35.118 30.76 34.171L30.839 39.204C30.352 38.897 29.847 38.557 29.313 38.259H29.31ZM34.801 36.897C34.881 37.276 34.533 37.843 33.886 38.259C33.429 38.524 33.009 38.826 32.589 39.092L32.669 34.283C34.92 35.151 34.767 36.36 34.805 36.891L34.801 36.897Z\",\n fill: \"white\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47 60.334C53.6274 60.334 59 54.9471 59 48.302C59 41.6569 53.6274 36.27 47 36.27C40.3726 36.27 35 41.6569 35 48.302C35 54.9471 40.3726 60.334 47 60.334Z\",\n fill: \"#FF4947\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45 40.28H48.6L48.2 50.829H45.8L45 40.28Z\",\n fill: \"white\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47 56.285C48.1046 56.285 49 55.4706 49 54.466C49 53.4614 48.1046 52.647 47 52.647C45.8954 52.647 45 53.4614 45 54.466C45 55.4706 45.8954 56.285 47 56.285Z\",\n fill: \"white\"\n})));\nexport default SvgIconHipaaWarning;","import React, { useState } from 'react';\nimport {\n func, string, node, shape, bool\n} from 'prop-types';\nimport classNames from 'classnames';\nimport { Dialog } from '@jotforminc/dialog';\n\nconst isWorkflowReleased = window?.isWorkflowReleased;\n\nconst dialogProps = {\n cancel: {\n type: 'warning',\n title: isWorkflowReleased ? 'Cancel Flow' : 'Cancel approval flow for this submission',\n subTitles: [\n isWorkflowReleased ? 'Terminating this flow will stop all ongoing and future tasks associated with it.'\n : 'You can cancel approval flow for this submission.',\n 'This action cannot be undone.'\n ],\n otherButtonText: isWorkflowReleased ? 'CANCEL FLOW' : 'CANCEL APPROVAL FLOW'\n },\n startover: {\n type: 'warning',\n title: isWorkflowReleased ? 'Restart Flow' : 'Restart the approval flow',\n subTitles: [\n isWorkflowReleased ? 'Restarting this flow will reset all actions and start the flow from the beginning.' : 'You can restart approval flow for this submission.',\n 'This action cannot be undone.'\n ],\n otherButtonText: isWorkflowReleased ? 'RESTART FLOW' : 'RESTART APPROVAL FLOW'\n },\n retryAction: {\n type: 'warning',\n title: 'Retry Failed Integration',\n subTitles: [\n 'Do you want to proceed with retrying the integration?'\n ],\n otherButtonText: 'RETRY'\n }\n};\n\nconst StartCancelAction = ({\n onActionClick,\n renewFlow,\n propName,\n buttonName,\n ButtonRenderer,\n buttonProps,\n onError,\n recordEvent,\n fromError\n}) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const ButtonToRender = ButtonRenderer || (({ onClick, children }) => );\n\n const closeDialog = () => setIsDialogOpen(false);\n\n const openDialog = () => {\n recordEvent(`open${propName}Action`, 'workflow');\n setIsDialogOpen(true);\n };\n\n const handleActionResult = data => {\n if (!data) {\n onError();\n return;\n }\n renewFlow();\n };\n\n const onDialogSubmit = () => {\n const cancelAction = fromError ? 'WF-Error-Canceled' : 'WF-Canceled';\n const takeoverAction = fromError ? 'WF-Error-TakeOver' : 'WF-FlowOwnerTakeOver';\n const action = propName === 'cancel' ? cancelAction : takeoverAction;\n recordEvent(action, 'workflow');\n onActionClick()\n .then(data => {\n handleActionResult(data);\n })\n .catch(() => {\n handleActionResult();\n });\n closeDialog();\n };\n return (\n <>\n {buttonName}\n \n \n );\n};\n\nStartCancelAction.propTypes = {\n onActionClick: func.isRequired,\n renewFlow: func.isRequired,\n propName: string.isRequired,\n buttonName: string.isRequired,\n ButtonRenderer: node,\n buttonProps: shape({}),\n onError: func,\n recordEvent: func,\n fromError: bool\n};\n\nStartCancelAction.defaultProps = {\n ButtonRenderer: null,\n buttonProps: {},\n onError: f => f,\n recordEvent: f => f,\n fromError: false\n};\n\nexport default StartCancelAction;\n","import React, { useMemo } from 'react';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport {\n IconUsersFilled, IconFormCheckFilled, IconTriangleCircleFilled,\n IconXmarkCircle, IconArrowUpRightFromSquareSm, IconArrowsRotate\n} from '@jotforminc/svg-icons';\nimport IconTakeOver from '../assets/iconTakeover.svg';\nimport TaskSection from '../containers/TaskSection';\nimport StartCancelAction from '../components/StartCancelAction';\nimport ReassignComponent from '../components/Reassign.new';\n\nconst isWorkflowReleased = window?.isWorkflowReleased;\n\nconst getTakeOverText = ({ name, email, isGroupApproval }) => {\n const approver = name || email;\n if (approver) {\n return translationRenderer(`[1[{Complete}]] ${approver}[2[{continueApprovalFlow}]]`)({\n renderer1: () => 'Complete',\n renderer2: () => '’s task yourself and continue the approval flow.'\n });\n }\n\n return translationRenderer(`[1[{Complete}]] ${isGroupApproval ? t(\"Group Approval's\") : t('this')} [2[{continueApprovalFlow}]]`)({\n renderer1: () => 'Complete',\n renderer2: () => 'task yourself and continue the approval flow.'\n });\n};\n\nexport const useActionComponents = props => {\n return useMemo(() => {\n const {\n approver,\n task,\n isCommentRequired,\n onTaskListRenew,\n submissionID,\n formID,\n onCancelClick,\n onStartOverClick,\n onError,\n ActionButton,\n recordEvent = f => f,\n isHIPAA,\n fromError,\n teamInfo,\n onRetryActionClick,\n isGroupApproval = false\n } = props;\n\n let documentFormID = null;\n let documentSubmissionID = null;\n if (task && task?.properties && task?.properties?.documentFormID && task?.properties?.submissionID) {\n documentFormID = task?.properties?.documentFormID;\n documentSubmissionID = task?.properties?.submissionID;\n }\n return {\n takeover: () => ({\n title: t('Take Over'),\n icon: ,\n component: (\n <>\n \n {getTakeOverText({ name: approver?.name, email: approver?.email, isGroupApproval })}\n \n \n \n )\n }),\n reassign: () => ({\n title: t('Reassign'),\n icon: ,\n component: (\n <>\n \n \n )\n }),\n cancelFlow: () => ({\n button: (\n \n }}\n recordEvent={recordEvent}\n fromError={fromError}\n />)\n }),\n startOver: () => ({\n button: (\n \n }}\n recordEvent={recordEvent}\n fromError={fromError}\n />)\n }),\n openWorkflowBuilder: () => ({\n title: isWorkflowReleased ? t('View Flow') : t('View Approval Flow'),\n icon: ,\n onClick: () => {\n handleCustomNavigation(`/workflow/withForm/${formID}`, '_blank');\n recordEvent('WF-Error-VisitApprovalFlow', 'workflow');\n }\n }),\n openSignInbox: () => ({\n title: t('Track'),\n icon: ,\n onClick: () => {\n if (documentFormID && documentSubmissionID) {\n handleCustomNavigation(`/inbox/${documentFormID}/signAllDocuments/${documentSubmissionID}`);\n recordEvent('WF-Error-Visit', 'workflow');\n }\n }\n }),\n retryAction: () => ({\n button: (\n \n }}\n recordEvent={recordEvent}\n fromError={fromError}\n />)\n })\n };\n }, [props]);\n};\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgIconDropdownArrow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"255px\",\n height: \"255px\",\n style: {\n enableBackground: \"new 0 0 255 255\"\n },\n xmlSpace: \"preserve\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-drop-down\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"0,63.75 127.5,191.25 255,63.75\"\n}))));\nexport default SvgIconDropdownArrow;","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgUnsplashIcon = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z\",\n fill: \"#000000\",\n fillRule: \"nonzero\"\n})));\nexport default SvgUnsplashIcon;","/* eslint-disable max-lines */\n/* eslint-disable camelcase */\nimport React, {\n useState, useEffect, useRef\n} from 'react';\nimport { array, shape, string } from 'prop-types';\nimport DOMPurify from 'dompurify';\nimport { Button } from '@jotforminc/magnet';\nimport { rgba } from 'polished';\nimport classNames from 'classnames';\nimport { Portal } from '@jotforminc/uikit';\nimport Tracking from '@jotforminc/tracking';\nimport {\n IconPencilToSquare,\n IconFormCheckFilled,\n IconEnvelopeClosedFilled,\n IconArrowUpRightFromSquareSm,\n IconUserFilled\n} from '@jotforminc/svg-icons';\nimport { Unsupported, Preview } from '@jotforminc/preview';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport { handleCustomNavigation, safeJSONParse, escapeHTML } from '@jotforminc/utils';\nimport { WorkflowStatus } from '@jotforminc/placeholder';\nimport {\n SingleSubmissionViewWithButton, fetchQuestions, fetchSubmission, SingleSubmissionButtonContext\n} from '@jotforminc/single-submission-buttons';\nimport { getAllIntegrationsDetails } from '@jotforminc/integration-constants';\nimport IconAssignFormWF from '../assets/iconAssignFormFlow.svg';\nimport { decodeHTML, stripHTML } from '../utils';\nimport ApprovalOptions from '../components/ApprovalOptions';\nimport AvatarGroupWithPanel from '../components/AvatarGroupWithPanel';\nimport { isTeamApproval } from '../utils/helper';\n\nexport const INTEGRATION_DETAILS = getAllIntegrationsDetails();\n\nconst isWorkflowReleased = window?.isWorkflowReleased;\n\nconst getElementName = (type, subType) => {\n // eslint-disable-next-line default-case\n switch (true) {\n case type === 'workflow_assign_form':\n return 'Form';\n case type === 'workflow_approval' && subType && subType === 'workflow_approval_with_sign':\n return 'Approve & Sign';\n case type === 'workflow_approval':\n return 'Approval';\n }\n};\n\nconst getUsers = actionDetails => {\n const { newAssigneeEmail, newAssigneeUser } = actionDetails;\n\n const { previousAssigneeEmail, previousAssigneeUser } = actionDetails;\n\n return {\n next: {\n ...newAssigneeUser,\n name: newAssigneeUser?.name || newAssigneeEmail\n },\n prev: {\n ...previousAssigneeUser,\n name: previousAssigneeUser?.name || previousAssigneeEmail\n }\n };\n};\n\nconst getAssignee = actionDetails => {\n const { assigneeUser } = actionDetails;\n return assigneeUser;\n};\n\nconst getSystemUser = () => {\n return {\n name: 'Notification',\n avatarUrl: \"data:image/svg+xml,%3Csvg width='40' height='40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M15.5 13h9v4h-9z'/%3E%3Cpath d='M12.5 24v-5h15v5' stroke='%23fff' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath stroke='%23fff' stroke-width='1.7' d='M19.9 24v-5'/%3E%3Ccircle cx='12.5' cy='24.5' r='2.5' fill='%23fff'/%3E%3Ccircle cx='27.5' cy='24.5' r='2.5' fill='%23fff'/%3E%3Cpath fill='%23fff' d='M17.5 22h5v5h-5z'/%3E%3C/svg%3E\", // eslint-disable-line\n isSystem: true\n };\n};\n\nconst getGroupApproverUser = () => {\n return {\n name: 'Group Approval',\n avatarUrl: \"data:image/svg+xml,%3Csvg width='40' height='40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M15.5 13h9v4h-9z'/%3E%3Cpath d='M12.5 24v-5h15v5' stroke='%23fff' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath stroke='%23fff' stroke-width='1.7' d='M19.9 24v-5'/%3E%3Ccircle cx='12.5' cy='24.5' r='2.5' fill='%23fff'/%3E%3Ccircle cx='27.5' cy='24.5' r='2.5' fill='%23fff'/%3E%3Cpath fill='%23fff' d='M17.5 22h5v5h-5z'/%3E%3C/svg%3E\", // eslint-disable-line\n isSystem: true\n };\n};\n\nconst getTerminate = () => {\n return {\n name: 'Terminate',\n avatarUrl: \"data:image/svg+xml,%3Csvg width='44' height='44' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='22' cy='22' r='22' fill='%23C90909'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 13.667A3.333 3.333 0 0 0 13.667 17v10A3.333 3.333 0 0 0 17 30.333h10A3.333 3.333 0 0 0 30.333 27V17A3.333 3.333 0 0 0 27 13.667H17Z' fill='%23fff'/%3E%3C/svg%3E\"// eslint-disable-line\n };\n};\n\nconst getGroupTeamApproverUser = team => {\n return {\n name: team?.teamName,\n isSystem: true,\n team\n };\n};\n\nconst entryPropTypes = {\n actionDetails: shape({}),\n user: shape({ })\n};\n\nexport const statusTexts = {\n APPROVE: 'Approved',\n DENY: 'Denied',\n EXPIRE: 'Expired',\n AUTO: 'Automatically Finished',\n ESCALATE: 'Escalated',\n REASSIGN: 'Reassigned',\n CANCEL: 'Canceled',\n CUSTOM_EMAIL: 'Email Sent',\n REPLY: 'Replied',\n RESTART: 'Restarted',\n TASK: 'Waiting',\n REQUEST_MORE_INFO: 'Requested more info',\n EDIT_SUBMISSION: 'Edit submission',\n ASSIGN_FORM_SUBMISSION: 'Form Submitted',\n ASSIGN_FORM_NOTIFICATION_MAIL: 'Form Assigned',\n MULTIPLE_APPROVAL_MAIL: 'Group Approval',\n REMINDER: 'Reminder'\n};\n\nconst WFCategoryName = ({ actionDetails: { type } }) => (\n \n \n {isWorkflowReleased ? t('Workflow') : t('Approval Flow')}\n \n);\n\nWFCategoryName.propTypes = {\n actionDetails: shape({}).isRequired\n};\n\nconst WFNewSubmissionCategoryName = ({ actionDetails: { type } }) => (\n \n \n {t('New Submission')}\n \n);\n\nWFNewSubmissionCategoryName.propTypes = {\n actionDetails: shape({}).isRequired\n};\n\nconst WFCategoryLoadingName = () => (\n \n
\n \n
\n
\n\n);\n\nWFCategoryLoadingName.propTypes = {};\n\nconst EditSubmisisonCategoryName = ({ actionDetails: { type } }) => (\n \n \n {t('Edit Submission')}\n \n);\n\nEditSubmisisonCategoryName.propTypes = {\n actionDetails: shape({}).isRequired\n};\n\nconst EmailCategoryName = ({ actionType, actionDetails: { type } }) => (\n \n \n {t(actionType.toLowerCase())}\n \n);\n\nEmailCategoryName.propTypes = {\n actionType: string.isRequired,\n actionDetails: shape({}).isRequired\n};\n\nconst ReplyEntry = ({ actionDetails }) => {\n const { body } = actionDetails;\n const ref = useRef();\n const sanitizedBody = DOMPurify.sanitize(body);\n\n const [quotationCollapsed, setQuotationCollapsed] = useState(true);\n const [showButton, setShowButton] = useState(ref?.current?.querySelector('.quotationWrapper'));\n\n const handleExpand = () => setQuotationCollapsed(!quotationCollapsed);\n\n useEffect(() => {\n setShowButton(ref?.current?.querySelector('.quotationWrapper'));\n }, [body]);\n\n return (\n <>\n
\n
\n { showButton ? (\n \n ) : null }\n
\n \n );\n};\n\nReplyEntry.Name = EmailCategoryName;\n\nReplyEntry.propTypes = {\n ...entryPropTypes\n};\n\nReplyEntry.Status = ({ actionDetails: { subject, to } }) => {\n return (\n <>\n {subject}\n `).replace(/{subject}/g, escapeHTML(subject))\n }}\n />\n
\n {t('to: {to}').replace(/{to}/g, to)}\n
\n \n );\n};\n\nReplyEntry.Status.propTypes = {\n actionDetails: shape({}).isRequired\n};\n\nReplyEntry.Attachment = ({ actionDetails: { attachments } }) => {\n const [fileIndex, setFileIndex] = useState(0);\n const [previewVisibility, setPreviewVisibility] = useState(false);\n let uploadUrls = attachments && JSON.parse(attachments);\n\n if (Array.isArray(uploadUrls)) {\n uploadUrls = uploadUrls.map(uploadUrl => {\n const hiddenExtensions = ['JPEG', 'PNG', 'GIF', 'JPG', 'DOCX'];\n const fullName = /[^/]*$/.exec(uploadUrl)[0];\n const extension = fullName?.split('.')?.pop()?.toUpperCase();\n\n return {\n description: '',\n fileName: fullName,\n fileThumbnailUrl: uploadUrl,\n fileUrl: uploadUrl,\n previewUrl: uploadUrl,\n size: '',\n extension,\n isHidden: hiddenExtensions.indexOf(extension) > -1\n };\n });\n return (\n \n {uploadUrls.map(({ fileName, extension, isHidden }, i) => {\n return (\n {\n setFileIndex(i);\n setPreviewVisibility(true);\n }}\n >\n
\n \n
\n \n {fileName}\n \n \n );\n })}\n {previewVisibility && (\n setPreviewVisibility(false)}\n />\n )}\n
\n );\n } return null;\n};\n\nReplyEntry.Attachment.propTypes = ReplyEntry.Status.propTypes;\n\nconst ForwardEntry = props => ;\nForwardEntry.Name = EmailCategoryName;\nForwardEntry.Status = ReplyEntry.Status;\nForwardEntry.Attachment = ReplyEntry.Attachment;\n\nForwardEntry.propTypes = {\n ...entryPropTypes\n};\n\nconst AssignEntry = ({ user, actionDetails }) => {\n const { name, email } = user;\n const assignerID = name || email;\n\n const { assigneeName, assigneeEmail } = actionDetails;\n\n const assigneeID = email === assigneeEmail ? (\n assignerID\n ) : (assigneeName || assigneeEmail);\n\n return (\n
\n {translationRenderer('[1[{assignerID}]] [2[assigned]] this submission to [3[{assigneeID}]]')({\n renderer1: () => <>{assignerID},\n renderer2: text => {text},\n renderer3: () => {assigneeID}\n })}\n
\n );\n};\n\nAssignEntry.propTypes = {\n ...entryPropTypes\n};\n\nconst ReAssignEntry = ({ actionDetails }) => {\n const { comment } = actionDetails;\n return comment ?
{comment}
: null;\n};\n\nReAssignEntry.propTypes = {\n ...entryPropTypes\n};\n\nReAssignEntry.Name = WFCategoryName;\n\nReAssignEntry.Status = ({ /* user, */ actionDetails }) => {\n // const { name, email } = user;\n // const assignerID = name || email;\n\n const {\n // newAssigneeName,\n newAssigneeEmail,\n newAssigneeUser: { name: assigneeName }\n } = actionDetails;\n\n // const assigneeID = email === newAssigneeEmail ? (\n // assignerID\n // ) : (newAssigneeName || newAssigneeEmail);\n\n return (\n <>\n
\n {translationRenderer('[1[Reassigned]] to [2[{user}]]')({\n renderer1: text => {text},\n renderer2: () => {assigneeName || newAssigneeEmail}\n })}\n
\n \n );\n};\n\nReAssignEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nReAssignEntry.PopoverDescription = ({ /* user, */ actionDetails }) => {\n const {\n newAssigneeEmail,\n newAssigneeUser: { name: assigneeName }\n } = actionDetails;\n\n return t('to: {user}.').replace(/{user}/g, assigneeName || newAssigneeEmail);\n};\n\nReAssignEntry.PopoverDescription.propTypes = {\n ...entryPropTypes\n};\n\nconst requestMoreInfoEntry = {};\n\nrequestMoreInfoEntry.propTypes = {\n ...entryPropTypes\n};\nrequestMoreInfoEntry.Name = WFCategoryName;\n\nrequestMoreInfoEntry.Status = ({ actionDetails }) => {\n const { assigneeUser = {}, assigneeEmail = '' } = actionDetails;\n const { name, email } = assigneeUser;\n return (\n <>\n
\n {translationRenderer('[1[Requested more info]] from [2[{userDetails}]]')({\n renderer1: text => {text},\n renderer2: () => {name || email || assigneeEmail}\n })}\n
\n \n );\n};\n\nrequestMoreInfoEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nrequestMoreInfoEntry.Attachment = ({ actionDetails }) => {\n const { attachments } = actionDetails;\n\n const [fileIndex, setFileIndex] = useState(0);\n const [previewVisibility, setPreviewVisibility] = useState(false);\n let uploadUrls = attachments && JSON.parse(attachments);\n if (!attachments || !uploadUrls || uploadUrls?.length === 0) {\n return null;\n }\n\n if (Array.isArray(uploadUrls)) {\n uploadUrls = uploadUrls.map(uploadUrl => {\n const hiddenExtensions = ['JPEG', 'PNG', 'GIF', 'JPG', 'DOCX'];\n const fullName = /[^/]*$/.exec(uploadUrl)[0];\n const extension = fullName?.split('.')?.pop()?.toUpperCase();\n\n return {\n description: '',\n fileName: fullName,\n fileThumbnailUrl: uploadUrl,\n fileUrl: uploadUrl,\n previewUrl: uploadUrl,\n size: '',\n extension,\n isHidden: hiddenExtensions.indexOf(extension) > -1\n };\n });\n return (\n \n {uploadUrls.map(({ fileName, extension, isHidden }, i) => {\n return (\n {\n setFileIndex(i);\n setPreviewVisibility(true);\n }}\n >\n
\n \n
\n \n {fileName}\n \n \n );\n })}\n {previewVisibility && (\n setPreviewVisibility(false)}\n />\n )}\n \n );\n } return null;\n};\n\nrequestMoreInfoEntry.Attachment.propTypes = {\n ...entryPropTypes\n};\n\nconst undoLoadingEntry = {};\n\nundoLoadingEntry.propTypes = {\n};\n\nundoLoadingEntry.Name = WFCategoryName;\n\nundoLoadingEntry.Status = () => {\n return (\n
\n \n
\n );\n};\n\nundoLoadingEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst mockApproveDenyEntry = ({ actionDetails, user }) => {\n const { comment, signature } = actionDetails;\n return (\n <>\n {/* eslint-disable-next-line no-nested-ternary */}\n {user?.username === '!workflow_system'\n ? null // \n : (\n <>\n {comment ?
{comment}
: null}\n {signature ?
{`${user.username}'s
: null}\n \n )}\n \n );\n};\n\nmockApproveDenyEntry.propTypes = {\n};\n\nmockApproveDenyEntry.Name = WFCategoryName;\n\nmockApproveDenyEntry.Status = ({\n actionDetails: {\n text, buttonColor: color, type, assigneeEmail, assigneeUser: { name } = {}\n },\n user: { username, email }\n}) => {\n const isSystem = username === '!workflow_system';\n const hideBehalf = isSystem || (!name && !assigneeEmail) || assigneeEmail === email;\n const badgeText = statusTexts[text?.toUpperCase()] || text;\n const badgeClass = type?.toLowerCase();\n const displayName = name || assigneeEmail;\n const contentText = `${isSystem ? \"[1[{user}'s]] task was automatically\" : ''} [2[{badgeText}]] ${hideBehalf ? '' : 'on behalf of [3[{user}]]'}`;\n return (\n <>\n
\n {translationRenderer(contentText)({\n renderer1: usernameText => {usernameText.replace('{user}', displayName)},\n renderer2: () => {t(badgeText)},\n renderer3: usernameText => {usernameText.replace('{user}', displayName)}\n })}\n
\n {isSystem\n ? (\n
\n {'{user} didn\\'t take any action in the time allowed.'.replace(/{user}/, name || assigneeEmail)}\n
\n )\n : null}\n \n );\n};\n\nmockApproveDenyEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst editSubmissionEntry = {};\n\neditSubmissionEntry.propTypes = {\n ...entryPropTypes\n};\n\neditSubmissionEntry.Name = EditSubmisisonCategoryName;\n\neditSubmissionEntry.Status = ({ actionDetails }) => {\n const { assigneeUser: { name, email } = {}, assigneeEmail } = actionDetails;\n const actionOwner = name || email || assigneeEmail || 'Form User';\n\n return (\n <>\n
\n \n {' '}\n {actionOwner}\n \n {' '}\n edited the submission.\n
\n \n );\n};\n\neditSubmissionEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst UserNoAction = ({ user }) => (\n
\n {user.avatarUrl ? (\n \n ) : null}\n {t('{user} did not complete this submission in the time allowed.').replace(/{user}/g, user.name)}\n
\n);\n\nUserNoAction.propTypes = {\n user: shape({}).isRequired\n};\n\nconst EscalateEntry = {};\n\nEscalateEntry.propTypes = {\n ...entryPropTypes\n};\n\nEscalateEntry.user = getSystemUser;\n\nEscalateEntry.Name = WFCategoryName;\n\n// Please dont use dangerouslySetInnerHTML for translations, its dangerous >_<\nEscalateEntry.Status = ({ actionDetails }) => {\n const { prev, next } = getUsers(actionDetails);\n const { fromMultipleApproval } = actionDetails;\n const displayName = fromMultipleApproval ? 'Group Approval' : (prev.name || prev.email);\n return (\n <>\n
\n {translationRenderer(\"[1[{prevName}'s]] task has been [2[Escalated]] to [3[{nextName}]]\")({\n renderer1: text => {text.replace(/{prevName}/g, displayName)},\n renderer2: text => {text},\n renderer3: () => {next.name || next.email}\n })}\n
\n
\n {t('{prevName} didn\\'t take any action in the time allowed.').replace(/{prevName}/g, displayName)}\n
\n \n );\n};\n\nEscalateEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nEscalateEntry.PopoverDescription = ({ actionDetails }) => {\n const { next } = getUsers(actionDetails);\n return t('to: {nextName}').replace(/{nextName}/g, next.name || next.email);\n};\n\nEscalateEntry.PopoverDescription.propTypes = {\n ...entryPropTypes\n};\n\nconst ExpiredEntry = {};\n\nExpiredEntry.propTypes = {\n ...entryPropTypes\n};\n\nExpiredEntry.user = getSystemUser;\n\nExpiredEntry.Name = WFCategoryName;\n\nExpiredEntry.Status = ({ actionDetails }) => {\n const user = getAssignee(actionDetails);\n const { fromMultipleApproval } = actionDetails;\n const displayName = fromMultipleApproval ? 'Group Approval' : user?.name || user?.email;\n return (\n
\n
\n {translationRenderer('[1[{user}]] task was [2[Expired]]')({\n renderer1: text => {text.replace('{user}', displayName)},\n renderer2: text => {text}\n })}\n
\n
\n {t(\"{user} didn't take any action in the time allowed.\").replace('{user}', displayName)}\n
\n
\n );\n};\n\nExpiredEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst CompleteEntry = ({ actionDetails }) => {\n const { type } = actionDetails;\n const { prev } = getUsers(actionDetails);\n const typeText = t(statusTexts[type]);\n return (\n
\n
\n {translationRenderer('This submission has [1[Automatically Finished]] as [2[{typeText}]]')({\n renderer1: text => {text},\n renderer2: () => {typeText}\n })}\n
\n \n
\n );\n};\n\nCompleteEntry.propTypes = {\n ...entryPropTypes\n};\n\nconst ApproveRejectEntry = ({ actionDetails, user }) => {\n const { comment, signature } = actionDetails;\n return (\n <>\n {/* eslint-disable-next-line no-nested-ternary */}\n {user?.username === '!workflow_system'\n ? null // \n : (\n <>\n {comment ?
{comment}
: null}\n {signature ?
{`${user.username}'s
: null}\n \n )}\n \n );\n};\n\nApproveRejectEntry.user = (actionDetails, user) => (\n user?.username === '!workflow_system' ? getSystemUser() : { ...user, color: actionDetails?.buttonColor }\n);\n\nApproveRejectEntry.propTypes = {\n ...entryPropTypes\n};\n\nApproveRejectEntry.Status = ({\n actionDetails: {\n text, buttonColor: color, type, assigneeEmail, assigneeUser: { name } = {}, title, takenOver, fromMultipleApproval\n },\n user: { username, email }\n}) => {\n const isSystem = username === '!workflow_system';\n const hideBehalfEmail = assigneeEmail?.toLowerCase() === email?.toLowerCase();\n const hideBehalf = (!takenOver || isSystem) && (isSystem || (!name && !assigneeEmail) || hideBehalfEmail || (!username && !email && (name || assigneeEmail)));\n const badgeText = statusTexts[text?.toUpperCase()] || text;\n const badgeClass = type?.toLowerCase();\n const displayName = fromMultipleApproval ? 'Group Approval' : name || assigneeEmail;\n const contentText = `${isSystem ? \"[1[{user}'s]] task was automatically\" : ''} [2[{badgeText}]] ${hideBehalf ? '' : ' on behalf of [3[{user}]]'}`;\n return (\n <>\n {title ? (\n {translationRenderer('[1[{taskTitle}]] Step')({ renderer1: () => <>{title} })}\n ) : null}\n
\n {translationRenderer(contentText)({\n renderer1: usernameText => {usernameText.replace('{user}', displayName)},\n renderer2: () => {t(badgeText)},\n renderer3: usernameText => {usernameText.replace('{user}', displayName)}\n })}\n
\n {isSystem\n ? (\n
\n {'{user} didn\\'t take any action in the time allowed.'.replace(/{user}/, displayName)}\n
\n )\n : null}\n \n );\n};\n\nApproveRejectEntry.Attachment = ({ actionDetails: { attachment } }) => {\n const [fileIndex, setFileIndex] = useState(0);\n const [previewVisibility, setPreviewVisibility] = useState(false);\n let uploadUrls = [];\n if (attachment && attachment?.url) {\n uploadUrls.push(attachment?.url);\n }\n\n if (uploadUrls && Array.isArray(uploadUrls) && uploadUrls?.length > 0) {\n uploadUrls = uploadUrls?.map(uploadUrl => {\n const hiddenExtensions = ['JPEG', 'PNG', 'GIF', 'JPG', 'DOCX'];\n const fullName = /[^/]*$/.exec(uploadUrl)[0];\n const extension = fullName?.split('.')?.pop()?.toUpperCase();\n\n return {\n description: '',\n fileName: fullName,\n fileThumbnailUrl: uploadUrl,\n fileUrl: uploadUrl,\n previewUrl: uploadUrl,\n size: '',\n extension,\n isHidden: hiddenExtensions?.indexOf(extension) > -1\n };\n });\n return (\n \n {uploadUrls?.map(({ fileName, extension, isHidden }, i) => {\n return (\n {\n setFileIndex(i);\n setPreviewVisibility(true);\n }}\n >\n
\n \n
\n \n {fileName}\n \n \n );\n })}\n {previewVisibility && (\n setPreviewVisibility(false)}\n />\n )}\n \n );\n } return null;\n};\n\nApproveRejectEntry.Attachment.propTypes = {\n ...entryPropTypes\n};\n\nApproveRejectEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nApproveRejectEntry.Name = WFCategoryName;\n\nconst MultipleApproveReject = ({ actionDetails, user }) => {\n const { comment, signature } = actionDetails;\n return (\n <>\n {/* eslint-disable-next-line no-nested-ternary */}\n {user?.username === '!workflow_system'\n ? null // \n : (\n <>\n {comment ?
{comment}
: null}\n {signature ?
{`${user.username}'s
: null}\n \n )}\n \n );\n};\n\nMultipleApproveReject.user = actionDetails => (\n isTeamApproval(actionDetails?.subType || actionDetails?.type, actionDetails?.team) ? getGroupTeamApproverUser(actionDetails?.team) : getGroupApproverUser()\n);\n\nMultipleApproveReject.propTypes = {\n ...entryPropTypes\n};\n\nMultipleApproveReject.Status = ({\n actionDetails: {\n text = '', buttonColor: color, type, subtaskHistory, title, approvalOptions, subType, sentDate, cancelReason, team = null\n }\n}) => {\n const badgeText = statusTexts[text?.toUpperCase()] || text;\n const badgeClass = type?.toLowerCase();\n const filteredsubTaskHistory = subtaskHistory?.filter(history => history?.actionDetails?.assigneeUser);\n const subtaskActionDetails = filteredsubTaskHistory?.map(history => history?.actionDetails);\n const parsedDataForWorkflow = filteredsubTaskHistory?.map(({\n actionDetails, timestamp, user\n }) => {\n const {\n buttonColor,\n assigneeUser,\n outcomeInfo,\n notRequired,\n notQualifiedReason = null,\n comment,\n takenOver: subtaskTakenOver,\n signature\n } = actionDetails;\n\n const {\n name, status, email, avatarUrl\n } = assigneeUser || {};\n\n const {\n username, email: userEmail, name: userName, avatarUrl: userAvatarUrl\n } = user;\n const userValue = name || email;\n const contentText = subtaskTakenOver ? `on behalf of ${userValue}` : '';\n\n return {\n name: !subtaskTakenOver || Array.isArray(user) ? name : userName || username,\n email: !subtaskTakenOver || Array.isArray(user) ? email : userEmail,\n avatarUrl: !subtaskTakenOver || Array.isArray(user) ? avatarUrl : userAvatarUrl,\n status,\n timestamp,\n comment,\n properties: {\n outcomeInfo, notRequired, contentText, notQualifiedReason\n },\n notRequired,\n notQualifiedReason,\n signature: signature?.value,\n style: { '--outcome-color': buttonColor }\n };\n });\n return (\n <>\n {title ? (\n {translationRenderer('[1[{taskTitle}]] Step')({ renderer1: () => <>{title} })}\n ) : null}\n {!cancelReason && (\n
\n {t(badgeText)}\n
\n )}\n
\n \n
\n \n );\n};\n\nMultipleApproveReject.Attachment = ({ actionDetails: { attachment } }) => {\n const [fileIndex, setFileIndex] = useState(0);\n const [previewVisibility, setPreviewVisibility] = useState(false);\n let uploadUrls = [];\n if (attachment && attachment?.url) {\n uploadUrls.push(attachment?.url);\n }\n\n if (uploadUrls && Array.isArray(uploadUrls) && uploadUrls?.length > 0) {\n uploadUrls = uploadUrls?.map(uploadUrl => {\n const hiddenExtensions = ['JPEG', 'PNG', 'GIF', 'JPG', 'DOCX'];\n const fullName = /[^/]*$/.exec(uploadUrl)[0];\n const extension = fullName?.split('.')?.pop()?.toUpperCase();\n\n return {\n description: '',\n fileName: fullName,\n fileThumbnailUrl: uploadUrl,\n fileUrl: uploadUrl,\n previewUrl: uploadUrl,\n size: '',\n extension,\n isHidden: hiddenExtensions?.indexOf(extension) > -1\n };\n });\n return (\n \n {uploadUrls?.map(({ fileName, extension, isHidden }, i) => {\n return (\n {\n setFileIndex(i);\n setPreviewVisibility(true);\n }}\n >\n
\n \n
\n \n {fileName}\n \n \n );\n })}\n {previewVisibility && (\n setPreviewVisibility(false)}\n />\n )}\n \n );\n } return null;\n};\n\nMultipleApproveReject.Attachment.propTypes = {\n ...entryPropTypes\n};\n\nMultipleApproveReject.Status.propTypes = {\n ...entryPropTypes\n};\n\nMultipleApproveReject.Name = WFCategoryName;\n\nconst ErrorEntry = {};\nErrorEntry.Name = WFCategoryName;\n\nErrorEntry.Status = () => (\n
\n {translationRenderer(isWorkflowReleased ? '[1[Canceled]] flow.' : '[1[Canceled]] approval flow.')({\n renderer1: text => {text}\n })}\n
\n);\n\nconst RestartEntry = {};\nRestartEntry.Name = WFCategoryName;\n\nRestartEntry.Status = () => {\n return (\n
\n {translationRenderer(isWorkflowReleased ? '[1[Restarted]] flow.' : '[1[Restarted]] approval flow.')({\n renderer1: text => {text}\n })}\n
\n );\n};\n\nconst AssignFormNotificationEntry = {};\n\nAssignFormNotificationEntry.user = getSystemUser;\nAssignFormNotificationEntry.Status = ({ actionDetails }) => {\n const {\n to, subject, formTitle, assigneeUser\n } = actionDetails;\n const userName = assigneeUser?.name || assigneeUser?.username || to;\n return (\n <>\n
\n {translationRenderer('[1[{form}]] [2[{sent}]] to [3[{to}]] [4[{subject}]]')({\n renderer1: formText => {formText.replace('{form}', formTitle)},\n renderer2: sentText => {sentText.replace('{sent}', ' sent')},\n renderer3: toText => {toText.replace('{to}', userName)},\n renderer4: subjectText =>
{stripHTML(decodeHTML(subjectText.replace('{subject}', subject)))}
\n })}\n
\n \n );\n};\nAssignFormNotificationEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nAssignFormNotificationEntry.Name = WFCategoryName;\n\nconst SignDocumentNotification = {};\n\nconst ViewSignInboxButton = ({ documentFormID, submissionID }) => {\n const redirectToBuild = () => handleCustomNavigation(`/inbox/${documentFormID}/signAllDocuments/${submissionID}`);\n return (\n <>\n \n View Sign Inbox\n \n \n );\n};\n\nViewSignInboxButton.propTypes = {\n submissionID: string,\n documentFormID: string\n};\n\nViewSignInboxButton.defaultProps = {\n submissionID: '',\n documentFormID: ''\n};\n\nconst ReminderEntry = {};\n\nReminderEntry.user = getSystemUser;\nReminderEntry.Status = ({ actionDetails }) => {\n const {\n to, subject, elementType, elementSubType\n } = actionDetails;\n return (\n <>\n
\n {translationRenderer('[1[{element}]] Step - Email sent to [2[{to}]] [3[{subject}]]')({\n renderer1: elementName => {elementName.replace('{element}', getElementName(elementType, elementSubType))},\n renderer2: toText => {toText.replace('{to}', to)},\n renderer3: subjectText => (\n
\n \n {' '}\n { subjectText.replace('{subject}', subject)}\n \n
\n )\n })}\n
\n \n );\n};\n\nReminderEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nReminderEntry.Name = WFCategoryName;\n\nSignDocumentNotification.user = getSystemUser;\nSignDocumentNotification.Status = ({ actionDetails }) => {\n const {\n documentTitle\n } = actionDetails;\n return (\n <>\n
\n {translationRenderer('[1[{title}]] sent for signature. [2[{viewSignInbox}]]')({\n renderer1: subjectText => {stripHTML(decodeHTML(subjectText.replace('{title}', documentTitle)))},\n renderer2: () =>
\n })}\n
\n \n );\n};\nSignDocumentNotification.Status.propTypes = {\n ...entryPropTypes\n};\n\nSignDocumentNotification.Name = WFCategoryName;\n\nconst SignEntry = {};\n\nSignEntry.user = getSystemUser;\nSignEntry.Status = ({\n actionDetails\n}) => {\n const {\n text, buttonColor: color, type, documentTitle\n } = actionDetails;\n const badgeText = statusTexts[text?.toUpperCase()] || text;\n const badgeClass = type?.toLowerCase();\n return (\n <>\n
\n
\n {\n translationRenderer('[1[{status}]]')({\n renderer1: subjectText => (\n <>\n \n {stripHTML(decodeHTML(subjectText.replace('{status}', badgeText)))}\n \n {' '}\n \n )\n })\n }\n {stripHTML(decodeHTML(documentTitle))}\n
\n {translationRenderer('[1[{viewSignInbox}]]')({\n renderer1: () => \n })}\n
\n \n );\n};\n\nSignEntry.Status.propTypes = {\n ...entryPropTypes\n};\nSignEntry.Name = WFCategoryName;\n\nconst MailEntry = {};\n\nMailEntry.user = getSystemUser;\nMailEntry.Status = ({ actionDetails }) => {\n const {\n to, subject, subType, reason\n } = actionDetails;\n switch (reason) {\n case 'ASSIGN_FORM_NOTIFICATION_MAIL':\n return AssignFormNotificationEntry.Status({ actionDetails });\n case 'SEND_SIGN_NOTIFICATION':\n return SignDocumentNotification.Status({ actionDetails });\n case 'SIGN_DOCUMENT':\n return SignEntry.Status({ actionDetails });\n case 'SEND_REMINDER':\n return ReminderEntry.Status({ actionDetails });\n default:\n const emailList = to?.split(',')?.filter(Boolean)?.join(',') || '';\n return (\n <>\n
\n {translationRenderer(['workflow_send_approval_report', 'workflow_send_default_report'].includes(subType) ? 'Approval Report Email sent to [1[{to}]] [2[{subject}]]'\n : 'Email sent to [1[{to}]] [2[{subject}]]')({\n renderer1: toText => {toText.replace('{to}', emailList.replace(/,/g, ', '))},\n renderer2: subjectText =>
{stripHTML(decodeHTML(subjectText.replace('{subject}', subject)))}
\n })}\n
\n \n );\n }\n};\nMailEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nMailEntry.Name = WFCategoryName;\n\nconst MultipleApprovalMail = {};\n\nMultipleApprovalMail.user = getSystemUser;\nMultipleApprovalMail.Status = ({ actionDetails }) => {\n const {\n title, reason, approvalOptions, subType, team = null\n } = actionDetails;\n const { option, value = null } = (approvalOptions && safeJSONParse(approvalOptions, approvalOptions)) || {};\n switch (reason) {\n case 'TEAM_START':\n return (\n <>\n
\n {translationRenderer('[1[{title}]] [2[{sent}]] to [3[group approval]] [4[{approverOptions}]]')({\n renderer1: titleText => {titleText.replace('{title}', title)},\n renderer2: sentText => {sentText.replace('{sent}', ' request sent')},\n renderer3: () => {team?.teamName},\n renderer4: () => (\n
\n \n
\n )\n })}\n
\n \n );\n case 'SEND_REMINDER':\n const overriddenActionDetails = { ...actionDetails, to: actionDetails?.mergeTo || actionDetails?.to };\n return ReminderEntry.Status({ actionDetails: overriddenActionDetails });\n default:\n return (\n <>\n
\n {translationRenderer('[1[{title}]] [2[{sent}]] to [3[group approval]] [4[{approverOptions}]]')({\n renderer1: titleText => {titleText.replace('{title}', title)},\n renderer2: sentText => {sentText.replace('{sent}', ' sent')},\n renderer3: text => {text},\n renderer4: () => (\n
\n \n
\n )\n })}\n
\n \n );\n }\n};\nMultipleApprovalMail.Status.propTypes = {\n ...entryPropTypes\n};\n\nMultipleApprovalMail.Name = WFCategoryName;\n\nconst AssignFormSubmissionEntry = {};\n\nAssignFormSubmissionEntry.user = getAssignee;\nAssignFormSubmissionEntry.Status = ({ actionDetails, timestamp, name }) => {\n const formID = actionDetails?.formID;\n const submissionID = actionDetails?.submissionID;\n\n const { formTitle } = actionDetails;\n const [question, setQuestion] = useState({});\n const [submission, setSubmission] = useState({});\n const [singleSubmission, setSingleSubmission] = useState(false);\n const [isPanelOpen, setPanelOpen] = useState(false);\n\n const containers = ['.jSheetSingleSub', '.jfInbox-submission-wrapper'];\n let portalContainer = 'body';\n let insideContainer = false;\n\n containers.forEach(container => {\n if (global.document.querySelector(container)) {\n portalContainer = container;\n insideContainer = true;\n }\n });\n\n const getSubmissionInfo = async () => {\n try {\n if (Object.keys(question).length === 0 || Object.keys(submission).length === 0) {\n const questionRes = await fetchQuestions(formID, 'inbox');\n const submissionRes = await fetchSubmission(submissionID, 'inbox');\n setQuestion(questionRes);\n setSubmission(submissionRes);\n }\n setSingleSubmission(true);\n // JS Callstack - animation needs\n // This component/file needs to be refactored.\n setTimeout(() => {\n document.body.classList.add('jfSingleSubmissionView-standalone-isVisible');\n });\n } catch (e) {\n Tracking.captureException(e);\n setQuestion({});\n setSubmission({});\n setSingleSubmission(true);\n if (e?.response?.status === 401) {\n handleCustomNavigation(`/inbox/${formID}/${submissionID}`, '_blank');\n setPanelOpen(false);\n }\n }\n };\n\n useEffect(() => {\n return () => document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n }, []);\n\n useEffect(() => {\n if (isPanelOpen === submissionID) {\n getSubmissionInfo();\n } else {\n document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n }\n }, [isPanelOpen, submissionID]);\n\n return (\n \n
\n {translationRenderer('[1[{newSubmission}]] [2[{formName}]] [3[{viewSubmission}]] ')({\n renderer1: newSubmission => {newSubmission.replace('{newSubmission}', 'New submission on ')},\n renderer2: formNameText => {formNameText.replace('{formName}', formTitle)},\n renderer3: () => (\n <>\n
\n setPanelOpen(submissionID)}\n style={{ display: 'flex', alignItems: 'center' }}\n >\n View Submission\n \n
\n \n )\n })}\n
\n\n \n {isPanelOpen === submissionID ? (\n
\n
\n {singleSubmission && (\n \n )}\n
\n
\n ) : null}\n
\n
\n );\n};\nAssignFormSubmissionEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nAssignFormSubmissionEntry.Name = WFNewSubmissionCategoryName;\n\nconst AssignTaskCompleteEntry = {};\n\nAssignTaskCompleteEntry.user = getAssignee;\nAssignTaskCompleteEntry.Status = ({\n actionDetails, timestamp, name, actionType\n}) => {\n const formID = actionDetails?.taskFormID;\n const submissionID = actionDetails?.submissionID;\n const outcomeInfo = actionDetails?.outcomeInfo;\n\n const {\n text, type, buttonColor\n } = outcomeInfo;\n\n const badgeText = statusTexts[text?.toUpperCase()] || text;\n const badgeClass = type?.toLowerCase();\n\n const { title } = actionDetails;\n const [question, setQuestion] = useState({});\n const [submission, setSubmission] = useState({});\n const [singleSubmission, setSingleSubmission] = useState(false);\n const [isPanelOpen, setPanelOpen] = useState(false);\n\n const containers = ['.jSheetSingleSub', '.jfInbox-submission-wrapper'];\n let portalContainer = 'body';\n let insideContainer = false;\n\n containers.forEach(container => {\n if (global.document.querySelector(container)) {\n portalContainer = container;\n insideContainer = true;\n }\n });\n\n const getSubmissionInfo = async () => {\n try {\n if (Object.keys(question).length === 0 || Object.keys(submission).length === 0) {\n const questionRes = await fetchQuestions(formID, 'inbox');\n const submissionRes = await fetchSubmission(submissionID, 'inbox');\n setQuestion(questionRes);\n setSubmission(submissionRes);\n }\n setSingleSubmission(true);\n // JS Callstack - animation needs\n // This component/file needs to be refactored.\n setTimeout(() => {\n document.body.classList.add('jfSingleSubmissionView-standalone-isVisible');\n });\n } catch (e) {\n Tracking.captureException(e);\n setQuestion({});\n setSubmission({});\n setSingleSubmission(true);\n if (e?.response?.status === 401) {\n handleCustomNavigation(`/inbox/${submissionID}`, '_blank');\n setPanelOpen(false);\n }\n }\n };\n\n useEffect(() => {\n return () => document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n }, []);\n\n useEffect(() => {\n if (isPanelOpen === submissionID) {\n getSubmissionInfo();\n } else {\n document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n }\n }, [isPanelOpen, submissionID]);\n\n return (\n \n {title ? (\n {translationRenderer('[1[{taskTitle}]]')({ renderer1: () => <>{title} })}\n ) : null}\n
\n {translationRenderer('[1[{formName}]] [2[{viewSubmission}]] ')({\n renderer1: () => {t(badgeText)},\n renderer2: () => (\n <>\n
\n setPanelOpen(submissionID)}\n style={{ display: 'flex', alignItems: 'center' }}\n >\n View Task\n \n
\n \n )\n })}\n
\n\n \n {isPanelOpen === submissionID ? (\n
\n
\n {singleSubmission && (\n \n )}\n
\n
\n ) : null}\n
\n
\n );\n};\nAssignTaskCompleteEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nAssignTaskCompleteEntry.Name = WFCategoryName;\n\nconst restartEditEntry = {};\nrestartEditEntry.user = getSystemUser;\nrestartEditEntry.Name = WFCategoryName;\nrestartEditEntry.Status = () => {\n return (\n
\n {translationRenderer('Due to submission edit, the approval flow automatically [1[restarted]].')({\n renderer1: text => {text}\n })}\n
\n );\n};\n\nconst ViewIntegrationDetails = ({ links }) => {\n if (!Array.isArray(links)) {\n return null;\n }\n\n return links.map(l => (\n handleCustomNavigation(`${l}`)}\n endIcon={IconArrowUpRightFromSquareSm}\n >\n {l}\n \n )\n );\n};\n\nViewIntegrationDetails.propTypes = {\n links: array\n};\n\nViewIntegrationDetails.defaultProps = {\n links: []\n};\n\nconst IntegrationTriggerEntry = {};\nIntegrationTriggerEntry.user = ({ partner }) => {\n const details = INTEGRATION_DETAILS[partner];\n return {\n name: details?.text,\n avatarUrl: details?.icon\n };\n};\nIntegrationTriggerEntry.Name = WFCategoryName;\nIntegrationTriggerEntry.Status = ({ actionDetails }) => {\n const {\n result, integrationAccountName, action, links, partner = '', errorDetails = ''\n } = actionDetails;\n const details = INTEGRATION_DETAILS[partner];\n const [showError, handleShowError] = useState(false);\n const integrationErrorText = 'Unable to complete the action.';\n const getErrorDetails = () => {\n if (typeof errorDetails === 'string') {\n try {\n const parsed = JSON.parse(errorDetails);\n if (parsed?.[0]?.message) {\n return parsed?.[0]?.message;\n }\n } catch (e) {\n return errorDetails;\n }\n }\n };\n\n if (result === 'ERRORED') {\n return (\n <>\n
\n \n {t(integrationErrorText)}\n
\n \n
\n {showError && getErrorDetails() && (\n
\n {getErrorDetails()}\n
\n )}\n
\n
\n \n );\n }\n\n return (\n <>\n
\n {translationRenderer('[1[actionTypeName]]')({\n renderer1: () => {details?.actions?.find(e => e.value === action)?.text}\n })}\n
\n
\n
\n \n {integrationAccountName}\n
\n
1 && 'multiple'].filter(Boolean).join(' ')}>\n \n
\n
\n \n );\n};\n\nIntegrationTriggerEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst TerminatedEntry = {};\nTerminatedEntry.user = () => getTerminate();\nTerminatedEntry.Name = WFCategoryName;\nTerminatedEntry.Status = ({ actionDetails }) => {\n const {\n reasonOfTerminate\n } = actionDetails;\n\n return (\n <>\n
\n {t('Flow Terminated.')}\n
\n
\n \n {reasonOfTerminate}\n \n
\n \n );\n};\n\nTerminatedEntry.Status.propTypes = {\n ...entryPropTypes\n};\n\nconst TaskEntry = {};\nTaskEntry.propTypes = {\n ...entryPropTypes\n};\n\nconst EmailEntryTypes = {\n reply: ReplyEntry,\n forward: ForwardEntry\n};\n\nconst WorkFlowEntryTypes = {\n task: TaskEntry,\n // assign: AssignEntry,\n reassign: ReAssignEntry,\n escalate: EscalateEntry,\n approve_reject: ApproveRejectEntry,\n sign_document: SignEntry,\n expire: ExpiredEntry,\n cancel: ErrorEntry,\n restart: RestartEntry,\n // complete: CompleteEntry\n mail: MailEntry,\n multiple_approval_mail: MultipleApprovalMail,\n multiple_approve_reject: MultipleApproveReject,\n request_more_info: requestMoreInfoEntry,\n edit_submission: editSubmissionEntry,\n undo_loading: undoLoadingEntry,\n mock_approve_deny: mockApproveDenyEntry,\n restart_edit: restartEditEntry,\n assign_form_notification_mail: AssignFormNotificationEntry,\n sign_document_notification: SignDocumentNotification,\n assign_form_submission: AssignFormSubmissionEntry,\n reminder: ReminderEntry,\n integration_trigger: IntegrationTriggerEntry,\n terminated: TerminatedEntry,\n assign_task_complete: AssignTaskCompleteEntry\n};\n\nconst EntryTypes = {\n ...WorkFlowEntryTypes,\n ...EmailEntryTypes\n};\n\nexport const EntryCategories = {\n workflow: Object.keys(WorkFlowEntryTypes).map(e => e.toUpperCase()),\n email: Object.keys(EmailEntryTypes).map(e => e.toUpperCase()),\n all: Object.keys(EntryTypes).map(e => e.toUpperCase())\n};\n\n// eslint-disable-next-line max-len\nexport const entryFiltererGenerator = (category = 'all') => ({ actionType, actionDetails }) => {\n if (!EntryCategories[category].includes(actionType) || !actionDetails) return false;\n if (actionType === 'MAIL') {\n if (actionDetails?.reason === 'ASSIGN_FORM_NOTIFICATION_MAIL') {\n return true;\n }\n return (actionDetails?.type === 'custom_email' && actionDetails?.to !== '');\n }\n if (actionType === 'MULTIPLE_APPROVE_REJECT' && (actionDetails?.cancelReason === 'TAKEN_OVER' || actionDetails?.cancelReason === 'EXPIRED')) {\n return false;\n }\n return true;\n};\nexport const convertTasks = ({\n properties: { assigneeEmail, assigneeUser: user },\n status,\n id\n}) => {\n const el = {\n id,\n status,\n user,\n actionType: 'TASK',\n actionDetails: {}\n };\n\n el.user = el.user || { email: assigneeEmail };\n\n return el;\n};\nexport default EntryTypes;\n","import { FETCH_SUBMISSIONS_SUCCESS } from '../constants/actions';\nimport type { ActionType, ResultSet } from '../types';\n\nconst defaultResultSet = {\n count: 0,\n limit: 0,\n offset: 0,\n};\n\ntype AppState = {\n embedMode: string,\n fetchingSubmissions: boolean,\n isFormOwner: boolean,\n isReady: boolean,\n printMode: boolean,\n resultSet: ResultSet,\n}\n\nconst INITIAL_STATE = {\n embedMode: window._embedMode,\n fetchingSubmissions: false,\n isFormOwner: window?._presentation?.isFormOwner,\n isReady: window?._presentation?.viewStatus === 'COMPLETED',\n printMode: window._printMode,\n resultSet: (window._tableData && window._tableData.resultSet)\n ? window._tableData.resultSet : defaultResultSet,\n};\n\nexport default (state: AppState = INITIAL_STATE, action: ActionType): AppState => {\n switch (action.type) {\n case FETCH_SUBMISSIONS_SUCCESS: {\n return {\n ...state,\n resultSet: action.payload.resultSet,\n };\n }\n default: {\n return state;\n }\n }\n};\n","import type { Form, Question } from '@jotforminc/types';\nimport type {\n ActionType, ChartData, LinkSettings, Page, PageItem, ReportSettings,\n} from '../types';\nimport sanitizeChartData from '../utils/sanitizeChartData';\n\ntype PresentationState = {\n formID: string,\n title: string,\n chartData: ChartData,\n viewStatus: string,\n isFormOwner: boolean,\n workflowQuestions: Record,\n linkSettings: LinkSettings,\n form: Form,\n questions: Question[],\n reportItems: PageItem[],\n reportPages: Record,\n settings: ReportSettings,\n showJotFormBrandingOnReport: '0' | '1',\n userTimeZone: string,\n filters: Record | [],\n}\n\nconst INITIAL_STATE = {\n ...window._presentation,\n chartData: sanitizeChartData(window._presentation?.chartData || {}),\n};\n\nexport default (state: PresentationState = INITIAL_STATE, action: ActionType)\n: PresentationState => {\n switch (action.type) {\n default: {\n return state;\n }\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport withClickOutside from '../utils/HOCs/withClickOutside';\n\nconst RemoveBrandingFooter = ({\n isPaidUser,\n isOwner,\n referrerUrl,\n removeBranding\n}) => {\n let content = (\n \n {translationRenderer('[1[Upgrade your account]] to remove it.')({\n renderer1: text => (\n \n {text}\n \n )\n })}\n \n );\n\n if (isPaidUser) {\n content = (\n \n {translationRenderer('[1[Click here]] to remove it.')({\n renderer1: text => (\n \n {text}\n \n )\n })}\n \n );\n }\n\n if (!isOwner) {\n content = (\n \n {t('Contact resource owner to remove it.')}\n \n );\n }\n\n return (\n
\n {t('Remove Jotform Branding?')}\n {content}\n
\n );\n};\n\nRemoveBrandingFooter.propTypes = {\n isPaidUser: PropTypes.bool,\n isOwner: PropTypes.bool,\n referrerUrl: PropTypes.string,\n removeBranding: PropTypes.func\n};\n\nRemoveBrandingFooter.defaultProps = {\n isPaidUser: false,\n isOwner: false,\n referrerUrl: '',\n removeBranding: () => { }\n};\n\nexport default withClickOutside(RemoveBrandingFooter);\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses,\n onClickOutside,\n withClickOutsideWrapperClass,\n ...otherProps\n } = props;\n\n const wrapper = useRef(null);\n\n const handleClickOutside = event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || [...classList].some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, []);\n\n return (\n \n \n \n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string\n };\n\n WithClickOutside.defaultProps = {\n exceptionalClasses: null,\n withClickOutsideWrapperClass: null\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n","import { string } from 'prop-types';\n\nexport const BASE_JOTFORM_URL = 'https://www.jotform.com/';\nexport const PRICING_JOTFORM_URL = `${BASE_JOTFORM_URL}pricing/`;\n\nexport const UTM_PROP_SCHEME = {\n default: {\n source: 'source',\n medium: 'banner',\n campaing: 'campaign',\n content: 'content',\n term: 'term'\n },\n props: {\n source: string,\n medium: string,\n campaing: string,\n content: string,\n term: string\n }\n};\n\nexport const PRODUCT_CONFIGS = {\n reports: {\n appName: 'Reports',\n showAppName: true,\n bannerTagLine: 'Create your own Jotform Report - It’s free',\n buttonText: 'Create your own Report'\n },\n tables: {\n appName: 'Tables',\n showAppName: true,\n bannerTagLine: 'Create your own Jotform Table - It’s free',\n buttonText: 'Create your own Table'\n },\n forms: {\n appName: 'Forms',\n showAppName: false,\n bannerTagLine: 'Now create your own Jotform - It’s free!',\n buttonText: 'Create your own Jotform'\n },\n apps: {\n appName: 'Apps',\n showAppName: true,\n bannerTagLine: 'Create your own Jotform App - It’s free',\n buttonText: 'Create your own App'\n },\n store: {\n appName: 'Store Builder',\n showAppName: true,\n bannerTagLine: 'Create your own Jotform Store - It’s free',\n buttonText: 'Create your own Store'\n }\n};\n","export const utmParser = scheme => {\n return Object.keys(scheme)\n .map(key => `utm_${key}=${encodeURIComponent(scheme[key])}`)\n .join('&');\n};\n","import React, { useState } from 'react';\nimport {\n bool,\n func,\n node,\n oneOf,\n shape\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport RemoveBrandingFooter from './RemoveBrandingFooter';\nimport JotformLogo from '../assets/svg/jotform_21_logo.svg';\n\nimport {\n BASE_JOTFORM_URL,\n PRICING_JOTFORM_URL,\n PRODUCT_CONFIGS,\n UTM_PROP_SCHEME\n} from './constants';\nimport { utmParser } from '../utils';\n\nimport '../styles/_jfBrandingFooter.scss';\n\nconst BrandingFooter = ({\n activeUtmScheme, // in builder\n passiveUtmScheme, // shared\n showBranding, // generally user prop\n isPaidUser,\n isOwner,\n removeBranding,\n isPassive, // mode => builder/product\n brandingIcon,\n style,\n product,\n onClick\n}) => {\n const [showRemove, setShowRemove] = useState(false);\n\n if (!showBranding) {\n return null;\n }\n\n const handleClick = () => {\n if (onClick) {\n onClick();\n return;\n }\n if (isPassive) {\n window.open(`${BASE_JOTFORM_URL}?${utmParser(passiveUtmScheme)}`, '_blank');\n } else if (!showRemove) {\n setShowRemove(true);\n }\n };\n\n const {\n appName,\n showAppName,\n bannerTagLine,\n buttonText\n } = PRODUCT_CONFIGS[product] || PRODUCT_CONFIGS.reports;\n\n return (\n <>\n f}\n style={style}\n >\n
\n
\n {brandingIcon}\n
\n {showAppName && (\n
\n {t(appName)}\n
\n )}\n
\n
\n
\n {t(bannerTagLine)}\n
\n
\n {t(buttonText)}\n
\n
\n \n {!isPassive && showRemove && (\n setShowRemove(false)}\n withClickOutsideWrapperClass=\"jfBrandingFooter-removal forPage\"\n isPaidUser={isPaidUser}\n isOwner={isOwner}\n removeBranding={() => {\n setShowRemove(false);\n removeBranding();\n }}\n />\n )}\n \n );\n};\n\nBrandingFooter.propTypes = {\n activeUtmScheme: shape(UTM_PROP_SCHEME.props),\n passiveUtmScheme: shape(UTM_PROP_SCHEME.props),\n isPaidUser: bool,\n isOwner: bool,\n removeBranding: func,\n showBranding: bool,\n isPassive: bool,\n brandingIcon: node,\n style: shape({}),\n product: oneOf(['reports', 'forms', 'tables', 'apps', 'store']),\n onClick: func\n};\n\nBrandingFooter.defaultProps = {\n activeUtmScheme: UTM_PROP_SCHEME.default,\n passiveUtmScheme: UTM_PROP_SCHEME.default,\n isPaidUser: false,\n isOwner: false,\n removeBranding: () => {},\n showBranding: true,\n isPassive: true,\n brandingIcon: ,\n style: {},\n product: 'reports',\n onClick: null\n};\n\nexport default BrandingFooter;\n","export const safeJSONParse = (str, defVal = {}, allowObj = false) => {\n if (str) {\n if (typeof str === typeof {} && allowObj) {\n return str;\n }\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n};\n\nexport const getUrlParameter = name => {\n const _name = name.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n const regex = new RegExp(`[\\\\?&]${_name}=([^&#]*)`);\n const results = regex.exec(global.location?.search || global.window?.location?.search);\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n};\n\nexport const getUrlByCurrentLocale = url => {\n const { currentLocale, languageCodeURLPaths, JOTFORM_ENV } = global;\n if (currentLocale?.length === 5 && currentLocale?.include('-')) {\n const [languageCode] = currentLocale.split('-');\n if (typeof languageCodeURLPaths !== 'object' || Object.values(languageCodeURLPaths).includes(languageCode)) {\n return JOTFORM_ENV === 'PRODUCTION' ? `/${languageCode}${url}` : `https://www.jotform.com/${languageCode}${url}`;\n }\n }\n return JOTFORM_ENV === 'PRODUCTION' ? `${url}` : `https://www.jotform.com${url}`;\n};\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = to < 0 ? array.length + to : to;\n const item = array.splice(from, 1)[0];\n array.splice(startIndex, 0, item);\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = array.slice();\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const serialize = (obj, prefix) => {\n /* eslint-disable */\n const str = [];\n let p;\n for (p in obj) {\n if (obj.hasOwnProperty(p)) {\n const k = prefix ? `${prefix}[${p}]` : p;\n const v = obj[p];\n str.push((v !== null && typeof v === \"object\") ?\n serialize(v, k) :\n v !== null ? `${encodeURIComponent(k)}=${encodeURIComponent(v)}`: null) ;\n }\n }\n return str.filter(a => a).join(\"&\");\n /* eslint-enable */\n};\n\nexport const objectEntries = obj => {\n const ownProps = Object.keys(obj);\n let i = ownProps.length;\n const resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n};\n\nexport const hasUrlParamOf = (key, value) => {\n return new URLSearchParams(document?.location?.search).get(key) === value;\n};\n","import isElement from 'lodash/isElement';\n\nexport const createFormData = data => {\n return Object.keys(data)\n .map(key => `${key}=${window.encodeURIComponent(data[key])}`)\n .join('&');\n};\n\nexport const listenEnter = (e, callbackFN = () => undefined, stopPropagation = true) => {\n const { key = '', keyCode } = e;\n if ((key && key === 'Enter') || keyCode === 13) {\n if (stopPropagation) {\n e.stopPropagation(); // to prevent cardform selectNextQuestion\n }\n callbackFN();\n }\n};\n\nexport const loadJS = (id, src, onload) => {\n if (document.getElementById(id)) {\n return false;\n }\n\n const js = document.createElement('script');\n\n js.id = id;\n js.onload = onload;\n js.src = src;\n const fjs = document.getElementsByTagName('script')[0];\n if (fjs) {\n fjs.parentNode.insertBefore(js, fjs);\n } else {\n document.getElementsByTagName('head')[0].appendChild(js);\n }\n};\n\n/**\n * Select nearest parent matches with selector (unless it encounters stopSelector) according to _element.\n * @param _element\n * @param selector\n * @param stopSelector\n * @returns {*}\n */\nexport const closest = (_element, selector, stopSelector) => {\n let element = _element;\n let retval = null;\n while (element) {\n if (element.matches(selector)) {\n retval = element;\n break;\n } else if (stopSelector && element.matches(stopSelector)) {\n break;\n }\n element = element.parentElement;\n }\n return retval;\n};\n\n// Check if node2 contains node1\nexport const nodeContains = (node2, node1) => isElement(node2) && isElement(node1) && ((node2 === node1) || nodeContains(node2, node1.parentNode));\n\nexport const getClassAttributes = values => {\n if (!values?.class) return '';\n const classAttributes = values.class;\n const classResult = Object.values(classAttributes).join(' ').trim();\n return classResult;\n};\n\n/**\n * Select the text content and collapse if you want to move the caret to end of input\n * @param target\n * @param shouldCollapse\n */\nexport const selectAllText = ({ target, shouldCollapse = false, focusBefore = false }) => {\n let selection;\n let range;\n if (focusBefore) target.focus();\n\n if (document.body.createTextRange) {\n range = document.body.createTextRange();\n range.moveToElementText(target);\n if (shouldCollapse) range.collapse(false);\n range.select();\n } else if (window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n if (shouldCollapse) range.collapse(false);\n selection.addRange(range);\n }\n\n if (!focusBefore) target.focus();\n};\n\nexport const classNameGenerator = classess => {\n let className = '';\n const classKeys = Object.keys(classess);\n classKeys.forEach(classKey => {\n if (classess[classKey]) className += ` ${classKey}`;\n });\n return className.trim();\n};\n","import React, {\n useRef,\n useEffect,\n useState,\n memo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { selectAllText } from '@jotforminc/utils';\n\nconst passiveEvent = { passive: true };\n\nconst Editable = ({\n allowEmpty,\n applyKeyCodes,\n cancelKeyCodes,\n content,\n defaultClass,\n disabled,\n disabledClass,\n editClass,\n forceEdit,\n isSelected,\n onCancel,\n onChange,\n onDoubleClick,\n onEditBegin,\n placeholder,\n style,\n tagName\n}) => {\n const [isEditActive, setIsEditActive] = useState(false);\n const [isForceEdit, setIsForceEdit] = useState(false);\n const editableRef = useRef(null);\n\n const handleClickOutside = e => {\n const { target, target: { textContent: willTrimContent } } = e;\n const trimmedContent = willTrimContent.trim().replace(/(<([^>]+)>)/ig, '');\n\n if (!allowEmpty && !trimmedContent) {\n target.textContent = content;\n onCancel();\n } else {\n target.textContent = trimmedContent;\n onChange(target.textContent, e);\n }\n target.setAttribute('contenteditable', false);\n target.removeEventListener('blur', handleClickOutside, passiveEvent);\n\n setIsEditActive(false);\n setIsForceEdit(false);\n };\n\n useEffect(() => {\n if (!isEditActive && !isForceEdit) {\n editableRef.current.scrollLeft = 0; // Element was shifting to the right\n editableRef.current.removeEventListener('blur', handleClickOutside, passiveEvent);\n }\n }, [isEditActive, isForceEdit]);\n\n useEffect(() => {\n if (isForceEdit && editableRef.current !== null) {\n selectAllText({\n target: editableRef.current,\n shouldCollapse: true,\n focusBefore: true\n });\n }\n }, [isForceEdit]);\n\n useEffect(() => {\n setIsForceEdit(forceEdit);\n if (forceEdit && editableRef.current !== null && !isEditActive) {\n editableRef.current.addEventListener('blur', handleClickOutside, passiveEvent);\n }\n }, [forceEdit]);\n\n const handleDoubleClick = e => {\n const { target } = e;\n if (!disabled) {\n if (!isEditActive) target.addEventListener('blur', handleClickOutside, passiveEvent);\n setIsEditActive(true);\n target.setAttribute('contenteditable', true);\n onEditBegin(target);\n if (!isEditActive) {\n selectAllText({\n target,\n shouldCollapse: true\n });\n }\n }\n onDoubleClick();\n };\n\n const handleKeyUp = e => {\n const { keyCode, target } = e;\n const cancel = cancelKeyCodes.indexOf(keyCode) !== -1;\n const apply = applyKeyCodes.indexOf(keyCode) !== -1;\n if (target.textContent.length === 0 && (!cancel || !apply)) {\n selectAllText({\n target,\n shouldCollapse: true\n });\n }\n if (cancel) target.textContent = content;\n if (cancel || apply) target.blur();\n };\n\n const handleKeyDown = e => {\n e.stopPropagation();\n const { keyCode, shiftKey } = e;\n if (keyCode === 13 && !shiftKey) {\n e.preventDefault();\n }\n };\n\n const handleSingleClick = e => {\n if (isSelected) {\n handleDoubleClick(e);\n }\n };\n const currentContent = content && content.toString ? content.toString().replace(/(<([^>]+)>)/ig, '') : '';\n const CustomTag = tagName;\n\n return (\n \n {currentContent}\n \n );\n};\n\nEditable.defaultProps = {\n tagName: 'div',\n allowEmpty: false,\n applyKeyCodes: [13], // ENTER\n cancelKeyCodes: [27], // ESCAPE\n content: '',\n defaultClass: '',\n disabled: false,\n disabledClass: '',\n editClass: '',\n forceEdit: false,\n isSelected: false,\n onCancel: () => { },\n onChange: () => { },\n onDoubleClick: () => { },\n onEditBegin: () => { },\n placeholder: '',\n style: {}\n};\n\nEditable.propTypes = {\n allowEmpty: PropTypes.bool,\n applyKeyCodes: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n cancelKeyCodes: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n content: PropTypes.string,\n defaultClass: PropTypes.string,\n disabled: PropTypes.bool,\n disabledClass: PropTypes.string,\n editClass: PropTypes.string,\n forceEdit: PropTypes.bool,\n isSelected: PropTypes.bool,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onEditBegin: PropTypes.func,\n placeholder: PropTypes.string,\n style: PropTypes.shape({}),\n tagName: PropTypes.string\n};\n\nexport default memo(Editable);\n","export const fontTypes = {\n googleDisplayFonts: [\n 'Bevan',\n 'Abril Fatface',\n 'Diplomata',\n 'Fredoka One',\n 'Galada',\n 'Lobster',\n 'Playball',\n 'Sail'\n ],\n googleForeignDisplayFonts: [\n 'Noto Serif SC',\n 'Katibeh',\n 'ZCOOL QingKe HuangYou',\n 'Gugi'\n ],\n googleForeignSansSerifFonts: [\n 'Noto Sans JP',\n 'Harmattan',\n 'Noto Sans SC',\n 'Noto Sans KR'\n ],\n googleForeignSerifFonts: [\n 'Noto Serif SC',\n 'Scheherazade',\n 'Noto Serif KR'\n ],\n googleSansSerifFonts: [\n 'Montserrat',\n 'Open Sans',\n 'Roboto',\n 'Ubuntu'\n ],\n googleSerifFonts: [\n 'Bitter',\n 'PT Serif'\n ],\n licencedFonts: [\n 'Circular'\n ],\n systemDisplayFonts: [\n 'Comic Sans MS'\n ],\n systemSansSerifFonts: [\n 'Arial',\n 'Arial Black',\n 'Courier New',\n 'Helvetica',\n 'Tahoma',\n 'Trebuchet MS',\n 'Verdana',\n 'Impact'\n ],\n systemSerifFonts: [\n 'Georgia',\n 'Times New Roman'\n ]\n};\n\nfontTypes.googleNonforeignFonts = [\n ...fontTypes.googleSerifFonts, ...fontTypes.googleSansSerifFonts,\n ...fontTypes.googleDisplayFonts\n];\n\nfontTypes.completeSystemFonts = [\n ...fontTypes.systemSerifFonts, ...fontTypes.systemSansSerifFonts,\n ...fontTypes.systemDisplayFonts\n];\n\nfontTypes.completeGoogleFonts = [\n ...fontTypes.googleNonforeignFonts, ...fontTypes.googleForeignSerifFonts,\n ...fontTypes.googleForeignSansSerifFonts, ...fontTypes.googleForeignDisplayFonts\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.completeLicencedFonts = [\n ...fontTypes.licencedFonts\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.fonts = [\n ...fontTypes.googleNonforeignFonts,\n ...fontTypes.completeSystemFonts,\n ...fontTypes.completeLicencedFonts].sort();\n\nexport const fontSizes = ['6', '7', '8', '9', '10', '11',\n '12', '14', '16', '18', '24', '30', '36', '48', '60', '72', '96', '100'];\n\nexport const fontSizesLimited = ['10', '11',\n '12', '14', '16', '18', '24', '30'];\n\nexport const borderProps = {\n style: [\n {\n label: 'Solid',\n value: 'solid'\n },\n {\n label: 'Dotted',\n value: 'dotted'\n },\n {\n label: 'Dashed',\n value: 'dashed'\n }\n ],\n width: [\n {\n label: 'Thick',\n value: 'thick'\n },\n {\n label: 'Medium',\n value: 'medium'\n },\n {\n label: 'Thin',\n value: 'thin'\n }\n ]\n};\n","export const divider = section => {\n return {\n label: '',\n section,\n static: true,\n type: 'divider'\n };\n};\n\nexport const fieldSet = (section, label) => {\n return {\n key: 'shapeTypeFieldSet',\n label,\n section,\n static: true,\n type: 'fieldSet'\n };\n};\n","import React, { memo, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { Editable } from '@jotforminc/editable';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { IconAlignTextCenter, IconAlignTextLeft, IconAlignTextRight } from '@jotforminc/svg-icons';\n\nimport { fontTypes, fontSizes, borderProps } from '../../constants/fonts';\nimport { divider } from '../../constants/staticSettings';\nimport FontBold from '../../assets/svg/font_bold.svg';\nimport FontItalic from '../../assets/svg/font_italic.svg';\nimport FontUnderline from '../../assets/svg/font_underline.svg';\n\nconst KB_KEY_ESC = 27;\nconst KB_KEY_ENTER = 13;\n\nconst ITEM_TYPE = 'header';\n\nconst settings = [\n // HEADER SETTINGS\n {\n key: 'headerFontFamily',\n label: 'Font Family',\n options: fontTypes.fonts,\n section: 'HEADER',\n type: 'dropdown'\n },\n {\n ...divider('HEADER')\n },\n {\n key: 'headerFontSize',\n label: 'Font Size',\n options: fontSizes,\n section: 'HEADER',\n type: 'dropdown',\n unit: 'pt'\n },\n {\n ...divider('HEADER')\n },\n {\n key: 'headerTextAlign',\n label: 'Text Alignment',\n options: [\n { icon: , value: 'left' },\n { icon: , value: 'center' },\n { icon: , value: 'right' }\n ],\n optionsDisplay: ['icon'],\n section: 'HEADER',\n type: 'segmentControl',\n wrapperClass: 'isHalf'\n },\n {\n key: 'headerFontStyle',\n label: 'Style',\n multipleSelect: true,\n options: [\n { icon: , value: 'bold' },\n { icon: , value: 'italic' },\n { icon: , value: 'underline' }\n ],\n optionsDisplay: ['icon'],\n section: 'HEADER',\n type: 'segmentControl',\n wrapperClass: 'isHalf'\n },\n {\n ...divider('HEADER')\n },\n {\n key: 'headerFontColor',\n label: 'Text Color',\n section: 'HEADER',\n type: 'colorPicker'\n },\n {\n ...divider('HEADER')\n },\n {\n key: 'headerOpacity',\n label: 'Opacity',\n range: [0, 100],\n section: 'HEADER',\n type: 'slider'\n },\n // LINE SETTINGS\n {\n key: 'headerLineShow',\n label: 'Show Line',\n section: 'LINE',\n type: 'toggle',\n wrapperClass: 'isOneLine'\n },\n {\n ...divider('LINE'),\n showWhen: {\n headerLineShow: 'on'\n }\n },\n {\n key: 'headerLineSize',\n label: 'Thickness',\n options: borderProps.width,\n section: 'LINE',\n showWhen: {\n headerLineShow: 'on'\n },\n type: 'dropdown'\n },\n {\n ...divider('LINE'),\n showWhen: {\n headerLineShow: 'on'\n }\n },\n {\n key: 'headerLineStyle',\n label: 'Line Style',\n options: borderProps.style,\n section: 'LINE',\n showWhen: {\n headerLineShow: 'on'\n },\n type: 'dropdown'\n },\n {\n ...divider('LINE'),\n showWhen: {\n headerLineShow: 'on'\n }\n },\n {\n key: 'headerLineColor',\n label: 'Line Color',\n section: 'LINE',\n showWhen: {\n headerLineShow: 'on'\n },\n type: 'colorPicker'\n },\n {\n ...divider('LINE'),\n showWhen: {\n headerLineShow: 'on'\n }\n },\n {\n key: 'headerLineOpacity',\n label: 'Opacity',\n range: [0, 100],\n section: 'LINE',\n showWhen: {\n headerLineShow: 'on'\n },\n type: 'slider'\n },\n // SUB-HEADER SETTINGS\n {\n key: 'subHeaderShow',\n label: 'Show Subheader',\n section: 'SUBHEADER',\n type: 'toggle',\n wrapperClass: 'isOneLine'\n },\n {\n ...divider('SUBHEADER'),\n showWhen: {\n subHeaderShow: 'on'\n }\n },\n {\n key: 'subHeaderFontFamily',\n label: 'Font Family',\n options: fontTypes.fonts,\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'dropdown'\n },\n {\n ...divider('SUBHEADER'),\n showWhen: {\n subHeaderShow: 'on'\n }\n },\n {\n key: 'subHeaderFontSize',\n label: 'Font Size',\n options: fontSizes,\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'dropdown',\n unit: 'pt'\n },\n {\n ...divider('SUBHEADER'),\n showWhen: {\n subHeaderShow: 'on'\n }\n },\n {\n key: 'subHeaderTextAlign',\n label: 'Text Alignment',\n options: [\n { icon: , value: 'left' },\n { icon: , value: 'center' },\n { icon: , value: 'right' }\n ],\n optionsDisplay: ['icon'],\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'segmentControl',\n wrapperClass: 'isHalf'\n },\n {\n key: 'subHeaderFontStyle',\n label: 'Style',\n multipleSelect: true,\n options: [\n { icon: , value: 'bold' },\n { icon: , value: 'italic' },\n { icon: , value: 'underline' }\n ],\n optionsDisplay: ['icon'],\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'segmentControl',\n wrapperClass: 'isHalf'\n },\n {\n ...divider('SUBHEADER'),\n showWhen: {\n subHeaderShow: 'on'\n }\n },\n {\n key: 'subHeaderFontColor',\n label: 'Text Color',\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'colorPicker'\n },\n {\n ...divider('SUBHEADER'),\n showWhen: {\n subHeaderShow: 'on'\n }\n },\n {\n key: 'subHeaderOpacity',\n label: 'Opacity',\n range: [0, 100],\n section: 'SUBHEADER',\n showWhen: {\n subHeaderShow: 'on'\n },\n type: 'slider'\n }\n];\n\nconst HeaderElement = ({\n isSelected = false,\n item: {\n headerFontColor,\n headerFontFamily,\n headerFontSize,\n headerFontStyle,\n headerLineColor,\n headerLineOpacity,\n headerLineShow,\n headerLineSize,\n headerLineStyle,\n headerOpacity,\n headerText,\n headerTextAlign,\n id,\n isLocked,\n subHeaderFontColor,\n subHeaderFontFamily,\n subHeaderFontSize,\n subHeaderFontStyle,\n subHeaderOpacity,\n subHeaderShow,\n subHeaderText,\n subHeaderTextAlign\n } = {},\n onItemChange = () => {}\n}) => {\n const [draggable, setDraggable] = useState(false);\n const _headerFontStyle = safeJSONParse(headerFontStyle, []);\n const _subHeaderFontStyle = safeJSONParse(subHeaderFontStyle, []);\n const headerStyle = {\n color: headerFontColor,\n fontFamily: headerFontFamily,\n fontSize: parseInt(headerFontSize, 10),\n fontStyle: _headerFontStyle.includes('italic') ? 'italic' : 'normal',\n fontWeight: _headerFontStyle.includes('bold') ? 'bold' : 'normal',\n opacity: headerOpacity,\n textAlign: headerTextAlign,\n textDecoration: _headerFontStyle.includes('underline') ? 'underline' : 'none'\n };\n const lineStyle = {\n borderBottomColor: headerLineColor,\n borderBottomStyle: headerLineStyle,\n borderBottomWidth: headerLineSize,\n opacity: headerLineOpacity\n };\n const subHeaderStyle = {\n color: subHeaderFontColor,\n fontFamily: subHeaderFontFamily,\n fontSize: parseInt(subHeaderFontSize, 10),\n fontStyle: _subHeaderFontStyle.includes('italic') ? 'italic' : 'normal',\n fontWeight: _subHeaderFontStyle.includes('bold') ? 'bold' : 'normal',\n opacity: subHeaderOpacity,\n textAlign: subHeaderTextAlign,\n textDecoration: _subHeaderFontStyle.includes('underline') ? 'underline' : 'none'\n };\n\n const onChange = key => newValue => onItemChange({ id }, { [key]: newValue });\n\n const onDragStart = useCallback(e => {\n const editable = e.currentTarget.querySelector('div[contenteditable=\"true\"]');\n if (editable) {\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n const onFocus = e => {\n e.currentTarget.parentElement.setAttribute('draggable', false);\n setDraggable(false);\n };\n\n const onBlur = e => {\n e.currentTarget.parentElement.setAttribute('draggable', true);\n setDraggable(true);\n };\n\n return (\n \n
\n \n \n
\n {headerLineShow === 'on' && (\n \n )}\n {subHeaderShow === 'on'\n && (\n \n \n \n )}\n \n \n );\n};\n\nHeaderElement.propTypes = {\n isSelected: PropTypes.bool,\n item: PropTypes.shape({\n headerFontColor: PropTypes.string,\n headerFontFamily: PropTypes.string,\n headerFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n headerFontStyle: PropTypes.string,\n headerLineColor: PropTypes.string,\n headerLineOpacity: PropTypes.number,\n headerLineShow: PropTypes.string,\n headerLineSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n headerLineStyle: PropTypes.string,\n headerOpacity: PropTypes.number,\n headerText: PropTypes.string,\n headerTextAlign: PropTypes.string,\n id: PropTypes.string,\n isLocked: PropTypes.bool,\n subHeaderFontColor: PropTypes.string,\n subHeaderFontFamily: PropTypes.string,\n subHeaderFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n subHeaderFontStyle: PropTypes.string,\n subHeaderOpacity: PropTypes.number,\n subHeaderShow: PropTypes.string,\n subHeaderText: PropTypes.string,\n subHeaderTextAlign: PropTypes.string\n }),\n onItemChange: PropTypes.func\n};\n\nconst defaultItem = {\n headerFontColor: '#000000',\n headerFontFamily: 'Circular',\n headerFontSize: 24,\n headerFontStyle: JSON.stringify([]),\n headerLineColor: '#f8f8f8',\n headerLineOpacity: 1,\n headerLineShow: 'on',\n headerLineSize: 'thin',\n headerLineStyle: 'solid',\n headerOpacity: 1,\n headerText: '',\n headerTextAlign: 'left',\n height: 100,\n itemType: ITEM_TYPE,\n subHeaderFontColor: '#333333',\n subHeaderFontFamily: 'Circular',\n subHeaderFontSize: 14,\n subHeaderFontStyle: JSON.stringify([]),\n subHeaderOpacity: 1,\n subHeaderShow: 'on',\n subHeaderText: '',\n subHeaderTextAlign: 'left',\n width: 350\n};\n\nconst details = {\n height: 100,\n itemType: ITEM_TYPE,\n width: 350\n};\n\nexport default {\n Component: memo(HeaderElement),\n defaultItem,\n details,\n itemType: ITEM_TYPE,\n settings\n};\n","/**\n * Functions that modify and act on HTML-related objects.\n */\n\n/**\n * Convert a string with HTML entities in it to a\n * raw text version.\n * @param {any} html string that may contain html entities,\n * such as >\n * @returns {string} String with HTML entities decoded, if html param\n * is not a string, returns ''.\n */\nexport function decodeEntities(html) {\n if (typeof html !== 'string') {\n return '';\n }\n return html.replace(/>/g, '>')\n .replace(/</g, '<')\n .replace(/&/g, '&')\n .replace(/"/g, '\"');\n}\n\n/**\n * Updates document title with the new resource name\n *\n * @param {string} newResourceName\n * @returns void\n */\nexport const updateTitleWithNewResourceName = newResourceName => {\n try {\n /**\n * Our common document title scheme:\n * BSG: `{resourceName} - Jotform {productName}`\n * Ent: `{resourceName} - {productName}`\n */\n if (document.title.includes(' - ')) {\n document.title = document.title.replace(/^.*(\\s-.*)$/, `${newResourceName}$1`);\n } else {\n // Means that we dont have a resource name at title yet - only the product name\n document.title = `${newResourceName} - ${document.title}`;\n }\n } catch (e) {\n // Could not update the window title\n }\n};\n\n/**\n * IMPORTANT :: This will not prevent XSS\n * Use this for trusted values\n * */\nexport const stripHTML = string => {\n if (\n string.indexOf\n && (\n string.indexOf('<') !== -1\n || string.indexOf('>') !== -1\n )\n ) {\n const tmp = document.createElement('DIV');\n tmp.innerHTML = string;\n return tmp.textContent || tmp.innerText || string;\n }\n return string;\n};\n","export const emojiArrays = {\n 3: ['1', '4', '7'],\n 5: ['1', '2', '4', '6', '7'],\n 7: ['1', '2', '3', '4', '5', '6', '7']\n};\n\nexport const chartColorList = [\n '#C6A9FE',\n '#E3A1E3',\n '#FCA2A2',\n '#FFC14F',\n '#91D9AD',\n '#AFD35E',\n '#81CEFA',\n '#97B0DB'\n];\n\nexport const COLOR_PRESETS = [\n '#D0021B',\n '#F5A623',\n '#F8E71C',\n '#8B572A',\n '#7ED321',\n '#417505',\n '#BD10E0',\n '#9013FE',\n '#4A90E2',\n '#50E3C2',\n '#B8E986',\n '#000000',\n '#4A4A4A',\n '#9B9B9B',\n '#FFF',\n '#FFFFFF'\n];\n\nexport const ITEM_TYPE = 'chart';\n\nexport const emoBase = '/images/seven_scale_icons';\nexport const placeholderImage = 'https://www.jotform.com/images/image_placeholder.png';\nexport const notAllowedKeys = ['color', 'isVisible', 'name', 'percentage', 'isOther', 'order'];\n\nexport const defaultColorPalette = [\n {\n id: 'default_1',\n colors: ['#C6A9FE', '#E3A1E3', '#FCA2A2', '#FFC14F', '#91D9AD', '#AFD35E', '#81CEFA', '#97B0DB']\n },\n {\n id: 'default_2',\n colors: ['#00876C', '#8BB777', '#BFCD84', '#F4E398', '#F0BD73', '#EB965B', '#E36C50', '#DE425B']\n },\n {\n id: 'default_3',\n colors: ['#3E4FBD', '#9464C8', '#B471CC', '#E891D6', '#FF8CC6', '#FF74AB', '#FF5A8B', '#DE425B']\n },\n {\n id: 'default_9',\n colors: ['#FB6660', '#FF3E5F', '#C95EFF', '#8B27AE', '#5611E9', '#0476D9', '#044BD9', '#1509AF']\n },\n {\n id: 'default_10',\n colors: ['#441D18', '#B0624D', '#AA7366', '#B89895', '#CFAAA6', '#E0CACA', '#4C3947', '#776270']\n },\n {\n id: 'default_4',\n colors: ['#1E2D40', '#394452', '#757A62', '#BAA868', '#DED288', '#AEC370', '#7C9B4A', '#40561B']\n },\n {\n id: 'default_5',\n colors: ['#BE4502', '#D4560E', '#E17019', '#EE9856', '#F4AB73', '#F9BE90', '#FCD0AE', '#FFE3CD']\n },\n {\n id: 'default_6',\n colors: ['#006356', '#108473', '#3CA393', '#59B0A3', '#77BEB3', '#94CCC4', '#B1DAD4', '#BBDED9']\n },\n {\n id: 'default_7',\n colors: ['#283AAE', '#3E4FBD', '#6466C8', '#827ED3', '#9E97DE', '#B9B1E9', '#D3CCF4', '#ECE7FF']\n },\n {\n id: 'default_8',\n colors: ['#2C3345', '#434A5D', '#5A6276', '#737C90', '#8D96AA', '#A8B1C6', '#C3CDE2', '#DFEAFF']\n }\n];\n\nexport const defaultItem = {\n chartBgColor: '#FFFFFF',\n chartBgCorners: 0,\n chartBgOpacity: 1,\n chartBgShow: 'off',\n chartFontFamily: 'Circular',\n chartFontSize: 12,\n customLabels: JSON.stringify({}),\n headerFontColor: '#000000',\n headerFontFamily: 'Circular',\n headerFontSize: 16,\n headerFontStyle: JSON.stringify([]),\n headerTextAlign: 'center',\n height: 420,\n infoPosition: 'bottom',\n isRoundedValues: 'on',\n itemType: ITEM_TYPE,\n primaryLabelColor: '#333333',\n secondaryLabelColor: '#9294AA',\n labelNameShow: 'on',\n labelPercentageTotalShow: 'on',\n labelResponseValueShow: 'on',\n orderBy: 'desc',\n responseSummaryShow: 'on',\n width: 420\n};\n\nexport const excludeQuestionsForEntryLimit = ['control_matrix', 'control_rating', 'emojiSlider'];\n","const chartMap = {\n donut: {\n name: 'donut',\n component: 'Donut',\n title: 'Donut'\n },\n pie: {\n name: 'pie',\n component: 'Pie',\n title: 'Pie'\n },\n column: {\n name: 'column',\n component: 'Column',\n title: 'Column'\n },\n bar: {\n name: 'bar',\n component: 'Bar',\n title: 'Bar'\n },\n basic: {\n name: 'basic',\n component: 'Basic',\n title: 'Basic'\n },\n line: {\n name: 'line',\n component: 'Line',\n title: 'Line'\n },\n textGrid: {\n name: 'textGrid',\n component: 'TextGrid',\n title: 'Text'\n }\n};\n\n/**\n * extraData key is used when showing the chart in the\n * Grid view for the Sheets application\n */\nconst OPTION = 'OPTION';\nconst STANDARD = 'STANDARD';\nconst MATRIX = 'MATRIX';\n\n// OPTION BASED\nconst optionFields = [\n 'control_radio',\n 'control_checkbox',\n 'control_yesno',\n 'control_sheetbox',\n 'control_assignee',\n 'control_documentStatus'\n];\nconst optionConfig = {\n types: [chartMap.basic, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar],\n suggested: chartMap.pie,\n extraData: OPTION\n};\n\n// PAYMENTS\nexport const paymentFields = [\n 'control_paypalSPB',\n 'control_stripe',\n 'control_2co',\n 'control_authnet',\n 'control_bluepay',\n 'control_bluesnap',\n 'control_braintree',\n 'control_cardconnect',\n 'control_clickbank',\n 'control_cybersource',\n 'control_dwolla',\n 'control_echeck',\n 'control_eway',\n 'control_firstdata',\n 'control_googleco',\n 'control_onebip',\n 'control_payjunction',\n 'control_chargify',\n 'control_payment',\n 'control_paymentwall',\n 'control_paymill',\n 'control_paypal',\n 'control_paypalcomplete',\n 'control_paypalexpress',\n 'control_paypalInvoicing',\n 'control_paypalpro',\n 'control_square',\n 'control_stripeACH',\n 'control_wepay',\n 'control_worldpay',\n 'control_worldpayus',\n 'control_payu',\n 'control_pagseguro',\n 'control_moneris',\n 'control_mollie',\n 'control_sofort',\n 'control_payoneer',\n 'control_paysafe',\n 'control_iyzico',\n 'control_skrill',\n 'control_gocardless',\n 'control_paymentmethods',\n 'control_stripeCheckout'\n];\nconst paymentConfig = {\n types: [chartMap.basic, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar, chartMap.line],\n suggested: chartMap.line,\n extraData: STANDARD\n};\n\n// STANDARD\nconst standardFields = [\n 'control_textbox',\n 'control_textarea',\n 'control_datetime',\n 'control_widget',\n 'control_time',\n 'control_phone',\n 'control_autocomp',\n 'control_fullname',\n 'control_email',\n 'control_address',\n 'rowlessMatrix',\n 'control_birthdate',\n 'control_inline',\n 'control_mixed',\n 'control_number',\n 'control_calculation',\n 'control_spinner',\n 'control_documentID',\n 'control_documentCreationTime',\n 'control_documentModificationTime'\n];\nconst standardConfig = {\n types: [chartMap.textGrid, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar],\n suggested: chartMap.textGrid,\n extraData: STANDARD\n};\n\n// SCALES\nconst scaleFields = [\n 'control_rating',\n 'control_scale',\n 'control_slider',\n 'emojiSlider'\n];\nconst scaleConfig = {\n types: [chartMap.basic, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar],\n suggested: chartMap.basic,\n extraData: STANDARD\n};\n\nconst customFields = {\n control_dropdown: {\n types: [chartMap.basic, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar],\n suggested: chartMap.bar,\n extraData: OPTION\n },\n control_matrix: {\n types: [chartMap.column, chartMap.bar],\n suggested: chartMap.column,\n extraData: MATRIX\n },\n control_imagechoice: {\n types: [chartMap.basic, chartMap.donut, chartMap.pie, chartMap.column, chartMap.bar],\n suggested: chartMap.basic,\n extraData: OPTION\n },\n control_paymentchart: {\n types: [chartMap.line],\n suggested: chartMap.line,\n extraData: MATRIX\n }\n};\n\nfunction reduceToConfig(arr, conf) {\n return arr.reduce((all, current) => {\n const _all = { ...all };\n _all[current] = conf;\n return _all;\n }, {});\n}\n\n/**\n * Dont make things complex anymore as it is already\n * complex enough. If you want to override a config,\n * just add it to the customFields object.\n*/\nfunction generateChartAvailability() {\n return {\n ...reduceToConfig(optionFields, optionConfig),\n ...reduceToConfig(standardFields, standardConfig),\n ...reduceToConfig(scaleFields, scaleConfig),\n ...reduceToConfig(paymentFields, paymentConfig),\n ...customFields\n };\n}\n\nexport const chartAvailabilityMap = generateChartAvailability();\n\nconst chartQuestions = Object.keys(chartAvailabilityMap);\n\nexport default {\n chartAvailabilityMap,\n chartQuestions,\n paymentFields\n};\n","import isEqual from 'lodash/isEqual';\nimport isPlainObject from 'lodash/isPlainObject';\nimport sortBy from 'lodash/sortBy';\nimport { rgba } from 'polished';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { t } from '@jotforminc/translation';\nimport { safeJSONParse, stripHTML } from '@jotforminc/utils';\n\nimport {\n chartColorList,\n emoBase,\n emojiArrays,\n placeholderImage,\n defaultColorPalette,\n excludeQuestionsForEntryLimit\n} from './chartConstants';\nimport { paymentFields } from '../../constants/commonChartConstants';\n\nconst specialQuestions = ['control_imagechoice', 'control_assignee'];\n\nconst isEmojiSlider = (type, inputType, mrows) => {\n return type === 'control_matrix'\n && inputType === 'Emoji Slider'\n && mrows.split('|')[0] === ''\n && mrows.split('|').length === 1;\n};\n\nconst isRowlessMatrix = (type, mrows) => {\n return type === 'control_matrix'\n && (mrows.split('|')[0]).trim() === ''\n && mrows.split('|').length === 1;\n};\n\nconst getTrueQuestionType = question => {\n const { type, inputType, mrows } = question;\n const isEmoji = isEmojiSlider(type, inputType, mrows);\n const isRowless = isRowlessMatrix(type, mrows);\n if (isEmoji) return 'emojiSlider';\n if (isRowless) return 'rowlessMatrix';\n return type;\n};\n\nconst getPipedNameWithLineBreaks = name => {\n if (isPlainObject(name)) return name.text;\n if (/\\|\\/\\//.test(name)) return name.split('|')[0]; // for assignee\n if (/\\|http/.test(name)) return name.split('|')[0];\n return (name || name === 0) ? ((name.toString && name.toString()) || name) : '';\n};\n\nexport const getPipedName = name => {\n return getPipedNameWithLineBreaks(name)\n .replace(/\\n|\\r/g, '')\n .trim();\n};\n\nexport const getPipedLink = name => {\n if (isPlainObject(name)) return name.link;\n if (/\\|\\/\\//.test(name)) return name.split('|')[1]; // for assignee\n return (/\\|http/.test(name)) ? name.split('|')[1] : name || '';\n};\n\nexport const getPipedIsDeleted = name => { // for assignee\n if (isPlainObject(name)) return name?.isDeleted === '1';\n if (/\\|\\/\\//.test(name)) return name.split('|')[2] === '1';\n};\n\nexport const responses = (total, upper = true) => {\n const parseTotal = parseInt(total, 10);\n if (parseTotal === 0) {\n return t(upper ? 'Response' : 'response');\n }\n const moreThanOne = t(upper ? 'Responses' : 'responses');\n const onlyOne = t(upper ? 'Response' : 'response');\n return parseTotal > 1 ? moreThanOne : onlyOne;\n};\n\nexport const getPercentValue = (value, total, roundValues) => {\n const round = roundValues === 'on';\n const percentage = (value * 100) / total;\n if (Number.isNaN(percentage)) return round ? '0' : '0.00';\n const finalValue = percentage.toFixed(round ? 0 : 2);\n\n return `${finalValue}%`;\n};\n\nconst questionTypesWithoutOptions = ['emojiSlider', 'control_rating'];\n\nconst dynamicSort = (property = 'value', sortType = 'asc') => {\n return (a, b) => {\n if (sortType === 'localeCompare') return a[property].toString().localeCompare(b[property].toString());\n if (sortType === 'desc') return b[property] - a[property];\n return a[property] - b[property];\n };\n};\n\nconst findChartData = (chartOption, c) => {\n if (isPlainObject(chartOption.name)) {\n const comparisonValue = `${chartOption.name.text}|${chartOption.name.link}`;\n return comparisonValue === c.name;\n }\n return chartOption.name === c.name;\n};\n\nexport const getVisibleOptionsTotal = (data, valueSource = null, total = null, chartSelectedMetric) => {\n if (!valueSource || parseInt(valueSource, 10) === 0) {\n return data.reduce((acc, curr) => {\n if (curr.isVisible && curr[chartSelectedMetric]) {\n return curr[chartSelectedMetric] + acc;\n }\n return acc;\n }, 0);\n }\n return total;\n};\n\nexport const orderChartData = (\n question,\n chartType,\n chartData = [],\n orderBy,\n chartOptions,\n fromSettings = false,\n colorPalette,\n fullChartData,\n chartSelectedMetric,\n total,\n isRoundedValues,\n valueSource,\n fromSummarize\n) => {\n let newTotal = total;\n const questionType = getTrueQuestionType(question);\n let helperIndex = 0;\n const _exactChartData = chartData.map(c => {\n const found = chartOptions.find(chartOption => findChartData(chartOption, c));\n let name = (found && found.name) || c.name;\n if (!found && specialQuestions.indexOf(question.type) > -1) {\n const [text, link, isDeleted] = c.name.split('|');\n name = { link, text };\n if (fromSummarize) name.isDeleted = isDeleted;\n }\n let index = chartOptions.findIndex(chartOption => findChartData(chartOption, c));\n if (index === -1) {\n index = chartOptions.length + helperIndex;\n helperIndex++;\n }\n const color = (found && found.color) || (fromSettings ? '' : colorPalette[index % colorPalette.length]);\n const isVisible = (found && found.isVisible !== undefined) ? !!found.isVisible : true;\n\n if (chartSelectedMetric !== 'value') {\n newTotal = fullChartData[`total${chartSelectedMetric}`];\n }\n\n const percentage = getPercentValue(c[chartSelectedMetric] || 0, newTotal, isRoundedValues);\n return {\n ...c,\n color,\n index,\n isVisible,\n name,\n percentage\n };\n })\n .sort(dynamicSort('index'))\n .map(({ index, ...val }) => val);\n\n const visibleOptionsTotal = getVisibleOptionsTotal(_exactChartData, valueSource, newTotal, chartSelectedMetric);\n\n // override percentage by visibility\n const exactChartData = _exactChartData.map(c => ({\n ...c,\n percentage: c.isVisible ? getPercentValue(c[chartSelectedMetric] || 0, visibleOptionsTotal, isRoundedValues) : '0%'\n }));\n\n const whichPaletteIsUsed = colorPalette.length > 0 ? colorPalette : chartColorList;\n const reOrderColors = data => {\n return data.map((c, index) => ({\n ...c,\n color: whichPaletteIsUsed.indexOf(c.color) === -1 ? c.color : colorPalette[index % colorPalette.length]\n }));\n };\n\n if (orderBy === 'desc') { // for Response (High to Low)\n const newExactChartData = [...exactChartData.sort(dynamicSort(chartSelectedMetric, 'desc'))];\n return !fromSettings ? reOrderColors(newExactChartData) : newExactChartData;\n }\n\n if (orderBy === 'asc') { // for Response (Low to High)\n const newExactChartData = [...exactChartData.sort(dynamicSort(chartSelectedMetric))];\n return !fromSettings ? reOrderColors(newExactChartData) : newExactChartData;\n }\n\n if (orderBy === 'alphabetic') { // for Alphabetic\n const newExactChartData = [...exactChartData.sort(dynamicSort('name', 'localeCompare'))];\n return !fromSettings ? reOrderColors(newExactChartData) : newExactChartData;\n }\n\n if (orderBy === 'form') { // for Default\n if (questionTypesWithoutOptions.indexOf(questionType) > -1) {\n const newExactChartData = [...exactChartData.sort(dynamicSort('name', 'desc'))];\n return !fromSettings ? reOrderColors(newExactChartData) : newExactChartData;\n }\n const optionsArray = safeJSONParse(question.options_array);\n const optionsByFormOrder = Object.values(optionsArray).map(option => option.value);\n const options = chartData.map(data => {\n return exactChartData.find(exactData => exactData.name === data.name);\n }).filter(v => v);\n const sortedChartData = options.sort((a, b) => {\n const [index1, index2] = question.type !== 'control_imagechoice'\n ? [optionsByFormOrder.indexOf(a.name), optionsByFormOrder.indexOf(b.name)]\n : [\n optionsByFormOrder.findIndex(option => isEqual(option, a.name)),\n optionsByFormOrder.findIndex(option => isEqual(option, b.name))\n ];\n return ((index1 > -1 ? index1 : Infinity) - (index2 > -1 ? index2 : Infinity));\n });\n return !fromSettings ? reOrderColors(sortedChartData) : sortedChartData;\n }\n return exactChartData; // for Custom\n};\n\n/**\n * Same santiziation process with\n * api/ReportDataGeneratorController->sanitize\n */\nconst sanitize = string => {\n const strippedString = stripHTML(string);\n if (typeof strippedString !== 'string') return '';\n return strippedString\n // .replace(/^\\p{Z}+|\\p{Z}+$/u, '') => not supported by js\n // .replaceAll('\\'', \"'\") => not sure\n .replace(/\\t/gi, '');\n};\n\nconst sanitizeChartData = chartData => chartData.map(d => {\n // We sanitize questionRows and matrixSelectedRows so ChartData needs to sanitized to match the keys\n return d.name && typeof d.name === 'string' ? { ...d, name: sanitize(d.name).trim() } : d;\n});\n\nconst sanitizeRowValues = rowValues => Object.keys(rowValues).reduce((a, c) => {\n // We sanitize questionColumns and match them with the columns inside the rows, row columns should be sanitized too\n return { ...a, [sanitize(c).trim()]: rowValues[c] };\n}, 0);\n\nconst getCorrectedMatrixData = (\n question,\n matrixSelectedRows,\n chartData,\n orderBy,\n chartOptions,\n fromSettings = false,\n colorPalette,\n filterHiddenKeys,\n isRoundedValues\n) => {\n const {\n mcolumns, mrows, inputType, toggleText, dcolumns\n } = question;\n const getQuestionColumns = () => {\n switch (inputType) {\n case 'Emoji Slider': return emojiArrays[question.emojiCount || 5];\n case 'Yes No': return toggleText.split('|').map(mc => sanitize(mc));\n case 'Dynamic': return safeJSONParse(dcolumns).map((dc, index) => {\n return dc.text ? sanitize(dc.text) : `${dc.type.replace(' ', '-')}${index}`;\n });\n default: return mcolumns.split('|').map(mc => sanitize(mc));\n }\n };\n const parsedSelectedRows = safeJSONParse(matrixSelectedRows, []).map(v => sanitize(v));\n const questionRows = mrows.split('|').map(mr => sanitize(mr));\n const questionColumns = getQuestionColumns();\n const _selectedRows = parsedSelectedRows.length ? parsedSelectedRows : questionRows;\n\n const selectedRows = _selectedRows.map(row => row.trim());\n let sortedValueKeys = questionColumns.map(column => column.trim());\n\n if (chartData.length > 0 && (orderBy === 'custom' || orderBy === 'form')) {\n const data = chartData.reduce((result, item) => {\n const _item = { ...item };\n if (_item.name) {\n delete _item.name;\n }\n\n const itemKeys = Object.keys(_item);\n if (result.length === 0) {\n return itemKeys;\n }\n\n const uniqueData = itemKeys.map(key => {\n return result.indexOf(key) === -1 && key;\n }).filter(v => v);\n\n return [...result, ...uniqueData];\n }, []);\n\n if (orderBy === 'custom') {\n sortedValueKeys = data\n .sort((a, b) => dynamicSort('index')({\n index: chartOptions.findIndex(o => o.name === a)\n }, {\n index: chartOptions.findIndex(o => o.name === b)\n }));\n }\n\n if (orderBy === 'form') {\n sortedValueKeys = data.sort(dynamicSort('name', 'desc'));\n }\n }\n\n const sanitizedChartData = sanitizeChartData(chartData);\n\n const sortedData = selectedRows.reduce((all, key) => {\n const _all = all;\n const single = sanitizedChartData.find(d => d.name === key);\n if (single?.name && selectedRows.indexOf(single.name) !== -1) {\n const { name, ..._vals } = single;\n const vals = sanitizeRowValues(_vals);\n const total = Object.keys(vals).reduce((a, c) => a + vals[c], 0);\n\n _all.push({\n name,\n ...sortedValueKeys.reduce((a, s, i) => {\n const _a = a;\n const savedOption = chartOptions.find(o => o.name === s);\n const isVisible = savedOption ? !!savedOption.isVisible : true;\n const sanitizedKey = sanitize(s).trim();\n if (!(filterHiddenKeys && !isVisible)) {\n _a[s] = {\n color: (savedOption && savedOption.color)\n || (fromSettings ? '' : colorPalette[i % colorPalette.length]),\n isVisible: savedOption ? !!savedOption.isVisible : true,\n percentage: getPercentValue(vals[sanitizedKey], total, isRoundedValues),\n value: vals[sanitizedKey]\n };\n }\n return _a;\n }, {})\n });\n }\n return _all;\n }, []);\n\n if (sortedData.length === 1 && !fromSettings) {\n const values = sortedData[0];\n const { name, ...vals } = values;\n const total = Object.keys(vals).reduce((a, c) => a + vals[c].value, 0);\n const filteredVals = Object.keys(vals).filter(v => sortedValueKeys.includes(v));\n const data = sortBy(filteredVals, v => sortedValueKeys.indexOf(v))\n .map(key => ({\n ...values[key],\n name: key,\n percentage: getPercentValue(values[key].value, total, isRoundedValues)\n }));\n return [data, []];\n }\n\n // filter because of option of visibility\n sortedValueKeys = (sortedData[0] && sortedValueKeys.filter(key => Object.keys(sortedData[0]).indexOf(key) > -1)) || [];\n return [sortedData, sortedValueKeys];\n};\n\nexport const prepareForEntryLimit = (chartData, question, entryLimit, total, isRoundedValues, otherChartDataOptions) => {\n if (excludeQuestionsForEntryLimit.includes(getTrueQuestionType(question))) {\n return chartData;\n }\n\n const chartLimit = parseInt(entryLimit, 10);\n const showedChartData = chartData.slice(0, chartLimit - 1);\n const otherChartData = chartData.slice(chartLimit - 1).map(data => {\n return { ...data, other: true };\n });\n const exactChartData = [...showedChartData];\n\n const otherValue = otherChartData.reduce((acc, curr) => {\n // TODO :: CURR Value returns undefined sometimes. Don't know why\n const _curr = curr || { value: 0 };\n if (curr.isVisible) return acc + _curr.value;\n return acc;\n }, 0);\n\n const {\n color, isVisible, name, order\n } = safeJSONParse(otherChartDataOptions);\n const otherData = {\n color: color || '#CCCCCC',\n isVisible: isVisible !== undefined ? isVisible : true,\n isOther: true,\n name: name || 'Other entries',\n order: order !== undefined ? order : showedChartData.length,\n percentage: getPercentValue(otherValue, total, isRoundedValues),\n value: otherValue\n };\n\n if (otherChartData.length > 0) {\n if (specialQuestions.indexOf(question.type) > -1) {\n otherData.name = { link: placeholderImage, text: 'Other entries' };\n }\n exactChartData.splice(otherData.order, 0, otherData);\n exactChartData.splice(otherData.order + 1, 0, ...otherChartData);\n }\n return exactChartData;\n};\n\nexport const getMatrixSortedOptions = (...args) => {\n const [data, sortedValueKeys] = getCorrectedMatrixData(...args);\n const { name, ...vals } = data[0];\n return sortedValueKeys.reduce((sortedOptions, optionKey) => {\n const _sortedOptions = sortedOptions;\n const { value, ...colorAndVisibility } = vals[optionKey];\n _sortedOptions.push({ name: optionKey, ...colorAndVisibility });\n return _sortedOptions;\n }, []);\n};\n\nexport const getLabelImage = ({\n isEmojiSlider: _isEmojiSlider,\n isImageChoice,\n isAssignee\n}, value) => {\n const exactValue = (isImageChoice || isAssignee) ? safeJSONParse(value, value) : value;\n if ((isImageChoice || isAssignee) && exactValue?.link !== placeholderImage) {\n return exactValue.link;\n }\n if (_isEmojiSlider) {\n return `${emoBase}/${value}.png`;\n }\n return false;\n};\n\nexport const getLabelText = ({\n isEmojiSlider: _isEmojiSlider,\n isImageChoice,\n isAssignee\n}, value) => {\n if (_isEmojiSlider) return false;\n if (isImageChoice) {\n const exactValue = safeJSONParse(value, value);\n return exactValue?.link !== placeholderImage ? getPipedName(exactValue) : false;\n }\n if (isAssignee) {\n const exactValue = safeJSONParse(value, value);\n return exactValue?.text ? getPipedName(exactValue.text) : false;\n }\n return getPipedName(value);\n};\n\nexport const getLabelIsDeleted = ({ isAssignee }, value) => {\n if (!isAssignee) return false;\n const exactValue = safeJSONParse(value, value);\n return exactValue?.isDeleted ? getPipedIsDeleted(exactValue) : false;\n};\n\nexport const getColorLight = hex => {\n // Convert hex to RGB first\n let r = 0;\n let g = 0;\n let b = 0;\n\n if (hex.length === 4) {\n r = `0x${hex[1]}${hex[1]}`;\n g = `0x${hex[2]}${hex[2]}`;\n b = `0x${hex[3]}${hex[3]}`;\n } else if (hex.length === 7) {\n r = `0x${hex[1]}${hex[2]}`;\n g = `0x${hex[3]}${hex[4]}`;\n b = `0x${hex[5]}${hex[6]}`;\n }\n r /= 255;\n g /= 255;\n b /= 255;\n\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n let l = 0;\n\n l = (cmax + cmin) / 2;\n l = +(l * 100).toFixed(1);\n\n return l;\n};\n\nconst getAverage = (chartType, data, question) => {\n if (chartType !== 'basic') return;\n return (data.reduce((acc, cd) => {\n if (!cd.isVisible) return acc;\n const eCount = question.emojiCount || 5;\n const emojiArr = emojiArrays[eCount];\n const index = question.type === 'emojiSlider'\n ? emojiArr.indexOf(`${cd.name}`) + 1 : parseInt(cd.name, 10);\n return (cd.value * index) + acc;\n }, 0) / data.reduce((acc, curr) => {\n return curr.isVisible ? curr.value + acc : acc;\n }, 0));\n};\n\nexport const getColorPalette = (chartColorPalette, reportColorPalette, reportCustomColorPalettes) => {\n const selectedPaletteId = chartColorPalette || (reportColorPalette || 'default_1');\n const parsedCustomColorPalettes = safeJSONParse(reportCustomColorPalettes, []);\n const whichPaletteGroup = (/default/i.test(selectedPaletteId)) ? defaultColorPalette : parsedCustomColorPalettes;\n const foundPalette = whichPaletteGroup.find(p => p.id === selectedPaletteId);\n return (foundPalette && foundPalette.colors) || defaultColorPalette[0].colors;\n};\n\nexport const getCustomChartBgStyle = ({\n chartBgColor,\n chartBgCorners,\n chartBgOpacity,\n chartBgShow\n}) => {\n if (chartBgShow === 'on') {\n return {\n backgroundColor: rgba(chartBgColor, chartBgOpacity),\n borderRadius: chartBgCorners\n };\n }\n};\n\nexport const getCustomHeaderStyle = ({\n headerFontStyle,\n headerFontColor,\n headerFontFamily,\n headerFontSize,\n headerTextAlign\n}) => {\n const _headerFontStyle = safeJSONParse(headerFontStyle, []);\n return {\n color: headerFontColor,\n fontFamily: headerFontFamily,\n fontSize: parseInt(headerFontSize, 10),\n fontStyle: _headerFontStyle.includes('italic') ? 'italic' : 'normal',\n fontWeight: _headerFontStyle.includes('bold') ? 'bold' : 'normal',\n textAlign: headerTextAlign,\n textDecoration: _headerFontStyle.includes('underline') ? 'underline' : 'none'\n };\n};\n\nconst getDefaultExactData = ({\n question,\n chartType,\n data,\n orderBy,\n chartOptions,\n fromSettings,\n colorPalette,\n chartData,\n chartSelectedMetric,\n totalChoice,\n isRoundedValues,\n entryLimit,\n otherChartDataOptions,\n valueSource,\n fromSummarize\n}) => {\n let exactChartData = orderChartData(\n question,\n chartType,\n data,\n orderBy,\n chartOptions,\n fromSettings,\n colorPalette,\n chartData,\n chartSelectedMetric,\n totalChoice,\n isRoundedValues,\n valueSource,\n fromSummarize\n );\n\n if (entryLimit !== undefined && parseInt(entryLimit, 10) > 0) {\n exactChartData = prepareForEntryLimit(\n exactChartData,\n question,\n entryLimit,\n totalChoice,\n isRoundedValues,\n otherChartDataOptions\n );\n }\n\n if (chartType === 'basic') {\n const average = getAverage(chartType, exactChartData, question, totalChoice);\n if (!Number.isNaN(average)) {\n exactChartData.push({\n average: average.toFixed(2)\n });\n }\n }\n\n exactChartData = exactChartData.filter(d => (d.isVisible !== undefined ? d.isVisible : true));\n exactChartData = exactChartData.filter(d => (!d.other));\n\n return sanitizeChartData(exactChartData);\n};\n\nconst getPaymentChartData = ({\n chartType,\n chartData,\n chartSelectedMetric,\n question,\n orderBy,\n chartOptions,\n fromSettings,\n colorPalette,\n totalChoice,\n isRoundedValues,\n entryLimit,\n otherChartDataOptions,\n products\n}) => {\n const defaultData = getDefaultExactData({\n question,\n chartType,\n data: chartData.data,\n orderBy,\n chartOptions,\n fromSettings,\n colorPalette,\n chartData,\n chartSelectedMetric,\n totalChoice,\n isRoundedValues,\n entryLimit,\n otherChartDataOptions\n });\n\n if (chartType !== 'line' || (chartType === 'line' && !chartData.lineData)) {\n return defaultData;\n }\n // eslint-disable-next-line no-nested-ternary\n const productList = !products ? [] : !Array.isArray(products) ? Object.values(products) : products;\n\n const soldProducts = chartData.data.map(d => d.name);\n const productOptions = defaultData.reduce((acc, { name, color, percentage }) => {\n let image = '';\n const product = (productList || []).find(p => {\n return typeof p.name === 'string'\n && typeof name === 'string'\n && p.name.trim() === name.trim();\n });\n if (product) {\n const images = safeJSONParse(product.images, ['']);\n if (images.length) {\n [image] = images;\n }\n }\n return ({\n ...acc,\n [name]: {\n color,\n percentage,\n currency: question.currency,\n image\n }\n });\n }, {});\n\n const { data } = chartData.lineData;\n const defaultLine = soldProducts.reduce((acc, curr) => ({ ...acc, [curr]: 0 }), {});\n\n const lineData = [];\n data.forEach(line => {\n const { name, value, ..._products } = line;\n const obj = { name };\n const options = cloneDeep(productOptions);\n Object.keys(_products).forEach(pName => {\n obj[pName] = _products[pName][chartSelectedMetric];\n if (options[pName] !== undefined) {\n options[pName].amount = _products[pName].Amount;\n options[pName].quantity = _products[pName].Quantity;\n }\n });\n lineData.push({ ...defaultLine, ...obj, productOptions: options });\n });\n\n return sortBy(lineData, 'name');\n};\n\nconst renameKeys = (obj, newKeys) => {\n const keyValues = Object.keys(obj).map(key => {\n const newKey = newKeys[key] || key;\n return { [newKey]: obj[key] };\n });\n return Object.assign({}, ...keyValues);\n};\n\nconst mergeWithLabelsAsStandard = (exactChartData, customLabels) => {\n return exactChartData.map(cData => ({ ...cData, name: customLabels[cData.name] || cData.name }));\n};\n\nconst mergeWithCustomLabels = (customLabels, chartData, dataKeys, isMatrix, isPaymentField, isSheetbox, isImageChoice) => {\n let exactChartData = chartData;\n let sortedDataKeys = dataKeys;\n if (isMatrix) {\n if (sortedDataKeys.length > 1) {\n exactChartData = exactChartData.map(cData => renameKeys(cData, customLabels)); // for custom labels\n sortedDataKeys = sortedDataKeys.map(dKey => customLabels[dKey] || dKey); // for custom labels\n } else {\n exactChartData = mergeWithLabelsAsStandard(exactChartData, customLabels);\n }\n } else if (isPaymentField) {\n if (exactChartData.length > 1 && exactChartData[0].productOptions) {\n exactChartData = exactChartData.map(cData => ({\n ...renameKeys(cData, customLabels),\n productOptions: renameKeys(cData.productOptions, customLabels)\n }));\n } else {\n exactChartData = mergeWithLabelsAsStandard(exactChartData, customLabels); // for custom labels\n }\n } else if (isSheetbox) {\n exactChartData = exactChartData.map(cData => ({\n ...cData,\n name: customLabels[cData.name] || (cData.name === '0' && 'Empty') || (cData.name === '1' && 'Checked') || cData.name,\n checked: cData.name !== '0'\n }));\n } else if (isImageChoice) {\n exactChartData = exactChartData.map(cData => (\n {\n ...cData,\n name: {\n ...cData.name,\n text: cData.name.text\n ? (customLabels[cData.name.text] || cData.name.text)\n : (customLabels[cData.name.link] || cData.name.text)\n }\n }\n ));\n } else {\n exactChartData = mergeWithLabelsAsStandard(exactChartData, customLabels);\n }\n\n return [exactChartData, sortedDataKeys];\n};\n\nexport const getExactChartData = ({\n chartData,\n chartOptions,\n selectedMetric,\n colorPalette,\n data,\n entryLimit,\n filterHiddenKeys,\n fromSettings,\n isRoundedValues,\n matrixSelectedRows,\n orderBy,\n otherChartDataOptions,\n question,\n totalChoice,\n chartType,\n products,\n customLabels,\n valueSource,\n fromSummarize\n}) => {\n let exactChartData = [];\n let sortedDataKeys = [];\n let chartSelectedMetric = selectedMetric;\n\n const questionType = question.type;\n const isPaymentField = paymentFields.indexOf(questionType) > -1;\n const isMatrix = questionType === 'control_matrix';\n const isSheetbox = questionType === 'control_sheetbox';\n const isImageChoice = questionType === 'control_imagechoice';\n\n try {\n if (isMatrix) {\n [exactChartData, sortedDataKeys] = getCorrectedMatrixData(\n question,\n matrixSelectedRows,\n data,\n orderBy,\n chartOptions,\n fromSettings,\n colorPalette,\n filterHiddenKeys, // filter hidden keys\n isRoundedValues\n );\n if (sortedDataKeys.length === 0) chartSelectedMetric = 'value';\n } else if (isPaymentField) {\n exactChartData = getPaymentChartData({\n chartData,\n chartOptions,\n chartSelectedMetric,\n chartType,\n colorPalette,\n entryLimit,\n fromSettings,\n isRoundedValues,\n orderBy,\n otherChartDataOptions,\n question,\n totalChoice,\n products\n });\n } else {\n exactChartData = getDefaultExactData({\n chartData,\n chartOptions,\n chartSelectedMetric,\n chartType,\n colorPalette,\n data,\n entryLimit,\n fromSettings,\n isRoundedValues,\n orderBy,\n otherChartDataOptions,\n question,\n totalChoice,\n valueSource,\n fromSummarize\n });\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Couldn\\'t calculate chart data', error.toString());\n }\n if (Object.keys(customLabels).length > 0) {\n [exactChartData, sortedDataKeys] = mergeWithCustomLabels(\n customLabels,\n exactChartData,\n sortedDataKeys,\n isMatrix,\n isPaymentField,\n isSheetbox,\n isImageChoice\n );\n } else if (isSheetbox) { // modify sheetbox name when have no customLabels\n exactChartData = exactChartData.map(cData => ({\n ...cData,\n name: (cData.name === '0' && 'Empty') || (cData.name === '1' && 'Checked') || cData.name,\n checked: cData.name !== '0'\n }));\n }\n\n return [exactChartData, sortedDataKeys, chartSelectedMetric];\n};\n\nconst sortProductData = (exactChartData, data) => {\n if (!exactChartData[0]?.productOptions) {\n return data;\n }\n\n const optionsName = Object.keys(exactChartData[0].productOptions);\n const isOtherOptionEnabled = optionsName.findIndex(name => name === 'Other entries') > -1;\n\n if (isOtherOptionEnabled) {\n optionsName.splice(optionsName.indexOf('Other entries'), 1);\n }\n\n const sortedItems = optionsName.map(name => {\n return data.find(dataItem => dataItem.name === name);\n });\n\n return sortedItems;\n};\n\nexport const getMergedData = ({\n chartData,\n exactChartData,\n sortedDataKeys,\n questionType,\n chartType\n}) => {\n let _chartData = chartData;\n const isPaymentField = paymentFields.indexOf(questionType) > -1;\n\n if (isPaymentField) {\n if (chartType === 'line') {\n const { lineData, data, ...rest } = _chartData;\n _chartData = {\n ...rest,\n productData: {\n data: sortProductData(exactChartData, data),\n ...rest\n }\n };\n } else {\n const { lineData, ...rest } = _chartData;\n _chartData = rest;\n }\n }\n\n return {\n ..._chartData,\n data: exactChartData,\n dataKeys: sortedDataKeys\n };\n};\n\nexport const getCurrencyFormatter = currency => {\n let formatter = { format: f => f };\n if (!currency) return formatter;\n\n try {\n formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Browser doesn\\'t support Intl API');\n }\n return formatter;\n};\n\nexport const getCustomQuestions = question => {\n const customQuestions = {\n isEmojiSlider: false,\n isImageChoice: false,\n isStarRating: false,\n isSheetbox: false,\n isAssignee: false\n };\n if (question.type === 'control_matrix' && question.inputType === 'Emoji Slider') {\n customQuestions.isEmojiSlider = emojiArrays[question.emojiCount || 5];\n return customQuestions;\n }\n switch (question.type) {\n case 'control_imagechoice': {\n customQuestions.isImageChoice = true;\n break;\n }\n case 'emojiSlider': {\n customQuestions.isEmojiSlider = emojiArrays[question.emojiCount || 5];\n break;\n }\n case 'control_rating': {\n customQuestions.isStarRating = { stars: question.stars, starStyle: question.starStyle };\n break;\n }\n case 'control_sheetbox': {\n customQuestions.isSheetbox = true;\n break;\n }\n case 'control_assignee': {\n customQuestions.isAssignee = true;\n break;\n }\n default: return customQuestions;\n }\n return customQuestions;\n};\n","/* eslint complexity: [\"error\", 25] */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\n\nimport { getPipedName, getPipedLink } from '../chartFunctions';\nimport { emoBase } from '../chartConstants';\nimport sheetboxUnselected from '../../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../../assets/svg/sheetbox_select.svg';\n\nconst PieChartTooltip = ({\n active,\n payload,\n ...otherProps\n}) => {\n if (!active || payload.length === 0) return null;\n const _selectedPayload = payload[0];\n const selectedPayload = _selectedPayload.payload;\n const { dataKey } = _selectedPayload;\n const { color, name, percentage } = selectedPayload;\n const {\n customQuestions: {\n isEmojiSlider,\n isStarRating,\n isImageChoice,\n isSheetbox,\n isAssignee\n },\n tooltipConfig: {\n name: isShowName,\n percentageTotal: isShowPercentage,\n response: isShowResponse,\n light: isLightMode,\n title: isShowTitle\n }\n } = otherProps;\n\n const renderStars = () => {\n const { stars, starStyle } = isStarRating;\n const starValues = Array.from({ length: stars }, (v, k) => k + 1);\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const fillColor = starStyle === 'Hearts' ? '#E84649' : '#ffc426';\n return starValues.map(star => (\n \n ));\n };\n\n const renderPieInfo = () => {\n if (isSheetbox) {\n const IconSheetbox = selectedPayload.checked ? sheetboxSelected : sheetboxUnselected;\n return (\n
\n \n \n \n \n {t(selectedPayload.name)}\n \n \n
\n );\n }\n };\n\n const renderAssigneeInfo = () => {\n if (isAssignee) {\n const link = getPipedLink(selectedPayload.name);\n const assigneeText = getPipedName(selectedPayload.name);\n return (\n
\n \n \n \n {t(assigneeText)}\n \n \n
\n );\n }\n };\n\n return (\n
\n
\n
\n {(isImageChoice || isEmojiSlider) && (\n
\n \n
\n )}\n
\n
\n {isShowName !== 'off' && !isEmojiSlider && (\n <>\n {getPipedName(selectedPayload.name) && (\n <>\n {isAssignee && renderAssigneeInfo()}\n {isStarRating && (\n
\n {renderStars()}\n
\n )}\n {isShowTitle !== 'off' && !isAssignee && !isStarRating && (\n
\n {t('Data')}\n
\n )}\n {(!isStarRating && !isSheetbox && !isAssignee && getPipedName(selectedPayload.name)) && (\n
\n {getPipedName(selectedPayload.name)}\n
\n )}\n {isSheetbox && renderPieInfo()}\n \n )}\n \n )}\n {isShowResponse !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Response')}\n
\n )}\n
\n {selectedPayload[dataKey]}\n
\n \n )}\n {isShowPercentage !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Percentage')}\n
\n )}\n
\n {percentage}\n
\n \n )}\n
\n
\n
\n
\n );\n};\n\nPieChartTooltip.propTypes = {\n active: PropTypes.bool.isRequired,\n payload: PropTypes.arrayOf(PropTypes.shape({\n dataKey: 'value',\n payload: PropTypes.shape({\n color: PropTypes.string,\n name: PropTypes.string,\n percentage: PropTypes.string,\n value: PropTypes.number,\n checked: PropTypes.bool\n })\n })).isRequired\n};\n\nexport default React.memo(PieChartTooltip);\n","/* eslint-disable complexity */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\nimport classNames from 'classnames';\nimport {\n getLabelImage,\n getLabelText,\n getColorLight,\n getLabelIsDeleted\n} from '../../chartFunctions';\n\nconst RADIAN = Math.PI / 180;\n\nconst PieLabel = ({\n chartType = 'pie',\n cx = 0,\n cy = 0,\n innerRadius = 0,\n customQuestions = {},\n item: {\n chartFontFamily,\n chartFontSize,\n labelNameShow,\n labelPercentageTotalShow,\n labelResponseValueShow,\n primaryLabelColor,\n secondaryLabelColor\n } = {},\n midAngle = 0,\n name = '',\n outerRadius = 0,\n payload: { color } = {},\n percentage = '0%',\n value = 0\n}) => {\n const { isAssignee, isEmojiSlider, isStarRating } = customQuestions;\n const notExistsLabel = labelNameShow === 'off'\n && labelResponseValueShow === 'off'\n && labelPercentageTotalShow === 'off';\n\n if (notExistsLabel) return null;\n\n const radius = 25 + innerRadius + (outerRadius - innerRadius);\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n const multiplier = chartType === 'pie' ? 0.75 : 0.5;\n const insideRadius = innerRadius + (outerRadius - innerRadius) * multiplier;\n const insideX = cx + insideRadius * Math.cos(-midAngle * RADIAN);\n const insideY = cy + insideRadius * Math.sin(-midAngle * RADIAN);\n\n const { starStyle } = isStarRating;\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n\n const text = getLabelText(customQuestions, name);\n const image = getLabelImage(customQuestions, name);\n const isDeleted = getLabelIsDeleted(customQuestions, name);\n const isDark = color && getColorLight(color) < 50;\n\n return (\n <>\n {labelNameShow === 'on' && image && (\n cx ? x - 38 : x + 10}\n y={y - 18}\n >\n \n \n \n \n )}\n \n cx ? 'start' : 'end'}\n x={x}\n y={y - 10}\n >\n {(labelNameShow === 'on' && text) && (\n \n {text}\n \n )}\n {labelPercentageTotalShow === 'on' && (\n \n {percentage}\n \n )}\n \n {isStarRating && (\n \n \n \n )}\n {labelResponseValueShow === 'on' && (\n cx ? 'start' : 'end'}\n dominantBaseline=\"central\"\n >\n {value}\n \n )}\n \n \n );\n};\n\nPieLabel.propTypes = {\n chartType: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n customQuestions: PropTypes.shape({\n isAssignee: PropTypes.bool,\n isEmojiSlider: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n isImageChoice: PropTypes.bool,\n isStarRating: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({})\n ]),\n isSheetbox: PropTypes.bool\n }),\n item: PropTypes.shape({\n chartFontFamily: PropTypes.string,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n labelNameShow: PropTypes.string,\n labelPercentageTotalShow: PropTypes.string,\n labelResponseValueShow: PropTypes.string,\n primaryLabelColor: PropTypes.string,\n secondaryLabelColor: PropTypes.string\n }),\n midAngle: PropTypes.number,\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n outerRadius: PropTypes.number,\n percentage: PropTypes.string,\n payload: PropTypes.shape({\n color: PropTypes.string\n }),\n value: PropTypes.number\n};\n\nexport default PieLabel;\n","import React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Cell,\n Pie,\n PieChart,\n ResponsiveContainer,\n Tooltip\n} from 'recharts';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport PieChartTooltip from '../../ChartTooltip/PieChartTooltip';\nimport PieLabel from './PieLabel';\nimport { getCustomQuestions } from '../../chartFunctions';\n\nconst pieChartMargin = {\n bottom: 40,\n left: 40,\n right: 40,\n top: 40\n};\n\nconst ChartPie = ({\n chartData = {},\n customProps = {},\n item = {},\n resources: { question, reportTooltip } = {},\n wrapperMaxWidth = '',\n selectedMetric = 'value'\n}) => {\n let { data } = chartData;\n const customQuestions = getCustomQuestions(question);\n const parsedReportTooltip = useMemo(() => safeJSONParse(reportTooltip), [reportTooltip]);\n const { show: isShowTooltip } = parsedReportTooltip;\n\n const { labelNameShow, labelPercentageTotalShow, labelResponseValueShow } = item;\n let isExistsLabel = labelNameShow === 'on'\n || labelPercentageTotalShow === 'on'\n || labelResponseValueShow === 'on';\n const isExistsLabelLine = labelNameShow === 'on'\n || labelPercentageTotalShow === 'on';\n\n const isEmpty = data.every(d => d.value === 0);\n if (isEmpty) {\n isExistsLabel = false;\n data = data.map(d => ({ ...d, value: 1 }));\n } else {\n data = data.filter(d => d.value !== 0);\n }\n\n return (\n \n \n (\n \n ) : false}\n labelLine={isExistsLabelLine}\n >\n {data.map((entry, index) => (\n \n ))}\n \n {isShowTooltip !== 'off' && (\n \n )}\n cursor={false}\n isAnimationActive={false}\n />\n )}\n \n \n );\n};\n\nChartPie.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({}))\n }),\n customProps: PropTypes.shape({}),\n item: PropTypes.shape({\n isRoundedValues: PropTypes.string,\n labelNameShow: PropTypes.string,\n labelPercentageTotalShow: PropTypes.string,\n labelResponseValueShow: PropTypes.string\n }),\n resources: PropTypes.shape({\n question: PropTypes.object,\n reportTooltip: PropTypes.string\n }),\n selectedMetric: PropTypes.string,\n wrapperMaxWidth: PropTypes.string\n};\n\nexport default memo(ChartPie);\n","import Pie from './Pie';\n\nexport default Pie;\n","/* eslint-disable complexity */\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\n\nimport { getPipedName, getPipedLink } from '../chartFunctions';\nimport { emoBase } from '../chartConstants';\nimport sheetboxUnselected from '../../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../../assets/svg/sheetbox_select.svg';\n\nconst ChartTooltip = ({\n customPayload: selectedPayload = {},\n dataKey = 'value',\n customQuestions: {\n isEmojiSlider,\n isImageChoice,\n isStarRating,\n isSheetbox,\n isAssignee\n } = {},\n tooltipConfig: {\n name: isShowName,\n percentageTotal: isShowPercentage,\n response: isShowResponse,\n light: isLightMode,\n title: isShowTitle\n } = {}\n}) => {\n if (Object.keys(selectedPayload).length === 0) return null;\n const { color, name, percentage } = selectedPayload;\n\n const renderStars = () => {\n const { stars, starStyle } = isStarRating;\n const starValues = Array.from({ length: stars }, (v, k) => k + 1);\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const fillColor = starStyle === 'Hearts' ? '#E84649' : '#ffc426';\n return starValues.map(star => (\n \n ));\n };\n\n const renderPieInfo = () => {\n if (isSheetbox) {\n const IconSheetbox = selectedPayload.checked ? sheetboxSelected : sheetboxUnselected;\n return (\n
\n \n \n \n \n {t(selectedPayload.name)}\n \n \n
\n );\n }\n };\n\n const renderAssigneeInfo = () => {\n if (isAssignee) {\n const link = getPipedLink(selectedPayload.name);\n const assigneeText = getPipedName(selectedPayload.name);\n return (\n
\n \n \n \n {t(assigneeText)}\n \n \n
\n );\n }\n };\n\n return (\n
\n
\n
\n {(isImageChoice || isEmojiSlider) && (\n
\n \n
\n )}\n
\n
\n {isShowName !== 'off' && !isEmojiSlider && (\n <>\n {getPipedName(selectedPayload.name) && (\n <>\n {isAssignee && renderAssigneeInfo()}\n {isStarRating && (\n
\n {renderStars()}\n
\n )}\n {isShowTitle !== 'off' && !isAssignee && !isStarRating && (\n
\n {t('Data')}\n
\n )}\n {(!isStarRating && !isSheetbox && !isAssignee && getPipedName(selectedPayload.name)) && (\n
\n {getPipedName(selectedPayload.name)}\n
\n )}\n {isSheetbox && renderPieInfo()}\n \n )}\n \n )}\n {isShowResponse !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Response')}\n
\n )}\n
\n {selectedPayload[dataKey]}\n
\n \n )}\n {isShowPercentage !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Percentage')}\n
\n )}\n
\n {percentage}\n
\n \n )}\n
\n
\n
\n
\n );\n};\n\nChartTooltip.propTypes = {\n customPayload: PropTypes.shape({}),\n dataKey: PropTypes.string,\n customQuestions: PropTypes.shape({\n isEmojiSlider: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.bool\n ]),\n isImageChoice: PropTypes.bool,\n isAssignee: PropTypes.bool,\n isStarRating: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.bool\n ]),\n isSheetbox: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.bool\n ])\n }),\n tooltipConfig: PropTypes.shape({\n name: PropTypes.string,\n percentageTotal: PropTypes.string,\n response: PropTypes.string,\n light: PropTypes.string,\n title: PropTypes.string\n })\n};\n\nexport default React.memo(ChartTooltip);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\nimport { getLabelImage, getLabelText, getLabelIsDeleted } from '../../chartFunctions';\nimport sheetboxUnselected from '../../../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../../../assets/svg/sheetbox_select.svg';\n\nconst CustomizedAxisTick = ({\n height = 0,\n customQuestions = {},\n layout = 'horizontal',\n payload = {},\n visibleTicksCount = 0,\n width = 0,\n x = 0,\n y = 0,\n tickStyle = {},\n data = []\n}) => {\n const {\n isAssignee,\n isEmojiSlider,\n isStarRating,\n isSheetbox\n } = customQuestions;\n const isHorizontal = layout === 'horizontal';\n const text = getLabelText(customQuestions, payload.value);\n const image = getLabelImage(customQuestions, payload.value);\n const isDeleted = getLabelIsDeleted(customQuestions, payload.value);\n\n const { starStyle } = isStarRating;\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const IconSheetbox = isSheetbox && data.find(d => d.name === payload.value)?.checked ? sheetboxSelected : sheetboxUnselected;\n\n return (\n \n \n {image\n && (\n \n \n \n )}\n {text && (\n \n {isSheetbox && }\n \n {text}\n {isStarRating && (\n \n )}\n \n \n )}\n \n \n );\n};\n\nCustomizedAxisTick.propTypes = {\n tickStyle: PropTypes.shape({}),\n height: PropTypes.number,\n customQuestions: PropTypes.shape({\n isAssignee: PropTypes.bool,\n isEmojiSlider: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n isImageChoice: PropTypes.bool,\n isStarRating: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({})\n ]),\n isSheetbox: PropTypes.bool\n }),\n layout: PropTypes.string,\n payload: PropTypes.shape({\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n }),\n visibleTicksCount: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.shape({}))\n};\n\nexport default memo(CustomizedAxisTick);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Text } from 'recharts';\nimport { getColorLight } from '../../chartFunctions';\n\nconst getCustomLabelStyle = props => {\n const {\n offset, position, viewBox, value\n } = props;\n const {\n height, width, x, y\n } = viewBox;\n const sign = height >= 0 ? 1 : -1;\n\n switch (position) {\n case 'top':\n return {\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start',\n x: x + width / 2,\n y: y - sign * offset\n };\n case 'customTop':\n return {\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start',\n x: x + width / 2,\n y: y - sign * offset - 15\n };\n case 'right':\n return {\n textAnchor: 'start',\n verticalAnchor: 'middle',\n x: x + width + offset,\n y: y + height / 2\n };\n case 'customRight':\n return {\n textAnchor: 'start',\n verticalAnchor: 'middle',\n x: x + width + offset + value.toString().length * 12,\n y: y + height / 2\n };\n case 'insideRight':\n return {\n textAnchor: 'end',\n verticalAnchor: 'middle',\n x: x + width - offset,\n y: y + height / 2\n };\n case 'insideTop':\n return {\n textAnchor: 'middle',\n verticalAnchor: 'start',\n x: x + width / 2,\n y: y + sign * offset\n };\n default:\n }\n};\n\nconst CustomizedLabel = ({\n label,\n labelStyle,\n layout,\n offset,\n selectedMetric,\n value: payload,\n viewBox\n}) => {\n // eslint-disable-next-line react/prop-types\n const { color, percentage, value: payloadValue } = payload;\n const value = selectedMetric ? payload[selectedMetric] : payloadValue;\n const { height, width } = viewBox;\n const { labelPercentageTotalShow, labelResponseValueShow } = label;\n let positionForValue = layout === 'horizontal' ? 'insideTop' : 'insideRight';\n let positionForPercentage = layout === 'horizontal' ? 'top' : 'right';\n\n const referenceAxis = layout === 'horizontal' ? height : width;\n const valueToUse = value || 0;\n const isFitInLabel = (referenceAxis - offset) > (valueToUse.toString().length * 10);\n const conditionForOutside = labelResponseValueShow === 'on' && (value === 0 || !isFitInLabel);\n if (conditionForOutside) {\n positionForValue = layout === 'horizontal' ? 'top' : 'right';\n positionForPercentage = layout === 'horizontal' ? 'customTop' : 'customRight';\n }\n\n const isDark = color && getColorLight(color) < 50;\n return (\n \n {labelResponseValueShow === 'on' && (\n \n {value}\n \n )}\n {labelPercentageTotalShow === 'on' && (\n \n {percentage}\n \n )}\n \n );\n};\n\nCustomizedLabel.propTypes = {\n label: PropTypes.shape({\n labelPercentageTotalShow: PropTypes.string,\n labelResponseValueShow: PropTypes.string\n }).isRequired,\n layout: PropTypes.string.isRequired,\n offset: PropTypes.number.isRequired,\n selectedMetric: PropTypes.string.isRequired,\n value: PropTypes.shape({}).isRequired,\n viewBox: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number\n }).isRequired,\n labelStyle: PropTypes.shape({}).isRequired\n};\n\nexport default CustomizedLabel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nimport { getPipedName } from '../chartFunctions';\nimport { emoBase } from '../chartConstants';\n\nconst ChartTooltipList = ({\n customPayload: selectedPayload = {},\n dataKeys = [],\n customQuestions: {\n isEmojiSlider\n } = {},\n tooltipConfig: {\n name: isShowName,\n percentageTotal: isShowPercentage,\n response: isShowResponse,\n light: isLightMode,\n title: isShowTitle\n } = {}\n}) => {\n if (Object.keys(selectedPayload).length === 0) return null;\n // eslint-disable-next-line react/prop-types\n const { name } = selectedPayload;\n\n return (\n
\n
\n {getPipedName(name)}\n
\n {dataKeys.map(dataKey => (\n
\n
\n
\n
\n {isShowName !== 'off' && (\n
\n {isShowTitle !== 'off' && (\n
\n {t('Data')}\n
\n )}\n
\n {isEmojiSlider ? (\n \n )\n : dataKey}\n
\n
\n )}\n {isShowResponse !== 'off' && (\n
\n {isShowTitle !== 'off' && (\n
\n {t('Response')}\n
\n )}\n
\n {`${selectedPayload[dataKey].value}`}\n
\n
\n )}\n {isShowPercentage !== 'off' && (\n
\n {isShowTitle !== 'off' && (\n
\n {t('Percentage')}\n
\n )}\n
\n {selectedPayload[dataKey].percentage}\n
\n
\n )}\n
\n
\n
\n ))}\n
\n );\n};\n\nChartTooltipList.propTypes = {\n customPayload: PropTypes.shape({}),\n dataKeys: PropTypes.arrayOf(PropTypes.string),\n customQuestions: PropTypes.shape({\n isEmojiSlider: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.bool\n ])\n }),\n tooltipConfig: PropTypes.shape({\n name: PropTypes.string,\n percentageTotal: PropTypes.string,\n response: PropTypes.string,\n light: PropTypes.string,\n title: PropTypes.string\n })\n};\n\nexport default ChartTooltipList;\n","import { memo } from 'react';\n\nconst ResponsiveContent = ({ children, width, height }) => {\n return children(width, height);\n};\n\nexport default memo(ResponsiveContent);\n","import React, {\n memo,\n useState,\n useCallback,\n useMemo\n} from 'react';\nimport PropTypes from 'prop-types';\nimport {\n BarChart,\n Bar,\n Cell,\n XAxis,\n YAxis,\n LabelList,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip\n} from 'recharts';\nimport { Resizable } from 're-resizable';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport ChartTooltip from '../../ChartTooltip/ChartTooltip';\nimport CustomizedAxisTick from './CustomizedAxisTick';\nimport CustomizedLabel from './CustomizedLabel';\nimport ChartTooltipList from '../../ChartTooltip/ChartTooltipList';\nimport ResponsiveContent from './ResponsiveContent';\nimport { getCustomQuestions } from '../../chartFunctions';\n\nconst barChartMargin = {\n bottom: 10,\n left: 0,\n right: 30,\n top: 20\n};\nconst columnChartMargin = { ...barChartMargin, left: -20 };\n\nconst initialCategoryAxisWidth = 104;\nconst axisDomain = [0, dataMax => Math.max(Math.round(dataMax * 1.2), dataMax + 1)];\nconst radius = {\n horizontal: [4, 4, 0, 0],\n vertical: [0, 4, 4, 0]\n};\n\nconst ChartBar = ({\n chartData: { data, dataKeys } = {},\n customProps = {\n layout: 'vertical'\n },\n isSelected = false,\n item = {},\n onAnEventTrigger = () => {},\n onItemChange = () => {},\n resources: { question, reportTooltip } = {},\n selectedMetric = 'value'\n}) => {\n const {\n chartFontFamily,\n chartFontSize,\n labelPercentageTotalShow,\n labelResponseValueShow,\n primaryLabelColor,\n secondaryLabelColor,\n axisWidth,\n width\n } = item;\n const parsedReportTooltip = useMemo(() => safeJSONParse(reportTooltip), [reportTooltip]);\n const { show: isShowTooltip } = parsedReportTooltip;\n const { layout } = customProps;\n const categoryAxisWidth = parseInt(axisWidth, 10) || initialCategoryAxisWidth;\n const [allowDragging, setAllowDragging] = useState(false);\n const [scale, setScale] = useState(1);\n\n const initialStateTooltip = { index: -1, payload: null };\n const [tooltip, setTooltip] = useState(initialStateTooltip);\n const handleOnMouseEnter = useCallback((payload, index) => {\n setTooltip({ index, payload });\n }, [tooltip]);\n\n const handleOnMouseLeave = useCallback(() => {\n setTooltip(initialStateTooltip);\n }, [tooltip]);\n\n const wrapperStyle = useMemo(() => ({\n visibility: tooltip.index >= 0 ? 'visible' : 'hidden'\n }), [tooltip]);\n\n const customQuestions = getCustomQuestions(question);\n const exactCustomQuestions = {\n ...customQuestions,\n isEmojiSlider: dataKeys.length === 0 && customQuestions.isEmojiSlider\n };\n const CustomTooltip = dataKeys.length > 0 ? ChartTooltipList : ChartTooltip;\n const cartesianProps = {\n stroke: '#DEE0EA',\n [layout === 'horizontal' ? 'vertical' : 'horizontal']: false\n };\n\n const commonBarProps = {\n isAnimationActive: false,\n minPointSize: 3,\n onMouseEnter: handleOnMouseEnter,\n onMouseLeave: handleOnMouseLeave,\n radius: radius[layout]\n };\n\n const commonLabelListProps = {\n content: CustomizedLabel,\n label: {\n labelPercentageTotalShow,\n labelResponseValueShow\n },\n labelStyle: { fill: secondaryLabelColor, fontSize: parseInt(chartFontSize, 10), fontFamily: chartFontFamily },\n layout\n };\n\n const dataKeyForAxis = ({ name }) => ((customQuestions.isImageChoice || customQuestions.isAssignee) ? JSON.stringify(name) : name);\n const tickStyle = useMemo(() => ({\n color: primaryLabelColor,\n fontFamily: chartFontFamily,\n fontSize: parseInt(chartFontSize, 10),\n lineHeight: '20px'\n }), [primaryLabelColor, chartFontFamily, chartFontSize]);\n const customizedAxisTick = (\n \n );\n\n const customBarSizeProps = dataKeys.length > 0 ? { barGap: '6%' } : { maxBarSize: 60 };\n\n const onDragStart = useCallback(e => {\n setScale(document.querySelector('.jfReport-viewport').getAttribute('data-zoom') || 1);\n if (!allowDragging) {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [allowDragging]);\n\n const onResizeStart = useCallback(() => {\n setAllowDragging(false);\n }, []);\n\n const onResizeStop = useCallback((e, direction, ref, d) => {\n onItemChange({ id: item.id }, { axisWidth: parseInt(categoryAxisWidth + d.width, 10) });\n setAllowDragging(true);\n onAnEventTrigger('barChartLabelResize', 'report');\n }, [item, categoryAxisWidth, onItemChange, onAnEventTrigger]);\n\n const customTooltipProps = useMemo(() => {\n return {\n ...dataKeys.length > 0 ? { dataKeys } : { dataKey: selectedMetric },\n customQuestions\n };\n }, [dataKeys, selectedMetric, customQuestions]);\n\n return (\n \n \n {(containerWidth, containerHeight) => {\n return (\n <>\n \n \n {layout === 'horizontal' ? (\n [\n ,\n \n ]\n ) : (\n [\n ,\n \n ]\n )}\n {dataKeys.length > 0 ? dataKeys.map((key, index) => ( // for matrix render\n _d[key]?.value}\n {...commonBarProps}\n >\n payload[key]}\n selectedMetric=\"value\"\n {...commonLabelListProps}\n />\n {data.map((entry, i) => {\n const dKey = `index_${i}`;\n return (\n \n );\n })}\n \n )) : ( // for other question render\n \n payload}\n selectedMetric={selectedMetric}\n {...commonLabelListProps}\n />\n {data.map((entry, i) => {\n const dKey = `index_${i}`;\n return (\n \n );\n })}\n \n )}\n {isShowTooltip !== 'off' && (\n \n )}\n cursor={false}\n isAnimationActive={false}\n wrapperStyle={wrapperStyle}\n />\n )}\n \n {(layout !== 'horizontal' && isSelected) && (\n \n )}\n \n );\n }}\n \n \n );\n};\n\nChartBar.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({})),\n dataKeys: PropTypes.arrayOf(PropTypes.string)\n }),\n customProps: PropTypes.shape({\n layout: PropTypes.string\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n chartFontFamily: PropTypes.string,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n labelPercentageTotalShow: PropTypes.string,\n labelResponseValueShow: PropTypes.string,\n left: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n primaryLabelColor: PropTypes.string,\n secondaryLabelColor: PropTypes.string,\n axisWidth: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n top: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ])\n }),\n resources: PropTypes.shape({\n question: PropTypes.object,\n reportTooltip: PropTypes.string\n }),\n selectedMetric: PropTypes.string,\n onAnEventTrigger: PropTypes.func,\n onItemChange: PropTypes.func,\n isSelected: PropTypes.bool\n};\n\nexport default memo(ChartBar);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconCalendar } from '@jotforminc/svg-icons';\n\nimport { getCurrencyFormatter, getPercentValue } from '../chartFunctions';\n\nconst LineChartTooltip = ({ payload, active, ...otherProps }) => {\n if (!active || (!payload || payload.length === 0)) return null;\n const {\n tooltipConfig: {\n name: isShowName,\n percentageTotal: isShowPercentage,\n response: isShowResponse,\n light: isLightMode,\n title: isShowTitle,\n amount: isShowAmount\n },\n selectedMetric\n } = otherProps;\n const _payload = payload[0].payload;\n const { name, productOptions } = _payload;\n const { currency } = productOptions[payload[0].dataKey];\n const formatter = getCurrencyFormatter(currency);\n\n const calculateTotalMetric = metric => {\n return Object.keys(productOptions)\n .reduce((a, c) => a + (productOptions[c][metric] || 0), 0);\n };\n const totalAmount = calculateTotalMetric('amount');\n const totalQuantity = calculateTotalMetric('quantity');\n\n return (\n
\n
\n \n \n {name}\n \n
\n {Object.keys(productOptions).map(dataKey => (\n \n
\n {productOptions[dataKey].image && (\n
\n \n
\n )}\n
\n
\n
\n {isShowName !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Data')}\n
\n )}\n
\n {dataKey}\n
\n \n )}\n {isShowPercentage !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Percentage')}\n
\n )}\n
\n {getPercentValue((productOptions[dataKey].quantity || 0), totalQuantity)}\n
\n \n )}\n
\n
\n {isShowResponse !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Quantity')}\n
\n )}\n
\n {productOptions[dataKey].quantity || 0}\n
\n \n )}\n {isShowAmount !== 'off' && (\n <>\n {isShowTitle !== 'off' && (\n
\n {t('Amount')}\n
\n )}\n
\n {formatter.format(productOptions[dataKey].amount || 0)}\n
\n \n )}\n
\n
\n
\n
\n ))}\n
\n {`Total ${selectedMetric}:`}\n \n {selectedMetric === 'Quantity' ? totalQuantity : formatter.format(totalAmount)}\n \n
\n
\n );\n};\n\nLineChartTooltip.propTypes = {\n payload: PropTypes.arrayOf(PropTypes.shape({\n dataKey: PropTypes.string,\n payload: PropTypes.shape({\n name: PropTypes.string,\n productOptions: PropTypes.shape({})\n })\n })).isRequired,\n active: PropTypes.bool.isRequired\n};\n\nexport default memo(LineChartTooltip);\n","import React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport {\n CartesianGrid,\n Line,\n LineChart,\n ResponsiveContainer,\n XAxis,\n YAxis,\n Tooltip\n} from 'recharts';\nimport isEmpty from 'lodash/isEmpty';\nimport { getCurrencyFormatter } from '../chartFunctions';\nimport LineChartTooltip from '../ChartTooltip/LineChartTooltip';\n\nconst axisDomain = [0, 'dataMax + 1'];\n\nconst ChartLine = ({\n chartData = {},\n resources: { reportTooltip } = {},\n selectedMetric = 'Quantity'\n}) => {\n const parsedReportTooltip = useMemo(() => safeJSONParse(reportTooltip), [reportTooltip]);\n const { show: isShowTooltip } = parsedReportTooltip;\n const { data } = chartData;\n const { productOptions, ...dataLine } = data[0];\n let currency = '';\n if (!isEmpty(productOptions)) {\n currency = productOptions[Object.keys(productOptions)[0]].currency;\n }\n\n const dataKeys = Object.keys(dataLine).filter(k => k !== 'name' && k !== 'color' && k !== 'isVisible' && k !== 'percentage');\n const yAxisFormatter = useMemo(() => value => {\n return selectedMetric === 'Quantity'\n ? value : getCurrencyFormatter(currency).format(value);\n }, [currency, selectedMetric]);\n\n const commonLineProps = useMemo(() => ({\n activeDot: { r: 8 },\n isAnimationActive: false,\n legendType: 'circle',\n type: 'monotone'\n }), []);\n\n return (\n \n \n \n \n \n {!isEmpty(productOptions) && isShowTooltip !== 'off' && (\n \n )}\n />\n )}\n {dataKeys.length > 0\n && dataKeys.filter(d => !(productOptions && !productOptions[d])).map((key, index) => {\n const rKey = `${key}_${index}`;\n const multiplier = index === 0 ? index : index * 2;\n const fill = productOptions ? productOptions[key].color : `rgba(0, 166, 97, ${(100 - (10 * multiplier)) / 100})`;\n return (\n \n );\n })}\n \n \n );\n};\n\nChartLine.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n productOptions: PropTypes.shape({\n color: PropTypes.string,\n data: PropTypes.shape({})\n })\n })),\n dataKeys: PropTypes.arrayOf(PropTypes.string)\n }),\n item: PropTypes.shape({}),\n resources: PropTypes.shape({\n reportTooltip: PropTypes.string\n }),\n selectedMetric: PropTypes.string\n};\n\nexport default memo(ChartLine);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport maxBy from 'lodash/maxBy';\nimport { t } from '@jotforminc/translation';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\n\nimport {\n getPipedLink,\n getPipedName,\n responses,\n getColorLight,\n getPipedIsDeleted\n} from '../chartFunctions';\nimport { emojiArrays, emoBase } from '../chartConstants';\nimport sheetboxUnselected from '../../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../../assets/svg/sheetbox_select.svg';\n\nconst avgFields = ['control_rating'];\nconst ChartBasic = ({\n chartData = {},\n resources: { form, question } = {},\n wrapperMaxWidth = '',\n item: {\n chartFontFamily,\n chartFontSize,\n secondaryLabelColor,\n primaryLabelColor\n } = {},\n selectedMetric = ''\n}) => {\n const {\n data,\n totalChoice: total\n } = chartData;\n\n const average = data.length ? data[data.length - 1].average || 0 : '';\n const showAverage = question.type === 'emojiSlider' || avgFields.includes(question.type);\n const isImageChoice = question.type === 'control_imagechoice';\n const isAssignee = question.type === 'control_assignee';\n\n const filteredOtherData = data.filter(d => getPipedName(d.name) !== 'Other entries');\n const mostWantedOption = maxBy(filteredOtherData, selectedMetric) || {};\n const metricTotal = selectedMetric !== 'value' ? chartData[`total${selectedMetric}`] : data.reduce((acc, curr) => {\n return curr.isVisible ? curr.value + acc : acc;\n }, 0);\n\n const percent = (mostWantedOption[selectedMetric] * 100) / metricTotal;\n const mostWantedPercentage = Number.isNaN(percent) ? '0%' : `${percent.toFixed(0)}%`;\n const mostWantedLink = getPipedLink(mostWantedOption.name);\n const mostWantedName = getPipedName(mostWantedOption.name);\n const isDeleted = getPipedIsDeleted(mostWantedOption.name);\n\n const getEmoji = value => {\n const emojiArray = emojiArrays[question.emojiCount || 5];\n const image = emojiArray[value - 1] || 4;\n return (\n \n );\n };\n\n const getStars = (avgVal, starValues, starStyle) => {\n const fillRatio = (avgVal * 100) / starValues.length;\n const svgWidth = 100 / starValues.length;\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const fillColor = starStyle === 'Hearts' ? '#E84649' : '#ffc426';\n\n return (\n \n \n \n {starValues\n .map(val => (\n \n ))}\n \n {starValues\n .map(val => (\n \n ))}\n \n
\n );\n };\n\n const getProductImage = style => {\n if (mostWantedOption.name) {\n const productName = mostWantedOption.name.split('(Amount')[0].trim();\n if (form.products) {\n const product = form.products.find(f => f.name === productName);\n if (product) {\n const showLabel = !product.icon;\n return (\n <>\n {showLabel && Top Selling Product}\n {!showLabel ? (\n <>\n \n {Number.isNaN(Number(mostWantedName))}\n {mostWantedName}\n \n ) : (\n \n {mostWantedName}\n \n )}\n \n );\n }\n } else {\n return (\n <>\n Top Selling Product\n \n {mostWantedName}\n \n \n );\n }\n }\n return null;\n };\n\n const getMostWanted = () => {\n const showLabel = !showAverage && !isImageChoice && !isAssignee;\n const { color } = mostWantedOption;\n const style = {\n backgroundColor: color,\n borderColor: color,\n color: color && getColorLight(color) < 50 ? '#F2F2F2' : '#000000',\n fontFamily: chartFontFamily,\n fontSize: parseInt(chartFontSize, 10)\n };\n if (question.type === 'control_paypalSPB' || question.type === 'control_stripe') {\n return getProductImage(style);\n }\n\n return (\n <>\n {showLabel && {t('Best Response')}}\n {isImageChoice ? (\n <>\n \n {Number.isNaN(Number(mostWantedName))\n && {mostWantedName}}\n \n ) : (\n \n \n {mostWantedName}\n \n \n )}\n \n );\n };\n\n const renderImage = () => {\n if (question.inputType && question.inputType === 'Emoji Slider') {\n return getEmoji(Math.ceil(average));\n }\n if (question.type === 'control_rating') {\n const starValues = Array.from({ length: question.stars }, (v, k) => k + 1);\n return getStars(average, starValues, question.starStyle);\n }\n if (question.type === 'control_sheetbox') {\n const IconSheetbox = mostWantedOption.checked ? sheetboxSelected : sheetboxUnselected;\n return (\n <>\n {t('Best Response')}\n \n \n {t(mostWantedName)}\n \n \n );\n }\n if (isAssignee) {\n return (\n <>\n {t('Best Response')}\n \n \n {t(mostWantedName)}\n \n \n );\n }\n return getMostWanted();\n };\n\n return (\n <>\n
\n \n {renderImage()}\n
\n
\n
\n
\n \n {showAverage ? average : mostWantedPercentage}\n \n
\n
\n {t(showAverage ? 'Avg. Response' : 'Percentage')}\n
\n
\n
\n
\n \n {metricTotal}\n \n
\n
\n {responses(total, true)}\n
\n
\n
\n
\n \n );\n};\n\nChartBasic.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n average: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n })),\n totalChoice: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n item: PropTypes.shape({\n secondaryLabelColor: PropTypes.string,\n primaryLabelColor: PropTypes.string,\n chartFontFamily: PropTypes.string,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ])\n }),\n resources: PropTypes.shape({\n form: PropTypes.object,\n question: PropTypes.object\n }),\n selectedMetric: PropTypes.string,\n wrapperMaxWidth: PropTypes.string\n};\n\nexport default memo(ChartBasic);\n","import React, { memo } from 'react';\nimport ChartPie from './Pie';\n\nconst customProps = {\n innerRadius: '50%',\n outerRadius: '80%'\n};\n\nconst ChartDonut = props => {\n return (\n \n );\n};\n\nexport default memo(ChartDonut);\n","import React, {\n useMemo, useRef, useEffect, useState\n} from 'react';\nimport { areEqual } from 'react-window';\nimport PropTypes from 'prop-types';\n\nconst TextGridItemRenderer = ({\n data: {\n chartFontFamily,\n chartFontSize,\n data: chartData,\n showResponseColumn\n },\n index,\n style\n}) => {\n const root = useRef();\n\n const item = chartData[index];\n const containerStyle = useMemo(() => ({\n ...style,\n backgroundColor: index % 2 === 0 ? '#fff' : '#FBFBFD',\n fontFamily: chartFontFamily\n }), [style, index, chartFontFamily]);\n\n const [valueHeight, setValueHeight] = useState(0);\n\n const labelStyle = useMemo(() => ({\n minHeight: 42,\n height: valueHeight || '100%',\n fontSize: parseInt(chartFontSize, 10),\n ...showResponseColumn ? {} : { maxWidth: '100%' }\n }), [showResponseColumn, chartFontSize, valueHeight]);\n\n // Resize and order change value height effect accords to label height\n useEffect(() => {\n if (root.current) {\n setValueHeight(root.current.offsetHeight || 42);\n }\n });\n\n return (\n \n \n {item.name}\n \n {showResponseColumn && (\n \n \n {item.value}\n \n \n )}\n
\n );\n};\n\nTextGridItemRenderer.propTypes = {\n data: PropTypes.shape({\n chartFontFamily: PropTypes.string.isRequired,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n value: PropTypes.number\n })),\n showResponseColumn: PropTypes.bool\n }).isRequired,\n index: PropTypes.number.isRequired,\n style: PropTypes.shape({}).isRequired\n};\n\nexport default React.memo(TextGridItemRenderer, areEqual);\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoize-one';\nimport { t } from '@jotforminc/translation';\nimport { Virtuoso as VirtuosoList } from 'react-virtuoso';\n\nimport TextGridItemRenderer from './TextGridItemRenderer';\n\nconst headerHeight = 108;\nconst minRowHeight = 42;\n\nconst createItemData = memoize((\n chartFontFamily,\n chartFontSize,\n data,\n showResponseColumn\n) => ({\n chartFontFamily,\n chartFontSize,\n data,\n showResponseColumn\n}));\n\nconst TextGrid = ({\n chartData: { data: incomingData } = {},\n item: {\n chartFontFamily,\n chartFontSize,\n height,\n responseColumnShow\n } = {},\n isThumbnail = false\n}) => {\n const data = useMemo(() => {\n if (Array.isArray(incomingData)) {\n return incomingData.filter(d => d.value);\n }\n return incomingData;\n }, [incomingData]);\n\n // ResizeObserver - virtuoso error display\n useEffect(() => {\n window.addEventListener('error', e => {\n if (e.message === 'ResizeObserver loop limit exceeded' || e.message === 'ResizeObserver loop completed with undelivered notifications.') {\n const resizeObserverErrDiv = document.getElementById(\n 'webpack-dev-server-client-overlay-div'\n );\n const resizeObserverErr = document.getElementById(\n 'webpack-dev-server-client-overlay'\n );\n if (resizeObserverErr) {\n resizeObserverErr.setAttribute('style', 'display: none');\n }\n if (resizeObserverErrDiv) {\n resizeObserverErrDiv.setAttribute('style', 'display: none');\n }\n }\n });\n }, []);\n\n const showResponseColumn = responseColumnShow === undefined || responseColumnShow === 'on';\n const columnStyle = useMemo(() => ({ ...showResponseColumn ? {} : { maxWidth: '100%' } }), [showResponseColumn]);\n\n const itemData = createItemData(\n chartFontFamily,\n chartFontSize,\n data,\n showResponseColumn\n );\n\n const Header = () => {\n return (\n
\n \n {t('Data')}\n \n {showResponseColumn && (\n \n {t('Responses')}\n \n )}\n
\n );\n };\n\n if (!data[0]) return null;\n return (\n
\n {!isThumbnail ? (\n (\n \n )\n }\n />\n ) : (\n <>\n
\n {data.slice(0, Math.floor((height - headerHeight) / minRowHeight)).map((d, index) => (\n \n ))}\n \n )}\n
\n );\n};\n\nTextGrid.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({}))\n }),\n item: PropTypes.shape({\n chartFontFamily: PropTypes.string,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.string, PropTypes.number\n ]),\n height: PropTypes.number,\n responseColumnShow: PropTypes.string,\n secondaryLabelColor: PropTypes.string\n }),\n isThumbnail: PropTypes.bool\n};\n\nexport default React.memo(TextGrid);\n","import TextGrid from './TextGrid';\n\nexport default TextGrid;\n","import React, { memo } from 'react';\nimport ChartBar from './Bar/Bar';\n\nconst customProps = {\n layout: 'horizontal'\n};\n\nconst ChartColumnBar = props => {\n return (\n \n );\n};\n\nexport default memo(ChartColumnBar);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { Editable } from '@jotforminc/editable';\n\nconst KB_KEY_ESC = 27;\nconst KB_KEY_ENTER = 13;\n\nconst ChartLabel = ({\n customHeaderStyle = {},\n customResponseStyle = {},\n emptyCount = '',\n filters = {},\n isSelected = false,\n itemID = '',\n label = 'Question Label',\n onItemChange = () => {},\n responseCount = '',\n responseSummaryShow = 'on'\n}) => {\n const isFiltered = Object.keys(filters).length > 0;\n const onKeyDown = e => e.stopPropagation();\n\n const onFocus = e => {\n e.target.closest('.reportItem').setAttribute('draggable', false);\n };\n\n const onBlur = e => {\n e.target.closest('.reportItem').setAttribute('draggable', true);\n };\n\n return (\n \n
\n onItemChange({ id: itemID }, { text: newValue })}\n placeholder={isSelected ? 'Click to edit header' : ''}\n onKeyDown={onKeyDown}\n style={customHeaderStyle}\n />\n
\n {responseSummaryShow === 'on' && (\n \n {`${responseCount} ${t(`Response${responseCount > 1 ? 's' : ''}`)}`}\n {emptyCount && !isFiltered ? `- ${emptyCount} ${t('Empty')}` : ''}\n \n )}\n \n );\n};\n\nChartLabel.propTypes = {\n customHeaderStyle: PropTypes.shape({}),\n customResponseStyle: PropTypes.shape({}),\n emptyCount: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n filters: PropTypes.shape({}),\n isSelected: PropTypes.bool,\n itemID: PropTypes.string,\n label: PropTypes.string,\n onItemChange: PropTypes.func,\n responseCount: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n responseSummaryShow: PropTypes.string\n};\n\nexport default memo(ChartLabel);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport ChartLabel from './ChartLabel';\nimport bar from '../../assets/svg/chart/placeholder/bar.svg';\nimport pie from '../../assets/svg/chart/placeholder/pie.svg';\nimport basic from '../../assets/svg/chart/placeholder/basic.svg';\nimport donut from '../../assets/svg/chart/placeholder/donut.svg';\nimport column from '../../assets/svg/chart/placeholder/column.svg';\nimport line from '../../assets/svg/chart/placeholder/line.svg';\nimport textGrid from '../../assets/svg/chart/placeholder/grid.svg';\n\nconst icons = {\n bar, pie, basic, donut, column, line, textGrid\n};\n\nconst ChartPlaceholder = ({\n chartType = 'pie',\n height = 200,\n isPlaceholder = false,\n width = 200,\n deletedQuestion = false,\n customHeaderStyle = {},\n isSelected = false,\n itemID = '',\n text = '',\n onItemChange = () => {},\n responseCount = '0',\n responseSummaryShow = 'on'\n}) => {\n const ChartIcon = icons[chartType] || icons.bar;\n const isEmptyChart = !(isPlaceholder || deletedQuestion);\n return (\n f}\n style={{ height, width }}\n >\n {isEmptyChart ? (\n \n )\n : (\n
\n
\n
\n
\n
\n
\n
\n
\n )}\n
\n
\n \n {isPlaceholder ? (\n
\n \n \n Loading...\n \n \n
\n ) : (\n \n \n {deletedQuestion\n ? 'Question for this chart was deleted'\n : 'No chart data to show'}\n \n \n )}\n
\n
\n
\n );\n};\n\nexport default memo(ChartPlaceholder);\n\nChartPlaceholder.propTypes = {\n chartType: PropTypes.string,\n deletedQuestion: PropTypes.bool,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n isPlaceholder: PropTypes.bool,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n customHeaderStyle: PropTypes.shape({}),\n isSelected: PropTypes.bool,\n itemID: PropTypes.string,\n text: PropTypes.string,\n onItemChange: PropTypes.func,\n responseCount: PropTypes.string,\n responseSummaryShow: PropTypes.string\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChartPlaceholder from './ChartPlaceholder';\n\nconst EmptyChart = ({\n item = {},\n hideSettings = false,\n customHeaderStyle = {},\n isSelected = false,\n text = '',\n onItemChange = f => f\n}) => (\n \n);\n\nEmptyChart.propTypes = {\n item: PropTypes.shape({\n id: PropTypes.string,\n chartType: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n responseSummaryShow: PropTypes.string\n }),\n hideSettings: PropTypes.bool,\n customHeaderStyle: PropTypes.shape({}),\n isSelected: PropTypes.bool,\n text: PropTypes.string,\n onItemChange: PropTypes.func\n};\n\nexport default EmptyChart;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\n\nimport { getPipedName, getPipedLink } from '../chartFunctions';\nimport { emoBase } from '../chartConstants';\nimport sheetboxUnselected from '../../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../../assets/svg/sheetbox_select.svg';\n\nconst ChartLegendItem = ({\n data = {},\n customQuestions: {\n isEmojiSlider,\n isImageChoice,\n isStarRating,\n isSheetbox,\n isAssignee\n } = {},\n legendStyle = {}\n}) => {\n const name = getPipedName(data.name);\n\n const renderStars = () => {\n const { stars, starStyle } = isStarRating;\n const starValues = Array.from({ length: stars }, (v, k) => k + 1);\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const fillColor = starStyle === 'Hearts' ? '#E84649' : '#ffc426';\n return starValues.map(star => (\n \n ));\n };\n\n const renderSheetbox = () => {\n const Icon = data.checked ? sheetboxSelected : sheetboxUnselected;\n return (\n <>\n \n \n {t(data.name)}\n \n \n );\n };\n\n return (\n \n \n {(isImageChoice || isEmojiSlider || isAssignee) && (\n \n \n \n )}\n {isStarRating && renderStars()}\n {isSheetbox && renderSheetbox()}\n {(!isEmojiSlider && !isStarRating && !isSheetbox) && (\n \n \n {name}\n \n \n )}\n \n );\n};\n\nChartLegendItem.propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({})\n ]),\n customQuestions: PropTypes.shape({\n isEmojiSlider: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n isStarRating: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n stars: PropTypes.string,\n starStyle: PropTypes.string\n })\n ]),\n isImageChoice: PropTypes.bool,\n isSheetbox: PropTypes.bool,\n isAssignee: PropTypes.bool\n }),\n legendStyle: PropTypes.shape({})\n};\n\nexport default memo(ChartLegendItem);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport ChartLegendItem from './ChartLegendItem';\nimport { getCustomQuestions } from '../chartFunctions';\n\nconst ChartLegend = ({\n chartData = {}, chartType = '', question = {}, contentStyle = {}\n}) => {\n const { dataKeys } = chartData;\n let { data } = chartData.productData ? chartData.productData : chartData;\n if (chartType === 'pie' || chartType === 'donut') {\n data = data.filter(d => d.value !== 0);\n }\n\n const exactData = dataKeys.length > 0 ? dataKeys : data;\n const legendStyle = { color: contentStyle.primaryLabelColor };\n const customQuestions = getCustomQuestions(question);\n\n return (\n
\n {exactData.map((dataKey, index) => {\n if (dataKey.average) return null;\n let legendData = dataKeys.length > 0 ? { ...data[0][dataKey], name: dataKey } : dataKey;\n\n if (chartData.productData) {\n const values = chartData.data[0].productOptions[legendData.name];\n legendData = { ...values, name: legendData.name };\n }\n return (\n \n );\n })}\n
\n );\n};\n\nChartLegend.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n productOptions: PropTypes.shape({})\n })),\n dataKeys: PropTypes.arrayOf(PropTypes.string),\n total: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n productData: PropTypes.shape({})\n }),\n chartType: PropTypes.string,\n contentStyle: PropTypes.shape({\n primaryLabelColor: PropTypes.string\n }),\n item: PropTypes.shape({\n roundValues: PropTypes.string\n }),\n question: PropTypes.shape({\n emojiCount: PropTypes.string,\n inputType: PropTypes.string,\n type: PropTypes.string,\n stars: PropTypes.string,\n starStyle: PropTypes.string\n })\n};\n\nexport default memo(ChartLegend);\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconHeartFilled, IconStarFilled } from '@jotforminc/svg-icons';\n\nimport {\n getPipedLink,\n getPipedName,\n getPipedIsDeleted,\n getCurrencyFormatter,\n getCustomQuestions\n} from './chartFunctions';\nimport { emoBase } from './chartConstants';\nimport sheetboxUnselected from '../../assets/svg/sheetbox_unselect.svg';\nimport sheetboxSelected from '../../assets/svg/sheetbox_select.svg';\n\nconst ChartDataList = ({\n chartData = {},\n question = {},\n // contentStyle,\n selectedMetric = 'value',\n customLabels = {}\n}) => {\n const isProductList = chartData.productData;\n const { data: productData } = isProductList ? chartData.productData : chartData;\n const data = productData.map(pData => ({ ...pData, name: customLabels[pData.name] || pData.name }));\n const { productOptions } = (chartData.data && chartData.data[0]) || {};\n const customQuestions = getCustomQuestions(question);\n // const titleStyle = { color: contentStyle.secondaryLabelColor };\n // const listItemStyle = { color: contentStyle.primaryLabelColor };\n const getEmoji = value => (\n \n );\n\n const getStars = ({ stars, starStyle }, name) => {\n const starValues = Array.from({ length: stars }, (v, k) => k + 1);\n const IconRating = starStyle === 'Hearts' ? IconHeartFilled : IconStarFilled;\n const fillColor = starStyle === 'Hearts' ? '#E84649' : '#ffc426';\n return starValues.map(star => (\n \n ));\n };\n\n const renderBullet = (d, {\n isEmojiSlider,\n isStarRating,\n isImageChoice,\n isSheetbox,\n isAssignee\n }) => {\n if (isEmojiSlider) {\n const text = isEmojiSlider.indexOf(`${d.name}`) + 1;\n return (\n <>\n {getEmoji(d.name)}\n \n \n {' '}\n {text}\n \n \n \n );\n }\n\n if (isSheetbox) {\n const IconSheetbox = d.checked ? sheetboxSelected : sheetboxUnselected;\n return (\n <>\n \n \n \n \n {t(d.name)}\n \n \n \n );\n }\n\n if (isImageChoice || isAssignee) {\n const name = getPipedName(d.name);\n const link = getPipedLink(d.name);\n const isDeleted = getPipedIsDeleted(d.name, isAssignee);\n return (\n <>\n \n \n \n \n {name}\n \n \n \n );\n }\n\n if (isStarRating) {\n return (\n {getStars(customQuestions.isStarRating, d.name)}\n );\n }\n\n if (isProductList) {\n const productImg = productOptions[d.name].image;\n return (\n <>\n \n {productImg && (\n \n \n \n )}\n \n \n {getPipedName(d.name)}\n \n \n \n );\n }\n\n return (\n <>\n \n \n \n {getPipedName(d.name)}\n \n \n \n );\n };\n\n const formatter = getCurrencyFormatter(question.currency);\n\n return (\n
\n
\n \n \n
{t(isProductList ? 'Product' : 'Data')}
\n
\n {isProductList ? (\n <>\n %\n \n {`${t('Quantity')}${selectedMetric === 'Quantity' ? ' *' : ''}`}\n \n \n {`${t('Amount')}${selectedMetric === 'Amount' ? ' *' : ''}`}\n \n \n ) : (\n <>\n {selectedMetric === 'value' ? t('Response') : selectedMetric}\n %\n \n )}\n
\n
\n {data.map((d, index) => {\n if (d.average || (isProductList && !productOptions[d.name])) return null;\n const key = `${d.name}_${index}`;\n return (\n \n \n {renderBullet(d, customQuestions)}\n \n {isProductList && (\n \n {productOptions[d.name].percentage}\n \n )}\n \n {isProductList ? d.Quantity : d[selectedMetric]}\n \n \n {isProductList ? formatter.format(d.Amount) : d.percentage}\n \n
\n );\n })}\n
\n
\n );\n};\n\nChartDataList.propTypes = {\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({\n productOptions: PropTypes.shape({})\n })),\n productData: PropTypes.PropTypes.shape({})\n }),\n contentStyle: PropTypes.shape({\n primaryLabelColor: PropTypes.string,\n secondaryLabelColor: PropTypes.string\n }),\n question: PropTypes.shape({\n starStyle: PropTypes.string,\n type: PropTypes.string,\n currency: PropTypes.string\n }),\n selectedMetric: PropTypes.string,\n customLabels: PropTypes.shape({})\n};\n\nexport default memo(ChartDataList);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChartLegend from './ChartLegend/ChartLegend';\nimport ChartDataList from './ChartDataList';\n\nconst InfoComponentContainer = ({ type = 'noGrid', necessaryProps }) => {\n switch (type) {\n case 'legend': return ();\n case 'tableGrid': return ();\n case 'noGrid':\n return null;\n default:\n }\n};\n\nInfoComponentContainer.propTypes = {\n type: PropTypes.oneOf(['legend', 'tableGrid', 'noGrid']),\n necessaryProps: PropTypes.shape({}).isRequired\n};\n\nexport default InfoComponentContainer;\n","import React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport ChartLabel from './ChartLabel';\nimport {\n getExactChartData,\n getColorPalette,\n getCustomChartBgStyle,\n getCustomHeaderStyle,\n getMergedData,\n getVisibleOptionsTotal\n} from './chartFunctions';\nimport InfoComponentContainer from './InfoComponentContainer';\nimport '../../styles/_jfReportsChartTooltipNew.scss';\nimport '../../styles/_jfReportsCharts.scss';\n\nconst ChartComponent = ({\n isSelected = false,\n item = {},\n itemResources = {},\n chartData = {},\n onAnEventTrigger = f => f,\n onItemChange = () => {},\n Component,\n fromSummarize = false,\n isThumbnail = false\n}) => {\n const {\n chartBgColor,\n chartBgCorners,\n chartBgOpacity,\n chartBgShow,\n chartColorPalette,\n chartFontFamily,\n chartFontSize,\n chartOptions,\n chartType,\n customLabels,\n entryLimit,\n headerFontColor,\n headerFontFamily,\n headerFontSize,\n headerFontStyle,\n headerTextAlign,\n id,\n infoPosition,\n infoType,\n isRoundedValues,\n matrixSelectedRows,\n orderBy,\n otherChartDataOptions,\n primaryLabelColor,\n responseSummaryShow,\n secondaryLabelColor,\n selectedMetric,\n text,\n valueSource\n } = item;\n\n const {\n filters,\n reportColorPalette,\n reportCustomColorPalettes,\n question,\n form: { products }\n } = itemResources;\n\n const customChartBgStyle = useMemo(\n () => getCustomChartBgStyle({\n chartBgColor, chartBgCorners, chartBgOpacity, chartBgShow\n }),\n [chartBgColor, chartBgCorners, chartBgOpacity, chartBgShow]\n );\n\n const customHeaderStyle = useMemo(\n () => getCustomHeaderStyle({\n headerFontStyle, headerFontColor, headerFontFamily, headerFontSize, headerTextAlign\n }),\n [headerFontStyle, headerFontColor, headerFontFamily, headerFontSize, headerTextAlign]\n );\n\n const customResponseStyle = useMemo(\n () => ({ color: secondaryLabelColor, textAlign: headerTextAlign }),\n [secondaryLabelColor, headerTextAlign]\n );\n\n const colorPalette = useMemo(\n () => getColorPalette(chartColorPalette, reportColorPalette, reportCustomColorPalettes),\n [chartColorPalette, reportColorPalette, reportCustomColorPalettes]\n );\n\n const parsedChartOptions = useMemo(() => safeJSONParse(chartOptions, []), [chartOptions]);\n const parsedCustomLabels = useMemo(() => safeJSONParse(customLabels), [customLabels]);\n\n const {\n data, empty, totalChoice, total\n } = chartData;\n let chartSelectedMetric = useMemo(() => {\n return selectedMetric || Object.keys(data[0]).filter(key => key !== 'name')[0];\n }, [selectedMetric, data]);\n let exactChartData = [];\n let sortedDataKeys = [];\n\n [exactChartData, sortedDataKeys, chartSelectedMetric] = useMemo(\n () => getExactChartData({\n chartData,\n chartOptions: parsedChartOptions,\n selectedMetric: chartSelectedMetric,\n chartType,\n colorPalette,\n data,\n entryLimit,\n filterHiddenKeys: true,\n fromSettings: false,\n isRoundedValues,\n matrixSelectedRows,\n orderBy,\n otherChartDataOptions,\n question,\n totalChoice,\n products,\n customLabels: parsedCustomLabels,\n valueSource,\n fromSummarize\n }),\n [\n chartData,\n chartSelectedMetric,\n chartType,\n colorPalette,\n data,\n entryLimit,\n isRoundedValues,\n matrixSelectedRows,\n orderBy,\n otherChartDataOptions,\n parsedChartOptions,\n question,\n totalChoice,\n products,\n valueSource,\n fromSummarize\n ]\n );\n\n const mergedChartData = useMemo(() => getMergedData({\n chartData,\n exactChartData,\n sortedDataKeys,\n questionType: question.type,\n chartType\n }), [chartData, exactChartData, sortedDataKeys, question, chartType]);\n\n const infoComponentProps = useMemo(() => {\n return {\n chartData: mergedChartData,\n chartType,\n question,\n contentStyle: {\n chartFontFamily, chartFontSize, primaryLabelColor, secondaryLabelColor\n },\n selectedMetric: chartSelectedMetric,\n customLabels: parsedCustomLabels\n };\n }, [\n chartFontFamily,\n chartFontSize,\n chartSelectedMetric,\n chartType,\n mergedChartData,\n primaryLabelColor,\n question,\n secondaryLabelColor\n ]);\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nChartComponent.propTypes = {\n isSelected: PropTypes.bool,\n item: PropTypes.shape({\n chartBgColor: PropTypes.string,\n chartBgCorners: PropTypes.number,\n chartBgOpacity: PropTypes.number,\n chartBgShow: PropTypes.string,\n chartColorPalette: PropTypes.string,\n chartFontFamily: PropTypes.string,\n chartFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n /** A JSON encoded array that contains options for each item. */\n chartOptions: PropTypes.string,\n chartType: PropTypes.string,\n customLabels: PropTypes.string,\n entryLimit: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n headerFontColor: PropTypes.string,\n headerFontFamily: PropTypes.string,\n headerFontSize: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n headerFontStyle: PropTypes.string,\n headerTextAlign: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n id: PropTypes.string,\n infoPosition: PropTypes.string,\n infoType: PropTypes.string,\n isRoundedValues: PropTypes.string,\n labelNameShow: PropTypes.string,\n labelPercentageTotalShow: PropTypes.string,\n labelResponseValueShow: PropTypes.string,\n matrixChartGroup: PropTypes.string,\n matrixSelectedRows: PropTypes.string,\n orderBy: PropTypes.string,\n otherChartDataOptions: PropTypes.string,\n primaryLabelColor: PropTypes.string,\n secondaryLabelColor: PropTypes.string,\n selectedMetric: PropTypes.string,\n responseSummaryShow: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n valueSource: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ])\n }),\n itemResources: PropTypes.shape({\n filters: PropTypes.shape({}),\n reportColorPalette: PropTypes.string,\n reportCustomColorPalettes: PropTypes.string,\n question: PropTypes.shape({\n type: PropTypes.string,\n emojiCount: PropTypes.string\n }),\n form: PropTypes.shape({\n products: PropTypes.arrayOf(PropTypes.shape({}))\n })\n }),\n chartData: PropTypes.shape({\n data: PropTypes.arrayOf(PropTypes.shape({})),\n empty: PropTypes.number,\n totalChoice: PropTypes.number,\n total: PropTypes.number\n }),\n fromSummarize: PropTypes.bool,\n onAnEventTrigger: PropTypes.func,\n onItemChange: PropTypes.func,\n Component: PropTypes.elementType.isRequired,\n isThumbnail: PropTypes.bool\n};\n\nexport default memo(ChartComponent);\n","/* eslint-disable react/require-default-props */\nimport React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport * as ChartTypes from './Charts';\nimport ChartPlaceholder from './ChartPlaceholder';\nimport EmptyChart from './EmptyChart';\nimport ChartComponent from './Chart';\nimport { chartAvailabilityMap } from '../../constants/commonChartConstants';\n\nconst ChartContainer = props => {\n const {\n item,\n itemAccessor,\n isSelected,\n onItemChange\n } = props;\n const {\n chartType,\n height,\n selectedField,\n valueSource,\n text,\n width\n } = item;\n const resources = useMemo(() => itemAccessor(item), [item, itemAccessor]);\n const {\n isProbablyLoading,\n chartData,\n hideSettings,\n question: { qid, type: questionType },\n chartDataOptions\n } = resources;\n\n const Component = useMemo(() => {\n // if chartType is equal null, finding a right chartType fallback\n const exactChartType = chartType || (questionType.startsWith('control_') && chartAvailabilityMap[questionType].suggested.name);\n const type = exactChartType.charAt(0).toUpperCase() + exactChartType.slice(1);\n return exactChartType ? ChartTypes[type] : ChartTypes.Bar; // barChart as default\n }, [chartType, questionType]);\n\n const _qid = useMemo(() => {\n if (selectedField !== undefined) {\n // Under some cases the selected field could be an integer.\n const fieldLabel = typeof selectedField === 'string' ? selectedField.toLowerCase() : selectedField.toString().toLowerCase();\n if (selectedField !== 'Full Address' && selectedField !== 'Full Answer') {\n return `${qid}_${fieldLabel}`;\n }\n } else if (valueSource !== undefined && parseInt(valueSource, 10) !== 0) {\n return `${qid}^${valueSource}`;\n }\n return qid;\n }, [selectedField, qid, valueSource]);\n\n const _chartData = useMemo(() => {\n if (selectedField !== undefined) {\n return chartDataOptions[_qid];\n }\n if (valueSource !== undefined && parseInt(valueSource, 10) !== 0) {\n return chartDataOptions[_qid];\n }\n return chartData;\n }, [selectedField, chartData, chartDataOptions, _qid, valueSource]);\n\n const shouldReturnEmptyChart = useMemo(() => {\n if (!_chartData) return true;\n if (!_chartData || (_chartData && !_chartData.data)) return true;\n return false;\n }, [_chartData]);\n\n if (!Component) {\n return
Chart component not found
;\n }\n\n if (isProbablyLoading) {\n return (\n \n );\n }\n\n if (shouldReturnEmptyChart) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nChartContainer.propTypes = {\n item: PropTypes.shape({\n chartType: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n selectedField: PropTypes.string,\n width: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n text: PropTypes.string,\n valueSource: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ])\n }),\n itemAccessor: PropTypes.func,\n onItemChange: PropTypes.func,\n isSelected: PropTypes.bool\n};\n\nChartContainer.defaultProps = {\n item: {},\n itemAccessor: f => f,\n onItemChange: f => f,\n isSelected: false\n};\n\nexport default memo(ChartContainer);\n","import ChartContainer from './ChartContainer';\nimport {\n defaultItem,\n ITEM_TYPE\n} from './chartConstants';\nimport {\n details\n} from './ChartSettings/chartDetails';\n\nexport default {\n Component: ChartContainer,\n defaultItem,\n details,\n itemType: ITEM_TYPE\n};\n","import { ITEM_TYPE } from '../chartConstants';\n\nexport const details = {\n height: 420,\n itemType: ITEM_TYPE,\n width: 420\n};\n","import React from 'react';\nimport moment from 'moment';\nimport {\n IconLocationPinFilled, IconTagsFilled, IconCalendarFilled, IconNumberSquareFilled,\n IconTypeSquareFilled, IconTagFilled, IconText, IconPaperclipDiagonal, IconAt,\n IconPhoneFilled, IconPenSignFilled, IconStarFilled, IconConditionalBranchFilled,\n IconUsersFilled, IconShapesFilled, IconSquaresArrow\n} from '@jotforminc/svg-icons';\n\nimport {\n operators, dateOperators, emptyValueOperators, UTILITY_FIELDS,\n startAllTime, customStr, allTimeStr, lessThanStr, greaterThanStr,\n startFormat, endFormat, oldLessThanStr, oldGreaterThanStr, ICON_SIZES\n} from '../components/constants';\n\nexport const getFilterGroupText = (filters, allFilterText) => {\n const groupFilter = filters.find(f => f.field === 'new' || f.field === 'flag' || f.field === 'formIDs' || f.field === 'ai_agent_id' || f.field === 'conversation_type');\n\n if (groupFilter) {\n const {\n field, value, operator, text\n } = groupFilter;\n\n if (field === 'formIDs') {\n if (text) return text;\n\n if (value?.slice(-1)[0] === 'allForms') return 'All Forms';\n\n const selectedTitle = filters.slice(-1)[0].selectedFormTitle;\n\n if (selectedTitle) {\n return selectedTitle;\n }\n\n return 'All Forms';\n }\n\n if (field === 'ai_agent_id') {\n return operator === 'ne' && value === 'null' ? 'Conversations' : 'No Conversations';\n }\n\n if (field === 'conversation_type') {\n return value === 'submission' ? 'Submission' : 'Incomplete';\n }\n\n if (field === 'new') {\n return operator === 'eq' && value === '0' ? 'Read' : 'Unread';\n }\n\n if (field === 'flag') {\n return value === '1' ? 'Starred' : 'Unstarred';\n }\n }\n\n if (window.location.pathname.indexOf('/sentbox/all') > -1) {\n return 'All Forms';\n }\n\n return allFilterText || 'All Submissions';\n};\n\nexport const getFilterGroup = filters => {\n const groupFilter = filters.find(f => f.field === 'new' || f.field === 'flag' || f.field === 'formIDs' || f.field === 'ai_agent_id' || f.field === 'conversation_type');\n if (groupFilter) {\n const { field, value, operator } = groupFilter;\n\n if (field === 'new') {\n return operator === 'eq' && value === '0' ? 'read' : 'unread';\n }\n\n if (field === 'ai_agent_id') {\n return operator === 'ne' && value === 'null' ? 'ai_agent_id' : 'no_ai_agent_id';\n }\n\n if (field === 'conversation_type') {\n return value === 'submission' ? 'submission' : 'incomplete';\n }\n\n if (field === 'flag') {\n return value === '1' ? 'flag' : 'unflag';\n }\n\n if (field === 'formIDs') {\n return value[0];\n }\n }\n\n if (window.location.pathname.indexOf('/sentbox/all') > -1) {\n return 'allForms';\n }\n\n return 'all';\n};\n\nexport const getFilterTimeRange = filters => {\n const timeRangeFilters = filters.filter(f => f.field === 'created_at');\n const newFilters = {};\n if (timeRangeFilters.length > 0) {\n timeRangeFilters.forEach(f => {\n newFilters[`${f.field}:${f.operator}:${f.type}`] = f.value;\n });\n return newFilters;\n }\n return newFilters;\n};\n\nexport const getNextFilterID = filters => {\n return filters.reduce((nextID, filter) => {\n return filter.id >= nextID ? filter.id + 1 : nextID;\n }, 0);\n};\n\nexport const getOperators = genericType => {\n let operatorList = Object.assign([], operators);\n if (genericType === 'submitter') {\n return operators.filter(op => op.name === 'eq');\n }\n if (genericType === 'submittedVia') {\n return operators.filter(op => op.title === 'eq');\n }\n if (genericType === 'bool') {\n return operators.filter(operator => operator.name === 'eq');\n }\n if (genericType === 'submissionWidget' || genericType === 'dropdown' || genericType === 'scale') {\n operatorList = operators.filter(operator => operator.name !== 'matches');\n } else if (genericType === 'date') {\n operatorList = Object.assign([], dateOperators);\n }\n if (genericType !== 'scale' && genericType !== 'numeric' && genericType !== 'date') {\n operatorList = operators.filter(operator => ['lt', 'lte', 'gt', 'gte'].indexOf(operator.name) < 0);\n }\n if (genericType === 'workflow' || genericType === 'eq') {\n operatorList = operators.filter(operator => ['eq', 'ne'].includes(operator.name));\n }\n\n return operatorList;\n};\n\nexport const getDefaultHeaderText = (questions, question) => {\n const {\n type: qType = '',\n text,\n subLabel,\n hint,\n order\n } = question;\n\n const readyToUseLabels = {\n control_fullname: 'Name',\n control_email: 'Email',\n control_address: 'Address',\n control_phone: 'Phone',\n control_datetime: 'Date',\n control_time: 'Time',\n control_inline: 'Fill in the Blanks'\n };\n\n // if question has a label, then use it\n if (text) {\n return text;\n }\n\n // if question does not has a label but it has a sublabel, then use it\n if (subLabel) {\n return subLabel;\n }\n\n // if question does not has a label or a sublabel then look for placeholder text\n if (hint) {\n return hint;\n }\n\n // if one of the ready to use fields use default label text\n if (['control_fullname', 'control_email', 'control_address', 'control_phone', 'control_datetime', 'control_time', 'control_inline'].indexOf(qType) > -1) {\n return readyToUseLabels[qType];\n }\n\n // if question does not has a label, sublabel or placeholder and not a ready to use field then look for the previous question. It might be a text.\n if (qType !== 'control_text') {\n const qOrder = parseInt(order, 10);\n const previousQuestion = Object.values(questions).find(q => q.order === (qOrder - 1).toString());\n\n if (previousQuestion && previousQuestion.type === 'control_text') {\n return previousQuestion.text.replace(/<(?:.|\\n)*?>/gm, '');\n }\n }\n\n // if there is nothing to use then use the question type for column header\n const typeLabel = qType.replace('control_', '');\n return typeLabel.charAt(0).toUpperCase() + typeLabel.slice(1);\n};\n\nexport const getStaticOption = (obj, value, type) => {\n const objOption = obj && obj.find(f => f[type] === value);\n return objOption ? objOption.text : '';\n};\n\n// eslint-disable-next-line complexity\nexport const getSVGbyQuestionType = type => {\n switch (type) {\n case 'control_checkbox':\n return {\n svg: \n };\n case 'control_datetime':\n case 'control_submissionDate':\n case 'control_appointment':\n case 'control_birthdate':\n case 'control_documentCreationTime':\n case 'control_documentModificationTime':\n return {\n svg: \n };\n case 'control_time':\n return {\n svg: \n };\n case 'control_dropdown':\n return {\n svg: \n };\n case 'control_email':\n return {\n svg: \n };\n case 'control_fullname':\n return {\n svg: \n };\n case 'control_stripe':\n case 'control_paypal':\n return {\n svg: \n };\n case 'control_number':\n case 'control_spinner':\n return {\n svg: \n };\n case 'control_phone':\n return {\n svg: \n };\n case 'control_radio':\n return {\n svg: \n };\n case 'control_text':\n return {\n svg: \n };\n case 'control_textarea':\n return {\n svg: \n };\n case 'control_textbox':\n return {\n svg: \n };\n case 'control_address':\n return {\n svg: \n };\n case 'control_documentAttachment':\n case 'control_attachment':\n return {\n svg: \n };\n case 'control_rating':\n return {\n svg: \n };\n case 'control_fileupload':\n return {\n svg: \n };\n case 'control_workflowStatus':\n return {\n svg: \n };\n case 'control_assignee':\n return {\n svg: \n };\n case 'control_signature':\n return {\n svg: \n };\n case 'control_documentStatus':\n return {\n svg: \n };\n case 'control_widget':\n return {\n svg: \n };\n default:\n return {\n svg: \n };\n }\n};\n\nexport const convertFiltersArrayToObject = (filters, handleCurrentFilters = null) => {\n const currentLockedFilters = {};\n const currentUnlockedFilters = {};\n const reducedFilters = filters.reduce((filterString, filter) => {\n if (!filter || (filter && !filter.value)) return filterString;\n\n const key = [filter.field, filter.operator, filter.type]\n .filter(f => f).map(f => f).join(':');\n // If value is not initialize in the filterString directly put the value inside.\n // Not support multiple values for the appointment and datetime filter types, take the last filter inserted.\n if (filterString[key] === undefined || filter.type === 'datetime' || filter.type === 'appointment') {\n if (filter.lock === '1') {\n currentLockedFilters[key] = filter.value;\n } else {\n currentUnlockedFilters[key] = filter.value;\n }\n return {\n ...filterString,\n [key]: filter.value\n };\n }\n // If there is a present filter with same configuration do not add it to the object\n // Filter outs empty filters too\n if ((Array.isArray(filterString[key]) && filterString[key].includes(filter.value)) || filterString[key] === filter.value) return filterString;\n\n // Check if current value of the filter is an array.\n if (filter.lock === '1') {\n if (currentLockedFilters[key] === undefined) {\n currentLockedFilters[key] = filter.value;\n } else {\n currentLockedFilters[key] = Array.isArray(currentLockedFilters[key]) ? [...currentLockedFilters[key], filter.value] : [currentLockedFilters[key], filter.value];\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (currentUnlockedFilters[key] === undefined) {\n currentUnlockedFilters[key] = filter.value;\n } else {\n currentUnlockedFilters[key] = Array.isArray(currentUnlockedFilters[key]) ? [...currentUnlockedFilters[key], filter.value] : [currentUnlockedFilters[key], filter.value];\n }\n }\n return {\n ...filterString,\n [key]: Array.isArray(filterString[key]) ? [...filterString[key], filter.value] : [filterString[key], filter.value]\n };\n }, {});\n if (handleCurrentFilters) {\n handleCurrentFilters({ currentLockedFilters, currentUnlockedFilters });\n }\n return reducedFilters;\n};\n\n// Returns filters with single values from the filter list\nconst getSingleFilters = (filters, lockedFilters = {}) => {\n const singleValues = Object.entries(filters).filter(([, value]) => !Array.isArray(value));\n return singleValues.map(([key, value], index) => {\n if (key === 'timeFilterText') return false;\n const [field, operator, type] = key.split(':');\n return {\n field,\n operator,\n type,\n value,\n isFilled: true,\n isValueDisabled: emptyValueOperators.indexOf(operator) !== -1,\n id: index,\n lock: lockedFilters[key] === value ? '1' : '0'\n };\n });\n};\n\n// Extract/Create new filters from filters with multiple values by creating a new filter for each value\n// With same field, operator and type\nconst extractMultipleFilters = (filters, start, lockedFilters = {}) => {\n let index = start;\n const multipleValues = Object.entries(filters).filter(([, value]) => Array.isArray(value));\n return multipleValues.reduce((acc, [key, value]) => {\n const [field, operator, type] = key.split(':');\n value.forEach(v => {\n const lockFilterValuesToSearch = Array.isArray(lockedFilters[key]) ? lockedFilters[key] : [lockedFilters[key]];\n acc.push({\n field,\n operator,\n type,\n value: v,\n isFilled: true,\n isValueDisabled: emptyValueOperators.indexOf(operator) !== -1,\n id: index,\n lock: lockFilterValuesToSearch.includes(v) ? '1' : '0'\n });\n index++;\n });\n return acc;\n }, []);\n};\n\nexport const convertFiltersObjectToArray = (filters, lockedFilters = []) => {\n // gets the single valued filters extract filters from multiple valued filters and returns them as array\n const singleFilters = getSingleFilters(filters, lockedFilters);\n const multipleFilters = extractMultipleFilters(filters, singleFilters.length, lockedFilters);\n return [...singleFilters, ...multipleFilters].filter(f => f);\n};\n\nexport const createOrderByValue = ({\n sortByQid,\n sortIsDescending,\n isDatetime,\n isNumeric,\n isSelectable,\n isAppointment\n}) => `${\n sortByQid\n},${\n sortIsDescending ? 'desc' : 'asc'\n}${\n isDatetime ? ',datetime' : ''\n}${\n isNumeric ? ',numeric' : ''\n}${\n isSelectable ? ',selectable' : ''\n}${\n isAppointment ? ',appointment' : ''\n}`;\n\nexport const getOrderByValue = (view, questions) => {\n if (!view) return '';\n\n let sortByQid = view.get('sortByQid', false);\n if (!sortByQid) return '';\n\n // if selectedColumn is one of the non-question columns then remove the 'q' prefix\n UTILITY_FIELDS.forEach(nq => {\n if (sortByQid.includes(nq)) {\n sortByQid = nq;\n }\n });\n\n const sortIsDescending = view.get('sortIsDescending');\n const qType = questions.getIn([sortByQid.replace('q', ''), 'type'], '');\n\n const isDatetime = qType === 'control_datetime' || qType === 'control_birthdate';\n const isNumeric = qType === 'control_number' || qType === 'control_spinner';\n const isSelectable = qType === 'control_radio' || qType === 'control_checkbox';\n const isAppointment = qType === 'control_appointment';\n\n return createOrderByValue({\n sortByQid,\n sortIsDescending,\n isDatetime,\n isNumeric,\n isSelectable,\n isAppointment\n });\n};\n\nexport const getDateThresholdRange = timeFilterType => {\n let startDate;\n let endDate;\n\n switch (timeFilterType) {\n case allTimeStr:\n startDate = startAllTime;\n endDate = moment();\n break;\n case 'Today':\n startDate = moment();\n endDate = moment();\n break;\n case 'Yesterday':\n startDate = moment().subtract(1, 'days');\n endDate = moment().subtract(1, 'days');\n break;\n case 'Last 3 days':\n startDate = moment().subtract(2, 'days');\n endDate = moment();\n break;\n case 'Last 7 days':\n startDate = moment().subtract(6, 'days');\n endDate = moment();\n break;\n case 'Last 30 days':\n startDate = moment().subtract(29, 'days');\n endDate = moment();\n break;\n case 'Last 90 days':\n startDate = moment().subtract(89, 'days');\n endDate = moment();\n break;\n case 'Last 180 days':\n startDate = moment().subtract(179, 'days');\n endDate = moment();\n break;\n case 'Last 1 year':\n startDate = moment().subtract(1, 'year');\n endDate = moment();\n break;\n case 'Last 2 years':\n startDate = moment().subtract(2, 'years');\n endDate = moment();\n break;\n case 'Last 3 years':\n startDate = moment().subtract(3, 'years');\n endDate = moment();\n break;\n case 'Previous week':\n startDate = moment().subtract(7, 'days').startOf('week');\n endDate = moment().subtract(7, 'days').endOf('week');\n break;\n case 'Previous month':\n startDate = moment().subtract(1, 'months').startOf('month');\n endDate = moment().subtract(1, 'months').endOf('month');\n break;\n case 'Last 3 months':\n startDate = moment().subtract(3, 'months').startOf('month');\n endDate = moment();\n break;\n case 'This year':\n startDate = moment().startOf('year');\n endDate = moment();\n break;\n case 'Previous year':\n startDate = moment().subtract(1, 'year').startOf('year');\n endDate = moment().subtract(1, 'year').endOf('year');\n break;\n case customStr:\n startDate = moment().subtract(1, 'days');\n endDate = moment();\n break;\n default:\n startDate = startAllTime;\n endDate = moment();\n break;\n }\n\n return {\n startDate,\n endDate,\n selectedDate: endDate,\n timeFilterType,\n showDatePicker: 'start'\n };\n};\n\nexport const createFilterFromTimeFilterText = timeFilterText => {\n if (!timeFilterText || timeFilterText === allTimeStr || timeFilterText === customStr) return {};\n const timeRangeObj = getDateThresholdRange(timeFilterText);\n return {\n [greaterThanStr]: timeRangeObj.startDate.format(startFormat),\n [lessThanStr]: timeRangeObj.endDate.format(endFormat)\n };\n};\n\nexport const getExactOtherFilters = (filters, timeFilterText) => {\n const newFilters = { ...filters };\n if (timeFilterText && timeFilterText !== allTimeStr && timeFilterText !== customStr) {\n if (newFilters[oldLessThanStr]) delete newFilters[oldLessThanStr];\n if (newFilters[oldGreaterThanStr]) delete newFilters[oldGreaterThanStr];\n return newFilters;\n }\n return newFilters;\n};\n\nexport const getPreparedFilters = filters => {\n const {\n timeFilterText,\n ...otherFilters\n } = filters;\n\n return {\n ...getExactOtherFilters(otherFilters, timeFilterText),\n ...createFilterFromTimeFilterText(timeFilterText)\n };\n};\n\nconst dynamicTimeFilterOptionList = ['Today', 'Last 3 days', 'Last 7 days', 'Last 30 days', 'Last 1 year', 'Previous week', 'Previous month', 'This year', 'Previous year'];\n\n// TODO Check here\nexport const getUpdatedTimeFilterText = (removedFilter, timeFilterText, remainingFilters) => {\n const convertedFilter = convertFiltersArrayToObject([removedFilter]);\n if ((convertedFilter[greaterThanStr] || convertedFilter[lessThanStr]) && dynamicTimeFilterOptionList.indexOf(timeFilterText) > -1) {\n return customStr;\n }\n const convertedRemainingFilter = convertFiltersArrayToObject(remainingFilters);\n if (convertedRemainingFilter[greaterThanStr] || convertedRemainingFilter[lessThanStr]) {\n return customStr;\n }\n return allTimeStr;\n};\n\nexport const getTrueDateTimeStr = datetime => {\n const count = datetime.split('').filter(key => key === ':').length;\n if (count === 1) {\n return `${datetime}:00`;\n }\n return datetime;\n};\n\nconst IMAGE_TYPES = {\n icon: 'LOGO/ICON',\n image: 'LOGO/IMAGE'\n};\n\nexport const getIconInformationForPortalItem = (titleForAlt, icon, iconSize = ICON_SIZES.SMALL) => {\n const {\n iconColor,\n type,\n url,\n backgroundColor\n } = icon || {};\n\n const isSvgIcon = type === IMAGE_TYPES.icon;\n const alt = `${titleForAlt} Logo`;\n const svgStyleProps = isSvgIcon ? { backgroundColor } : {};\n\n const defaultIconUrlV0 = 'https://cdn.jotfor.ms/resources/assets/icon/min/jotform-logomark-white-400x400.png';\n const defaulIconUrlV1 = 'https://cdn.jotfor.ms/resources/assets/icon/min/jotform-icon-orange-400x400.png';\n const defaultIconURLBranding21 = 'https://cdn.jotfor.ms/assets/img/logo2021/jotform_portal_logo_icon400x400-dark.png';\n const isDefaultIcon = [defaultIconUrlV0, defaulIconUrlV1, defaultIconURLBranding21].includes(url);\n\n const finalDefaultIcon = 'https://cdn.jotfor.ms/assets/img/portal/pickerItemDefaultB21.png';\n const finalUrl = isDefaultIcon ? finalDefaultIcon : url;\n\n return {\n iconColor,\n alt,\n finalUrl,\n url,\n isSvgIcon,\n svgStyleProps,\n iconSize\n };\n};\n\nexport const ColorList = [\n { backgroundColor: '#FFEBB3' },\n { backgroundColor: '#EDE2FE' },\n { backgroundColor: '#FEE2D5' },\n { backgroundColor: '#D0F0FD' },\n { backgroundColor: '#E1E9F6' },\n { backgroundColor: '#FFBDC7' },\n { backgroundColor: '#BFBCFF' },\n { backgroundColor: '#DCD59D' },\n { backgroundColor: '#D1F7C4' },\n { backgroundColor: '#B5F2EB' },\n { backgroundColor: '#FFBE98' },\n { backgroundColor: '#FFC59E' },\n { backgroundColor: '#AEE5FF' }\n];\n\nexport const extractColor = (index, list) => {\n return index > -1 ? list[index % list.length] : {};\n};\n\nexport const mergeTwoFiltersObjects = (obj1, obj2) => {\n const obj1Clone = { ...obj1 };\n const obj2Clone = { ...obj2 };\n const result = {};\n const obj1Keys = Object.keys(obj1Clone);\n obj1Keys.forEach(key => {\n const obj1Value = obj1Clone[key];\n const obj2Value = obj2Clone[key] ?? [];\n let allValuesOfKey = Array.isArray(obj1Value) ? [...obj1Value] : [obj1Value];\n allValuesOfKey = Array.isArray(obj2Value) ? [...allValuesOfKey, ...obj2Value] : [...allValuesOfKey, obj2Value];\n result[key] = allValuesOfKey.length === 1 ? allValuesOfKey[0] : allValuesOfKey;\n delete obj2Clone[key];\n });\n // Since we deleted duplicate keys from obj2Clone,\n // we can directly put the remaining in the result\n return { ...result, ...obj2Clone };\n};\n\nexport const filtersDifferentiate = (filters, filterObj) => {\n const temp = filters.reduce((acc, curr) => {\n const filter = filterObj[curr];\n // Extract values from filters with multiple entries\n // Differentiate values for the same key with the index of the value\n if (Array.isArray(filter)) {\n filter.forEach((e, i) => {\n acc[`${curr}#${i}`] = e;\n });\n } else {\n acc[`${curr}`] = filter;\n }\n return acc;\n }, {});\n return temp;\n};\n\nexport const checkKeyAndValueExistsOnLockedFilters = (actualKey, value, activeViewLockedFilters) => {\n const tempKey = actualKey.split('#')[0];\n const valueInLockFilters = activeViewLockedFilters[tempKey];\n\n return Array.isArray(valueInLockFilters) ? valueInLockFilters.includes(value) : valueInLockFilters === value;\n};\n\nexport const removeSingleFilterFromFilterObject = (actualKey, value, filterObject) => {\n const tempKey = actualKey.split('#')[0];\n\n const filterObjectClone = { ...filterObject };\n const result = {};\n const keys = Object.keys(filterObjectClone);\n keys.forEach(key => {\n const _value = filterObjectClone[key];\n if (key === tempKey) {\n if (Array.isArray(_value)) {\n const foundIndex = _value.indexOf(value);\n if (foundIndex > -1) {\n _value.splice(foundIndex, 1);\n }\n } else if (_value === value) {\n return;\n }\n }\n const allValuesOfKey = Array.isArray(_value) ? [..._value] : [_value];\n result[key] = allValuesOfKey.length === 1 ? allValuesOfKey[0] : allValuesOfKey;\n });\n return result;\n};\n\nexport const BOARD_SOURCE_FORM_QUESTION = {\n qid: '110',\n name: '__board_submission_source_form_id__'\n};\n\nexport const BOARD_QUESTION_VALUES = {\n [BOARD_SOURCE_FORM_QUESTION.qid]: 'sheetViewForm'\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst DefaultHeaderRenderer = ({ columnIndex = 0 }) =>
{`${columnIndex}. Column`}
;\n\nDefaultHeaderRenderer.propTypes = {\n columnIndex: PropTypes.number\n};\n\nexport default DefaultHeaderRenderer;\n","/* global Element */\nimport React, { memo, forwardRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport DefaultHeaderRenderer from './DefaultHeaderRenderer';\n\nconst GridHeader = ({\n columns = [],\n HeaderItemRenderer = null,\n innerRef = { current: null },\n onScroll = undefined,\n onResizeColumnWidth = f => f,\n isSelected = false,\n frozenQuestions = []\n}) => {\n useEffect(() => {\n if (onScroll) { // refactor it\n const element = innerRef.current;\n element.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n element.removeEventListener('scroll', onScroll, { passive: true });\n };\n }\n }, [innerRef, onScroll]);\n\n const HeaderItem = HeaderItemRenderer || DefaultHeaderRenderer;\n\n return (\n
\n {columns.map((column, columnIndex) => (\n \n ))}\n
\n );\n};\n\nconst MemoizedGridHeader = memo(GridHeader);\n\nexport default forwardRef((props, ref) => (\n \n));\n\nGridHeader.propTypes = {\n columns: PropTypes.arrayOf(PropTypes.shape({})),\n HeaderItemRenderer: PropTypes.elementType,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n onScroll: PropTypes.func,\n onResizeColumnWidth: PropTypes.func,\n isSelected: PropTypes.bool,\n frozenQuestions: PropTypes.shape([])\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// Fixed cell\nconst DefaultFixedCellRenderer = ({ rowIndex = 0, style = {} }) => {\n return (\n
\n
\n {rowIndex + 1}\n
\n
\n );\n};\n\nDefaultFixedCellRenderer.propTypes = {\n rowIndex: PropTypes.number,\n style: PropTypes.shape({})\n};\n\nexport default DefaultFixedCellRenderer;\n","import React from 'react';\n\nconst DefaultCellRenderer = () =>
;\n\nexport default DefaultCellRenderer;\n","import React, {\n memo, useRef, useMemo, useEffect, useCallback\n} from 'react';\nimport PropTypes from 'prop-types';\nimport Scrollbar from 'react-smooth-scrollbar';\nimport { VariableSizeGrid as Grid } from 'react-window';\nimport GridHeader from './GridHeader';\nimport DefaultFixedCellRenderer from './DefaultFixedCellRenderer';\nimport DefaultCellRenderer from './DefaultCellRenderer';\nimport '../../styles/_jfTableGrid.scss';\n\nconst rowHeight = () => 41; // Grid cell content height => 40px\n\nconst gridHeaderHeight = () => 38; // Grid header item height => 37px\n\nconst TableGrid = ({\n CellRenderer = null,\n columns = [],\n fixedItemData = {},\n FixedCellRenderer = null,\n fixedColumns = [],\n gridHeight = 0,\n gridWidth = 0,\n HeaderItemRenderer = null,\n itemData = {},\n rowCount = 0,\n onResizeColumnWidth = f => f,\n columnHash,\n resizedColumn = {},\n isSelected = false,\n frozenQuestions = []\n}) => {\n const scrollbar = useRef();\n const gridRef = useRef();\n const gridHeaderRef = useRef();\n\n const scrollbarLeft = useRef();\n const gridLeftRef = useRef();\n\n const FixedCell = FixedCellRenderer || DefaultFixedCellRenderer;\n const Cell = (columns.length > 0 ? CellRenderer : DefaultCellRenderer) || DefaultCellRenderer;\n\n // On Grid Scroll -> sync scroll position with grid header\n const onScroll = useCallback(e => {\n const { x, y } = e.offset;\n if (gridRef.current) {\n gridRef.current.scrollTo({\n scrollLeft: x,\n scrollTop: y\n });\n }\n if (gridLeftRef.current) {\n gridLeftRef.current.scrollTo({\n scrollTop: y\n });\n }\n scrollbar.current.scrollbar.setPosition(x, y, {\n withoutCallbacks: true\n });\n scrollbarLeft.current.scrollbar.setPosition(0, y, {\n withoutCallbacks: true\n });\n if (gridHeaderRef.current && e.source !== 'header') {\n gridHeaderRef.current.scrollTo(x, y);\n }\n }, []);\n\n useEffect(() => {\n const index = resizedColumn.qid ? resizedColumn.index : 0;\n gridRef.current.resetAfterColumnIndex(index);\n gridLeftRef.current.resetAfterColumnIndex(index);\n }, [resizedColumn, columnHash]);\n\n // On Grid Header Scroll -> sync scroll position with grid\n const onGridHeaderScroll = useCallback(e => {\n const { scrollLeft } = e.target;\n onScroll({\n offset: {\n x: scrollLeft\n },\n source: 'header'\n });\n }, [onScroll]);\n\n // On Left Grid Scroll\n const onScrollLeft = useCallback(e => {\n const { y } = e.offset;\n scrollbarLeft.current.scrollbar.setPosition(0, y);\n scrollbar.current.scrollbar.setPosition(scrollbar.current.scrollbar.scrollLeft, y);\n }, []);\n\n const columnWidth = useCallback(columnIndex => (columns.length === 0 ? 200 : parseInt(columns[columnIndex].width, 10) || 200), [columns]);\n const fixedColumnWidth = useCallback(columnIndex => fixedColumns[columnIndex].width || 200, [fixedColumns]);\n\n const gridColumnHeight = ((rowCount * rowHeight()) + gridHeaderHeight());\n\n const leftPaneWidth = useMemo(\n () => fixedColumns.reduce((width, _, columnIndex) => width + fixedColumnWidth(columnIndex), 0),\n [fixedColumns, fixedColumnWidth]\n );\n\n const gridStyle = useMemo(() => ({\n left: leftPaneWidth,\n height: '100%',\n width: `calc(100% - ${leftPaneWidth}px)`\n }), [leftPaneWidth]);\n\n const freezeLineStyle = useMemo(() => ({ left: leftPaneWidth, height: gridColumnHeight }), [leftPaneWidth, gridColumnHeight]);\n\n return (\n <>\n
\n \n \n
\n
\n \n \n {FixedCell}\n \n \n \n {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n \n {Cell}\n \n \n
\n {fixedColumns.length > 1 && (\n \n )}\n
\n \n );\n};\n\nTableGrid.propTypes = {\n CellRenderer: PropTypes.elementType,\n columns: PropTypes.arrayOf(PropTypes.shape({\n width: PropTypes.number\n })),\n fixedItemData: PropTypes.shape({}),\n FixedCellRenderer: PropTypes.elementType,\n fixedColumns: PropTypes.arrayOf(PropTypes.shape({\n width: PropTypes.number\n })),\n gridHeight: PropTypes.number,\n gridWidth: PropTypes.number,\n HeaderItemRenderer: PropTypes.elementType,\n itemData: PropTypes.shape({}),\n rowCount: PropTypes.number,\n onResizeColumnWidth: PropTypes.func,\n columnHash: PropTypes.string.isRequired,\n isSelected: PropTypes.bool,\n resizedColumn: PropTypes.shape({\n qid: PropTypes.string,\n width: PropTypes.number,\n index: PropTypes.number\n }),\n frozenQuestions: PropTypes.shape([])\n};\n\nexport default memo(TableGrid);\n","import React, {\n memo, useMemo, useState, useCallback, useEffect\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { Resizable } from 're-resizable';\nimport { getSVGbyQuestionType } from '@jotforminc/search-filter';\nimport { IconThumbtackVerticalFilled } from '@jotforminc/svg-icons';\nimport throttle from 'lodash/throttle';\n\nconst GridHeaderItem = ({\n columnData: {\n qid,\n text,\n type,\n width\n } = {},\n columnIndex = 0,\n onResizeColumnWidth = f => f,\n isSelected = false,\n frozenColumns = []\n}) => {\n const [allowDragging, setAllowDragging] = useState(true);\n const [scale, setScale] = useState(1);\n const [isFreezePin, setFreezePinned] = useState(false);\n\n const onDragStart = useCallback(e => {\n setScale(document.querySelector('.jfReport-viewport').getAttribute('data-zoom') || 1);\n if (!allowDragging) {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [allowDragging]);\n\n const onResizeStart = useCallback(() => {\n setAllowDragging(false);\n }, []);\n\n const onResize = useCallback(throttle((e, direction, ref, d) => {\n onResizeColumnWidth(qid, width + d.width, columnIndex);\n }, 50), [qid, onResizeColumnWidth, columnIndex]);\n\n const onResizeStop = useCallback((e, direction, ref, d) => {\n onResizeColumnWidth(qid, width + d.width, columnIndex, true);\n e.stopPropagation();\n setAllowDragging(true);\n }, [onResizeColumnWidth, qid, columnIndex]);\n\n const wrapperStyle = useMemo(() => ({ width: parseInt(width, 10) || 200, height: 37 }));\n\n const { height: iconHeight, width: iconWidth, svg } = getSVGbyQuestionType(type);\n\n useEffect(() => {\n if (frozenColumns.includes(qid)) {\n setFreezePinned(true);\n }\n }, [qid]);\n\n const headerItem = (\n
\n
\n {qid && (\n \n {svg}\n \n )}\n
\n \n {text}\n
\n
\n
\n {\n isFreezePin && (\n
\n \n
\n )\n }\n \n );\n\n if (!isSelected) {\n return (\n \n {headerItem}\n \n );\n }\n\n return (\n \n {headerItem}\n \n );\n};\n\nGridHeaderItem.propTypes = {\n columnData: PropTypes.shape({\n qid: PropTypes.string,\n text: PropTypes.string,\n type: PropTypes.string,\n width: PropTypes.number\n }),\n columnIndex: PropTypes.number,\n onResizeColumnWidth: PropTypes.func,\n isSelected: PropTypes.bool,\n frozenColumns: PropTypes.shape([])\n};\n\nexport default memo(GridHeaderItem);\n","import React from 'react';\nimport dompurify from 'dompurify';\n\nconst Text = ({\n noSanitize, textWrapper, textWrapperRef, ...props\n}) => {\n if (textWrapper) {\n const Wrapper = textWrapper;\n return (\n \n
\n \n );\n }\n if (props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && !noSanitize) {\n try {\n const sanitizationOptions = {\n ADD_ATTR: ['target'] // This option is necessary to preserve the 'target' attribute in tags because the 'target' attribute was not an allowed attribute.\n };\n // eslint-disable-next-line no-param-reassign\n props.dangerouslySetInnerHTML.__html = dompurify.sanitize(props.dangerouslySetInnerHTML.__html, sanitizationOptions);\n } catch (e) {\n console.error(e);\n }\n }\n return (\n
\n );\n};\n\nexport default Text;\n","import React from 'react';\n\nconst View = props =>
;\n\nexport default View;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport View from '../View';\n\nconst ViewWithAlignment = Styled(({ direction, ...props }) => )`\n display: flex;\n flex-direction: ${({ direction }) => direction};`;\n\nViewWithAlignment.propTypes = {\n direction: PropTypes.string\n};\n\nViewWithAlignment.defaultProps = {\n direction: 'column'\n};\n\nexport default ViewWithAlignment;\n","export const LIST_TYPES = {\n COMMA: 'comma',\n OPTION: 'option',\n ORDERED: 'ordered',\n UNORDERED: 'unordered',\n CHECKBOX: 'checkbox',\n IMAGE: 'image',\n ASSIGNEE: 'assignee'\n};\n\nexport const NUMBER_FORMATS = {\n NUMBER: 'number',\n COMMA: 'comma',\n POINT: 'point'\n};\n\nexport const ROW_BASED_MATRIX_TYPES = [\n 'Emoji Slider',\n 'Slider',\n 'Radio Button',\n 'Yes No'\n];\n\nexport const TABLEVIEW_WIDGETS = [\n '533946093c1ad0c45d000070', // ConfigurableList,\n '5294d72eb1dd20af46000006', // Passage Test\n '52987bda949b78ac2b000009', // Infinite list\n '5321bc1dec233a2e15000006', // Spreadsheet\n '5299b58aba554b7e24000007', // Matrix Dynamique\n '53b2b2b1447f4bec1b000004', // Narative Field\n '5bd77a175db736710a00000b', // Radio button scale\n '52a4bc26cd5522e81500001e', // Bmi Calculator\n '529e18322c0cc6240a000004' // Body Weight\n];\n\nexport const LISTVIEW_WIDGETS = [\n '52961c97e3e5266570000004', // Checklist Widget\n '528ee7cf8d5a5fc76a000004', // Dynamic Textbox\n '538dddaa976bf61129000004', // Multiple Text Fields\n '53201a2d6866be393e000028', // Dynamic Dropdowns\n '5295f3aef2426e7969000009', // Add Options\n '529058b0ca06414051000011', // Field Multiplier\n '5293157eb5ac485477000004', // Multiple Selection\n '52970c81b8daa66b03000004', // Dropdown With Paging\n '5290397c57a764425100000b', // Button Checkboxes\n '529c82a772a985697f000007', // Checkbox in Dropdown\n '5329a28886bd958e4c000007', // MultiSelect Grid\n '5298b265886815755900001e', // Visual Multi Select\n '533426cf4c4b0bf81a000023', // Sliders with Calculated Result\n '52943d56dacb3d5320000010', // Orderable List\n '528edc96a4de152e2a00001a' // Dual ListBox\n];\n\nexport const IMAGE_WIDGETS = [\n '529c8286a75dae5e7f000005', // Take Photo\n '533a8c19a3f5fec35d00009a', // Initials\n '52900b6557a7644251000004', // QR Code\n '535a49d40a05fdff5200002b', // Draw on Image\n '5593eb4edc0ffe5e7a000018', // Dynamic QR Code\n '5295b800485bd19f5d000005', // Image Upload Preview\n '52a02b574b41f8114a000004', // Image Picker\n '573ae96be567f40178000011', // File Uploader by Uploadcare\n '529cb089728b3bc46f000004', // Drawing Board\n '5d493b3b3ecd623d69000045', // Annotate Image\n '5371caff4775c55f46000020'\n];\n\nexport const HTML_WIDGETS = [\n '52948fb29322cd302b00000c', // Terms & Condition\n '5295f8da6396ecd66d00000e' // TinyMCE,\n];\n\nexport const LOCALES = {\n af: 'Afrikaans',\n sq: 'Albanian',\n ar: 'Arabic',\n 'ar-dz': 'Arabic (Algeria)',\n 'ar-kw': 'Arabic (Kuwait)',\n 'ar-ly': 'Arabic (Lybia)',\n 'ar-ma': 'Arabic (Morocco)',\n 'ar-sa': 'Arabic (Saudi Arabia)',\n 'ar-tn': 'Arabic (Tunisia)',\n 'hy-am': 'Armenian',\n az: 'Azerbaijani',\n bm: 'Bambara',\n eu: 'Basque',\n be: 'Belarusian',\n bn: 'Bengali',\n bs: 'Bosnian',\n br: 'Breton',\n bg: 'Bulgarian',\n my: 'Burmese',\n km: 'Cambodian',\n ca: 'Catalan',\n tzm: 'Central Atlas Tamazight',\n 'tzm-latn': 'Central Atlas Tamazight Latin',\n 'zh-cn': 'Chinese (China)',\n 'zh-hk': 'Chinese (Hong Kong)',\n 'zh-tw': 'Chinese (Taiwan)',\n cv: 'Chuvash',\n hr: 'Croatian',\n cs: 'Czech',\n da: 'Danish',\n nl: 'Dutch',\n 'nl-be': 'Dutch (Belgium)',\n 'en-au': 'English (Australia)',\n 'en-ca': 'English (Canada)',\n 'en-ie': 'English (Ireland)',\n 'en-il': 'English (Israel)',\n 'en-nz': 'English (New Zealand)',\n 'en-gb': 'English (United Kingdom)',\n en: 'English (United States)',\n eo: 'Esperanto',\n et: 'Estonian',\n fo: 'Faroese',\n fi: 'Finnish',\n fr: 'French',\n 'fr-ca': 'French (Canada)',\n 'fr-ch': 'French (Switzerland)',\n fy: 'Frisian',\n gl: 'Galician',\n ka: 'Georgian',\n de: 'German',\n 'de-at': 'German (Austria)',\n 'de-ch': 'German (Switzerland)',\n el: 'Greek',\n gu: 'Gujarati',\n he: 'Hebrew',\n hi: 'Hindi',\n hu: 'Hungarian',\n is: 'Icelandic',\n id: 'Indonesian',\n it: 'Italian',\n ja: 'Japanese',\n jv: 'Javanese',\n kn: 'Kannada',\n kk: 'Kazakh',\n tlh: 'Klingon',\n 'gom-latn': 'Konkani Latin script',\n ko: 'Korean',\n ky: 'Kyrgyz',\n lo: 'Lao',\n lv: 'Latvian',\n lt: 'Lithuanian',\n lb: 'Luxembourgish',\n mk: 'Macedonian',\n 'ms-my': 'Malay',\n ms: 'Malay',\n ml: 'Malayalam',\n dv: 'Maldivian',\n mt: 'Maltese (Malta)',\n mi: 'Maori',\n mr: 'Marathi',\n mn: 'Mongolian',\n me: 'Montenegrin',\n ne: 'Nepalese',\n se: 'Northern Sami',\n nb: 'Norwegian Bokmål',\n nn: 'Nynorsk',\n fa: 'Persian',\n pl: 'Polish',\n pt: 'Portuguese',\n 'pt-br': 'Portuguese (Brazil)',\n 'x-pseudo': 'Pseudo',\n 'pa-in': 'Punjabi (India)',\n ro: 'Romanian',\n ru: 'Russian',\n gd: 'Scottish Gaelic',\n sr: 'Serbian',\n 'sr-cyrl': 'Serbian Cyrillic',\n sd: 'Sindhi',\n si: 'Sinhalese',\n sk: 'Slovak',\n sl: 'Slovenian',\n es: 'Spanish',\n 'es-do': 'Spanish (Dominican Republic)',\n 'es-us': 'Spanish (United States)',\n sw: 'Swahili',\n sv: 'Swedish',\n 'tl-ph': 'Tagalog (Philippines)',\n tg: 'Tajik',\n tzl: 'Talossan',\n ta: 'Tamil',\n te: 'Telugu',\n tet: 'Tetun Dili (East Timor)',\n th: 'Thai',\n bo: 'Tibetan',\n tr: 'Turkish',\n uk: 'Ukrainian',\n ur: 'Urdu',\n 'ug-cn': 'Uyghur (China)',\n uz: 'Uzbek',\n 'uz-latn': 'Uzbek Latin',\n vi: 'Vietnamese',\n cy: 'Welsh',\n yo: 'Yoruba Nigeria',\n ss: 'siSwati'\n};\n\nexport const JOTFORM_APPS = {\n tables: ['sheets', 'tables'],\n inbox: ['inbox'],\n check(arr) {\n const result = arr.reduce((payload, item) => {\n const output = payload;\n\n const isExist = this[item.type] ? this[item.type].includes(item.checkValue) : false;\n const outputItem = {\n type: item.type,\n isExist\n };\n\n output[item.type] = outputItem;\n\n return output;\n }, {});\n\n return result;\n }\n};\n","export const current = 'WEB';\n\n/**\n * @returns true if the code is running inside\n * the JSVM SSR Environment\n */\nexport const isJSVM = () => {\n return !!global.IS_JSVM;\n};\n\nexport const isNative = () => {\n return false;\n};\n\nexport const isBrowser = () => {\n return !(isNative() || isJSVM());\n};\n","/* eslint-disable max-len */\nimport moment from 'moment-timezone';\nimport React, { Fragment } from 'react';\nimport dompurify from 'dompurify';\nimport sanitizeHtml from 'sanitize-html';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { LOCALES } from '../constants';\nimport { isNative, isBrowser } from './environment';\n\nconst regexForNumber = new RegExp('^[0-9]+$|^$');\nconst regexForEmail = new RegExp('^$|^.*@.*..*$');\nconst regexForPhone = new RegExp('^[0-9+-]*$');\n\nexport const sanitizeHTML = (html = '') => {\n return isBrowser() ? dompurify.sanitize(html, { ADD_ATTR: ['target'] }) : sanitizeHtml(html);\n};\n\nexport function isObject(value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\n\nexport function isEmpty(value) {\n return value === undefined || value === null || value.length === 0;\n}\n\nconst getMonth = month => {\n const parsed = parseInt(month, 10);\n return Number.isNaN(parsed) ? month : (parsed - 1);\n};\n\n/**\n * Loads and set the given locale of moment\n *\n * @param {*} locale : One of the moment supported language code\n *\n * Note: Loads \"en\" as default if language not found or already loaded\n */\nexport const loadMomentLocale = locale => {\n // Checks if given locale supported by moment\n const correctedLocale = locale && LOCALES[locale] ? locale : 'en';\n\n moment.locale(correctedLocale);\n};\n\n// eslint-disable-next-line complexity\nexport function getDateTimeValues(props) {\n const {\n answer: {\n year: AnswerYear,\n month: AnswerMonth,\n day: AnswerDay,\n hour: AnswerHour,\n min: AnswerMinute,\n ampm: AnswerAMPM,\n sec: AnswerSecond\n } = {},\n hideTime,\n dateFormat,\n userTimeZone,\n shouldCalculateTimeZone,\n locale,\n localeFn\n } = props;\n // Load appropriate locale\n if (!localeFn) {\n loadMomentLocale(locale);\n } else {\n localeFn();\n }\n\n const month = getMonth(AnswerMonth);\n const date = AnswerYear && AnswerMonth && AnswerDay ? `${AnswerYear}-${AnswerMonth}-${AnswerDay}` : '';\n const datetime = date && AnswerHour !== undefined && AnswerHour !== '' && AnswerMinute !== undefined && AnswerMinute !== '' && !hideTime ? `${date} ${AnswerHour}:${AnswerMinute}:00 ${AnswerAMPM || ''}` : date;\n\n const monthFormat = month === AnswerMonth ? 'MMMM' : 'MM';\n const momentFormat = datetime === date ? `YYYY-${monthFormat}-DD` : `YYYY-${monthFormat}-DD h:mm:ss A`;\n const defaultFormat = datetime === date ? 'dddd, MMMM DD, YYYY' : 'dddd, MMMM DD, YYYY h:mm A';\n const controlledDateFormat = datetime === date ? dateFormat.replace(/HH:mm|A|h:mm|hh:mm/g, '').trim() : dateFormat;\n\n let dateObject = moment(datetime, momentFormat);\n\n if (!dateObject.isValid()) {\n dateObject = moment(datetime);\n }\n\n if (shouldCalculateTimeZone) {\n const serverTimeZone = 'America/New_York';\n\n // TODO: We are using the timezone of logged in user. This can be confusing.\n // We should consider using form owner's timezone.\n\n dateObject = moment.tz(datetime, momentFormat, serverTimeZone);\n if (userTimeZone) {\n dateObject = dateObject.clone().tz(userTimeZone);\n }\n }\n\n if (AnswerSecond) {\n dateObject.set('second', Number.parseInt(AnswerSecond, 10) || 0);\n }\n\n const dateText = dateObject.format(controlledDateFormat || defaultFormat);\n\n return {\n dateText: datetime ? dateText : null,\n dateObject\n };\n}\n\nexport function getDateTimeText(props) {\n return props && props.answer ? getDateTimeValues(props).dateText : '';\n}\n\nexport function getNonformattedDate(props) {\n return getDateTimeValues(props).dateObject;\n}\n\nexport function validateFormElement(value, type) {\n switch (type) {\n case 'control_number': {\n return regexForNumber.test(value);\n }\n case 'control_email': {\n return regexForEmail.test(value);\n }\n case 'control_phone': {\n return regexForPhone.test(value);\n }\n default: return true;\n }\n}\n\n// eslint-disable-next-line prefer-spread\nexport const generateNumberArray = n => Array.apply(null, { length: n }).map(Number.call, Number);\n\nexport const nl2br = str => {\n const splitted = str.split('\\n');\n\n return splitted.map((item, i) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n {item}\n {i < splitted.length - 1 &&
}\n
\n );\n });\n};\n\n/**\n * Parses given json string and return if only the result is a valid object\n *\n * @param {*} json : Json string\n */\nexport const parseJSONObject = str => {\n const json = safeJSONParse(str, '');\n\n // Return if parsed json is a valid object\n return typeof json === 'object' && !(json instanceof Array) && json;\n};\n\nexport const isBase64Image = url => {\n return /^(?:data:image)/.test(url);\n};\n\nexport const isLocalFile = url => {\n return isNative() && /^file:\\/\\/\\//.test(url);\n};\n\n/**\n * Fixes urls of files belong to jotform\n *\n * @param {string} url - Relative path of the URL\n * @param {string} timestamp - Timestamp to append for cache busting (default is current time)\n * @returns {string} - Fixed URL\n */\nexport const getFixedUrl = (url = '', timestamp = '') => {\n if (isBase64Image(url)) return url;\n if (isLocalFile(url)) return url;\n const baseURL = isBrowser() ? window.location.origin : global.baseURL.baseURL;\n // Check if given url is legit or should be treated as path\n let fixedUrl = /^(?:https?:)(?:\\/\\/)?[a-z0-9]/.test(url) ? url : `${baseURL}${url}`;\n const separator = fixedUrl.indexOf('?') !== -1 ? '&' : '?';\n fixedUrl += `${separator}last_edited=${timestamp || new Date().getTime()}`;\n return isNative() && (fixedUrl.indexOf('http') === -1) ? `https:${fixedUrl}` : fixedUrl;\n};\n\n/**\n * Strips all html tags from texts\n *\n * @param {*} html : Text to be stripped\n */\nexport const stripHTML = html => {\n if (!html) return '';\n try {\n const sanitizedHTML = sanitizeHTML(html);\n const tmp = document.createElement('DIV');\n tmp.innerHTML = sanitizedHTML;\n return tmp.textContent || tmp.innerText || '';\n } catch (error) { // catch block is working on mobile, please test it in mobile if you made any changes\n const regex = /(<([^>]+)>)/ig;\n const result = html.replace(regex, '');\n return result;\n }\n};\n\n/**\n * Similar to stripHTML, instead of stripping it of\n * all the HTML tags, only sanitize it. If this does\n * not work for any reason (for instance certain\n * browsers) fallback to stripHTML.\n * @param {} html HTML to sanitize or strip.\n * @returns Either sanitized HTML or text stripped\n * of any HTML tags.\n */\nexport const sanitizeOrStripHTML = html => {\n if (!html) return '';\n try {\n return sanitizeHTML(html);\n } catch (error) {\n return stripHTML(html);\n }\n};\n\nexport const mapAnswerItems = (ItemComponent, items = [], props = []) => items.map((item, index) => {\n const itemKey = [item, index, props[index] && props[index].checked && 'checked'].join('_');\n // eslint-disable-next-line no-nested-ternary\n return typeof item === 'string'\n ? (isNative()\n ? (\n \n {stripHTML(item)}\n \n )\n : )\n : (\n \n {item}\n \n );\n});\n\nexport const justifyContentPicker = alignment => {\n switch (alignment) {\n case 'right':\n return 'flex-end';\n case 'center':\n return 'center';\n default:\n return 'flex-start';\n }\n};\n\nexport function base64Decode(string) {\n const Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\n decode: function decodeFn(inp) {\n let output = '';\n let chr1;\n let chr2;\n let chr3;\n let enc1;\n let enc2;\n let enc3;\n let enc4;\n let i = 0;\n const input = inp.replace(/[^A-Za-z0-9\\+\\/\\=]/g, ''); // eslint-disable-line\n\n while (i < input.length) {\n enc1 = this._keyStr.indexOf(input.charAt(i++));\n enc2 = this._keyStr.indexOf(input.charAt(i++));\n enc3 = this._keyStr.indexOf(input.charAt(i++));\n enc4 = this._keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 !== 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 !== 64) {\n output = output + String.fromCharCode(chr3);\n }\n }\n return Base64._utf8_decode(output);\n },\n\n _utf8_decode: function utfFn(utftext) {\n let decodedString = '';\n let i = 0;\n let c1 = 0;\n let c2 = 0;\n let c3 = 0;\n while (i < utftext.length) {\n c1 = utftext.charCodeAt(i);\n if (c1 < 128) {\n decodedString += String.fromCharCode(c1);\n i++;\n } else if ((c1 > 191) && (c1 < 224)) {\n c2 = utftext.charCodeAt(i + 1);\n decodedString += String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n i += 2;\n } else {\n c2 = utftext.charCodeAt(i + 1);\n c3 = utftext.charCodeAt(i + 2);\n decodedString += String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n i += 3;\n }\n }\n return decodedString;\n }\n };\n return Base64.decode(string);\n}\n\nexport const isAnswerExits = (items, item) => items.findIndex(child => (Array.isArray(child) && !Array.isArray(item) ? child.indexOf(item) > -1 : child === item));\n\nexport const transpose = arr => Object.keys(arr[0]).map(cell => arr.map(row => row[cell]));\n\nexport const convertAnswerToArray = answer => {\n if (Array.isArray(answer)) return answer;\n switch (typeof answer) {\n case 'object':\n return Object.values(answer);\n default:\n return [answer];\n }\n};\n\nexport const embedHtml = html => {\n return `\n \n \n \n \n ${html}\n \n `;\n};\n\n/**\n * Eliminates the duplicate row names by adding natural array index at the end of row name\n * Also applies to empty|space row names.\n * @param rows {Array}\n * @returns {Array}\n */\nexport const renameDuplicateRows = rows => {\n return rows.reduce((uniqueRows, name, i) => {\n const trimmedName = name.trim();\n if (trimmedName === '' || uniqueRows.includes(name)) {\n return [...uniqueRows, `${trimmedName}${i}`];\n }\n\n return [...uniqueRows, name];\n }, []);\n};\n\nexport const getWidgetFileName = (widgetUploadPath = '') => {\n const [, fileName = '', fileExtension = ''] = widgetUploadPath.match(/\\/([^/.]*?)(\\..[^?]*)/) || [];\n if (fileName.length >= 24) {\n return `${fileName.slice(0, 18)}...${fileName.slice(-2)}${fileExtension}`;\n }\n return `${fileName}${fileExtension}`;\n};\n\nexport const fixTableHeader = headerText => {\n if (typeof headerText === 'string') {\n // Configurable List widget empty header (TID: 1889798)\n return headerText.replace(/unique:[0-9]*\\[\\]/, '');\n }\n return headerText;\n};\n\nexport const getBirthdateText = ({\n day, month, year, format, locale, dateFormat, datetime\n}) => {\n if (!day || !month || !year) return '';\n let monthStr = month;\n if (monthStr && monthStr.length <= 2) { // Carform month format => '01', classic form month format => 'January'\n monthStr = parseInt(month, 10) - 1;\n }\n\n if (typeof monthStr === 'string' && datetime) { // for classic form month format => 'January'\n const dateObj = new Date(datetime);\n monthStr = dateObj.getMonth();\n }\n const mm = locale ? moment().month(monthStr).locale(locale).format('MMMM') : moment().month(monthStr).format('MMMM');\n\n const dateObj = {\n mm,\n dd: day,\n yyyy: year\n };\n\n if (dateFormat) {\n return moment(`${dateObj.mm} ${dateObj.dd} ${dateObj.yyyy}`, 'MMMM DD YYYY').format(dateFormat);\n }\n\n const text = Object.entries(dateObj).reduce((fm, [key, value]) => {\n return fm.replace(key, `${value} `);\n }, format);\n\n return text.trim();\n};\n\nexport const replaceUrlsWithAnchors = str => {\n const regex2Link = /\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z\\p{L}0-9+&@#/%=~_|]*[\\s\\p{Script=Han}]*/igu;\n if (typeof str !== 'string' || (str.includes(' {\n const bigint = parseInt(hex.replace('#', ''), 16);\n return [(bigint >> 16) & 255, (bigint >> 8) & 255, bigint & 255]; // eslint-disable-line\n};\n\nexport const hexToRgba = (color, opacity = '1') => {\n return `rgba(${hexToRgb(color).join(', ')}, ${opacity})`;\n};\n\nexport const approvalOptionValues = (option, value = null) => {\n if (option === 'amount') {\n return `${value} response${value > 1 ? 's' : ''} completes the approval`;\n }\n if (option === 'first') {\n return 'Require response from one person';\n }\n if (option === 'all') {\n return 'Require response from all';\n }\n if (option === 'majority') {\n return 'Require response from majority';\n }\n};\n\nexport const parseConfigurableListFields = fields => {\n const regex = /\\*?(?[^:]+):(?:[^\\r\\n]*)[\\r\\n]*/gm;\n const matches = fields ? [...fields.matchAll(regex)].map(match => match.groups.title) : [];\n\n const a = matches.filter(field => field).reduce((acc, field) => {\n if (!acc.includes(field)) {\n acc.push(field);\n return acc;\n }\n\n const count = acc.filter(f => f === field).length;\n acc.push(`unique:${(count + 1)}[${field}]`);\n return acc;\n }, []);\n return a;\n};\n\nexport const decideWidgetTableData = (selectedField, parsedAnswer, columns, tableData, fields, rows) => {\n switch (selectedField) {\n case '533946093c1ad0c45d000070': // Configurable List\n const parsedFields = parseConfigurableListFields(fields);\n // intersect the fields with the columns\n const intersectedFields = parsedFields.filter(field => columns.includes(field));\n\n /*\n if the intersected fields are not equal to the columns,\n return the original table data.\n the columns' names might be changed after the form is submitted\n */\n if (intersectedFields.length !== columns.length) {\n return { columns, rows, tableData };\n }\n\n // create a new table data with the intersected fields\n const newTableData = parsedAnswer.map(row => intersectedFields.map(field => row[field]));\n\n // if there are no rows, return the original table data\n if (newTableData.length === 0) {\n return { columns, rows, tableData };\n }\n\n return { columns: intersectedFields, rows, tableData: newTableData };\n default:\n return { columns, rows, tableData };\n }\n};\n\nexport const processWidgetTableData = (selectedField, parsedAnswer, columns, tableData, fields, rows = []) => {\n const widgetsNeedsTheirAnswersToBeSorted = [\n '533946093c1ad0c45d000070' // Configurable List\n ];\n\n /*\n since table widgets store their answers as an array of objects,\n javascript does not guarantee the order of the keys in the object.\n Example:\n JSON.parse('{\"field\":\"answer1\", \"2020\":\"answer2\"}')\n => {2020: \"answer2\", field: \"answer1\"}\n */\n\n if (widgetsNeedsTheirAnswersToBeSorted.includes(selectedField)) {\n // check if any of the columns are numeric\n if (columns.some(col => !Number.isNaN(Number(col)))) {\n return decideWidgetTableData(selectedField, parsedAnswer, columns, tableData, fields, rows);\n }\n }\n\n return { columns, rows, tableData };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport isEqual from 'lodash/isEqual';\nimport View from '../View';\nimport Text from '../Text';\nimport { nl2br, stripHTML } from '../../utils';\nimport { isNative } from '../../utils/environment';\n\nconst LabelText = Styled(Text)`\n font-size: 20px;\n letter-spacing: .25px;\n font-weight: 600;\n`;\n\nclass Label extends React.Component {\n constructor(props) {\n super(props);\n\n const { textStyle } = this.props;\n\n // In order to prevent unnecessary re-renders caused by ref changes on WrappedLabelText caused by calling Styled(...) on each render.\n this.wrappedLabelText = Styled(styledProps => <LabelText {...styledProps} />)`${textStyle}`;\n // If you are willing to change this logic, you may break inline-edit on PDF-Editor. Remember, everything is connected.\n }\n\n componentDidUpdate(prevProps) {\n if (!isEqual(prevProps.textStyle, this.props.textStyle)) {\n this.wrappedLabelText = Styled(props => <LabelText {...props} />)`${this.props.textStyle}`;\n }\n }\n\n render() {\n const {\n label,\n textProps,\n textStyle,\n allowHTML,\n childLabels, // array of additional components in the label\n ...props\n } = this.props;\n\n const WrappedLabelText = this.wrappedLabelText;\n const isValid = (label !== '') && (label.length > 0); // required for native\n\n const prettyLabel = isNative() ? stripHTML(label) : nl2br(stripHTML(label));\n return (\n <View {...props}>\n {isValid && label && <WrappedLabelText {...textProps}>{allowHTML ? label : prettyLabel}</WrappedLabelText>}\n {childLabels && childLabels}\n </View>\n );\n }\n}\n\nLabel.propTypes = {\n label: PropTypes.string,\n textProps: PropTypes.shape({}),\n allowHTML: PropTypes.bool,\n childLabels: PropTypes.arrayOf(PropTypes.shape({})),\n textStyle: PropTypes.string\n};\n\nLabel.defaultProps = {\n label: '',\n textProps: {},\n allowHTML: false,\n childLabels: [],\n textStyle: ''\n};\n\nexport default Label;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Label from '../Label';\n\nconst LabelWithAlignment = Styled(({ direction, flexBasis, ...props }) => <Label {...props} textStyle={`word-break: ${direction !== 'column' ? 'break-all' : 'initial'}`} />)`\n flex: ${({ direction, flexBasis }) => { return direction === 'column' ? 'auto' : `0 0 ${flexBasis}`; }};\n margin: ${({ direction }) => { return direction === 'column' ? '0 0 10px 0' : '0 10px 0 0'; }};\n `;\n\nLabelWithAlignment.propTypes = {\n direction: PropTypes.string,\n flexBasis: PropTypes.string\n};\n\nLabelWithAlignment.defaultProps = {\n direction: 'column',\n flexBasis: '40%'\n};\n\nexport default LabelWithAlignment;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport View from '../View';\n\nconst Answer = ({\n children,\n ...props\n}) => (\n <View {...props}>\n {children}\n </View>\n);\n\nAnswer.propTypes = {\n children: PropTypes.node\n};\n\nAnswer.defaultProps = {\n children: null\n};\n\nexport default Answer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Answer from '../Answer';\n\nconst AnswerWithAlignment = Styled(({ direction, flexBasis, ...props }) => <Answer {...props} />)`\n flex: ${({ direction, flexBasis }) => { return direction === 'column' ? 'auto' : `0 0 ${flexBasis}`; }};`;\n\nAnswerWithAlignment.propTypes = {\n direction: PropTypes.string,\n flexBasis: PropTypes.string\n};\n\nAnswerWithAlignment.defaultProps = {\n direction: 'column',\n flexBasis: '60%'\n};\n\nexport default AnswerWithAlignment;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport unescape from 'lodash/unescape';\nimport View from '../View';\n\nimport ViewWithAlignment from '../ViewWithAlignment';\nimport LabelWithAlignment from '../LabelWithAlignment';\nimport AnswerWithAlignment from '../AnswerWithAlignment';\n\nconst Baseline = ({\n children,\n label,\n widgetId,\n labelContainerProps: {\n simpleBaseLine,\n simpleBaseLineProps,\n ..._labelContainerProps\n },\n answerWrapperProps,\n direction,\n selectionProps,\n ...props\n}) => {\n const labelHiddenClass = !label && widgetId && widgetId === '533a8c19a3f5fec35d00009a' ? 'isHidden' : '';\n return simpleBaseLine ? (<View {...simpleBaseLineProps}>{children}</View>) : (\n <ViewWithAlignment direction={direction} {...props}>\n <LabelWithAlignment\n direction={direction} className={labelHiddenClass} label={(typeof label === 'string') ? unescape(label.replace(/&/g, '&')) : ''}\n {..._labelContainerProps}\n />\n <AnswerWithAlignment direction={direction} {...answerWrapperProps}>\n {children}\n </AnswerWithAlignment>\n </ViewWithAlignment>\n );\n};\n\nBaseline.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]))\n ]),\n selectionProps: PropTypes.shape({}),\n direction: PropTypes.string,\n label: PropTypes.string,\n labelContainerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n widgetId: PropTypes.string\n};\n\nBaseline.defaultProps = {\n children: <div />,\n label: '',\n widgetId: '',\n direction: 'column',\n selectionProps: {\n isSelectable: false,\n onSelect: f => f,\n selectedParts: [],\n wrapperStyle: {}\n },\n labelContainerProps: {},\n answerWrapperProps: {}\n};\n\nexport default Baseline;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Image = ({\n alt,\n ...props\n}) => (\n <img\n alt={alt}\n {...props}\n />\n);\n\nImage.propTypes = {\n alt: PropTypes.string\n};\n\nImage.defaultProps = {\n alt: ''\n};\n\nexport default Image;\n","import React, { Component } from 'react';\nimport Geocode from 'react-geocode';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { t } from '@jotforminc/translation';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\nimport View from '../../components/View';\nimport Image from '../../components/Image';\n\nconst EmptyResult = Styled(View)`\n display: flex;\n background-color: #F3F3FE;\n min-height: 74px;\n padding: 16px;\n border-radius: 4px;\n margin-right: 82px;\n`;\n\nconst StyledText = Styled(Text)`\n color: ${({ color }) => color};\n font-weight: ${({ fontWeight }) => fontWeight};\n font-size: 14px;\n line-height: 20px;\n`;\n\nconst ImageView = Styled(View)`\n display: flex;\n flex-direction: column;\n align-items: start;\n justify-content: flex-start;\n padding-right: 18px;\n flex-shrink: 0;\n`;\n\nclass Address extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mapLink: '',\n largerMapLink: '',\n emptyResult: false\n };\n }\n\n componentDidMount() {\n const { showMap, answer } = this.props;\n if (showMap && answer) {\n this.handleMapLinks();\n }\n }\n\n componentDidUpdate(prevProps) {\n const { showMap, answer } = this.props;\n if (showMap && answer && (prevProps.answer !== answer || prevProps.showMap !== showMap)) {\n this.handleMapLinks();\n }\n }\n\n handleMapLinks = () => {\n const address = Object.values(this.props.answer).reduce((prev, next) => `${prev} ${next}`);\n\n if (address.trim().length === 0) {\n this.setState({\n emptyResult: false,\n mapLink: '',\n largerMapLink: ''\n });\n return;\n }\n\n Geocode.setApiKey('AIzaSyAO3hx_Mq0AGel9wULuOY5f35KRzFnklOM');\n Geocode.fromAddress(address).then(\n response => {\n const { lat: latitude, lng: longitude } = response.results[0].geometry.location;\n\n // Calculate for zoom level\n const north = latitude + 0.04;\n const south = latitude - 0.04;\n const west = longitude + 0.08;\n const east = longitude - 0.08;\n\n const link = `https://www.openstreetmap.org/export/embed.html?bbox=${east}%2C${south}%2C${west}%2C${north}&layer=transportmap&marker=${latitude}%2C${longitude}`;\n const largerLink = `https://maps.google.com/maps?q=${latitude},+${longitude}`;\n\n this.setState({\n mapLink: link,\n largerMapLink: largerLink,\n emptyResult: false\n });\n },\n error => {\n if (error.message.indexOf('ZERO_RESULTS') === -1) {\n console.error(error);\n } else { // if address is not valid\n this.setState({\n emptyResult: true,\n mapLink: '',\n largerMapLink: ''\n });\n }\n }\n );\n };\n\n concatArgumentsWithComma = (...args) => {\n return args.reduce((acc, arg) => {\n if (!arg) return acc;\n if (!acc) return arg;\n\n return `${acc}, ${arg}`;\n }, '');\n };\n\n streetLine = (street1, street2, textProps) => {\n if (!street1 && !street2) return null;\n const streetLine = this.concatArgumentsWithComma(street1, street2);\n return (streetLine ? <Text {...textProps}>{stripHTML(streetLine)}</Text> : null);\n };\n\n cityLine = (city, state, postalCode, textProps) => {\n if (!city && !state && !postalCode) return null;\n const cityLine = this.concatArgumentsWithComma(city, state, postalCode);\n return (cityLine ? <Text {...textProps}>{stripHTML(cityLine)}</Text> : null);\n };\n\n countryLine = (country, textProps) => {\n return (country ? <Text {...textProps}>{stripHTML(country)}</Text> : null);\n };\n\n render() {\n const {\n text,\n answer: {\n addr_line1: AnswerLine1,\n addr_line2: AnswerLine2,\n city: AnswerCity,\n state: AnswerState,\n postal: AnswerPostal,\n country: AnswerCountry\n },\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction,\n showMap\n } = this.props;\n\n const {\n mapLink,\n largerMapLink,\n emptyResult\n } = this.state;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <>\n {this.streetLine(AnswerLine1, AnswerLine2, answerProps)}\n {this.cityLine(AnswerCity, AnswerState, AnswerPostal, answerProps)}\n {this.countryLine(AnswerCountry, answerProps)}\n {showMap && mapLink && largerMapLink && (\n <div className=\"jfAnswer-answer forMapContainer\">\n <div className=\"jfAnswer-answer forMap\">\n <iframe\n title=\"map\"\n width=\"300\"\n height=\"250\"\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n src={mapLink}\n style={{ border: '1px solid black' }}\n />\n </div>\n <div className=\"jfAnswer-answer forLink\">\n <a target=\"_blank\" href={largerMapLink} style={{ color: '#0000FF', textAlign: 'left' }}>View Larger Map</a>\n </div>\n </div>\n )}\n {showMap && emptyResult && (\n <EmptyResult>\n <ImageView>\n <Image\n src=\"https://cdn.jotfor.ms/assets/img/uncategorized/exclamation-triangle.svg\"\n style={{ width: 24, height: 24 }}\n />\n </ImageView>\n <View>\n <StyledText\n style={{ marginBottom: 4 }}\n color=\"#343C6A\"\n fontWeight=\"700\"\n >\n {t('Couldn\\'t find the address')}\n </StyledText>\n <StyledText\n color=\"#6C73A8\"\n fontWeight=\"400\"\n >\n {t('It looks like the provided address is invalid.')}\n </StyledText>\n </View>\n </EmptyResult>\n )}\n </>\n </Baseline>\n );\n }\n}\n\nAddress.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n addr_line1: PropTypes.string,\n addr_line2: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n postal: PropTypes.string,\n country: PropTypes.string\n })\n ]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string,\n showMap: PropTypes.bool\n};\n\nAddress.defaultProps = {\n text: '',\n answer: {\n addr_line1: '',\n addr_line2: '',\n city: '',\n state: '',\n postal: '',\n country: ''\n },\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column',\n showMap: false\n};\n\nexport default Address;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nconst styled = Component => {\n return (tags, ...others) => {\n return Styled(props => <Component {...props} />)`\n ${tags}\n ${others}\n `;\n };\n};\n\nexport default styled;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment-timezone';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport Styled from '../../utils/styled';\n\nconst TimezoneText = Styled(Text)`\n font-size: 13px;\n letter-spacing: 0.1px;\n color: #8894ac;\n`;\n\nclass Appointment extends React.Component {\n getAnswerDate() {\n const {\n answer, timezone, showTimezone, timeFormat, submissionDate, isNewAppointment, locale\n } = this.props;\n const { date: dateStr, duration } = answer;\n if (locale) {\n moment.locale(locale);\n }\n const serverTimeZone = 'America/New_York';\n const newAppointment = (true || window.location.href.includes('useAppointmentFix') || isNewAppointment);\n\n if (!dateStr) {\n return '';\n }\n\n let dateObject = newAppointment ? moment.tz(dateStr, serverTimeZone) : moment(dateStr);\n if (!dateObject.isValid()) {\n return '';\n }\n\n if (timezone) {\n if (newAppointment) {\n dateObject = dateObject.clone().tz(timezone);\n } else {\n const defaultOffset = submissionDate ? moment(submissionDate).tz(serverTimeZone).utcOffset() : moment.tz(serverTimeZone).utcOffset();\n const timezoneOffset = submissionDate ? moment(submissionDate).tz(timezone).utcOffset() : moment.tz(timezone).utcOffset();\n const changedOffset = timezoneOffset - defaultOffset;\n\n dateObject = dateObject.clone().add(changedOffset, 'minutes');\n }\n }\n\n const endDate = dateObject.clone().add(duration, 'minutes');\n const answerTimeFormat = timeFormat === 'AM/PM' ? 'h:mm A' : 'HH:mm';\n\n return (\n <>\n {dateObject.clone().format(`dddd, MMM DD, Y ${answerTimeFormat}`)}\n {' - '}\n {endDate.format(answerTimeFormat)}\n {' '}\n <TimezoneText>{showTimezone && `- ${timezone} Time`}</TimezoneText>\n </>\n );\n }\n\n render() {\n const {\n text,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n\n const answer = this.getAnswerDate();\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {answer ? (\n <Text {...answerProps}>\n {answer}\n </Text>\n ) : null}\n </Baseline>\n );\n }\n}\n\nAppointment.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n timezone: PropTypes.string,\n timeFormat: PropTypes.string,\n submissionDate: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n dateFormat: PropTypes.shape({}),\n direction: PropTypes.string,\n showTimezone: PropTypes.bool,\n isNewAppointment: PropTypes.bool\n};\n\nAppointment.defaultProps = {\n text: '',\n answer: '',\n timezone: '',\n timeFormat: '24 Hour',\n submissionDate: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n dateFormat: 'mm-dd-yyyy',\n direction: 'column',\n showTimezone: false,\n isNewAppointment: false\n};\n\nexport default Appointment;\n","import Emoji from 'emoji-mart/dist/components/emoji/emoji';\nimport 'emoji-mart/css/emoji-mart.css';\n\nexport default Emoji;\n","import React from 'react';\nimport { EmojiWithoutLazy } from '@jotforminc/emoji-mart';\nimport { string, oneOfType, number } from 'prop-types';\n\nconst EmojiRendererWithoutLazy = ({ id, size }) => {\n return (\n <EmojiWithoutLazy\n emoji={{ id }}\n size={size}\n native={true}\n />\n );\n};\n\nEmojiRendererWithoutLazy.propTypes = {\n id: string,\n size: oneOfType([number, string])\n};\n\nEmojiRendererWithoutLazy.defaultProps = {\n id: '',\n size: 55\n};\n\nexport default EmojiRendererWithoutLazy;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { EmojiRendererWithoutLazy } from '@jotforminc/icon-selector';\n\nimport View from '../View';\nimport Text from '../Text';\nimport Image from '../Image';\n// import Baseline from '../Baseline';\n\nconst StyledTextHolder = Styled(View)`\n display: flex;\n flex: 1;\n flex-direction: column;\n text-align: left;\n overflow: hidden;\n`;\n\nconst StyleSubText = Styled(Text)`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n opacity: .6;\n`;\n\nconst StyledText = Styled(Text)`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst StyledImageLine = Styled(View)`\n background-color: ${({ backgroundColor }) => backgroundColor};\n display: inline-flex !important;\n align-items: center;\n padding: 10px;\n border: 1px solid #C8CEED;\n border-radius: 90px;\n`;\n\nconst StyledImage = Styled(props => <Image {...props} />)`\n display: block;\n flex: 0;\n max-width: 36px;\n max-height: 36px;\n margin-right: 8px;\n border-radius: 50%;\n object-fit: cover;\n background-color: #b9bbd2;\n flex-shrink: 1;\n`;\n\nclass AssigneeLine extends React.Component {\n render() {\n const {\n label,\n subLabel,\n value,\n imageLabel,\n valueContainerProps,\n imageContainerProps,\n backgroundColor,\n optimizeImage,\n showSubLabel,\n teamAvatarID,\n ...props\n } = this.props;\n\n const imageSource = value || 'https://cdn.jotfor.ms/assets/img/v4/avatar/Podo-Guest.png';\n\n return (\n <StyledImageLine {...props}>\n <View {...valueContainerProps}>\n {teamAvatarID ? <EmojiRendererWithoutLazy id={teamAvatarID} size={12} />\n : <StyledImage alt={label} src={imageSource} {...imageContainerProps} />}\n\n </View>\n <StyledTextHolder>\n {imageLabel && <StyledText>{imageLabel}</StyledText>}\n {showSubLabel && subLabel && <StyleSubText>{subLabel}</StyleSubText>}\n </StyledTextHolder>\n </StyledImageLine>\n );\n }\n}\n\nAssigneeLine.propTypes = {\n label: PropTypes.string,\n subLabel: PropTypes.string,\n value: PropTypes.string,\n imageLabel: PropTypes.string,\n backgroundColor: PropTypes.string,\n valueContainerProps: PropTypes.shape({}),\n imageContainerProps: PropTypes.shape({}),\n optimizeImage: PropTypes.bool,\n showSubLabel: PropTypes.bool\n};\n\nAssigneeLine.defaultProps = {\n label: '',\n subLabel: '',\n value: '',\n imageLabel: '',\n backgroundColor: null,\n valueContainerProps: {},\n imageContainerProps: {},\n optimizeImage: false,\n showSubLabel: true\n};\n\nexport default AssigneeLine;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AssigneeLine from '../AssigneeLine';\n\nconst AssigneeItem = ({\n children: [opt, subOpt, value], checked, imageContainerProps, ...props\n}) => (\n <AssigneeLine\n key={`${opt}_${value}`}\n label={opt}\n subLabel={subOpt}\n value={value}\n imageLabel={opt}\n imageContainerProps={{\n ...imageContainerProps,\n style: {\n ...(imageContainerProps.style || {}),\n opacity: checked ? 1 : 0.5\n }\n }}\n {...props}\n />\n);\n\nAssigneeItem.propTypes = {\n imageContainerProps: PropTypes.shape({\n style: PropTypes.shape({})\n }),\n children: PropTypes.node,\n checked: PropTypes.bool\n};\n\nAssigneeItem.defaultProps = {\n children: null,\n checked: false,\n imageContainerProps: {\n style: {}\n }\n};\n\nexport default AssigneeItem;\n","import PropTypes from 'prop-types';\n\nimport {\n LOCALES,\n LIST_TYPES,\n NUMBER_FORMATS\n} from '.';\n\n/**\n * Just creates a mix of other prop type schemas with given key => proptype pair\n */\nconst mixPropTypes = propTypes => Object.keys(propTypes).reduce(\n (prev, curr) => ({\n schema: { ...prev.schema, [curr]: propTypes[curr].schema },\n default: { ...prev.default, [curr]: propTypes[curr].default }\n }),\n { schema: {}, default: {} }\n);\n\nexport const ContainerProps = {\n schema: PropTypes.shape({\n alignment: PropTypes.oneOf([\n 'left',\n 'center',\n 'right'\n ])\n }),\n default: { alignment: 'center' }\n};\n\nexport const ListItem = {\n schema: PropTypes.node,\n default: ''\n};\n\nexport const ShowAll = {\n schema: PropTypes.bool,\n default: false\n};\n\nexport const ListItems = {\n schema: PropTypes.arrayOf(ListItem.schema),\n default: []\n};\n\nexport const ItemProps = {\n schema: PropTypes.shape({}),\n default: {}\n};\n\nexport const ListItemProps = {\n schema: PropTypes.oneOfType([\n PropTypes.arrayOf(ItemProps.schema),\n PropTypes.object\n ]),\n default: []\n};\n\nexport const ListTypes = {\n schema: PropTypes.oneOf(Object.values(LIST_TYPES)),\n default: LIST_TYPES.OPTION\n};\n\nexport const OptionsArrayItem = {\n schema: PropTypes.shape({\n value: PropTypes.string,\n color: PropTypes.string,\n key: PropTypes.string\n }),\n default: {}\n};\n\nexport const OptionsArrayParsed = {\n schema: PropTypes.arrayOf(OptionsArrayItem.schema),\n default: []\n};\n\nexport const MultiChoiceAnswer = {\n schema: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n default: []\n};\n\nexport const OptionsArray = {\n schema: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({})]),\n default: ''\n};\n\nexport const SubmissionWidget = {\n schema: PropTypes.oneOf(['Yes', 'No']),\n default: 'No'\n};\n\nexport const NumberFormats = {\n schema: PropTypes.oneOf(Object.values(NUMBER_FORMATS)),\n default: NUMBER_FORMATS.NUMBER\n};\n\nexport const ListPropTypes = mixPropTypes({\n type: ListTypes,\n showAll: ShowAll,\n items: ListItems,\n allItems: ListItems,\n itemProps: ListItemProps,\n containerProps: ContainerProps\n});\n\nexport const SubmissionWidgetPropsTypes = mixPropTypes({\n answer: MultiChoiceAnswer,\n options_array: OptionsArray,\n submissionWidget: SubmissionWidget\n});\n\nexport const LocaleTypes = {\n schema: PropTypes.oneOf(Object.keys(LOCALES)),\n default: 'en'\n};\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport AssigneeItem from '../AssigneeItem';\nimport { mapAnswerItems, justifyContentPicker } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-wrap: wrap;\n justify-content: ${({ alignment }) => justifyContentPicker(alignment)};\n gap: 12px;\n`;\n\nconst AssigneeList = ({ items, itemProps, containerProps }) => (\n <ViewWrap {...containerProps}>\n {mapAnswerItems(AssigneeItem, items, itemProps)}\n </ViewWrap>\n);\n\nAssigneeList.propTypes = ListPropTypes.schema;\nAssigneeList.defaultProps = ListPropTypes.default;\n\nexport default AssigneeList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport Text from '../Text';\nimport Image from '../Image';\n// import Baseline from '../Baseline';\nimport { isBrowser } from '../../utils/environment';\n\nconst StyledText = Styled(Text)`\n text-align: center;\n`;\n\nconst StyledImageLine = Styled(View)`\n background-color: ${({ backgroundColor }) => backgroundColor};\n`;\n\nconst StyledImage = Styled(props => <Image {...props} />)`\n max-width: 200px;\n`;\n\nclass ImageLine extends React.Component {\n render() {\n const {\n label,\n value,\n imageLabel,\n valueContainerProps,\n imageContainerProps,\n backgroundColor,\n optimizeImage,\n noCache,\n noImgPlaceholder,\n ...props\n } = this.props;\n\n const imageUrl = () => {\n const imageSource = noImgPlaceholder ? value : (value || 'https://www.jotform.com/images/image_placeholder.png');\n const baseUrl = isBrowser() ? window.location.origin : global.baseURL.baseURL;\n if (noCache) {\n const url = new URL(imageSource, baseUrl);\n url.searchParams.set('nc', 1);\n return url.toString();\n }\n\n return imageSource;\n };\n\n const _imgURL = imageUrl();\n\n return (\n <StyledImageLine {...props}>\n <View {...valueContainerProps}>\n {_imgURL && <StyledImage alt={label} src={imageUrl()} {...imageContainerProps} />}\n </View>\n {imageLabel && <StyledText>{imageLabel}</StyledText>}\n </StyledImageLine>\n );\n }\n}\n\nImageLine.propTypes = {\n label: PropTypes.string,\n value: PropTypes.string,\n imageLabel: PropTypes.string,\n backgroundColor: PropTypes.string,\n valueContainerProps: PropTypes.shape({}),\n imageContainerProps: PropTypes.shape({}),\n optimizeImage: PropTypes.bool,\n noCache: PropTypes.bool,\n noImgPlaceholder: PropTypes.bool\n};\n\nImageLine.defaultProps = {\n label: '',\n value: '',\n imageLabel: '',\n backgroundColor: null,\n valueContainerProps: {},\n imageContainerProps: {},\n optimizeImage: false,\n noCache: false,\n noImgPlaceholder: false\n};\n\nexport default ImageLine;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Imageline from '../Imageline';\n\nconst ImageItem = ({\n children: [opt, value], checked, imageContainerProps, ...props\n}) => (\n <Imageline\n key={`${opt}_${value}`}\n label={opt}\n value={value}\n imageLabel={opt}\n imageContainerProps={{\n ...imageContainerProps,\n style: {\n ...(imageContainerProps.style || {}),\n opacity: checked ? 1 : 0.5\n }\n }}\n {...props}\n />\n);\n\nImageItem.propTypes = {\n imageContainerProps: PropTypes.shape({\n style: PropTypes.shape({})\n }),\n children: PropTypes.node,\n checked: PropTypes.bool\n};\n\nImageItem.defaultProps = {\n children: null,\n checked: false,\n imageContainerProps: {\n style: {}\n }\n};\n\nexport default ImageItem;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport ImageItem from '../ImageItem';\nimport { mapAnswerItems, justifyContentPicker } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-wrap: wrap;\n justify-content: ${({ alignment }) => justifyContentPicker(alignment)};\n`;\n\nconst ImageList = ({ items, itemProps, containerProps }) => (\n <ViewWrap {...containerProps}>\n {mapAnswerItems(ImageItem, items, itemProps)}\n </ViewWrap>\n);\n\nImageList.propTypes = ListPropTypes.schema;\nImageList.defaultProps = ListPropTypes.default;\n\nexport default ImageList;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport { mapAnswerItems, justifyContentPicker } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-flow: row wrap;\n justify-content: ${({ alignment }) => justifyContentPicker(alignment)};\n`;\nconst ViewChild = Styled(View)`\n text-decoration: ${({ checked }) => (checked !== undefined && !checked ? 'line-through' : 'none')};\n &:not(:last-of-type):after {\n content: ', ';\n white-space: pre;\n }\n`;\n\nconst CommaList = ({ items, itemProps, containerProps }) => (\n <ViewWrap {...containerProps}>\n {mapAnswerItems(ViewChild, items, itemProps)}\n </ViewWrap>\n);\n\nCommaList.propTypes = ListPropTypes.schema;\nCommaList.defaultProps = ListPropTypes.default;\n\nexport default CommaList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Text from '../Text';\n\nconst OptionItem = Styled(({\n backgroundColor,\n checked,\n color,\n ...remainingProps\n}) => <Text {...remainingProps} />)`\n background-color: ${({ backgroundColor }) => backgroundColor || '#E3E8F3'};\n padding: 8px 24px;\n font-size: 16px;\n font-weight: 200;\n margin-right: 12px;\n margin-bottom: 12px;\n border-radius: 3px;\n opacity: ${({ checked }) => (checked ? 1 : 0.5)};\n`;\n\nOptionItem.propTypes = {\n color: PropTypes.string,\n checked: PropTypes.bool\n};\n\nOptionItem.defaultProps = {\n color: '#E3E8F3',\n checked: true\n};\n\nexport default OptionItem;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport OptionItem from '../OptionItem';\nimport { mapAnswerItems, justifyContentPicker } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-wrap: wrap;\n justify-content: ${({ alignment }) => justifyContentPicker(alignment)};\n`;\n\nconst OptionList = ({ items, itemProps, containerProps }) => (\n <ViewWrap {...containerProps}>\n {mapAnswerItems(OptionItem, items, itemProps)}\n </ViewWrap>\n);\n\nOptionList.propTypes = ListPropTypes.schema;\nOptionList.defaultProps = ListPropTypes.default;\n\nexport default OptionList;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport { mapAnswerItems } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst StyledListItem = Styled(props => <li {...props} />)``;\n\nconst OrderedList = ({ items, itemProps, containerProps }) => (\n <ol {...containerProps}>\n {mapAnswerItems(StyledListItem, items, itemProps)}\n </ol>\n);\n\nOrderedList.propTypes = ListPropTypes.schema;\nOrderedList.defaultProps = ListPropTypes.default;\n\nexport default OrderedList;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from '../../utils/styled';\n\nimport View from '../View';\nimport Image from '../Image';\n\nconst StyledImage = Styled(props => <Image {...props} />)`\n width: 12px;\n height: 12px;\n display: inline-block;\n vertical-align: text-bottom;\n outline: 1px solid #b8b8b8;\n border-color: #b8b8b8;\n border-width: 1;\n`;\n\nconst StyledView = Styled(View)`\n width: 12px;\n height: 12px;\n min-width: 12px;\n display: inline-block;\n vertical-align: text-bottom;\n box-shadow: 0 0 0 1px #b0b0b0;\n border-color: #b0b0b0;\n border-width: 1;\n`;\n\nclass Checkbox extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n checked: props.checked\n };\n\n this.handleToggle = this.handleToggle.bind(this);\n }\n\n handleToggle() {\n const { interactive } = this.props;\n const { checked } = this.state;\n\n if (!interactive) {\n return false;\n }\n\n const { handleChange } = this.props;\n this.setState({ checked: !checked }, () => handleChange(!checked));\n }\n\n render() {\n const { checked } = this.state;\n return (\n checked\n ? (\n <StyledImage\n className='js-checked-option'\n onClick={this.handleToggle}\n src=\"https://cdn.jotfor.ms/assets/img/submission/check_icon.png\"\n />\n )\n : (<StyledView onClick={this.handleToggle} />)\n );\n }\n}\n\nCheckbox.propTypes = {\n interactive: PropTypes.bool,\n checked: PropTypes.bool,\n handleChange: PropTypes.func\n};\n\nCheckbox.defaultProps = {\n checked: false,\n interactive: true,\n handleChange: f => f\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport View from '../View';\nimport Text from '../Text';\nimport Checkbox from '../Checkbox';\nimport { ListPropTypes } from '../../constants/schemas';\nimport { mapAnswerItems } from '../../utils';\n\nconst ViewWrap = Styled(View)`\n text-align: ${({ alignment }) => alignment};\n`;\n\nconst CheckbowWrapper = Styled(View)`\n display: inline-block;\n`;\n\nconst CheckboxContainer = Styled(View)`\n display: flex;\n align-items: center;\n flex-flow: row nowrap;\n margin: 10px 15px 10px 0;\n`;\n\nconst CheckboxLabel = Styled(Text)`\n margin-left: 10px;\n`;\n\nconst CheckboxView = ({ checked, ...props }) => (\n <CheckbowWrapper>\n <CheckboxContainer>\n <Checkbox interactive={false} checked={checked !== undefined ? checked : true} />\n <CheckboxLabel {...props} />\n </CheckboxContainer>\n </CheckbowWrapper>\n);\n\nconst CheckboxList = ({ items, itemProps, containerProps }) => (\n <ViewWrap {...containerProps}>\n {mapAnswerItems(CheckboxView, items, itemProps)}\n </ViewWrap>\n);\n\nCheckboxList.propTypes = ListPropTypes.schema;\nCheckboxList.defaultProps = ListPropTypes.default;\n\nexport default CheckboxList;\n","import React from 'react';\nimport Styled from 'styled-components';\n\nimport { mapAnswerItems } from '../../utils';\nimport { ListPropTypes } from '../../constants/schemas';\n\nconst StyledListItem = Styled(props => <li {...props} />)``;\n\nconst UnorderedList = ({ items, itemProps, containerProps }) => (\n <ul {...containerProps}>\n {mapAnswerItems(StyledListItem, items, itemProps)}\n </ul>\n);\n\nUnorderedList.propTypes = ListPropTypes.schema;\nUnorderedList.defaultProps = ListPropTypes.default;\n\nexport default UnorderedList;\n","import React, { Component } from 'react';\n\nimport AssigneeList from '../AssigneeList';\nimport ImageList from '../ImageList';\nimport CommaList from '../CommaList';\nimport OptionList from '../OptionList';\nimport OrderedList from '../OrderedList';\nimport CheckboxList from '../CheckboxList';\nimport UnorderedList from '../UnorderedList';\nimport { LIST_TYPES } from '../../constants';\nimport { ListPropTypes } from '../../constants/schemas';\nimport { isAnswerExits } from '../../utils';\n\nexport default class List extends Component {\n get baseItemProps() {\n const { allItems, itemProps } = this.props;\n return Array.isArray(itemProps)\n ? itemProps\n : allItems.map(() => itemProps);\n }\n\n get items() {\n const { showAll, items, allItems } = this.props;\n return showAll ? allItems : items;\n }\n\n get itemProps() {\n const { showAll, items, allItems } = this.props;\n\n return showAll\n ? allItems.map((item, index) => {\n const itemIndex = isAnswerExits(items, item);\n return { ...(this.baseItemProps[index] || {}), checked: itemIndex > -1 };\n })\n : items.map((item, index) => ({ ...this.baseItemProps[index], checked: items.indexOf(item) > -1 }));\n }\n\n get ListComponent() {\n const {\n COMMA,\n OPTION,\n ORDERED,\n CHECKBOX,\n UNORDERED,\n IMAGE,\n ASSIGNEE\n } = LIST_TYPES;\n\n switch (this.props.type) {\n case COMMA:\n return CommaList;\n case OPTION:\n return OptionList;\n case ORDERED:\n return OrderedList;\n case UNORDERED:\n return UnorderedList;\n case CHECKBOX:\n return CheckboxList;\n case ASSIGNEE:\n return AssigneeList;\n case IMAGE:\n return ImageList;\n default:\n return OptionList;\n }\n }\n\n render() {\n return (\n <this.ListComponent\n items={this.items}\n itemProps={this.itemProps}\n containerProps={this.props.containerProps}\n />\n );\n }\n}\n\nList.propTypes = ListPropTypes.schema;\nList.defaultProps = ListPropTypes.default;\n","import React, { Component } from 'react';\nimport memoize from 'lodash/memoize';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport { convertAnswerToArray } from '../../utils';\nimport { SubmissionWidgetPropsTypes } from '../../constants/schemas';\n\nconst memoizedJSONParse = memoize(safeJSONParse);\n\n// TO DO: needs renaming\n\nexport default AnswerComponent => {\n /**\n * This component is used for Submission Widgets (Checkbox and Tags),\n * Custom Added Columns (Single Select and Multiple Select),\n * and native fields with extended options via apps (eg. Tables)\n * */\n class ExtendedAnswerComponent extends Component {\n get optionsExtender() {\n const { optionsExtender = '{}' } = this.props;\n return typeof optionsExtender === 'object' ? optionsExtender : memoizedJSONParse(optionsExtender, {});\n }\n\n get isOptionExtendedField() {\n return !!Object.keys(this.optionsExtender).length;\n }\n\n get isSubmissionWidget() {\n const {\n submissionWidget = 'No',\n options_array: optionsArray = '{}',\n sheetField = 'No'\n } = this.props;\n\n return (\n submissionWidget === 'Yes'\n || (optionsArray !== '{}' && sheetField === 'Yes')\n || this.isOptionExtendedField\n );\n }\n\n get answerArray() {\n return convertAnswerToArray(this.props.answer);\n }\n\n get optionsArray() {\n return memoizedJSONParse(this.props.options_array, {});\n }\n\n get submissionWidgetAnswer() {\n if (this.isOptionExtendedField) {\n return this.answerArray.map(answer => {\n if (this.optionsExtender[answer.replace(/{|}/g, '')]) {\n return this.optionsExtender[answer.replace(/{|}/g, '')];\n }\n return { value: answer };\n });\n }\n const otherOption = Object.values(this.optionsArray).filter(option => option.other);\n\n const answers = this.answerArray\n .map(key => key.match(/\\{(.*?)\\}/) || [])\n .map(([/* unused var */, optionKey]) => this.optionsArray[optionKey] || null)\n .filter(option => option);\n\n return [...answers, ...otherOption];\n }\n\n get submissionWidgetProps() {\n return {\n optionsArray: this.optionsArray,\n isSubmissionWidget: this.isSubmissionWidget,\n submissionWidgetAnswer: this.submissionWidgetAnswer\n };\n }\n\n get colorCorrectedAnswerProps() {\n if (!this.isOptionExtendedField) {\n return this.props.answerProps;\n }\n\n return this.submissionWidgetAnswer.map(({ key, color }, index) => {\n if (key && color) {\n return {\n ...this.props.answerProps[index],\n backgroundColor: color\n };\n }\n return this.props.answerProps[index];\n });\n }\n\n render() {\n return (\n <AnswerComponent\n {...(this.isSubmissionWidget ? this.submissionWidgetProps : {})}\n answerArray={this.answerArray}\n {...this.props}\n answerProps={this.colorCorrectedAnswerProps}\n />\n );\n }\n }\n\n ExtendedAnswerComponent.propTypes = SubmissionWidgetPropsTypes.schema;\n ExtendedAnswerComponent.defaultProps = SubmissionWidgetPropsTypes.default;\n\n return ExtendedAnswerComponent;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\n\nimport List from '../../components/List';\nimport { LIST_TYPES } from '../../constants';\nimport Baseline from '../../components/Baseline';\nimport withSubmissionWidgetProps from '../../hocs/SubmissionWidget';\nimport { convertAnswerToArray } from '../../utils';\n\nconst Assignee = ({\n text,\n answer,\n showAll,\n labelProps,\n answerProps,\n answerWrapperProps,\n containerProps,\n baselineProps,\n direction,\n optionsArray\n}) => {\n const answerArray = !isEmpty(answer) ? convertAnswerToArray(answer) : [];\n const answerTupleList = answerArray.map(txt => {\n const answerArr = txt.replace('{', '').replace('}', '');\n if (optionsArray[answerArr]?.value) {\n const { text: assignee, link: avatarUrl, subText: email } = optionsArray[answerArr]?.value;\n\n return [assignee, email, avatarUrl];\n }\n\n return [answerArr, null];\n });\n const allItems = Object.keys(optionsArray).map(key => {\n const { text: assignee, link: avatarUrl, subText: email } = optionsArray[key].value;\n return [assignee, email, avatarUrl];\n });\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n type={LIST_TYPES.ASSIGNEE}\n showAll={showAll}\n items={answerTupleList}\n allItems={allItems}\n itemProps={answerProps}\n containerProps={containerProps}\n />\n </Baseline>\n );\n};\n\nAssignee.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.arrayOf(PropTypes.string),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.array\n ]),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n showAll: PropTypes.bool,\n options: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string\n })),\n PropTypes.string\n ]),\n direction: PropTypes.string,\n optionsArray: PropTypes.shape({})\n};\n\nAssignee.defaultProps = {\n text: '',\n answer: [],\n labelProps: {},\n answerProps: [],\n answerWrapperProps: {},\n baselineProps: {},\n containerStyle: {},\n containerProps: {},\n showAll: false,\n options: [],\n direction: 'column',\n optionsArray: {}\n};\n\nexport default withSubmissionWidgetProps(Assignee);\n","import React from 'react';\n\nconst Touchable = props => <div {...props} />;\n\nexport default Touchable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport View from '../../components/View';\nimport Baseline from '../../components/Baseline';\nimport Touchable from '../../components/Touchable';\nimport { isEmpty } from '../../utils';\nimport withSubmissionWidgetProps from '../../hocs/SubmissionWidget';\nimport List from '../../components/List';\nimport { ListTypes } from '../../constants/schemas';\n\nconst defaultItemProp = { className: 'multipleChoice' };\n\nconst Checkbox = ({\n text,\n listType,\n answerArray,\n labelProps,\n answerProps,\n answerWrapperProps,\n options,\n handleChange,\n editMode,\n toggleProps,\n baselineProps,\n isSubmissionWidget,\n submissionWidgetAnswer,\n containerProps,\n optionsArray,\n showAll,\n direction\n}) => {\n const allOptions = !isEmpty(options) ? options.toString().split('|').map(option => option.trim()) : [];\n const optionsLength = allOptions.length;\n const items = isSubmissionWidget ? submissionWidgetAnswer.map(({ value }) => value) : answerArray;\n const baseItemProps = isSubmissionWidget ? submissionWidgetAnswer.map(({ color }) => ({ backgroundColor: color })) : [...Array(items.length)];\n const allItems = isSubmissionWidget\n ? Object.values(optionsArray).map(({ value }) => value)\n : allOptions.concat(items.filter(item => allOptions.indexOf(item.trim()) === -1)); // For 'other' option type non static data\n\n // Change spread of props based on show all\n const itemProps = !showAll\n ? baseItemProps.map((prop, index) => ({\n ...defaultItemProp,\n ...(prop || {}),\n ...(answerProps[index] || answerProps || {})\n }))\n : allItems.map(item => {\n const itemIndex = items.indexOf(item);\n return {\n ...defaultItemProp,\n ...(baseItemProps[itemIndex] || {}),\n ...(answerProps[itemIndex] || answerProps || {})\n };\n });\n\n /**\n * TODO: Touchable should be moved from this static field\n *\n * As the intention of this component only to show submission data in all projects, we should avoid writing edit mode or project specific structures into it.\n */\n const curatedItems = !editMode ? items : items.map(item => [item, <Touchable className=\"remove-choice\" data-option={item} onClick={() => handleChange(item)} />]);\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n type={listType}\n showAll={showAll}\n allItems={allItems}\n items={curatedItems}\n itemProps={itemProps}\n containerProps={containerProps}\n />\n {/* TODO: This one should be moved to edit component as it is specific to edit mode only */}\n {editMode && options.length > 0 && optionsLength !== answerArray.length && <View className=\"add-new notClosedClickOutside\" {...toggleProps}>Add</View>}\n </Baseline>\n );\n};\n\nCheckbox.propTypes = {\n submissionWidgetAnswer: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string,\n key: PropTypes.string,\n color: PropTypes.string\n })),\n answerArray: PropTypes.arrayOf(PropTypes.node),\n isSubmissionWidget: PropTypes.bool,\n options: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.arrayOf(PropTypes.shape({}))\n ]),\n text: PropTypes.string,\n optionsArray: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.shape({})),\n PropTypes.shape({})\n ]),\n handleChange: PropTypes.func,\n editMode: PropTypes.bool,\n toggleProps: PropTypes.shape([\n PropTypes.object\n ]),\n baselineProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n listType: ListTypes.schema,\n showAll: PropTypes.bool,\n direction: PropTypes.string\n};\n\nCheckbox.defaultProps = {\n submissionWidgetAnswer: [],\n isSubmissionWidget: false,\n answerWrapperProps: {},\n answerArray: [],\n options: '',\n baselineProps: {},\n labelProps: {},\n text: '',\n answerProps: {},\n optionsArray: [],\n handleChange: () => {},\n editMode: false,\n toggleProps: {},\n containerProps: {},\n listType: ListTypes.default,\n showAll: false,\n direction: 'column'\n};\n\nexport default withSubmissionWidgetProps(Checkbox);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { getDateTimeText } from '../../utils';\nimport { LocaleTypes } from '../../constants/schemas';\n\nclass Datetime extends React.Component {\n render() {\n const {\n text,\n answer,\n locale,\n labelProps,\n dateFormat,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n const dateTimeText = getDateTimeText({\n answer, hideTime: false, dateFormat, locale\n });\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n direction={direction}\n answerWrapperProps={answerWrapperProps}\n {...baselineProps}\n >\n <Text {...answerProps}>{dateTimeText}</Text>\n </Baseline>\n );\n }\n}\n\nDatetime.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n min: PropTypes.string,\n ampm: PropTypes.string\n })\n ]),\n labelProps: PropTypes.shape({}),\n dateFormat: PropTypes.string,\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n locale: LocaleTypes.schema,\n direction: PropTypes.string\n};\n\nDatetime.defaultProps = {\n text: '',\n answer: {\n year: '',\n month: '',\n day: '',\n hour: '',\n min: '',\n ampm: ''\n },\n labelProps: {},\n dateFormat: 'MMM D, YYYY HH:mm',\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n locale: LocaleTypes.default,\n direction: 'column'\n};\n\nexport default Datetime;\n","/* eslint-disable max-lines */\nexport const CountryList = [\n 'United States',\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'American Samoa',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'The Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'Brunei',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Canada',\n 'Cape Verde',\n 'Cayman Islands',\n 'Central African Republic',\n 'Chad',\n 'Chile',\n 'China',\n 'Christmas Island',\n 'Cocos (Keeling) Islands',\n 'Colombia',\n 'Comoros',\n 'Congo',\n 'Cook Islands',\n 'Costa Rica',\n 'Cote d\\'Ivoire',\n 'Croatia',\n 'Cuba',\n 'Cyprus',\n 'Czech Republic',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Eritrea',\n 'Estonia',\n 'Ethiopia',\n 'Falkland Islands',\n 'Faroe Islands',\n 'Fiji',\n 'Finland',\n 'France',\n 'French Polynesia',\n 'Gabon',\n 'The Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guadeloupe',\n 'Guam',\n 'Guatemala',\n 'Guernsey',\n 'Guinea',\n 'Guinea-Bissau',\n 'Guyana',\n 'Haiti',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jersey',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kiribati',\n 'North Korea',\n 'South Korea',\n 'Kosovo',\n 'Kuwait',\n 'Kyrgyzstan',\n 'Laos',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macau',\n 'Macedonia',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Marshall Islands',\n 'Martinique',\n 'Mauritania',\n 'Mauritius',\n 'Mayotte',\n 'Mexico',\n 'Micronesia',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Myanmar',\n 'Nagorno-Karabakh',\n 'Namibia',\n 'Nauru',\n 'Nepal',\n 'Netherlands',\n 'Netherlands Antilles',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Niue',\n 'Norfolk Island',\n 'Turkish Republic of Northern Cyprus',\n 'Northern Mariana',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palau',\n 'Palestine',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Pitcairn Islands',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Barthelemy',\n 'Saint Helena',\n 'Saint Kitts and Nevis',\n 'Saint Lucia',\n 'Saint Martin',\n 'Saint Pierre and Miquelon',\n 'Saint Vincent and the Grenadines',\n 'Samoa',\n 'San Marino',\n 'Sao Tome and Principe',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'Solomon Islands',\n 'Somalia',\n 'Somaliland',\n 'South Africa',\n 'South Ossetia',\n 'South Sudan',\n 'Spain',\n 'Sri Lanka',\n 'Sudan',\n 'Suriname',\n 'Svalbard',\n 'Swaziland',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Taiwan',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n 'Timor-Leste',\n 'Togo',\n 'Tokelau',\n 'Tonga',\n 'Transnistria Pridnestrovie',\n 'Trinidad and Tobago',\n 'Tristan da Cunha',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Turks and Caicos Islands',\n 'Tuvalu',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'Uruguay',\n 'Uzbekistan',\n 'Vanuatu',\n 'Vatican City',\n 'Venezuela',\n 'Vietnam',\n 'British Virgin Islands',\n 'Isle of Man',\n 'US Virgin Islands',\n 'Wallis and Futuna',\n 'Western Sahara',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe'\n];\n\nexport const CanadianProvinces = [\n 'Alberta',\n 'British Columbia',\n 'Manitoba',\n 'New Brunswick',\n 'Newfoundland',\n 'Northwest Territories',\n 'Nova Scotia',\n 'Nunavut',\n 'Ontario',\n 'Prince Edward Island',\n 'Quebec',\n 'Saskatchewan',\n 'Yukon'\n];\n\nexport const GenderList = [\n 'Male',\n 'Female',\n 'N/A'\n];\n\nexport const USStates = [\n 'Alabama',\n 'Alaska',\n 'Arizona',\n 'Arkansas',\n 'California',\n 'Colorado',\n 'Connecticut',\n 'Delaware',\n 'District of Columbia',\n 'Florida',\n 'Georgia',\n 'Hawaii',\n 'Idaho',\n 'Illinois',\n 'Indiana',\n 'Iowa',\n 'Kansas',\n 'Kentucky',\n 'Louisiana',\n 'Maine',\n 'Maryland',\n 'Massachusetts',\n 'Michigan',\n 'Minnesota',\n 'Mississippi',\n 'Missouri',\n 'Montana',\n 'Nebraska',\n 'Nevada',\n 'New Hampshire',\n 'New Jersey',\n 'New Mexico',\n 'New York',\n 'North Carolina',\n 'North Dakota',\n 'Ohio',\n 'Oklahoma',\n 'Oregon',\n 'Pennsylvania',\n 'Puerto Rico',\n 'Rhode Island',\n 'South Carolina',\n 'South Dakota',\n 'Tennessee',\n 'Texas',\n 'Utah',\n 'Vermont',\n 'Virgin Islands',\n 'Virginia',\n 'Washington',\n 'West Virginia',\n 'Wisconsin',\n 'Wyoming'\n];\n\nexport const USStatesAbbr = [\n 'AL',\n 'AK',\n 'AR',\n 'AZ',\n 'CA',\n 'CO',\n 'CT',\n 'DC',\n 'DE',\n 'FL',\n 'GA',\n 'HI',\n 'ID',\n 'IL',\n 'IN',\n 'IA',\n 'KS',\n 'KY',\n 'LA',\n 'ME',\n 'MD',\n 'MA',\n 'MI',\n 'MN',\n 'MS',\n 'MO',\n 'MT',\n 'NE',\n 'NV',\n 'NH',\n 'NJ',\n 'NM',\n 'NY',\n 'NC',\n 'ND',\n 'OH',\n 'OK',\n 'OR',\n 'PA',\n 'RI',\n 'SC',\n 'SD',\n 'TN',\n 'TX',\n 'UT',\n 'VT',\n 'VA',\n 'WA',\n 'WV',\n 'WI',\n 'WY'\n];\n\nexport const LocationCountries = [\n 'Canada',\n 'United States',\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'American Samoa',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antarctica',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia/Herzegowina',\n 'Botswana',\n 'Bouvet Island',\n 'Brazil',\n 'British Ind. Ocean',\n 'Brunei Darussalam',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Cape Verde',\n 'Cayman Islands',\n 'Central African Rep.',\n 'Chad',\n 'Chile',\n 'China',\n 'Christmas Island',\n 'Cocoa (Keeling) Is.',\n 'Colombia',\n 'Comoros',\n 'Congo',\n 'Cook Islands',\n 'Costa Rica',\n 'Cote Divoire',\n 'Croatia',\n 'Cuba',\n 'Cyprus',\n 'Czech Republic',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'East Timor',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Eritrea',\n 'Estonia',\n 'Ethiopia',\n 'Falkland Islands',\n 'Faroe Islands',\n 'Fiji',\n 'Finland',\n 'France',\n 'Gabon',\n 'Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guadeloupe',\n 'Guam',\n 'Guatemala',\n 'Guinea',\n 'Guinea-Bissau',\n 'Guyana',\n 'Haiti',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kiribati',\n 'Korea',\n 'Kuwait',\n 'Kyrgyzstan',\n 'Lao',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macau',\n 'Macedonia',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Marshall Islands',\n 'Martinique',\n 'Mauritania',\n 'Mauritius',\n 'Mayotte',\n 'Mexico',\n 'Micronesia',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Myanmar',\n 'Namibia',\n 'Nauru',\n 'Nepal',\n 'Netherlands',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Niue',\n 'Norfolk Island',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palau',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Pitcairn',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Reunion',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Lucia',\n 'Samoa',\n 'San Marino',\n 'Saudi Arabia',\n 'Senegal',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Solomon Islands',\n 'Somalia',\n 'South Africa',\n 'South Sudan',\n 'Spain',\n 'Sri Lanka',\n 'St. Helena',\n 'Sudan',\n 'Suriname',\n 'Swaziland',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Taiwan',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n 'Togo',\n 'Tokelau',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Tuvalu',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'Uruguay',\n 'Uzbekistan',\n 'Vanuatu',\n 'Vatican',\n 'Venezuela',\n 'Viet Nam',\n 'Virgin Islands',\n 'Western Sahara',\n 'Yeman',\n 'Yugoslavia',\n 'Zaire',\n 'Zambia'\n];\n\nexport const Days = [\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n 'Sunday'\n];\n\nexport const Months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n];\nexport const TimeZones = [\n '[[Africa]]',\n 'Abidjan (GMT)',\n 'Accra (GMT)',\n 'Addis Ababa (GMT+03:00)',\n 'Algiers (GMT+01:00)',\n 'Asmara (GMT+03:00)',\n 'Bamako (GMT)',\n 'Bangui (GMT+01:00)',\n 'Banjul (GMT)',\n 'Bissau (GMT)',\n 'Blantyre (GMT+02:00)',\n 'Brazzaville (GMT+01:00)',\n 'Bujumbura (GMT+02:00)',\n 'Cairo (GMT+03:00)',\n 'Casablanca (GMT)',\n 'Ceuta (GMT+02:00)',\n 'Conakry (GMT)',\n 'Dakar (GMT)',\n 'Dar es Salaam (GMT+03:00)',\n 'Djibouti (GMT+03:00)',\n 'Douala (GMT+01:00)',\n 'El Aaiun (GMT)',\n 'Freetown (GMT)',\n 'Gaborone (GMT+02:00)',\n 'Harare (GMT+02:00)',\n 'Johannesburg (GMT+02:00)',\n 'Kampala (GMT+03:00)',\n 'Khartoum (GMT+03:00)',\n 'Kigali (GMT+02:00)',\n 'Kinshasa (GMT+01:00)',\n 'Lagos (GMT+01:00)',\n 'Libreville (GMT+01:00)',\n 'Lome (GMT)',\n 'Luanda (GMT+01:00)',\n 'Lubumbashi (GMT+02:00)',\n 'Lusaka (GMT+02:00)',\n 'Malabo (GMT+01:00)',\n 'Maputo (GMT+02:00)',\n 'Maseru (GMT+02:00)',\n 'Mbabane (GMT+02:00)',\n 'Mogadishu (GMT+03:00)',\n 'Monrovia (GMT)',\n 'Nairobi (GMT+03:00)',\n 'Ndjamena (GMT+01:00)',\n 'Niamey (GMT+01:00)',\n 'Nouakchott (GMT)',\n 'Ouagadougou (GMT)',\n 'Porto-Novo (GMT+01:00)',\n 'Sao Tome (GMT)',\n 'Tripoli (GMT+02:00)',\n 'Tunis (GMT+02:00)',\n 'Windhoek (GMT+01:00)',\n '[[America]]',\n 'Adak (GMT-09:00)',\n 'Anchorage (GMT-08:00)',\n 'Anguilla (GMT-04:00)',\n 'Antigua (GMT-04:00)',\n 'Araguaina (GMT-03:00)',\n 'Buenos Aires, Argentina (GMT-03:00)',\n 'Catamarca, Argentina (GMT-03:00)',\n 'Cordoba, Argentina (GMT-03:00)',\n 'Jujuy, Argentina (GMT-03:00)',\n 'La Rioja, Argentina (GMT-03:00)',\n 'Mendoza, Argentina (GMT-03:00)',\n 'Rio Gallegos, Argentina (GMT-03:00)',\n 'Salta, Argentina (GMT-03:00)',\n 'San Juan, Argentina (GMT-03:00)',\n 'San Luis, Argentina (GMT-04:00)',\n 'Tucuman, Argentina (GMT-03:00)',\n 'Ushuaia, Argentina (GMT-03:00)',\n 'Aruba (GMT-04:00)',\n 'Asuncion (GMT-04:00)',\n 'Atikokan (GMT-05:00)',\n 'Bahia (GMT-03:00)',\n 'Barbados (GMT-04:00)',\n 'Belem (GMT-03:00)',\n 'Belize (GMT-06:00)',\n 'Blanc-Sablon (GMT-04:00)',\n 'Boa Vista (GMT-04:00)',\n 'Bogota (GMT-05:00)',\n 'Boise (GMT-06:00)',\n 'Cambridge Bay (GMT-06:00)',\n 'Campo Grande (GMT-04:00)',\n 'Cancun (GMT-05:00)',\n 'Caracas (GMT-04:30)',\n 'Cayenne (GMT-03:00)',\n 'Cayman (GMT-05:00)',\n 'Chicago (GMT-05:00)',\n 'Chihuahua (GMT-06:00)',\n 'Costa Rica (GMT-06:00)',\n 'Cuiaba (GMT-04:00)',\n 'Curacao (GMT-04:00)',\n 'Danmarkshavn (GMT)',\n 'Dawson (GMT-07:00)',\n 'Dawson Creek (GMT-07:00)',\n 'Denver (GMT-06:00)',\n 'Detroit (GMT-04:00)',\n 'Dominica (GMT-04:00)',\n 'Edmonton (GMT-06:00)',\n 'Eirunepe (GMT-04:00)',\n 'El Salvador (GMT-06:00)',\n 'Fortaleza (GMT-03:00)',\n 'Glace Bay (GMT-03:00)',\n 'Godthab (GMT-02:00)',\n 'Goose Bay (GMT-03:00)',\n 'Grand Turk (GMT-04:00)',\n 'Grenada (GMT-04:00)',\n 'Guadeloupe (GMT-04:00)',\n 'Guatemala (GMT-06:00)',\n 'Guayaquil (GMT-05:00)',\n 'Guyana (GMT-04:00)',\n 'Halifax (GMT-03:00)',\n 'Havana (GMT-04:00)',\n 'Hermosillo (GMT-07:00)',\n 'Indianapolis, Indiana (GMT-04:00)',\n 'Knox, Indiana (GMT-05:00)',\n 'Marengo, Indiana (GMT-04:00)',\n 'Petersburg, Indiana (GMT-04:00)',\n 'Tell City, Indiana (GMT-05:00)',\n 'Vevay, Indiana (GMT-04:00)',\n 'Vincennes, Indiana (GMT-04:00)',\n 'Winamac, Indiana (GMT-04:00)',\n 'Inuvik (GMT-06:00)',\n 'Iqaluit (GMT-04:00)',\n 'Jamaica (GMT-05:00)',\n 'Juneau (GMT-08:00)',\n 'Louisville, Kentucky (GMT-04:00)',\n 'Monticello, Kentucky (GMT-04:00)',\n 'La Paz (GMT-04:00)',\n 'Lima (GMT-05:00)',\n 'Los Angeles (GMT-07:00)',\n 'Maceio (GMT-03:00)',\n 'Managua (GMT-06:00)',\n 'Manaus (GMT-04:00)',\n 'Marigot (GMT-04:00)',\n 'Martinique (GMT-04:00)',\n 'Mazatlan (GMT-06:00)',\n 'Menominee (GMT-05:00)',\n 'Merida (GMT-05:00)',\n 'Mexico City (GMT-05:00)',\n 'Miquelon (GMT-02:00)',\n 'Moncton (GMT-03:00)',\n 'Monterrey (GMT-05:00)',\n 'Montevideo (GMT-03:00)',\n 'Montreal (GMT-04:00)',\n 'Montserrat (GMT-04:00)',\n 'Nassau (GMT-04:00)',\n 'New York (GMT-04:00)',\n 'Nipigon (GMT-04:00)',\n 'Nome (GMT-08:00)',\n 'Noronha (GMT-02:00)',\n 'Center, North Dakota (GMT-05:00)',\n 'New Salem, North Dakota (GMT-05:00)',\n 'Panama (GMT-05:00)',\n 'Pangnirtung (GMT-04:00)',\n 'Paramaribo (GMT-03:00)',\n 'Phoenix (GMT-07:00)',\n 'Port-au-Prince (GMT-05:00)',\n 'Port of Spain (GMT-04:00)',\n 'Porto Velho (GMT-04:00)',\n 'Puerto Rico (GMT-04:00)',\n 'Rainy River (GMT-05:00)',\n 'Rankin Inlet (GMT-05:00)',\n 'Recife (GMT-03:00)',\n 'Regina (GMT-06:00)',\n 'Resolute (GMT-05:00)',\n 'Rio Branco (GMT-04:00)',\n 'Santarem (GMT-03:00)',\n 'Santiago (GMT-04:00)',\n 'Santo Domingo (GMT-04:00)',\n 'Sao Paulo (GMT-03:00)',\n 'Scoresbysund (GMT)',\n 'Shiprock (GMT-06:00)',\n 'St Barthelemy (GMT-04:00)',\n 'St Johns (GMT-02:30)',\n 'St Kitts (GMT-04:00)',\n 'St Lucia (GMT-04:00)',\n 'St Thomas (GMT-04:00)',\n 'St Vincent (GMT-04:00)',\n 'Swift Current (GMT-06:00)',\n 'Tegucigalpa (GMT-06:00)',\n 'Thule (GMT-03:00)',\n 'Thunder Bay (GMT-04:00)',\n 'Tijuana (GMT-07:00)',\n 'Toronto (GMT-04:00)',\n 'Tortola (GMT-04:00)',\n 'Vancouver (GMT-07:00)',\n 'Whitehorse (GMT-07:00)',\n 'Winnipeg (GMT-05:00)',\n 'Yakutat (GMT-08:00)',\n 'Yellowknife (GMT-06:00)',\n '[[Antarctica]]',\n 'Casey (GMT+11:00)',\n 'Davis (GMT+05:00)',\n 'DumontDUrville (GMT+10:00)',\n 'Mawson (GMT+05:00)',\n 'McMurdo (GMT+12:00)',\n 'Palmer (GMT-04:00)',\n 'Rothera (GMT-03:00)',\n 'South Pole (GMT+12:00)',\n 'Syowa (GMT+03:00)',\n 'Vostok (GMT+06:00)',\n '[[Arctic]]',\n 'Longyearbyen (GMT+02:00)',\n '[[Asia]]',\n 'Aden (GMT+03:00)',\n 'Almaty (GMT+06:00)',\n 'Amman (GMT+03:00)',\n 'Anadyr (GMT+13:00)',\n 'Aqtau (GMT+05:00)',\n 'Aqtobe (GMT+05:00)',\n 'Ashgabat (GMT+05:00)',\n 'Baghdad (GMT+03:00)',\n 'Bahrain (GMT+03:00)',\n 'Baku (GMT+05:00)',\n 'Bangkok (GMT+07:00)',\n 'Beirut (GMT+03:00)',\n 'Bishkek (GMT+06:00)',\n 'Brunei (GMT+08:00)',\n 'Choibalsan (GMT+08:00)',\n 'Chongqing (GMT+08:00)',\n 'Colombo (GMT+05:30)',\n 'Damascus (GMT+03:00)',\n 'Dhaka (GMT+07:00)',\n 'Dili (GMT+09:00)',\n 'Dubai (GMT+04:00)',\n 'Dushanbe (GMT+05:00)',\n 'Gaza (GMT+03:00)',\n 'Harbin (GMT+08:00)',\n 'Ho Chi Minh (GMT+07:00)',\n 'Hong Kong (GMT+08:00)',\n 'Hovd (GMT+07:00)',\n 'Irkutsk (GMT+09:00)',\n 'Jakarta (GMT+07:00)',\n 'Jayapura (GMT+09:00)',\n 'Jerusalem (GMT+03:00)',\n 'Kabul (GMT+04:30)',\n 'Kamchatka (GMT+13:00)',\n 'Karachi (GMT+06:00)',\n 'Kashgar (GMT+08:00)',\n 'Kathmandu (GMT+05:45)',\n 'Kolkata (GMT+05:30)',\n 'Krasnoyarsk (GMT+08:00)',\n 'Kuala Lumpur (GMT+08:00)',\n 'Kuching (GMT+08:00)',\n 'Kuwait (GMT+03:00)',\n 'Macau (GMT+08:00)',\n 'Magadan (GMT+12:00)',\n 'Makassar (GMT+08:00)',\n 'Manila (GMT+08:00)',\n 'Muscat (GMT+04:00)',\n 'Nicosia (GMT+03:00)',\n 'Novokuznetsk (GMT+07:00)',\n 'Novosibirsk (GMT+07:00)',\n 'Omsk (GMT+07:00)',\n 'Oral (GMT+05:00)',\n 'Phnom Penh (GMT+07:00)',\n 'Pontianak (GMT+07:00)',\n 'Pyongyang (GMT+09:00)',\n 'Qatar (GMT+03:00)',\n 'Qyzylorda (GMT+06:00)',\n 'Rangoon (GMT+06:30)',\n 'Riyadh (GMT+03:00)',\n 'Sakhalin (GMT+11:00)',\n 'Samarkand (GMT+05:00)',\n 'Seoul (GMT+09:00)',\n 'Shanghai (GMT+08:00)',\n 'Singapore (GMT+08:00)',\n 'Taipei (GMT+08:00)',\n 'Tashkent (GMT+05:00)',\n 'Tbilisi (GMT+04:00)',\n 'Tehran (GMT+04:30)',\n 'Thimphu (GMT+06:00)',\n 'Tokyo (GMT+09:00)',\n 'Ulaanbaatar (GMT+08:00)',\n 'Urumqi (GMT+08:00)',\n 'Vientiane (GMT+07:00)',\n 'Vladivostok (GMT+11:00)',\n 'Yakutsk (GMT+10:00)',\n 'Yekaterinburg (GMT+06:00)',\n 'Yerevan (GMT+05:00)',\n '[[Atlantic]]',\n 'Azores (GMT)',\n 'Bermuda (GMT-03:00)',\n 'Canary (GMT+01:00)',\n 'Cape Verde (GMT-01:00)',\n 'Faroe (GMT+01:00)',\n 'Madeira (GMT+01:00)',\n 'Reykjavik (GMT)',\n 'South Georgia (GMT-02:00)',\n 'St Helena (GMT)',\n 'Stanley (GMT-04:00)',\n '[[Australia]]',\n 'Adelaide (GMT+09:30)',\n 'Brisbane (GMT+10:00)',\n 'Broken Hill (GMT+09:30)',\n 'Currie (GMT+10:00)',\n 'Darwin (GMT+09:30)',\n 'Eucla (GMT+08:45)',\n 'Hobart (GMT+10:00)',\n 'Lindeman (GMT+10:00)',\n 'Lord Howe (GMT+10:30)',\n 'Melbourne (GMT+10:00)',\n 'Perth (GMT+08:00)',\n 'Sydney (GMT+10:00)',\n '[[Europe]]',\n 'Amsterdam (GMT+02:00)',\n 'Andorra (GMT+02:00)',\n 'Athens (GMT+03:00)',\n 'Belgrade (GMT+02:00)',\n 'Berlin (GMT+02:00)',\n 'Bratislava (GMT+02:00)',\n 'Brussels (GMT+02:00)',\n 'Bucharest (GMT+03:00)',\n 'Budapest (GMT+02:00)',\n 'Chisinau (GMT+03:00)',\n 'Copenhagen (GMT+02:00)',\n 'Dublin (GMT+01:00)',\n 'Gibraltar (GMT+02:00)',\n 'Guernsey (GMT+01:00)',\n 'Helsinki (GMT+03:00)',\n 'Isle of Man (GMT+01:00)',\n 'Istanbul (GMT+03:00)',\n 'Jersey (GMT+01:00)',\n 'Kaliningrad (GMT+03:00)',\n 'Kiev (GMT+03:00)',\n 'Lisbon (GMT+01:00)',\n 'Ljubljana (GMT+02:00)',\n 'London (GMT+01:00)',\n 'Luxembourg (GMT+02:00)',\n 'Madrid (GMT+02:00)',\n 'Malta (GMT+02:00)',\n 'Mariehamn (GMT+03:00)',\n 'Minsk (GMT+03:00)',\n 'Monaco (GMT+02:00)',\n 'Moscow (GMT+04:00)',\n 'Oslo (GMT+02:00)',\n 'Paris (GMT+02:00)',\n 'Podgorica (GMT+02:00)',\n 'Prague (GMT+02:00)',\n 'Riga (GMT+03:00)',\n 'Rome (GMT+02:00)',\n 'Samara (GMT+05:00)',\n 'San Marino (GMT+02:00)',\n 'Sarajevo (GMT+02:00)',\n 'Simferopol (GMT+03:00)',\n 'Skopje (GMT+02:00)',\n 'Sofia (GMT+03:00)',\n 'Stockholm (GMT+02:00)',\n 'Tallinn (GMT+03:00)',\n 'Tirane (GMT+02:00)',\n 'Uzhgorod (GMT+03:00)',\n 'Vaduz (GMT+02:00)',\n 'Vatican (GMT+02:00)',\n 'Vienna (GMT+02:00)',\n 'Vilnius (GMT+03:00)',\n 'Volgograd (GMT+04:00)',\n 'Warsaw (GMT+02:00)',\n 'Zagreb (GMT+02:00)',\n 'Zaporozhye (GMT+03:00)',\n 'Zurich (GMT+02:00)',\n '[[Indian]]',\n 'Antananarivo (GMT+03:00)',\n 'Chagos (GMT+06:00)',\n 'Christmas (GMT+07:00)',\n 'Cocos (GMT+06:30)',\n 'Comoro (GMT+03:00)',\n 'Kerguelen (GMT+05:00)',\n 'Mahe (GMT+04:00)',\n 'Maldives (GMT+05:00)',\n 'Mauritius (GMT+04:00)',\n 'Mayotte (GMT+03:00)',\n 'Reunion (GMT+04:00)',\n '[[Pacific]]',\n 'Apia (GMT-11:00)',\n 'Auckland (GMT+12:00)',\n 'Chatham (GMT+12:45)',\n 'Easter (GMT-06:00)',\n 'Efate (GMT+11:00)',\n 'Enderbury (GMT+13:00)',\n 'Fakaofo (GMT-10:00)',\n 'Fiji (GMT+12:00)',\n 'Funafuti (GMT+12:00)',\n 'Galapagos (GMT-06:00)',\n 'Gambier (GMT-09:00)',\n 'Guadalcanal (GMT+11:00)',\n 'Guam (GMT+10:00)',\n 'Honolulu (GMT-10:00)',\n 'Johnston (GMT-10:00)',\n 'Kiritimati (GMT+14:00)',\n 'Kosrae (GMT+11:00)',\n 'Kwajalein (GMT+12:00)',\n 'Majuro (GMT+12:00)',\n 'Marquesas (GMT-09:30)',\n 'Midway (GMT-11:00)',\n 'Nauru (GMT+12:00)',\n 'Niue (GMT-11:00)',\n 'Norfolk (GMT+11:30)',\n 'Noumea (GMT+11:00)',\n 'Pago Pago (GMT-11:00)',\n 'Palau (GMT+09:00)',\n 'Pitcairn (GMT-08:00)',\n 'Ponape (GMT+11:00)',\n 'Port Moresby (GMT+10:00)',\n 'Rarotonga (GMT-10:00)',\n 'Saipan (GMT+10:00)',\n 'Tahiti (GMT-10:00)',\n 'Tarawa (GMT+12:00)',\n 'Tongatapu (GMT+13:00)',\n 'Truk (GMT+10:00)',\n 'Wake (GMT+12:00)',\n 'Wallis (GMT+12:00)'\n];\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSubmissionWidgetProps from '../../hocs/SubmissionWidget';\nimport List from '../../components/List';\nimport Baseline from '../../components/Baseline';\nimport Touchable from '../../components/Touchable';\nimport { ListTypes } from '../../constants/schemas';\nimport * as Specials from '../../constants/specials';\n\nimport { isEmpty, convertAnswerToArray } from '../../utils';\n\nconst Dropdown = props => {\n const {\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n multipleSelections,\n handleChange,\n editMode,\n isToggleActive,\n toggleProps,\n options,\n type,\n containerProps,\n showAll,\n special,\n listType,\n baselineProps,\n direction,\n isSubmissionWidget,\n submissionWidgetAnswer\n } = props;\n\n let items = convertAnswerToArray(answer);\n\n if (isSubmissionWidget) {\n items = submissionWidgetAnswer.map(({ value }) => value);\n }\n\n const isPredefined = special && special !== 'None';\n const allOptions = !isEmpty(options) ? options.split('|') : [];\n const allItems = isPredefined ? Specials[special.replace(/\\s/g, '')] : allOptions;\n\n const isRenderItsToggle = () => {\n if (editMode && type === 'control_dropdown' && !isEmpty(answer) && allItems.length > 0) {\n if (multipleSelections === 'Yes') {\n return (allItems !== items.length && <div className=\"add-new\" {...toggleProps}>Add</div>);\n }\n return (<div className={`${isToggleActive ? 'toggle-active' : 'toggle-passive'}`} {...toggleProps} />);\n }\n return null;\n };\n\n const curatedItems = editMode && multipleSelections === 'Yes'\n ? items.map(item => [item, <Touchable key={item} className=\"remove-choice\" onClick={() => handleChange(item)} />])\n : items;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n direction={direction}\n answerWrapperProps={answerWrapperProps}\n {...baselineProps}\n >\n <List\n type={listType}\n showAll={showAll}\n items={curatedItems}\n allItems={allItems}\n itemProps={answerProps}\n containerProps={containerProps}\n />\n {isRenderItsToggle()}\n </Baseline>\n );\n};\n\nDropdown.propTypes = {\n options: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.arrayOf(PropTypes.shape({}))\n ]),\n text: PropTypes.string,\n multipleSelections: PropTypes.string,\n handleChange: PropTypes.func,\n editMode: PropTypes.bool,\n isToggleActive: PropTypes.bool,\n toggleProps: PropTypes.shape([\n PropTypes.object\n ]),\n type: PropTypes.string,\n special: PropTypes.string,\n containerProps: PropTypes.shape({}),\n showAll: PropTypes.bool,\n listType: ListTypes.schema,\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string,\n isSubmissionWidget: PropTypes.bool,\n submissionWidgetAnswer: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string\n }))\n};\n\nDropdown.defaultProps = {\n options: '',\n type: 'control_dropdown',\n multipleSelections: 'No',\n answer: [],\n special: '',\n answerWrapperProps: {},\n text: '',\n editMode: false,\n handleChange: () => {},\n isToggleActive: false,\n showAll: false,\n listType: ListTypes.default,\n labelProps: {},\n answerProps: {},\n toggleProps: {},\n containerProps: {},\n baselineProps: {},\n direction: 'column',\n isSubmissionWidget: false,\n submissionWidgetAnswer: []\n};\n\nexport default withSubmissionWidgetProps(Dropdown);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst StyledAnchor = Styled.a`\n pointer-events: all;\n`;\n\nconst Hypertext = props => {\n const { children, ...remainingProps } = props;\n return (<StyledAnchor {...remainingProps}>{ children }</StyledAnchor>);\n};\n\nHypertext.propTypes = {\n children: PropTypes.node\n};\n\nHypertext.defaultProps = {\n children: {}\n};\n\nexport default Hypertext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport HyperText from '../../components/Hypertext';\n\nimport { stripHTML } from '../../utils';\n\nclass Email extends React.Component {\n render() {\n const {\n text,\n answer,\n isMailTo,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n\n let answerText = typeof answer === 'object' && answer !== null && answer.email ? answer.email : answer;\n if (typeof answerText === 'object') {\n answerText = Object.values(answerText).join();\n }\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {\n isMailTo\n ? <HyperText href={`mailto:${answerText}`}>{stripHTML(answerText)}</HyperText>\n : <Text {...answerProps}>{stripHTML(answerText)}</Text>\n }\n </Baseline>\n );\n }\n}\n\nEmail.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n isMailTo: PropTypes.bool,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nEmail.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n isMailTo: false,\n direction: 'column'\n};\n\nexport default Email;\n","export const ICON_TYPES_ALL = {\n png: 'PNG',\n jpg: 'JPG',\n jpeg: 'JPEG',\n gif: 'GIF',\n bmp: 'BMP',\n tiff: 'TIFF',\n tif: 'TIF',\n mp3: 'MP3',\n ogg: 'OGG',\n mav: 'WAV',\n wma: 'WMA',\n mp4: 'MP4',\n webm: 'WEBM',\n mpg: 'MPG',\n flv: 'FLV',\n avi: 'AVI',\n pdf: 'PDF',\n csv: 'CSV',\n txt: 'TXT',\n rtf: 'RTF',\n html: 'HTML',\n zip: 'ZIP',\n xls: 'XLS',\n xlsx: 'XLSX',\n doc: 'DOC',\n docx: 'DOCX'\n};\nexport const ICON_TYPES = {\n iconFileImage: ['PNG', 'JPG', 'JPEG', 'GIF', 'BMP', 'TIFF', 'TIF'],\n iconFileAudio: ['MP3', 'OGG', 'WAV', 'WMA'],\n iconFileVideo: ['MP4', 'WEBM', 'MPG', 'FLV', 'AVI'],\n iconFileDocument: ['PDF', 'CSV', 'TXT', 'RTF', 'HTML', 'ZIP'],\n iconFileExcel: ['XLS', 'XLSX'],\n iconFileDoc: ['DOC', 'DOCX'],\n iconFileUnsupported: []\n};\nexport const getIconType = fileFormat => {\n const findIndex = Object.values(ICON_TYPES).findIndex(iconType => iconType.includes(fileFormat));\n return findIndex > -1 ? Object.keys(ICON_TYPES)[findIndex] : 'iconFileUnsupported';\n};\n\nexport const makeCamelCase = str => {\n if (typeof str !== 'string') return null;\n const newStr = str.length > 0 ? str[0].toUpperCase() + str.slice(1).toLowerCase() : '';\n newStr.replace('_', ' ');\n return newStr;\n};\n\nexport const getFileName = url => {\n return (url || '').split('/').pop().split('?')[0];\n};\n\nexport const getFileExtension = url => {\n return getFileName(url).split('.').pop().toUpperCase();\n};\n\nexport const isImage = src => ['JPEG', 'PNG', 'GIF', 'TIFF', 'JPG']\n .indexOf(getFileExtension(src)) !== -1;\n\nconst encodeRequestUrl = url => {\n return url.replace('#', '%23').replace('&', '%26');\n};\n\nexport const prepareFiles = (answer, withIconType = false) => (\n answer.map(file => {\n const fileName = getFileName(file);\n const fileUrl = encodeRequestUrl(file);\n const extension = getFileExtension(fileName);\n return {\n fileName,\n fileUrl,\n isImageFile: isImage(fileName),\n extension,\n previewUrl: fileUrl,\n ...(withIconType ? { iconType: getIconType(extension) } : {})\n };\n })\n);\n\nexport const getUploadUrl = url => {\n return url.split('?')[0];\n};\n\nexport const removeExtension = filename => {\n return filename.replace(/\\.[^/.]+$/, '');\n};\n\nexport const isPDF = src => getFileExtension(src) === 'PDF';\n\nexport function isImageFile(filename = '') {\n return filename.match(/(jpg|jpeg|gif|png)((\\?.*)$|$)/i) !== null;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { FileUtils } from '@jotforminc/upload-fields';\n\nimport View from '../../components/View';\nimport Hypertext from '../../components/Hypertext';\nimport Baseline from '../../components/Baseline';\nimport Imageline from '../../components/Imageline';\nimport SimpleText from '../../components/Text';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst HalfView = Styled(View)`\n width: 50%;\n`;\n\nclass Fileupload extends React.Component {\n encodeRequestUrl(url) {\n return url.replace('#', '%23');\n }\n\n render() {\n const {\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n showFileNameAsText,\n showImageHyperlink,\n imagePropsArray,\n filePropsArray,\n direction,\n containerProps,\n fileNameProps,\n hideImageLine,\n useEncodeURI\n } = this.props;\n\n const imgPropsArray = imagePropsArray || [];\n const fileProps = filePropsArray || [];\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <ViewWrap {...containerProps}>\n {answer ? answer.map((uploadedUrl, answerIndex) => {\n const encodedRequestUrl = useEncodeURI ? encodeURI(uploadedUrl) : this.encodeRequestUrl(uploadedUrl);\n const filename = FileUtils.getFileName(uploadedUrl);\n if (FileUtils.isImageFile(filename) || uploadedUrl.match(/^blob:/)) {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <HalfView {...answerProps} {...fileProps[answerIndex]} key={answerIndex.toString()}>\n {!hideImageLine && (\n <Imageline\n key={`${filename}`}\n label={filename}\n value={encodedRequestUrl}\n {...imgPropsArray[answerIndex]}\n />\n )}\n {showImageHyperlink\n ? <Hypertext key={`hypertext_${filename}`} href={FileUtils.getUploadUrl(encodedRequestUrl)}>{filename}</Hypertext>\n : null}\n\n {showFileNameAsText && !showImageHyperlink\n ? <SimpleText key={`simpletext_${filename}`} {...fileNameProps} {...fileProps[answerIndex]}>{filename}</SimpleText>\n : null}\n </HalfView>\n );\n }\n return showFileNameAsText\n ? <SimpleText key={`simpletext_showastext_${filename}`} {...answerProps} {...fileProps[answerIndex]}>{filename}</SimpleText>\n : (\n <Hypertext\n key={`hypertext_showastext_${filename}`} href={encodedRequestUrl} {...fileProps[answerIndex]}\n {...answerProps}\n >\n {filename}\n </Hypertext>\n );\n }) : null}\n </ViewWrap>\n </Baseline>\n );\n }\n}\n\nFileupload.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.shape({})]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n imagePropsArray: PropTypes.instanceOf(Array),\n fileNameProps: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.array]),\n filePropsArray: PropTypes.instanceOf(Array),\n showImageHyperlink: PropTypes.bool,\n showFileNameAsText: PropTypes.bool,\n hideImageLine: PropTypes.bool,\n direction: PropTypes.string,\n useEncodeURI: PropTypes.bool\n};\n\nFileupload.defaultProps = {\n text: '',\n answer: [''],\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n containerProps: {},\n imagePropsArray: [],\n fileNameProps: [],\n filePropsArray: [],\n showImageHyperlink: true,\n showFileNameAsText: false,\n hideImageLine: false,\n direction: 'column',\n useEncodeURI: false\n};\n\nexport default Fileupload;\n","import * as Utils from './utils';\n\nexport * from './components';\n\nexport const FileUtils = Utils;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nconst Fullname = ({\n text,\n answer: {\n prefix,\n first: firstName,\n middle: middleName,\n last: lastName,\n suffix\n },\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n answerWrapperProps={answerWrapperProps}\n labelContainerProps={labelProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>\n {[prefix, firstName, middleName, lastName].filter(f => f).map(str => stripHTML(str)).join(' ')}\n {suffix ? `, ${stripHTML(suffix)}` : ''}\n </Text>\n </Baseline>\n);\n\nFullname.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n prefix: PropTypes.string,\n first: PropTypes.string,\n middle: PropTypes.string,\n last: PropTypes.string,\n suffix: PropTypes.string\n })\n ]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nFullname.defaultProps = {\n text: '',\n answer: {\n prefix: '',\n first: '',\n middle: '',\n last: '',\n suffix: ''\n },\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Fullname;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport BaseImage from '../../components/Image';\nimport Baseline from '../../components/Baseline';\n\nconst Image = ({\n src,\n text,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <BaseImage alt={text} src={src || 'https://www.jotform.com/images/image_placeholder.png'} {...answerProps} />\n </Baseline>\n);\n\nImage.propTypes = {\n src: PropTypes.string,\n text: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nImage.defaultProps = {\n src: '',\n text: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Image;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport View from '../../components/View';\nimport List from '../../components/List';\nimport { LIST_TYPES } from '../../constants';\nimport Baseline from '../../components/Baseline';\nimport { convertAnswerToArray } from '../../utils';\n\n// TODO: Currently just printing selected option. It may need to change in a way to show other options too.\nconst Imagechoice = ({\n text,\n answer,\n showAll,\n options,\n labelProps,\n answerProps,\n answerWrapperProps,\n containerStyle,\n containerProps,\n baselineProps,\n direction\n}) => {\n const answerArray = convertAnswerToArray(answer);\n const answerTupleList = answerArray.map(txt => {\n const answerArr = txt.split('|');\n if (answerArr.length < 3) {\n return answerArr;\n }\n\n const imgUrl = answerArr[answerArr.length - 1];\n const replacedTxt = txt.replace(`|${imgUrl}`, '');\n\n return [replacedTxt, imgUrl];\n });\n const allItems = safeJSONParse(options, []).map(({ text: imageText, link }) => [imageText, link]);\n\n return (\n <View style={containerStyle}>\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n type={LIST_TYPES.IMAGE}\n showAll={showAll}\n items={answerTupleList}\n allItems={allItems}\n itemProps={answerProps}\n containerProps={containerProps}\n />\n </Baseline>\n </View>\n );\n};\n\nImagechoice.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.arrayOf(PropTypes.string),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.array\n ]),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n showAll: PropTypes.bool,\n options: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string\n })),\n PropTypes.string\n ]),\n direction: PropTypes.string\n};\n\nImagechoice.defaultProps = {\n text: '',\n answer: [],\n labelProps: {},\n answerProps: [],\n answerWrapperProps: {},\n baselineProps: {},\n containerStyle: {},\n containerProps: {},\n showAll: false,\n options: [],\n direction: 'column'\n};\n\nexport default Imagechoice;\n","import isEmpty from 'lodash/isEmpty';\nimport isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\nimport flatten from 'lodash/flatten';\nimport uniq from 'lodash/uniq';\nimport isArray from 'lodash/isArray';\nimport compose from 'lodash/fp/compose';\nimport defaultTo from 'lodash/fp/defaultTo';\nimport split from 'lodash/fp/split';\nimport add from 'lodash/fp/add';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport { getDateTimeText, getFixedUrl, isBase64Image } from '../../../utils';\nimport { isNative } from '../../../utils/environment';\n\nexport const BLOT_REGEX = /\\{([a-z0-9]*?-[a-z0-9]*?)\\}/gi;\nconst TIMESTAMP_OF_2019 = 1546300000000;\n\nconst isOldBlotId = id => Number(id) > TIMESTAMP_OF_2019;\nconst setParsedId = ([x, y]) => (isOldBlotId(x) ? ({ id: x, label: y }) : ({ id: y, label: x }));\nconst parseBlotId = (blotId = '') => setParsedId(blotId.split('-'));\nconst setBlotId = id => label => (isOldBlotId(id) ? `${id}-${label}` : `${label}-${id}`);\n\nexport const COLOR_LIST = [\n '#D0F0FE',\n '#EDE2FE',\n '#CEDFFF',\n '#FFDAF6',\n '#D0F7C3',\n '#FFDCE5',\n '#FFEAB6',\n '#C2F5E9',\n '#FEE2D5',\n '#EEEEEE'\n];\n\nexport const getItemFromList = (arr, i) => arr[i % arr.length];\n\nexport const normalizeDate = (answer, format, separator) => getDateTimeText({\n answer: answer,\n hideTime: true,\n dateFormat: format.match(/(.)\\1+/g).join(separator).toUpperCase()\n});\n\nconst normalizeTime = ({ hourSelect, minuteSelect, ampm }) => (\n hourSelect || minuteSelect ? `${hourSelect || '0'}:${minuteSelect || '00'} ${ampm || ''}` : ''\n);\n\nconst makeArray = a => (isArray(a) ? a : [a]);\n\nexport const normalizeData = x => (isString(x) ? safeJSONParse(x) : x);\n\nexport const normalizeArray = arr => uniq(flatten(makeArray(arr).map(a => (\n /\\[(.*?)\\]/g.test(a) ? normalizeData(a) : a\n))));\n\nexport const isAnswerEmpty = answer => (\n !isArray(answer) && isObject(answer) ? Object.values(answer).every(val => !val) : isEmpty(answer)\n);\n\nexport const getAnswerByType = (answers, {\n type, id, merged, label, options\n}) => {\n if (type === 'checkbox' && merged) {\n return Object.keys(answers).filter(a => a.indexOf(id) > -1).map(ax => answers[ax]);\n }\n if (type === 'datebox') {\n return normalizeData(answers[id]);\n }\n if (type === 'radiobox' && !merged) {\n const entry = Object.keys(answers).filter(a => a.indexOf(parseBlotId(id).id) > -1);\n return answers[entry] === label && label;\n }\n\n if (type === 'timebox') {\n const time = normalizeData(answers[id]);\n\n return time && normalizeTime(time);\n }\n\n if (type === 'signaturebox') {\n if (isNative()) {\n const path = answers[id];\n if (path && path !== '/' && !path.includes('http')) {\n return getFixedUrl(path.startsWith('/') ? path : `/${path}`);\n }\n return path;\n }\n return answers[id];\n }\n if (type === 'selectbox') {\n const optionsArray = options ? options.split('|').map(option => option.trim()) : [];\n const answer = answers[id] ? answers[id].trim() : '';\n return optionsArray.includes(answer) ? answer : '';\n }\n return answers[id];\n};\n\nconst setNum = arr => (arr.length > 1 ? arr[1] : arr[0]);\nconst getNumberFromLabel = compose(\n parseInt,\n setNum,\n split('option'),\n defaultTo('')\n);\n\nconst getIndex = (index = 0) => name => compose(\n add(parseInt(index, 10)),\n getNumberFromLabel\n)(name);\n\nexport const getFieldOptions = (field, isMerged) => {\n if (((['control_radio', 'control_checkbox'].indexOf(field.type) > -1) && isMerged) || field.type === 'control_dropdown') {\n return [field.options.reduce((acc, o) => ({\n ...acc,\n options: `${acc.options || acc.label}|${o.label}`,\n merged: true,\n label: field.label,\n id: field.type === 'control_dropdown' ? setBlotId(field.id)(o.type) : field.id,\n groupID: getIndex(field.index)(o.name),\n index: Number(field.index)\n }))];\n }\n\n return field.options.map(opt => ({\n ...opt,\n // Add groupID to change color of tagFields\n ...(['radiobox', 'checkbox'].indexOf(opt.type) > -1 ? {\n groupID: getIndex(field.index)(opt.name)\n } : {}),\n // Add datetime specific field props to blot\n ...(opt.type === 'datebox' ? {\n dateSeparator: field.dateSeparator || '-',\n dateFormat: field.format || 'mmddyyyy'\n } : {}),\n index: Number(field.index)\n }));\n};\n\nconst normalizeURLPath = path => (/^\\/+/.test(path) ? path : `/${path}`);\n\nconst isAbsoluteURL = url => /^(?:[a-z]+:)?\\/\\//i.test(url);\n\nexport const normalizeURL = url => (isBase64Image(url) || isAbsoluteURL(url) ? url : normalizeURLPath(url));\n\nexport const getSiblingAnswers = (answers, id) => {\n const siblingId = id.split('-')[1];\n return Object.keys(answers).filter(item => item.startsWith('option') && item.endsWith(siblingId));\n};\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport get from 'lodash/get';\n\nimport {\n getItemFromList, COLOR_LIST, normalizeDate, normalizeURL\n} from './utils';\nimport { LIST_TYPES } from '../../../constants';\n\nconst CSS = {\n wrapper: {\n lineHeight: 'initial',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n answer: (groupID, type, mainStyle, listType) => ({\n display: 'inline-block',\n width: '100%',\n ...(groupID && listType === LIST_TYPES.OPTION ? {\n backgroundColor: getItemFromList(COLOR_LIST, groupID),\n padding: '4px 6px',\n borderRadius: '4px'\n } : {}),\n ...(['checkbox', 'selectbox', 'radiobox'].indexOf(type) > -1 ? {} : {\n borderBottom: '1px solid #979797',\n fontWeight: '600'\n }),\n ...mainStyle\n }),\n sublabel: mainStyle => ({\n display: 'block',\n fontSize: '10px',\n color: '#57647e',\n marginTop: '2px',\n ...mainStyle\n }),\n signatureImg: {\n maxWidth: '100%',\n maxHeight: '2em',\n verticalAlign: 'bottom'\n }\n};\n\nconst getHTMLLine = (answer, {\n label, groupID, type, index\n},\n{\n showSublabels, answerProps, labelProps, listType, siblingAnswers = [], id\n}) => {\n let _answer = answer;\n\n if (type === 'checkbox' && listType === LIST_TYPES.COMMA) {\n const indexOfCurrentAnswer = siblingAnswers.indexOf(id);\n _answer = `${answer}${indexOfCurrentAnswer < siblingAnswers.length - 1 ? ',' : ''}`;\n }\n\n return ReactDOMServer.renderToStaticMarkup(\n <span style={CSS.wrapper} data-type={type}>\n <span style={CSS.answer(groupID + parseInt(index, 10), type, get(answerProps, 'style', {}), listType)}>\n {_answer}\n </span>\n {(showSublabels && label) && <span style={CSS.sublabel(get(labelProps, 'textProps.style', {}))}>{label}</span>}\n </span>\n );\n};\n\nexport const HTML_ANSWER = {\n textbox: (answer, props, mainProps) => getHTMLLine(answer, props, mainProps),\n datebox: (answer, { label, dateSeparator, dateFormat }, mainProps) => (\n getHTMLLine(normalizeDate(answer, dateFormat, dateSeparator), { label }, mainProps)),\n checkbox: (answer, props, mainProps) => getHTMLLine(answer, props, mainProps),\n radiobox: (answer, props, mainProps) => getHTMLLine(answer, props, mainProps),\n signaturebox: (answer, { label, type }, mainProps) => getHTMLLine((\n <img style={CSS.signatureImg} src={normalizeURL(answer)} alt={label} />), { label, type }, mainProps),\n selectbox: (answer, props, mainProps) => getHTMLLine(answer, props, mainProps),\n timebox: (answer, props, mainProps) => getHTMLLine(answer, props, mainProps)\n};\n","import React from 'react';\nimport { string, shape, oneOfType } from 'prop-types';\nimport Styled from 'styled-components';\nimport View from '../View';\nimport Text from '../Text';\n\nconst Sublabel = Styled(View)`\n color: #C0C1C3;\n font-size: 14px;\n font-weight: 100;\n`;\n\nconst Subtext = Styled(View)`\n font-size: 16px;\n padding-top: 8px;\n font-weight: 100;\n`;\n\nconst StyledView = Styled(View)`\n padding-bottom: 15px;\n`;\n\nconst Line = ({\n label,\n value,\n labelContainerProps,\n valueContainerProps,\n labelProps,\n ...props\n}) => (\n <StyledView className=\"lineWrapper\" {...props}>\n {!!label && (\n <Sublabel className=\"labelWrapper\" {...labelContainerProps}>\n <Text {...labelProps}>{label}</Text>\n </Sublabel>\n )}\n <Subtext className=\"answerWrapper\" {...valueContainerProps}>\n {typeof value === 'string' ? <Text {...labelProps}>{value}</Text> : <View>{value}</View>}\n </Subtext>\n </StyledView>\n);\n\nLine.propTypes = {\n label: string,\n value: oneOfType([\n string,\n shape({})\n ]),\n labelContainerProps: shape({}),\n valueContainerProps: shape({})\n};\n\nLine.defaultProps = {\n label: '',\n value: '',\n labelContainerProps: {},\n valueContainerProps: {}\n};\n\nexport default Line;\n","import React from 'react';\n\nimport OptionList from '../../../components/OptionList';\nimport CommaList from '../../../components/CommaList';\nimport Line from '../../../components/Line';\nimport Imageline from '../../../components/Imageline';\nimport {\n getItemFromList, COLOR_LIST, normalizeDate, normalizeArray, normalizeURL\n} from './utils';\nimport { LIST_TYPES } from '../../../constants';\n\nconst getLine = (answer, { label, id, type }, { labelProps: { textProps }, answerProps, lineProps }) => (\n <Line\n key={`${label}-${id}`}\n label={label}\n value={answer}\n labelContainerProps={textProps}\n valueContainerProps={answerProps}\n data-type={type}\n {...lineProps}\n />\n);\n\nconst listComponent = listType => {\n const {\n COMMA,\n OPTION\n } = LIST_TYPES;\n\n switch (listType) {\n case COMMA:\n return CommaList;\n case OPTION:\n return OptionList;\n default:\n return OptionList;\n }\n};\n\nexport const LIST_ANSWER = {\n textbox: (answer, { label, id, type }, { labelProps: { textProps }, answerProps, lineProps }) => (\n getLine(\n answer,\n { label, id, type },\n { labelProps: { textProps }, answerProps, lineProps }\n )\n ),\n datebox: (answer, {\n label, id, dateFormat, dateSeparator, type\n }, { labelProps: { textProps }, answerProps, lineProps }) => (\n getLine(\n normalizeDate(answer, dateFormat, dateSeparator),\n { label, id, type },\n { labelProps: { textProps }, answerProps, lineProps }\n )\n ),\n checkbox: (answer, { groupID = 0, id, type }, { listType }) => {\n const ListComponent = listComponent(listType);\n return [\n <ListComponent\n key={`${id}-${groupID}`}\n containerProps={{ className: 'lineWrapper', 'data-type': type }}\n itemProps={\n normalizeArray(answer).map((a, i) => (\n { className: 'tagField', backgroundColor: getItemFromList(COLOR_LIST, groupID + i), style: { marginBottom: 12 } }\n ))\n }\n items={normalizeArray(answer)}\n />\n ];\n },\n radiobox: (answer, props, { listType }) => LIST_ANSWER.checkbox(answer, props, { listType }),\n signaturebox: (answer, { label, id, type }, { labelProps: { textProps }, answerProps, lineProps }) => (\n getLine(\n <Imageline label={label} value={normalizeURL(answer)} {...answerProps} />,\n { label, id, type },\n { labelProps: { textProps }, answerProps, lineProps }\n )\n ),\n selectbox: (answer, {\n groupID, label, id, type\n },\n {\n labelProps: { textProps }, answerProps, lineProps, listType\n }) => (\n getLine(\n LIST_ANSWER.checkbox(answer, { groupID, id }, { listType }),\n { label, id, type },\n { labelProps: { textProps }, answerProps, lineProps }\n )\n ),\n timebox: (answer, { label, id, type }, { labelProps: { textProps }, answerProps, lineProps }) => (\n LIST_ANSWER.textbox(answer, { label, id, type }, { labelProps: { textProps }, answerProps, lineProps })\n )\n};\n","import React from 'react';\nimport {\n string, arrayOf, bool, shape, oneOfType, oneOf\n} from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { HTML_ANSWER } from './helpers/getHTMLAnswer';\nimport { LIST_ANSWER } from './helpers/getListAnswer';\nimport {\n normalizeData, isAnswerEmpty, getAnswerByType, getFieldOptions, BLOT_REGEX, getSiblingAnswers\n} from './helpers/utils';\nimport { isNative } from '../../utils/environment';\nimport { stripHTML } from '../../utils';\nimport { LIST_TYPES } from '../../constants';\n\nconst getEmptyStringByEnvironment = () => (\n isNative() ? <Text> </Text> : ''\n);\n\nconst findBlot = (blots, currId) => blots && blots.find(({ id }) => id === currId);\n\nconst checkTypeToStrip = answers => (Array.isArray(answers) ? answers.map(answer => (typeof answer === 'string' ? stripHTML(answer) : answer)) : stripHTML(answers));\n\nconst prepareAnswer = (blot, answers) => (blot ? { blot, answer: blot.type === 'datebox' ? getAnswerByType(answers, blot) : checkTypeToStrip(getAnswerByType(answers, blot)) } : {});\n\nconst renderAnswer = ({ blot, answer }, renderType, props) => (\n !isAnswerEmpty(answer) && (blot.type in renderType) ? renderType[blot.type](answer, blot, props) : getEmptyStringByEnvironment()\n);\n\nconst getBlots = (fields, isMerged) => !isEmpty(fields) && fields.reduce(\n (acc, f) => [...acc, ...(getFieldOptions(f, isMerged) || [])], []\n);\n\nconst sortBlots = blots => blots.sort(({ index: prevIndex }, { index: nextIndex }) => (\n prevIndex !== nextIndex && prevIndex < nextIndex ? -1 : 1\n));\n\nconst getListAnswers = (blots, answers, props) => blots.map(blot => (\n renderAnswer(prepareAnswer(blot, answers), LIST_ANSWER, props)\n));\n\nconst updateHTML = (template, blots, answers, props) => template.replace(BLOT_REGEX, (str, id) => {\n const currBlot = findBlot(blots, id);\n const _props = { ...props, id };\n\n if (currBlot?.type === 'checkbox') {\n _props.siblingAnswers = getSiblingAnswers(answers, id);\n }\n\n return renderAnswer(prepareAnswer(currBlot, answers), HTML_ANSWER, _props);\n});\n\nconst Inline = ({\n template,\n fields,\n fullContent,\n showSublabels,\n // Default props\n text,\n answer,\n answerProps,\n labelProps,\n direction,\n answerWrapperProps,\n baselineProps,\n lineProps,\n listType\n}) => {\n const blots = getBlots(normalizeData(fields), !fullContent);\n\n const isFullContentVisible = fullContent === 'Yes' || (fullContent && fullContent !== 'No');\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {isFullContentVisible ? (\n <Text\n {...answerProps}\n style={{\n ...(answerProps.style ? answerProps.style : {}),\n whiteSpace: 'normal',\n lineHeight: 2\n }}\n dangerouslySetInnerHTML={\n {\n __html: updateHTML(template, blots, answer, {\n showSublabels, answerProps, labelProps, listType\n })\n }\n }\n />\n ) : blots && getListAnswers(sortBlots(blots), answer, {\n labelProps, answerProps, lineProps, listType\n })}\n </Baseline>\n );\n};\n\nInline.propTypes = {\n template: string,\n fields: oneOfType([\n arrayOf(shape({})),\n string\n ]),\n fullContent: bool,\n showSublabels: bool,\n text: string,\n direction: string,\n labelProps: shape({\n textProps: shape({})\n }),\n answerProps: shape({}),\n answerWrapperProps: shape({}),\n baselineProps: shape({}),\n lineProps: shape({}),\n answer: oneOfType([\n shape({}),\n string\n ]),\n listType: oneOf(Object.values(LIST_TYPES))\n};\n\nInline.defaultProps = {\n template: '',\n fields: {},\n fullContent: true,\n showSublabels: true,\n text: '',\n direction: 'column',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n lineProps: {},\n answer: {},\n listType: LIST_TYPES.OPTION\n};\n\nexport default Inline;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Image from '../Image';\n\nconst EmojiImage = Styled(props => <Image {...props} />)`\n width: 18px;\n height: 18px;\n display: inline-block;\n vertical-align: text-bottom;\n`;\n\nconst Emoji = ({ score }) => <EmojiImage src={`https://cdn.jotfor.ms/assets/img/submission/emoji_${score || 1}.png`} />;\n\nEmoji.propTypes = {\n score: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])\n};\n\nEmoji.defaultProps = {\n score: 1\n};\n\nexport default Emoji;\n","import React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport memoize from 'lodash/memoize';\n\nimport {\n transpose as transposeArray, fixTableHeader, sanitizeHTML\n} from '../../utils';\nimport View from '../View';\nimport Text from '../Text';\n\nconst themeDark = '#F2F3FE';\nconst themeLight = '#fff';\nconst themeBorder = '#E5E6EF';\nconst themeHeaderColor = '#2A2F54';\n\nconst memoizedTranspose = memoize(transposeArray);\n\nconst ColumnOrientedView = Styled(props => <table cellPadding=\"0\" cellSpacing=\"0\" {...props} />)`\n table-layout: fixed;\n width: 100%;\n text-align: center;\n border-collapse: collapse;\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 0 0 1px ${themeBorder};\n word-break: break-word;\n hyphens: auto;\n`;\n\nconst RowOrientedView = Styled.div`\n box-shadow: 0 0 0 1px ${themeBorder};\n border-radius: 6px;\n`;\n\nconst Thead = Styled.thead`\n th {\n border-bottom: 1px solid ${themeBorder};\n }\n`;\n\nconst Tbody = Styled.tbody`\n`;\n\nconst TableHeader = Styled.th`\n font-size: 11px;\n border: none;\n font-weight: bold;\n padding: 6px;\n color: ${({ isDeleted }) => { return isDeleted ? '#FFF' : themeHeaderColor; }};\n background: ${({ isDeleted }) => { return isDeleted ? '#FF3737' : themeDark; }};\n`;\n\nconst EmptyHeader = Styled(props => <TableHeader {...props} />)``;\n\nconst TableData = Styled.td`\n font-size: 11px;\n border:none;\n padding: 6px;\n background: ${themeLight};\n color: ${themeHeaderColor};\n`;\n\nconst RowHeader = Styled.th`\n font-size: 11px;\n border:none;\n padding: 6px;\n text-align: left;\n font-weight: bold;\n background: ${themeDark};\n color: ${themeHeaderColor};\n`;\n\nconst Row = Styled.tr`\n &:not(:first-of-type) {\n td, th {\n border-top: 1px solid ${themeBorder};\n }\n }\n`;\n\nconst StyledRow = Styled(View)`\n display: flex;\n flex-flow: row;\n\n &:not(:first-of-type) {\n td, th {\n border-top: 1px solid ${themeBorder};\n }\n }\n`;\n\nconst StyledQuestion = Styled(Text)`\n padding: 6px 8px;\n font-size: 10pt;\n width: 49.8%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n background-color: ${themeDark};\n text-align: left;\n`;\n\nconst StyledAnswer = Styled(Text)`\n padding: 6px;\n font-size: 10pt;\n width: 49.8%;\n font-weight: 200;\n overflow: hidden;\n text-overflow: ellipsis;\n background-color: ${themeLight};\n text-align: left;\n`;\n\nclass Tableview extends Component {\n constructor(props) {\n super(props);\n\n // Bindings\n this.renderRows = this.renderRows.bind(this);\n this.renderColumnHeaders = this.renderColumnHeaders.bind(this);\n this.renderRowOrientedView = this.renderRowOrientedView.bind(this);\n this.renderColumnOrientedView = this.renderColumnOrientedView.bind(this);\n }\n\n get columns() {\n const {\n rows,\n transpose,\n columns\n } = this.props;\n\n return !transpose ? columns : rows;\n }\n\n get rows() {\n const {\n rows,\n transpose,\n columns\n } = this.props;\n\n return !transpose ? rows : columns;\n }\n\n get tableData() {\n const {\n transpose,\n tableData\n } = this.props;\n\n return !transpose ? tableData : memoizedTranspose(tableData);\n }\n\n get isRowsExist() {\n const { transpose, orientation } = this.props;\n return (orientation !== 'row' || !transpose) && this.rows.length !== 0;\n }\n\n renderCell({ key, data, props }) {\n if (data && typeof data === 'string') {\n return <TableData key={`cell_${key}`} {...props} dangerouslySetInnerHTML={{ __html: sanitizeHTML(data) }} />;\n }\n\n const emptyData = props.emptyCellStyle === 'line' ? '-' : '';\n const cellData = data || emptyData;\n return (\n <TableData key={`cell_${key}`} {...props}>\n {cellData}\n </TableData>\n );\n }\n\n renderColumnHeaderCell({\n key, data, props = {}\n }) {\n const fixedHeader = fixTableHeader(data);\n return (\n typeof fixedHeader === 'string'\n ? (\n <TableHeader\n key={`columnHeaderCell_${key}`}\n dangerouslySetInnerHTML={{ __html: sanitizeHTML(fixedHeader) }}\n {...props}\n />\n )\n : <TableHeader key={`columnHeaderCell_${key}`} {...props}>{fixedHeader}</TableHeader>\n );\n }\n\n renderColumnHeaders() {\n const {\n name,\n headerProps,\n showRowHeader\n } = this.props;\n\n let key = 0;\n return this.columns.length !== 0 && (\n <Row>\n {[\n (showRowHeader && this.isRowsExist ? <EmptyHeader key={`emptyHeaderCell_${name}`} {...headerProps} /> : null),\n ...this.columns.map(data => this.renderColumnHeaderCell({\n key: `${name}_${key++}`, data, props: headerProps\n }))\n ]}\n </Row>\n );\n }\n\n renderRowHeaderCell({ key, data, props }) {\n return (\n typeof data === 'string'\n ? <RowHeader key={`rowHeaderCell_${key}`} dangerouslySetInnerHTML={{ __html: sanitizeHTML(data) }} {...props} />\n : <RowHeader key={`rowHeaderCell_${key}`} {...props}>{data}</RowHeader>\n );\n }\n\n renderRow({\n key,\n rowData,\n header,\n containerStyle,\n headerProps,\n answerProps\n }) {\n const { showAll, columns } = this.props;\n\n if (answerProps.hideEmptyRow && (!rowData.length || rowData.filter(data => data).length < 1)) return;\n\n const cells = rowData && Array.isArray(rowData) && rowData.reduce((acc, data, index) => {\n if (!showAll && !data) return acc;\n\n const cellData = (data && !showAll) ? columns[index] : data;\n\n return [\n ...acc,\n this.renderCell({ key: `${key}_${index}`, data: cellData, props: answerProps })\n ];\n }, []);\n\n if (!showAll && !cells.length) {\n cells.push(this.renderCell({ data: null, props: answerProps }));\n }\n\n return (\n <Row key={`row_${key}`} {...containerStyle}>\n {(typeof header === 'string' || header) && this.renderRowHeaderCell({ key, data: header, props: headerProps })}\n {cells}\n </Row>\n );\n }\n\n renderRows() {\n const {\n name,\n containerStyle,\n headerProps,\n answerProps,\n showRowHeader\n } = this.props;\n\n return this.tableData.map((rowData, index) => this.renderRow({\n key: `${name}_${index}`,\n rowData,\n containerStyle,\n header: (this.isRowsExist && showRowHeader) && this.rows[index],\n headerProps,\n answerProps\n }));\n }\n\n renderColumnOrientedView() {\n const {\n tableComponent: TableComponent,\n showColumnHeader,\n showAll, transpose, tableData, columns, rows, orientation, containerStyle, headerProps, answerProps, // useless props\n ...props // rest\n } = this.props;\n\n return (\n <TableComponent {...props}>\n {\n showAll && showColumnHeader\n && (\n <Thead>\n {this.renderColumnHeaders()}\n </Thead>\n )\n }\n <Tbody>\n {this.renderRows()}\n </Tbody>\n </TableComponent>\n );\n }\n\n renderRowOrientedHeaderCell(data, { className: rowHeaderClassName, ...props }) {\n const className = `rowOriented-row-header${rowHeaderClassName ? ` ${rowHeaderClassName}` : ''}`;\n\n return (\n typeof data === 'string'\n ? <StyledQuestion className={className} {...props} dangerouslySetInnerHTML={{ __html: sanitizeHTML(data) }} />\n : <StyledQuestion className={className} {...props}>{data}</StyledQuestion>\n );\n }\n\n renderRowOrientedAnswerCell(data, { className: answerClassName, ...props }) {\n const className = `rowOriented-row-answer${answerClassName ? ` ${answerClassName}` : ''}`;\n\n return (\n typeof data === 'string'\n ? <StyledAnswer className={className} dangerouslySetInnerHTML={{ __html: sanitizeHTML(data) }} {...props} />\n : <StyledAnswer className={className} {...props}>{data}</StyledAnswer>\n );\n }\n\n renderRowOrientedView() {\n const {\n name,\n rows,\n transpose,\n tableData,\n answerProps,\n containerStyle,\n headerProps\n } = this.props;\n\n let key = 0;\n return (\n <RowOrientedView>\n {\n !transpose\n ? rows.map((row, index) => (\n <StyledRow key={`${name}_${row}_${key++}`} {...containerStyle}>\n {row && this.renderRowOrientedHeaderCell(row, headerProps)}\n {this.renderRowOrientedAnswerCell(tableData[index], answerProps)}\n </StyledRow>\n ))\n : (\n <>\n {this.renderColumnHeaders()}\n {this.renderRow({ key: `${name}_0`, rowData: tableData, answerProps })}\n </>\n )\n }\n </RowOrientedView>\n );\n }\n\n render() {\n const { orientation, columns, tableComponent } = this.props;\n\n if (tableComponent !== ColumnOrientedView) {\n return this.renderColumnOrientedView();\n }\n\n switch (orientation) {\n case 'row':\n return this.renderRowOrientedView();\n case 'column':\n default:\n return columns.length === 0 ? this.renderRowOrientedView() : this.renderColumnOrientedView();\n }\n }\n}\n\nconst cellPropTypes = [\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n PropTypes.number,\n PropTypes.node\n];\n\nTableview.propTypes = {\n name: PropTypes.string,\n orientation: PropTypes.string,\n rows: PropTypes.arrayOf(PropTypes.string),\n columns: PropTypes.arrayOf(PropTypes.oneOfType(cellPropTypes)),\n tableData: PropTypes.arrayOf(PropTypes.oneOfType(cellPropTypes)),\n answerProps: PropTypes.shape(),\n containerStyle: PropTypes.shape(),\n headerProps: PropTypes.shape(),\n transpose: PropTypes.bool,\n rowProps: PropTypes.shape({}),\n tableComponent: PropTypes.oneOfType([PropTypes.element, PropTypes.object]),\n showAll: PropTypes.bool,\n showRowHeader: PropTypes.bool,\n showColumnHeader: PropTypes.bool\n};\n\nTableview.defaultProps = {\n name: '',\n rows: [],\n columns: [],\n tableData: [],\n orientation: 'column',\n answerProps: {},\n containerStyle: {},\n headerProps: {},\n transpose: false,\n rowProps: {},\n tableComponent: ColumnOrientedView,\n showAll: true,\n showRowHeader: true,\n showColumnHeader: true\n};\n\nexport default Tableview;\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable max-len */\nexport const fixUTF = rawString => {\n let str = rawString;\n if (typeof str !== 'string') {\n return str;\n }\n\n const lowerCase = {\n '': '2028', a: '00E1:0103:01CE:00E2:00E4:0227:1EA1:0201:00E0:1EA3:0203:0101:0105:1D8F:1E9A:00E5:1E01:2C65:00E3:0251:1D90', b: '1E03:1E05:0253:1E07:1D6C:1D80:0180:0183', c: '0107:010D:00E7:0109:0255:010B:0188:023C', d: '010F:1E11:1E13:0221:1E0B:1E0D:0257:1E0F:1D6D:1D81:0111:0256:018C', e: '00E9:0115:011B:0229:00EA:1E19:00EB:0117:1EB9:0205:00E8:1EBB:0207:0113:2C78:0119:1D92:0247:1EBD:1E1B', f: '1E1F:0192:1D6E:1D82', g: '01F5:011F:01E7:0123:011D:0121:0260:1E21:1D83:01E5', h: '1E2B:021F:1E29:0125:2C68:1E27:1E23:1E25:0266:1E96:0127', i: '0131:00ED:012D:01D0:00EE:00EF:1ECB:0209:00EC:1EC9:020B:012B:012F:1D96:0268:0129:1E2D', j: '01F0:0135:029D:0249', k: '1E31:01E9:0137:2C6A:A743:1E33:0199:1E35:1D84:A741', l: '013A:019A:026C:013E:013C:1E3D:0234:1E37:2C61:A749:1E3B:0140:026B:1D85:026D:0142:0269:1D7C', m: '1E3F:1E41:1E43:0271:1D6F:1D86', n: '0144:0148:0146:1E4B:0235:1E45:1E47:01F9:0272:1E49:019E:1D70:1D87:0273:00F1', o: '00F3:014F:01D2:00F4:00F6:022F:1ECD:0151:020D:00F2:1ECF:01A1:020F:A74B:A74D:2C7A:014D:01EB:00F8:00F5', p: '1E55:1E57:A753:01A5:1D71:1D88:A755:1D7D:A751', q: 'A759:02A0:024B:A757', r: '0155:0159:0157:1E59:1E5B:0211:027E:0213:1E5F:027C:1D72:1D89:024D:027D', s: '015B:0161:015F:015D:0219:1E61:1E63:0282:1D74:1D8A:023F', t: '0165:0163:1E71:021B:0236:1E97:2C66:1E6B:1E6D:01AD:1E6F:1D75:01AB:0288:0167', u: '00FA:016D:01D4:00FB:1E77:00FC:1E73:1EE5:0171:0215:00F9:1EE7:01B0:0217:016B:0173:1D99:016F:0169:1E75:1D1C:1D7E', v: '2C74:A75F:1E7F:028B:1D8C:2C71:1E7D', w: '1E83:0175:1E85:1E87:1E89:1E81:2C73:1E98', x: '1E8D:1E8B:1D8D', y: '00FD:0177:00FF:1E8F:1EF5:1EF3:01B4:1EF7:1EFF:0233:1E99:024F:1EF9', z: '017A:017E:1E91:0291:2C6C:017C:1E93:0225:1E95:1D76:1D8E:0290:01B6:0240', ae: '00E6:01FD:01E3', dz: '01F3:01C6', 3: '0292:01EF:0293:1D9A:01BA:01B7:01EE'\n };\n const upperCase = {\n A: '00C1:0102:01CD:00C2:00C4:0226:1EA0:0200:00C0:1EA2:0202:0100:0104:00C5:1E00:023A:00C3', B: '1E02:1E04:0181:1E06:0243:0182', C: '0106:010C:00C7:0108:010A:0187:023B', D: '010E:1E10:1E12:1E0A:1E0C:018A:1E0E:0110:018B', E: '00C9:0114:011A:0228:00CA:1E18:00CB:0116:1EB8:0204:00C8:1EBA:0206:0112:0118:0246:1EBC:1E1A', F: '1E1E:0191', G: '01F4:011E:01E6:0122:011C:0120:0193:1E20:01E4:0262:029B', H: '1E2A:021E:1E28:0124:2C67:1E26:1E22:1E24:0126', I: '00CD:012C:01CF:00CE:00CF:0130:1ECA:0208:00CC:1EC8:020A:012A:012E:0197:0128:1E2C:026A:1D7B', J: '0134:0248', K: '1E30:01E8:0136:2C69:A742:1E32:0198:1E34:A740', L: '0139:023D:013D:013B:1E3C:1E36:2C60:A748:1E3A:013F:2C62:0141:029F:1D0C', M: '1E3E:1E40:1E42:2C6E', N: '0143:0147:0145:1E4A:1E44:1E46:01F8:019D:1E48:0220:00D1', O: '00D3:014E:01D1:00D4:00D6:022E:1ECC:0150:020C:00D2:1ECE:01A0:020E:A74A:A74C:014C:019F:01EA:00D8:00D5', P: '1E54:1E56:A752:01A4:A754:2C63:A750', Q: 'A758:A756', R: '0154:0158:0156:1E58:1E5A:0210:0212:1E5E:024C:2C64', S: '015A:0160:015E:015C:0218:1E60:1E62', T: '0164:0162:1E70:021A:023E:1E6A:1E6C:01AC:1E6E:01AE:0166', U: '00DA:016C:01D3:00DB:1E76:00DC:1E72:1EE4:0170:0214:00D9:1EE6:01AF:0216:016A:0172:016E:0168:1E74', V: 'A75E:1E7E:01B2:1E7C', W: '1E82:0174:1E84:1E86:1E88:1E80:2C72', X: '1E8C:1E8A', Y: '00DD:0176:0178:1E8E:1EF4:1EF2:01B3:1EF6:1EFE:0232:024E:1EF8', Z: '0179:017D:1E90:2C6B:017B:1E92:0224:1E94:01B5', AE: '00C6:01FC:01E2', DZ: '01F1:01C4'\n };\n str = str.toString();\n\n for (const lk in lowerCase) {\n const lvalue = `\\\\u${lowerCase[lk].split(':').join('|\\\\u')}`;\n str = str.replace(new RegExp(lvalue, 'gm'), lk);\n }\n // remove unicode whitespace (b#1140035)\n str = str.replace('\\u2029', '');\n\n for (const uk in upperCase) {\n const uvalue = `\\\\u${upperCase[uk].split(':').join('|\\\\u')}`;\n str = str.replace(new RegExp(uvalue, 'gm'), uk);\n }\n\n return str;\n};\n\n/**\n *\n * @param {Object} str\n*/\nexport const capitalize = str => {\n return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();\n};\n\nexport const capitalizeAccToLocale = (str, lang = 'en-US') => {\n const lang_ = lang || 'en-US';\n if (!str) return '';\n return str.toLocaleUpperCase(lang_);\n};\n\n/**\n * capitalizeFirstLetter\n * @function\n * @param {String} str to capitalizeFirstLetter\n */\nexport const capitalizeFirstLetter = (str = '') => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport const capitalizeEachLetter = (str = '') => {\n const words = str.split(' ');\n\n for (let i = 0; i < words.length; i++) {\n words[i] = words[i][0].toUpperCase() + words[i].substr(1);\n }\n\n return words.join(' ');\n};\n\nexport const capitalizeFirstLetterAccToLocale = (str, lang = 'en-US') => {\n const lang_ = lang || 'en-US';\n if (!str) return '';\n return str.charAt(0).toLocaleUpperCase(lang_) + str.toLocaleLowerCase(lang_).slice(1);\n};\n\nexport function stripSlashes(str) {\n return (str.toString()).replace(/\\\\(.?)/g, (s, n1) => {\n switch (n1) {\n case '\\\\':\n return '\\\\';\n case '0':\n return '\\u0000';\n case '':\n return '';\n default:\n return n1;\n }\n });\n}\n\nexport function escapeHTML(str) {\n if (typeof str === 'string') {\n return str.replace(/^\\s+/g, '')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n return str;\n}\n\nexport function getStringByteLength(str) {\n // encode the text in UTF-8 format. Because backend is saving the text in UTF-8 format.\n const latin1EncodedText = unescape(encodeURIComponent(str));\n\n // get byte\n const encoder = new TextEncoder('utf-8');\n const encodedData = encoder.encode(latin1EncodedText);\n const byteSize = encodedData.length;\n\n return byteSize;\n}\n\n/**\n * Equilevent of deprecated escape() function.\n *\n * @param {*} str\n * @returns {string}\n */\nexport const escapeString = str => {\n if (!str || typeof str !== 'string') return '';\n\n const allowed = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./,';\n const len = str.length;\n let R = '';\n let k = 0;\n let S;\n let chr;\n let ord;\n while (k < len) {\n chr = str[k];\n if (allowed.indexOf(chr) !== -1) {\n S = chr;\n } else {\n ord = str.charCodeAt(k);\n if (ord < 256) {\n S = `%${(`00${ord.toString(16)}`).toUpperCase().slice(-2)}`;\n } else {\n S = `%u${(`0000${ord.toString(16)}`).toUpperCase().slice(-4)}`;\n }\n }\n R += S;\n k++;\n }\n return R;\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'lodash/memoize';\nimport { safeJSONParse, stripSlashes } from '@jotforminc/utils';\n\nimport {\n renameDuplicateRows, stripHTML, sanitizeOrStripHTML\n} from '../../utils';\nimport { ROW_BASED_MATRIX_TYPES } from '../../constants';\n\nconst singleInputTables = ROW_BASED_MATRIX_TYPES;\n\nconst isAnswerValid = answerData => {\n if (answerData === null || answerData === undefined) return false;\n\n const isValidObject = typeof answerData === 'object' && Object.keys(answerData).length > 0;\n const isValidArray = Array.isArray(answerData) || answerData.length > 0;\n const isBoolean = typeof answerData === 'boolean';\n\n return !isBoolean && (isValidObject || isValidArray);\n};\n\nconst normalizeAnswer = memoize((answerData, columns, rows, orientation, useIndex = false) => {\n // Fix the data by passing empty array(s) if not a valid data sended\n if (!isAnswerValid(answerData)) {\n const dummyAnswerRow = orientation === 'column' ? columns.map(() => '') : '';\n return rows.map(() => dummyAnswerRow);\n }\n\n // When there are duplicate or empty row names defined by user, we fail to refer to the correct answerData row via row\n // name. In this case we eliminate the duplicate/empty rows by appending row index to the end user defined row name.\n // Same logic is applied on API backend when returning answers array, to fix this.\n const uniqueRows = renameDuplicateRows(rows);\n\n // Each row data can be an encoded json string\n const parsedAnswerValues = uniqueRows.map((row, rowIndex) => {\n const answer = (useIndex ? answerData[rowIndex] : answerData[row]) || '';\n let parsedAnswer = safeJSONParse(answer, answer, true);\n let isAnswerArray = Array.isArray(parsedAnswer);\n\n if (typeof parsedAnswer === 'object' && isAnswerArray) {\n parsedAnswer = parsedAnswer.map(ans => (typeof ans === 'string' ? sanitizeOrStripHTML(ans) : ans));\n }\n\n if (typeof parsedAnswer === 'object' && !isAnswerArray) {\n isAnswerArray = true;\n parsedAnswer = columns.map((_, index) => {\n if (parsedAnswer[index]) {\n if (typeof parsedAnswer[index] === 'string') {\n parsedAnswer[index] = stripHTML(parsedAnswer[index]);\n }\n\n return parsedAnswer[index];\n }\n return '';\n });\n }\n\n const sanitizedAnswer = isAnswerArray ? parsedAnswer.map(a => (a === null || a === false ? '' : a)).map(stripSlashes) : parsedAnswer;\n\n // If row data length is not equal to column length, push empty data to fix structure.\n const columnLengthDiff = columns.length - sanitizedAnswer.length;\n const hasColDifference = isAnswerArray && (columnLengthDiff > 0);\n return hasColDifference ? columns.map((_, index) => (sanitizedAnswer[index] || '')) : sanitizedAnswer;\n });\n\n // Fix empty strings on column oriented tables\n return parsedAnswerValues.map(answerRowData => {\n if (orientation === 'column' && (!answerRowData && answerRowData !== 0)) {\n return columns.map(() => '');\n }\n return answerRowData;\n });\n}, (...args) => args.map(arg => JSON.stringify(arg)).join(''));\n\nconst generateEmojiArray = memoize(emojiCount => {\n const normalizedEmojiCount = emojiCount ? parseInt(emojiCount, 10) : 7;\n\n switch (normalizedEmojiCount) {\n case 3:\n return [1, 4, 7];\n case 7:\n return [1, 2, 3, 4, 5, 6, 7];\n default:\n return [1, 2, 4, 6, 7];\n }\n});\n\nconst getOrientation = memoize(matrixType => (singleInputTables.indexOf(matrixType) > -1 ? 'row' : 'column'));\n\nconst splitNormalizer = memoize(str => (typeof str === 'string' ? str.split('|') : []));\n\n// Higher order component\nexport default function withMatrixProps(MatrixComponent) {\n class ExtendedMatrix extends Component {\n get columns() {\n const { dcolumns, mcolumns } = this.props;\n return this.isDynamic ? safeJSONParse(dcolumns, dcolumns, true) : splitNormalizer(mcolumns);\n }\n\n get rows() {\n const { mrows } = this.props;\n const featureSet = safeJSONParse(this.props.featureSet, this.props.featureSet, true);\n const drows = safeJSONParse(this.props.drows, this.props.drows, true);\n if (featureSet.includes('useIds')) {\n return drows.map(({ text }) => text);\n }\n return splitNormalizer(mrows);\n }\n\n get answer() {\n // in input tables with row/column ids, answer data is already sorted by column order in api\n // to allow duplicate row names in input table use index-based answer data\n const useIndex = this.props.featureSet.includes('useIds');\n return normalizeAnswer(this.props.answer, this.columns, this.rows, this.orientation, useIndex);\n }\n\n get orientation() {\n const { orientation, inputType } = this.props;\n return orientation || getOrientation(inputType);\n }\n\n get toggleOptions() {\n return splitNormalizer(this.props.toggleText);\n }\n\n get emojiArray() {\n return generateEmojiArray(this.props.emojiCount);\n }\n\n get isDynamic() {\n const featureSet = safeJSONParse(this.props.featureSet, this.props.featureSet, true);\n return featureSet.includes('useDcols') || this.props.inputType === 'Dynamic';\n }\n\n get useDcols() {\n const featureSet = safeJSONParse(this.props.featureSet, this.props.featureSet, true);\n return featureSet.includes('useIds');\n }\n\n render() {\n const { orientation, rows, ...props } = this.props;\n\n return (\n <MatrixComponent\n rows={this.rows}\n columns={this.columns}\n emojiArray={this.emojiArray}\n normalizedAnswer={this.answer}\n orientation={this.orientation}\n toggleOptions={this.toggleOptions}\n useDcols={this.useDcols}\n isDynamic={this.isDynamic}\n {...props}\n />\n );\n }\n }\n\n ExtendedMatrix.propTypes = {\n mcolumns: PropTypes.string,\n dcolumns: PropTypes.shape({}),\n mrows: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({}),\n PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]))\n ]),\n answerProps: PropTypes.shape(),\n labelProps: PropTypes.shape(),\n inputType: PropTypes.string,\n toggleText: PropTypes.string,\n emojiCount: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n orientation: PropTypes.oneOf([\n '',\n 'row',\n 'column'\n ]),\n featureSet: PropTypes.arrayOf(PropTypes.string)\n };\n\n ExtendedMatrix.defaultProps = {\n mcolumns: '',\n mrows: '',\n answer: {},\n dcolumns: {},\n answerProps: {},\n labelProps: {},\n inputType: '',\n toggleText: '',\n emojiCount: 5,\n orientation: '',\n featureSet: []\n };\n\n return ExtendedMatrix;\n}\n","import React, { Component, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport Text from '../../components/Text';\nimport Styled from '../../utils/styled';\nimport Image from '../../components/Image';\nimport Emoji from '../../components/Emoji';\nimport Baseline from '../../components/Baseline';\nimport Tableview from '../../components/Tableview';\nimport withMatrixProps from '../../hocs/Matrix';\nimport { ROW_BASED_MATRIX_TYPES } from '../../constants';\nimport { stripHTML } from '../../utils';\n\nconst StyledImage = Styled(props => <Image {...props} />)`\n width: 12px;\n height: 12px;\n display: inline-block;\n vertical-align: text-bottom;\n`;\n\nconst EmojiText = Styled(Text)`\n display: inline-block;\n text-indent: 5px;\n`;\n\nconst StyledCheckboxImage = <StyledImage src=\"//cdn.jotfor.ms/assets/img/submission/check_icon.png\" />;\nconst StyledRadioActiveImage = <StyledImage src=\"//cdn.jotfor.ms/assets/img/submission/Radio_Active.svg\" />;\n\nclass Matrix extends Component {\n get orientation() {\n const { orientation, showAll } = this.props;\n return showAll ? 'column' : orientation;\n }\n\n get normalizedColumns() {\n const {\n orientation,\n columns,\n normalizedAnswer,\n isDynamic\n } = this.props;\n\n const sanitizedColumns = isDynamic ? columns.map(column => column.text) : columns.map(column => stripHTML(column));\n\n // Row oriented matrixes do not need any normalization\n if (orientation !== 'column') {\n return sanitizedColumns;\n }\n\n // Trying to get maximum number of sanitizedColumns by parsing answer data in case any column removed\n const maxAnswerLength = normalizedAnswer.reduce((prev, curr) => (Array.isArray(curr) ? Math.max(curr.length, prev) : prev), 1);\n\n // This case indicates that really a column removed. Therefore we are appending 'delete column' dummy sanitizedColumns\n if (sanitizedColumns.length < maxAnswerLength) {\n const dummyDeletedColumns = [...Array(maxAnswerLength - sanitizedColumns.length)].map(() => 'Deleted Column');\n return sanitizedColumns.concat(dummyDeletedColumns);\n }\n\n return sanitizedColumns;\n }\n\n get columns() {\n const {\n showAll,\n toggleOptions,\n inputType,\n emojiArray,\n columns\n } = this.props;\n\n if (inputType === 'Yes No') {\n return toggleOptions;\n }\n\n if (inputType === 'Emoji Slider') {\n return emojiArray.map(column => <Emoji score={column} />);\n }\n\n if (showAll) {\n switch (inputType) {\n case 'Yes No':\n return toggleOptions;\n case 'Emoji Slider':\n return emojiArray.map(column => <Emoji score={column} />);\n case 'Dynamic':\n return columns.map(({ text }) => text);\n default:\n break;\n }\n }\n\n return this.normalizedColumns;\n }\n\n get columnnHeaderProps() {\n const { columnnHeaderProps, columns } = this.props;\n\n // If deleted column does not exist\n if (columns.length === this.columns.length) {\n return columnnHeaderProps;\n }\n\n return this.columns.map((_, index) => ({\n isDeleted: index >= columns.length,\n ...(columnnHeaderProps[index] || {})\n }));\n }\n\n sanitizeAnswer(ans) {\n return Array.isArray(ans)\n ? ans.map(answer => stripHTML(answer))\n : stripHTML(ans);\n }\n\n get tableData() {\n const {\n answer,\n inputType,\n rows,\n dcolumns,\n emojiArray,\n normalizedAnswer,\n toggleOptions: [yesOption, noOption] = [],\n useDcols\n } = this.props;\n\n // Data of row based matrixes need to be converted into arrays if intended orientation is column\n if (ROW_BASED_MATRIX_TYPES.indexOf(inputType) > -1 && this.orientation === 'column') {\n if (inputType === 'Yes No') {\n return rows.map((_, index) => this.columns.map(column => ((column === yesOption && normalizedAnswer[index]) || (column === noOption && !normalizedAnswer[index])\n ? StyledCheckboxImage\n : null)));\n }\n if (inputType === 'Emoji Slider') {\n return rows.map(row => this.columns.map((_, index) => (answer[row] && parseInt(answer[row], 10) === emojiArray[index]\n ? StyledCheckboxImage\n : null)));\n }\n if (!useDcols && (inputType === 'Slider' || inputType === 'Radio Button')) {\n return rows.map((_, index) => this.columns.map(column => {\n const strippedHtml = stripHTML(normalizedAnswer[index]);\n const normalized = strippedHtml || normalizedAnswer[index];\n const newNormalized = typeof normalized === 'string' ? normalized.replace(/\\\\/g, '') : normalized;\n const isSelected = (newNormalized || newNormalized === 0) && (this.checkHasOnlyEmptyColumn() ? newNormalized === 1 : newNormalized.toString().trim() === column.toString().trim());\n return isSelected ? StyledRadioActiveImage : null;\n }));\n }\n }\n\n if (inputType === 'Emoji Slider') {\n return normalizedAnswer.map(rowAnswer => (\n <>\n <Emoji score={rowAnswer} />\n <EmojiText>\n {`(${emojiArray.indexOf(rowAnswer) + 1}/${emojiArray.length})`}\n </EmojiText>\n </>\n ));\n }\n if (inputType === 'Yes No') {\n return normalizedAnswer.map(rowAnswer => (rowAnswer ? yesOption : noOption));\n }\n if (useDcols || inputType === 'Dynamic') {\n return rows.map((_, index) => safeJSONParse(dcolumns, dcolumns, true).map((column, i) => {\n const ans = Array.isArray(normalizedAnswer[index]) ? normalizedAnswer[index][i] : '';\n if (!ans) return ans;\n if (this.orientation === 'row') return ans;\n if (column.type === 'Radio Button') return StyledRadioActiveImage;\n if (column.type === 'Check Box') return StyledCheckboxImage;\n if (column.type === 'Slider') return StyledCheckboxImage;\n return ans;\n }));\n }\n if (inputType === 'Check Box') {\n return rows.map((_, index) => this.columns.map(column => {\n const ans = normalizedAnswer[index] && !Array.isArray(normalizedAnswer[index]) ? normalizedAnswer[index].toString() : normalizedAnswer[index];\n const strippedAns = this.sanitizeAnswer(ans);\n const isSelected = strippedAns && (this.checkHasOnlyEmptyColumn() ? strippedAns.includes('1') : strippedAns.includes(column));\n return isSelected ? StyledCheckboxImage : null;\n }));\n }\n\n return normalizedAnswer;\n }\n\n checkHasOnlyEmptyColumn() {\n return this.columns.length === 1 && this.columns[0] === '';\n }\n\n render() {\n const {\n text,\n rows,\n transpose,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n sublabelProps,\n containerStyle,\n direction\n } = this.props;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Tableview\n name={text}\n rows={rows}\n transpose={transpose}\n tableData={this.tableData}\n columns={this.columns}\n orientation={this.orientation}\n containerStyle={containerStyle}\n headerProps={sublabelProps}\n answerProps={answerProps}\n columnnHeaderProps={this.columnnHeaderProps}\n />\n </Baseline>\n );\n }\n}\n\nconst cellDataPropTypes = [\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n];\n\nMatrix.propTypes = {\n rows: PropTypes.arrayOf(PropTypes.string),\n columns: PropTypes.arrayOf(PropTypes.string),\n dcolumns: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n text: PropTypes.string,\n normalizedAnswer: PropTypes.arrayOf(PropTypes.oneOfType([\n ...cellDataPropTypes,\n PropTypes.arrayOf(cellDataPropTypes)\n ])),\n emojiArray: PropTypes.arrayOf(PropTypes.number),\n toggleOptions: PropTypes.arrayOf(PropTypes.string),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n sublabelProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n columnnHeaderProps: PropTypes.arrayOf(PropTypes.shape({})),\n transpose: PropTypes.bool,\n orientation: PropTypes.oneOf([\n 'row',\n 'column'\n ]),\n answer: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({}),\n PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]))\n ]),\n inputType: PropTypes.string,\n showAll: PropTypes.bool,\n direction: PropTypes.string,\n isDynamic: PropTypes.bool,\n useDcols: PropTypes.bool\n};\n\nMatrix.defaultProps = {\n rows: [],\n text: '',\n normalizedAnswer: [],\n dcolumns: '',\n emojiArray: [],\n toggleOptions: ['Yes', 'No'],\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n sublabelProps: {},\n containerStyle: {},\n columnnHeaderProps: [],\n columns: [],\n transpose: false,\n orientation: 'column',\n answer: {},\n inputType: '',\n showAll: false,\n direction: 'column',\n isDynamic: false,\n useDcols: false\n};\n\nexport default withMatrixProps(Matrix);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isNumber from 'lodash/isNumber';\n\nimport Line from '../../components/Line';\nimport Baseline from '../../components/Baseline';\nimport { isObject, stripHTML } from '../../utils';\n\nclass Mixed extends React.Component {\n render() {\n const {\n text,\n answer,\n sublabels,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n sublabelProps,\n direction,\n lineProps\n } = this.props;\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {isObject(answer) ? Object.keys(answer).map(key => {\n let answerValue = answer[key];\n const isStringArray = typeof answerValue === 'string' && answerValue.match(/^\\[(.*)\\]$/);\n if (isStringArray && isStringArray[1]) {\n // answer looks like => \"[\"Option 1\",\"Option 2\"]\"\n answerValue = isStringArray[1].split(',').map(answerWithQuotationMark => answerWithQuotationMark.replace(/^\"(.*)\"$/, '$1')).join(', ');\n } else if (Array.isArray(answerValue)) {\n answerValue = answerValue.join(', ');\n } else if (isNumber(answerValue)) {\n answerValue = `${answerValue}`;\n }\n return (answerValue\n ? (\n <Line\n key={key}\n label={sublabels[key]}\n value={stripHTML(answerValue)}\n labelContainerProps={sublabelProps}\n valueContainerProps={answerProps}\n labelProps={labelProps}\n {...lineProps}\n />\n ) : null);\n }) : null}\n </Baseline>\n );\n }\n}\n\nMixed.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.shape({}),\n sublabels: PropTypes.shape({}),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n sublabelProps: PropTypes.shape({}),\n lineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nMixed.defaultProps = {\n text: '',\n answer: {},\n sublabels: {},\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n sublabelProps: {},\n lineProps: {},\n direction: 'column'\n};\n\nexport default Mixed;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { NUMBER_FORMATS } from '../../constants';\nimport { NumberFormats } from '../../constants/schemas';\nimport { stripHTML } from '../../utils';\n\nclass Number extends React.Component {\n getAnswerNumber() {\n const { answer, numberFormat } = this.props;\n const answerNum = answer ? +answer : '';\n const {\n COMMA,\n POINT,\n NUMBER\n } = NUMBER_FORMATS;\n\n switch (numberFormat) {\n case COMMA:\n return answerNum.toLocaleString();\n case POINT:\n return answerNum.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\n case NUMBER:\n default:\n return answer || '';\n }\n }\n\n render() {\n const {\n text,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n\n const answer = this.getAnswerNumber();\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {answer\n && (\n <Text {...answerProps}>\n {stripHTML(answer)}\n </Text>\n )}\n </Baseline>\n );\n }\n}\n\nNumber.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n numberFormat: NumberFormats.schema,\n direction: PropTypes.string\n};\n\nNumber.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n numberFormat: NumberFormats.default,\n direction: 'column'\n};\n\nexport default Number;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nclass Phone extends React.Component {\n // Check Ticket 1808956 for why phone number is formatted like that.\n // Lets separate the formatting logic, so we can use it in mobile part too (phone/index.native.js)\n renderTextContent = () => {\n const {\n answer: {\n country: AnswerCountryCode,\n area: AnswerAreaCode,\n phone: AnswerPhoneNumber,\n full: AnswerFullNumber\n },\n answerProps\n } = this.props;\n return (\n <Text {...answerProps}>\n {AnswerCountryCode && `+${stripHTML(AnswerCountryCode)} `}\n {AnswerAreaCode && `(${stripHTML(AnswerAreaCode)}) `}\n {AnswerPhoneNumber && `${stripHTML(AnswerPhoneNumber)}`.replace(/(\\d{3})(\\d{4})/, '$1-$2')}\n {stripHTML(AnswerFullNumber)}\n </Text>\n );\n };\n\n render() {\n const {\n text,\n labelProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {this.renderTextContent()}\n </Baseline>\n );\n }\n}\n\nPhone.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.shape({\n country: PropTypes.string,\n area: PropTypes.string,\n phone: PropTypes.string,\n full: PropTypes.string\n }),\n PropTypes.string\n ]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nPhone.defaultProps = {\n text: '',\n answer: {},\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Phone;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport withSubmissionWidgetProps from '../../hocs/SubmissionWidget';\nimport View from '../../components/View';\nimport List from '../../components/List';\nimport Baseline from '../../components/Baseline';\nimport { ListTypes } from '../../constants/schemas';\nimport { isEmpty } from '../../utils';\n\nconst Radio = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n editMode,\n isToggleActive,\n toggleProps,\n options,\n showAll,\n listType,\n containerProps,\n baselineProps,\n isSubmissionWidget,\n submissionWidgetAnswer,\n optionsArray,\n direction\n}) => {\n const answerString = (() => {\n if (Array.isArray(answer)) return answer;\n return typeof answer === 'object' ? Object.values(answer)[0] : answer;\n })();\n\n let items = answerString && answerString.length > 0\n ? [editMode ? [answerString, <View {...toggleProps} className={`${isToggleActive ? 'toggle-active' : 'toggle-passive'}`} />] : answerString]\n : [];\n\n if (isSubmissionWidget) {\n items = submissionWidgetAnswer.map(({ value }) => value);\n }\n\n const allOptions = !isEmpty(options) ? options.toString().split('|') : [];\n const allItems = isSubmissionWidget\n ? Object.values(optionsArray).map(({ value }) => value)\n : allOptions.concat(items.filter(item => allOptions.indexOf(typeof item === 'string' ? item : item[0]) === -1)); // For 'other' option type non static data\n\n return (\n <Baseline\n label={text}\n answerWrapperProps={answerWrapperProps}\n labelContainerProps={labelProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n items={items}\n type={listType}\n showAll={showAll}\n itemProps={answerProps}\n allItems={allItems}\n containerProps={containerProps}\n />\n </Baseline>\n );\n};\n\nRadio.propTypes = {\n options: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n other: PropTypes.string\n })\n ]),\n showAll: PropTypes.bool,\n listType: ListTypes.schema,\n containerProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n text: PropTypes.string,\n labelProps: PropTypes.shape({}),\n editMode: PropTypes.bool,\n isToggleActive: PropTypes.bool,\n toggleProps: PropTypes.shape([\n PropTypes.object\n ]),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nRadio.defaultProps = {\n options: '',\n answer: '',\n showAll: false,\n listType: ListTypes.default,\n containerProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n labelProps: {},\n text: '',\n editMode: false,\n toggleProps: {},\n isToggleActive: false,\n direction: 'column'\n};\n\nexport default withSubmissionWidgetProps(Radio);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Image from '../../components/Image';\nimport Baseline from '../../components/Baseline';\nimport { generateNumberArray } from '../../utils';\n\nconst StyledImage = Styled(props => <Image {...props} />)`\n width: 18px;\n height: 18px;\n margin-right: 5px;\n display: inline-block;\n vertical-align: text-bottom;\n`;\n\nclass Rating extends Component {\n constructor(props) {\n super(props);\n\n this.renderRating = this.renderRating.bind(this);\n this.renderSingleIcon = this.renderSingleIcon.bind(this);\n }\n\n get iconSources() {\n switch (this.props.starStyle) {\n case 'Stars':\n return ['https://cdn.jotfor.ms/assets/img/submission/rating_star_icon_rated.png', 'https://cdn.jotfor.ms/assets/img/submission/rating_star_icon_not_rated.png'];\n case 'Stars 2':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/star2_v2.png', 'https://cdn.jotfor.ms/assets/img/submission/rating_star_icon_not_rated.png'];\n case 'Hearts':\n return ['https://cdn.jotfor.ms/assets/img/submission/heart_active.svg', 'https://cdn.jotfor.ms/assets/img/submission/heart_normal.svg'];\n case 'Light Bulps':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/bulp_v2.png', 'https://cdn.jotfor.ms/assets/img/default-theme/star-rating/bulp_v2_not_rated.png'];\n case 'Lightnings':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/lightning_v2.png', 'https://cdn.jotfor.ms/assets/img/default-theme/star-rating/lightning_v2_not_rated.png'];\n case 'Flags':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/flag_v2.png', 'https://cdn.jotfor.ms/assets/img/default-theme/star-rating/flag_v2_not_rated.png'];\n case 'Shields':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/shield_v2.png', 'https://cdn.jotfor.ms/assets/img/default-theme/star-rating/shield_v2_not_rated.png'];\n case 'Pluses':\n return ['https://cdn.jotfor.ms/assets/img/default-theme/star-rating/plus_v2.png', 'https://cdn.jotfor.ms/assets/img/default-theme/star-rating/plus_v2_not_rated.png'];\n default:\n return ['https://cdn.jotfor.ms/assets/img/submission/rating_star_icon_rated.png', 'https://cdn.jotfor.ms/assets/img/submission/rating_star_icon_not_rated.png'];\n }\n }\n\n getStarCounts() {\n const {\n answer,\n stars\n } = this.props;\n const filledStars = parseInt(answer, 10) ? parseInt(answer, 10) : 0;\n const emptyStars = parseInt(stars - answer, 10) > -1 ? parseInt(stars - answer, 10) : 0;\n return ({ filledStars, emptyStars });\n }\n\n renderSingleIcon(star) {\n const {\n name,\n answer,\n answerProps,\n scaleFrom = 1\n } = this.props;\n // Decide whether star is filled or not based on answer data\n const isFilled = (star + 1) <= (answer - scaleFrom + 1);\n // Prepare icon props\n const key = `${name}_${isFilled ? 'filled' : 'empty'}_${star}`;\n const src = isFilled ? this.iconSources[0] : this.iconSources[1];\n const className = `${isFilled ? 'isFilled' : 'isEmpty'} ${answerProps.className || ''}`;\n\n return (\n <StyledImage\n src={src}\n key={key}\n className={className}\n {...answerProps}\n />\n );\n }\n\n renderRating() {\n const { stars } = this.props;\n\n const raitingArray = generateNumberArray(stars);\n return raitingArray.map(this.renderSingleIcon);\n }\n\n render() {\n const {\n text,\n labelProps,\n direction,\n answerWrapperProps,\n baselineProps\n } = this.props;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {this.renderRating()}\n </Baseline>\n );\n }\n}\n\nRating.propTypes = {\n name: PropTypes.string,\n text: PropTypes.string,\n answer: PropTypes.string,\n stars: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n starStyle: PropTypes.oneOf(['Stars', 'Stars 2', 'Hearts', 'Light Bulps', 'Lightnings', 'Flags', 'Shields', 'Pluses']),\n direction: PropTypes.string\n};\n\nRating.defaultProps = {\n name: '',\n text: '',\n answer: '',\n stars: '5',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n starStyle: 'Stars',\n direction: 'column'\n};\n\nexport default Rating;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nconst Scale = ({\n text,\n scaleAmount,\n answer,\n direction,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps\n}) => (\n <Baseline\n label={text}\n direction={direction}\n answerWrapperProps={answerWrapperProps}\n labelContainerProps={labelProps}\n {...baselineProps}\n >\n {answer ? <Text {...answerProps}>{`${stripHTML(answer)} / ${scaleAmount}`}</Text> : null}\n </Baseline>\n);\n\nScale.propTypes = {\n text: PropTypes.string,\n scaleAmount: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nScale.defaultProps = {\n text: '',\n scaleAmount: '5', // TODO: Questions API must provide scaleAmount\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Scale;\n","import React, { PureComponent } from 'react';\nimport Styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Baseline from '../../components/Baseline';\n\nconst SheetboxCellContainer = Styled.div`\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n`;\n\nconst SheetboxWrapper = Styled.div`\n text-align: center;\n line-height: 1;\n font-size: 16px;\n`;\n\nconst SheetboxInput = Styled.input`\n display: none;\n\n &:checked + label {\n border-color: #54B45C;\n background-color: #F0FFF1;\n background-image: url(https://cdn.jotfor.ms/assets/img/submission/sheetbox_check_icon.png);\n }\n`;\n\nconst SheetboxCustomInput = Styled.label`\n display: inline-block;\n width: 1.125em;\n height: 1.125em;\n border: 2px solid #D3D6EC;\n background-position: center;\n border-radius: 3px;\n background-size: 0.625em;\n background-repeat: no-repeat;\n cursor: pointer;\n`;\n\nclass Sheetbox extends PureComponent {\n render() {\n const {\n answer, id, onChange,\n text, answerWrapperProps, labelProps,\n direction, baselineProps\n } = this.props;\n\n return (\n <Baseline\n label={text}\n answerWrapperProps={answerWrapperProps}\n labelContainerProps={labelProps}\n direction={direction}\n {...baselineProps}\n >\n <SheetboxCellContainer>\n <SheetboxWrapper>\n <SheetboxInput\n id={id}\n type=\"checkbox\"\n checked={answer === '1'}\n onChange={onChange}\n />\n <SheetboxCustomInput htmlFor={id} />\n </SheetboxWrapper>\n </SheetboxCellContainer>\n </Baseline>\n );\n }\n}\n\nSheetbox.propTypes = {\n answer: PropTypes.string, // checked => 1, unchecked => 0\n onChange: PropTypes.func,\n id: PropTypes.string\n};\n\nSheetbox.defaultProps = {\n answer: '0',\n onChange: () => { },\n id: ''\n};\n\nexport default Sheetbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nconst Spinner = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{stripHTML(answer)}</Text>\n </Baseline>\n);\n\nSpinner.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nSpinner.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Spinner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport SimpleText from '../../components/Text';\nimport View from '../../components/View';\n\nclass Text extends React.Component {\n render() {\n const {\n text,\n labelProps,\n answerProps\n } = this.props;\n return (\n <View style={labelProps}>\n <SimpleText dangerouslySetInnerHTML={{ __html: text }} {...answerProps} />\n </View>\n );\n }\n}\n\nText.propTypes = {\n text: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({})\n};\n\nText.defaultProps = {\n text: '',\n labelProps: {},\n answerProps: {}\n};\n\nexport default Text;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport unescape from 'lodash/unescape';\n// Note: if u change unescape in here, please change also mobile side. (index.native.jsx)\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { sanitizeHTML, replaceUrlsWithAnchors } from '../../utils';\n\nconst StyledText = Styled(Text)`\n white-space: pre-wrap;\n`;\n\nclass Textarea extends React.Component {\n render() {\n const {\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction,\n wysiwyg,\n mde\n } = this.props;\n\n const isHTMLAnswerAllowed = wysiwyg === 'Enable' || mde === 'Yes';\n const sanitizedAnswer = isHTMLAnswerAllowed && sanitizeHTML(answer);\n const replacedText = replaceUrlsWithAnchors(sanitizedAnswer);\n\n const Child = isHTMLAnswerAllowed\n ? <StyledText dangerouslySetInnerHTML={{ __html: replacedText || unescape(sanitizedAnswer) }} noSanitize={replacedText} {...answerProps} />\n : (\n <StyledText {...answerProps}>\n {answer}\n </StyledText>\n );\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {Child}\n </Baseline>\n );\n }\n}\n\nTextarea.propTypes = {\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n text: PropTypes.string,\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string,\n wysiwyg: PropTypes.string,\n mde: PropTypes.string\n};\n\nTextarea.defaultProps = {\n answer: '',\n labelProps: {},\n text: '',\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column',\n wysiwyg: 'Disable',\n mde: 'No'\n};\n\nexport default Textarea;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport unescape from 'lodash/unescape';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { replaceUrlsWithAnchors, stripHTML } from '../../utils';\n\nconst Textbox = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => {\n const sanitizedAnswer = stripHTML(answer);\n const replacedText = replaceUrlsWithAnchors(sanitizedAnswer);\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {replacedText ? (\n <Text {...answerProps} dangerouslySetInnerHTML={{ __html: replacedText }} noSanitize />\n ) : (\n <Text {...answerProps}>{unescape(answer)}</Text>\n )}\n </Baseline>\n );\n};\n\nTextbox.propTypes = {\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n text: PropTypes.string,\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nTextbox.defaultProps = {\n answer: '',\n labelProps: {},\n text: '',\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Textbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n// import fr from 'moment/locale/fr';\n// import tr from 'moment/locale/tr';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nclass Time extends React.Component {\n // MOMENT.JS USAGE WITH LOCALES\n // constructor(props) {\n // super(props);\n // moment.locale('fr');\n // }\n\n // This function helps to share logic between web and native components\n getTimeValues() {\n const {\n answer: {\n hourSelect: AnswerHour,\n hourSelectRange: AnswerHourRange,\n minuteSelect: AnswerMinute,\n minuteSelectRange: AnswerMinuteRange,\n ampm: AnswerAMPM,\n ampmRange: AnswerAMPMRange,\n timeRangeDuration: TimeRangeDuration\n },\n format,\n range\n } = this.props;\n let timeString = AnswerHour || AnswerMinute ? `${AnswerHour || '0'}:${AnswerMinute || '00'} ${AnswerAMPM || ''}` : '';\n const timeObject = {\n date: moment(timeString, 'h:mm:ss A'),\n range: null\n };\n\n if (range === 'Yes') {\n const rangeString = AnswerHourRange || AnswerMinuteRange ? `${AnswerHourRange || '0'}:${AnswerMinuteRange || '00'} ${AnswerAMPMRange || ''}` : '';\n timeObject.range = moment(rangeString, 'h:mm:ss A');\n const timeMoment = moment(timeString, 'h:mm:ss A');\n const rangeMoment = moment(rangeString, 'h:mm:ss A');\n const isTimeValid = timeMoment.isValid();\n const isRangeValid = rangeMoment.isValid();\n timeString = isTimeValid || isRangeValid ? `${isTimeValid ? timeMoment.format(format) : ''} - ${isRangeValid ? rangeMoment.format(format) : ''}` : '';\n timeString = TimeRangeDuration ? `${timeString} (${TimeRangeDuration})` : timeString;\n }\n return {\n timeText: timeString,\n timeObject\n };\n }\n\n getText() {\n return this.getTimeValues().timeText;\n }\n\n getNonformattedTime() {\n return this.getTimeValues().timeObject;\n }\n\n render() {\n const {\n text,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{this.getText()}</Text>\n </Baseline>\n );\n }\n}\n\nTime.propTypes = {\n text: PropTypes.string,\n format: PropTypes.string,\n answer: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n hourSelect: PropTypes.string,\n hourSelectRange: PropTypes.string,\n minuteSelect: PropTypes.string,\n minuteSelectRange: PropTypes.string,\n ampm: PropTypes.string,\n ampmRange: PropTypes.string\n })\n ]),\n range: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nTime.defaultProps = {\n text: '',\n format: 'LT',\n answer: {},\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n range: '',\n direction: 'column'\n};\n\nexport default Time;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport List from '../../components/List';\nimport View from '../../components/View';\nimport Baseline from '../../components/Baseline';\nimport { ListTypes } from '../../constants/schemas';\n\nconst Yesno = ({\n text,\n options,\n listType,\n showAll,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n containerProps,\n editMode,\n isToggleActive,\n toggleProps,\n direction\n}) => {\n const items = answer\n ? [[answer, editMode && options.length > 0 && <View {...toggleProps} className={`${isToggleActive ? 'toggle-active' : 'toggle-passive'}`} />]]\n : [];\n\n const itemProps = Array.isArray(answerProps)\n ? answerProps.map(prop => ({ style: { backgroundColor: '#E2FFC4' }, ...prop }))\n : { style: { backgroundColor: '#E2FFC4' }, ...answerProps };\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n items={items}\n type={listType}\n showAll={showAll}\n itemProps={itemProps}\n allItems={options.split('|')}\n containerProps={containerProps}\n />\n </Baseline>\n );\n};\n\nYesno.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n options: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n toggleProps: PropTypes.shape([\n PropTypes.object\n ]),\n containerProps: PropTypes.shape({}),\n showAll: PropTypes.bool,\n editMode: PropTypes.bool,\n isToggleActive: PropTypes.bool,\n listType: ListTypes.schema,\n direction: PropTypes.string\n};\n\nYesno.defaultProps = {\n text: '',\n answer: '',\n options: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n toggleProps: {},\n containerProps: {},\n showAll: false,\n editMode: false,\n isToggleActive: false,\n listType: ListTypes.default,\n direction: 'column'\n};\n\nexport default Yesno;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nconst Autocomp = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n\n >\n <Text {...answerProps}>{answer}</Text>\n </Baseline>\n);\n\nAutocomp.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nAutocomp.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Autocomp;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nconst Autoincrement = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n answerWrapperProps={answerWrapperProps}\n labelContainerProps={labelProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{typeof answer === 'string' ? answer : ''}</Text>\n </Baseline>\n);\n\nAutoincrement.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nAutoincrement.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Autoincrement;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { LocaleTypes } from '../../constants/schemas';\nimport { getBirthdateText } from '../../utils';\n\nconst Birthdate = ({\n text,\n answer,\n locale,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction,\n dateFormat,\n format\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n direction={direction}\n answerWrapperProps={answerWrapperProps}\n {...baselineProps}\n >\n <Text {...answerProps}>\n {answer ? getBirthdateText({\n ...answer, format, locale, dateFormat\n }) : ''}\n </Text>\n </Baseline>\n);\n\nBirthdate.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string\n }),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n locale: LocaleTypes.schema,\n format: PropTypes.string,\n direction: PropTypes.string\n};\n\nBirthdate.defaultProps = {\n text: '',\n answer: {\n year: '',\n month: '',\n day: ''\n },\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n locale: LocaleTypes.default,\n format: 'mmddyyyy',\n direction: 'column'\n};\n\nexport default Birthdate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nconst Calculation = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{answer}</Text>\n </Baseline>\n);\n\nCalculation.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nCalculation.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Calculation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nconst Grading = ({\n text,\n total,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => {\n const totalGrading = answer && Object.values(answer).reduce((accumulator, value) => {\n const intValue = parseInt(value, 10);\n if (!Number.isNaN(intValue)) {\n return accumulator + intValue;\n }\n return accumulator;\n }, 0);\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {answer ? Object.keys(answer).map(answerLine => <Text {...answerProps}>{`${answerLine}: ${answer[answerLine] ? answer[answerLine] : 0}`}</Text>) : null}\n {totalGrading ? <Text {...answerProps}>{`Total: ${totalGrading || 0} / ${total}`}</Text> : null}\n </Baseline>\n );\n};\n\nGrading.propTypes = {\n text: PropTypes.string,\n total: PropTypes.string,\n answer: PropTypes.shape({}),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nGrading.defaultProps = {\n text: '',\n total: '',\n answer: {},\n labelProps: {},\n answerProps: {\n style: {\n display: 'block'\n }\n },\n baselineProps: {},\n answerWrapperProps: {},\n direction: 'column'\n};\n\nexport default Grading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nconst Hidden = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => {\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {answer ? answer.split('\\r\\n').map(line => <Text {...answerProps}>{line}</Text>) : null}\n </Baseline>\n );\n};\n\nHidden.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nHidden.defaultProps = {\n text: '',\n answer: '',\n answerProps: {\n style: {\n display: 'block'\n }\n },\n baselineProps: {},\n answerWrapperProps: {},\n labelProps: {},\n direction: 'column'\n};\n\nexport default Hidden;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nconst Range = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => {\n const rangeFrom = parseInt(answer.from, 10) ? parseInt(answer.from, 10) : 0;\n const rangeTo = parseInt(answer.to, 10) ? parseInt(answer.to, 10) : 0;\n const difference = rangeTo - rangeFrom;\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{`From: ${stripHTML(rangeFrom)}`}</Text>\n <Text {...answerProps}>{`To: ${stripHTML(rangeTo)}`}</Text>\n <Text {...answerProps}>{`Difference: ${stripHTML(difference)}`}</Text>\n </Baseline>\n );\n};\n\nRange.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.shape({\n from: PropTypes.string,\n to: PropTypes.string\n }),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nRange.defaultProps = {\n text: '',\n answer: {\n from: '',\n to: ''\n },\n answerProps: {\n style: {\n display: 'block'\n }\n },\n answerWrapperProps: {},\n baselineProps: {},\n labelProps: {},\n direction: 'column'\n};\n\nexport default Range;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport View from '../../components/View';\nimport Baseline from '../../components/Baseline';\nimport Imageline from '../../components/Imageline';\nimport { isBase64Image } from '../../utils';\n\nclass Signature extends React.Component {\n render() {\n const {\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n emptySignatureProps,\n emptyAnswerProps,\n direction\n } = this.props;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {(answer && !/(jotform.com\\/$)|(jotform.pro\\/$)/.test(answer))\n ? (\n <Imageline\n label=\"signature\"\n value={answer}\n noCache={!isBase64Image(answer)}\n {...answerProps}\n />\n ) : (\n <View {...emptyAnswerProps}>\n <View {...emptySignatureProps} />\n </View>\n )}\n </Baseline>\n );\n }\n}\n\nSignature.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n emptySignatureProps: PropTypes.shape({}),\n emptyAnswerProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nSignature.defaultProps = {\n text: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n containerStyle: {},\n emptySignatureProps: {},\n emptyAnswerProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Signature;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\n\nimport { stripHTML } from '../../utils';\n\nconst Slider = ({\n text,\n maxValue,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{`${stripHTML(answer)} / ${maxValue}`}</Text>\n </Baseline>\n);\n\nSlider.propTypes = {\n text: PropTypes.string,\n maxValue: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nSlider.defaultProps = {\n text: '',\n maxValue: '',\n answer: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Slider;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Hypertext from '../../../components/Hypertext';\nimport Imageline from '../../../components/Imageline';\nimport View from '../../../components/View';\n\nimport {\n getFixedUrl, base64Decode, optimizeImageUrl, sanitizeHTML\n} from '../../../utils';\n\nclass MetaWidget extends Component {\n render() {\n const {\n metaData: { type, value }, answer, optimizeImage, hideImageLine\n } = this.props;\n\n switch (type) {\n case 'links':\n return value.map(({ url, name }) => <Hypertext key={`${url}_${name}`} href={getFixedUrl(url)}>{name}</Hypertext>);\n case 'imagelinks':\n return value.map(({ url, name }) => {\n let _url = getFixedUrl(url);\n _url = optimizeImage ? optimizeImageUrl(_url) : _url;\n\n return hideImageLine\n ? <Hypertext key={`hypertext_${name}`} href={url}>{name}</Hypertext>\n : <Imageline key={`${url}_${name}`} value={_url} imageLabel={name} />;\n });\n case 'htmltext':\n return <View dangerouslySetInnerHTML={{ __html: sanitizeHTML(base64Decode(value)) }} />;\n default:\n return answer;\n }\n }\n}\n\nMetaWidget.propTypes = {\n answer: PropTypes.string,\n metaData: PropTypes.shape({}),\n optimizeImage: PropTypes.bool,\n hideImageLine: PropTypes.bool\n};\n\nMetaWidget.defaultProps = {\n answer: '',\n metaData: null,\n optimizeImage: false,\n hideImageLine: false\n};\n\nexport default MetaWidget;\n","import React, { createRef, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport Baseline from '../../components/Baseline';\n\nclass Widget extends Component {\n constructor(props) {\n super(props);\n\n const {\n answer: value,\n frameWidth,\n frameHeight\n } = props;\n\n this.state = {\n value,\n frameWidth,\n frameHeight,\n isFrameLoaded: false\n };\n\n this.iframeRef = createRef();\n\n this.sendMessage = this.sendMessage.bind(this);\n this.handleMessage = this.handleMessage.bind(this);\n this.handleFrameLoad = this.handleFrameLoad.bind(this);\n this.renderWidgetFrame = this.renderWidgetFrame.bind(this);\n this.renderWidgetEmbed = this.renderWidgetEmbed.bind(this);\n }\n\n componentDidMount() {\n // Initialize message listening\n global.addEventListener('message', this.handleMessage);\n }\n\n get frameSrc() {\n try {\n const { frameSrc, qid } = this.props;\n let url = frameSrc;\n\n if (Widget.jotformUrlRegex.test(frameSrc)) {\n const [, projectName, widgetPath] = frameSrc.match(Widget.jotformUrlRegex);\n url = `https://${projectName}.jotform.io/${widgetPath}`;\n }\n\n url = new URL(url);\n\n const { searchParams } = url;\n\n searchParams.set('ref', global.location.origin);\n searchParams.append('qid', qid);\n\n return url.toString();\n } catch (error) {\n return null;\n }\n }\n\n handleMessage({ data }) {\n const { qid, type, ...parsedData } = safeJSONParse(data, {});\n const { qid: questionID, handleChange } = this.props;\n\n // Ignore this message\n if (questionID !== qid) {\n return;\n }\n\n switch (type) {\n case 'size': {\n const { width: frameWidth, height: frameHeight } = parsedData;\n this.setState({ frameWidth, frameHeight });\n break;\n }\n case 'data': {\n const { valid, value } = parsedData;\n handleChange(value, valid);\n break;\n }\n default:\n // console.log('unhandled message', type, 'data', parsedData);\n }\n }\n\n handleFrameLoad() {\n const { qid, formID, selectedField } = this.props;\n const { value } = this.state;\n\n this.setState({ isFrameLoaded: true }, () => {\n // Initialize widget\n global.widgetFrameLoaded(\n qid,\n { formID },\n value,\n { selectedField }\n );\n });\n }\n\n sendMessage(data, type) {\n const { qid } = this.props;\n if (this.iframeRef.current) {\n this.iframeRef.current.contentWindow.postMessage(\n JSON.stringify({ ...data, type, qid }),\n '*' // global.location.origin There is currently a cross origin domain issue due to different origins\n );\n }\n }\n\n renderWidgetEmbed() {\n return null;\n }\n\n renderWidgetFrame() {\n const { frameWidth, frameHeight, isFrameLoaded } = this.state;\n const { qid, settings } = this.props;\n\n const widgetSettings = encodeURIComponent(\n JSON.stringify(\n Object.keys(settings).map(name => ({ name, value: settings[name] }))\n )\n );\n\n return this.frameSrc ? (\n <>\n <iframe\n id={`customFieldFrame_${qid}`}\n className={isFrameLoaded && 'custom-field-frame-rendered'}\n frameBorder=\"0\"\n width={frameWidth}\n height={frameHeight}\n data-width={frameWidth}\n data-height={frameHeight}\n ref={this.iframeRef}\n onLoad={this.handleFrameLoad}\n src={this.frameSrc}\n title=\"Widget Frame\"\n />\n <input\n type=\"hidden\"\n id={`widget_settings_${qid}`}\n className=\"form-hidden form-widget-settings\"\n value={widgetSettings}\n data-version=\"2\"\n />\n </>\n ) : null;\n }\n\n render() {\n const { widgetType } = this.props;\n\n return (\n <Baseline>\n {widgetType === 'field' && this.renderWidgetFrame()}\n {widgetType === 'direct_embed' && this.renderWidgetEmbed()}\n </Baseline>\n );\n }\n}\n\nWidget.propTypes = {\n qid: PropTypes.string,\n answer: PropTypes.string,\n frameSrc: PropTypes.string,\n widgetType: PropTypes.string,\n handleChange: PropTypes.func,\n frameWidth: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n frameHeight: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n settings: PropTypes.shape({}),\n formID: PropTypes.string.isRequired\n};\n\nWidget.defaultProps = {\n qid: '',\n answer: '',\n frameSrc: '',\n widgetType: '',\n frameWidth: 100,\n frameHeight: 100,\n handleChange: f => f,\n settings: {}\n};\n\nWidget.jotformUrlRegex = /(?:https?:)?(?:\\/\\/)?((?:data-)?(?:app-)?widgets)\\.jotform\\.io\\/(.*)/;\n\nexport default Widget;\n","import { safeJSONParse } from '@jotforminc/utils';\n\nimport { getFixedUrl, optimizeImageUrl } from '../../utils';\n\nclass WidgetUtils {\n getImageArray(widgetMetaData, optimizeImage = false, timestamp) {\n if (widgetMetaData) {\n const tempAnswer = safeJSONParse(widgetMetaData);\n if (tempAnswer && tempAnswer.widget_metadata && tempAnswer.widget_metadata.type === 'imagelinks') {\n return tempAnswer.widget_metadata.value.map(item => {\n const { name, url, base64 } = item;\n let _url = getFixedUrl(base64 || url, timestamp);\n _url = optimizeImage ? optimizeImageUrl(_url) : _url;\n return {\n name,\n url: _url\n };\n });\n }\n }\n return [];\n }\n\n encodeRequestUrl(url) {\n return url.replace('#', '%23');\n }\n}\n\nexport default new WidgetUtils();\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FileUtils } from '@jotforminc/upload-fields';\n\nimport Imageline from '../../../components/Imageline';\nimport Hypertext from '../../../components/Hypertext';\nimport WidgetUtils from '../utils';\n\nclass ImageUploadPreview extends React.Component {\n render() {\n const {\n answer, onImagePress, optimizeImage, showImageHyperlink, timestamp\n } = this.props;\n const urls = WidgetUtils.getImageArray(answer, optimizeImage, timestamp);\n return urls.map(({ name, url }) => (\n <>\n <Imageline label={name} value={url} onPress={onImagePress} />\n {showImageHyperlink && (\n <Hypertext\n key={`hypertext_${name}`}\n href={FileUtils.getUploadUrl(WidgetUtils.encodeRequestUrl(url))}\n >\n {name}\n </Hypertext>\n )}\n </>\n ));\n }\n}\n\nImageUploadPreview.propTypes = {\n answer: PropTypes.string,\n onImagePress: PropTypes.func,\n optimizeImage: PropTypes.bool,\n showImageHyperlink: PropTypes.bool\n};\n\nImageUploadPreview.defaultProps = {\n answer: '',\n onImagePress: null,\n optimizeImage: false,\n showImageHyperlink: false\n};\n\nexport default ImageUploadPreview;\n","// Smooth Signature\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Imageline from '../../../components/Imageline';\nimport { isNative } from '../../../utils/environment';\n\nconst SmoothSignature = ({\n answer, cfname, onImagePress, optimizeImage\n}) => (\n <Imageline\n label={cfname}\n value={answer}\n onPress={onImagePress}\n imageStyle={isNative() ? { flex: 1, height: 160 } : undefined}\n optimizeImage={optimizeImage}\n noImgPlaceholder\n />\n);\n\nSmoothSignature.propTypes = {\n answer: PropTypes.string,\n cfname: PropTypes.string,\n onImagePress: PropTypes.func,\n optimizeImage: PropTypes.bool\n};\n\nSmoothSignature.defaultProps = {\n answer: '',\n cfname: '',\n onImagePress: null,\n optimizeImage: false\n};\n\nexport default SmoothSignature;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport unescape from 'lodash/unescape';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport Tableview from '../../../components/Tableview';\nimport { stripHTML, processWidgetTableData } from '../../../utils';\n\nconst ConfigurableList = ({\n answer,\n answerProps,\n sublabelProps,\n containerStyle,\n submitNarration,\n transpose,\n selectedField,\n fields\n}) => {\n const parsedAnswer = (answer && typeof answer === 'object') ? answer : safeJSONParse(stripHTML(answer), []);\n let columns = parsedAnswer.length > 0 ? Object.keys(parsedAnswer[0]) : [];\n let tableData = parsedAnswer.length > 0 ? parsedAnswer.filter(key => key).map(Object.values) : [];\n ({ columns, tableData } = processWidgetTableData(selectedField, parsedAnswer, columns, tableData, fields));\n return (\n parsedAnswer.length > 0 && submitNarration !== 'Yes'\n ? (\n <Tableview\n columns={columns}\n tableData={tableData}\n answerProps={answerProps}\n headerProps={sublabelProps}\n containerStyle={containerStyle}\n transpose={transpose}\n />\n )\n : (<div>{unescape(answer)}</div>)\n );\n};\n\nConfigurableList.propTypes = {\n answer: PropTypes.string,\n transpose: PropTypes.bool,\n submitNarration: PropTypes.string,\n answerProps: PropTypes.shape({}),\n sublabelProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({})\n};\n\nConfigurableList.defaultProps = {\n answer: '',\n transpose: false,\n submitNarration: 'No',\n answerProps: {},\n sublabelProps: {},\n containerStyle: {}\n};\n\nexport default ConfigurableList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FileUtils } from '@jotforminc/upload-fields';\n\nimport MetaWidget from '../MetaWidget';\nimport Imageline from '../../../components/Imageline';\nimport { getFixedUrl, optimizeImageUrl } from '../../../utils';\nimport Baseline from '../../../components/Baseline';\nimport { isNative } from '../../../utils/environment';\nimport Hypertext from '../../../components/Hypertext';\nimport WidgetUtils from '../utils';\n\nconst TakePhoto = props => {\n const {\n answer,\n metaData,\n onImagePress,\n thumbnail,\n baselineProps,\n selectedField,\n optimizeImage,\n showImageLink,\n hideImageLine,\n timestamp\n } = props;\n const { selectionProps = {} } = baselineProps;\n const { isSelectable = false, onSelect = f => f } = selectionProps;\n\n const handlePress = () => {\n if (isSelectable) {\n onSelect('answer');\n return;\n }\n onImagePress();\n };\n\n if (!metaData) {\n let value = answer ? getFixedUrl(answer, timestamp) : null;\n value = optimizeImage ? optimizeImageUrl(value) : value;\n if (thumbnail !== '') value = thumbnail;\n baselineProps.widgetId = selectedField;\n\n const href = value ? FileUtils.getUploadUrl(WidgetUtils.encodeRequestUrl(value)) : null;\n const name = value ? FileUtils.getFileName(value) : '';\n\n const isInitialWidget = baselineProps.widgetId === '533a8c19a3f5fec35d00009a';\n\n return (\n <Baseline {...baselineProps}>\n {!hideImageLine && (\n <Imageline\n value={value}\n onPress={handlePress}\n onLongPress={() => onSelect('answer')}\n imageStyle={isNative() ? { flex: 1, height: 160 } : undefined}\n noImgPlaceholder={isInitialWidget}\n />\n )}\n {showImageLink && href && (\n <Hypertext\n key={`hypertext_${name}`}\n href={href}\n >\n {name}\n </Hypertext>\n )}\n </Baseline>\n );\n }\n\n return <MetaWidget {...props} />;\n};\n\nTakePhoto.propTypes = {\n metaData: PropTypes.shape({\n value: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n url: PropTypes.string\n }))\n }),\n baselineProps: PropTypes.shape({\n selectionProps: PropTypes.shape({\n isSelectable: PropTypes.bool,\n onSelect: PropTypes.func\n })\n }),\n onImagePress: PropTypes.func,\n answer: PropTypes.string,\n thumbnail: PropTypes.string,\n selectedField: PropTypes.string,\n optimizeImage: PropTypes.bool,\n showImageLink: PropTypes.bool,\n hideImageLine: PropTypes.bool\n};\n\nTakePhoto.defaultProps = {\n metaData: null,\n baselineProps: {\n selectionProps: {\n isSelectable: false,\n onSelect: f => f,\n selectedParts: [],\n wrapperStyle: {}\n }\n },\n answer: '',\n thumbnail: '',\n onImagePress: null,\n selectedField: '',\n optimizeImage: false,\n showImageLink: false,\n hideImageLine: false\n};\n\nexport default TakePhoto;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getFixedUrl } from '../../../utils';\nimport Hypertext from '../../../components/Hypertext';\n\nconst VoiceRecorder = ({ answer, onPress }) => {\n return <Hypertext onPress={onPress} href={getFixedUrl(answer)} linkText={answer}>{answer}</Hypertext>;\n};\n\nVoiceRecorder.propTypes = {\n answer: PropTypes.string,\n onPress: PropTypes.func\n};\n\nVoiceRecorder.defaultProps = {\n answer: '',\n onPress: () => { }\n};\n\nexport default VoiceRecorder;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getFixedUrl } from '../../../utils';\nimport Hypertext from '../../../components/Hypertext';\n\nconst csvUrlRegex = /(?:\\r\\n)?CSV\\:\\s*(.*?\\.csv)/; // eslint-disable-line\n\nconst LocationCoordinate = ({ answer }) => {\n // Answer matches the expected format\n if (csvUrlRegex.test(answer)) {\n const [fullMatch, csvPath] = answer.match(csvUrlRegex);\n return <Hypertext href={getFixedUrl(csvPath)}>{answer.replace(fullMatch, '')}</Hypertext>;\n }\n\n return <Hypertext href={answer}>{answer}</Hypertext>;\n};\n\nLocationCoordinate.propTypes = {\n answer: PropTypes.string\n};\n\nLocationCoordinate.defaultProps = {\n answer: ''\n};\n\nexport default LocationCoordinate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ListTypes } from '../../../constants/schemas';\n\nimport List from '../../../components/List';\n\nconst ChecklistWidget = ({\n listType,\n answer,\n hideunchecked,\n answerProps,\n showAll,\n containerProps\n}) => {\n const answerLines = (answer || '').split(/\\r\\n|\\n|\\r/);\n const answerCheckboxObjects = answerLines && answerLines.map(item => {\n const [_, checkedStatus, optionName] = item.match(/(^(?:UN)?CHECKED): (.*)/) || []; // eslint-disable-line\n\n return {\n checked: !(checkedStatus === 'UNCHECKED'),\n optionName: (optionName || item)\n };\n });\n\n const allItems = answerCheckboxObjects.map(({ optionName }) => optionName);\n const items = answerCheckboxObjects.filter(({ checked }) => checked).map(({ optionName }) => optionName);\n\n const longerOptions = allItems.length > items.length ? allItems : items;\n const itemProps = Array.isArray(answerProps) ? answerProps : longerOptions.map(() => answerProps);\n\n return (\n <List\n items={items}\n type={listType}\n allItems={allItems}\n showAll={showAll || !hideunchecked}\n itemProps={itemProps}\n containerProps={containerProps}\n />\n );\n};\n\nChecklistWidget.propTypes = {\n listType: ListTypes.schema,\n answer: PropTypes.string,\n hideunchecked: PropTypes.bool,\n showAll: PropTypes.bool,\n answerProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({})\n};\n\nChecklistWidget.defaultProps = {\n answer: '',\n listType: ListTypes.default,\n hideunchecked: true,\n showAll: false,\n answerProps: {},\n containerProps: {}\n};\n\nexport default ChecklistWidget;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport List from '../../../components/List';\nimport { ListPropTypes } from '../../../constants/schemas';\n\nconst DynamicTextBoxWidget = ({\n answer,\n listType,\n answerProps,\n containerProps\n}) => {\n const answerLines = answer.split(/\\r\\n|\\r|\\n/g);\n return (\n <List\n type={listType}\n items={answerLines}\n allItems={answerLines}\n itemProps={Array.isArray(answerProps) ? answerProps : (answerLines || []).map(() => answerProps)}\n containerProps={containerProps}\n />\n );\n};\n\nDynamicTextBoxWidget.propTypes = {\n answer: PropTypes.string,\n ...ListPropTypes.schema\n};\n\nDynamicTextBoxWidget.defaultProps = {\n answer: '',\n ...ListPropTypes.default\n};\n\nexport default DynamicTextBoxWidget;\n","// Tiny MCE\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport unescape from 'lodash/unescape';\nimport DOMPurify from 'dompurify';\n\nimport View from '../../../components/View';\n\nconst TinyMCE = ({ answer }) => (\n <View dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(unescape(answer)) }} />\n);\n\nTinyMCE.propTypes = {\n answer: PropTypes.string\n};\n\nTinyMCE.defaultProps = {\n answer: ''\n};\n\nexport default TinyMCE;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ListTypes } from '../../../constants/schemas';\nimport List from '../../../components/List';\n\nconst ButtonCheckboxWidget = ({\n listType,\n answer,\n hideunchecked,\n answerProps,\n showAll,\n containerProps,\n options\n}) => {\n const optionsChecked = (answer || '').split(/\\r\\n|\\n|\\r/);\n const optionsAll = options.split(/\\r\\n|\\n|\\r/);\n\n const longerOptions = optionsAll.length > optionsChecked.length ? optionsAll : optionsChecked;\n const itemProps = Array.isArray(answerProps) ? answerProps : longerOptions.map(() => answerProps);\n\n return (\n <List\n items={optionsChecked}\n type={listType}\n allItems={optionsAll}\n showAll={showAll || !hideunchecked}\n itemProps={itemProps}\n containerProps={containerProps}\n />\n );\n};\n\nButtonCheckboxWidget.propTypes = {\n listType: ListTypes.schema,\n answer: PropTypes.string,\n hideunchecked: PropTypes.bool,\n showAll: PropTypes.bool,\n answerProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n options: PropTypes.string\n};\n\nButtonCheckboxWidget.defaultProps = {\n answer: '',\n listType: ListTypes.default,\n hideunchecked: true,\n showAll: false,\n answerProps: {},\n containerProps: {},\n options: ''\n};\n\nexport default ButtonCheckboxWidget;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport View from '../../../components/View';\nimport Imageline from '../../../components/Imageline';\nimport { getFixedUrl, optimizeImageUrl } from '../../../utils';\n\nconst UploadCare = props => {\n const { answer, onImagePress, optimizeImage } = props;\n return (\n <View>\n {answer.split('\\r\\n').map(answerPart => {\n let value = null;\n if (answerPart) {\n const url = getFixedUrl(answerPart);\n value = optimizeImage ? optimizeImageUrl(url) : url;\n }\n return <Imageline value={value} onPress={onImagePress} />;\n })}\n </View>\n );\n};\n\nUploadCare.propTypes = {\n onImagePress: PropTypes.func,\n answer: PropTypes.string,\n optimizeImage: PropTypes.bool\n};\n\nUploadCare.defaultProps = {\n answer: '',\n onImagePress: null,\n optimizeImage: false\n};\n\nexport default UploadCare;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\nimport View from '../../../components/View';\n\nconst DatePickerWidget = ({\n answer,\n description,\n descriptionProps\n}) => {\n const { className = '' } = descriptionProps;\n const descriptionPart = description ? <Text className={className}>{description}</Text> : null;\n return (\n <View>\n {descriptionPart}\n <Text>{answer}</Text>\n </View>\n );\n};\n\nDatePickerWidget.propTypes = {\n descriptionProps: PropTypes.shape({\n className: PropTypes.string\n }),\n description: PropTypes.string,\n answer: PropTypes.string\n};\n\nDatePickerWidget.defaultProps = {\n descriptionProps: {},\n answer: '',\n description: ''\n};\n\nexport default DatePickerWidget;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\n\nconst GeoLocation = ({ answer }) => <Text>{answer}</Text>;\n\nGeoLocation.propTypes = {\n answer: PropTypes.string\n};\n\nGeoLocation.defaultProps = {\n answer: ''\n};\n\nexport default GeoLocation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\n\nconst GPSLocation = ({ answer }) => <Text>{answer}</Text>;\n\nGPSLocation.propTypes = {\n answer: PropTypes.string\n};\n\nGPSLocation.defaultProps = {\n answer: ''\n};\n\nexport default GPSLocation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\n\nconst GeoStamp = ({ answer }) => <Text>{answer}</Text>;\n\nGeoStamp.propTypes = {\n answer: PropTypes.string\n};\n\nGeoStamp.defaultProps = {\n answer: ''\n};\n\nexport default GeoStamp;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getFixedUrl } from '../../../utils';\nimport Hypertext from '../../../components/Hypertext';\n\nconst VideoRecorder = ({ answer, onPress }) => {\n return <Hypertext onPress={onPress} href={getFixedUrl(answer)} linkText={answer}>{answer}</Hypertext>;\n};\n\nVideoRecorder.propTypes = {\n answer: PropTypes.string,\n onPress: PropTypes.func\n};\n\nVideoRecorder.defaultProps = {\n answer: '',\n onPress: () => { }\n};\n\nexport default VideoRecorder;\n","// Loom Video Recorder\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Hypertext from '../../../components/Hypertext';\nimport { getFixedUrl } from '../../../utils';\n\nconst LoomVideoRecorder = ({ metaData, widgetVideoMode }) => {\n return metaData ? metaData.value.map(({ url, name }) => {\n const fixedUrl = getFixedUrl(url);\n const key = `${url}_${name}`;\n return widgetVideoMode ? (\n <iframe\n key={key}\n title={name}\n src={fixedUrl}\n width='400px'\n height='300px'\n frameBorder='0'\n allowFullScreen={true}\n />\n ) : <Hypertext key={key} href={fixedUrl} target='_blank'>{name}</Hypertext>;\n }) : '';\n};\n\nLoomVideoRecorder.propTypes = {\n metaData: PropTypes.shape({\n value: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n url: PropTypes.string\n }))\n }),\n widgetVideoMode: PropTypes.bool\n};\n\nLoomVideoRecorder.defaultProps = {\n metaData: null,\n widgetVideoMode: false\n};\n\nexport default LoomVideoRecorder;\n","import {\n TABLEVIEW_WIDGETS,\n LISTVIEW_WIDGETS,\n IMAGE_WIDGETS,\n HTML_WIDGETS\n} from '../../../constants';\n\n// Please follow the naming rule.\n// Add name of the widget in its file.\nimport EditableWidget from '../../../editables/Widget';\nimport ImageUploadPreview from './5295b800485bd19f5d000005';\nimport SmoothSignature from './529467003477f3512000001f';\nimport ConfigurableList from './533946093c1ad0c45d000070';\nimport TakePhoto from './529c8286a75dae5e7f000005';\nimport VoiceRecorder from './5297188631357d390700000d';\nimport LocationCoordinate from './55486915347ef1086c000017';\nimport ChecklistWidget from './52961c97e3e5266570000004';\nimport DynamicTextBoxWidget from './528ee7cf8d5a5fc76a000004';\nimport TinyMCE from './5295f8da6396ecd66d00000e';\nimport ButtonCheckboxWidget from './5290397c57a764425100000b';\nimport UploadCare from './573ae96be567f40178000011';\nimport DatePickerWidget from './52934dbf3be147110a000030';\nimport GeoLocation from './5343b614d5f416b42a000004';\nimport GPSLocation from './5379f8c6d6aa823065000009';\nimport GeoStamp from './5935688a725d1797050002e7';\nimport VideoRecorder from './5ce54324d21603df40000031';\nimport LoomVideoRecorder from './302518f9f4744e3ae379dd71';\n\nconst tableViewWidgetComponents = TABLEVIEW_WIDGETS.reduce((prev, curr) => ({\n ...prev,\n [curr]: ConfigurableList\n}), {});\n\nconst listViewWidgetComponents = LISTVIEW_WIDGETS.reduce((prev, curr) => ({\n ...prev,\n [curr]: DynamicTextBoxWidget\n}), {});\n\nconst imageWidgetComponents = IMAGE_WIDGETS.reduce((prev, curr) => ({\n ...prev,\n [curr]: TakePhoto\n}), {});\n\nconst htmlWidgetComponents = HTML_WIDGETS.reduce((prev, curr) => ({\n ...prev,\n [curr]: TinyMCE\n}), {});\n\nexport default {\n // format\n // [widgetKey] : 'widgetFile'\n ...tableViewWidgetComponents,\n ...listViewWidgetComponents,\n ...imageWidgetComponents,\n ...htmlWidgetComponents,\n '5295b800485bd19f5d000005': ImageUploadPreview,\n '529467003477f3512000001f': SmoothSignature,\n '5297188631357d390700000d': VoiceRecorder,\n '55486915347ef1086c000017': LocationCoordinate,\n '52961c97e3e5266570000004': ChecklistWidget,\n '5297606bfe8fa6bf0d000016': EditableWidget, // Data Grid\n '5293065005a7114f7000002a': EditableWidget, // Fit Text\n '5290397c57a764425100000b': ButtonCheckboxWidget,\n '573ae96be567f40178000011': UploadCare,\n '52934dbf3be147110a000030': DatePickerWidget,\n '5343b614d5f416b42a000004': GeoLocation,\n '5379f8c6d6aa823065000009': GPSLocation,\n '5935688a725d1797050002e7': GeoStamp,\n '5ce54324d21603df40000031': VideoRecorder,\n '302518f9f4744e3ae379dd71': LoomVideoRecorder\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'lodash/memoize';\n\nimport MetaWidget from './MetaWidget';\nimport CustomWidgets from './CustomWidgets';\nimport Text from '../../components/Text';\nimport Hypertext from '../../components/Hypertext';\nimport Baseline from '../../components/Baseline';\nimport { parseJSONObject, sanitizeHTML } from '../../utils';\nimport View from '../../components/View';\n\nclass Widget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n metaData: false,\n CustomComponent: null\n };\n }\n\n static getDerivedStateFromProps({ answer, selectedField }) {\n return {\n metaData: Widget.parseMetaData(answer),\n CustomComponent: CustomWidgets[selectedField]\n };\n }\n\n customAnswerForWidget() {\n const { answer, URL, answerProps: { textProps } } = this.props;\n const { metaData, CustomComponent } = this.state;\n\n if (CustomComponent) {\n return (\n <CustomComponent\n onPress={this.props.answerProps.onLinkPress}\n onImagePress={this.props.answerProps.onImagePress}\n metaData={metaData}\n {...this.props}\n />\n );\n }\n\n if (metaData) {\n return (\n <MetaWidget\n metaData={metaData}\n onImagePress={this.props.answerProps.onImagePress}\n {...this.props}\n />\n );\n }\n\n if (!answer && URL) {\n return <Hypertext href={URL} onPress={this.props.answerProps.onLinkPress} {...this.props}>{URL}</Hypertext>;\n }\n\n if (typeof answer === 'string') {\n return <Text {...textProps}>{sanitizeHTML(unescape(answer.replace(/&/g, '&')))}</Text>;\n }\n if (Array.isArray(answer)) {\n return <Text>{sanitizeHTML(answer.join(' '))}</Text>;\n }\n if (typeof answer === 'object') {\n return <Text>{sanitizeHTML(Object.keys(answer).map(key => answer[key]).join(' '))}</Text>;\n }\n }\n\n render() {\n const {\n text,\n labelProps,\n dontSpreadAnswerPropsToWrapper,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n } = this.props;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <View {...!dontSpreadAnswerPropsToWrapper ? answerProps : {}}>\n {this.customAnswerForWidget()}\n </View>\n </Baseline>\n );\n }\n}\n\nWidget.propTypes = {\n URL: PropTypes.string,\n text: PropTypes.string,\n description: PropTypes.string,\n cfname: PropTypes.string,\n selectedField: PropTypes.string,\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n dontSpreadAnswerPropsToWrapper: PropTypes.bool,\n answerProps: PropTypes.shape({\n onLinkPress: PropTypes.func,\n onImagePress: PropTypes.func\n }),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containanswerPropserStyle: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nWidget.defaultProps = {\n URL: '',\n text: '',\n description: '',\n cfname: '',\n selectedField: '',\n answer: '',\n labelProps: {},\n dontSpreadAnswerPropsToWrapper: false,\n answerProps: { onLinkPress: () => { }, onImagePress: null },\n answerWrapperProps: {},\n baselineProps: {},\n containanswerPropserStyle: {},\n direction: 'column'\n};\n\nWidget.parseMetaData = memoize(answer => {\n const { widget_metadata: metaData } = parseJSONObject(answer) || {};\n return metaData;\n});\n\nexport default Widget;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { closest } from '@jotforminc/utils';\n\nclass ClickOutside extends Component {\n constructor(props) {\n super(props);\n\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n const { forceCloseOutside } = this.props;\n if (!forceCloseOutside) window.addEventListener('click', this.handleClickOutside, true);\n }\n\n componentWillUnmount() {\n const { forceCloseOutside } = this.props;\n if (!forceCloseOutside) window.removeEventListener('click', this.handleClickOutside, true);\n }\n\n handleClickOutside(event) {\n const { onClickOutside, exceptionClass } = this.props;\n const target = exceptionClass !== '' ? closest(event.target, `.${exceptionClass}`, '.jSheetRow-cell') : null;\n if (!this.wrapper.contains(event.target) && target === null) {\n onClickOutside(event);\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <div className=\"clickOutside\" ref={wrapper => { this.wrapper = wrapper; }}>{children}</div>\n );\n }\n}\n\nClickOutside.propTypes = {\n children: PropTypes.node.isRequired,\n onClickOutside: PropTypes.func,\n forceCloseOutside: PropTypes.bool,\n exceptionClass: PropTypes.string\n};\n\nClickOutside.defaultProps = {\n forceCloseOutside: false,\n onClickOutside: () => {},\n exceptionClass: ''\n};\n\nexport default ClickOutside;\n","import React from 'react';\nimport Text from '../../components/Text';\nimport View from '../../components/View';\nimport Styled from '../../utils/styled';\nimport Imageline from '../../components/Imageline';\n\nconst StyledView = Styled(View)`\n border-bottom: 1px solid #C2C3C4;\n display: flex;\n flex-direction: column;\n padding-bottom: 12px;\n margin-top: 12px;\n page-break-inside: avoid;\n`;\n\nconst ProductView = Styled(View)`\n padding: 15px 0;\n border-bottom: 1px solid #C2C3C4;\n display: flex;\n page-break-inside: avoid;\n`;\n\nconst ProductName = Styled(Text)`\n font-weight: bold;\n color: #18152C;\n`;\n\nconst ProductPeriod = Styled(Text)`\n font-weight: bold;\n color: #18152C;\n`;\n\nconst ProductPrice = Styled(Text)`\n flex-shrink: 1;\n font-weight: bold;\n`;\n\nconst ProductImage = Styled(Text)`\n flex-shrink: 1;\n min-width: 100px;\n`;\n\nconst ProductOptions = Styled(View)`\n flex-direction: column;\n`;\n\nconst ProductDetails = Styled(View)`\n flex-grow: 1;\n padding: 0 15px;\n line-height: 1.5em;\n`;\n\nconst HeaderText = Styled(Text)`\n font-weight: bold;\n`;\n\nconst PriceView = Styled(View)`\n display: flex;\n margin-bottom: 12px;\n`;\n\nconst PriceLabel = Styled(Text)`\n flex-grow: 1;\n`;\n\nconst PriceText = Styled(Text)`\n flex-shrink: 1;\n`;\n\nconst PriceDetailsView = Styled(View)`\n margin: 12px 0;\n font-weight: bold;\n display: flex;\n flex-direction: column;\n border-bottom: 1px solid #C2C3C4;\n`;\n\nconst PaymentImageText = Styled(Text)`\n padding: 41px 5px;\n background-color: #CEF1FE;\n width: 100%;\n max-width: 100px;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst PayerView = Styled(View)`\n border-bottom: 1px solid #C2C3C4;\n display: flex;\n flex-direction: column;\n padding-bottom: 12px;\n margin-top: 12px;\n page-break-inside: avoid;\n`;\n\nconst PayerViewTitle = Styled(Text)`\n font-weight: bold;\n`;\n\nconst ProductImageline = Styled(props => <Imageline {...props} />)`\n text-align: center;\n`;\n\n// Sheets\nconst SheetsProductView = Styled(View)`\n ${({ isPreview }) => (isPreview\n ? `display: table;\n width: 100%;\n & + & {\n padding-top: 12px;\n margin-top: 12px;\n border-top: 1px solid rgba(209, 212, 228, 0.5);\n }`\n : `display: inline-table;\n height: 26px;\n border-radius: 4px;\n padding: 0 4px;\n margin-right: 6px;`)\n}\n`;\n\nconst SheetsProductName = Styled(Text)`\n display: inline-table;\n vertical-align: middle;\n color: #18152C;\n line-height: 26px;\n ${({ isPreview }) => isPreview\n && 'font-family: \"Circular Std Medium\", \"Work Sans SemiBold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;'\n}\n`;\n\nconst SheetsProductDetails = Styled(View)`\n display: table-cell;\n vertical-align: middle;\n padding-right: 20px;\n white-space: normal;\n`;\n\nconst SheetsPriceView = Styled(View)`\n display: table;\n width: 100%;\n table-layout: fixed;\n`;\n\nconst SheetsPriceLabel = Styled(Text)`\n display: table-cell;\n vertical-align: middle;\n`;\n\nconst SheetsPriceText = Styled(Text)`\n display: table-cell;\n vertical-align: middle;\n text-align: right;\n font-size: 18px;\n font-family: \"Circular Std Medium\", \"Work Sans SemiBold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n`;\n\nconst SheetsPriceDetailsView = Styled(View)`\n display: block;\n text-decoration: none;\n border-top: 1px solid rgba(209, 212, 228, 0.5);\n text-transform: uppercase;\n padding-top: 12px;\n margin-top: 16px;\n`;\n\nconst SheetsPayerView = Styled(View)`\n display: block;\n padding-top: 16px;\n position: relative;\n margin-top: 12px;\n border-top: 1px solid rgba(209, 212, 228, 0.5);\n`;\n\nconst SheetsPayerViewTitle = Styled(Text)`\n font-family: \"Circular Std Medium\", \"Work Sans SemiBold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n font-size: 17px;\n margin-bottom: 6px;\n\n & ~ * {\n color: #51585D;\n font-size: 15px;\n }\n`;\n\nconst SheetsProductOptions = Styled(Text)`\n color: #51585D;\n font-size: 14px;\n & > div {\n float: left;\n width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n`;\n\nconst SheetsProductPrice = Styled(Text)`\n display: table-cell;\n vertical-align: middle;\n white-space: nowrap;\n text-align: right;\n width: 1px;\n`;\n\nconst SheetsProductImageline = Styled(props => <Imageline {...props} />)`\n display: table-cell;\n vertical-align: middle;\n font-size: 0;\n ${({ isPreview }) => (isPreview\n ? `height: 60px;\n width: 60px;\n border: 1px solid #D5D9EC;\n border-radius: 4px;\n overflow: hidden;\n & + div {\n padding-left: 14px;\n }`\n : `width: 20px;\n height: 20px;\n & + div {\n padding-left: 6px;\n }\n & > div {\n display: inherit;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n overflow: hidden;\n background-color: #fff;\n }`\n )\n}\n`;\n\nconst SheetsPaymentImageText = Styled(Text)`\n display: table-cell;\n vertical-align: middle;\n ${({ isPreview }) => (isPreview\n ? `width: 1px;\n white-space: nowrap;\n padding: 30px 10px;\n border-radius: 4px;\n font-size: 18px;\n font-family: \"Circular Std Medium\", \"Work Sans SemiBold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n & + div {\n padding: 0 0 0 14px;\n display: table-cell;\n }`\n : `padding: 0 4px;\n & + div {\n padding: 0 4px;\n display: none;\n }\n `\n )}\n`;\n\nexport const defaultsMap = {\n StyledView,\n ProductView,\n ProductName,\n ProductPeriod,\n ProductPrice,\n ProductImage,\n ProductOptions,\n ProductDetails,\n HeaderText,\n PriceLabel,\n PriceText,\n PriceDetailsView,\n PaymentImageText,\n PriceView,\n ProductImageline,\n PayerView,\n PayerViewTitle\n};\n\nexport const sheetsMap = {\n ...defaultsMap,\n ProductView: SheetsProductView,\n ProductImageline: SheetsProductImageline,\n ProductName: SheetsProductName,\n PriceView: SheetsPriceView,\n PriceLabel: SheetsPriceLabel,\n PriceText: SheetsPriceText,\n ProductDetails: SheetsProductDetails,\n PriceDetailsView: SheetsPriceDetailsView,\n PayerView: SheetsPayerView,\n PayerViewTitle: SheetsPayerViewTitle,\n ProductOptions: SheetsProductOptions,\n ProductPrice: SheetsProductPrice,\n PaymentImageText: SheetsPaymentImageText\n};\n\nexport function getStyledComponent(appName) {\n switch (appName) {\n case 'sheets':\n return sheetsMap;\n default:\n return defaultsMap;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { t } from '@jotforminc/translation';\nimport View from '../../components/View';\nimport Text from '../../components/Text';\nimport Hypertext from '../../components/Hypertext';\nimport ClickOutside from '../../components/ClickOutside';\nimport { getStyledComponent } from './StyledComponents';\n\n// All of the magic is because of Jotform3/Submission::makeProductArray() function\nclass PaymentView extends React.Component {\n constructor(props) {\n super(props);\n this.Styled = getStyledComponent(props.appName);\n }\n\n get paymentType() {\n const { allProducts, type } = this.props;\n\n return (allProducts && allProducts[0] && allProducts[0].paymentType) ? allProducts[0].paymentType : type;\n }\n\n getBoughtProducts = () => {\n // Product related data\n const { boughtProducts, allProducts, type } = this.props;\n return boughtProducts.product.reduce((accumulator, product, currentIndex) => {\n const productOptions = this.extractProductProperties(product, type);\n\n if (this.paymentType === 'donation') {\n accumulator.push(productOptions);\n return accumulator;\n }\n\n if (allProducts) {\n // If you delete a product in the middle of a the product list, the allProducts\n // turn from an array to an object.\n const allProductsArray = Array.isArray(allProducts) ? allProducts : Object.values(allProducts);\n\n const productSpecs = allProductsArray.find(productSpec => productSpec.name.trim() === productOptions.name.trim());\n\n if (productSpecs) {\n const {\n name = '',\n icon = '',\n pid: productID = '',\n period = '',\n price = '',\n images = []\n } = productSpecs;\n\n const isImage = boughtProducts.shortView && boughtProducts.shortView.products && boughtProducts.shortView.products[currentIndex];\n\n accumulator.push({\n name,\n image: isImage ? boughtProducts.shortView.products[currentIndex].image : images[0] || icon || '',\n productID,\n period,\n price,\n ...productOptions\n });\n }\n }\n\n return accumulator;\n }, []);\n };\n\n getViewCustomProps = viewKey => {\n const { popoverProps } = this.props;\n return popoverProps && popoverProps[viewKey] ? popoverProps[viewKey] : {};\n };\n\n getPriceWithCurrency = price => {\n const { boughtProducts } = this.props;\n if (this.paymentType === 'subscription' && boughtProducts.currency && price) {\n return `${parseFloat(price).toFixed(2)} ${boughtProducts.currency}`;\n }\n return price;\n };\n\n getProductImage = ({ image, price }, isPreview = false) => {\n const {\n colorMap, appName, showImages\n } = this.props;\n const { Styled } = this;\n\n if (this.paymentType === 'donation' && !image) {\n return (<Styled.PaymentImageText data-id=\"productImageText\" isPreview={isPreview} style={colorMap[price]}>{this.getPriceWithCurrency(price)}</Styled.PaymentImageText>);\n }\n\n if (showImages) {\n const noImagePlaceHolder = '//cdn.jotfor.ms/assets/img/cardforms/noImage-placeholder.svg';\n let imageContainerStyles = {\n maxWidth: '100px',\n maxHeight: '100px'\n };\n if (appName === 'sheets' && !isPreview) {\n imageContainerStyles = {\n maxWidth: '100%',\n maxHeight: '100%',\n borderRadius: '4px'\n };\n } else if (appName === 'sheets' && isPreview) {\n imageContainerStyles = {\n maxWidth: '60px',\n maxHeight: '60px',\n borderRadius: '2px'\n };\n }\n return (\n <Styled.ProductImageline\n data-id=\"productImage\"\n isPreview={isPreview}\n value={image || noImagePlaceHolder}\n imageContainerProps={{\n style: imageContainerStyles\n }}\n />\n );\n }\n\n return null;\n };\n\n getProductView = (boughtProducts, isPreview = false) => {\n if (!boughtProducts || boughtProducts.length < 1) return null;\n const { Styled } = this;\n const {\n colorMap,\n labelProps,\n productProps\n } = this.props;\n\n const productView = boughtProducts.map(product => {\n const colorKey = this.paymentType === 'donation' ? product.price : product.productID;\n const options = product.options ? product.options.join('_') : '';\n const productId = product.productID ? product.productID : null;\n let productKey = product.name.concat(product.price);\n if (productId) {\n productKey = productKey.concat(productId, options);\n }\n\n return isPreview ? (\n <Styled.ProductView\n key={productKey}\n style={colorMap[colorKey]}\n {...productProps}\n data-id=\"productView\"\n >\n {this.getProductImage(product)}\n <Styled.ProductName data-id=\"productName\">\n {product.name}\n </Styled.ProductName>\n </Styled.ProductView>\n ) : (\n <Styled.ProductView\n isPreview\n key={productKey}\n {...productProps}\n data-id=\"productView\"\n >\n {this.getProductImage(product, true)}\n <Styled.ProductDetails data-id=\"productDetails\">\n <Styled.ProductName isPreview {...labelProps} data-id=\"productName\">\n {product.name}\n </Styled.ProductName>\n <Styled.ProductOptions data-id=\"productOptions\">\n {product.options ? product.options.map(opt => <Text {...labelProps} data-id=\"productOptionsText\">{typeof opt === 'string' ? opt.replace(/"/g, '\"') : opt}</Text>) : null}\n </Styled.ProductOptions>\n </Styled.ProductDetails>\n {['product'].includes(this.paymentType)\n ? (\n <Styled.ProductPrice {...labelProps} data-id=\"productPrice\">\n {product.price}\n </Styled.ProductPrice>\n ) : null}\n </Styled.ProductView>\n );\n });\n\n return productView;\n };\n\n getSinglePriceView = (topic, cost, currency) => {\n if (!cost) return null;\n const { Styled, props: { labelProps = {} } } = this;\n\n return (\n <Styled.PriceView data-id=\"priceView\">\n <Styled.PriceLabel {...labelProps} data-id=\"priceLabel\">{topic}</Styled.PriceLabel>\n <Styled.PriceText {...labelProps} data-id=\"priceText\">{`${cost}${currency}`}</Styled.PriceText>\n </Styled.PriceView>\n );\n };\n\n getPriceView = ({\n currency,\n coupon,\n shipping,\n tax,\n total,\n subtotal\n }) => {\n const {\n paymentStrings\n } = this.props;\n\n const { Styled } = this;\n if (!shipping && !tax && !total && !coupon && !subtotal) return null;\n const currencyText = `${currency ? ` ${currency}` : ''}`;\n\n const paymentStringsDefault = {\n couponApply: 'Apply',\n couponEnter: 'Coupon Code',\n totalSubtotal: 'Subtotal',\n taxTax: 'Tax',\n shippingShipping: 'Shipping',\n totalTotal: 'Total'\n };\n\n const strings = paymentStrings ? { ...paymentStringsDefault, ...paymentStrings[0] } : paymentStringsDefault;\n\n return (\n <Styled.PriceDetailsView data-id=\"PriceDetailsView\">\n {this.getSinglePriceView(strings.totalSubtotal, subtotal, currencyText)}\n {this.getSinglePriceView(strings.shippingShipping, shipping, currencyText)}\n {this.getSinglePriceView(strings.taxTax, tax, currencyText)}\n {this.getSinglePriceView(strings.totalTotal, total, currencyText)}\n {this.getSinglePriceView(strings.couponEnter, coupon, '')}\n </Styled.PriceDetailsView>\n );\n };\n\n getPayerView = ({\n name,\n email,\n company\n }) => {\n const { Styled, props: { labelProps = {}, answerProps = {} } } = this;\n if (!name && !email && !company) return null;\n const customProps = this.getViewCustomProps('payerView');\n\n return (\n <Styled.PayerView {...customProps} data-id=\"payerView\">\n <Styled.PayerViewTitle {...labelProps} data-id=\"payerViewTitle\">{t('Payer Information')}</Styled.PayerViewTitle>\n {name ? <Text {...answerProps} data-id=\"payerViewName\">{name}</Text> : null}\n {email ? <Hypertext {...answerProps} href={`mailto:${email}`} data-id=\"payerViewEmail\">{email}</Hypertext> : null}\n {company ? <Text {...answerProps} data-id=\"payerViewCompany\">{company}</Text> : null}\n </Styled.PayerView>\n );\n };\n\n getShippingView = ({\n name,\n street,\n city,\n state,\n postalCode,\n country\n }) => {\n const { Styled, props: { labelProps = {}, answerProps = {} } } = this;\n if (!name && !street && !city && !state && !postalCode && !country) return null;\n return (\n <Styled.StyledView data-id=\"shippingView\">\n <Styled.HeaderText {...labelProps} data-id=\"shippingViewHeader\">{t('Shipping Address')}</Styled.HeaderText>\n {name ? <Text {...answerProps} data-id=\"shippingViewName\">{name}</Text> : null}\n {street ? <Text {...answerProps} data-id=\"shippingViewStreet\">{street}</Text> : null}\n {city || state || postalCode ? <Text {...answerProps} data-id=\"shippingViewAddress\">{`${city} ${state} ${postalCode}`}</Text> : null}\n {country ? <Text {...answerProps} data-id=\"shippingViewCountry\">{country}</Text> : null}\n </Styled.StyledView>\n );\n };\n\n getTransactionView = ({\n text,\n id\n }) => {\n const { Styled, props: { labelProps = {}, answerProps = {} } } = this;\n if (!text || !id) return null;\n return (\n <Styled.StyledView data-id=\"transactionView\">\n <Styled.HeaderText {...labelProps} data-id=\"transactionViewHeader\">{text}</Styled.HeaderText>\n <Text {...answerProps} data-id=\"transactionViewText\">{id}</Text>\n </Styled.StyledView>\n );\n };\n\n getTransactionInformation = () => {\n const { boughtProducts, gateway } = this.props;\n let text = t('Transaction ID');\n let id = boughtProducts.transactionid;\n\n switch (gateway) {\n case 'control_cardconnect':\n text = t('Reference ID');\n id = boughtProducts.reference ? boughtProducts.reference : id;\n break;\n case 'control_square':\n text = t('Payment ID');\n break;\n default:\n break;\n }\n\n return {\n text: text,\n id: id\n };\n };\n\n getPaymentMethodView = ({\n text,\n pm\n }) => {\n const { Styled, props: { labelProps = {}, answerProps = {} } } = this;\n if (!text || !pm) return null;\n return (\n <Styled.StyledView data-id=\"paymentMethodView\">\n <Styled.HeaderText {...labelProps} data-id=\"paymentMethodViewHeader\">{text}</Styled.HeaderText>\n <Text {...answerProps} data-id=\"paymentMethodViewText\">{pm}</Text>\n </Styled.StyledView>\n );\n };\n\n getPaymentMethodInformation = () => {\n const { boughtProducts } = this.props;\n\n return {\n text: t('Payment Method'),\n pm: boughtProducts.paymentmethod\n };\n };\n\n getShipmentInformation = () => {\n // Shipment related data\n const { boughtProducts } = this.props;\n return {\n name: boughtProducts.shiptoname,\n street: boughtProducts.addr,\n city: boughtProducts.city,\n state: boughtProducts.state,\n postalCode: boughtProducts.postal,\n country: boughtProducts.country\n };\n };\n\n getPriceInformation = () => {\n const { boughtProducts } = this.props;\n return {\n currency: boughtProducts.currency,\n coupon: boughtProducts.coupon,\n shipping: boughtProducts.shipping,\n tax: boughtProducts.tax,\n total: boughtProducts.total,\n subtotal: boughtProducts.subtotal\n };\n };\n\n getPayerInformation = () => {\n // Payer related data\n const { boughtProducts } = this.props;\n let payerName = null;\n if (boughtProducts.fullname) {\n payerName = boughtProducts.fullname;\n } else if (boughtProducts.firstname || boughtProducts.lastname) {\n payerName = `${boughtProducts.firstname} ${boughtProducts.lastname}`;\n } else if (boughtProducts.nameonaccount) {\n payerName = boughtProducts.nameonaccount;\n }\n\n return {\n name: payerName,\n email: boughtProducts.email,\n company: boughtProducts.company\n };\n };\n\n extractProductProperties = product => {\n if (this.paymentType === 'subscription') return { name: product };\n\n // product string looks like \"Black T-Shirt (Amount: 21.00 USD, Quantity: 2)\"\n const amountIndex = product.indexOf(' (Amount: ');\n const productName = product.substr(0, amountIndex);\n const productOptions = product.substr(amountIndex + 2, product.length - amountIndex - 3).split(', ');\n const amountArrayIndex = productOptions.findIndex(option => option.indexOf('Amount: ') > -1);\n if (amountArrayIndex === -1) {\n return {\n name: productName,\n price: '',\n options: productOptions\n };\n }\n\n const productPrice = productOptions[amountArrayIndex].replace('Amount: ', '');\n productOptions.splice(amountArrayIndex, 1);\n\n return {\n name: productName,\n price: productPrice,\n options: productOptions\n };\n };\n\n // eslint-disable-next-line react/require-render-return\n render = () => {\n const { popoverProps } = this.props;\n const productView = this.getProductView(this.getBoughtProducts(), false);\n const productPreview = this.getProductView(this.getBoughtProducts(), true);\n const priceView = this.getPriceView(this.getPriceInformation());\n const payerView = this.getPayerView(this.getPayerInformation());\n const shippingView = this.getShippingView(this.getShipmentInformation());\n const transactionView = this.getTransactionView(this.getTransactionInformation());\n const paymentMethodView = this.getPaymentMethodView(this.getPaymentMethodInformation());\n const containerCustomProps = this.getViewCustomProps('container');\n return popoverProps ? (\n <View data-id=\"paymentView\">\n {productPreview}\n {popoverProps.isPopoverViewOpened && (\n <ClickOutside onClickOutside={this.toggleOptions}>\n <View {...containerCustomProps} data-id=\"paymentViewContainer\">\n {productView}\n {priceView}\n {payerView}\n {shippingView}\n {transactionView}\n {paymentMethodView}\n </View>\n </ClickOutside>\n )}\n </View>\n ) : (\n <View data-id=\"paymentView\">\n {productView}\n {priceView}\n {payerView}\n {shippingView}\n {transactionView}\n {paymentMethodView}\n </View>\n );\n };\n}\n\nPaymentView.propTypes = {\n type: PropTypes.string,\n appName: PropTypes.string,\n allProducts: PropTypes.arrayOf(PropTypes.shape({\n paymentType: PropTypes.string\n })),\n popoverProps: PropTypes.shape({\n isPopoverViewOpened: PropTypes.bool\n }),\n colorMap: PropTypes.shape({}),\n showImages: PropTypes.bool,\n boughtProducts: PropTypes.shape({\n product: PropTypes.arrayOf(PropTypes.shape({})),\n currency: PropTypes.string,\n shiptoname: PropTypes.string,\n addr: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n postal: PropTypes.string,\n country: PropTypes.string,\n coupon: PropTypes.string,\n shipping: PropTypes.string,\n tax: PropTypes.string,\n total: PropTypes.string,\n fullname: PropTypes.string,\n firstname: PropTypes.string,\n lastname: PropTypes.string,\n nameonaccount: PropTypes.string,\n email: PropTypes.string,\n company: PropTypes.string,\n transactionid: PropTypes.string,\n reference: PropTypes.string,\n paymentmethod: PropTypes.string\n }),\n labelProps: PropTypes.shape({}),\n productProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n paymentStrings: PropTypes.arrayOf(PropTypes.shape({})),\n gateway: PropTypes.string\n};\n\nPaymentView.defaultProps = {\n type: '',\n appName: '',\n allProducts: [{}],\n popoverProps: null,\n showImages: false,\n colorMap: {},\n boughtProducts: {},\n labelProps: {},\n answerProps: {},\n productProps: {},\n paymentStrings: [{}],\n gateway: ''\n};\n\nexport default PaymentView;\n","import React from 'react';\n\nconst HTMLRenderer = ({ prettyFormatSanitized }) => (<div dangerouslySetInnerHTML={{ __html: prettyFormatSanitized }} />);\n\nexport default HTMLRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { sanitizeHTML } from '../../../utils';\n\nimport PaymentView from '../PaymentView';\nimport Baseline from '../../../components/Baseline';\nimport HTMLRenderer from '../../../components/HtmlRenderer';\n\nconst Payment = ({\n text,\n answer: { paymentArray },\n containerStyle,\n products,\n paymentType,\n popoverProps,\n colorMap,\n showImages,\n appName,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n paymentStrings,\n productProps,\n prettyFormat,\n direction,\n type\n}) => {\n const paymentData = safeJSONParse(paymentArray, paymentArray);\n const prettyFormatSanitized = prettyFormat ?? sanitizeHTML(prettyFormat);\n\n if (!paymentData || !paymentData.product) {\n return (\n <Baseline\n label={text}\n style={containerStyle}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {prettyFormatSanitized ? <HTMLRenderer dangerouslySetInnerHTML={{ __html: prettyFormatSanitized }} /> : null}\n </Baseline>\n );\n }\n\n return (\n <Baseline\n label={text}\n style={containerStyle}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <PaymentView\n type={paymentType}\n allProducts={products}\n boughtProducts={paymentData}\n popoverProps={popoverProps}\n colorMap={colorMap}\n showImages={showImages}\n appName={appName}\n labelProps={labelProps}\n answerProps={answerProps}\n productProps={productProps}\n paymentStrings={paymentStrings}\n gateway={type}\n />\n </Baseline>\n );\n};\n\nPayment.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n products: PropTypes.arrayOf(PropTypes.shape({})),\n paymentType: PropTypes.string,\n appName: PropTypes.string,\n popoverProps: PropTypes.shape({}),\n colorMap: PropTypes.shape({}),\n showImages: PropTypes.bool,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n productProps: PropTypes.shape({}),\n direction: PropTypes.string,\n paymentStrings: PropTypes.arrayOf(PropTypes.shape({})),\n type: PropTypes.string\n};\n\nPayment.defaultProps = {\n text: '',\n answer: {},\n appName: '',\n containerStyle: {},\n colorMap: {},\n showImages: false,\n products: null,\n paymentType: '',\n popoverProps: null,\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n productProps: {},\n direction: 'column',\n paymentStrings: [{}],\n type: ''\n};\n\nexport default Payment;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport unescape from 'lodash/unescape';\n\nimport Text from '../../components/Text';\nimport Baseline from '../../components/Baseline';\nimport { replaceUrlsWithAnchors } from '../../utils';\n\nconst Paymentmethods = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n direction\n}) => {\n const replacedText = replaceUrlsWithAnchors(answer);\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {replacedText ? (\n <Text {...answerProps} dangerouslySetInnerHTML={{ __html: replacedText }} noSanitize />\n ) : (\n <Text {...answerProps}>{unescape(answer.payment_method)}</Text>\n )}\n </Baseline>\n );\n};\n\nPaymentmethods.propTypes = {\n answer: PropTypes.string,\n labelProps: PropTypes.shape({}),\n text: PropTypes.string,\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nPaymentmethods.defaultProps = {\n answer: '',\n labelProps: {},\n text: '',\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n direction: 'column'\n};\n\nexport default Paymentmethods;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\nimport Baseline from '../../../components/Baseline';\nimport { getDateTimeText } from '../../../utils';\nimport { LocaleTypes } from '../../../constants/schemas';\n\nclass SubmissionDate extends React.Component {\n render() {\n const {\n answer,\n label,\n labelProps,\n answerProps,\n answerWrapperProps,\n hideTime,\n dateFormat,\n userTimeZone,\n locale,\n direction,\n baselineProps\n } = this.props;\n\n const dateTimeText = getDateTimeText({\n answer,\n hideTime,\n dateFormat,\n shouldCalculateTimeZone: true,\n userTimeZone,\n locale\n });\n\n return (\n <Baseline\n label={label}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{dateTimeText}</Text>\n </Baseline>\n );\n }\n}\n\nSubmissionDate.propTypes = {\n baselineProps: PropTypes.shape({}),\n answer: PropTypes.shape({}),\n userTimeZone: PropTypes.string,\n label: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n hideTime: PropTypes.bool,\n dateFormat: PropTypes.string,\n locale: LocaleTypes.schema,\n direction: PropTypes.string\n};\n\nSubmissionDate.defaultProps = {\n baselineProps: {},\n answer: '',\n userTimeZone: '',\n label: 'Submission Date',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n hideTime: false,\n dateFormat: 'dddd, MMMM DD, YYYY',\n locale: LocaleTypes.default,\n direction: 'column'\n};\n\nexport default SubmissionDate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\nimport Baseline from '../../../components/Baseline';\n\nconst SubmissionID = ({\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n label,\n direction,\n baselineProps\n}) => (\n <Baseline\n label={label}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{answer}</Text>\n </Baseline>\n);\n\nSubmissionID.propTypes = {\n answer: PropTypes.string,\n label: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n direction: PropTypes.string,\n baselineProps: PropTypes.shape({})\n};\n\nSubmissionID.defaultProps = {\n baselineProps: {},\n answer: '',\n label: 'Submission ID',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n direction: 'column'\n};\n\nexport default SubmissionID;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../../../components/Text';\nimport Baseline from '../../../components/Baseline';\n\nconst SubmissionIP = ({\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n label,\n direction,\n baselineProps\n}) => (\n <Baseline\n label={label}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <Text {...answerProps}>{answer}</Text>\n </Baseline>\n);\n\nSubmissionIP.propTypes = {\n baselineProps: PropTypes.shape({}),\n answer: PropTypes.string,\n label: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nSubmissionIP.defaultProps = {\n baselineProps: {},\n answer: '',\n label: 'Submission IP',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n direction: 'column'\n};\n\nexport default SubmissionIP;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport List from '../../../components/List';\nimport Baseline from '../../../components/Baseline';\n\nconst getAnswer = answer => {\n const keys = ['name', 'email'];\n\n return keys.reduce((acc, curr) => {\n if (acc === '' && answer[curr]) {\n // eslint-disable-next-line no-param-reassign\n acc = answer[curr];\n }\n return acc;\n }, '');\n};\n\nconst Submitter = ({\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n label,\n direction,\n baselineProps,\n containerProps\n}) => (\n <Baseline\n label={label}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <List\n type=\"option\"\n showAll={false}\n allItems={[getAnswer(answer)]}\n items={[getAnswer(answer)]}\n itemProps={answerProps}\n containerProps={containerProps}\n />\n </Baseline>\n);\n\nSubmitter.propTypes = {\n answer: PropTypes.string,\n label: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n direction: PropTypes.string,\n baselineProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({})\n};\n\nSubmitter.defaultProps = {\n baselineProps: {},\n answer: '',\n label: 'Submitter',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n direction: 'column',\n containerProps: {}\n};\n\nexport default Submitter;\n","export const isRGB = color => {\n return typeof color === 'string' && (color?.slice(0, 4) === 'rgb(' || color?.slice(0, 5) === 'rgba(') && color?.slice(-1) === ')';\n};\n\nexport const isHexColor = color => {\n const hexColorRegex = /^#(?:[0-9a-fA-F]{3}){1,2}$/;\n return hexColorRegex.test(color);\n};\n\nexport const rgbToHex = rgbVal => {\n let rgb = rgbVal.replace(/^rgba?\\(|\\s+|\\)$/g, '').split(',');\n rgb = rgb[2] | (rgb[1] << 8) | (rgb[0] << 16); // eslint-disable-line no-bitwise\n return `#${(0x1000000 | rgb).toString(16).substring(1)}`; // eslint-disable-line no-bitwise\n};\n\nexport const isBrightColor = sourceColor => {\n if (sourceColor && sourceColor.length > 0) {\n const color = (sourceColor.charAt(0) === '#') ? sourceColor.substring(1, 7) : sourceColor;\n const r = parseInt(color.substring(0, 2), 16); // hexToR\n const g = parseInt(color.substring(2, 4), 16); // hexToG\n const b = parseInt(color.substring(4, 6), 16); // hexToB\n return (((r * 0.299) + (g * 0.587) + (b * 0.114)) > 160);\n }\n return false;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { isBrightColor } from '@jotforminc/utils';\nimport Styled from 'styled-components';\nimport List from '../../../components/List';\nimport Baseline from '../../../components/Baseline';\n\nconst getAnswer = answer => {\n const keys = ['title'];\n\n return keys.reduce((acc, curr) => {\n if (acc === '' && answer[curr]) {\n // eslint-disable-next-line no-param-reassign\n acc = answer[curr];\n }\n return acc;\n }, '');\n};\n\nconst getIconProps = props => {\n const {\n appIconColor,\n appIconType,\n appIconURL,\n appIconBackground\n } = props;\n\n return {\n iconColor: appIconColor,\n type: appIconType,\n url: appIconURL,\n backgroundColor: appIconBackground\n };\n};\n\nconst SubmittedVia = ({\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n label,\n direction,\n baselineProps,\n containerProps\n}) => {\n const { PortalItemRenderer = null } = answerProps;\n const icon = getIconProps(answer);\n\n const portalItemProps = {\n ...answer,\n icon\n };\n\n const StyledPortalItemRenderer = Styled.div`\n color: ${isBrightColor(answer.appIconBackground) ? '#2B3245' : '#FFF'};\n background-color: ${answer.appIconBackground};\n padding: 6px;\n border: 1px solid #E3E5F5;\n font-size: 14px;\n font-weight: 500;\n border-radius: 4px;\n width: fit-content;\n max-width: 400px;\n\n * { font-size: 14px; }\n & > div:only-child { padding-right: 4px; }\n .jfIconSVG-wrapper svg { padding: 0; }\n `;\n\n const normalizedAnswer = getAnswer(answer);\n const hasAnswer = normalizedAnswer?.length > 0;\n return (\n <Baseline\n label={label}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n {hasAnswer && (\n PortalItemRenderer\n ? (\n <StyledPortalItemRenderer>\n <PortalItemRenderer {...portalItemProps} />\n </StyledPortalItemRenderer>\n )\n : (\n <List\n type=\"option\"\n showAll={false}\n allItems={[normalizedAnswer]}\n items={[normalizedAnswer]}\n itemProps={answerProps}\n containerProps={containerProps}\n />\n )\n )}\n </Baseline>\n );\n};\n\nSubmittedVia.propTypes = {\n answer: PropTypes.string,\n label: PropTypes.string,\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n direction: PropTypes.string,\n baselineProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({})\n};\n\nSubmittedVia.defaultProps = {\n baselineProps: {},\n answer: '',\n label: 'Source App',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n direction: 'column',\n containerProps: {}\n};\n\nexport default SubmittedVia;\n","import {\n // Partner Icons\n LogoGoogledriveLogomarkColor,\n LogoBoxColor,\n LogoOnedriveLogomarkColor,\n LogoDropboxLogomarkColor,\n LogoEgnyteLogomarkDark,\n LogoQuickbooksLogomarkColor,\n LogoAirtableLogomarkColor,\n LogoAsanaLogomarkColor,\n LogoGooglecalendarLogomarkColor,\n LogoMailchimpLogomarkDark,\n LogoTrelloLogomarkColor,\n LogoMicrosoftteamsLogomarkColor,\n LogoWebhooksLogomarkColor,\n LogoHubspotLogomarkColor,\n LogoSlackLogomarkColor,\n LogoMondayLogomarkColor,\n LogoZendeskLogomarkColor,\n LogoSalesforceLogomarkColor,\n LogoConstantcontactLogomarkColor,\n LogoMailerliteLogomarkColor,\n LogoClickupLogomarkColor,\n LogoFtpColor,\n LogoAweberLogomarkColor,\n LogoCampaignmonitorLogomarkColor,\n LogoIcontactLogomarkColor,\n LogoHighriseLogomarkColor,\n LogoSolveLogomarkColor,\n LogoInsightlyColor,\n LogoCallinglyLogomarkColor,\n LogoVerticalresponseLogomarkColor,\n LogoGetresponseLogomarkColor,\n LogoKeapLogomarkColor,\n LogoZapierLogomarkColor,\n LogoXzazuLogomarkColor,\n LogoActivecampaignLogomarkColor,\n LogoPaymoLogomarkColor,\n LogoPipedriveLogomarkColor,\n LogoZoomLogomarkColor,\n LogoBoxsignColor,\n LogoSendgridLogomarkColor,\n LogoMadmimiLogomarkColor,\n LogoZohoColor,\n LogoGooglesheetsColor\n} from '@jotforminc/svg-icons';\nimport { PARTNER_NAMES, PARTNER_NAMES_V1 } from './types';\n\nexport const PARTNER_ICONS = {\n [PARTNER_NAMES.GOOGLE_DRIVE]: LogoGoogledriveLogomarkColor,\n [PARTNER_NAMES.BOX]: LogoBoxColor,\n [PARTNER_NAMES.ONEDRIVE]: LogoOnedriveLogomarkColor,\n [PARTNER_NAMES.DROPBOX]: LogoDropboxLogomarkColor,\n [PARTNER_NAMES.EGNYTE]: LogoEgnyteLogomarkDark,\n [PARTNER_NAMES.QUICKBOOKS]: LogoQuickbooksLogomarkColor,\n [PARTNER_NAMES.AIRTABLE]: LogoAirtableLogomarkColor,\n [PARTNER_NAMES.MONDAY]: LogoMondayLogomarkColor,\n [PARTNER_NAMES.GOOGLE_SHEETS_V2]: LogoGooglesheetsColor,\n [PARTNER_NAMES.MICROSOFT_TEAMS]: LogoMicrosoftteamsLogomarkColor,\n [PARTNER_NAMES.WEBHOOKSV2]: LogoWebhooksLogomarkColor,\n [PARTNER_NAMES.CAMPAIGN_MONITOR]: LogoCampaignmonitorLogomarkColor,\n [PARTNER_NAMES.TRELLO]: LogoTrelloLogomarkColor,\n [PARTNER_NAMES.SLACK]: LogoSlackLogomarkColor,\n [PARTNER_NAMES.CLICKUP]: LogoClickupLogomarkColor,\n [PARTNER_NAMES.ZOHO_CRM]: LogoZohoColor,\n [PARTNER_NAMES.GOOGLE_CALENDAR]: LogoGooglecalendarLogomarkColor,\n [PARTNER_NAMES.ZOOM]: LogoZoomLogomarkColor,\n [PARTNER_NAMES.HUBSPOT]: LogoHubspotLogomarkColor,\n [PARTNER_NAMES.ASANA]: LogoAsanaLogomarkColor,\n [PARTNER_NAMES.MAILERLITE]: LogoMailerliteLogomarkColor,\n [PARTNER_NAMES.CONSTANT_CONTACTV2]: LogoConstantcontactLogomarkColor,\n [PARTNER_NAMES.MAILCHIMP]: LogoMailchimpLogomarkDark,\n [PARTNER_NAMES.GETRESPONSE]: LogoGetresponseLogomarkColor,\n [PARTNER_NAMES.ACTIVE_CAMPAIGN]: LogoActivecampaignLogomarkColor,\n [PARTNER_NAMES.AWEBER]: LogoAweberLogomarkColor,\n [PARTNER_NAMES.KEAP]: LogoKeapLogomarkColor,\n [PARTNER_NAMES.ZENDESK]: LogoZendeskLogomarkColor,\n [PARTNER_NAMES.PIPEDRIVE]: LogoPipedriveLogomarkColor,\n [PARTNER_NAMES.SENDGRID]: LogoSendgridLogomarkColor,\n [PARTNER_NAMES.MAILSOFTLY]: LogoWebhooksLogomarkColor,\n [PARTNER_NAMES_V1.MAILCHIMP]: LogoMailchimpLogomarkDark,\n [PARTNER_NAMES_V1.GOOGLE_SHEETS]: LogoGooglesheetsColor,\n [PARTNER_NAMES_V1.GOOGLE_CALENDAR]: LogoGooglecalendarLogomarkColor,\n [PARTNER_NAMES_V1.WEBHOOKS]: LogoWebhooksLogomarkColor,\n [PARTNER_NAMES_V1.MONDAY]: LogoMondayLogomarkColor,\n [PARTNER_NAMES_V1.SALESFORCEV2]: LogoSalesforceLogomarkColor,\n [PARTNER_NAMES_V1.FTP]: LogoFtpColor,\n [PARTNER_NAMES_V1.CAMPAIGN_MONITOR]: LogoCampaignmonitorLogomarkColor,\n [PARTNER_NAMES_V1.ICONTACT]: LogoIcontactLogomarkColor,\n [PARTNER_NAMES_V1.MADMIMI]: LogoMadmimiLogomarkColor,\n [PARTNER_NAMES_V1.HIGHRISE]: LogoHighriseLogomarkColor,\n [PARTNER_NAMES_V1.SOLVE360]: LogoSolveLogomarkColor,\n [PARTNER_NAMES_V1.ZOHOCRMV2]: LogoZohoColor,\n [PARTNER_NAMES_V1.INSIGHTLY]: LogoInsightlyColor,\n [PARTNER_NAMES_V1.CALLINGLY]: LogoCallinglyLogomarkColor,\n [PARTNER_NAMES_V1.SENDGRID]: LogoSendgridLogomarkColor,\n [PARTNER_NAMES_V1.VERTICAL_RESPONSE]: LogoVerticalresponseLogomarkColor,\n [PARTNER_NAMES_V1.INFUSIONSOFT]: LogoKeapLogomarkColor,\n [PARTNER_NAMES_V1.ZAPIER]: LogoZapierLogomarkColor,\n [PARTNER_NAMES_V1.XZAZU]: LogoXzazuLogomarkColor,\n [PARTNER_NAMES_V1.ACTIVE_CAMPAIGN]: LogoActivecampaignLogomarkColor,\n [PARTNER_NAMES_V1.PAYMO]: LogoPaymoLogomarkColor,\n [PARTNER_NAMES_V1.BOXSIGN]: LogoBoxsignColor\n};\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst GOOGLE_DRIVE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Send Files'), value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_FILES }\n]);\n\nconst GOOGLE_DRIVE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Google Drive',\n icon: PARTNER_ICONS[PARTNER_NAMES.GOOGLE_DRIVE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/google_drive_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Google Drive lets you store important files and access them anywhere — whether at home or on the go! Use this free integration to automatically send form responses and file uploads directly to your Google Drive folder, with no manual data entry necessary.')\n },\n shortDescription: {\n default: t('Sync file uploads and form submissions to Google Drive')\n },\n guideURL: 'https://www.jotform.com/help/192-how-to-integrate-a-form-with-google-drive',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: GOOGLE_DRIVE_ACTIONS()\n});\n\nexport default GOOGLE_DRIVE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst BOX_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Send Files'), value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_FILES }\n]);\n\nconst BOX_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Box',\n icon: PARTNER_ICONS[PARTNER_NAMES.BOX],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/box_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Box is a powerful file storage solution that makes it easy to access files on different devices or share them with your team. With the Box integration, you can collect file uploads of photos, videos, or documents through your online forms and automatically send them to your Box account.')\n },\n shortDescription: {\n default: t('Send file uploads to your cloud storage')\n },\n guideURL: 'https://www.jotform.com/help/349-how-to-integrate-jotform-with-box',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: BOX_ACTIONS()\n});\n\nexport default BOX_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst DROPBOX_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Send Files'), value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_FILES }\n]);\n\nconst DROPBOX_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Dropbox',\n icon: PARTNER_ICONS[PARTNER_NAMES.DROPBOX],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/dropbox_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Dropbox lets you store important files in a personal cloud and access them anywhere — whether at home or on the go! Use the Dropbox integration to automatically convert form responses into PDFs and send them directly to your Dropbox folder along with additional file uploads.')\n },\n shortDescription: {\n default: t('Send uploaded files to your cloud storage')\n },\n guideURL: 'https://www.jotform.com/help/77-Upload-to-Dropbox-with-JotForm',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: DROPBOX_ACTIONS()\n});\n\nexport default DROPBOX_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ONEDRIVE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Send Files'), value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_FILES }\n]);\n\nconst ONEDRIVE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'OneDrive',\n icon: PARTNER_ICONS[PARTNER_NAMES.ONEDRIVE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/onedrive_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Microsoft OneDrive lets you store important files in a personal cloud and access them anywhere — whether at home or on the go! Use the OneDrive integration to automatically convert form responses into PDFs and send them directly to your OneDrive folder along with additional file uploads.')\n },\n shortDescription: {\n default: t('Sync file uploads and form submission PDFs to OneDrive')\n },\n guideURL: 'https://www.jotform.com/help/1349-how-to-integrate-jotform-with-onedrive',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: ONEDRIVE_ACTIONS()\n});\n\nexport default ONEDRIVE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst EGNYTE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Send Files'), value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_FILES }\n]);\n\nconst EGNYTE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Egnyte',\n icon: PARTNER_ICONS[PARTNER_NAMES.EGNYTE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/egnyte_logo.svg',\n description: {\n default: t('Egnyte is an enterprise file sharing software designed to back up your business’ files.')\n },\n shortDescription: {\n default: t('Send submissions to your enterprise file storage account')\n },\n guideURL: 'https://www.jotform.com/help/429-how-to-integrate-jotform-with-egnyte/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: EGNYTE_ACTIONS(),\n authParameters: ['domain']\n});\n\nexport default EGNYTE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\n\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst AIRTABLE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Record'), value: INTEGRATION_ACTION_TYPES.CREATE_RECORD }\n]);\n\nconst AIRTABLE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Airtable',\n icon: PARTNER_ICONS[PARTNER_NAMES.AIRTABLE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/airtable_logo.svg',\n description: {\n default: t('Automatically relay form submissions to your Airtable database so you will always be ready to analyze, collaborate on, and share new data with your teammates.')\n },\n shortDescription: {\n default: t('Sync form submissions to your spreadsheet database')\n },\n guideURL: 'https://www.jotform.com/help/561-how-to-integrate-jotform-with-airtable',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: getUrlParameter('useIntegrationV2') === '1',\n actions: AIRTABLE_ACTIONS(),\n accountFetcherParams: { filterLegacy: 'Yes' }\n});\n\nexport default AIRTABLE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst QUICKBOOKS_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Customer'),\n description: t('Create new customer records from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CUSTOMER\n },\n {\n text: t('Create Invoice'),\n description: t('Create new invoices from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_INVOICE\n }\n]);\n\nconst QUICKBOOKS_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'QuickBooks',\n icon: PARTNER_ICONS[PARTNER_NAMES.QUICKBOOKS],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/quickbooks_logo.svg',\n description: {\n default: t('With this QuickBooks integration, you can automatically turn new form submissions into customer records or invoices in QuickBooks.')\n },\n shortDescription: {\n default: t('Turn submissions into QuickBooks invoices, customers, and more')\n },\n guideURL: 'https://www.jotform.com/help/how-to-create-an-invoice-with-jotforms-quickbooks-integration',\n authMethod: AUTH_METHODS.OAUTH,\n actions: QUICKBOOKS_ACTIONS(),\n authParameters: ['sandbox']\n});\n\nexport default QUICKBOOKS_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, RESOURCE_TYPE, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst MONDAY_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Item'),\n description: t('Add new items to monday.com'),\n value: INTEGRATION_ACTION_TYPES.CREATE_ITEM\n },\n {\n text: t('Create Update'),\n description: t('Add new updates to monday.com items'),\n value: INTEGRATION_ACTION_TYPES.CREATE_UPDATE\n }\n]);\n\nconst MONDAY_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'monday.com',\n icon: PARTNER_ICONS[PARTNER_NAMES.MONDAY],\n url: 'https://www.monday.com/',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/monday_logo.svg',\n description: {\n default: t('Integrate with monday.com to sync form responses to your account and update your team’s project boards automatically!'),\n [RESOURCE_TYPE.SIGN]: t('Integrate monday.com to collect and sync e-signed document data to your monday.com account.')\n },\n shortDescription: {\n default: t('Add new items and updates on your team’s project boards')\n },\n guideURL: 'https://www.jotform.com/help/578-how-to-integrate-jotform-with-mondaycom',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.API_KEY,\n actions: MONDAY_ACTIONS()\n});\n\nexport default MONDAY_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst GOOGLE_SHEETS_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create new spreadsheet'),\n description: t('Create new spreadsheet and add form data'),\n value: INTEGRATION_ACTION_TYPES.CREATE_SPREADSHEET\n },\n {\n text: t('Use existing spreadsheet'),\n description: t('Create new worksheet in an existing spreadsheet and add form data'),\n value: INTEGRATION_ACTION_TYPES.EXISTING_SPREADSHEET\n }\n]);\n\nconst GOOGLE_SHEETS_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: t('Google Sheets'),\n icon: PARTNER_ICONS[PARTNER_NAMES.GOOGLE_SHEETS_V2],\n url: 'https://docs.google.com/spreadsheets',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/google_sheets_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Google Sheets is a powerful data management tool that helps you organize important data and collaborate with others. Integrate Jotform with Google Sheets to automatically sync form submissions to your spreadsheets and update your data in real time.')\n },\n shortDescription: {\n default: ('Instantly populate your spreadsheets with form data')\n },\n guideURL: 'https://www.jotform.com/help/228-how-to-integrate-forms-with-google-sheets/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actionLimit: 1,\n actions: GOOGLE_SHEETS_ACTIONS(),\n betaIntegration: true\n});\n\nexport default GOOGLE_SHEETS_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport {\n AUTH_METHODS,\n PARTNER_NAMES,\n INTEGRATION_ACTION_DETAILS_TYPE,\n INTEGRATION_ACTION_TYPES,\n I_PARTNER_RAW_DETAILS,\n RESOURCE_TYPE\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst WEBHOOKSV2_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Send data as JSON'),\n description: t('Send submission data as a JSON object'),\n value: INTEGRATION_ACTION_TYPES.SEND_SUBMISSION_DATA\n },\n {\n text: t('Send data as FormData'),\n description: t('Send submission data in form-data format'),\n value: INTEGRATION_ACTION_TYPES.SEND_DATA_BY_FORMDATA,\n allowedResources: [RESOURCE_TYPE.FORM, RESOURCE_TYPE.SHEET_FORM]\n }\n]);\n\nconst WEBHOOKSV2_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'WebHooks',\n icon: PARTNER_ICONS[PARTNER_NAMES.WEBHOOKSV2],\n url: '',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/webhooks_logo.svg',\n description: {\n default: t('WebHook is helping you to send submssions to your endpoint.')\n },\n shortDescription: {\n default: t('Send form submission notifications to a URL')\n },\n guideURL: 'https://www.jotform.com/help/245-how-to-setup-a-webhook-with-jotform',\n authMethod: AUTH_METHODS.CUSTOM,\n hipaaCompliance: true,\n actions: WEBHOOKSV2_ACTIONS(),\n betaIntegration: getUrlParameter('useIntegrationV2') !== '1'\n});\n\nexport default WEBHOOKSV2_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, RESOURCE_TYPE, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst MICROSOFT_TEAMS_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Send Message to standard channel'),\n description: t('Send messages to a Microsoft Teams standard channel'),\n value: INTEGRATION_ACTION_TYPES.PUBLIC_CHANNEL\n },\n {\n text: t('Send message to private channel'),\n description: t('Send messages to a Microsoft Teams private channel'),\n value: INTEGRATION_ACTION_TYPES.PRIVATE_CHANNEL\n },\n {\n text: t('Send chat message'),\n description: t('Send messages to a Microsoft Teams chat'),\n value: INTEGRATION_ACTION_TYPES.PRIVATE_MESSAGE\n },\n {\n text: t('Create Meeting'),\n description: t('Add a new meeting to your Microsoft Teams calendar'),\n value: INTEGRATION_ACTION_TYPES.CREATE_EVENT,\n allowedResources: [RESOURCE_TYPE.FORM, RESOURCE_TYPE.SHEET_FORM, RESOURCE_TYPE.WORKFLOW]\n }\n]);\n\nconst MICROSOFT_TEAMS_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Microsoft Teams',\n icon: PARTNER_ICONS[PARTNER_NAMES.MICROSOFT_TEAMS],\n url: '',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/microsoft_teams_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('The ultimate collaboration tool, Microsoft Teams makes it easier than ever for teams to get notified about new tasks, feedback, bookings, and more. Integrate your form with Microsoft Teams to automatically send form submissions to channels or teammates, or to create meetings.')\n },\n shortDescription: {\n default: t('Sync form submissions to Microsoft Teams channels or teammates')\n },\n guideURL: 'https://www.jotform.com/help/how-to-integrate-microsoft-teams-with-jotform/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: MICROSOFT_TEAMS_ACTIONS()\n});\n\nexport default MICROSOFT_TEAMS_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst CAMPAIGN_MONITOR_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Add Subscriber'), value: INTEGRATION_ACTION_TYPES.ADD_SUBSCRIBER }\n]);\n\nconst CAMPAIGN_MONITOR_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Campaign Monitor',\n icon: PARTNER_ICONS[PARTNER_NAMES.CAMPAIGN_MONITOR],\n url: 'https://www.campaignmonitor.com/',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/campaign_monitor_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Campaign Monitor is a marketing software that allows web designers to send automated emails to their clients. Automatically add new email addresses to your subscriber list by integrating your contact form, lead gen form, or email newsletter signup form directly to your Campaign Monitor account.')\n },\n shortDescription: {\n default: t('Automatically add new subscribers to your email lists')\n },\n guideURL: 'https://www.jotform.com/help/388-how-to-integrate-jotform-with-campaign-monitor/',\n authMethod: AUTH_METHODS.OAUTH,\n actions: CAMPAIGN_MONITOR_ACTIONS()\n});\n\nexport default CAMPAIGN_MONITOR_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, RESOURCE_TYPE, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ASANA_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Task'),\n description: t('Create new task from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_TASK\n },\n {\n text: t('Create Section'),\n description: t('Create new section from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_SECTION\n },\n {\n text: t('Create Project'),\n description: t('Create new project from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_PROJECT\n },\n {\n text: t('Create Task Comment'),\n description: t('Create new task comment from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_TASK_COMMENT\n }\n]);\n\nconst ASANA_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Asana',\n icon: PARTNER_ICONS[PARTNER_NAMES.ASANA],\n url: 'https://www.asana.com',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/asana_logo.svg',\n description: {\n default: t('Integrate your custom online form with Asana to automatically send form submissions and attached files to your Asana boards.'),\n [RESOURCE_TYPE.SIGN]: t('You can create documents, send them out for signature, and then automatically send signed documents and their corresponding data to your Asana boards.')\n },\n shortDescription: {\n default: t('Add new projects, tasks, and comments in Asana')\n },\n guideURL: 'https://www.jotform.com/help/470-create-tasks-in-asana-with-jotform-submissions',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: ASANA_ACTIONS()\n});\n\nexport default ASANA_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, RESOURCE_TYPE, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst TRELLO_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Card'),\n description: t('Create new card from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CARD\n },\n {\n text: t('Update Card'),\n description: t('Update the card from form submissions'),\n value: INTEGRATION_ACTION_TYPES.UPDATE_CARD\n }\n]);\n\nconst TRELLO_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Trello',\n icon: PARTNER_ICONS[PARTNER_NAMES.TRELLO],\n url: 'https://www.trello.com',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/trello_logo.svg',\n description: {\n default: t('When integrated with your online form, you can automatically send form submissions, supporting information, and file uploads straight to your Trello board.'),\n [RESOURCE_TYPE.SIGN]: t('You can automatically send e-signed documents to your Trello board.')\n },\n shortDescription: {\n default: t('Convert form submissions into new Trello cards')\n },\n guideURL: 'https://www.jotform.com/integrations/trello',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: TRELLO_ACTIONS(),\n betaIntegration: true\n});\n\nexport default TRELLO_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst SLACK_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Send message to public channel'),\n description: t('Send messages to a Slack public channel'),\n value: INTEGRATION_ACTION_TYPES.PUBLIC_CHANNEL\n },\n {\n text: t('Send message to private channel'),\n description: t('Send messages to a Slack private channel'),\n value: INTEGRATION_ACTION_TYPES.PRIVATE_CHANNEL\n },\n {\n text: t('Send chat message'),\n description: t('Send messages to a Slack chat'),\n value: INTEGRATION_ACTION_TYPES.PRIVATE_MESSAGE\n }\n]);\n\nconst SLACK_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Slack',\n icon: PARTNER_ICONS[PARTNER_NAMES.SLACK],\n url: 'https://www.slack.com/',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/slack_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Slack is the ultimate collaboration tool, making it easier than ever for teams to stay notified of new tasks, feedback, bookings, and more. Integrate your custom online form with Slack to automatically send form submissions to your channels or teammates.')\n },\n shortDescription: {\n default: t('Sync form submissions to Slack channels or teammates')\n },\n guideURL: 'https://www.jotform.com/help/563-how-to-integrate-jotform-with-slack/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: SLACK_ACTIONS()\n});\n\nexport default SLACK_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, RESOURCE_TYPE, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst CLICKUP_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Task'),\n description: t('Turn submissions into new tasks'),\n value: INTEGRATION_ACTION_TYPES.CREATE_TASK\n },\n {\n text: t('Create Subtask'),\n description: t('Turn submissions into new subtasks'),\n value: INTEGRATION_ACTION_TYPES.CREATE_SUBTASK\n },\n {\n text: t('Create Comment'),\n description: t('Turn submissions into new task comments'),\n value: INTEGRATION_ACTION_TYPES.CREATE_TASK_COMMENT\n }\n]);\n\nconst CLICKUP_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'ClickUp',\n icon: PARTNER_ICONS[PARTNER_NAMES.CLICKUP],\n url: 'https://www.clickup.com/',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/clickup_logo.svg',\n description: {\n default: t('You can gather task requests and project information through your online forms and have it appear in your ClickUp account automatically as new tasks.'),\n [RESOURCE_TYPE.SIGN]: t('You can collect e-signatures for task requests and team projects — then send the data to ClickUp automatically.')\n },\n shortDescription: {\n default: t('Turn form submissions into ClickUp tasks automatically')\n },\n guideURL: 'https://www.jotform.com/help/how-to-integrate-with-clickup/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: CLICKUP_ACTIONS()\n});\n\nexport default CLICKUP_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ZOHOCRM_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Record'), value: INTEGRATION_ACTION_TYPES.CREATE_RECORD }\n]);\n\nconst ZOHOCRM_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Zoho CRM',\n icon: PARTNER_ICONS[PARTNER_NAMES.ZOHO_CRM],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/zoho_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Zoho CRM is a sales automation software that helps businesses generate, organize, and manage leads. Gather leads through your website with a custom contact or lead-gen form, then instantly send submissions to your Zoho workflow with Jotform’s Zoho CRM integration.')\n },\n shortDescription: {\n default: t('Instantly send new contacts to your CRM system')\n },\n guideURL: 'https://www.jotform.com/help/409-how-to-integrate-jotform-with-zoho-crm',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: true,\n actions: ZOHOCRM_ACTIONS()\n});\n\nexport default ZOHOCRM_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst HUBSPOT_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Contact'),\n description: t('Turn submissions into new contacts'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT\n },\n {\n text: t('Create Deal'),\n description: t('Turn submissions into new deals'),\n value: INTEGRATION_ACTION_TYPES.CREATE_DEAL\n },\n {\n text: t('Create Ticket'),\n description: t('Turn submissions into new tickets'),\n value: INTEGRATION_ACTION_TYPES.CREATE_TICKET\n },\n {\n text: t('Create Company'),\n description: t('Turn submissions into new companies'),\n value: INTEGRATION_ACTION_TYPES.CREATE_COMPANY\n },\n {\n text: t('Create Custom Record'),\n description: t('Turn submissions into custom object records'),\n value: INTEGRATION_ACTION_TYPES.CREATE_RECORD\n }\n]);\n\nconst HUBSPOT_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'HubSpot',\n icon: PARTNER_ICONS[PARTNER_NAMES.HUBSPOT],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/hubspot_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('HubSpot offers free CRM software and tools for more efficient marketing, sales, and customer service. Integrate your contact form or lead gen form with HubSpot CRM to update your HubSpot account automatically.')\n },\n shortDescription: {\n default: t('Send new contacts to your CRM and create new deals')\n },\n guideURL: 'https://www.jotform.com/help/551-how-to-integrate-jotform-with-hubspot-crm/',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n actions: HUBSPOT_ACTIONS()\n});\n\nexport default HUBSPOT_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst GOOGLE_CALENDAR_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Event'),\n description: t('Add new events to Google Calendar'),\n value: INTEGRATION_ACTION_TYPES.CREATE_EVENT\n },\n {\n text: t('Create Event with Google Meet'),\n description: t('Add new events with Google Meet conferencing'),\n value: INTEGRATION_ACTION_TYPES.CREATE_EVENT_WITH_MEETING\n }\n]);\n\nconst GOOGLE_CALENDAR_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: t('Google Calendar'),\n icon: PARTNER_ICONS[PARTNER_NAMES.GOOGLE_CALENDAR],\n url: '',\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/google_calendar_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Google Calendar helps teams and individuals stay organized and keep better track of events. Integrate Jotform with Google Calendar to automatically sync form submissions to your calendar — making it easier to monitor bookings, reservations, orders, and more!')\n },\n shortDescription: {\n default: t('Automatically add new events to your calendar')\n },\n guideURL: 'https://www.jotform.com/help/558-how-to-use-google-calendar-create-events-with-your-form/',\n hipaaCompliance: true,\n authMethod: AUTH_METHODS.OAUTH,\n actions: GOOGLE_CALENDAR_ACTIONS()\n});\n\nexport default GOOGLE_CALENDAR_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ZOOM_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create meeting'),\n description: t('Turn submissions into new meetings'),\n value: INTEGRATION_ACTION_TYPES.CREATE_MEETING\n },\n {\n text: t('Add registrant to meeting'),\n description: t('Add new registrants to a meeting'),\n value: INTEGRATION_ACTION_TYPES.ADD_REGISTRANT\n },\n {\n text: t('Add registrant to webinar'),\n description: t('Add new registrants to a webinar'),\n value: INTEGRATION_ACTION_TYPES.ADD_REGISTRANT_TO_WEBINAR\n }\n]);\n\nconst ZOOM_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Zoom',\n icon: PARTNER_ICONS[PARTNER_NAMES.ZOOM],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/zoom_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Zoom is an online video conferencing software that makes it easy to host and attend meetings, webinars, and calls from anywhere. Use Jotform’s free Zoom Scheduler to automatically schedule new meetings and add registrants via form submissions.')\n },\n shortDescription: {\n default: t('Schedule meetings and add registrants automatically')\n },\n guideURL: 'https://www.jotform.com/help/703-how-to-integrate-jotform-with-zoom/',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: true,\n actions: ZOOM_ACTIONS()\n});\n\nexport default ZOOM_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst MAILERLITE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => [\n { text: t('Add Subscriber'), value: INTEGRATION_ACTION_TYPES.ADD_SUBSCRIBER }\n];\n\nconst MAILERLITE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'MailerLite',\n icon: PARTNER_ICONS[PARTNER_NAMES.MAILERLITE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/mailerlite_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('MailerLite is an email marketing software that lets users create email campaigns using features like landing pages, pop-ups, automation tools, and more. With MailerLite integration, you can gather emails through your online contact forms or subscription forms and send them to MailerLite automatically.')\n },\n shortDescription: {\n default: t('Collect subscriber emails and send them to MailerLite automatically')\n },\n guideURL: 'https://www.jotform.com/help/how-to-integrate-form-with-mailerlite/',\n authMethod: AUTH_METHODS.API_KEY,\n hipaaCompliance: false,\n actions: MAILERLITE_ACTIONS(),\n customApiKey: 'api_key'\n});\n\nexport default MAILERLITE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst CONSTANT_CONTACT_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Contact'), value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT }\n]);\n\nconst CONSTANT_CONTACT_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Constant Contact',\n icon: PARTNER_ICONS[PARTNER_NAMES.CONSTANT_CONTACTV2],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/constant_contact_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Constant Contact is an email marketing platform that aims to help your business drive more sales in less time. Integrate Jotform with Constant Contact to collect leads online and instantly add new contacts to your Constant Contact lists.')\n },\n shortDescription: {\n default: t('Add new contacts to your email lists instantly')\n },\n guideURL: 'https://www.jotform.com/help/386-how-to-integrate-form-with-constant-contact/',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n actions: CONSTANT_CONTACT_ACTIONS()\n});\n\nexport default CONSTANT_CONTACT_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst GETRESPONSE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Contact'),\n description: t('Create a new contact'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT\n }\n]);\n\nconst GETRESPONSE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'GetResponse',\n icon: PARTNER_ICONS[PARTNER_NAMES.GETRESPONSE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/getresponse_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('GetResponse is designed to help small businesses grow their audience, convert on leads, and build a smoother email marketing workflow. Log in to your GetResponse account and integrate with Jotform to get started. With Jotform’s GetResponse integration, you can automatically sync the contacts you collect through your lead gen forms directly to GetResponse!')\n },\n shortDescription: {\n default: t('Automatically add contacts to your email campaign lists')\n },\n guideURL: 'https://www.jotform.com/help/397-how-to-integrate-form-with-getresponse',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n actions: GETRESPONSE_ACTIONS()\n});\n\nexport default GETRESPONSE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst MAILCHIMP_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Contact'),\n description: t('Create new contacts from form submissions'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT\n }\n]);\n\nconst MAILCCHIMP_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Mailchimp',\n icon: PARTNER_ICONS[PARTNER_NAMES.MAILCHIMP],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/mailchimp_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Mailchimp is a marketing automation platform designed to help small businesses. Integrate your form with Mailchimp to automatically send new leads, customers, and subscribers to your mailing lists.')\n },\n shortDescription: {\n default: t('Add and update contacts in your email lists')\n },\n guideURL: 'https://www.jotform.com/help/163-how-to-integrate-with-mailchimp',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n actions: MAILCHIMP_ACTIONS()\n});\n\nexport default MAILCCHIMP_DETAILS;\n","import { t } from '@jotforminc/translation';\n\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ACTIVE_CAMPAIGN_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create contact'),\n description: t('Turn submissions into new contacts'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT\n },\n {\n text: t('Create account'),\n description: t('Turn submissions into new accounts'),\n value: INTEGRATION_ACTION_TYPES.CREATE_ACCOUNT\n },\n {\n text: t('Create deal'),\n description: t('Turn submissions into new deals'),\n value: INTEGRATION_ACTION_TYPES.CREATE_DEAL\n }\n]);\n\nconst ACTIVE_CAMPAIGN_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'ActiveCampaign',\n icon: PARTNER_ICONS[PARTNER_NAMES.ACTIVE_CAMPAIGN],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/activecampaign_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('ActiveCampaign offers a sales automation CRM for better lead prioritization and contact management. Stay on top of your sales process with Jotform’s ActiveCampaign integration — sync your contact form or lead-gen form with ActiveCampaign to instantly send submission data to your Deals CRM.')\n },\n shortDescription: {\n default: t('Update contacts and deals in your sales CRM')\n },\n guideURL: 'https://www.jotform.com/integrations/activecampaign',\n authMethod: AUTH_METHODS.API_KEY,\n actions: ACTIVE_CAMPAIGN_ACTIONS(),\n hipaaCompliance: true,\n authParameters: ['baseUrl']\n});\n\nexport default ACTIVE_CAMPAIGN_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst AWEBER_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Add Subscriber'), value: INTEGRATION_ACTION_TYPES.ADD_SUBSCRIBER }\n]);\n\nconst AWEBER_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'AWeber',\n icon: PARTNER_ICONS[PARTNER_NAMES.AWEBER],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/aweber_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('AWeber is an all-in-one email marketing tool that helps you connect with your audience faster. Easily send new subscriber info from your contact form, email signup form, or lead gen form straight to your AWeber lists with Jotform’s free integration!')\n },\n shortDescription: {\n default: t('Collect new contacts and add them to your email lists')\n },\n guideURL: 'https://www.jotform.com/help/387-how-to-integrate-jotform-with-aweber',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n actions: AWEBER_ACTIONS()\n});\n\nexport default AWEBER_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst KEAP_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n {\n text: t('Create Contact'),\n description: t('Turn submissions into new contacts'),\n value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT\n },\n {\n text: t('Create Company'),\n description: t('Turn submissions into new companies'),\n value: INTEGRATION_ACTION_TYPES.CREATE_COMPANY\n }\n]);\n\nconst KEAP_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Keap',\n icon: PARTNER_ICONS[PARTNER_NAMES.KEAP],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/keap_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Keap (formerly InfusionSoft) is an all-in-one CRM, sales, and marketing automation platform that helps you keep better track of client data. With Jotform’s Keap and Keap Max Classic integration, you can capture leads online with a custom form and add new contacts to your CRM automatically.')\n },\n shortDescription: {\n default: t('Add new contacts to your CRM and assign tags')\n },\n guideURL: 'https://www.jotform.com/help/379-achieving-keap-campaign-goals-with-jotform/',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: true,\n betaIntegration: getUrlParameter('useIntegrationV2') !== '1',\n actions: KEAP_ACTIONS()\n});\n\nexport default KEAP_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst ZENDESK_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Ticket'), value: INTEGRATION_ACTION_TYPES.CREATE_TICKET }\n]);\n\nconst ZENDESK_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Zendesk',\n url: 'https://www.zendesk.com/',\n icon: PARTNER_ICONS[PARTNER_NAMES.ZENDESK],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/zendesk_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Zendesk is a CRM software that helps businesses build better customer relationships. With Jotform\\'s free Zendesk integration, you can automatically turn form submissions into new tickets in Zendesk -- perfect for tackling support requests, orders, or customer feedback with your team.')\n },\n shortDescription: {\n default: t('Generate support tickets in Zendesk')\n },\n guideURL: 'https://www.jotform.com/help/691-how-to-integrate-jotform-with-zendesk/',\n authMethod: AUTH_METHODS.OAUTH,\n actions: ZENDESK_ACTIONS(),\n betaIntegration: getUrlParameter('useIntegrationV2') !== '1',\n authParameters: ['subdomain']\n});\n\nexport default ZENDESK_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst PIPEDRIVE_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Deal'), value: INTEGRATION_ACTION_TYPES.CREATE_DEAL },\n { text: t('Create Person'), value: INTEGRATION_ACTION_TYPES.CREATE_PERSON },\n { text: t('Create Activity'), value: INTEGRATION_ACTION_TYPES.CREATE_ACTIVITY }\n]);\n\nconst PIPEDRIVE_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Pipedrive',\n icon: PARTNER_ICONS[PARTNER_NAMES.PIPEDRIVE],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/pipedrive_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Pipedrive is a CRM platform built for better activity-based selling. Log in to your Pipedrive account and integrate with Jotform to get started. With Jotform’s Pipedrive integration, your custom lead-gen form will instantly sync new contacts and deals straight into your sales pipeline.')\n },\n shortDescription: {\n default: t('Send new contacts, deals, and activities to your sales pipeline')\n },\n guideURL: 'https://www.jotform.com/help/580-how-to-integrate-jotform-with-pipedrive/',\n authMethod: AUTH_METHODS.OAUTH,\n hipaaCompliance: false,\n betaIntegration: getUrlParameter('useIntegrationV2') !== '1',\n actions: PIPEDRIVE_ACTIONS()\n});\n\nexport default PIPEDRIVE_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst SENDGRID_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Contact'), value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT }\n]);\n\nconst SENDGRID_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'SendGrid',\n icon: PARTNER_ICONS[PARTNER_NAMES.SENDGRID],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/sendgrid_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('SendGrid is an email marketing solution designed to simplify email campaigns and drive your business to success. Integrate your lead generation form, contact form, or signup form with SendGrid to automatically sync new contact information to your SendGrid contact lists.')\n },\n shortDescription: {\n default: t('Sync submissions to your contact lists')\n },\n guideURL: 'https://www.jotform.com/help/557-how-to-integrate-your-form-with-sendgrid/',\n authMethod: AUTH_METHODS.API_KEY,\n hipaaCompliance: false,\n actions: SENDGRID_ACTIONS()\n});\n\nexport default SENDGRID_DETAILS;\n","import { t } from '@jotforminc/translation';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport {\n AUTH_METHODS, PARTNER_NAMES, INTEGRATION_ACTION_DETAILS_TYPE, INTEGRATION_ACTION_TYPES, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst MAILSOFTLY_ACTIONS = (): Array<INTEGRATION_ACTION_DETAILS_TYPE> => ([\n { text: t('Create Contact'), value: INTEGRATION_ACTION_TYPES.CREATE_CONTACT }\n]);\n\nconst MAILSOFTLY_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n text: 'Mailsoftly',\n icon: PARTNER_ICONS[PARTNER_NAMES.MAILSOFTLY],\n logoURL: '//cdn.jotfor.ms/assets/img/integrations/v2/mailsoftly_logo.svg',\n description: {\n // eslint-disable-next-line max-len\n default: t('Integrate forms with Mailsoftly to automate lead generation and manage contact data seamlessly. Capture form submissions directly into Mailsoftly, enabling efficient audience segmentation and personalized email campaigns.')\n },\n shortDescription: {\n default: t('Add new contacts from forms to Mailsoftly instantly')\n },\n guideURL: 'https://www.jotform.com/help',\n authMethod: AUTH_METHODS.API_KEY,\n hipaaCompliance: false,\n betaIntegration: getUrlParameter('useIntegrationV2') !== '1',\n actions: MAILSOFTLY_ACTIONS()\n});\n\nexport default MAILSOFTLY_DETAILS;\n","import { AUTH_METHODS, PARTNER_NAMES_V1, I_PARTNER_RAW_DETAILS } from '../types';\nimport { PARTNER_ICONS } from '../icons';\n\nconst DUMMY_PROPS = {\n logoURL: '',\n guideURL: '',\n description: { default: '' },\n shortDescription: { default: '' },\n authMethod: AUTH_METHODS.CUSTOM,\n actions: [],\n betaIntegration: true // TODO :: remove for v1\n};\n\nexport const GOOGLE_CALENDAR_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n ...DUMMY_PROPS,\n text: 'Google Calendar',\n icon: PARTNER_ICONS[PARTNER_NAMES_V1.GOOGLE_CALENDAR],\n url: 'https://calendar.google.com'\n});\n\nexport const WEBHOOKS_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n ...DUMMY_PROPS,\n text: 'WebHooks',\n icon: PARTNER_ICONS[PARTNER_NAMES_V1.WEBHOOKS],\n url: 'https://www.jotform.com/help/248-webhook-php-script-examples'\n});\n\nexport const SALESFORCEV2_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n ...DUMMY_PROPS,\n text: 'Salesforce',\n icon: PARTNER_ICONS[PARTNER_NAMES_V1.SALESFORCEV2],\n url: 'https://www.salesforce.com/'\n});\n\nexport const FTP_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n ...DUMMY_PROPS,\n text: 'FTP',\n icon: PARTNER_ICONS[PARTNER_NAMES_V1.FTP],\n url: 'https://www.jotform.com/help/177-how-to-send-submission-data-file-upload-via-ftp'\n});\n\nexport const MAILCHIMP_DETAILS = (): I_PARTNER_RAW_DETAILS => ({\n ...DUMMY_PROPS,\n text: 'Mailchimp',\n icon: PARTNER_ICONS[PARTNER_NAMES_V1.MAILCHIMP],\n url: 'https://www.mailchimp.com'\n});\n","import { PARTNER_NAMES, PARTNER_NAMES_V1 } from '../types';\n\nimport GOOGLE_DRIVE_DETAILS from './GoogleDriveDetails';\nimport BOX_DETAILS from './BoxDetails';\nimport DROPBOX_DETAILS from './DropboxDetails';\nimport ONEDRIVE_DETAILS from './OnedriveDetails';\nimport EGNYTE_DETAILS from './EgnyteDetails';\nimport AIRTABLE_DETAILS from './AirtableDetails';\nimport QUICKBOOKS_DETAILS from './QuickbooksDetails';\nimport MONDAY_DETAILS from './MondayDetails';\nimport GOOGLE_SHEETS_DETAILS from './GoogleSheetsDetails';\nimport WEBHOOKSV2_DETAILS from './WebhooksV2Details';\nimport MICROSOFT_TEAMS_DETAILS from './MicrosoftTeamsDetails';\nimport CAMPAIGN_MONITOR_DETAILS from './CampaignMonitorDetails';\nimport ASANA_DETAILS from './AsanaDetails';\nimport TRELLO_DETAILS from './TrelloDetails';\nimport SLACK_DETAILS from './SlackDetails';\nimport CLICKUP_DETAILS from './ClickUpDetails';\nimport ZOHOCRM_DETAILS from './ZohoDetails';\nimport HUBSPOT_DETAILS from './HubspotDetails';\nimport GOOGLE_CALENDAR_DETAILSV2 from './GoogleCalendarDetails';\nimport ZOOM_DETAILS from './ZoomDetails';\nimport MAILERLITE_DETAILS from './MailerliteDetails';\nimport CONSTANT_CONTACTV2_DETAILS from './ConstantContactDetails';\nimport GETRESPONSE_DETAILS from './GetResponseDetails';\nimport MAILCHIMP_DETAILS from './MailchimpDetails';\nimport ACTIVE_CAMPAIGN_DETAILS from './ActiveCampaignDetails';\nimport AWEBER_DETAILS from './AWeberDetails';\nimport KEAP_DETAILS from './KeapDetails';\nimport ZENDESK_DETAILS from './ZendeskDetails';\nimport PIPEDRIVE_DETAILS from './PipedriveDetails';\nimport SENDGRID_DETAILS from './SendgridDetails';\nimport MAILSOFTLY_DETAILS from './MailsoftlyDetails';\n\nimport {\n GOOGLE_CALENDAR_DETAILS,\n WEBHOOKS_DETAILS,\n SALESFORCEV2_DETAILS,\n FTP_DETAILS,\n MAILCHIMP_DETAILS as MAILCHIMP_DETAILS_V1\n} from './V1Details';\n\nconst PARTNER_DETAILS = {\n [PARTNER_NAMES.AIRTABLE]: AIRTABLE_DETAILS,\n [PARTNER_NAMES.ASANA]: ASANA_DETAILS,\n [PARTNER_NAMES.BOX]: BOX_DETAILS,\n [PARTNER_NAMES.CAMPAIGN_MONITOR]: CAMPAIGN_MONITOR_DETAILS,\n [PARTNER_NAMES.CLICKUP]: CLICKUP_DETAILS,\n [PARTNER_NAMES.DROPBOX]: DROPBOX_DETAILS,\n [PARTNER_NAMES.EGNYTE]: EGNYTE_DETAILS,\n [PARTNER_NAMES.GOOGLE_DRIVE]: GOOGLE_DRIVE_DETAILS,\n [PARTNER_NAMES.GOOGLE_SHEETS_V2]: GOOGLE_SHEETS_DETAILS,\n [PARTNER_NAMES.MICROSOFT_TEAMS]: MICROSOFT_TEAMS_DETAILS,\n [PARTNER_NAMES.MONDAY]: MONDAY_DETAILS,\n [PARTNER_NAMES.ONEDRIVE]: ONEDRIVE_DETAILS,\n [PARTNER_NAMES.QUICKBOOKS]: QUICKBOOKS_DETAILS,\n [PARTNER_NAMES.SLACK]: SLACK_DETAILS,\n [PARTNER_NAMES.TRELLO]: TRELLO_DETAILS,\n [PARTNER_NAMES.WEBHOOKSV2]: WEBHOOKSV2_DETAILS,\n [PARTNER_NAMES.ZOHO_CRM]: ZOHOCRM_DETAILS,\n [PARTNER_NAMES.HUBSPOT]: HUBSPOT_DETAILS,\n [PARTNER_NAMES.GOOGLE_CALENDAR]: GOOGLE_CALENDAR_DETAILSV2,\n [PARTNER_NAMES.ZOOM]: ZOOM_DETAILS,\n [PARTNER_NAMES.MAILERLITE]: MAILERLITE_DETAILS,\n [PARTNER_NAMES.CONSTANT_CONTACTV2]: CONSTANT_CONTACTV2_DETAILS,\n [PARTNER_NAMES.GETRESPONSE]: GETRESPONSE_DETAILS,\n [PARTNER_NAMES.MAILCHIMP]: MAILCHIMP_DETAILS,\n [PARTNER_NAMES.ACTIVE_CAMPAIGN]: ACTIVE_CAMPAIGN_DETAILS,\n [PARTNER_NAMES.AWEBER]: AWEBER_DETAILS,\n [PARTNER_NAMES.KEAP]: KEAP_DETAILS,\n [PARTNER_NAMES.ZENDESK]: ZENDESK_DETAILS,\n [PARTNER_NAMES.PIPEDRIVE]: PIPEDRIVE_DETAILS,\n [PARTNER_NAMES.SENDGRID]: SENDGRID_DETAILS,\n [PARTNER_NAMES.MAILSOFTLY]: MAILSOFTLY_DETAILS,\n [PARTNER_NAMES_V1.GOOGLE_CALENDAR]: GOOGLE_CALENDAR_DETAILS,\n [PARTNER_NAMES_V1.WEBHOOKS]: WEBHOOKS_DETAILS,\n [PARTNER_NAMES_V1.MONDAY]: MONDAY_DETAILS,\n [PARTNER_NAMES_V1.SALESFORCEV2]: SALESFORCEV2_DETAILS,\n [PARTNER_NAMES_V1.FTP]: FTP_DETAILS,\n [PARTNER_NAMES_V1.BOX]: BOX_DETAILS,\n [PARTNER_NAMES_V1.MAILCHIMP]: MAILCHIMP_DETAILS_V1\n};\n\nexport default PARTNER_DETAILS;\n","import isUndefined from 'lodash/isUndefined';\n\nimport type {\n RESOURCE_TYPE, PARTNER_NAMES, I_PARTNER_DETAILS, I_PARTNER_RAW_DETAILS\n} from '../types';\nimport { PARTNER_NAMES_V1 } from '../types';\nimport PARTNER_DETAILS from '../partnerDetails';\n\ntype GET_INTEGRATION_DETAILS_TYPE = (resource: RESOURCE_TYPE, partner: PARTNER_NAMES) => I_PARTNER_DETAILS;\nexport const getIntegrationDetails: GET_INTEGRATION_DETAILS_TYPE = (resource, partner) => {\n const details = PARTNER_DETAILS[partner]();\n\n const description = details.description[resource] || details.description.default as string;\n const shortDescription = details.shortDescription[resource] || details.shortDescription.default as string;\n return {\n ...details,\n description,\n shortDescription,\n actions: details.actions.filter(action => isUndefined(action.allowedResources) || action.allowedResources.includes(resource))\n };\n};\n\ntype GET_ALL_INTEGRATIONS_DETAILS = (resource: RESOURCE_TYPE) => Record<PARTNER_NAMES, I_PARTNER_DETAILS>;\nexport const getAllIntegrationsDetails: GET_ALL_INTEGRATIONS_DETAILS = resource => { // TODO :: split v1 and v2 integration details\n const orderedPartnerNames = Object.keys(PARTNER_DETAILS).sort() as Array<PARTNER_NAMES>;\n const orderedPartnerDetails = orderedPartnerNames.reduce((acc, key) => {\n return {\n ...acc,\n [key]: PARTNER_DETAILS[key]\n };\n }, {} as Record<PARTNER_NAMES, () => I_PARTNER_RAW_DETAILS>);\n\n return Object.entries(orderedPartnerDetails).reduce((acc, [partner, value]) => {\n if (value().betaIntegration || Object.values(PARTNER_NAMES_V1).includes(partner as PARTNER_NAMES_V1)) {\n return acc;\n }\n return {\n ...acc,\n [partner]: getIntegrationDetails(resource, partner as PARTNER_NAMES)\n };\n }, {} as ReturnType<GET_ALL_INTEGRATIONS_DETAILS>);\n};\n","/* eslint-disable default-case */\nimport React from 'react';\nimport {\n bool, string, node, object\n} from 'prop-types';\nimport { getAllIntegrationsDetails } from '@jotforminc/integration-constants';\nimport View from '../../../components/View';\nimport Text from '../../../components/Text';\n\nexport const INTEGRATION_DETAILS = getAllIntegrationsDetails();\n\n// TODO: translate alt text for accessibility.\nconst ThreadActor = ({\n type,\n name,\n email,\n avatar,\n showAvatars,\n showAssigneeEmail,\n team,\n TeamAvatar,\n action\n}) => {\n const getAvatarText = () => {\n if (type === 'system') {\n return 'isSystem';\n }\n if (type === 'group') {\n return 'isGroup';\n }\n };\n\n const getAvatarUrl = avatarURL => {\n const currentURL = (avatarURL || '').replace(/^\\/\\//, 'https://');\n if (currentURL === '') {\n return currentURL;\n }\n const url = new URL(currentURL);\n url.searchParams.set('height', 36);\n return url.toString();\n };\n const getThreadActor = () => {\n switch (true) {\n case type === 'human':\n return (\n <View className=\"stAnswer-actor\">\n {showAvatars && (\n <View className=\"stAnswer-actor-avatar\">\n <View\n className=\"stAnswer-actor-avatar-image isUser\"\n style={{\n backgroundImage: `url('${getAvatarUrl(avatar)}')`\n }}\n />\n </View>\n )}\n <View className=\"stAnswer-actor-info\">\n {name && <Text className=\"stAnswer-actor-info-name\">{name}</Text>}\n {showAssigneeEmail && email && <Text className=\"stAnswer-info-email\">{email}</Text>}\n </View>\n </View>\n );\n case type === 'team':\n return (\n <View className=\"stAnswer-actor\">\n <>\n <TeamAvatar\n iconBgColor={team?.teamAvatarIconBgColor}\n url={team?.teamAvatarURL}\n icon={team?.teamAvatarIcon}\n emojiId={team?.teamAvatarEmojiId}\n iconColor={team?.teamAvatarIconColor}\n iconSvgRef={team?.teamAvatarIconSvgRef}\n hasCustomization={false}\n isVisible={true}\n />\n {team.teamName}\n </>\n </View>\n );\n case type === 'system' || type === 'group':\n return (\n <View className=\"stAnswer-actor\">\n {showAvatars && (\n <View className=\"stAnswer-actor-avatar\">\n <View className={`stAnswer-actor-avatar-image ${getAvatarText()}`} />\n </View>\n )}\n <View className=\"stAnswer-actor-info\">\n <Text className=\"stAnswer-actor-info-text\">\n {type === 'system' && 'Notification'}\n {type === 'group' && 'Group Approval'}\n </Text>\n </View>\n </View>\n );\n case type === 'integration':\n const { partner } = action;\n const details = INTEGRATION_DETAILS?.[partner];\n return (\n <View className=\"stAnswer-actor\">\n <View className=\"stAnswer-actor-avatar\">\n <View className=\"stAnswer-actor-avatar-image isIntegration\">\n {details?.icon()}\n </View>\n </View>\n <View className=\"stAnswer-actor-info\">\n {details?.text}\n </View>\n </View>\n );\n }\n };\n return (\n getThreadActor()\n );\n};\n\nexport const ThreadActorPropTypes = {\n type: string, // human,system\n name: string.isRequired,\n email: string,\n avatar: string.isRequired,\n showAvatars: bool,\n showAssigneeEmail: bool,\n team: object,\n TeamAvatar: node,\n action: object\n};\n\nexport const ThreadActorDefaultProps = {\n type: 'human',\n email: null,\n showAvatars: true,\n showAssigneeEmail: true,\n team: {},\n action: {},\n TeamAvatar: () => <></>\n};\n\nThreadActor.propTypes = ThreadActorPropTypes;\nThreadActor.defaultProps = ThreadActorDefaultProps;\n\nexport default ThreadActor;\n","/* eslint-disable react/prop-types */\nimport React, { useMemo } from 'react';\nimport { string, shape } from 'prop-types';\nimport { getAllIntegrationsDetails } from '@jotforminc/integration-constants';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { t } from '@jotforminc/translation';\nimport Text from '../../../components/Text';\nimport View from '../../../components/View';\nimport { ThreadActorDefaultProps, ThreadActorPropTypes } from './ThreadActor';\nimport { approvalOptionValues, hexToRgba } from '../../../utils';\nimport Image from '../../../components/Image';\n\nexport const INTEGRATION_DETAILS = getAllIntegrationsDetails();\n\nconst GroupApprovalIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\"\n fill=\"none\"\n >\n <circle\n cx=\"7.466\" cy=\"7.169\" r=\"7\"\n fill=\"#0A1551\"\n />\n <g clipPath=\"url(#a)\">\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M4.784 3.734a1.125 1.125 0 100 2.25 1.125 1.125 0 000-2.25zm2.491 1.5a1.5 1.5 0 100 3.002\n 1.5 1.5 0 000-3.001zm0 3.377c-1.383 0-2.625.946-2.625 2.25 0 .208.168.376.375.376h4.501a.375.375\n 0 00.375-.376c0-1.304-1.242-2.25-2.626-2.25zM9.66 3.734a1.125 1.125 0 100 2.25 1.125 1.125 0\n 000-2.25zM5.026 6.808a.375.375 0 00-.487-.346c-.784.246-1.39.928-1.39 1.774 0\n .207.168.375.375.375H5.12a.375.375 0 00.308-.59 2.237 2.237 0\n 01-.402-1.213zm4.986-.346a.375.375 0 00-.487.346c-.014.45-.16.867-.402 1.213a.375.375 0\n 00.308.59h1.596a.375.375 0 00.375-.375c0-.846-.606-1.528-1.39-1.774z\"\n clipRule=\"evenodd\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M2.774 2.984h9.003v9.003H2.774z\" />\n </clipPath>\n </defs>\n </svg>\n);\n\n// TODO: Kaan, Styling\n// TODO: Berkay, refactor after styling\nconst ExpiredAction = ({ assigneeUser, fromMultipleApproval }) => {\n const assignee = useMemo(() => {\n const { name: assigneeName = '', email: assigneeEmail = '' } = assigneeUser || {};\n return fromMultipleApproval ? 'Group Approval' : assigneeName || assigneeEmail;\n }, [assigneeUser]);\n return (\n <View className=\"stAnswer-action isExpired\">\n <Text className=\"stAnswer-action-text isStatic\">\n Task was automatically expired\n </Text>\n <Text className=\"stAnswer-action-text\">\n {`${assignee} didn't take any action in the time allowed.`}\n </Text>\n </View>\n );\n};\n\nconst CanceledAction = () => (<Text className=\"stAnswer-action isCanceled\">Approval flow is canceled.</Text>);\nconst EscalatedAction = ({ details, showComments }) => {\n const fromMultipleApproval = details?.fromMultipleApproval || false;\n const previousAssigneeName = fromMultipleApproval ? 'Group Approval' : `${details?.previousAssigneeUser?.name || details?.previousAssigneeEmail}'s`;\n const newAssignee = details.newAssigneeEmail;\n return (\n <View className=\"stAnswer-action isEscalated\">\n <Text className=\"stAnswer-action-text isEscalatedTo\">{`${previousAssigneeName} task has been escalated to: ${newAssignee}`}</Text>\n {showComments && details.comment && <Text className=\"stAnswer-action-text isComment\">{details.comment}</Text> }\n <Text className=\"stAnswer-action-text isPrevious\">{`${previousAssigneeName} didn't take any action in the time allowed.`}</Text>\n </View>\n );\n};\n\nconst ReassignAction = ({ details }) => (\n <View className=\"stAnswer-action isReassigned\">\n <Text className=\"stAnswer-action-text isStatic\">\n Reassigned\n </Text>\n <Text className=\"stAnswer-action-text isEmail\">\n {`to: ${details.newAssigneeEmail}`}\n </Text>\n </View>\n);\n\nconst OutcomeAction = ({\n details, isAutoAction, showComments, showSignature, TeamAvatar\n}) => {\n const {\n comment, buttonColor: _buttonColor, signature, assigneeUser: { name: assigneeName, email: assigneeEmail } = {},\n text, team, title, seperatedSubtask, disectedParent = null, takenOver, fromMultipleApproval\n } = details;\n const buttonColor = _buttonColor || '#01bd6f';\n const signatureOwner = assigneeName || assigneeEmail;\n const signatureAltName = signatureOwner ? t(`${signatureOwner}'s signature`) : t('signature');\n return (\n <View className=\"stAnswer-action isOutcome\">\n {isAutoAction ? 'Automatically' : ''}\n <div\n className=\"stAnswer-action-text isOutcome\"\n style={{\n backgroundColor: hexToRgba(buttonColor, '.2'),\n color: buttonColor\n }}\n >\n {text}\n </div>\n {\n fromMultipleApproval && takenOver && (\n <>\n <div>\n {t('on behalf of')}\n </div>\n { team ? (\n <div className=\"stAnswer-team\">\n <TeamAvatar\n iconBgColor={team?.teamAvatarIconBgColor}\n url={team?.teamAvatarURL}\n icon={team?.teamAvatarIcon}\n emojiId={team?.teamAvatarEmojiId}\n iconColor={team?.teamAvatarIconColor}\n iconSvgRef={team?.teamAvatarIconSvgRef}\n hasCustomization={false}\n isVisible={true}\n />\n {team.teamName}\n </div>\n ) : (\n <div className=\"stAnswer-action-text\">\n Group Approval\n </div>\n )}\n </>\n )\n }\n {showComments && comment && (\n <Text className=\"stAnswer-action-text isComment\">\n {comment}\n </Text>\n )}\n {showSignature && signature && (\n <Image\n alt={signatureAltName}\n src={signature.value}\n className=\"stAnswer-action-image isSignature\"\n />\n )}\n {team && !disectedParent && !takenOver && (\n <div className=\"stAnswer-team\">\n <TeamAvatar\n iconBgColor={team?.teamAvatarIconBgColor}\n url={team?.teamAvatarURL}\n icon={team?.teamAvatarIcon}\n emojiId={team?.teamAvatarEmojiId}\n iconColor={team?.teamAvatarIconColor}\n iconSvgRef={team?.teamAvatarIconSvgRef}\n hasCustomization={false}\n isVisible={true}\n />\n {team.teamName}\n </div>\n )}\n {\n seperatedSubtask && !team && (\n <div className=\"stAnswer-team-name\">\n {GroupApprovalIcon}\n {title}\n </div>\n )\n }\n </View>\n );\n};\n\nconst SignAction = ({ details }) => {\n const { buttonColor, documentTitle, text } = details;\n return (\n <View className=\"stAnswer-action isMail\">\n <div\n className=\"stAnswer-action-text isOutcome\"\n style={{\n backgroundColor: hexToRgba(buttonColor, '.2'),\n color: buttonColor\n }}\n >\n {text}\n </div>\n <Text className=\"stAnswer-action-text isComment\">\n {documentTitle}\n </Text>\n </View>\n );\n};\n\n// eslint-disable-next-line no-unused-vars\nconst StartAction = ({ details }) => {\n const { startPointTitle } = details;\n return (\n <View className=\"stAnswer-action isMail\">\n <Text className=\"stAnswer-action-text isStatic\">\n {`${startPointTitle} Submitted.`}\n </Text>\n </View>\n );\n};\n\n// eslint-disable-next-line no-unused-vars\nconst RestartAction = () => {\n return (\n <View className=\"stAnswer-action isMail\">\n <Text className=\"stAnswer-action-text isStatic\">\n Restart\n </Text>\n <Text className=\"stAnswer-action-text isStatic\">\n approval flow.\n </Text>\n </View>\n );\n};\n\nconst MultipleApprovalMailAction = ({ details }) => {\n const {\n approvalOptions, assigneeEmails, title = 'Approval', team, reason, mergeTo\n } = details;\n if (reason && reason === 'SEND_REMINDER') {\n return (\n <View className=\"stAnswer-action-text\">\n <Text className=\"stAnswer-action-text isStatic\">\n {`Group Approval Step - Reminder Email sent to ${team ? team?.teamName : mergeTo || ''} `}\n </Text>\n </View>\n );\n }\n const assigneeEmailTexts = team ? team?.teamMembers.map(val => val.email || val.username || val.name).join(',') : Object.values(safeJSONParse(assigneeEmails, [])).join(',');\n const { option, value = null } = (approvalOptions && safeJSONParse(approvalOptions, approvalOptions)) || {};\n return (\n <View className=\"stAnswer-action-text\">\n <Text className=\"stAnswer-action-text isStatic\">\n {`${title} request sent to ${team ? '' : 'group approval:'}`}\n { team && (\n <>\n <b>\n {team?.teamName}\n :\n </b>\n {`${assigneeEmailTexts}`}\n </>\n ) }\n </Text>\n <Text className=\"stAnswer-action-text isStatic\">\n <b>{approvalOptionValues(option, value)}</b>\n </Text>\n {!team && (\n <Text className=\"stAnswer-action-text isStatic\">\n <b>To: </b>\n {`${assigneeEmailTexts}`}\n </Text>\n )}\n </View>\n );\n};\n\nconst MailAction = ({ details }) => {\n switch (true) {\n case details && details?.reason === 'SEND_SIGN_NOTIFICATION':\n const { documentTitle = '' } = details;\n return (\n <View className=\"stAnswer-action isMail\">\n <Text className=\"stAnswer-action-text isStatic\">\n {`${documentTitle} sent for signature.`}\n </Text>\n </View>\n );\n case details && details?.reason === 'SEND_REMINDER':\n const { elementType, elementSubType, to } = details;\n const getElementName = () => {\n // eslint-disable-next-line default-case\n switch (true) {\n case elementType === 'workflow_assign_form':\n return 'Form';\n case elementType === 'workflow_approval' && elementSubType && elementSubType === 'workflow_approval_with_sign':\n return 'Approve & Sign';\n case elementType === 'workflow_approval':\n return 'Approval';\n }\n };\n return (\n <View className=\"stAnswer-action-text\">\n <Text className=\"stAnswer-action-text isStatic\">\n {`${getElementName()} Step - Reminder Email sent to ${to} `}\n </Text>\n </View>\n );\n default:\n return (\n <View className=\"stAnswer-action isMail\">\n <Text className=\"stAnswer-action-text isStatic\">\n {` Email sent. (${details.subject})`}\n </Text>\n <Text className=\"stAnswer-action-text isTo\">\n {details.to}\n </Text>\n </View>\n );\n }\n};\n\nconst WaitingAction = ({ actor }) => {\n return (\n <Text className=\"stAnswer-action isWaiting\">\n {`Waiting for ${actor.name || actor.email}'s action.`}\n </Text>\n );\n};\n\nconst IntegrationTriggerAction = ({ details: actionDetails }) => {\n const {\n result, integrationAccountName, action, partner = ''\n } = actionDetails;\n const integrationErrorText = 'Unable to complete the action.';\n const details = INTEGRATION_DETAILS?.[partner];\n\n if (result === 'ERRORED') {\n return (\n <>\n <div className=\"jfThread-action-content\">\n <span className=\"error\">\n {t(integrationErrorText)}\n </span>\n </div>\n </>\n );\n }\n return (\n <>\n <div className='description'>\n <span className=\"text\">{details?.actions?.find(e => e.value === action)?.text}</span>\n </div>\n <div className=\"jfThread-action-content\">\n <div className=\"extra account\">\n {integrationAccountName}\n </div>\n </div>\n </>\n );\n};\n\nconst ThreadAction = ({\n details,\n status, // COPLETED, ERROR, ACTIVE\n actor,\n type,\n showComments,\n showSignature,\n TeamAvatar\n}) => {\n const isAutoAction = actor.type === 'system' && !!details.assigneeUser;\n switch (true) {\n case type === 'EXPIRE':\n return (<ExpiredAction assigneeUser={details.assigneeUser} fromMultipleApproval={details?.fromMultipleApproval || false} />);\n case type === 'MAIL':\n return (<MailAction details={details} />);\n case type === 'MULTIPLE_APPROVAL_MAIL':\n return (<MultipleApprovalMailAction details={details} />);\n case type === 'SIGN_DOCUMENT':\n return (<SignAction details={details} />);\n case type === 'APPROVE_REJECT' && status === 'COMPLETED':\n return (\n <OutcomeAction\n details={details} isAutoAction={isAutoAction} showComments={showComments}\n showSignature={showSignature} TeamAvatar={TeamAvatar}\n />\n );\n case type === 'APPROVE_REJECT' && status === 'ACTIVE':\n return (<WaitingAction actor={actor} />);\n case status === 'CANCELED':\n return (<CanceledAction />);\n case type === 'REASSIGN':\n return (<ReassignAction details={details} />);\n case type === 'ESCALATE':\n return (<EscalatedAction details={details} showComments={showComments} />);\n case type === 'INTEGRATION_TRIGGER':\n return (<IntegrationTriggerAction details={details} />);\n default:\n return (<div style={{ display: 'none' }}> missing implementation </div>);\n }\n};\n\nconst ThreadActionPropTypes = {\n status: string.isRequired,\n details: shape({}),\n actor: shape({ ...ThreadActorPropTypes })\n};\n\nconst ThreadActionDefaultProps = {\n details: {},\n actor: ThreadActorDefaultProps\n};\n\nThreadAction.defaultProps = ThreadActionDefaultProps;\nThreadAction.propTypes = ThreadActionPropTypes;\n\nexport default ThreadAction;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Text from '../../../components/Text';\nimport View from '../../../components/View';\nimport { getDateTimeText } from '../../../utils';\nimport { LocaleTypes } from '../../../constants/schemas';\n\nconst ThreadDate = ({\n date,\n ip,\n dateFormat,\n locale,\n amPmHour,\n showDate,\n showIP,\n userTimeZone\n}) => {\n const parsedDate = React.useMemo(() => {\n const dateObj = new Date(date);\n const answerDate = {\n year: dateObj.getFullYear(),\n month: dateObj.getMonth() + 1,\n day: dateObj.getDate(),\n hour: dateObj.getHours(),\n min: dateObj.getMinutes(),\n ampm: amPmHour\n };\n return getDateTimeText({\n answer: answerDate, hideTime: false, dateFormat, locale, userTimeZone, shouldCalculateTimeZone: true\n });\n }, [date, dateFormat, locale, amPmHour, userTimeZone]);\n\n return (\n <View className=\"stAnswer-date\">\n {showDate && parsedDate && (\n <Text className=\"stAnswer-date-text\">\n {parsedDate}\n </Text>\n ) }\n {showIP && ip && (\n <Text className=\"stAnswer-date-ip\">\n {ip}\n </Text>\n )}\n </View>\n );\n};\n\nThreadDate.propTypes = {\n date: PropTypes.string,\n ip: PropTypes.string,\n dateFormat: PropTypes.string,\n userTimeZone: PropTypes.string,\n locale: LocaleTypes.schema,\n amPmHour: PropTypes.bool,\n showDate: PropTypes.bool,\n showIP: PropTypes.bool\n};\n\nThreadDate.defaultProps = {\n date: null,\n ip: null,\n userTimeZone: '',\n dateFormat: 'MMM D, YYYY HH:mm',\n locale: LocaleTypes.default,\n amPmHour: false,\n showDate: true,\n showIP: true\n};\n\nexport default ThreadDate;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { t } from '@jotforminc/translation';\nimport Baseline from '../../../components/Baseline';\nimport Tableview from '../../../components/Tableview';\nimport ThreadAction from './ThreadAction';\nimport ThreadActor from './ThreadActor';\nimport ThreadDate from './ThreadDate';\nimport { LocaleTypes } from '../../../constants/schemas';\n\nconst StyledTableview = Styled(Tableview)`\n thead {\n th {\n text-align: left;\n border-bottom: 1px solid #E5E6EF;\n background-color: #EDEEF7;\n padding: 12px;\n\n &:not(:last-of-type) {\n border-right: 1px solid #DFDEE7;\n }\n }\n }\n\n tbody {\n td {\n background-color: #FAFAFD;\n\n &:not(:last-of-type).isAnswer {\n border-right: 1px solid #E5E6EF;\n }\n }\n }\n\n .stAnswer {\n &-team {\n display: flex;\n align-items: center;\n font-size: 12px;\n line-height: 14px;\n color: #0A1551;\n margin-top: 6px;\n\n &-name {\n display: flex;\n align-items: center;\n font-size: 12px;\n margin-top: 6px;\n font-weight: 500;\n\n svg {\n width: 15px;\n height: 15px;\n margin-right: 4px;\n }\n }\n\n .sb-customIcon {\n width: 14px;\n height: 14px;\n margin-right: 4px;\n\n > span > span {\n font-size: 11px !important;\n widh: 14px;\n height: 14px;\n display: inline-block;\n }\n }\n }\n\n &-action {\n line-height: 1.5;\n margin: 9px 6px;\n\n &-text {\n &.isComment {\n width: 100%;\n }\n\n &.isOutcome {\n display: inline-block;\n padding: 6px 12px;\n margin: 4px auto 4px 0;\n border-radius: 4px;\n }\n }\n\n &-image {\n &.isSignature {\n margin-top: 8px;\n max-height: 42px;\n display: block;\n }\n }\n\n &-pill {\n background-color: #F3F3FE;\n color: #6C73A8;\n border-radius: 10px;\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n padding: 2px 6px 2px 4px;\n gap: 4px;\n margin-top: 6px;\n margin-bottom: 6px;\n \n &:before {\n content: \"\";\n width: 16px;\n height: 16px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='16' fill='none'%3E%3Cpath fill='%236C73A8' fill-rule='evenodd' d='M12.06 4.027a2.476 2.476 0 0 1 0 3.502l-.888.889a.667.667 0 1 0 .942.942l.89-.888a3.81 3.81 0 0 0-5.388-5.388l-.889.89a.667.667 0 1 0 .943.942l.889-.889a2.476 2.476 0 0 1 3.502 0Zm-6.666 6.666a.667.667 0 0 1 0-.942L9.84 5.306a.667.667 0 0 1 .943.943l-4.445 4.444a.667.667 0 0 1-.943 0Zm-1.28-2.222a2.476 2.476 0 0 0 3.502 3.502l.89-.89a.667.667 0 1 1 .942.944l-.889.889a3.81 3.81 0 0 1-5.387-5.388l.889-.889a.667.667 0 0 1 .943.943l-.89.89Z' clip-rule='evenodd'/%3E%3C/svg%3E\"); background-repeat: no-repeat;\n background-position: center;\n background-size: 16px;\n }\n }\n }\n\n &-date {\n padding: 0 6px;\n }\n\n &-actor {\n display: flex;\n margin: 9px 3px;\n align-items: center;\n\n .sb-customIcon {\n > span > span {\n font-size: 16px !important;\n }\n }\n\n &-avatar {\n min-width: 36px;\n max-width: 36px;\n min-height: 36px;\n max-height: 36px;\n flex-shrink: 1;\n border-radius: 50%;\n overflow: hidden;\n background-color: #5E74E6;\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px #dcdff0;\n position: relative;\n\n &-image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-repeat: no-repeat;\n\n > svg {\n opacity: 1 !important;\n }\n\n &.isIntegration {\n background-color: var(--jfv-navy-75);\n }\n\n &.isUser {\n background-size: cover;\n }\n\n &.isSystem {\n background-image: url(\"data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M5.906 3.633h8.182v3.636H5.906z'/%3E%3Cpath d='M3.18 13.635V9.09h13.636v4.545' stroke='%23fff' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath stroke='%23fff' stroke-width='1.7' d='M9.83 13.637V9.09'/%3E%3Ccircle cx='3.17898' cy='14.0969' r='2.27273' fill='%23fff'/%3E%3Ccircle cx='16.8157' cy='14.0969' r='2.27273' fill='%23fff'/%3E%3Cpath fill='%23fff' d='M7.723 11.824h4.545v4.546H7.723z'/%3E%3C/svg%3E\");\n background-position: center;\n }\n\n &.isGroup {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='13' fill='none'%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M3.08.922a1.77 1.77 0 1 0 0 3.54 1.77 1.77 0 0 0 0-3.54ZM7 3.282a2.36 2.36 0 1 0 0 4.72 2.36 2.36 0 0 0 0-4.72Zm0 5.31c-2.176 0-4.13 1.49-4.13 3.541 0 .326.264.59.59.59h7.08a.59.59 0 0 0 .59-.59c0-2.051-1.954-3.54-4.13-3.54ZM10.75.923a1.77 1.77 0 1 0 0 3.54 1.77 1.77 0 0 0 0-3.54Zm-7.29 4.835a.59.59 0 0 0-.766-.544C1.462 5.6.51 6.672.51 8.003c0 .326.264.59.59.59h2.51a.59.59 0 0 0 .484-.928 3.52 3.52 0 0 1-.632-1.908Zm7.844-.544a.59.59 0 0 0-.767.544 3.52 3.52 0 0 1-.632 1.908.59.59 0 0 0 .484.928h2.51a.59.59 0 0 0 .59-.59c0-1.331-.952-2.403-2.185-2.79Z' clip-rule='evenodd'/%3E%3C/svg%3E\");\n background-position: center;\n background-size: 20px;\n background-color: #6C73A8;\n }\n svg {\n height: unset !important;\n width: unset !important;\n stroke: none !important;\n }\n }\n }\n\n &-info {\n flex-grow: 1;\n margin-left: 12px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n line-height: 1.5;\n }\n }\n }\n`;\n\nconst SubmissionThread = ({\n answer,\n text,\n labelProps,\n answerWrapperProps,\n direction,\n transpose,\n baselineProps,\n orientation,\n containerStyle,\n sublabelProps,\n answerProps,\n columnnHeaderProps,\n dateFormat,\n locale,\n amPmHour,\n showAvatars,\n showAssigneeEmail,\n showComments,\n showSignature,\n showIP,\n userTimeZone,\n customTableProps\n}) => {\n const columns = [t('Actor'), t('Actions'), t('Date')];\n\n const tableData = React.useMemo(() => answer.map(rowData => {\n const {\n action, actor, ip, date\n } = rowData;\n if (action?.details?.notRequired) {\n return null;\n }\n return [\n <ThreadActor\n {...actor}\n showAvatars={showAvatars}\n showAssigneeEmail={showAssigneeEmail}\n />,\n <ThreadAction\n {...action}\n actor={actor}\n showComments={showComments}\n showSignature={showSignature}\n />,\n <ThreadDate\n date={date}\n ip={ip}\n dateFormat={dateFormat}\n locale={locale}\n amPmHour={amPmHour}\n showIP={showIP}\n userTimeZone={userTimeZone}\n />\n ];\n }), [answer, dateFormat, locale, amPmHour, showAvatars, showAssigneeEmail, userTimeZone]);\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <StyledTableview\n name={text}\n rows={[]}\n tableData={tableData}\n columns={columns}\n orientation={orientation}\n containerStyle={containerStyle}\n headerProps={sublabelProps}\n answerProps={answerProps}\n transpose={transpose}\n columnnHeaderProps={columnnHeaderProps}\n {...customTableProps}\n />\n </Baseline>\n );\n};\n\nSubmissionThread.propTypes = {\n answer: PropTypes.arrayOf(PropTypes.shape({})),\n text: PropTypes.string,\n columns: PropTypes.arrayOf(PropTypes.string),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n sublabelProps: PropTypes.shape({}),\n containerStyle: PropTypes.shape({}),\n columnnHeaderProps: PropTypes.arrayOf(PropTypes.shape({})),\n transpose: PropTypes.bool,\n orientation: PropTypes.oneOf([\n 'row',\n 'column'\n ]),\n direction: PropTypes.string,\n dateFormat: PropTypes.string,\n userTimeZone: PropTypes.string,\n locale: LocaleTypes.schema,\n amPmHour: PropTypes.bool,\n showAvatars: PropTypes.bool,\n showAssigneeName: PropTypes.bool,\n showAssigneeEmail: PropTypes.bool,\n showComments: PropTypes.bool,\n showSignature: PropTypes.bool,\n showIP: PropTypes.bool,\n showDate: PropTypes.bool,\n customTableProps: PropTypes.object\n};\n\nSubmissionThread.defaultProps = {\n text: '',\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n sublabelProps: {},\n containerStyle: {},\n columnnHeaderProps: [],\n columns: [],\n transpose: false,\n orientation: 'column',\n answer: [],\n userTimeZone: '',\n direction: 'column',\n dateFormat: 'MMM D, YYYY HH:mm',\n locale: LocaleTypes.default,\n amPmHour: false,\n showAvatars: PropTypes.bool,\n showAssigneeName: true,\n showAssigneeEmail: true,\n showComments: true,\n showSignature: true,\n showIP: true,\n showDate: true,\n customTableProps: {}\n};\n\nexport default SubmissionThread;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport RadioField from '../Radio';\n\nconst SignDocumentStatus = ({\n answer,\n containerProps,\n labelProps,\n optionsArray,\n options,\n answerProps,\n label\n}) => {\n return (\n <RadioField\n text={label}\n answer={optionsArray[answer.status]?.value}\n labelProps={labelProps}\n containerProps={containerProps}\n optionsArray={optionsArray}\n submissionWidgetAnswer={false}\n options={options}\n answerProps={answerProps}\n />\n );\n};\n\nSignDocumentStatus.propTypes = {\n labelProps: PropTypes.shape({\n className: PropTypes.string\n }).isRequired,\n answer: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n answerProps: PropTypes.shape({}).isRequired,\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n optionsArray: PropTypes.shape({}).isRequired,\n options: PropTypes.string.isRequired\n};\n\nSignDocumentStatus.defaultProps = {\n baselineProps: {},\n containerProps: {},\n answerWrapperProps: {}\n};\n\nexport default SignDocumentStatus;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Baseline from '../../components/Baseline';\nimport AssigneeLine from '../../components/AssigneeLine';\n\nconst ScAssigneeLine = styled(AssigneeLine)`\n border-radius: 14px !important;\n padding: 5px 6px !important;\n img {\n width: 18px !important;\n height: 18px !important;\n }\n`;\n\nconst UserInfo = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n containerProps,\n baselineProps,\n direction\n}) => {\n const { name, avatarUrl, email } = answer;\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n >\n <div {...containerProps}>\n <ScAssigneeLine\n label={name || email}\n imageLabel={name || email}\n value={avatarUrl}\n {...answerProps}\n />\n </div>\n </Baseline>\n );\n};\n\nUserInfo.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n avatarUrl: PropTypes.string\n }),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.oneOfType([\n PropTypes.shape({}),\n PropTypes.array\n ]),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({}),\n containerProps: PropTypes.shape({}),\n direction: PropTypes.string\n};\n\nUserInfo.defaultProps = {\n text: '',\n answer: {},\n labelProps: {},\n answerProps: [],\n answerWrapperProps: {},\n baselineProps: {},\n containerProps: {},\n direction: 'column'\n};\n\nexport default UserInfo;\n","import React from 'react';\n\nconst MissingField = ({ type }) => (\n <div className=\"missingField\">{`${type} is missing`}</div>\n);\n\nexport default MissingField;\n","import makeGetAnswerFieldComponent from './makeGetAnswerFieldComponent';\n\nconst getAnswerFieldComponent = makeGetAnswerFieldComponent({});\n\nexport default getAnswerFieldComponent;\n","import * as Fields from '../../fields';\nimport MissingField from './MissingField';\n\nconst makeGetAnswerFieldComponent = config => {\n const Types = {\n ...Fields,\n ...config\n };\n\n const fieldKeys = Object.keys(Types);\n\n const getFieldType = (type = '') => type.replace('control_', '').toLowerCase();\n\n const getMatchedFieldKey = (fnKeys, fieldType) => {\n return fnKeys.find(key => {\n if (key === 'Twoco') return fieldType === '2co';\n return key.toLowerCase() === fieldType;\n });\n };\n\n return type => {\n const fieldType = getFieldType(type);\n const matchedFieldKey = getMatchedFieldKey(fieldKeys, fieldType);\n // Not found any matching field\n if (!matchedFieldKey) return MissingField;\n return Types[matchedFieldKey];\n };\n};\n\nexport default makeGetAnswerFieldComponent;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nclass ErrorBoundry extends PureComponent {\n constructor(props) {\n super(props);\n this.state = { hasError: false, errorInfo: null };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: error };\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({ errorInfo: errorInfo.componentStack });\n // Raven.captureException(error, { extra: errorInfo });\n }\n\n render() {\n const { children } = this.props;\n const { hasError, errorInfo } = this.state;\n if (hasError) {\n return (\n <>\n <div>Something went wrong.</div>\n <details style={{ whiteSpace: 'pre-wrap' }}>\n {hasError && hasError.toString()}\n {errorInfo}\n </details>\n </>\n );\n }\n return children;\n }\n}\n\nErrorBoundry.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]).isRequired\n};\n\nexport default ErrorBoundry;\n","export const QUESTION_PROPS_NECESSARY_FIELDS = ['control_matrix'];\n\nexport const SIMPLE_LABEL_PROPS = {\n simpleBaseLine: true,\n textProps: { style: { display: 'none' } },\n simpleBaseLineProps: { className: 'jSheetRow-cellContent' }\n};\n\nexport const LABEL_PROPS = {\n className: 'jSheetMasonry-label'\n};\n\nexport const TEXT_BASED_WIDGETS = [\n '5295e4876e7e79046600000e',\n '5391b2468f5ea33236000006',\n '5326d1fe8a621dd23e00001b',\n '532714968a621dd23e000033',\n '54c7a4f9651c84f76300000c',\n '55486915347ef1086c000017',\n '528c8b464b1a424916000004',\n '529dde1d1c79f7a47000000d',\n '528b683dddabdf070a000007',\n '528b3046e7cb64e379000008',\n '5c07848f6cca579729000019',\n '52a1957635fd1d2172000009',\n '533f59d51a9ff70146000022',\n '529333ae5b04b0c007000004',\n '5935688a725d1797050002e7',\n '538c8d12061f4b5808000011',\n '529cceb8cb6ab58725000004',\n '56095842e855b0bf1b000033',\n '543ea3eb3066feaa30000036',\n '5345402093a2afcc5f000004',\n '5273bb4faa80af0979000005',\n '52f8550f0019ace53000000b',\n '538c900f6593792333000005',\n '53451665a01cdaaa49000005',\n '5294d72eb1dd20af46000006',\n '5343b614d5f416b42a000004',\n '538483977c3b191c45000008',\n '559cd32b59f37c283d00001a',\n '5298aa5981b4577459000010',\n '528f2d25cb95879e40000007',\n '52933bf13be147110a000005',\n '53e4f95be39aed094c00009c',\n '528f290e597910923e000004',\n '52948fb29322cd302b00000c',\n '5298aaf08868157559000012',\n '52a04154e45f41ba4b00000c',\n '529a87169b81e79f29000004'\n];\n\nexport const IMAGE_BASED_WIDGETS = [\n '528c8b8186659c5616000004',\n '529467003477f3512000001f',\n '533a8c19a3f5fec35d00009a',\n '5d493b3b3ecd623d69000045'\n];\n\nexport const CURRENCY_SYMBOLS = {\n AUD: '$', BRL: 'R$', CAD: '$', CLP: '$', EUR: '€', GBP: '£', HKD: '$', JPY: '¥', NZD: '$', SGD: '$', TRY: '₺', USD: '$'\n};\n","import moment from 'moment';\nimport { safeJSONParse, isBrightColor, generateUniqueID } from '@jotforminc/utils';\nimport {\n QUESTION_PROPS_NECESSARY_FIELDS,\n TEXT_BASED_WIDGETS,\n IMAGE_BASED_WIDGETS,\n CURRENCY_SYMBOLS\n\n} from './cellConstants';\nimport { paymentFields } from '../../../constants/commonChartConstants';\n\nexport const getPaymentType = question => question.paymentType || null;\n\nexport const getWidgetType = question => question.selectedField || null;\n\nexport const getWidgetClass = question => {\n const widgetType = getWidgetType(question);\n if (!widgetType) {\n return false;\n }\n\n if (TEXT_BASED_WIDGETS.includes(widgetType)) {\n return 'text-widget';\n }\n if (IMAGE_BASED_WIDGETS.includes(widgetType)) {\n return 'image-widget';\n }\n\n return false;\n};\n\nexport const getInputType = question => {\n if (question.type !== 'control_matrix') return null;\n return question.inputType.replace(/\\s/g, '');\n};\n\nexport const getQuestionPropsIfNecessary = question => {\n const { type: questionType } = question;\n const isPaymentField = paymentFields.indexOf(questionType);\n const isNecessaryField = QUESTION_PROPS_NECESSARY_FIELDS.indexOf(questionType) !== -1;\n\n return isPaymentField || isNecessaryField ? question : null;\n};\n\nexport const emptyFunction = f => f;\n\nconst getSubmissionDateObj = (submissionDate, includeSecond = false) => {\n const dateObj = moment(submissionDate, 'YYYY-MM-DD H:mm:ss');\n if (!dateObj.isValid()) {\n return {};\n }\n const month = dateObj.get('month') + 1;\n return {\n day: dateObj.get('date').toString(),\n month: month.toString(),\n year: dateObj.get('year').toString(),\n hour: dateObj.get('hour').toString(),\n min: dateObj.get('minute').toString(),\n ...(includeSecond && { sec: dateObj.get('second').toString() })\n };\n};\n\nexport const addThousandSeparators = value => {\n const parts = value.split('.');\n let integer = parts[0];\n const decimal = parts.length > 1 ? `.${parts[1]}` : '';\n const regex = /(\\d+)(\\d{3})/;\n\n while (regex.test(integer)) {\n integer = integer.replace(regex, '$1,$2');\n }\n return `${integer}${decimal}`;\n};\n\nconst modifyNumberAnswer = (question, answer) => {\n // Guard to prevent fatals\n // Answer may be passed as { text: 'value' } (object).\n if (typeof answer !== 'string') {\n return answer;\n }\n\n const { inputTextMask } = question;\n let { currency, precision } = question;\n // handle legacy number fields\n let symbol;\n let scale;\n if (inputTextMask) {\n const currEnd = inputTextMask.indexOf('1');\n currency = inputTextMask.substring(0, currEnd);\n precision = inputTextMask.substring(currEnd);\n symbol = CURRENCY_SYMBOLS[currency] || currency;\n } else {\n symbol = CURRENCY_SYMBOLS[currency] || currency;\n\n if (precision) {\n const zeros = precision.match(/0/g);\n if (zeros) {\n scale = zeros;\n } else {\n scale = [];\n }\n }\n }\n\n let modifiedAnswer = answer.replace(symbol, '');\n // fix for mask library modification issues\n if (!modifiedAnswer || modifiedAnswer === '-0' || modifiedAnswer === '+0') {\n return answer;\n }\n\n if (!inputTextMask && scale) {\n modifiedAnswer = parseFloat(modifiedAnswer.replace(/,/g, '')).toFixed(scale.length);\n }\n\n if (symbol) {\n modifiedAnswer = addThousandSeparators(modifiedAnswer);\n modifiedAnswer = `${symbol}${modifiedAnswer}`;\n }\n\n return modifiedAnswer;\n};\n\nconst getAnswer = (answer, question) => {\n const { type } = question;\n if (type === 'control_textbox' || type === 'control_rating') {\n return (typeof answer === 'string' || typeof answer === 'number')\n ? answer\n : Object.keys(answer).reduce((newAnswer, valueKey) => {\n const value = answer[valueKey];\n if (newAnswer === '') return value;\n return `${newAnswer} ${value}`;\n }, '');\n }\n if (type === 'control_phone' && typeof answer === 'string') {\n return { full: answer };\n }\n if (type === 'control_slider' && !answer) {\n return '0';\n }\n if (type === 'control_number' && answer) {\n return modifyNumberAnswer(question, answer);\n }\n if (type === 'control_datetime' && typeof answer === 'string') {\n return safeJSONParse(answer);\n }\n\n return answer;\n};\n\nconst getCellSubmissionAnswer = (cellSubmissionAnswers, question) => {\n const { type: questionType, subColumnKey } = question;\n const { answer, type: answerType } = cellSubmissionAnswers;\n\n if (answerType === 'control_inline' && questionType === 'control_checkbox') {\n return Object.keys(answer).filter(a => a.indexOf(subColumnKey) > -1).map(ax => answer[ax]);\n }\n\n if (questionType === 'control_checkbox' || (answerType === 'control_inline' && questionType === 'control_time')) {\n return safeJSONParse(answer[subColumnKey]);\n }\n\n if (questionType === 'control_signature' && subColumnKey && answer[subColumnKey]) {\n return `${answer[subColumnKey].length > 0 ? '/' : ''}${answer[subColumnKey]}`;\n }\n\n return answer[subColumnKey];\n};\n\n// eslint-disable-next-line complexity\nexport const getCellAnswer = ({ submission, question }) => {\n const {\n qid: questionID,\n type: questionType,\n sheetField\n } = question;\n const {\n created_at: createdAt,\n updated_at: updatedAt,\n ip,\n id,\n submittedBy\n } = submission;\n const isSheetField = sheetField === 'Yes';\n\n let cellSubmission = (submission && submission.answers && submission.answers[questionID]) || {};\n\n if (question.isSubColumn === '1') {\n const { parentQid } = question;\n const cellSubmissionAnswers = submission && submission.answers && submission.answers[parentQid];\n\n cellSubmission = cellSubmissionAnswers && cellSubmissionAnswers.answer && {\n answer: getCellSubmissionAnswer(cellSubmissionAnswers, question),\n type: questionType\n };\n }\n\n const ignoreQuestionTypes = ['doc_created', 'doc_updated'];\n if (!cellSubmission || Object.keys(cellSubmission).length === 0 || ignoreQuestionTypes.includes(questionID)) {\n switch (questionID) {\n case 'created_at':\n cellSubmission = { answer: getSubmissionDateObj(createdAt, true) };\n break;\n case 'updated_at':\n cellSubmission = { answer: getSubmissionDateObj(updatedAt, true) };\n break;\n case 'ip':\n cellSubmission = { answer: ip };\n break;\n case 'id':\n cellSubmission = { answer: id };\n break;\n case 'submitter':\n cellSubmission = { answer: submittedBy };\n break;\n case 'doc_created':\n case 'doc_updated':\n cellSubmission = { answer: getSubmissionDateObj(cellSubmission?.answer || '', true) };\n break;\n default:\n cellSubmission = { answer: '' };\n }\n }\n\n let answerValue = cellSubmission.answer || '';\n const optionsArray = safeJSONParse(question.options_array || '{}');\n\n if (isSheetField && optionsArray) {\n if (typeof answerValue !== 'string' && typeof answerValue !== 'number') {\n if (Array.isArray(answerValue)) {\n answerValue = answerValue.map(val => {\n const maybeVal = Object.values(optionsArray).find(o => o.value === val);\n return maybeVal ? `{${maybeVal.key}}` : val;\n });\n } else {\n answerValue = Object.keys(answerValue).reduce((newAnswerValue, answerKey) => {\n const value = answerValue[answerKey];\n const maybeVal = Object.values(optionsArray).find(o => o.value === value);\n return {\n ...newAnswerValue,\n [answerKey]: maybeVal ? `{${maybeVal.key}}` : value\n };\n }, {});\n }\n } else {\n const maybeVal = Object.values(optionsArray).find(o => o.value === answerValue);\n answerValue = maybeVal ? `{${maybeVal.key}}` : answerValue;\n }\n }\n\n return getAnswer(answerValue, question);\n};\n\nexport const getUniqueID = options => {\n let optionID = generateUniqueID();\n\n while (options.includes(optionID)) {\n optionID = generateUniqueID;\n }\n\n return optionID;\n};\n\nconst extractAnswerValues = (answer = '') => {\n if (typeof answer === 'string') return [answer];\n if (typeof answer === 'object') return Object.values(answer);\n return answer;\n};\n\nconst ColorList = [\n { backgroundColor: '#FFEBB3' },\n { backgroundColor: '#EDE2FE' },\n { backgroundColor: '#FEE2D5' },\n { backgroundColor: '#D0F0FD' },\n { backgroundColor: '#E1E9F6' },\n { backgroundColor: '#FFBDC7' },\n { backgroundColor: '#BFBCFF' },\n { backgroundColor: '#DCD59D' },\n { backgroundColor: '#D1F7C4' },\n { backgroundColor: '#B5F2EB' },\n { backgroundColor: '#FFBE98' },\n { backgroundColor: '#FFC59E' },\n { backgroundColor: '#AEE5FF' }\n];\n\nconst extractColor = (index, list) => {\n return index > -1 ? list[index % list.length] : {};\n};\n\nconst prepareSelectablePropsForImageChoice = (answer, question) => {\n const options = safeJSONParse(question.options, []);\n return extractAnswerValues(answer).map(_answer => {\n let ans = _answer;\n const checkIndex = ans.indexOf('?height=');\n if (checkIndex > -1) {\n ans = ans.substring(0, checkIndex);\n }\n\n const index = options.findIndex(option => {\n const [ansText, ansLink] = ans.split('|');\n return option.text === ansText && option.link === ansLink;\n });\n return {\n style: extractColor(index, ColorList),\n className: 'field'\n };\n });\n};\n\nconst prepareOptionProps = (answer, question) => {\n const optionsArray = safeJSONParse(question.options_array || '{}');\n const allowOther = question.allowOther === 'Yes';\n const hasOther = answer && typeof answer.other !== 'undefined';\n if (allowOther && hasOther) {\n const otherID = getUniqueID(Object.keys(optionsArray));\n optionsArray[otherID] = {\n key: otherID,\n value: answer.other,\n color: '#E3E8F3',\n other: true\n };\n // eslint-disable-next-line no-param-reassign\n question.options_array = JSON.stringify(optionsArray);\n\n /* eslint-disable no-param-reassign */\n if (question.type === 'control_radio') {\n answer = `{${otherID}}`;\n } else {\n answer = Object.keys(answer).reduce((acc, curr) => {\n if (curr !== 'other') {\n acc.push(answer[curr]);\n } else {\n acc.push(`{${otherID}}`);\n }\n return acc;\n }, []);\n }\n }\n\n const answerValues = extractAnswerValues(answer);\n const answerMap = answerValues.reduce((acc, curr) => {\n if (curr.length === 0) {\n acc.push('');\n return acc;\n }\n\n // sheetField = Yes\n const matches = curr.match(/\\{(.*?)\\}/);\n if (matches && matches.length > 0) {\n acc.push(matches[1]);\n } else {\n const option = Object.values(optionsArray).find(opt => opt.value === curr);\n\n if (option) {\n acc.push(option.key);\n } else {\n // optionlardan silinmis olanlar || \"other\" option texts\n acc.push(curr);\n }\n }\n\n return acc;\n }, []);\n // const answerMap = [];\n // const optionsArray = [];\n return answerMap.map(option => ({\n style: option === '' ? {} : {\n backgroundColor: optionsArray[option] ? optionsArray[option].color : '',\n color: !isBrightColor(optionsArray[option]?.color) ? '#FFF' : '#000'\n },\n className: 'tagField',\n optionsArray\n }));\n};\n\nexport const getContainerProps = questionType => {\n switch (questionType) {\n case 'control_submissionSubmitter':\n case 'control_dropdown':\n case 'control_radio':\n case 'control_checkbox':\n case 'control_imagechoice':\n case 'control_yesno': {\n return { className: 'fieldWrapper' };\n }\n default: {\n return null;\n }\n }\n};\n\n// eslint-disable-next-line complexity\nexport const getAnswerProps = (question, answer) => {\n switch (question.type) {\n case 'control_submissionIP':\n case 'control_submissionID':\n case 'control_submissionDate':\n case 'control_time':\n case 'control_datetime':\n case 'control_address':\n case 'control_textarea':\n case 'control_email':\n case 'control_number':\n case 'control_phone':\n case 'control_textbox':\n case 'control_documentID':\n case 'control_documentCreationTime':\n case 'control_documentModificationTime':\n case 'control_fullname': {\n return { className: 'textField' };\n }\n case 'control_dropdown':\n case 'control_radio':\n case 'control_checkbox':\n case 'control_yesno': {\n return prepareOptionProps(answer, question);\n }\n case 'control_assignee': {\n return prepareOptionProps(answer, question).map(curr => ({\n ...curr,\n showSubLabel: false,\n className: 'optionTag'\n }));\n }\n case 'control_imagechoice': {\n return prepareSelectablePropsForImageChoice(answer, question);\n }\n case 'control_submissionSubmitter': {\n return [{ className: 'tagField', style: { backgroundColor: '#eee' } }];\n }\n case 'control_documentStatus': {\n return prepareOptionProps(answer?.status, question);\n }\n default:\n return { className: 'field' };\n }\n};\n\nexport const getDefaultCustomProps = ({\n // answer,\n question,\n submission,\n userTimeZone\n}) => {\n try {\n const { type } = question;\n if (paymentFields.indexOf(type) > -1) {\n const questionValues = new Set();\n const answerProducts = [];\n let showImages = false;\n const _answer = submission.answers[question.qid].answer;\n\n if (_answer && Object.keys(_answer).length > 2) {\n Object.values(_answer).forEach(productRawData => {\n const productJSON = productRawData || '{}';\n let parsedProduct = typeof productRawData !== 'string' ? productRawData : safeJSONParse(productJSON);\n\n if (parsedProduct && parsedProduct.pid) {\n const { products } = submission.answers[question.qid];\n const foundProduct = products.find(product => product.pid === parsedProduct.pid);\n\n const { icon = '', images = '[]' } = foundProduct;\n const imagesArr = safeJSONParse(images, []);\n parsedProduct = { ...parsedProduct, icon, images: imagesArr };\n\n if (!showImages && !!(icon || imagesArr.length)) {\n showImages = true;\n }\n\n answerProducts.push(parsedProduct);\n } else if (parsedProduct && parsedProduct.id) {\n questionValues.add(parsedProduct.id);\n }\n });\n }\n\n const colorMap = {};\n questionValues.forEach((val, index) => {\n colorMap[val] = extractColor(index, ColorList);\n });\n\n return {\n popoverProps: {\n isPopoverViewOpened: true,\n container: {\n className: 'productContainer'\n },\n productPreview: {\n className: 'productPreview'\n },\n productView: {\n className: 'productView'\n },\n priceView: {\n className: 'priceView'\n },\n productPeriodProps: {\n className: 'periodView'\n },\n payerView: {\n className: 'payerView'\n },\n shippingView: {\n className: 'shippingView'\n },\n transactionView: {\n className: 'transactionView'\n }\n },\n products: answerProducts,\n showImages,\n colorMap\n };\n }\n\n switch (type) {\n case 'control_submissionIP':\n case 'control_submissionID':\n case 'control_submissionDate':\n case 'control_documentCreationTime':\n case 'control_documentModificationTime': {\n return {\n userTimeZone\n };\n }\n case 'control_appointment': {\n const qtz = question.timezone;\n const questionTimezone = qtz ? qtz.split(' ')[0] : '';\n const showTimezone = questionTimezone !== userTimeZone;\n const timezone = showTimezone && questionTimezone ? questionTimezone : userTimeZone;\n return {\n showTimezone,\n timezone\n };\n }\n case 'control_mixed': {\n const sublabels = question.sublabels.reduce((subLabel, label, key) => {\n return { ...subLabel, [key]: label };\n }, {});\n return {\n sublabels\n };\n }\n case 'control_matrix': {\n return {\n containerStyle: {\n className: 'fieldRow'\n }\n };\n }\n case 'control_sheetbox': {\n return {\n id: `sb-${submission.get('id')}-${question.get('qid')}`\n };\n }\n case 'control_inline': {\n return ({\n showSublabels: false,\n fullContent: false\n });\n }\n case 'control_workflowStatus': {\n return {\n submission\n };\n }\n case 'control_documentStatus': {\n return {\n optionsArray: safeJSONParse(question.options_array, {})\n };\n }\n default: {\n return null;\n }\n }\n } catch (e) {\n return {\n answerProps: {\n className: 'field'\n }\n };\n }\n};\n","import classNames from 'classnames';\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { getAnswerFieldComponent } from '@jotforminc/answer-fields';\nimport ErrorBoundary from './ErrorBoundary';\n\nimport {\n emptyFunction,\n getCellAnswer,\n getInputType,\n getPaymentType,\n getWidgetType,\n getQuestionPropsIfNecessary,\n getContainerProps,\n getAnswerProps,\n getWidgetClass\n} from './cellUtils';\nimport { SIMPLE_LABEL_PROPS, LABEL_PROPS } from './cellConstants';\n\nconst Cell = ({\n appName = 'sheets',\n customProps = {},\n question,\n renderCustomField = f => f,\n submission,\n simpleBaseLine = true,\n cellProps = {}\n}) => {\n const questionType = question.type;\n const submissionID = submission.id;\n const questionProps = getQuestionPropsIfNecessary(question);\n const FieldComponent = renderCustomField(questionType) || getAnswerFieldComponent(questionType);\n const cellAnswer = getCellAnswer({ submission, question });\n const containerClasses = classNames({\n isUnread: parseInt(submission.new, 10),\n isNew: submission.isNew || false\n });\n\n const widgetClass = getWidgetClass(question);\n\n const customClassName = `${containerClasses}${customProps && customProps.containerClasses ? ` ${customProps.containerClasses}` : ''}${widgetClass ? ` ${widgetClass}` : ''}`;\n\n const cellLabelProps = simpleBaseLine ? SIMPLE_LABEL_PROPS : LABEL_PROPS;\n\n const dataType = question.type === 'control_textarea' && (question.wysiwyg === 'Enable' || question.mde === 'Yes') ? 'control_richtextarea' : question.type;\n\n return (\n <div\n tabIndex=\"-1\"\n role=\"gridcell\"\n onKeyUp={emptyFunction}\n className={customClassName}\n data-submission={submissionID}\n data-type={dataType}\n data-matrix={getInputType(question)}\n data-payment-type={getPaymentType(question)}\n data-widget-id={getWidgetType(question)}\n {...cellProps}\n >\n <ErrorBoundary>\n <FieldComponent\n answer={cellAnswer}\n type={questionType}\n labelProps={cellLabelProps}\n containerProps={getContainerProps(question.type)}\n answerProps={getAnswerProps(question, cellAnswer)}\n {...questionProps}\n {...customProps}\n appName={appName}\n />\n </ErrorBoundary>\n </div>\n );\n};\n\nCell.propTypes = {\n appName: PropTypes.string,\n customProps: PropTypes.shape({\n containerClasses: PropTypes.string\n }),\n renderCustomField: PropTypes.func,\n simpleBaseLine: PropTypes.bool,\n question: PropTypes.shape({\n qid: PropTypes.string,\n options_array: PropTypes.string,\n selectedField: PropTypes.string,\n sheetField: PropTypes.string,\n type: PropTypes.string,\n wysiwyg: PropTypes.string,\n mde: PropTypes.string\n }).isRequired,\n submission: PropTypes.shape({\n answers: PropTypes.shape({}),\n id: PropTypes.string,\n new: PropTypes.string,\n created_at: PropTypes.string,\n ip: PropTypes.string,\n submittedBy: PropTypes.string,\n isNew: PropTypes.bool\n }).isRequired,\n cellProps: PropTypes.shape({})\n};\n\nexport default memo(Cell);\n","const brand = {\n yellow: {\n bg: {\n base: 'bg-yellow-400',\n hover: 'hover:bg-yellow-400'\n },\n border: {\n base: 'border-yellow-400',\n hover: 'hover:border-yellow-400'\n },\n color: {\n base: 'color-yellow-400',\n hover: 'hover:color-yellow-400'\n }\n },\n orange: {\n bg: {\n base: 'bg-orange-500',\n hover: 'hover:bg-orange-500'\n },\n border: {\n base: 'border-orange-500',\n hover: 'hover:border-orange-500'\n },\n color: {\n base: 'color-orange-500',\n hover: 'hover:color-orange-500'\n }\n },\n blue: {\n bg: {\n base: 'bg-blue-400',\n hover: 'hover:bg-blue-400'\n },\n border: {\n base: 'border-blue-400',\n hover: 'hover:border-blue-400'\n },\n color: {\n base: 'color-blue-400',\n hover: 'hover:color-blue-400'\n }\n },\n dark: {\n bg: {\n base: 'bg-navy-700',\n hover: 'hover:bg-navy-700'\n },\n border: {\n base: 'border-navy-700',\n hover: 'hover:border-navy-700'\n },\n color: {\n base: 'color-navy-700',\n hover: 'hover:color-navy-700'\n }\n }\n} as const;\n\nconst text = {\n lightest: {\n base: 'color-navy-50',\n hover: 'hover:color-navy-50'\n },\n light: {\n base: 'color-navy-100',\n hover: 'hover:color-navy-100'\n },\n medium: {\n base: 'color-navy-300',\n hover: 'hover:color-navy-300'\n },\n dark: {\n base: 'color-navy-500',\n hover: 'hover:color-navy-500'\n },\n darkest: {\n base: 'color-navy-700',\n hover: 'hover:color-navy-700'\n }\n} as const;\n\nconst background = {\n lightest: {\n base: 'bg-navy-25',\n focus: 'focus:bg-navy-25',\n focusWithin: 'focus-within:bg-navy-25',\n hover: 'hover:bg-navy-25'\n },\n light: {\n base: 'bg-navy-75',\n focus: 'focus:bg-navy-75',\n focusWithin: 'focus-within:bg-navy-75',\n hover: 'hover:bg-navy-75'\n },\n medium: {\n base: 'bg-navy-100',\n focus: 'focus:bg-navy-100',\n focusWithin: 'focus-within:bg-navy-100',\n hover: 'hover:bg-navy-100'\n },\n dark: {\n base: 'bg-navy-300',\n focus: 'focus:bg-navy-300',\n focusWithin: 'focus-within:bg-navy-300',\n hover: 'hover:bg-navy-300'\n },\n darkest: {\n base: 'bg-navy-700',\n focus: 'focus:bg-navy-700',\n focusWithin: 'focus-within:bg-navy-700',\n hover: 'hover:bg-navy-700'\n }\n} as const;\n\nconst border = {\n light: {\n base: 'border-navy-50',\n hover: 'hover:border-navy-50'\n },\n medium: {\n base: 'border-navy-100',\n hover: 'hover:border-navy-100'\n },\n dark: {\n base: 'border-navy-500',\n hover: 'hover:border-navy-500'\n },\n darkest: {\n base: 'border-navy-700',\n hover: 'hover:border-navy-700'\n }\n} as const;\n\nconst accent = {\n lightest: {\n bg: {\n base: 'bg-blue-100',\n focus: 'focus:bg-blue-100',\n focusWithin: 'focus-within:bg-blue-100',\n hover: 'hover:bg-blue-100'\n },\n border: {\n base: 'border-blue-100',\n focus: 'focus:border-blue-100',\n focusWithin: 'focus-within:border-blue-100',\n hover: 'hover:border-blue-100'\n },\n color: {\n base: 'color-blue-100',\n focus: 'focus:color-blue-100',\n focusWithin: 'focus-within:color-blue-100',\n hover: 'hover:color-blue-100'\n }\n },\n light: {\n bg: {\n base: 'bg-blue-300',\n focus: 'focus:bg-blue-300',\n focusWithin: 'focus-within:bg-blue-300',\n hover: 'hover:bg-blue-300'\n },\n border: {\n base: 'border-blue-300',\n focus: 'focus:border-blue-300',\n focusWithin: 'focus-within:border-blue-300',\n hover: 'hover:border-blue-300'\n },\n color: {\n base: 'color-blue-300',\n focus: 'focus:color-blue-300',\n focusWithin: 'focus-within:color-blue-300',\n hover: 'hover:color-blue-300'\n }\n },\n default: {\n bg: {\n base: 'bg-blue-500',\n focus: 'focus:bg-blue-500',\n focusWithin: 'focus-within:bg-blue-500',\n hover: 'hover:bg-blue-500'\n },\n border: {\n base: 'border-blue-500',\n focus: 'focus:border-blue-500',\n focusWithin: 'focus-within:border-blue-500',\n hover: 'hover:border-blue-500'\n },\n color: {\n base: 'color-blue-500',\n focus: 'focus:color-blue-500',\n focusWithin: 'focus-within:color-blue-500',\n hover: 'hover:color-blue-500'\n }\n },\n dark: {\n bg: {\n base: 'bg-blue-600',\n focus: 'focus:bg-blue-600',\n focusWithin: 'focus-within:bg-blue-600',\n hover: 'hover:bg-blue-600'\n },\n border: {\n base: 'border-blue-600',\n focus: 'focus:border-blue-600',\n focusWithin: 'focus-within:border-blue-600',\n hover: 'hover:border-blue-600'\n },\n color: {\n base: 'color-blue-600',\n focus: 'focus:color-blue-600',\n focusWithin: 'focus-within:color-blue-600',\n hover: 'hover:color-blue-600'\n }\n }\n} as const;\n\nconst success = {\n lightest: {\n bg: {\n base: 'bg-green-100',\n hover: 'hover:bg-green-100'\n },\n border: {\n base: 'border-green-100',\n hover: 'hover:border-green-100'\n },\n color: {\n base: 'color-green-100',\n hover: 'hover:color-green-100'\n }\n },\n light: {\n bg: {\n base: 'bg-green-200',\n hover: 'hover:bg-green-200'\n },\n border: {\n base: 'border-green-200',\n hover: 'hover:border-green-200'\n },\n color: {\n base: 'color-green-200',\n hover: 'hover:color-green-200'\n }\n },\n default: {\n bg: {\n base: 'bg-green-500',\n hover: 'hover:bg-green-500'\n },\n border: {\n base: 'border-green-500',\n hover: 'hover:border-green-500'\n },\n color: {\n base: 'color-green-500',\n hover: 'hover:color-green-500'\n }\n },\n dark: {\n bg: {\n base: 'bg-green-600',\n hover: 'hover:bg-green-600'\n },\n border: {\n base: 'border-green-600',\n hover: 'hover:border-green-600'\n },\n color: {\n base: 'color-green-600',\n hover: 'hover:color-green-600'\n }\n }\n} as const;\n\nconst error = {\n lightest: {\n bg: {\n base: 'bg-red-100',\n focus: 'focus:bg-red-100',\n focusWithin: 'focus-within:bg-red-100',\n hover: 'hover:bg-red-100'\n },\n border: {\n base: 'border-red-100',\n focus: 'focus:border-red-100',\n focusWithin: 'focus-within:border-red-100',\n hover: 'hover:border-red-100'\n },\n color: {\n base: 'color-red-100',\n focus: 'focus:color-red-100',\n focusWithin: 'focus-within:color-red-100',\n hover: 'hover:color-red-100'\n }\n },\n light: {\n bg: {\n base: 'bg-red-200',\n focus: 'focus:bg-red-200',\n focusWithin: 'focus-within:bg-red-200',\n hover: 'hover:bg-red-200'\n },\n border: {\n base: 'border-red-200',\n focus: 'focus:border-red-200',\n focusWithin: 'focus-within:border-red-200',\n hover: 'hover:border-red-200'\n },\n color: {\n base: 'color-red-200',\n focus: 'focus:color-red-200',\n focusWithin: 'focus-within:color-red-200',\n hover: 'hover:color-red-200'\n }\n },\n default: {\n bg: {\n base: 'bg-red-400',\n focus: 'focus:bg-red-400',\n focusWithin: 'focus-within:bg-red-400',\n hover: 'hover:bg-red-400'\n },\n border: {\n base: 'border-red-400',\n focus: 'focus:border-red-400',\n focusWithin: 'focus-within:border-red-400',\n hover: 'hover:border-red-400'\n },\n color: {\n base: 'color-red-400',\n focus: 'focus:color-red-400',\n focusWithin: 'focus-within:color-red-400',\n hover: 'hover:color-red-400'\n }\n },\n dark: {\n bg: {\n base: 'bg-red-600',\n focus: 'focus:bg-red-600',\n focusWithin: 'focus-within:bg-red-600',\n hover: 'hover:bg-red-600'\n },\n border: {\n base: 'border-red-600',\n focus: 'focus:border-red-600',\n focusWithin: 'focus-within:border-red-600',\n hover: 'hover:border-red-600'\n },\n color: {\n base: 'color-red-600',\n focus: 'focus:color-red-600',\n focusWithin: 'focus-within:color-red-600',\n hover: 'hover:color-red-600'\n }\n }\n} as const;\n\nexport default {\n brand,\n text,\n background,\n border,\n accent,\n success,\n error\n};\n","const text = {\n lightest: {\n base: 'color-gray-100',\n hover: 'hover:color-gray-100'\n },\n light: {\n base: 'color-gray-200',\n hover: 'hover:color-gray-200'\n },\n medium: {\n base: 'color-gray-300',\n hover: 'hover:color-gray-300'\n },\n dark: {\n base: 'color-gray-500',\n hover: 'hover:color-gray-500'\n },\n darkest: {\n base: 'color-gray-700',\n hover: 'hover:color-gray-700'\n }\n} as const;\n\nconst background = {\n lightest: {\n base: 'bg-gray-400',\n hover: 'hover:bg-gray-400'\n },\n light: {\n base: 'bg-gray-500',\n hover: 'hover:bg-gray-500'\n },\n medium: {\n base: 'bg-gray-600',\n hover: 'hover:bg-gray-600'\n },\n dark: {\n base: 'bg-gray-700',\n hover: 'hover:bg-gray-700'\n },\n darkest: {\n base: 'bg-gray-800',\n hover: 'hover:bg-gray-800'\n }\n} as const;\n\nconst border = {\n light: {\n base: 'border-gray-200',\n hover: 'hover:border-gray-200'\n },\n medium: {\n base: 'border-gray-500',\n hover: 'hover:border-gray-500'\n },\n dark: {\n base: 'border-gray-700',\n hover: 'hover:border-gray-700'\n }\n} as const;\n\nexport default {\n text,\n background,\n border\n};\n","import { cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport {\n ButtonIconProps, ButtonIndicatorProps, ButtonProps, ButtonTextProps\n} from './button.types';\n\n// CVA Types\ntype ButtonHelperTypes = {\n hasLoaderText?: boolean,\n hasDoubleIcon?: boolean,\n hasOneIcon?: boolean,\n hasChildren?: boolean\n}\n\ntype ButtonCVAType = CVAType<Pick<ButtonProps, 'size' | 'rounded' | 'fullWidth' | 'variant' | 'showTextOnHover' | 'loader' | 'disabled' | 'colorStyle' | 'showTextOnly' | 'theme'> & ButtonHelperTypes>\ntype ButtonTextCVAType = CVAType<ButtonTextProps>\ntype ButtonIconCVAType = CVAType<Omit<ButtonIconProps, 'icon'>>\ntype ButtonIndicatorCVAType = CVAType<Pick<ButtonIndicatorProps, 'loader' | 'colorStyle'>>;\n\nconst buttonDefaultClassName = 'magnet-button inline-flex shrink-0 justify-center items-center font-medium duration-300 outline-2 outline-transparent outline-offset-0 focus:outline-opacity-50';\n\n// Classes\nexport const buttonCVA = cva<ButtonCVAType>(buttonDefaultClassName, {\n variants: {\n size: {\n small: 'h-8 px-2',\n medium: 'h-10 px-2.5',\n large: 'h-12 px-3'\n },\n rounded: {\n true: 'radius-full',\n false: 'radius'\n },\n fullWidth: {\n true: 'w-full'\n },\n variant: {\n ghost: 'border-0',\n filled: 'border-0',\n outline: 'border'\n },\n showTextOnHover: {\n true: 'group'\n },\n loader: {\n true: 'pointer-events-none'\n },\n disabled: {\n true: 'cursor-not-allowed opacity-40',\n false: 'cursor-pointer'\n },\n colorStyle: {},\n showTextOnly: {},\n hasLoaderText: {},\n hasDoubleIcon: {},\n hasOneIcon: {},\n hasChildren: {},\n theme: {}\n },\n compoundVariants: [\n /*\n Added `width` class for only outlined icon buttons depending by size because of border width\n */\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'small',\n className: 'w-8'\n },\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'medium',\n className: 'w-10'\n },\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'large',\n className: 'w-12'\n },\n /*\n Added `width` class for only outlined icon buttons depending by size and showTextOnly breakpoints because of border width\n */\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'small',\n className: 'w-8 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'small',\n className: 'w-8 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'small',\n className: 'w-8 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'small',\n className: 'w-8 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'small',\n className: 'w-8 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'small',\n className: 'w-8 xxl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'medium',\n className: 'w-10 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'medium',\n className: 'w-10 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'medium',\n className: 'w-10 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'medium',\n className: 'w-10 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'medium',\n className: 'w-10 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'medium',\n className: 'w-10 xxl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'large',\n className: 'w-12 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'large',\n className: 'w-12 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'large',\n className: 'w-12 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'large',\n className: 'w-12 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'large',\n className: 'w-12 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'large',\n className: 'w-12 xxl:w-auto'\n },\n /*\n Added `width` class for only outlined icon buttons depending by size and showTextOnHover because of border width\n */\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'small',\n className: 'w-8 hover:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'medium',\n className: 'w-10 hover:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'large',\n className: 'w-12 hover:w-auto'\n },\n /*\n Added `relative` class to wrapping the loader overlay element\n */\n {\n loader: true,\n hasLoaderText: false,\n className: 'relative'\n },\n /*\n Added `bg-transparent` class for `ghost` and `outline` variants\n because they don't have a background in the static state\n */\n {\n variant: ['ghost', 'outline'],\n className: 'bg-transparent'\n },\n /*\n Added `bg-white` for those with\n `filled` variant\n \"darker\" colorStyle\n */\n {\n variant: 'filled',\n colorStyle: [\n 'primary', 'success', 'error', 'neutral',\n 'analytics', 'pages', 'teams', 'sign', 'pdf', 'apps',\n 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals'\n ],\n className: 'color-white'\n },\n /*\n Added core classes for those with\n `filled` variant\n `primary` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'primary',\n className: primary.accent.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'primary',\n disabled: false,\n className: primary.accent.dark.bg.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `secondary` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'secondary',\n className: [\n primary.background.light.base,\n primary.text.dark.base\n ]\n },\n {\n variant: 'filled',\n colorStyle: 'secondary',\n disabled: false,\n className: primary.background.medium.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `success` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'success',\n className: primary.success.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'success',\n disabled: false,\n className: primary.success.dark.bg.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `error` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'error',\n className: primary.error.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'error',\n disabled: false,\n className: primary.error.dark.bg.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `neutral` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'neutral',\n className: secondary.background.medium.base\n },\n {\n variant: 'filled',\n colorStyle: 'neutral',\n disabled: false,\n className: secondary.background.dark.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `analytics` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'analytics',\n className: 'bg-analytics-default'\n },\n {\n variant: 'filled',\n colorStyle: 'analytics',\n disabled: false,\n className: 'hover:bg-analytics-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `pages` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'pages',\n className: 'bg-pages-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pages',\n disabled: false,\n className: 'hover:bg-pages-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `teams` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'teams',\n className: 'bg-teams-default'\n },\n {\n variant: 'filled',\n colorStyle: 'teams',\n disabled: false,\n className: 'hover:bg-teams-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `sign` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'sign',\n className: 'bg-sign-default'\n },\n {\n variant: 'filled',\n colorStyle: 'sign',\n disabled: false,\n className: 'hover:bg-sign-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `pdf` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'pdf',\n className: 'bg-pdf-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pdf',\n disabled: false,\n className: 'hover:bg-pdf-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `apps` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'apps',\n className: 'bg-apps-default'\n },\n {\n variant: 'filled',\n colorStyle: 'apps',\n disabled: false,\n className: 'bg-apps-default hover:bg-apps-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `reports` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'reports',\n className: 'bg-reports-default'\n },\n {\n variant: 'filled',\n colorStyle: 'reports',\n disabled: false,\n className: 'hover:bg-reports-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `forms` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'forms',\n className: 'bg-forms-default'\n },\n {\n variant: 'filled',\n colorStyle: 'forms',\n disabled: false,\n className: 'hover:bg-forms-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `tables` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'tables',\n className: 'bg-tables-default'\n },\n {\n variant: 'filled',\n colorStyle: 'tables',\n disabled: false,\n className: 'hover:bg-tables-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `approvals` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'approvals',\n className: 'bg-approvals-default'\n },\n {\n variant: 'filled',\n colorStyle: 'approvals',\n disabled: false,\n className: 'hover:bg-approvals-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `inbox` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'inbox',\n className: 'bg-inbox-default'\n },\n {\n variant: 'filled',\n colorStyle: 'inbox',\n disabled: false,\n className: 'hover:bg-inbox-dark'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `primary` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'primary',\n theme: 'light',\n className: primary.accent.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'primary',\n theme: 'dark',\n className: 'border-blue-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `secondary` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'secondary',\n theme: 'light',\n className: primary.border.medium.base\n },\n {\n variant: 'outline',\n colorStyle: 'secondary',\n theme: 'dark',\n className: 'border-gray-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `neutral` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'neutral',\n theme: 'light',\n className: 'border-gray-600'\n },\n {\n variant: 'outline',\n colorStyle: 'neutral',\n theme: 'dark',\n className: 'border-white'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `success` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'success',\n theme: 'light',\n className: primary.success.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'success',\n theme: 'dark',\n className: 'border-green-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `error` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'error',\n theme: 'light',\n className: primary.error.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'error',\n theme: 'dark',\n className: 'border-red-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `primary` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n theme: 'light',\n className: primary.accent.default.color.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n theme: 'dark',\n className: 'color-blue-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `primary` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n disabled: false,\n theme: 'light',\n className: primary.accent.lightest.bg.hover\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['primary', 'secondary', 'success', 'error', 'neutral'],\n disabled: false,\n theme: 'dark',\n className: 'hover:bg-gray-700'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `secondary` or `neutral` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n theme: 'light',\n class: primary.text.dark.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n theme: 'dark',\n class: 'color-white'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `secondary` or `neutral` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n disabled: false,\n theme: 'light',\n className: primary.background.lightest.hover\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `success` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'success',\n disabled: false,\n theme: 'light',\n className: [primary.success.dark.color.base, primary.success.lightest.bg.hover]\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'success',\n disabled: false,\n theme: 'dark',\n className: 'color-green-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `error` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n theme: 'light',\n className: primary.error.default.color.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n theme: 'dark',\n className: 'color-red-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `error` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n disabled: false,\n theme: 'light',\n className: primary.error.lightest.bg.hover\n },\n /*\n Added `focus:outline` classes for those with\n `primary` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'primary',\n disabled: false,\n className: 'focus:outline-blue-200'\n },\n /*\n Added `focus:outline` classes for those with\n `secondary` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'secondary',\n disabled: false,\n className: 'focus:outline-navy-50'\n },\n /*\n Added `focus:outline` classes for those with\n `success` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'success',\n disabled: false,\n className: 'focus:outline-green-300'\n },\n /*\n Added `focus:outline` classes for those with\n `error` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'error',\n disabled: false,\n className: 'focus:outline-red-300'\n },\n /*\n Added `focus:outline` classes for those with\n `neutral` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'neutral',\n disabled: false,\n className: 'focus:outline-gray-300'\n },\n /*\n Added `focus:outline` classes for those with\n `analytics` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'analytics',\n disabled: false,\n className: 'focus:outline-analytics-light'\n },\n /*\n Added `focus:outline` classes for those with\n `pages` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'pages',\n disabled: false,\n className: 'focus:outline-pages-light'\n },\n /*\n Added `focus:outline` classes for those with\n `teams` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'teams',\n disabled: false,\n className: 'focus:outline-teams-light'\n },\n /*\n Added `focus:outline` classes for those with\n `sign` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'sign',\n disabled: false,\n className: 'focus:outline-sign-light'\n },\n /*\n Added `focus:outline` classes for those with\n `pdf` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'pdf',\n disabled: false,\n className: 'focus:outline-pdf-light'\n },\n /*\n Added `focus:outline` classes for those with\n `apps` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'apps',\n disabled: false,\n className: 'focus:outline-apps-light'\n },\n /*\n Added `focus:outline` classes for those with\n `reports` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'reports',\n disabled: false,\n className: 'focus:outline-reports-light'\n },\n /*\n Added `focus:outline` classes for those with\n `forms` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'forms',\n disabled: false,\n className: 'focus:outline-forms-light'\n },\n /*\n Added `focus:outline` classes for those with\n `tables` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'tables',\n disabled: false,\n className: 'focus:outline-tables-light'\n },\n /*\n Added `focus:outline` classes for those with\n `inbox` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'inbox',\n disabled: false,\n className: 'focus:outline-inbox-light'\n },\n /*\n Added `focus:outline` classes for those with\n `approvals` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'approvals',\n disabled: false,\n className: 'focus:outline-approvals-light'\n },\n // Icon gaps\n // XS\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'small',\n hasChildren: true,\n className: 'gap-1 xs:gap-0'\n },\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'medium',\n hasChildren: true,\n className: 'gap-2 xs:gap-0'\n },\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'large',\n hasChildren: true,\n className: 'gap-3 xs:gap-0'\n },\n // SM\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'small',\n hasChildren: true,\n className: 'gap-1 sm:gap-0'\n },\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'medium',\n hasChildren: true,\n className: 'gap-2 sm:gap-0'\n },\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'large',\n hasChildren: true,\n className: 'gap-3 sm:gap-0'\n },\n // MD\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 md:gap-0'\n },\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 md:gap-0'\n },\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 md:gap-0'\n },\n // LG\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 lg:gap-0'\n },\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 lg:gap-0'\n },\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 lg:gap-0'\n },\n // XL\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 xl:gap-0'\n },\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 xl:gap-0'\n },\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 xl:gap-0'\n },\n // XXL\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 xxl:gap-0'\n },\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 xxl:gap-0'\n },\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 xxl:gap-0'\n },\n {\n size: 'small',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-1'\n },\n {\n size: 'medium',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-2'\n },\n {\n size: 'large',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-3'\n }\n ]\n});\n\nexport const buttonTextCVA = cva<ButtonTextCVAType>('', {\n variants: {\n size: {\n small: 'px-1 text-sm',\n medium: 'px-2 text-sm',\n large: 'px-3 text-lg'\n },\n showTextOnHover: {\n true: 'hiddenjf group-hover:block whitespace-nowrap'\n },\n showTextOnly: {\n xs: 'xs:inline',\n sm: 'sm:inline',\n md: 'md:inline',\n lg: 'lg:inline',\n xl: 'xl:inline',\n xxl: 'xxl:inline'\n },\n loader: {},\n hasLoaderText: {},\n hasChildren: {}\n },\n compoundVariants: [\n {\n showTextOnly: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'],\n className: 'hiddenjf'\n },\n {\n loader: true,\n hasLoaderText: false,\n hasChildren: true,\n className: 'opacity-0'\n }\n ]\n});\n\nexport const buttonIconCVA = cva<ButtonIconCVAType>('magnet-button-icon shrink-0', {\n variants: {\n size: {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n },\n loader: {},\n hasLoaderText: {}\n },\n compoundVariants: [\n {\n loader: true,\n hasLoaderText: false,\n className: 'opacity-0'\n },\n {\n loader: true,\n hasLoaderText: true,\n className: 'hiddenjf'\n }\n ]\n});\n\nexport const buttonIndicatorCVA = cva<ButtonIndicatorCVAType>('shrink-0', {\n variants: {\n loader: {},\n colorStyle: {}\n },\n compoundVariants: [\n {\n colorStyle: undefined,\n className: 'color-navy-300'\n },\n {\n loader: true,\n className: 'opacity-0'\n }\n ]\n});\n","import { ComponentPropsWithoutRef, ElementType, ReactElement } from 'react';\nimport { PolymorphicProps } from '../../types/system.types';\nimport {\n Breakpoint, ColorStyle, Icon, ProductName, Size\n} from '../../constants/common.types';\n\nexport type AcceptableButtonTypes = 'button' | 'a';\n\nexport const defaultButtonType:AcceptableButtonTypes = 'button';\n\nexport type ButtonProps = {\n endIcon?: Icon,\n href?: string\n loaderText?: string,\n indicatorText?: string\n startIcon?: Icon,\n type?: 'submit' | 'button' | 'reset',\n colorStyle?: ColorStyle | ProductName | 'secondary' | 'neutral',\n disabled?: boolean,\n fullWidth?: boolean,\n loader?: boolean,\n rounded?: boolean,\n showTextOnHover?: boolean,\n showTextOnly?: Breakpoint | null,\n size?: Size,\n theme?: 'dark' | 'light',\n variant?: 'filled' | 'outline' | 'ghost'\n}\n\nexport type ButtonTextProps = Pick<ButtonProps, 'size' | 'loader' | 'showTextOnHover' | 'showTextOnly'> & {\n hasLoaderText?: boolean,\n hasChildren?: boolean\n}\n\nexport type ButtonIconProps = Pick<ButtonProps, 'size' | 'loader'> & {\n icon: ElementType,\n hasLoaderText?: boolean\n}\n\nexport type ButtonIndicatorProps = Pick<ButtonProps, 'indicatorText' | 'variant' | 'size' | 'loader' | 'colorStyle'>\n\nexport type ButtonComponentType = <Element extends ElementType>(\n props: PolymorphicProps<Element extends AcceptableButtonTypes ? Element : typeof defaultButtonType, ButtonProps> & { ref?: ComponentPropsWithoutRef<Element>['ref'] }\n) => ReactElement | null\n\nexport const buttonDefaultProps:Partial<ButtonProps> = {\n colorStyle: 'primary',\n disabled: false,\n fullWidth: false,\n loader: false,\n rounded: false,\n showTextOnHover: false,\n showTextOnly: null,\n size: 'medium',\n theme: 'light',\n type: 'button',\n variant: 'filled'\n};\n","import { cva } from 'class-variance-authority';\nimport { primary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { IndicatorProps } from './indicator.types';\n\n// // CVA Types\ntype IndicatorCVAType = CVAType<Pick<IndicatorProps, 'size' | 'colorStyle' | 'invert'> & { hasChildren?: boolean }>\n\n// Classes\nexport const indicatorCVA = cva<IndicatorCVAType>(\n 'magnet-pill inline-flex radius-full', {\n variants: {\n size: {},\n colorStyle: {},\n hasChildren: {\n true: 'justify-center items-center font-bold'\n },\n invert: {\n true: 'bg-white'\n }\n },\n compoundVariants: [\n /*\n Added width & height classes for sizes if component has children\n */\n {\n hasChildren: false,\n size: 'small',\n class: 'w-2 h-2'\n },\n {\n hasChildren: false,\n size: 'medium',\n class: 'w-2.5 h-2.5'\n },\n {\n hasChildren: false,\n size: 'large',\n class: 'w-3 h-3'\n },\n /*\n Added width, height, padding, text classes for sizes if component has no children\n */\n {\n hasChildren: true,\n size: 'small',\n class: 'min-w-4 h-4 px-1 text-xxs'\n },\n {\n hasChildren: true,\n size: 'medium',\n class: 'min-w-5 h-5 px-1.5 text-xs'\n },\n {\n hasChildren: true,\n size: 'large',\n class: 'min-w-6 h-6 px-2 text-sm'\n },\n /*\n Added color classes for all colorStyles for those with\n `invert` false & `hasChildren` true\n */\n {\n colorStyle: ['primary', 'success', 'error'],\n invert: false,\n hasChildren: true,\n class: 'color-white'\n },\n {\n colorStyle: 'secondary',\n hasChildren: true,\n class: primary.text.darkest.base\n },\n /*\n Added bg classes for each colorStyles for those with\n `current` false\n */\n {\n colorStyle: 'primary',\n invert: false,\n class: primary.accent.default.bg.base\n },\n {\n colorStyle: 'secondary',\n invert: false,\n class: primary.background.light.base\n },\n {\n colorStyle: 'success',\n invert: false,\n class: primary.success.default.bg.base\n },\n {\n colorStyle: 'error',\n invert: false,\n class: primary.error.default.bg.base\n },\n /*\n Added color classes for each colorStyles for those with\n `invert` true (mostly for usage with button)\n */\n {\n colorStyle: 'primary',\n invert: true,\n class: primary.accent.default.color.base\n },\n {\n colorStyle: 'secondary',\n invert: true,\n class: primary.text.dark.base\n },\n {\n colorStyle: 'success',\n invert: true,\n class: primary.success.default.color.base\n },\n {\n colorStyle: 'error',\n invert: true,\n class: primary.error.default.color.base\n }\n ]\n }\n);\n","import React from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { indicatorCVA } from './indicator.cva';\nimport { IndicatorProps, indicatorDefaultProps } from './indicator.types';\n\nexport const Indicator = (props: IndicatorProps):JSX.Element => {\n const {\n className, children, colorStyle, invert, size, ...rest\n } = props;\n\n const hasChildren = !!children;\n\n const indicatorClassName = cx(className, indicatorCVA({\n colorStyle,\n hasChildren,\n invert,\n size\n }));\n\n return (\n <span className={indicatorClassName} {...rest}>\n {children}\n </span>\n );\n};\n\nIndicator.defaultProps = indicatorDefaultProps;\n","import { ComponentPropsWithoutRef } from 'react';\nimport { ColorStyle, Size } from '../../constants/common.types';\n\nexport type IndicatorProps = ComponentPropsWithoutRef<'span'> & {\n size?: Size,\n colorStyle?: ColorStyle | 'secondary',\n invert?: boolean\n}\n\nexport const indicatorDefaultProps:Partial<IndicatorProps> = {\n invert: false,\n size: 'medium',\n colorStyle: 'primary'\n};\n","import React, { PropsWithChildren } from 'react';\nimport { cx } from 'class-variance-authority';\nimport { Indicator } from '../Indicator';\nimport { ButtonTextProps, ButtonIconProps, ButtonIndicatorProps } from './button.types';\nimport { buttonTextCVA, buttonIconCVA, buttonIndicatorCVA } from './button.cva';\n\nexport const ButtonText = (props: PropsWithChildren<ButtonTextProps>): JSX.Element => {\n const {\n size, showTextOnHover, showTextOnly, loader, hasLoaderText, hasChildren, children\n } = props;\n\n return (\n <span className={cx(buttonTextCVA({\n size, showTextOnHover, showTextOnly, loader, hasLoaderText, hasChildren\n }))}\n >\n {children}\n </span>\n );\n};\n\nexport const ButtonIcon = (props: ButtonIconProps): JSX.Element => {\n const {\n size, hasLoaderText, loader, icon: Icon\n } = props;\n\n return <Icon className={cx(buttonIconCVA({ size, hasLoaderText, loader }))} />;\n};\n\nexport const ButtonIndicator = (props: ButtonIndicatorProps): JSX.Element => {\n const {\n size, loader, indicatorText, colorStyle, variant\n } = props;\n\n // If color style is not `primary`, `success`, `error`, pill's color always should be `null`\n const indicatorColorStyle = (colorStyle === 'primary' || colorStyle === 'success' || colorStyle === 'error' || colorStyle === 'secondary') ? colorStyle : undefined;\n\n const indicatorVariant = variant === 'filled';\n\n return (\n <Indicator\n colorStyle={indicatorColorStyle}\n invert={indicatorVariant}\n className={cx(buttonIndicatorCVA({\n colorStyle,\n loader\n }))}\n size={size}\n >\n {indicatorText}\n </Indicator>\n );\n};\n","import { cva } from 'class-variance-authority';\nimport { primary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { LoaderProps } from './loader.types';\n\n// CVA Types\ntype LoaderCVAType = CVAType<Pick<LoaderProps, 'size' | 'theme'>>;\ntype LoaderElementsCVAType = CVAType<Pick<LoaderProps, 'theme'>>;\n\n// Classes\nexport const loaderCVA = cva<LoaderCVAType>(\n 'magnet-loader relative', {\n variants: {\n size: {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n },\n theme: {}\n }\n }\n);\n\nexport const loaderTrackCVA = cva<LoaderElementsCVAType>('opacity-20 absolute inset-px radius-full border-2', {\n variants: {\n theme: {\n current: 'border-current',\n dark: primary.border.darkest.base,\n light: 'border-white'\n }\n }\n});\n\nexport const loaderSpinnerCVA = cva<LoaderElementsCVAType>(\n 'absolute inset-px radius-full border-2 border-t-transparent border-b-transparent border-l-transparent anim anim-700 spin-loader timing-linear', {\n variants: {\n theme: {\n current: 'border-r-current',\n dark: 'border-r-navy-700',\n light: 'border-r-white'\n }\n }\n }\n);\n","import { ComponentPropsWithoutRef } from 'react';\nimport { Size, Theme } from '../../constants/common.types';\n\nexport type LoaderProps = ComponentPropsWithoutRef<'div'> & {\n size?: Size,\n theme?: Theme | 'current'\n}\n\nexport const loaderDefaultProps:Partial<LoaderProps> = {\n size: 'medium',\n theme: 'current'\n};\n","import React from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { loaderCVA, loaderSpinnerCVA, loaderTrackCVA } from './loader.cva';\nimport { LoaderProps, loaderDefaultProps } from './loader.types';\n\nexport const Loader = (props: LoaderProps):JSX.Element => {\n const {\n className, size, theme, ...rest\n } = { ...loaderDefaultProps, ...props };\n\n const loaderClassName = cx(className, loaderCVA({\n size,\n theme\n }));\n\n return (\n <div className={loaderClassName} {...rest}>\n <span className={loaderSpinnerCVA({ theme })} />\n <div className={loaderTrackCVA({ theme })} />\n </div>\n );\n};\n","// Radio & Checkbox & ChoiceLabel\nexport const CHOICE_TRUNCATE_VALUES = ['both', 'description', 'label'] as const;\n\nexport const THEME_VALUES = ['dark', 'light'] as const;\nexport const SIZE_VALUES = ['small', 'medium', 'large'] as const;\nexport const BREAKPOINT_VALUES = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'] as const;\nexport const PRODUCT_NAME_VALUES = ['teams', 'pdf', 'apps', 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals', 'analytics', 'pages'] as const;\nexport const RESPONSIVE_BREAKPOINT_VALUES = ['base', ...BREAKPOINT_VALUES] as const;\nexport const COLOR_STYLE_VALUES = ['primary', 'success', 'error'] as const;\n\n// Form Controls\nexport const FORM_CONTROL_COLOR_STYLE_VALUES = ['default', 'primary', 'success', 'warning', 'error'] as const;\nexport const BASE_INPUT_ADDON_DIRECTION_VALUES = ['start', 'end'] as const;\nexport const BASE_INPUT_ADDON_VARIANT_VALUES = ['filled', 'ghost'] as const;\n\n// Flex & Grid\nexport const JUSTIFY_CONTENT_VALUES = ['start', 'end', 'center', 'between', 'around', 'evenly'] as const;\nexport const ALIGN_ITEMS_VALUES = ['start', 'end', 'center', 'stretch', 'baseline'] as const;\nexport const FLEX_DIRECTION_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'] as const;\nexport const FLEX_WRAP_VALUES = ['wrap', 'nowrap'] as const;\nexport const FLEX_GROW_VALUES = ['0', '1'] as const;\nexport const FLEX_SHRINK_VALUES = ['0', '1'] as const;\nexport const ORDER_VALUES = ['none', 'first', 'last'] as const;\nexport const ALIGN_SELF_VALUES = ['auto', 'center', 'start', 'end', 'stretch', 'baseline'] as const;\nexport const JUSTIFY_SELF_VALUES = ['auto', 'center', 'start', 'end', 'stretch'] as const;\n\nexport const GRID_TRACK_VALUES = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nexport const GRID_TEMPLATE_COLUMNS_VALUES = ['none', ...GRID_TRACK_VALUES] as const;\nexport const GRID_ITEM_START_END_VALUES = ['auto', ...GRID_TRACK_VALUES] as const;\n","import React, { ComponentPropsWithRef, ElementType, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\nimport { buttonCVA } from './button.cva';\nimport {\n ButtonComponentType, ButtonProps, buttonDefaultProps\n} from './button.types';\n\nimport { ButtonIcon, ButtonIndicator, ButtonText } from './ButtonContent';\nimport { Loader } from '../Loader/Loader';\n\nimport { PolymorphicProps } from '../../types/system.types';\nimport { PRODUCT_NAME_VALUES } from '../../constants/common.values';\n\nexport const Button:ButtonComponentType = forwardRef(\n // eslint-disable-next-line complexity\n <Element extends ElementType>(\n props: PolymorphicProps<Element, ButtonProps>,\n ref?: ComponentPropsWithRef<Element>['ref']\n ): JSX.Element => {\n const {\n children,\n className,\n colorStyle = buttonDefaultProps.colorStyle,\n disabled = buttonDefaultProps.disabled,\n endIcon: EndIcon,\n fullWidth = buttonDefaultProps.fullWidth,\n href,\n loader = buttonDefaultProps.loader,\n loaderText,\n indicatorText,\n rounded = buttonDefaultProps.rounded,\n showTextOnHover = buttonDefaultProps.showTextOnHover,\n size = buttonDefaultProps.size,\n startIcon: StartIcon,\n showTextOnly = buttonDefaultProps.showTextOnly,\n theme = buttonDefaultProps.theme,\n type = buttonDefaultProps.type,\n variant = buttonDefaultProps.variant,\n as: Component = href ? 'a' : 'button',\n ...rest\n } = props;\n\n const hasOneIcon = !!((StartIcon && !EndIcon) || (!StartIcon && EndIcon));\n const hasDoubleIcon = !!(StartIcon && EndIcon);\n const hasIndicator = !!indicatorText;\n\n const hasChildren = !!children;\n const hasLoaderText = !!loaderText;\n const isProductButton = colorStyle ? (PRODUCT_NAME_VALUES as ReadonlyArray<string>).includes(colorStyle) : false;\n\n // If color style is a product color, its variant always should be `filled`\n const buttonVariant = isProductButton ? 'filled' : variant;\n\n // The `loader` state should work only if it is not `disabled`.\n const buttonLoader = !disabled ? loader : false;\n\n // Update button text according the loader state\n const buttonText = hasLoaderText && buttonLoader ? loaderText : children;\n\n // Check button text\n const hasText = hasChildren || (hasLoaderText && buttonLoader);\n\n // Button class list\n const buttonClassName = cx(className, buttonCVA({\n size,\n colorStyle,\n variant: buttonVariant,\n fullWidth,\n loader: buttonLoader,\n disabled,\n rounded,\n showTextOnHover,\n showTextOnly,\n hasLoaderText,\n hasDoubleIcon,\n hasOneIcon,\n hasChildren,\n theme\n }));\n\n // Loader content\n const loaderComponent = <Loader className='shrink-0' size={size} />;\n const loaderContent = hasLoaderText ? loaderComponent : <span className=\"absolute inset-0 flex justify-center items-center p-1 z-1\">{loaderComponent}</span>;\n\n // Button content\n const buttonContent = (\n <>\n {StartIcon && (\n <ButtonIcon\n icon={StartIcon}\n size={size}\n hasLoaderText={hasLoaderText}\n loader={buttonLoader}\n />\n )}\n {buttonLoader && loaderContent}\n {hasText && (\n <ButtonText\n showTextOnHover={showTextOnHover}\n size={size}\n loader={buttonLoader}\n showTextOnly={showTextOnly}\n hasLoaderText={hasLoaderText}\n hasChildren={hasChildren}\n >\n {buttonText}\n </ButtonText>\n )}\n {hasIndicator && !hasLoaderText && (\n <ButtonIndicator\n colorStyle={colorStyle}\n size={size}\n loader={buttonLoader}\n indicatorText={indicatorText}\n variant={buttonVariant}\n />\n )}\n {EndIcon && !hasIndicator && (\n <ButtonIcon\n icon={EndIcon}\n size={size}\n hasLoaderText={hasLoaderText}\n loader={buttonLoader}\n />\n )}\n </>\n );\n\n return (\n <Component\n {...rest}\n href={href || undefined}\n type={!href && type ? type : undefined}\n disabled={disabled}\n className={buttonClassName}\n ref={ref}\n >\n {buttonContent}\n </Component>\n );\n }\n);\n","export const KEY_KEYCODE_LIST = {\n Enter: 13,\n Backspace: 8,\n Comma: 188,\n Tab: 9,\n Space: 32,\n Escape: 27\n};\n\nexport const SERVER_ERROR = 'Server error';\nexport const FILE_TYPE_ERROR = 'Unsupported file type';\n","import React from 'react';\nimport { nanoid } from 'nanoid';\n\nimport { KEY_KEYCODE_LIST } from './constants';\n\nexport const wrapWithComp = (child, type, Comp = 'span') => {\n if (typeof child === 'string') {\n return <Comp data-type={type}>{child}</Comp>;\n }\n return child;\n};\n\n// Expects event as parameter\nexport const prepareKeyList = keyList => Object.keys(KEY_KEYCODE_LIST).filter(key => keyList.indexOf(key) > -1).map(key => ({ key, keyCode: KEY_KEYCODE_LIST[key] }));\nexport const isPressedKeyFN = keyList => {\n const preparedKeyList = prepareKeyList(keyList);\n return ({ key, keyCode }) => preparedKeyList.filter(({ key: expectedKey, keyCode: expectedKeyCode }) => (expectedKey === key || expectedKeyCode === keyCode)).length > 0;\n};\nexport const isPressedKeyEnter = isPressedKeyFN(['Enter']);\nexport const isPressedKeyBackspace = isPressedKeyFN(['Backspace']);\nexport const isPressedKeyTab = isPressedKeyFN(['Tab']);\nexport const isPressedKeyPillboxAddKey = isPressedKeyFN(['Enter', 'Comma', 'Space', 'Tab']);\nexport const isPressedKeyEnterOrSpace = isPressedKeyFN(['Enter', 'Space']);\nexport const isPressedKeyEscape = isPressedKeyFN(['Escape']);\nexport const isPressedKeyOneOf = keyList => isPressedKeyFN(keyList);\n\nexport const flattenOptions = options => options.reduce((flattenedOptions, option) => flattenedOptions.concat(option.type === 'group' ? flattenOptions(option.options) : [option]), []);\nexport const findOptionByValue = (value, options, allowEmpty = false) => {\n if (options.length === 0) {\n return;\n }\n\n const flattenedOptions = flattenOptions(options);\n const optionsHaveSomeDisabledOptions = flattenedOptions.some(option => option.disabled);\n const dropdownMayBeEmpty = allowEmpty || optionsHaveSomeDisabledOptions; // if options contain any disabled option treat like allowEmpty is true\n const sanitizedOptions = dropdownMayBeEmpty ? flattenedOptions.filter(option => !option.disabled) : flattenedOptions;\n\n if (!value) {\n return dropdownMayBeEmpty ? undefined : sanitizedOptions[0];\n }\n return sanitizedOptions.find(({ value: optionValue }) => optionValue === value);\n};\n\nexport const createFileMetadata = ({ name, type, size }, url) => {\n return {\n name, type, size, url\n };\n};\n\nexport const generateShortID = () => nanoid().split(/^\\d/).join('_');\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Utils } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\n\nimport { IconMagnifyingGlassMinus, IconMagnifyingGlassPlus } from '@jotforminc/svg-icons';\n\nconst PreviewZoomContainer = ({ percentage, handleZoomIn, handleZoomOut }) => (\n <div className=\"jPreview-zoomContainer\">\n <button\n className=\"zoomOut\"\n onClick={handleZoomOut}\n tabIndex=\"0\"\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleZoomOut(e))}\n type=\"button\"\n aria-label={t('Zoom Out')}\n >\n <IconMagnifyingGlassMinus />\n </button>\n <div className=\"zoomPercentage\" aria-label={t('Current Zoom')}>{`${percentage}%`}</div>\n <button\n className=\"zoomIn\"\n tabIndex=\"0\"\n onClick={handleZoomIn}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleZoomIn(e))}\n type=\"button\"\n aria-label={t('Zoom In')}\n >\n <IconMagnifyingGlassPlus />\n </button>\n </div>\n);\n\nPreviewZoomContainer.propTypes = {\n percentage: PropTypes.number.isRequired,\n handleZoomIn: PropTypes.func.isRequired,\n handleZoomOut: PropTypes.func.isRequired\n};\nexport default PreviewZoomContainer;\n","import UTIF from 'utif';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst decreasingZoomOut = 10;\nconst checkSmallResolution = 840;\nconst checkImageHeight = window.innerHeight - (window.innerWidth > checkSmallResolution ? 260 : 20);\nconst checkImageWidth = window.innerWidth - (window.innerWidth > checkSmallResolution ? 80 : 10);\n\nexport default class TiffFile extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.onLoadCanvas = this.onLoadCanvas.bind(this);\n this.tifCanvas = React.createRef();\n this.state = {\n canvasStyle: {\n position: 'absolute'\n }\n };\n }\n\n componentDidMount() {\n const { file } = this.props;\n const xhr = new global.XMLHttpRequest();\n xhr.open('GET', file.previewUrl);\n xhr.responseType = 'arraybuffer';\n xhr.onload = e => {\n const ifds = UTIF.decode(e.target.response);\n const firstPageOfTif = ifds[0];\n UTIF.decodeImage(e.target.response, firstPageOfTif);\n\n const { width: imageWidth, height: imageHeight } = firstPageOfTif;\n const cnv = this.tifCanvas.current;\n cnv.width = imageWidth;\n cnv.height = imageHeight;\n this.onLoadCanvas(imageWidth, imageHeight);\n\n const ctx = cnv.getContext('2d');\n const imageData = ctx.createImageData(imageWidth, imageHeight);\n UTIF.toRGBA8(firstPageOfTif).forEach((item, i) => {\n imageData.data[i] = item;\n });\n ctx.putImageData(imageData, 0, 0);\n };\n xhr.send();\n }\n\n onLoadCanvas(currentWidth, currentHeight) {\n let heightForRecursive = currentHeight;\n let widthForRecursive = currentWidth;\n let percentage = 100;\n while (heightForRecursive > checkImageHeight || widthForRecursive > checkImageWidth) {\n percentage -= decreasingZoomOut;\n heightForRecursive = ((currentHeight / 100) * percentage);\n widthForRecursive = ((currentWidth / 100) * percentage);\n }\n this.setState({\n canvasStyle: {\n position: 'absolute',\n maxWidth: 'none',\n maxHeight: 'none',\n width: `${widthForRecursive}px`,\n height: `${heightForRecursive}px`,\n left: `calc(50% - ${widthForRecursive / 2}px)`,\n top: `calc(50% - ${heightForRecursive / 2}px)`,\n display: 'block'\n }\n });\n }\n\n render() {\n const { canvasStyle } = this.state;\n return (\n <canvas onLoad={this.onLoadCanvas} style={canvasStyle} ref={this.tifCanvas} />\n );\n }\n}\n\nTiffFile.propTypes = {\n file: PropTypes.shape({\n previewUrl: PropTypes.string\n }).isRequired\n};\n","import React from 'react';\nimport { IconDocumentListBulletFilled, IconProductSignFilled } from '@jotforminc/svg-icons';\n\nexport const fileFormats = {\n PNG: {\n component: 'Image',\n fileClass: 'forIconAttachmentImage',\n wrapperClassName: 'preview-yellow-600'\n },\n JPG: {\n component: 'Image',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n JPEG: {\n component: 'Image',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n GIF: {\n component: 'Image',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n BMP: {\n component: 'Image',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n TIFF: {\n component: 'Tiff',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n TIF: {\n component: 'Tiff',\n fileClass: 'forFileUploadImage',\n wrapperClassName: 'preview-yellow-600'\n },\n MP3: {\n component: 'Audio',\n type: 'audio/mpeg',\n fileClass: 'forFileUploadAudio',\n wrapperClassName: 'preview-red-500'\n },\n OGG: {\n component: 'Audio',\n type: 'audio/ogg',\n fileClass: 'forFileUploadAudio',\n wrapperClassName: 'preview-yellow-500'\n },\n WAV: {\n component: 'Audio',\n type: 'audio/wav',\n fileClass: 'forFileUploadAudio',\n wrapperClassName: 'preview-yellow-500'\n },\n WMA: {\n component: 'Unsupported',\n fileClass: 'forFileUploadAudio',\n wrapperClassName: 'preview-yellow-500'\n },\n MP4: {\n component: 'Video',\n type: 'video/mp4',\n fileClass: 'forFileUploadVideo',\n wrapperClassName: 'preview-orange-500'\n },\n WEBM: {\n component: 'Video',\n type: 'video/webm',\n fileClass: 'forFileUploadVideo',\n wrapperClassName: 'preview-orange-500'\n },\n MPG: {\n component: 'Unsupported',\n fileClass: 'forFileUploadVideo',\n wrapperClassName: 'preview-orange-500'\n },\n FLV: {\n component: 'Unsupported',\n fileClass: 'forFileUploadVideo',\n wrapperClassName: 'preview-orange-500'\n },\n AVI: {\n component: 'Unsupported',\n fileClass: 'forFileUploadVideo',\n wrapperClassName: 'preview-orange-500'\n },\n PDF: {\n component: 'PDF',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-purple-500'\n },\n DOC: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n DOCX: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n XLS: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n XLSX: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n CSV: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n TXT: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n RTF: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n HTML: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n JSON: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-blue-500'\n },\n RAR: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-yellow-400'\n },\n ZIP: {\n component: 'Unsupported',\n fileClass: 'forFileUploadDocument',\n wrapperClassName: 'preview-yellow-400'\n },\n Unsupported: {\n component: 'Unsupported',\n fileClass: 'forFileUploadUnsupported',\n wrapperClassName: 'preview-navy-500'\n },\n file_signed_document: {\n component: 'PDF',\n fileClass: 'forFileUploadDocument',\n iconType: <IconProductSignFilled />,\n wrapperClassName: 'preview-green-500'\n },\n file_audit_trail: {\n component: 'PDF',\n fileClass: 'forFileUploadDocument',\n iconType: <IconDocumentListBulletFilled />,\n wrapperClassName: 'preview-blue-600'\n }\n};\n\nexport const fileFormatsAsArray = Object.keys(fileFormats);\nexport const supportedImageExtensions = ['JPEG', 'PNG', 'GIF', 'JPG'];\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconDocumentSimpleFilled } from '@jotforminc/svg-icons';\nimport { fileFormats } from '../constants';\nimport '../styles/unsupported.scss';\n\nconst Unsupported = ({\n extension, isPreview\n}) => {\n const {\n iconType, fileClass = '', wrapperClassName\n } = fileFormats[extension] || fileFormats.Unsupported;\n const defaultIcon = <IconDocumentSimpleFilled />;\n\n const fileThumbnailBox = (\n <div className={`filePreviewHolder ${fileClass} ${wrapperClassName}`}>\n {iconType || defaultIcon}\n {extension && !iconType && <span className=\"fileType\">{extension}</span>}\n </div>\n );\n\n return (\n <>\n {isPreview ? (\n <div className=\"jPreview-fileThumbnailBox\">\n {fileThumbnailBox}\n </div>\n ) : (\n fileThumbnailBox\n )}\n {isPreview && (\n <span className='preview-info'>\n {t('Couldn’t preview the file. Try downloading instead.')}\n </span>\n )}\n </>\n );\n};\n\nUnsupported.propTypes = {\n extension: PropTypes.string,\n isPreview: PropTypes.bool\n};\n\nUnsupported.defaultProps = {\n extension: '',\n isPreview: false\n};\n\nexport default Unsupported;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nimport Unsupported from './Unsupported';\n\nimport { fileFormats, fileFormatsAsArray } from '../constants';\n\nconst Audio = ({ file, extension }) => {\n if (fileFormatsAsArray.indexOf(extension) < 0) {\n return (<Unsupported extension={extension} />);\n }\n const { type } = fileFormats[extension];\n return (\n <audio controls autoPlay>\n <track kind=\"captions\" />\n <source src={file.previewUrl} type={type} />\n {t('Your browser does not support the audio tag.')}\n </audio>\n );\n};\nAudio.propTypes = {\n file: PropTypes.shape({\n previewUrl: PropTypes.string\n }),\n extension: PropTypes.string\n};\n\nAudio.defaultProps = {\n file: {},\n extension: ''\n};\n\nexport default Audio;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nimport Unsupported from './Unsupported';\nimport { fileFormats, fileFormatsAsArray } from '../constants';\n\nconst Video = ({ file, extension }) => {\n if (fileFormatsAsArray.indexOf(extension) < 0) {\n return (<Unsupported extension={extension} />);\n }\n const { type } = fileFormats[extension];\n return (\n <video controls autoPlay>\n <track kind=\"captions\" />\n <source src={file.previewUrl} type={type} />\n {t('Your browser does not support the video tag.')}\n </video>\n );\n};\nVideo.propTypes = {\n file: PropTypes.shape({\n previewUrl: PropTypes.string\n }),\n extension: PropTypes.string\n};\n\nVideo.defaultProps = {\n file: {},\n extension: ''\n};\n\nexport default Video;\n","/* eslint-disable no-param-reassign */\n\nexport const fetchPDFJSWorker = (pdfjs, version = '2.14.305') => {\n let workerSrc = '';\n switch (true) {\n case !!window.__jfrouter?.VENDOR_ASSET_PATH:\n if (window.__jfrouter?.JOTFORM_ENV === 'TESTING') {\n workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.js`;\n } else {\n workerSrc = `${window.__jfrouter.VENDOR_ASSET_PATH}/pdfjs-dist/${version}/pdf.worker.js`;\n }\n break;\n case !!window.JotForm?.CDN_VENDOR_PATH:\n workerSrc = `${window.JotForm.CDN_VENDOR_PATH}/pdfjs-dist/${version}/pdf.worker.js`;\n break;\n default:\n workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.js`;\n break;\n }\n pdfjs.GlobalWorkerOptions.workerSrc = workerSrc;\n\n return workerSrc;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport { VariableSizeList } from 'react-window';\nimport debounce from 'lodash/debounce';\nimport { fetchPDFJSWorker } from '@jotforminc/utils';\nimport Unsupported from './Unsupported';\n\nimport { fileFormatsAsArray } from '../constants';\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\n\nconst calculateScale = windowWidth => {\n switch (true) {\n case windowWidth <= 480:\n return 0.61; // Mobile\n case windowWidth <= 768:\n return 0.9; // Tablet\n default:\n return 1.2; // Desktop\n }\n};\n\nclass PDF extends React.Component {\n constructor(props) {\n super(props);\n this.getPageHeight = this.getPageHeight.bind(this);\n this.state = {\n pdfJSWorkerURL: fetchPDFJSWorker(pdfjs, pdfjs.version),\n numPages: null,\n pageViewports: null,\n scale: calculateScale(window.innerWidth),\n width: Math.min(window.innerWidth, 748),\n showDocument: true\n };\n this.debouncedHandleResize = debounce(this.handleResize, 200);\n this.options = { isEvalSupported: false };\n }\n\n componentDidMount() {\n this.resizeListener = window.addEventListener('resize', this.debouncedHandleResize);\n }\n\n componentWillUnmount() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n handleResize = () => {\n const { innerWidth } = window;\n const newScale = calculateScale(innerWidth);\n const { scale } = this.state;\n if (newScale !== scale) {\n this.setState({\n scale: newScale\n });\n }\n\n this.setState({ width: Math.min(innerWidth, 748) });\n };\n\n onPassword = (callback, reason) => {\n function callbackProxy(password) {\n if (password === null) {\n this.setState({ showDocument: false });\n }\n\n callback(password);\n }\n\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n const password = window.prompt('Enter the password to open this PDF file.');\n callbackProxy(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n const password = window.prompt('Invalid password. Please try again.');\n callbackProxy(password);\n break;\n }\n default:\n }\n };\n\n onDocumentLoadSuccess = async pdf => {\n const { numPages } = this.state;\n const { isVirtualized } = this.props;\n\n if (isVirtualized) {\n const viewPortPromises = [];\n for (let pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++) {\n viewPortPromises.push(pdf.getPage(pageNumber).then(page => {\n return page.getViewport({ scale: 1 });\n }));\n }\n const pageViewports = await Promise.all(viewPortPromises);\n this.setState({ numPages: pdf.numPages, pageViewports });\n } else if (numPages !== pdf.numPages) {\n this.setState({ numPages: pdf.numPages });\n }\n };\n\n getPageHeight(pageIndex) {\n const { pageViewports, width } = this.state;\n\n if (!pageViewports) {\n return;\n }\n\n const pageViewport = pageViewports[pageIndex];\n const scale = width / pageViewport.width;\n const actualHeight = pageViewport.height * scale;\n\n return actualHeight;\n }\n\n render() {\n const { extension, file, isVirtualized } = this.props;\n const {\n numPages, scale, showDocument, pageViewports, width,\n pdfJSWorkerURL\n } = this.state;\n const previewURL = file.previewUrl.startsWith('http:') ? file.previewUrl.replace('http', 'https') : file.previewUrl;\n if (fileFormatsAsArray.indexOf(extension) < 0) {\n return (<Unsupported extension={extension} />);\n }\n\n if (!showDocument) {\n return;\n }\n\n return pdfJSWorkerURL ? (\n <Document\n file={previewURL}\n onLoadSuccess={this.onDocumentLoadSuccess}\n onPassword={this.onPassword}\n renderMode=\"canvas\"\n style={{ top: 260, position: 'absolute' }}\n options={this.options}\n >\n { !isVirtualized ? Array.from(\n new Array(numPages),\n (el, index) => (\n <Page\n renderTextLayer={file.props?.renderTextLayer ?? true}\n renderAnnotationLayer={false}\n scale={scale}\n loading=\"\"\n error=\"\"\n key={`page_${index + 1}`}\n pageNumber={index + 1}\n />\n )\n ) : (pageViewports && (\n <VariableSizeList\n width={width}\n height={window.innerHeight}\n estimatedItemSize={this.getPageHeight(0)}\n itemCount={numPages}\n itemSize={this.getPageHeight}\n >\n {({ index, style }) => (\n <div style={style}>\n <Page\n loading=\"\"\n error=\"\"\n renderTextLayer={file.props?.renderTextLayer ?? true}\n renderAnnotationLayer={false}\n pageIndex={index}\n width={width}\n />\n </div>\n )}\n </VariableSizeList>\n ))}\n </Document>\n ) : null;\n }\n}\n\nPDF.propTypes = {\n extension: PropTypes.string,\n file: PropTypes.shape({\n previewUrl: PropTypes.string,\n props: {\n renderTextLayer: PropTypes.bool\n }\n }),\n isVirtualized: PropTypes.bool\n};\n\nPDF.defaultProps = {\n extension: '',\n file: {},\n isVirtualized: false\n};\n\nexport default PDF;\n","import transform from 'lodash/transform';\nimport startsWith from 'lodash/startsWith';\n\nimport { supportedImageExtensions } from '../constants';\n\nexport const isHipaa = window.location.href.indexOf('hipaa') > -1; // User property can be used also.\n\nexport const emptyFunction = f => f;\n\nexport const getFileName = url => {\n return url\n .split('/')\n .slice(-1)\n .shift()\n .split('?')\n .shift();\n};\n\nexport const getFileExtension = url => {\n return getFileName(url).split('.').pop().toUpperCase();\n};\n\nexport const bytesToSize = bytes => {\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n if (bytes === 0) return 'n/a';\n const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);\n if (i === 0) return `${bytes} ${sizes[i]}`;\n return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`;\n};\nexport const ignoreForThumbnail = ['GIF', 'TIFF', 'TIF'];\n\nconst takeScreenshotOn = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'csv', 'txt', 'pdf'];\nconst changePreviewFileOn = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'csv', 'txt'];\n\nexport const previewThumbnail = (answer, exceptionList = [], width = 320) => {\n const extension = getFileExtension(answer).toLowerCase();\n const screenshotShouldBeTaken = exceptionList.indexOf(answer) === -1 && takeScreenshotOn.indexOf(extension) > -1 && !isHipaa;\n const _answer = screenshotShouldBeTaken ? answer.replace(`.${extension}`, `_jf${extension}ss.png`) : answer;\n return ignoreForThumbnail.indexOf(getFileExtension(_answer)) > -1 ? _answer : `${_answer}${_answer.indexOf('?') > -1 ? '&' : '?'}width=${width}`;\n};\n\nexport const previewUrl = (answer, exceptionList = []) => {\n const extension = getFileExtension(answer).toLowerCase();\n return exceptionList.indexOf(answer) === -1 && changePreviewFileOn.indexOf(extension) > -1 ? answer.replace(`.${extension}`, `_jf${extension}ss.png`) : answer;\n};\n\n// eslint-disable-next-line spaced-comment\nexport const isIE = /*@cc_on!@*/false || !!document.documentMode;\nexport const isEdge = !isIE && !!window.StyleMedia;\nexport const isIEOrEdge = isEdge || isIE;\n\nexport const isImage = src => supportedImageExtensions\n .indexOf(getFileExtension(src)) !== -1;\n\nexport function downloadURI({ fileUrl, fileName }) {\n if (!fileUrl) return; // File is not ready to download\n if (startsWith(fileUrl, 'blob:')) {\n if (global.navigator.msSaveBlob) { // For IE\n const xhr = new XMLHttpRequest(); // eslint-disable-line\n xhr.open('GET', fileUrl, true);\n xhr.responseType = 'blob';\n xhr.onload = function onLoad() {\n if (xhr.readyState === 4 && xhr.status === 200) {\n global.navigator.msSaveBlob(xhr.response, fileName);\n }\n };\n xhr.send();\n } else {\n // This is the only way to download blobs\n const link = document.createElement('a');\n link.download = fileName;\n link.href = fileUrl;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n } else {\n // This overrides pop-up blockers\n window.location.href = fileUrl;\n }\n}\n\nexport const isMainJotformWebsite = () => window.location.host === 'www.jotform.com';\nexport const isAnimalCareApp = () => window.location.pathname.includes('animal-care') || window.location.host.includes('hayvandestek');\n\n/** Replaces hostnames in the URL properties with the current hostname to prevent CORS error */\nexport const fixCrossOriginFile = file => {\n const urlKeys = ['previewUrl', 'previewThumbnailUrl', 'fileUrl', 'fileThumbnailUrl'];\n\n return transform(file, (result, value, key) => {\n let newValue = value;\n\n if (urlKeys.includes(key) && typeof value === 'string') {\n newValue = value.replace('www.jotform.com', window.location.host);\n }\n\n // eslint-disable-next-line no-param-reassign\n result[key] = newValue;\n }, {});\n};\n\nexport const isValidHttpUrl = fileUrl => {\n let url;\n\n try {\n url = new URL(fileUrl);\n } catch (_) {\n return false;\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:';\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconArrowDownToLine } from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport { bytesToHuman } from '@jotforminc/utils';\nimport { Utils } from '@jotforminc/uikit';\nimport * as FileTypes from './FileTypes';\nimport { fileFormats } from '../constants';\nimport { getFileExtension } from '../utils';\n\nconst fileTypesAsArray = Object.keys(FileTypes);\n\nclass PreviewArea extends React.PureComponent {\n constructor(props) {\n super(props);\n this.renderFile = this.renderFile.bind(this);\n }\n\n renderFile() {\n const {\n file, hasSingleFile, inputRef,\n useCustomIcon, CustomIcon, showFileSizeOnDownload, handleDownloadFile, isVirtualized\n } = this.props;\n const {\n isTempUpload,\n previewUrl,\n fileUrl,\n fileName\n } = file;\n\n const fileExtension = getFileExtension(isTempUpload ? fileName : previewUrl);\n const { component } = fileFormats[fileExtension] || fileFormats.Unsupported;\n const FileComponent = fileTypesAsArray.indexOf(component) > -1 ? FileTypes[component] : FileTypes.Unsupported;\n const isUnsupported = FileComponent === FileTypes.Unsupported;\n let className = `jPreview-document${hasSingleFile ? ' singleFile' : ''}${isUnsupported !== true && component === 'PDF' ? ` preview${component}` : ' previewOther'}`;\n\n if (isUnsupported) {\n className = `jPreview-document${hasSingleFile ? ' singleFile' : ''} previewOther`;\n }\n\n return (\n <div className={className} ref={inputRef}>\n {\n (isUnsupported && useCustomIcon)\n ? <CustomIcon />\n : (\n <FileComponent\n isPreview\n extension={fileExtension}\n file={file}\n key={fileUrl}\n isVirtualized={isVirtualized}\n />\n )\n }\n {isUnsupported && (\n <Button\n data-url={file.fileUrl}\n data-name={file.fileName}\n className=\"jPreviewButton forDownload\"\n onClick={handleDownloadFile}\n colorStyle='success'\n startIcon={IconArrowDownToLine}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleDownloadFile(e))}\n >\n {t('Download')}\n {(showFileSizeOnDownload && file.size) && <span className=\"jPreviewButton-fileSize\">{` (${bytesToHuman(parseInt(file.size, 10))})`}</span>}\n </Button>\n )}\n </div>\n );\n }\n\n render() {\n return this.renderFile();\n }\n}\n\nPreviewArea.defaultProps = {\n hasSingleFile: true,\n useCustomIcon: false,\n CustomIcon: () => null,\n showFileSizeOnDownload: false,\n handleDownloadFile: f => f,\n isVirtualized: false\n};\n\nPreviewArea.propTypes = {\n file: PropTypes.shape({\n isTempUpload: PropTypes.bool,\n previewUrl: PropTypes.string,\n fileUrl: PropTypes.string,\n fileName: PropTypes.string,\n size: PropTypes.string\n }).isRequired,\n hasSingleFile: PropTypes.bool,\n inputRef: PropTypes.shape({}).isRequired,\n useCustomIcon: PropTypes.bool,\n CustomIcon: PropTypes.elementType,\n showFileSizeOnDownload: PropTypes.bool,\n handleDownloadFile: PropTypes.func,\n isVirtualized: PropTypes.bool\n};\n\nexport default PreviewArea;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// import { fileFormats } from '../constants';\nimport { getFileExtension } from '../utils';\nimport Unsupported from './Unsupported';\n\nconst PreviewThumbnail = ({\n src, isImageFile, fileName\n}) => {\n return isImageFile ? <img src={src} alt=\"\" />\n : (\n <Unsupported\n extension={getFileExtension(fileName)}\n />\n );\n};\n\nPreviewThumbnail.propTypes = {\n src: PropTypes.string.isRequired,\n isImageFile: PropTypes.bool.isRequired,\n fileName: PropTypes.string.isRequired\n};\n\nexport default PreviewThumbnail;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Utils } from '@jotforminc/uikit';\n\nimport PreviewThumbnail from './PreviewThumbnail';\n\nimport { emptyFunction, isIEOrEdge, isImage } from '../utils';\n\nconst PreviewFooter = ({\n files, currentIndex, changeCurrentIndex, isNewIcon\n}) => {\n return (\n <div className=\"jPreview-footer\">\n <div className=\"jPreview-footerContainer\">\n {files.map((file, fileIndex) => {\n const fileRef = file.isTempUpload ? file.fileName : file.fileUrl;\n return (\n <div\n key={fileRef}\n className={`jPreview-thumbnail${fileIndex === currentIndex ? ' active' : ''} ${isIEOrEdge && isImage(fileRef) ? ' fixForIE' : ''}`}\n style={isImage(fileRef) && isIEOrEdge ? { backgroundImage: `url(${fileRef})` } : {}}\n onClick={changeCurrentIndex(fileIndex)}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && changeCurrentIndex(fileIndex)(e))}\n role=\"button\"\n tabIndex=\"0\"\n >\n <PreviewThumbnail\n src={`${file.previewThumbnailUrl || file.previewUrl}`}\n fileName={file.fileName}\n isImageFile={isImage(fileRef)}\n isNewIcon={isNewIcon}\n />\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nPreviewFooter.propTypes = {\n changeCurrentIndex: PropTypes.func,\n currentIndex: PropTypes.number,\n files: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.shape({\n description: PropTypes.string,\n fileName: PropTypes.string,\n fileThumbnailUrl: PropTypes.string,\n fileUrl: PropTypes.string,\n isImageFile: PropTypes.bool,\n previewThumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n })),\n PropTypes.arrayOf(PropTypes.shape({\n description: PropTypes.string,\n fileName: PropTypes.string,\n fileThumbnailUrl: PropTypes.string,\n fileUrl: PropTypes.string,\n isImageFile: PropTypes.bool,\n isTempUpload: PropTypes.bool,\n previewThumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n progress: PropTypes.number,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n uploadFinished: PropTypes.bool\n })),\n // For Immutable List\n PropTypes.shape({})\n ]).isRequired,\n isNewIcon: PropTypes.bool\n};\n\nPreviewFooter.defaultProps = {\n changeCurrentIndex: emptyFunction,\n currentIndex: 0,\n isNewIcon: false\n};\n\nexport default PreviewFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { Utils } from '@jotforminc/uikit';\nimport { bytesToHuman } from '@jotforminc/utils';\nimport {\n IconArrowDownToLine, IconEllipsisVertical, IconInfoCircleFilled, IconPrinterFilled, IconTrashFilled\n} from '@jotforminc/svg-icons';\n\nimport { Button } from '@jotforminc/magnet';\nimport { Unsupported } from './FileTypes';\nimport { getFileExtension, getFileName } from '../utils';\n\nconst PreviewHeader = ({\n file,\n togglePreviewContextMenu,\n isPreviewContextMenuOpened,\n handleAllFileUploads,\n hideFolderDetails,\n handleDownloadFile,\n useCustomIcon,\n showFileSizeOnDownload,\n CustomIcon\n}) => {\n const fileReference = file.isTempUpload ? file.fileName : file.fileUrl;\n return (\n <div className=\"jPreview-header\">\n <div className=\"jPreview-fileInfo\">\n <div className=\"jPreview-fileThumbnailBox\">\n {useCustomIcon ? <CustomIcon /> : <Unsupported extension={getFileExtension(fileReference)} />}\n </div>\n <div className=\"jPreview-fileLeft\">\n <div className=\"jPreview-fileTitle\">\n {file.fileName || getFileName(fileReference)}\n </div>\n <div className=\"jPreview-fileDesc\">\n {file.description}\n </div>\n </div>\n </div>\n\n <div className=\"jPreview-fileOptions flex items-center gap-4 mr-2\">\n { !hideFolderDetails && false && (\n <Button\n className=\"jPreviewButton forDetails\"\n colorStyle='secondary'\n variant='ghost'\n rounded={true}\n startIcon={IconEllipsisVertical}\n aria-label={t('Context Menu')}\n onClick={togglePreviewContextMenu}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && togglePreviewContextMenu(e))}\n />\n )}\n <Button\n colorStyle='success'\n startIcon={IconArrowDownToLine}\n data-url={file.fileUrl}\n data-name={file.fileName}\n onClick={handleDownloadFile}\n className=\"jPreviewButton forDownload\"\n tabIndex=\"0\"\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleDownloadFile(e))}\n >\n {t('Download')}\n {(showFileSizeOnDownload && file.size) && <span className=\"jPreviewButton-fileSize text-xs\">{` (${bytesToHuman(parseInt(file.size, 10))})`}</span>}\n </Button>\n { isPreviewContextMenuOpened && (\n <div className=\"jSheetContextMenu\">\n <ul>\n <li className=\"contextMenu-item hasDivider\">\n <span\n className=\"contextMenu-itemIcon\"\n onClick={handleAllFileUploads}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleAllFileUploads(e))}\n >\n <IconArrowDownToLine />\n </span>\n <span\n className=\"contextMenu-itemLabel\"\n onClick={handleAllFileUploads}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleAllFileUploads(e))}\n >\n {t('Download All Files')}\n </span>\n </li>\n </ul>\n <ul className=\"preview-hidden otherItems\">\n <li className=\"contextMenu-item hasDivider\">\n <span className=\"contextMenu-itemIcon\">\n <IconInfoCircleFilled />\n </span>\n <span className=\"contextMenu-itemLabel\">{t('Get Info')}</span>\n </li>\n <li className=\"contextMenu-item hasDivider\">\n <span className=\"contextMenu-itemIcon\">\n <IconPrinterFilled />\n </span>\n <span className=\"contextMenu-itemLabel\">{t('Print Attachment')}</span>\n </li>\n <li className=\"contextMenu-item isDangerItem\">\n <span className=\"contextMenu-itemIcon\">\n <IconTrashFilled />\n </span>\n <span className=\"contextMenu-itemLabel\">{t('Delete Submission')}</span>\n </li>\n </ul>\n </div>\n )}\n </div>\n\n </div>\n );\n};\n\nPreviewHeader.propTypes = {\n folderDetails: PropTypes.shape({\n fileCount: PropTypes.number,\n folderName: PropTypes.string,\n folderSize: PropTypes.string,\n zipUrl: PropTypes.string\n }),\n file: PropTypes.shape({\n fileUrl: PropTypes.string,\n description: PropTypes.string,\n fileName: PropTypes.string,\n isTempUpload: PropTypes.bool,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n togglePreviewContextMenu: PropTypes.func.isRequired,\n handleAllFileUploads: PropTypes.func.isRequired,\n handleDownloadFile: PropTypes.func.isRequired,\n isPreviewContextMenuOpened: PropTypes.bool.isRequired,\n hideFolderDetails: PropTypes.bool,\n useCustomIcon: PropTypes.bool,\n showFileSizeOnDownload: PropTypes.bool,\n CustomIcon: PropTypes.elementType\n};\n\nPreviewHeader.defaultProps = {\n folderDetails: {\n fileCount: 0,\n folderName: '',\n folderSize: ''\n },\n file: {\n fileUrl: '',\n description: '',\n size: ''\n },\n hideFolderDetails: false,\n useCustomIcon: false,\n showFileSizeOnDownload: false,\n CustomIcon: () => null\n};\n\nexport default PreviewHeader;\n","import React, {\n useState, useEffect, createRef, useMemo\n} from 'react';\nimport { t } from '@jotforminc/translation';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport Hammer from 'hammerjs';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\nimport { IconChevronLeft, IconChevronRight, IconXmark } from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport { Utils } from '@jotforminc/uikit';\nimport PreviewArea from './PreviewArea';\nimport PreviewFooter from './PreviewFooter';\nimport PreviewHeader from './PreviewHeader';\n\nimport {\n bytesToSize,\n emptyFunction,\n downloadURI,\n fixCrossOriginFile,\n isMainJotformWebsite,\n isAnimalCareApp,\n isImage,\n isValidHttpUrl\n} from '../utils';\n\nimport '../styles/index.scss';\n\nconst Preview = ({\n files: filesProp,\n onClose,\n onNextClick,\n onBackClick,\n initialFileIndex,\n folderDetails,\n hideFolderDetails,\n handleAllFileUploads,\n togglePreviewContextMenu,\n isPreviewContextMenuOpened,\n useCustomIcon,\n CustomIcon,\n showFileSizeOnDownload,\n onDownload,\n fixDomainURL,\n isNewIcon,\n isVirtualized\n}) => {\n const [currentIndex, setCurrenIndex] = useState(initialFileIndex || 0);\n\n const previewContainer = global.document.querySelector('#preview-content');\n const screenWidth = window.innerWidth;\n const screenHeight = window.innerHeight;\n const previewContainerRef = createRef();\n const previewAreaRef = createRef();\n let hammer;\n\n const files = useMemo(() => {\n if (!fixDomainURL || isMainJotformWebsite() || isEnterprise() || isAnimalCareApp()) return filesProp;\n\n return filesProp.map(fixCrossOriginFile);\n }, [filesProp, fixDomainURL]);\n\n const fileCount = files.length;\n const folderSize = bytesToSize(files.reduce((totalSize, file) => {\n const fileSize = parseInt(file.size, 10);\n return totalSize + fileSize > 0 ? fileSize : 0;\n }, 0));\n\n const newFolderDetails = { ...folderDetails, fileCount, folderSize };\n const currentFile = files[currentIndex];\n const hasSingleFile = fileCount === 1;\n\n const handleClose = () => {\n onClose();\n };\n\n const changeCurrentIndex = fileIndex => () => {\n setCurrenIndex(fileIndex);\n };\n\n const handleNextClick = () => {\n setCurrenIndex(_currentIndex => {\n const nextIndex = _currentIndex + 1 === fileCount ? 0 : _currentIndex + 1;\n return nextIndex;\n });\n onNextClick();\n };\n\n const handleBackClick = () => {\n setCurrenIndex(_currentIndex => {\n const nextIndex = _currentIndex === 0 ? fileCount - 1 : _currentIndex - 1;\n return nextIndex;\n });\n onBackClick();\n };\n\n const onKeyUpHandler = e => {\n e.stopPropagation();\n\n switch (e.keyCode) {\n case 27: {\n handleClose();\n break;\n }\n case 37: {\n handleBackClick();\n break;\n }\n case 39: {\n handleNextClick();\n break;\n }\n default: {\n break;\n }\n }\n };\n\n const handleClick = e => {\n if (Array.from(e.target.classList).indexOf('jPreview-document') > -1) {\n onClose();\n }\n };\n\n const swipeRight = e => {\n const { clientHeight, clientWidth } = e.target;\n if (screenWidth > clientWidth && screenHeight > clientHeight) {\n handleBackClick();\n }\n };\n\n const swipeLeft = e => {\n const { clientHeight, clientWidth } = e.target;\n if (screenWidth > clientWidth && screenHeight > clientHeight) {\n handleNextClick();\n }\n };\n\n const handleDownloadFile = async ({ target }) => {\n const fileUrl = target.getAttribute('data-url');\n const fileName = target.getAttribute('data-name');\n\n if (!isValidHttpUrl(fileUrl)) {\n return;\n }\n\n if (!isImage(fileUrl)) {\n downloadURI({ fileUrl, fileName });\n return;\n }\n\n // problematic image urls converted to blob\n try {\n const response = await fetch(fileUrl);\n const blobFile = await response.blob();\n const blobFileUrl = URL.createObjectURL(blobFile);\n\n downloadURI({ fileUrl: blobFileUrl, fileName });\n onDownload();\n\n window.URL.revokeObjectURL(blobFileUrl);\n } catch (err) {\n console.log(err);\n }\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClick, false);\n if (previewAreaRef.current) {\n hammer = Hammer(previewAreaRef.current);\n hammer.on('swipeleft', swipeLeft);\n hammer.on('swiperight', swipeRight);\n }\n\n if (previewContainerRef.current) previewContainerRef.current.focus();\n\n return () => {\n document.removeEventListener('mousedown', handleClick, false);\n hammer.off('swipeleft', swipeLeft);\n hammer.off('swiperight', swipeRight);\n };\n }, []);\n\n return createPortal(\n (\n <div\n ref={previewContainerRef}\n className={`jPreview${hideFolderDetails ? ' headerDisabled' : ''}`}\n onKeyDown={onKeyUpHandler}\n style={{ height: '100%' }}\n aria-modal=\"true\"\n tabIndex=\"-1\"\n aria-label={t('Preview Modal')}\n >\n <Button\n className=\"jPreview-close absolute top-5 right-5 z-3\"\n startIcon={IconXmark}\n colorStyle='secondary'\n rounded={true}\n aria-label={t('Close')}\n onClick={handleClose}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleClose(e))}\n />\n <div\n className={`jPreview-prev preview-controls ${hasSingleFile ? 'preview-hidden' : ''}`}\n role='button'\n tabIndex=\"0\"\n aria-label={t('Back')}\n onClick={handleBackClick}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleBackClick(e))}\n >\n <IconChevronLeft />\n </div>\n <div\n className={`jPreview-next preview-controls ${hasSingleFile ? 'preview-hidden' : ''}`}\n role='button'\n tabIndex=\"0\"\n aria-label={t('Next')}\n onClick={handleNextClick}\n onKeyDown={e => (Utils.isPressedKeyEnter(e) && handleNextClick(e))}\n >\n <IconChevronRight />\n </div>\n <PreviewHeader\n file={currentFile}\n togglePreviewContextMenu={togglePreviewContextMenu}\n handleAllFileUploads={handleAllFileUploads}\n folderDetails={newFolderDetails}\n isPreviewContextMenuOpened={isPreviewContextMenuOpened}\n hideFolderDetails={hideFolderDetails}\n handleDownloadFile={handleDownloadFile}\n useCustomIcon={useCustomIcon}\n CustomIcon={CustomIcon}\n showFileSizeOnDownload={showFileSizeOnDownload}\n isNewIcon={isNewIcon}\n />\n <PreviewArea\n inputRef={previewAreaRef}\n hasSingleFile={hasSingleFile}\n file={currentFile}\n handleDownloadFile={handleDownloadFile}\n useCustomIcon={useCustomIcon}\n CustomIcon={CustomIcon}\n showFileSizeOnDownload={showFileSizeOnDownload}\n isNewIcon={isNewIcon}\n isVirtualized={isVirtualized}\n />\n { !hasSingleFile && (\n <PreviewFooter\n isNewIcon={isNewIcon}\n files={files}\n currentIndex={currentIndex}\n changeCurrentIndex={changeCurrentIndex}\n />\n )}\n </div>\n ),\n previewContainer\n );\n};\n\nPreview.propTypes = {\n files: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.shape({\n description: PropTypes.string,\n fileName: PropTypes.string,\n fileThumbnailUrl: PropTypes.string,\n fileUrl: PropTypes.string,\n isImageFile: PropTypes.bool,\n previewThumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n })),\n PropTypes.arrayOf(PropTypes.shape({\n description: PropTypes.string,\n fileName: PropTypes.string,\n fileThumbnailUrl: PropTypes.string,\n fileUrl: PropTypes.string,\n isImageFile: PropTypes.bool,\n isTempUpload: PropTypes.bool,\n previewThumbnailUrl: PropTypes.string,\n previewUrl: PropTypes.string,\n progress: PropTypes.number,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n uploadFinished: PropTypes.bool\n })),\n // For Immutable List\n PropTypes.shape({})\n ]).isRequired,\n folderDetails: PropTypes.shape({\n folderName: PropTypes.string\n }),\n initialFileIndex: PropTypes.number,\n // On Closing Preview Modal\n onBackClick: PropTypes.func,\n onClose: PropTypes.func,\n onNextClick: PropTypes.func,\n handleAllFileUploads: PropTypes.func,\n hideFolderDetails: PropTypes.bool,\n togglePreviewContextMenu: PropTypes.func.isRequired,\n isPreviewContextMenuOpened: PropTypes.bool.isRequired,\n previewContainer: PropTypes.string,\n useCustomIcon: PropTypes.bool,\n showFileSizeOnDownload: PropTypes.bool,\n CustomIcon: PropTypes.elementType,\n onDownload: PropTypes.func,\n fixDomainURL: PropTypes.bool,\n isNewIcon: PropTypes.bool,\n isVirtualized: PropTypes.bool\n};\n\nPreview.defaultProps = {\n folderDetails: {\n folderName: ''\n },\n initialFileIndex: 0,\n onBackClick: emptyFunction,\n onClose: emptyFunction,\n onNextClick: emptyFunction,\n handleAllFileUploads: emptyFunction,\n hideFolderDetails: false,\n previewContainer: '#preview-content',\n useCustomIcon: false,\n showFileSizeOnDownload: false,\n CustomIcon: () => null,\n onDownload: emptyFunction,\n fixDomainURL: true,\n isNewIcon: false,\n isVirtualized: false\n};\n\nexport default Preview;\n","// eslint-disable-next-line spaced-comment\nconst isIE = /*@cc_on!@*/false || !!document.documentMode;\nconst isEdge = !isIE && !!window.StyleMedia;\nexport const isIEOrEdge = isEdge || isIE;\n\nconst iconTypes = {\n file_image: ['PNG', 'JPG', 'JPEG', 'GIF', 'BMP', 'TIFF', 'TIF'],\n file_audio: ['MP3', 'OGG', 'WAV'],\n file_video: ['MP4', 'WEBM'],\n file_unsupported: ['PDF']\n};\n\nexport const findIconType = fileFormat => {\n const findIndex = Object.values(iconTypes).findIndex(iconType => iconType.includes(fileFormat));\n return findIndex > -1 ? Object.keys(iconTypes)[findIndex] : 'file_unsupported';\n};\n\nexport const getThumbnailUrl = url => {\n let _url = url;\n if (_url.includes('#')) _url = _url.replace('#', '%23');\n return _url;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { fileFormats } from '@jotforminc/preview';\nimport { FileUtils } from '@jotforminc/upload-fields';\nimport { findIconType } from './fileUtils';\n\nconst NoImageFilePlaceholder = ({ src = '', iconName = '' }) => {\n const iconType = iconName || findIconType(FileUtils.getFileExtension(src));\n return (\n <div className=\"noImage\">\n <div className=\"fileHolder\">\n {fileFormats[iconType] ? fileFormats[iconType].iconType : fileFormats.Unsupported.iconType}\n <span className=\"fileType\">{FileUtils.getFileExtension(src)}</span>\n </div>\n </div>\n );\n};\n\nNoImageFilePlaceholder.propTypes = {\n src: PropTypes.string,\n iconName: PropTypes.string\n};\n\nexport default NoImageFilePlaceholder;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FileUtils } from '@jotforminc/upload-fields';\nimport { getThumbnailUrl } from './fileUtils';\nimport NoImageFilePlaceholder from './NoImageFilePlaceholder';\n\nconst ImageFile = ({ file, onError, iconName = '' }) => {\n const thumbnailUrl = getThumbnailUrl(file.fileThumbnailUrl || '');\n\n if (file.isImageFile || FileUtils.isImage(thumbnailUrl)) {\n return <img src={thumbnailUrl} alt=\"\" onError={onError} />;\n }\n\n if (FileUtils.isPDF(thumbnailUrl)) {\n return <NoImageFilePlaceholder src={thumbnailUrl} iconName={iconName} />;\n }\n\n return <NoImageFilePlaceholder src={file.fileName} iconName={iconName} />;\n};\n\nImageFile.propTypes = {\n file: PropTypes.shape({\n isImageFile: PropTypes.bool.isRequired,\n fileThumbnailUrl: PropTypes.string.isRequired,\n fileName: PropTypes.string.isRequired\n }).isRequired,\n onError: PropTypes.func.isRequired,\n iconName: PropTypes.string\n};\n\nexport default ImageFile;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { t } from '@jotforminc/translation';\n\nimport ImageFile from './ImageFile';\nimport { isIEOrEdge } from './fileUtils';\n\nconst hasMoreFile = (index, totalFiles) => {\n return index === 4 && totalFiles > 4;\n};\n\nconst moreFileCount = totalFiles => totalFiles - 3;\n\nconst File = ({\n file = {},\n index = 1,\n onClick = f => f,\n onImageLoadError = f => f,\n totalFiles = 0,\n isDocumentAttachment = false,\n documentType = ''\n}) => {\n const {\n isImageFile,\n fileUrl\n } = file;\n const conditionForIE = isIEOrEdge && isImageFile;\n\n const className = classNames(\n 'documentWrapper',\n {\n fixForIE: conditionForIE,\n [`jfSign-${documentType}`]: isDocumentAttachment && !!documentType\n }\n );\n\n const iconName = useMemo(() => {\n if (!isDocumentAttachment) {\n return '';\n }\n\n const iconMapping = {\n signedDocument: 'file_signed_document',\n auditTrail: 'file_audit_trail'\n };\n\n return iconMapping[documentType] ?? '';\n }, [isDocumentAttachment, documentType]);\n\n return (\n <div\n className={className}\n style={conditionForIE ? { backgroundImage: `url(${fileUrl})` } : {}}\n onClick={onClick}\n onKeyUp={f => f}\n data-index={index}\n >\n <ImageFile file={file} onError={onImageLoadError} iconName={iconName} />\n {hasMoreFile(index, totalFiles) && (\n <div className=\"moreDocument\">\n {moreFileCount(totalFiles)}\n {' '}\n {t('More')}\n </div>\n )}\n </div>\n );\n};\n\nFile.propTypes = {\n file: PropTypes.shape({\n isImageFile: PropTypes.bool.isRequired,\n fileUrl: PropTypes.string.isRequired\n }),\n index: PropTypes.number,\n totalFiles: PropTypes.number,\n onClick: PropTypes.func,\n onImageLoadError: PropTypes.func,\n isDocumentAttachment: PropTypes.bool,\n documentType: PropTypes.string\n};\n\nexport default File;\n","import React, {\n memo,\n useCallback,\n useMemo,\n useState\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { FileUtils } from '@jotforminc/upload-fields';\nimport { Preview } from '@jotforminc/preview';\nimport File from './File';\n\nconst FileUpload = ({\n answer: files = [],\n type = '',\n documentType = ''\n}) => {\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const isDocumentAttachment = type === 'control_documentAttachment';\n\n const closePreview = useCallback(() => setIsPreviewOpen(false), []);\n\n const filesWithProps = useMemo(() => {\n return (files || []).map(file => ({\n isImageFile: FileUtils.isImage(file),\n fileUrl: file,\n fileThumbnailUrl: file,\n previewUrl: file,\n previewThumbnailUrl: file,\n fileName: FileUtils.getFileName(file)\n }));\n }, [files]);\n\n const onClick = useCallback(e => {\n const dataIndex = e.target.parentElement.getAttribute('data-index');\n const index = Number.isNaN(parseInt(dataIndex, 10))\n ? Math.max(parseInt(dataIndex, 10), filesWithProps.length) : 0;\n\n setSelectedIndex(index);\n setIsPreviewOpen(true);\n }, [filesWithProps]);\n\n return (\n <>\n {filesWithProps.map((file, index) => (\n <File\n key={`file_${file.fileUrl}`}\n index={index}\n file={file}\n onClick={onClick}\n totalFiles={filesWithProps.length}\n isDocumentAttachment={isDocumentAttachment}\n documentType={documentType}\n />\n ))}\n {isPreviewOpen && (\n <Preview\n initialFileIndex={selectedIndex}\n files={filesWithProps}\n onClose={closePreview}\n />\n )}\n </>\n );\n};\n\nFileUpload.propTypes = {\n answer: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string\n ]),\n type: PropTypes.string,\n documentType: PropTypes.string\n};\n\nexport default memo(FileUpload);\n","import {\n useCallback, useEffect, useState, useRef, useMemo, useLayoutEffect\n} from 'react';\nimport Fuse from 'fuse.js';\nimport { nodeContains } from '@jotforminc/utils';\n\nimport { generateShortID } from '.';\n\nexport const useClickOutsideState = (initialState, refs = [], eventTypes = ['mouseup']) => {\n const [isVisible, setVisibility] = useState(initialState);\n\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && setVisibility(false);\n\n eventTypes.forEach(eventType => {\n global.addEventListener(eventType, hideMenu);\n });\n\n return () => eventTypes.forEach(eventType => global.removeEventListener(eventType, hideMenu));\n }, [refs]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useClickOutsideStateWithCallback = ({ refs = [], callback = null, eventType = 'mouseup' }) => {\n const _callback = typeof callback === 'function' ? callback : f => f;\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && _callback(target);\n\n global.addEventListener(eventType, hideMenu);\n return () => global.removeEventListener(eventType, hideMenu);\n }, [refs]);\n};\n\nexport const useClickOutsideStateMouseDown = (initialState, refs = []) => {\n const [isVisible, setVisibility] = useState(initialState);\n\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && setVisibility(false);\n\n global.addEventListener('mousedown', hideMenu);\n return () => global.removeEventListener('mousedown', hideMenu);\n }, [refs]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useClickOutsideStateWithSelector = (initialState, selector) => {\n const [isVisible, setVisibility] = useState(initialState);\n const hideMenu = event => {\n const containerList = global.document.querySelectorAll(selector);\n const isContained = [...containerList].find(container => nodeContains(container, event.target));\n if (!isContained) {\n setVisibility(false);\n }\n };\n\n useEffect(() => {\n global.addEventListener('mouseup', hideMenu);\n return () => global.removeEventListener('mouseup', hideMenu);\n }, [selector]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useSelectionState = (initialState, isMultiSelect = false) => {\n // Instance methods\n const sanitizeInitialState = !Array.isArray(initialState) ? [initialState] : initialState;\n\n // States\n const [selectedOptions, setSelectedOptions] = useState(sanitizeInitialState);\n\n // State methods\n const toggleOptionSelection = selectedValue => {\n const isOptionExist = selectedOptions.indexOf(selectedValue) > -1;\n const newSelectionArray = isOptionExist ? selectedOptions.filter(value => selectedValue !== value) : [...selectedOptions, selectedValue];\n setSelectedOptions(newSelectionArray);\n };\n\n const singleToggleOptionSelection = selectedValue => {\n const isOptionExist = selectedOptions.indexOf(selectedValue) > -1;\n if (isOptionExist) {\n return;\n }\n\n setSelectedOptions([selectedValue]);\n };\n\n if (isMultiSelect) {\n return [selectedOptions, toggleOptionSelection, setSelectedOptions];\n }\n\n return [selectedOptions, singleToggleOptionSelection, setSelectedOptions];\n};\n\nexport const useEffectIgnoreFirst = (effectHandler, effectDependedValues) => {\n const isFirstRun = useRef(true);\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n\n return effectHandler();\n }, effectDependedValues);\n};\n\nexport const useCombinedRefs = (...refs) => {\n const targetRef = useRef();\n\n useEffect(() => {\n refs.forEach(ref => {\n if (!ref) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n // eslint-disable-next-line no-param-reassign\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\nexport const usePortalRef = (\n containerSelector = 'body',\n usePortal = false,\n portalAttribute = 'data-uikitGeneratedPortalContainer',\n initialPortalSelector = ''\n) => {\n // Returns a ref to pass to React.createPortal, either a reference to an existing element or it creates a new element.\n const getPortalRefElement = useCallback(() => {\n if (!usePortal) return;\n\n const portalContainer = global.document.querySelector(containerSelector);\n if (portalContainer) {\n // Portal Container element already exists -> return that element\n const currentPortalDiv = portalAttribute ? portalContainer.querySelector(`[${portalAttribute}=true]`) : false;\n if (currentPortalDiv) return currentPortalDiv;\n\n // Otherwise create a new Portal Container element\n const id = generateShortID();\n const div = global.document.createElement('div');\n div.setAttribute(portalAttribute, 'true');\n div.setAttribute('id', id);\n portalContainer.appendChild(div);\n return div;\n }\n }, [containerSelector, usePortal, portalAttribute]);\n\n // if the parent component won't rerender, it won't be able to detect the ref.current change so initial selector may be needed for components like those\n const portalRef = useRef(initialPortalSelector ? document.querySelector(initialPortalSelector) : getPortalRefElement());\n\n useEffect(() => {\n portalRef.current = getPortalRefElement() || portalRef.current;\n }, [getPortalRefElement]);\n\n return portalRef;\n};\n\nexport const useDragState = (initialState, {\n onDrop: onDropCallBack,\n onDragOver: onDragOverCallBack,\n onDragEnter: onDragEnterCallBack,\n onDragLeave: onDragLeaveCallBack\n} = {}) => {\n const [isDragging, setDragState] = useState(initialState);\n\n const generateDragEventHandler = (state, callback) => event => {\n setDragState(state);\n event.stopPropagation();\n event.preventDefault();\n\n if (typeof callback === 'function') {\n callback(event);\n }\n\n return false;\n };\n\n const onDragEnter = generateDragEventHandler(true, onDragEnterCallBack);\n const onDragOver = generateDragEventHandler(true, onDragOverCallBack);\n const onDragLeave = generateDragEventHandler(false, onDragLeaveCallBack);\n const onDrop = generateDragEventHandler(false, onDropCallBack);\n\n return [isDragging, {\n onDragEnter, onDragOver, onDragLeave, onDrop\n }];\n};\n\nconst cachedScripts = [];\nexport const useScript = src => {\n const [scriptState, setLoadState] = useState({ loaded: false, error: false });\n\n useEffect(() => {\n if (cachedScripts.indexOf(src) > -1) {\n setLoadState({ loaded: true, error: false });\n return f => f;\n }\n\n cachedScripts.push(src);\n\n const scriptTag = document.createElement('script');\n scriptTag.src = src;\n scriptTag.async = true;\n\n const onScriptLoad = () => setLoadState({ loaded: true, error: false });\n const onScriptError = () => {\n setLoadState({ loaded: true, error: true });\n scriptTag.remove();\n };\n\n scriptTag.addEventListener('load', onScriptLoad);\n scriptTag.addEventListener('error', onScriptError);\n document.body.appendChild(scriptTag);\n\n return () => {\n scriptTag.removeEventListener('load', onScriptLoad);\n scriptTag.removeEventListener('error', onScriptError);\n };\n }, [src]);\n\n return scriptState;\n};\n\nexport const useFuse = (list, searchTerm, keys = ['text'], fuseOptions = {\n shouldSort: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1\n}) => {\n const fuse = useMemo(() => new Fuse(list, { ...fuseOptions, keys }), [list, fuseOptions, keys]);\n const results = useMemo(() => (!searchTerm ? list : fuse.search(searchTerm)), [fuse, searchTerm]);\n return results;\n};\n\nexport const usePrev = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const useInView = onInView => {\n const ref = useRef();\n\n useEffect(() => {\n let observer;\n\n global.requestAnimationFrame(() => {\n if (!ref.current) return;\n\n if (global.IntersectionObserver) {\n observer = new global.IntersectionObserver(([entry]) => {\n if (entry.intersectionRatio === 0) {\n return;\n }\n\n onInView(true);\n\n observer.unobserve(ref.current);\n }, { threshold: 1 });\n\n observer.observe(ref.current);\n } else {\n onInView(true);\n }\n });\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [ref.current]);\n\n return [ref];\n};\n\nexport const useContinueFocus = (isOpen, currentActiveElementRef) => {\n const panelRef = useRef();\n const activeElementRef = currentActiveElementRef || useRef();\n const isFirstRun = useRef(true);\n\n useLayoutEffect(() => {\n if (isFirstRun.current && !isOpen) {\n isFirstRun.current = false;\n return;\n }\n panelRef.current?.setAttribute('tabindex', isOpen ? 0 : -1);\n if (isOpen) {\n if (!currentActiveElementRef) { // if current element ref is not given, focus last active element\n activeElementRef.current = document.activeElement;\n }\n panelRef.current?.focus();\n } else {\n activeElementRef.current?.focus();\n }\n return () => activeElementRef.current?.focus();\n }, [isOpen]);\n\n return panelRef;\n};\n","import { useMomentDate } from '@jotforminc/hooks';\nimport moment from 'moment-timezone';\n\nconst COMPLETED = 'COMPLETED';\nconst NOT_REQUIRED_TASK = {\n buttonColor: '#979DC6',\n type: 'NOTREQUIRED',\n text: 'Not required'\n};\n\nconst DEFAULT_TASK = {\n buttonColor: '#FFB629',\n type: 'WAITING',\n text: 'Waiting'\n};\n\nconst NOT_QUALIFIED_REASON_CREATOR = {\n buttonColor: '#979DC6',\n type: 'CREATOR',\n text: 'Creator Role'\n};\n\nexport const isTaskCompleted = status => status && status === COMPLETED;\n\nexport const defaultAvatarValues = (outcomeInfo, notRequired = false, notQualifiedReason = false) => {\n if (notQualifiedReason && notQualifiedReason === 'CREATOR_ROLE') {\n return NOT_QUALIFIED_REASON_CREATOR;\n }\n if (notRequired) {\n return NOT_REQUIRED_TASK;\n }\n return {\n buttonColor: outcomeInfo?.buttonColor || DEFAULT_TASK.buttonColor,\n type: outcomeInfo?.type || DEFAULT_TASK.type,\n text: outcomeInfo?.text || DEFAULT_TASK.text\n };\n};\n\nexport const getDateValue = (timestamp = null, createdAt) => {\n const serverTimezoneOffset = moment().tz('America/New_York').format('Z');\n const [date] = useMomentDate(`${timestamp || createdAt} ${serverTimezoneOffset}`, 'YYYY-MM-DD HH:mm ZZ');\n return date;\n};\n\nexport const isTeamApproval = (type, team) => {\n if (!type || !team) return false;\n if (type === 'workflow_team_approval' && team) return true;\n return false;\n};\n","import { createPortal } from 'react-dom';\nimport { bool, string, node } from 'prop-types';\nimport { forwardRef, useImperativeHandle } from 'react';\n\nimport { usePortalRef } from '../../utils/hooks';\n\nconst Portal = forwardRef(({\n children,\n usePortal,\n portalAttribute,\n containerSelector,\n initialPortalSelector\n}, ref) => {\n const portalRef = usePortalRef(containerSelector, usePortal, portalAttribute, initialPortalSelector);\n\n useImperativeHandle(ref, () => ({\n portalID: portalRef.current ? portalRef.current.id : ''\n }));\n\n return usePortal && portalRef.current ? createPortal(\n children,\n portalRef.current\n ) : children;\n});\n\nPortal.propTypes = {\n children: node.isRequired,\n usePortal: bool,\n containerSelector: string,\n portalAttribute: string,\n initialPortalSelector: string\n};\n\nPortal.defaultProps = {\n usePortal: true,\n containerSelector: 'body',\n portalAttribute: undefined,\n initialPortalSelector: ''\n};\n\nexport default Portal;\n","import * as FullStory from '@fullstory/browser';\n\nclass FullStoryManager {\n constructor(\n fullStoryConfigs: FullStory.SnippetOptions\n ) {\n FullStory.init(fullStoryConfigs);\n }\n\n activeTrackings = new Set();\n\n setUserVars = (customVars: FullStory.UserVars): void => {\n const { displayName, email, ...projectVars } = customVars;\n Object.keys(projectVars).forEach(key => this.activeTrackings.add(key));\n\n FullStory.setUserVars({\n ...projectVars,\n email,\n displayName,\n activeTrackings: Array.from(this.activeTrackings.values())\n });\n };\n\n isInitialized = FullStory.isInitialized;\n\n event = FullStory.event;\n\n identify = (uid: string, customVars?: FullStory.UserVars): void => {\n const { displayName, email, ...projectVars } = customVars || {};\n Object.keys(projectVars).forEach(key => this.activeTrackings.add(key));\n FullStory.identify(uid, {\n ...projectVars,\n email,\n displayName,\n activeTrackings: Array.from(this.activeTrackings.values())\n });\n };\n\n shutdown = FullStory.shutdown;\n\n restart = FullStory.restart;\n\n getCurrentSessionURL = FullStory.getCurrentSessionURL;\n}\n\nexport default FullStoryManager;\n","import {\n BrowserOptions, browserTracingIntegration, captureConsoleIntegration, contextLinesIntegration, ErrorEvent,\n extraErrorDataIntegration\n} from '@sentry/react';\n\nconst IGNORED_ERRORS = [\n // Random plugins/extensions\n 'top.GLOBALS',\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error. html\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n 'http://tt.epicplay.com',\n 'Can\\'t find variable: ZiteReader',\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'http://loading.retry.widdit.com/',\n 'atomicFindClose',\n // Facebook borked\n 'fb_xd_fragment',\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to\n // reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n 'conduitPage',\n 'tinymce',\n /tinymce/,\n 'for=',\n // tinymce related errors\n /tinymce-4\\.5\\.2/,\n // Error generated by a bug in auto-fill library from browser\n // https://github.com/getsentry/sentry/issues/5267\n /Blocked a frame with origin/,\n // Below error is basically the browser complaining that\n // ResizeObserver wasn't able to complete its work within an animation frame.\n // See: https://stackoverflow.com/questions/49384120\n 'ResizeObserver loop limit exceeded',\n // This error comes from the EDGE and IE users that uses Visual basic\n // to connect to jotform, when the connection fails, we receive below error on sentry\n 'The remote server machine does not exist or is unavailable',\n // Some firefox versions on windows devices throws below error\n // possibly thrown from an firefox add-on\n 'can\\'t redefine non-configurable property \"userAgent\"',\n 'SVGAnimatedString',\n 'You have entered your current password wrong.',\n 'New password should have minimum 8 characters.',\n 'Username is not available.',\n 'Link is already taken.',\n 'URL Slug may only contain letters or combination of letters, numbers, dash and underscores (\"_-”).',\n /^.*(email address is already registered!).*$/gim,\n /^.*(You're not authorized to use).*$/gim,\n /^.*(hooks).*$/gim,\n /^.*(username).*$/gim,\n /^.*(password).*$/gim,\n /^.*(byte).*$/gim,\n 'zoid destroyed all components',\n '[GSI_LOGGER]:', // Google Auth Errors\n '[olark]', // olark chatbot errors\n '[Meta Pixel]' // pixel initialization errors\n];\n\nfunction findValue(event: ErrorEvent, search: RegExp) {\n if (!event.exception || !event.exception.values) {\n return false;\n }\n\n let found = false;\n event.exception.values.forEach(value => {\n if (!value.value) {\n return false;\n }\n found = search.test(value.value);\n return !found;\n });\n return found;\n}\n\n/**\n * Determines if a string or regex is included in another string\n * @param {string} str string to search\n * @param {string | RegExp} search string or regex to search for\n * @returns {boolean} true if search is found in str\n */\nfunction includes(str: string, search: string | RegExp): boolean {\n if (typeof search === 'string') {\n return str.includes(search);\n }\n return search.test(str);\n}\n\nexport const defaultSentryConfigs: BrowserOptions = {\n integrations: [\n browserTracingIntegration({\n traceFetch: false,\n traceXHR: false\n }),\n captureConsoleIntegration({ levels: ['error'] }),\n extraErrorDataIntegration(),\n contextLinesIntegration()\n ],\n attachStacktrace: true,\n sampleRate: 0.1,\n tracesSampler: ({ attributes }) => {\n // send pageload traces with 0.1% probability\n if (attributes?.['sentry.op'] === 'pageload') {\n return 0.001;\n }\n // default trace rate\n return 0.1;\n },\n debug: false,\n environment: 'production',\n allowUrls: [\n /https?:\\/\\/.*jotform\\.com/,\n /https?:\\/\\/cdn([0-9]*)\\.jotfor\\.ms/,\n /https?:\\/\\/.*jotform\\.pro/\n ],\n normalizeDepth: 50,\n denyUrls: [\n // Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n /tinymce/i,\n /^.*(https:\\/\\/api.jotform.com\\/translationList).*$/gim,\n /^.*(pagead\\/viewthroughconversion).*$/gim\n ],\n ignoreErrors: IGNORED_ERRORS,\n // eslint-disable-next-line complexity, max-statements\n beforeSend: (event, hint) => {\n if (/Android 4\\.4\\.[2,4]/.test(window.navigator.userAgent)) {\n return null;\n }\n\n // Non error promise rejection events\n if (/Non-Error promise rejection/i.test(event?.message || '')) {\n return null;\n }\n\n // tinymce errors\n if (/cloneNode/i.test(event?.message || '')) {\n return null;\n }\n\n if (/t is null/i.test(event?.message || '')) {\n return null;\n }\n\n if ((event.message && /\"Invariant Violation\"/.test(event.message)) || findValue(event, /\"Invariant Violation\"/)) {\n return null;\n }\n\n // Ignore FS errors\n if (findValue(event, /\"Timeout \\(h\\)\"/)) {\n return null;\n }\n\n if (findValue(event, /\"Timeout\"/)) {\n return null;\n }\n\n if (findValue(event, /\"Unable to find node on an unmounted component.\"/)) {\n return null;\n }\n\n const error = hint?.originalException as {message: string};\n if (error?.message) {\n const { message } = error;\n const exactErrors = [\n 'chrome is not defined', // Firefox extension tries to use chrome object\n 'tm_x is not defined', // Chrome Mobile WebView 99, Android 9;\n 'twttr is not defined', // Twitter GTM tag errors\n \"Can't find variable: $\",\n \"Can't find variable: al_onPoststitialDismiss\", // 3rd party, Mobile Safari UI/WKWebView, iOS 15.3.1\n \"Can't find variable: article\",\n \"Can't find variable: twttr\", // Twitter GTM tag errors\n \"Can't find variable: WeixinJSBridge\", // 3rd party, Mobile Safari UI/WKWebView, iOS 13.6\n \"Identifier 'boundExec' has already been declared\", // 3rd party, Windows 10\n \"Identifier 'kImgMinWidth' has already been declared\", // Chrome Mobile WebView 87, Android 11\n \"Unexpected token 'var'\"\n ];\n\n const partialErrors = [\n '__firefox__', // Firefox internal errors\n '__show__deepen', // noise likely coming from browsers/extensions\n 'ats.js', // ATS tracker script (probably coming from GTM)\n 'BetterJsPop', // adblocker\n 'C3 is not defined', // coming from C3 maps script\n 'checkDomStatus', // likely coming from ads/campaigns\n 'chrome-extension',\n 'Could not find googletag', // Another possible GTM issue\n 'Could not find Nativo', // Nativo third-party script\n 'crazyegg',\n 'crypto.getRandomValues', // third-party app\n 'customDispatchEvent is not defined', // Issue coming from crazyegg third-party script\n 'DomNode has not been set for this SimpleScriptable', // HTMLUnit issue coming from very old browsers\n 'DOMNodeInsertedByJs', // Coming from an Android browser called Crosswalk\n 'fb.js', // Issues coming from Facebook pixel/third-party script on GTM\n 'First argument to Readability constructor should be a document object', // Readability app on Mobile devices\n 'fixedTimeID is not defined', // Likely coming from a browser extension\n 'getHiAnalysticsParam', // Coming from Huawei mobile devices\n 'grecaptcha is not defined', // Coming from recaptcha\n 'instantSearchSDKJSBridgeClearHighlight', // Bing Instant Search issue with Edge on iOS\n 'Java exception was raised', // Android internal issues\n 'keydownt', // Coming from a chrome extension\n 'langDetector is not defined', // Translation third-party script\n 'localStorage', // mobile device settings\n 'MoatMAK', // Issues coming from Mobile ads (MRAID SDK)\n 'mobincube', // third-party app\n 'moz-extension', // Firefox\n 'mraid', // Issues coming from Mobile ads (MRAID SDK)\n 'NetworkError: Load failed', // Fetch issue on user browser\n 'NotAllowedError: Read permission denied', // User browser issue originated from third-party scripts\n 'notifyCurrentVideoState is not defined', // Coming from Mobile devices\n 'NS_ERROR_', // Firefox internal errors\n 'Object Not Found Matching Id:', // Microsoft Outlook SafeLink crawlers\n 'onAPWebViewPause', // Issue coming from Webviews on Mobile devices\n 'onTabScrolled is not defined', // Might be coming from browser extensions or third-party apps\n 'perfectbrowsr_nodecheck', // browser extension\n 'pktAnnotationHighlighter', // Issues coming from Pocket on iOS\n 'prebidjs', // Coming from a bidding external script (Prebid.js)\n 'privateSpecialRepair', // likely coming from ads/campaigns\n 'QK_middlewareReadModePage', // noise from ads/campaigns\n 'Quora Pixel Error',\n 'redefine property: googletag', // GTM\n 'safari-extension',\n 'safari-web-extension',\n 'safari.self.tab.setContext', // Safari browser error\n 'SecurityError: Blocked a frame with origin', // CORS issues from users or third-party scripts/apps\n 'sendBeacon', // Issues coming from Cloudflare beacon.min.js script\n 'setIOSParameters', // Mobile Safari browser issue on iOS\n 'Taboola', // Taboola third-party script\n 'tgetT is not defined', // 3rd party\n 'TypeError: WebKit', // Safari (WebKit) internal issues\n 'ucapi is not defined', // Might be coming from browser extensions or third-party apps\n 'UCShellJava', // noise coming from UC Browser\n 'UXCam', // third-party app\n 'vid_mate_check', // third-party app\n 'VUE_DEVTOOLS_IFRAME', // Issue coming from Vue Devtools extension\n 'webkitExitFullScreen', // Mobile Safari browser issue on iOS\n 'window.appHotStart', // Might be coming from browser extensions or third-party apps\n 'window.bannerNight', // Might be coming from browser extensions or third-party apps\n 'window.getPlayer is not a function', // Third-party scripts\n 'window.huawei', // Coming from Huawei mobile devices\n 'window.onunload is not a function', // Third-party scripts\n 'window.performance.getEntries is not a function', // Trying to access from console in unsupported browser\n 'window.regainData is not a function', // Third-party scripts\n 'window.showAngularStats', // Might be coming from browser extensions or third-party apps\n 'zaloJSV2', // Zalo API\n 'Zotero', // third-party app\n \"Can't find variable: al_\", // Appears only on Apple devices, related to tracking\n \"Failed to read the 'cookie' property from 'Document'\", // User browser issue to fetch cookies\n \"getElementsByTagName('video')\", // Mobile Safari browser issue on iOS\n \"Identifier 'VIDEO_PLAYING'\", // noise likely coming from browsers/extensions\n 'GSI_LOGGER', // Google auth noise\n 'ReferenceError: UET is not defined', // happens when bing is blocked by adblockers\n '[olark]', // olark chatbot errors\n '[Meta Pixel]' // pixel initialization errors\n ];\n\n const patterns = [\n /window.cb\\d+ is not a function/ // 3rd party, Windows 10, Edge 98.0.1108\n ];\n\n if (\n exactErrors.includes(message)\n || partialErrors.some(partialError => message.includes(partialError))\n || patterns.some(pattern => pattern.test(message))\n ) {\n return null;\n }\n\n const parsedEvent = JSON.stringify(event);\n\n const match = [\n '/Users/', // MacOS localhost\n 'adblocker', // Ad blockers\n 'addons/pops/license', // Coming from random addons\n 'ads/pixel.js', // Reddit Pixel\n 'ats.js', // ATS tracker script (probably coming from GTM)\n 'bad-network-popup', // third-party script\n 'beacon.min.js', // Cloudflare script\n 'beforeLoad_SafariV2.js', // Coming from Safari extensions\n 'BVProxy.min.js', // BVProxy external script\n 'C:\\\\Users\\\\', // Windows localhost\n 'card-injection.js', // coming from a netfree.link website, might be an extension or app\n 'chrome-extension',\n 'clarity.js', // Microsoft Clarity analytics tool\n 'common-scripts', // Third-party scripts such as CrazyEgg\n 'crypto.getRandomValues', // third-party app\n 'fb.js', // Issues coming from Facebook pixel/third-party script on GTM\n 'Grammarly.js', // Grammarly extension\n 'gtm.js', // GTM main script\n 'hstc.tracking', // Hubspot tracking script\n 'localStorage', // Mobile device settings (usually coming from Android)\n 'MathJax.js', // MathJax.js script\n 'moz-extension', // Firefox\n 'nrWrapper', // NewRelic\n 'processRandomSelector', // noise from ads/campaigns\n 'r.beacon', // NewRelic\n 'recaptcha/releases',\n 'RILLONGPRESS', // third-party script\n 'safari-extension',\n 'safari-web-extension',\n 'setupPops', // Chrome issue coming from adblockers\n 'setupPops', // Chrome issue coming from adblockers\n 'SnapTube', // External app to download videos\n 'srcIsLegacy', // Drift third-party script\n 'translate_http', // Issues coming from Google Translate API\n 'uwt.js', // Twitter Universal Tag\n 'zteEnd' // Coming from an external script related to ZTE phones\n ].some(predicate => parsedEvent.includes(predicate));\n\n if (match) {\n return null;\n }\n }\n\n const values = event?.exception?.values;\n if (values?.length) {\n const [{\n type, value, stacktrace\n }] = values;\n\n if (type === 'UnhandledRejection') {\n // Google reCAPTCHA timeout exceptions\n const recaptchaPattern = /^Non-Error promise rejection captured with value: Timeout( \\(\\w\\))?$/;\n if (recaptchaPattern.test(value || '')) {\n return null;\n }\n if (!stacktrace && value === 'Non-Error promise rejection captured with keys: errors, message, name') {\n const extra = event?.extra;\n if (extra) {\n const message = (extra.__serialized__ as {message: string})?.message;\n\n // 3rd party code RxJS error, supposedly Grammarly extension\n if (message === '1 errors occurred during unsubscription:\\n1) RangeError: Maximum call stack size exceeded.') {\n return null;\n }\n }\n }\n // Do not send errors like \"Non-Error promise rejection captured with value: content, keys, name\"\n // as these are handled in some other/hacky way in the code\n if (value && (value.includes('Object captured as promise rejection with keys:') || value.includes('Non-Error promise rejection captured with keys:'))) {\n if (value.includes(',')) {\n return null;\n }\n }\n }\n }\n\n if (event?.extra?.arguments) {\n const parsedArguments = JSON.stringify(event.extra.arguments);\n if (IGNORED_ERRORS.some(ignored => includes(parsedArguments, ignored))) {\n return null;\n }\n }\n\n if (event?.breadcrumbs instanceof Array && event?.breadcrumbs.length > 0) {\n const fullStoryBreadcrumbs = event.breadcrumbs.filter(breadcrumb => breadcrumb.category === 'xhr' && breadcrumb.data?.url?.includes('https://rs.fullstory.com/rec/bundle/v2?OrgId=K1ZZ'));\n if (fullStoryBreadcrumbs.length > 0) {\n if (event?.tags) {\n // eslint-disable-next-line no-param-reassign\n event.tags.withFullStory = true;\n }\n } else if (event?.tags) {\n // eslint-disable-next-line no-param-reassign\n event.tags.withFullStory = false;\n }\n\n if (event.exception?.values?.map(e => e.value).includes('Event `CustomEvent` (type=unhandledrejection) captured as promise rejection')) {\n // Events with <unknown> title generally happens after a XHR call to the following sites.\n // If one of these is the last call made, ignore the error.\n const XHRS_TO_IGNORE = [\n /ads\\.linkedin/,\n /clarity/,\n /events\\.jotform/,\n /google-analytics/\n ];\n const lastFailedNetworkCall = event.breadcrumbs.slice().reverse().find(crumb => ((crumb.type === 'http') && crumb?.data?.status_code !== 200));\n if (lastFailedNetworkCall) {\n if (XHRS_TO_IGNORE.some(ignored => (ignored.test(lastFailedNetworkCall?.data?.url)))) {\n return null;\n }\n }\n }\n }\n\n return event;\n }\n};\n\nexport const SENTRY_ORG_SLUG = 'jotform';\n","import * as Sentry from '@sentry/react';\nimport { fullStoryIntegration } from '@sentry/fullstory';\nimport { ExclusiveEventHintOrCaptureContext } from '@sentry/core/build/types/utils/prepareEvent';\nimport { Options } from '@sentry/types';\nimport { defaultSentryConfigs, SENTRY_ORG_SLUG } from '../constants';\nimport FullStoryManager from './FullStoryManager';\n\nclass SentryManager {\n constructor(sentryOptions: Options) {\n if (sentryOptions.dsn) {\n window.errorTracking = true; // FIXME: this is needed for some breadcrumbs, we should refactor code that uses this window variable\n Sentry.init({ ...defaultSentryConfigs, ...sentryOptions });\n }\n }\n\n captureException = (exception: unknown, hint?: ExclusiveEventHintOrCaptureContext): string => {\n if (exception instanceof Error) {\n return Sentry.captureException(exception, hint);\n }\n // we do not care about exceptions type at this point, just throwing an error is enough\n const exceptionAsString = exception as string;\n return Sentry.captureException(new Error(exceptionAsString), hint);\n };\n\n captureMessage = Sentry.captureMessage;\n\n configureScope = (fn: (scope: Sentry.Scope) => void): void => {\n const scope = Sentry.getCurrentScope();\n fn(scope);\n };\n\n configureGlobalScope = (fn: (scope: Sentry.Scope) => void): void => {\n const scope = Sentry.getGlobalScope();\n fn(scope);\n };\n\n captureEvent = Sentry.captureEvent;\n\n createReduxEnhancer = Sentry.createReduxEnhancer;\n\n addIntegration = Sentry.addIntegration;\n\n enableFSPlugin = (fsInstance: FullStoryManager | undefined): void => {\n if (!fsInstance) {\n return;\n }\n this.addIntegration(fullStoryIntegration(SENTRY_ORG_SLUG, { client: fsInstance }));\n };\n}\nexport default SentryManager;\n","import { TrackingManager as TManager } from './utils';\n\nconst TrackingManager = new TManager();\n\nexport default TrackingManager;\n","import {\n getEnv, isHIPAA, isEU, getActiveApp, getRevision\n} from '@jotforminc/router-bridge';\nimport trackingList, { SentryConfig, Trackers } from '@jotforminc/tracking-config';\nimport {\n CaptureContext, EventHint, Event, Scope,\n Options\n} from '@sentry/types';\nimport { SentryEnhancerOptions } from '@sentry/react/build/types/redux';\nimport { SnippetOptions, UserVars } from '@fullstory/browser';\nimport FullStoryManager from './FullStoryManager';\nimport SentryManager from './SentryManager';\n\nclass TrackingManager {\n sentry: SentryManager | undefined;\n\n sentryOptions: Options | undefined;\n\n FS: FullStoryManager | undefined;\n\n fullstoryOptions: SnippetOptions | undefined;\n\n enableSentry(config: SentryConfig, forceEnable = false): void {\n if (forceEnable || (getEnv() === 'PRODUCTION' && !isHIPAA() && !isEU())) {\n try {\n const activeApp = getActiveApp();\n const doesSentryNameExist = trackingList[activeApp]?.sentry?.name;\n const appName = activeApp === 'listings' ? 'js-listings' : activeApp;\n this.sentry = new SentryManager({ ...config, ...(doesSentryNameExist && { release: `${appName}@${getRevision()}`, dist: `master${getRevision()}` }) });\n\n if (this.FS) {\n this.sentry.enableFSPlugin(this.FS);\n }\n } catch (error) {\n console.log('Failed to initialize Sentry !');\n }\n }\n }\n\n enableFS(userVars: UserVars | null = null): void {\n if (getEnv() === 'PRODUCTION' && !isHIPAA() && !isEU()) {\n try {\n if (!this.FSisInitialized()) {\n this.FS = new FullStoryManager({ orgId: 'K1ZZ', debug: false });\n }\n\n if (userVars) {\n this.setUserVars(userVars);\n }\n if (this.sentry) {\n this.sentry.enableFSPlugin(this.FS);\n }\n } catch (error) {\n console.log('Failed to initialize Fullstory !');\n }\n }\n }\n\n initTypes = {\n sentry: (config: object, forceEnable: boolean): void => this.enableSentry({ ...config }, forceEnable),\n fullStory: (): void => this.enableFS()\n };\n\n enableErrorTracking(appName: string, forceEnable = false, extraConfigs: Trackers = {}): void {\n const configs = {\n sentry: {\n ...trackingList?.[appName]?.sentry,\n ...extraConfigs?.sentry\n },\n fullStory: {\n ...trackingList?.[appName]?.fullStory,\n ...extraConfigs?.fullStory\n }\n };\n Object.entries(configs).forEach(([_trackingType, config]) => {\n const trackingType = _trackingType as keyof typeof configs;\n const { enable, ...rest } = config;\n if (enable) {\n if (!this.initTypes[trackingType]) {\n console.error(`Tracking type ${trackingType} couldn't found`);\n return;\n }\n this.initTypes[trackingType]({ ...rest }, forceEnable);\n }\n });\n }\n\n captureException(error: unknown, extras?: CaptureContext): void {\n if (this.sentry) {\n this.sentry?.captureException(error, extras);\n } else if (error instanceof Error) {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture exception for ${error}\\nStack:${error.stack}`);\n } else {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture exception for ${error}`);\n }\n }\n\n captureMessage(message: string, extras?: CaptureContext): void {\n if (this.sentry) {\n this.sentry?.captureMessage(message, extras);\n } else {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture message for ${message}`);\n }\n }\n\n configureScope(callback: (scope: Scope) => void): void {\n this.sentry?.configureScope(callback);\n }\n\n configureGlobalScope(callback: (scope: Scope) => void): void {\n this.sentry?.configureGlobalScope(callback);\n }\n\n captureEvent(event: Event, hint?: EventHint): void {\n this.sentry?.captureEvent(event, hint);\n }\n\n createReduxEnhancer(enhanceOptions?: Partial<SentryEnhancerOptions>): void {\n return this.sentry?.createReduxEnhancer(enhanceOptions);\n }\n\n setUserVars(userVars: UserVars): void {\n this.FS?.setUserVars(userVars);\n }\n\n FSisInitialized(): boolean | undefined {\n return this.FS?.isInitialized();\n }\n\n event(eventName: string, eventProperties: { [key: string]: unknown }): void {\n this.FS?.event(eventName, eventProperties);\n }\n\n getCurrentSessionURL(): string | undefined | null {\n return this.FS?.getCurrentSessionURL();\n }\n\n identify(uid: string, customVars?: UserVars): void {\n this.FS?.identify(uid, customVars);\n }\n\n shutdown(): void {\n this.FS?.shutdown();\n }\n\n restart(): void {\n this.FS?.restart();\n }\n}\n\nexport default TrackingManager;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport './Placeholder.scss';\n\nconst Placeholder = ({\n animated,\n rounded,\n className,\n ...props\n}) => (\n <div className={classNames('jfPlaceholder', rounded && 'isRounded', className)} {...props}>\n {animated && <div className=\"jfPlaceholder-animated\" />}\n </div>\n);\n\nPlaceholder.propTypes = {\n animated: PropTypes.bool,\n rounded: PropTypes.bool,\n className: PropTypes.string\n};\n\nPlaceholder.defaultProps = {\n animated: false,\n rounded: false,\n className: ''\n};\n\nexport default Placeholder;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport classNames from 'classnames';\n\nimport Placeholder from './PlaceHolder';\n\nconst StyledWorkflowStatus = styled.div`\n .jfPlaceholder {\n &-row {\n height: 14px;\n\n &.forShort {\n width: 72.5%;\n }\n\n &.forLong {\n margin-top: 10px;\n }\n }\n }\n`;\n\nconst WorkflowStatus = ({ className, ...props }) => (\n <StyledWorkflowStatus className={classNames('jfPlaceholder-wrapper', className)} {...props}>\n <div className=\"jfPlaceholder-row forShort\">\n <Placeholder animated />\n </div>\n <div className=\"jfPlaceholder-row forLong\">\n <Placeholder animated />\n </div>\n </StyledWorkflowStatus>\n);\n\nWorkflowStatus.propTypes = {\n className: PropTypes.string\n};\n\nWorkflowStatus.defaultProps = {\n className: ''\n};\n\nexport default WorkflowStatus;\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nexport const layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\nexport const fetchQuestions = (formID, project = '') => layer.get(`/API/${project}/form/${formID}/questions`);\nexport const fetchSubmission = (submissionID, project = '') => layer.get(`/API/${project}/submission/${submissionID}`);\nexport const fetchUser = () => layer.get('user/combinedinfo');\n\nexport const fetchFormPdf = formID => layer.get(`form/${formID}/pdf`);\n","import { createContext } from 'react';\n\nexport const SingleSubmissionButtonContext = createContext();\n","export const FILENAME_ALLOWED_FIELDS = ['control_fullname', 'control_textbox', 'control_date', 'control_datetime', 'control_dropdown', 'control_radio', 'control_number'];\n","import { safeJSONParse } from '@jotforminc/utils';\nimport { FILENAME_ALLOWED_FIELDS } from '../constants';\n\n/**\n * Checks whether the given array is empty or not.\n * A array is considered empty if it has no elements or all of its elements are empty strings.\n * Ex;\n * [{}]\n * ['{}']\n * []\n * ['[]', '[]', '[]', '[]']\n * [['', '', ''], ['', '', ''], ['', '', '']]\n *\n * @function\n * @param {Array<Array<String|Array>>} arr - The array to check\n * @returns {Boolean} Returns true if the array is empty, false otherwise\n *\n */\nexport const isArrayEmpty = arr => {\n if (arr.length === 0) return true;\n return !arr.some(item => {\n if (Array.isArray(item)) {\n return !isArrayEmpty(item);\n }\n if (typeof item === 'string') {\n const parsed = safeJSONParse(item, item);\n if (Array.isArray(parsed)) {\n return !isArrayEmpty(parsed);\n }\n if (typeof parsed === 'object' && parsed !== null) {\n // only {} case covered\n return Object.keys(parsed).length > 0;\n }\n }\n if (typeof item === 'object' && item !== null) {\n // only {} case covered\n return Object.keys(item).length > 0;\n }\n return !!item;\n });\n};\n\n/**\n * Check whether given question answer counts as empty or not\n * @function\n * @param {String} type Question type\n * @param {Object|Number|String} answer Questions' answer field\n */\nexport const isQuestionAnswerEmpty = (type, answer, selectedField = '') => { // eslint-disable-line complexity\n switch (true) {\n case (type === 'control_rating'): // Show always rating field as filled\n return false;\n case (type === 'control_widget' && typeof answer === 'string' && selectedField === '52961c97e3e5266570000004'):\n // Controls if user select any option in Checklist widget.\n const checkboxs = answer.match(/^CHECKED:/gm);\n if (!checkboxs) {\n const answerNotEmpty = answer && !answer.match(/^UNCHECKED:/gm);\n if (answerNotEmpty) {\n return false;\n }\n return true;\n }\n return false;\n case (!answer && answer !== 0): // If answer is falsifiable and not equal to zero\n case typeof answer === 'string' && !answer.trim(): // If answer data is string and not empty\n case (typeof answer === 'object' && Object.values(answer).filter(val => {\n if (type === 'control_time' && (val === 'PM' || val === 'AM')) {\n return false;\n }\n if (typeof val === 'string') {\n const trimmedValue = val.trim();\n return trimmedValue && trimmedValue.match(/\\[(\"\",?)+\\]/) === null;\n }\n return val;\n }).length === 0): // If answer data is object and every key it contains is empty\n case (type === 'control_payment' && (!answer.paymentArray || !safeJSONParse(answer.paymentArray).product)):\n case (type === 'control_phone' && typeof answer === 'string' && !/^[0-9]*$/.test(answer)): // If it is specifically phone field and does not contain any number\n case (type === 'control_widget' && selectedField === '538dddaa976bf61129000004' && answer.split(/\\r\\n|\\r|\\n/g).filter(ans => {\n const keyValueArray = ans.match('^.*?:(.*)$');\n return keyValueArray && keyValueArray[1] !== ' ';\n }).length === 0):\n case (type === 'control_mixed' && typeof answer === 'string' && answer === '<table></table>'):\n return true;\n case (type === 'control_appointment' && (typeof answer !== 'object' || !answer.date)):\n return true;\n case (type === 'control_inline'):\n if (typeof answer === typeof {}) {\n const fields = Object.keys(answer);\n // after editing a submission that includes empty fill in the blanks field that has a date field,\n // this date field comes like that: {day: \"\", month: \"\", year: \"\"}\n // since lots of submissions already have such data,\n // we have to cover this case on runtime.\n // see #8651261\n const dateBoxFields = fields.filter((field = '') => field.match(/^date/));\n const justHasDate = dateBoxFields.length === fields.length;\n // if fill in the blanks field has at least one element which is not a datebox,\n // it means that the question has been answered.\n if (!justHasDate) {\n return false;\n }\n if (dateBoxFields.length) {\n const getDateAnswer = fieldID => safeJSONParse(answer[fieldID], {}, true);\n const dateAnswers = dateBoxFields.map(getDateAnswer);\n const checkValidDateAnswer = dateAnswer => Object.values(dateAnswer).some(value => value);\n const hasValidDateAnswer = dateAnswers.some(checkValidDateAnswer);\n return !hasValidDateAnswer;\n }\n return true;\n }\n return true;\n case type === 'control_matrix':\n if (typeof answer !== 'object') {\n return true;\n }\n return Array.isArray(answer) && isArrayEmpty(answer);\n default:\n return false;\n }\n};\n\n/**\n * Generate a meaningful filename from form & question properties\n * @function\n * @param {{ questions: Array(<{ type: String, hidden: 'Yes'|'No', text: String, qid: String}>)}} questions Question type\n * @param {Boolean|'Yes'|'No'} checkHiddenFields\n */\nexport const generateFileName = (qs, checkHiddenFields = false) => {\n const questions = qs.filter(q => {\n if (FILENAME_ALLOWED_FIELDS.indexOf(q.type) === -1) {\n return false;\n }\n\n if (!checkHiddenFields && q.hidden === 'Yes') return false;\n\n if (q.type === 'control_date' || q.type === 'control_datetime') {\n if (!q.text) { return true; }\n const text = q.text.toString().toLocaleLowerCase();\n if (text.indexOf('birth') > -1 || text.indexOf('dob') > -1) { return false; }\n }\n\n return true;\n });\n\n if (questions.length) {\n const firstNameIndex = questions.findIndex(t => t.type === 'control_fullname' || (t.text && t.text.toString().toLocaleLowerCase().indexOf('name') > -1));\n const firstDateIndex = questions.findIndex(t => t.type === 'control_date' || t.type === 'control_datetime');\n\n const firstName = (firstNameIndex > -1) ? questions[firstNameIndex] : false;\n const firstDate = (firstDateIndex > -1) ? questions[firstDateIndex] : false;\n\n if (firstDateIndex === 0) {\n const pdfName = `{q_${firstDate.qid}}`;\n\n if (firstName) {\n return `{q_${firstName.qid}} ${pdfName}`;\n }\n\n if (questions[1]) {\n return `${pdfName} {q_${questions[1].qid}}`;\n }\n }\n\n if (firstNameIndex === 0) {\n const pdfName = `{q_${firstName.qid}}`;\n\n if (firstDate) {\n return `${pdfName} {q_${firstDate.qid}}`;\n }\n\n if (questions[1]) {\n return `${pdfName} {q_${questions[1].qid}}`;\n }\n }\n\n if (questions[1] && ['control_textbox', 'control_dropdown', 'control_radio'].indexOf(questions[0].type) > -1) {\n const pdfName = `{q_${questions[0].qid}}`;\n\n if (firstName) {\n return `{q_${firstName.qid}} ${pdfName}`;\n }\n\n if (firstDate) {\n return `${pdfName} {q_${firstDate.qid}}`;\n }\n\n return `${pdfName} {q_${questions[1].qid}}`;\n }\n\n if (questions[0].type === 'control_number') {\n const pdfName = `{q_${questions[0].qid}}`;\n if (firstName) {\n return `{q_${firstName.qid}} ${pdfName}`;\n } if (firstDate) {\n return `${pdfName} {q_${firstDate.qid}}`;\n }\n }\n\n if (firstName) {\n const pdfName = `{q_${firstName.qid}}`;\n if (firstDate) {\n return `${pdfName} {q_${firstDate.qid}}`;\n }\n\n return pdfName;\n }\n }\n\n if (!checkHiddenFields) {\n return generateFileName(qs, true);\n }\n\n return '{sid} {formTitle}';\n};\n","/* eslint-disable max-len */\nimport React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Preview from '../components/Preview';\n\nconst getDisplayName = WrappedComponent => WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\nconst StyledPreviewWrapper = Styled.div`\n .clickableImageWrapper {\n cursor: pointer;\n border-radius: 4px;\n border: 1px solid #D9DAE4;\n overflow: hidden;\n transition: .3s ease-in;\n cursor: pointer;\n position: relative;\n height: 80px;\n\n &::before,\n &::after {\n content: '';\n position: absolute;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: .2s ease-in;\n }\n\n &::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(0, 0, 0, 0.4);\n z-index: 2;\n }\n\n &::after {\n content: \"\";\n top: 50%;\n left: 50%;\n width: 29px;\n height: 29px;\n transform: translate(-50%, -50%);\n background-image: url(\"data:image/svg+xml,%3Csvg width='29' height='29' viewBox='0 0 29 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='14.75' cy='14.6748' r='14' fill='%23121C48' fill-opacity='0.64'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.99573 19.5229C8.99573 19.337 8.99579 19.2315 8.99573 19.126C8.99526 18.3094 9.00063 17.4927 8.99164 16.6762C8.98744 16.293 8.7308 16.0422 8.37583 16.0407C8.0166 16.0392 7.75558 16.2888 7.75418 16.6673C7.74875 18.1255 7.7484 19.5837 7.75435 21.042C7.75593 21.4273 7.99052 21.6677 8.37233 21.6695C9.83072 21.6766 11.2892 21.6762 12.7476 21.6704C13.1241 21.669 13.3852 21.4025 13.3847 21.0562C13.3841 20.6939 13.1216 20.4349 12.7264 20.4319C11.9001 20.4254 11.0736 20.4296 10.2471 20.4294C10.1548 20.4293 10.0624 20.4294 9.97001 20.4294C9.93856 20.3865 9.90705 20.3436 9.87554 20.3008C9.97059 20.2512 10.0849 20.2211 10.1577 20.1491C10.9664 19.3492 11.769 18.5431 12.5727 17.7382C12.9918 17.3186 13.418 16.9057 13.826 16.4756C14.1538 16.1299 14.0329 15.5936 13.6039 15.4486C13.3145 15.3509 13.0824 15.4548 12.8702 15.6681C11.6769 16.8672 10.4771 18.0597 9.27904 19.254C9.2051 19.3278 9.12761 19.398 8.99573 19.5229ZM20.3851 9.81163C20.4254 9.84449 20.4657 9.87742 20.506 9.91034C20.506 10.8245 20.5022 11.7387 20.5077 12.6529C20.5101 13.0551 20.7623 13.3137 21.1273 13.3124C21.4909 13.3112 21.7453 13.0502 21.7465 12.6499C21.7511 11.2198 21.7512 9.78968 21.7466 8.3596C21.7451 7.91082 21.5096 7.67901 21.0584 7.67772C19.6406 7.67381 18.2225 7.67381 16.8046 7.67784C16.3823 7.67901 16.1161 7.93177 16.1213 8.30362C16.1264 8.67874 16.3881 8.91761 16.8148 8.91989C17.6403 8.92427 18.4658 8.92088 19.2914 8.92205C19.3732 8.92217 19.455 8.93151 19.5368 8.93658L19.6122 9.03868C19.5204 9.09338 19.4125 9.13197 19.339 9.20523C18.1691 10.3721 17.0033 11.5433 15.8376 12.7145C15.7556 12.7969 15.6713 12.8801 15.6055 12.9751C15.369 13.3165 15.4985 13.7314 15.8827 13.8874C16.2035 14.0177 16.4402 13.88 16.6612 13.6583C17.8486 12.4675 19.04 11.2809 20.2256 10.0884C20.2982 10.0154 20.3329 9.90474 20.3851 9.81163Z' fill='white'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-position: center;\n transition-delay: .1s;\n z-index: 3;\n }\n\n &:hover {\n border-color: #4277ff;\n\n &::before,\n &::after {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n`;\n\nconst withPreview = WrappedComponent => {\n const WithPreview = props => {\n const {\n clickableImageSelector,\n ...otherProps\n } = props;\n const [activePreviewIndex, setActivePreviewIndex] = useState(false);\n const [files, setFiles] = useState([]);\n\n const prepareFile = (url = '') => {\n const fileName = url.split('/').pop().split('?')[0];\n const fileUrl = url.replace('#', '%23');\n\n return {\n fileName,\n fileUrl,\n previewUrl: fileUrl\n };\n };\n\n const prepareFiles = allImages => {\n const preparedFiles = allImages.map(image => prepareFile(image.src));\n\n setFiles(preparedFiles);\n };\n\n const handleClick = i => setActivePreviewIndex(i);\n\n useEffect(() => {\n const previewContent = document.querySelector('#preview-content');\n if (!previewContent) {\n const newPreviewContentEl = document.createElement('div');\n newPreviewContentEl.id = 'preview-content';\n document.body.appendChild(newPreviewContentEl);\n }\n\n const allImages = clickableImageSelector ? Array.from(document.querySelectorAll(clickableImageSelector)) : [];\n prepareFiles(allImages);\n\n allImages.forEach((image, i) => {\n image.parentNode.classList.add('clickableImageWrapper');\n image.addEventListener('click', () => handleClick(i));\n });\n\n return () => {\n allImages.forEach((image, i) => {\n image.removeEventListener('click', () => handleClick(i));\n });\n };\n }, []);\n\n return (\n <StyledPreviewWrapper>\n <WrappedComponent {...otherProps} />\n {activePreviewIndex !== false && (\n <Preview\n files={files}\n initialFileIndex={activePreviewIndex}\n onClose={() => setActivePreviewIndex(false)}\n isPreviewContextMenuOpened={false}\n togglePreviewContextMenu={f => f}\n />\n )}\n </StyledPreviewWrapper>\n );\n };\n\n WithPreview.propTypes = {\n clickableImageSelector: PropTypes.string\n };\n\n WithPreview.defaultProps = {\n clickableImageSelector: ''\n };\n\n WithPreview.displayName = `Preview(${getDisplayName(WrappedComponent)})`;\n\n return WithPreview;\n};\n\nexport default withPreview;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { capitalize } from '@jotforminc/utils';\n\nconst SVGComponents = {\n\n};\n\nconst SVG = React.forwardRef(({\n name,\n className,\n ...remainingProps\n}, ref) => {\n const SVGComponent = SVGComponents[capitalize(name)];\n if (!SVGComponent) {\n return null;\n }\n\n return (\n <SVGComponent\n ref={ref}\n name={name}\n className={classNames(className, `${name}--svg`)}\n {...remainingProps}\n />\n );\n});\n\nSVG.propTypes = {\n name: PropTypes.string.isRequired,\n className: PropTypes.string\n};\n\nSVG.defaultProps = {\n className: null\n};\n\nexport default SVG;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Styled from 'styled-components';\nimport { Preview, SVG } from '@jotforminc/preview';\nimport { FileUtils } from '@jotforminc/upload-fields';\nimport {\n View, Hypertext, Baseline, Imageline, Text as SimpleText\n} from '@jotforminc/answer-fields';\n\nimport '../../styles/index.scss';\n\nconst ViewWrap = Styled(View)`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst HalfView = Styled(View)`\n width: 50%;\n`;\n\nconst FileUploadField = ({\n text,\n answer,\n labelProps,\n answerProps,\n answerWrapperProps,\n baselineProps,\n showFileNameAsText,\n showImageHyperlink,\n imagePropsArray,\n filePropsArray,\n direction,\n containerProps,\n fileNameProps\n}) => {\n const [activePreviewIndex, updateActivePreviewIndex] = useState(false);\n const imgPropsArray = imagePropsArray || [];\n const fileProps = filePropsArray || [];\n const { className: classes } = baselineProps;\n const files = FileUtils.prepareFiles(answer, true);\n\n useEffect(() => {\n const previewContent = document.querySelector('#preview-content');\n if (!previewContent) {\n const newPreviewContentEl = document.createElement('div');\n newPreviewContentEl.id = 'preview-content';\n document.body.appendChild(newPreviewContentEl);\n }\n }, []);\n\n return (\n <Baseline\n label={text}\n labelContainerProps={labelProps}\n answerWrapperProps={answerWrapperProps}\n direction={direction}\n {...baselineProps}\n className={classNames('jfFileUploadField', classes)}\n >\n <ViewWrap {...containerProps}>\n {answer && answer.map((uploadedUrl, answerIndex) => {\n const {\n fileUrl: encodedRequestUrl,\n fileName: filename,\n extension,\n iconType,\n isImageFile\n } = files[answerIndex];\n\n return (\n // eslint-disable-next-line react/no-array-index-key\n <HalfView {...answerProps} {...fileProps[answerIndex]} key={answerIndex.toString()}>\n <div\n className=\"jfFileUploadField-image\"\n onClick={() => updateActivePreviewIndex(answerIndex)}\n onKeyDown={null}\n >\n {isImageFile || uploadedUrl.match(/^blob:/) ? (\n <Imageline\n key={`${filename}`}\n label={filename}\n value={encodedRequestUrl}\n {...imgPropsArray[answerIndex]}\n />\n ) : (\n <div className=\"noImage flex-center\">\n <div className=\"fileHolder\">\n <SVG name={iconType} className=\"noImage-icon flex-center\" />\n <span className=\"fileType flex-center\">\n {extension}\n </span>\n </div>\n </div>\n )}\n </div>\n {showImageHyperlink && (\n <Hypertext\n key={`hypertext_${filename}`}\n href={FileUtils.getUploadUrl(encodedRequestUrl)}\n >\n {filename}\n </Hypertext>\n )}\n {showFileNameAsText && !showImageHyperlink && (\n <SimpleText\n key={`simpletext_${filename}`}\n {...fileNameProps}\n {...fileProps[answerIndex]}\n >\n {filename}\n </SimpleText>\n )}\n </HalfView>\n );\n })}\n {activePreviewIndex !== false && (\n <Preview\n files={files}\n initialFileIndex={activePreviewIndex}\n onClose={() => updateActivePreviewIndex(false)}\n isPreviewContextMenuOpened={false}\n togglePreviewContextMenu={f => f}\n />\n )}\n </ViewWrap>\n </Baseline>\n );\n};\n\nFileUploadField.propTypes = {\n text: PropTypes.string,\n answer: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.shape({})]),\n labelProps: PropTypes.shape({}),\n answerProps: PropTypes.shape({}),\n answerWrapperProps: PropTypes.shape({}),\n baselineProps: PropTypes.shape({\n className: PropTypes.string\n }),\n containerProps: PropTypes.shape({}),\n imagePropsArray: PropTypes.instanceOf(Array),\n fileNameProps: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.array]),\n filePropsArray: PropTypes.instanceOf(Array),\n showImageHyperlink: PropTypes.bool,\n showFileNameAsText: PropTypes.bool,\n direction: PropTypes.string\n};\n\nFileUploadField.defaultProps = {\n text: '',\n answer: [''],\n labelProps: {},\n answerProps: {},\n answerWrapperProps: {},\n baselineProps: {},\n containerProps: {},\n imagePropsArray: [],\n fileNameProps: [],\n filePropsArray: [],\n showImageHyperlink: true,\n showFileNameAsText: false,\n direction: 'column'\n};\n\nexport default FileUploadField;\n","export const NON_INPUT_QUESTIONS = [\n 'control_pagebreak',\n 'control_collapse',\n 'control_image',\n 'control_button',\n 'control_captcha',\n 'control_separator',\n 'control_clear',\n 'control_divider'\n];\n\nexport const HEADER_TEXT_QUESTIONS = [\n 'control_head',\n 'control_text'\n];\n\nexport const PAYMENT_FIELDS = [\n 'control_2co',\n 'control_authnet',\n 'control_bluepay',\n 'control_bluesnap',\n 'control_braintree',\n 'control_cardconnect',\n 'control_clickbank',\n 'control_dwolla',\n 'control_echeck',\n 'control_eway',\n 'control_firstdata',\n 'control_googleco',\n 'control_onebip',\n 'control_payjunction',\n 'control_chargify',\n 'control_payment',\n 'control_paymentwall',\n 'control_paymill',\n 'control_paypal',\n 'control_paypalexpress',\n 'control_paypalpro',\n 'control_paypalSPB',\n 'control_square',\n 'control_stripe',\n 'control_stripeACH',\n 'control_wepay',\n 'control_worldpay',\n 'control_worldpayus',\n 'control_payu',\n 'control_pagseguro',\n 'control_moneris',\n 'control_sofort',\n 'control_sensepass',\n 'control_paysafe',\n 'control_iyzico',\n 'control_skrill',\n 'control_gocardless'\n];\n","/* eslint-disable complexity */\nimport { safeJSONParse } from '@jotforminc/utils';\nimport { PAYMENT_FIELDS } from '../constants';\n\nexport const isFieldWithPreview = ({\n type,\n selectedField\n}) => {\n const WIDGETS_WITH_IMAGE_PREVIEW = [\n // Image Upload Preview\n '5295b800485bd19f5d000005',\n // Take Photo\n '529c8286a75dae5e7f000005'\n ];\n\n return type === 'control_widget' && WIDGETS_WITH_IMAGE_PREVIEW.indexOf(selectedField) > -1;\n};\n\nexport const getCustomProps = ({\n answer,\n question\n}) => {\n try {\n const { type } = question;\n if (PAYMENT_FIELDS.indexOf(type) > -1) {\n const _answer = answer.answer;\n const answerProducts = [];\n let showImages = false;\n\n if (_answer && Object.keys(_answer).length > 2) {\n Object.values(_answer).forEach(productRawData => {\n const productJSON = productRawData || '{}';\n let parsedProduct = typeof productRawData !== 'string' ? productRawData : safeJSONParse(productJSON);\n\n if (parsedProduct && parsedProduct.pid) {\n const { products } = answer;\n const foundProduct = products.find(product => product.pid === parsedProduct.pid);\n\n const { icon = '', images = '[]' } = foundProduct;\n const imagesArr = safeJSONParse(images, []);\n parsedProduct = { ...parsedProduct, icon, images: imagesArr };\n\n if (!showImages && !!(icon || imagesArr.length)) {\n showImages = true;\n }\n answerProducts.push(parsedProduct);\n }\n });\n }\n\n return {\n products: answerProducts,\n showImages\n };\n }\n\n // will add other types later when needed\n switch (type) {\n case 'control_datetime': {\n const { allowTime, dateFormat, timeFormat } = question;\n\n if (allowTime === 'Yes' && !dateFormat) {\n return {\n dateFormat: timeFormat === 'AM/PM' ? 'MMM D, YYYY hh:mm A' : 'MMM D, YYYY HH:mm'\n };\n }\n return {};\n }\n case 'control_birthdate': {\n const { dateFormat } = question;\n\n if (!dateFormat) {\n return {\n dateFormat: 'MMM D, YYYY'\n };\n }\n return {};\n }\n case 'control_appointment':\n const timezone = question.timezone ? question.timezone.split(' ')[0] : '';\n const showTimezone = !!timezone;\n return {\n timezone,\n showTimezone\n };\n case 'control_inline':\n return ({\n showSublabels: false,\n fullContent: true\n });\n case 'control_mixed':\n return {\n sublabels: question.sublabels\n };\n case 'control_widget':\n const { qid, selectedField } = question;\n // Image Upload Preview\n if (selectedField === '5295b800485bd19f5d000005') {\n return ({\n optimizeImage: false,\n showImageHyperlink: true,\n clickableImageSelector: `[data-qid=\"${qid}\"] .jfSingleSubmissionView-answer img`\n });\n }\n\n // Take Photo\n if (selectedField === '529c8286a75dae5e7f000005') {\n return ({\n showImageLink: true,\n clickableImageSelector: `[data-qid=\"${qid}\"] .jfSingleSubmissionView-answer img`\n });\n }\n\n return {};\n case 'control_radio':\n if (answer.name === 'outcomeID') {\n const workflowOutcomes = safeJSONParse(question?.workflow_outcomes, []);\n const { buttonColor, text } = workflowOutcomes.find(outcome => outcome.id === parseInt(answer.answer, 10));\n return {\n answer: text,\n answerProps: { className: 'workflowOutcome', style: { color: buttonColor, backgroundColor: `${buttonColor}33` } }\n };\n }\n return {};\n default: {\n return {};\n }\n }\n } catch (e) {\n return {};\n }\n};\n\nexport const getWidgetType = question => question.selectedField || null;\n\nexport const getPaymentType = question => question.paymentType || null;\n\nexport const getAnswerProps = () => {\n return { className: 'jfSingleSubmissionView-answer' };\n};\n\nexport const getDefaultHeaderText = question => {\n const {\n type,\n text,\n subLabel,\n hint,\n cfname\n } = question;\n\n const readyToUseLabels = {\n control_fullname: 'Name',\n control_email: 'Email',\n control_address: 'Address',\n control_phone: 'Phone',\n control_datetime: 'Date',\n control_time: 'Time',\n control_inline: 'Fill in the Blanks'\n };\n\n const header = text || subLabel || hint || readyToUseLabels[type] || '';\n\n if (header) return header;\n\n if (type === 'control_widget' && cfname) return cfname;\n\n const typeLabel = type.replace('control_', '');\n return typeLabel.charAt(0).toUpperCase() + typeLabel.slice(1);\n};\n","import React from 'react';\nimport { shape, number } from 'prop-types';\nimport { withPreview } from '@jotforminc/preview';\nimport FileUploadField from '@jotforminc/fileuploadfield';\nimport { getAnswerFieldComponent } from '@jotforminc/answer-fields';\n\nimport {\n getCustomProps, getAnswerProps, getDefaultHeaderText, getWidgetType, getPaymentType, isFieldWithPreview\n} from '../utils';\n\nconst ViewItem = ({\n itemQuestion,\n itemAnswer,\n index\n}) => {\n const { type: questionType, qid } = itemQuestion;\n const Field = questionType === 'control_fileupload' ? FileUploadField : getAnswerFieldComponent(questionType === 'control_head' ? 'control_text' : questionType);\n const FieldComponent = isFieldWithPreview(itemQuestion) ? withPreview(Field) : Field;\n const customProps = getCustomProps({\n answer: itemAnswer,\n question: itemQuestion\n });\n const answerProps = getAnswerProps();\n const text = getDefaultHeaderText(itemQuestion);\n const widgetId = getWidgetType(itemQuestion);\n const paymentType = getPaymentType(itemQuestion);\n\n const answerFieldProps = {\n ...itemAnswer,\n ...itemQuestion,\n answerProps,\n labelProps: {\n className: 'jfSingleSubmissionView-question',\n textProps: {\n className: 'jfSingleSubmissionView-question-text'\n }\n },\n sublabelProps: {\n className: 'jfSingleSubmissionView-question isSubLabel'\n },\n answerWrapperProps: {\n className: 'jfSingleSubmissionView-answer-wrapper'\n },\n containerProps: {\n className: 'jfSingleSubmissionView-answer-container'\n },\n baselineProps: {\n className: 'jfSingleSubmissionView-container'\n },\n lineProps: {\n className: 'jfSingleSubmissionView-line'\n },\n text,\n ...customProps\n };\n\n return (\n <div\n className=\"jfSingleSubmissionView-answer-row\"\n data-qid={qid}\n data-index={index}\n data-type={questionType}\n data-payment-type={paymentType}\n data-widget-id={widgetId}\n >\n <FieldComponent {...answerFieldProps} />\n </div>\n );\n};\n\nViewItem.propTypes = {\n itemQuestion: shape({}).isRequired,\n itemAnswer: shape({}).isRequired,\n index: number.isRequired\n};\n\nexport default ViewItem;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst SingleSubmissionViewHeader = ({ headerText, subHeaderText }) => {\n return (\n <div className=\"jfSingleSubmissionView-header\">\n <div className=\"jfSingleSubmissionView-header-title\">\n {headerText}\n </div>\n <div className=\"jfSingleSubmissionView-header-subtitle\">\n {subHeaderText}\n </div>\n </div>\n );\n};\n\nSingleSubmissionViewHeader.propTypes = {\n subHeaderText: string.isRequired,\n headerText: string.isRequired\n};\n\nexport default SingleSubmissionViewHeader;\n","import React from 'react';\nimport {\n shape, string, bool\n} from 'prop-types';\nimport sortBy from 'lodash/sortBy';\nimport { isQuestionAnswerEmpty } from '@jotforminc/answer-utils';\n\nimport ViewItem from './ViewItem';\nimport ViewHeader from './ViewHeader';\n\nimport { NON_INPUT_QUESTIONS, HEADER_TEXT_QUESTIONS } from '../constants';\n\nimport '../styles/index.scss';\n\nconst SingleSubmissionView = ({\n questions,\n submission,\n headerText,\n subHeaderText,\n hideHeaderAndText,\n hideEmptyFields\n}) => {\n const renderViewItems = () => {\n const filteredQuestions = Object.values(questions).filter(({ type }) => NON_INPUT_QUESTIONS.indexOf(type) === -1);\n const orderedQuestions = sortBy(filteredQuestions, [q => parseInt(q.order, 10)]);\n const { answers = {} } = submission;\n\n return orderedQuestions.map((question, i) => {\n const { qid, type } = question;\n const answer = answers[qid] || {};\n const { type: answerType, answer: submissionAnswer, selectedField } = answer;\n const isHeaderText = HEADER_TEXT_QUESTIONS.indexOf(type) > -1;\n const isEmptyFieldHidden = hideEmptyFields && !isHeaderText && isQuestionAnswerEmpty(answerType, submissionAnswer, selectedField);\n const isHeaderAndTextHidden = hideHeaderAndText && isHeaderText;\n\n if (isEmptyFieldHidden || isHeaderAndTextHidden) {\n return null;\n }\n\n return (\n <ViewItem\n key={`answer_item_${qid}`}\n index={i}\n itemAnswer={answer}\n itemQuestion={question}\n />\n );\n });\n };\n\n return (\n <div className=\"jfSingleSubmissionView-wrapper\">\n <div className=\"jfSingleSubmissionView-view\">\n {(headerText || subHeaderText) && (\n <ViewHeader\n headerText={headerText}\n subHeaderText={subHeaderText}\n />\n )}\n <div className=\"jfSingleSubmissionView-answers-wrapper\">\n {renderViewItems()}\n </div>\n </div>\n </div>\n );\n};\n\nSingleSubmissionView.defaultProps = {\n hideHeaderAndText: true,\n hideEmptyFields: true,\n submission: {},\n questions: {},\n subHeaderText: '',\n headerText: ''\n};\n\nSingleSubmissionView.propTypes = {\n questions: shape({}),\n submission: shape({}),\n hideHeaderAndText: bool,\n hideEmptyFields: bool,\n subHeaderText: string,\n headerText: string\n};\n\nexport default SingleSubmissionView;\n","import React, { useContext } from 'react';\nimport { string, bool } from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nimport IconModalClose from './assets/iconModalClose.svg';\nimport IconViewAllSubmission from './assets/iconViewAllSubmission.svg';\nimport IconViewNewSubmission from './assets/iconViewNewSubmission.svg';\nimport IconArrowLeft from './assets/arrow_left.svg';\nimport { SingleSubmissionButtonContext } from './context';\n\nconst FormName = ({\n formName,\n formID,\n submissionID,\n withBackButton\n}) => {\n const { setPanelOpen } = useContext(SingleSubmissionButtonContext);\n const handleClose = () => {\n setTimeout(() => {\n setPanelOpen?.(false);\n }, 500);\n document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n };\n\n return (\n <div className=\"jfSingleSubmissionView-standalone-header\">\n <div className=\"jfSingleSubmissionView-standalone-header-column forTitle\">\n <div className=\"jfSingleSubmissionView-standalone-header-column forIcon\">\n <IconViewNewSubmission\n className=\"jfSingleSubmissionView-standalone-header-icon-svg\"\n width=\"26\"\n height=\"32\"\n />\n </div>\n <div className=\"jfSingleSubmissionView-standalone-header-column forPrefix\">\n <div className=\"jfSingleSubmissionView-standalone-form-name\">\n <div className=\"jfSingleSubmissionView-standalone-form-name-text\">\n {formName}\n </div>\n <div\n className=\"jfSingleSubmissionView-standalone-form-name-icon\"\n onClick={() => window.open(`/inbox/${formID}/${submissionID}`, '_blank')}\n onKeyUp={null}\n >\n <div className=\"jfSingleSubmissionView-standalone-form-name-icon-tooltip\">\n {t('View all submissions')}\n </div>\n <IconViewAllSubmission\n className=\"jfSingleSubmissionView-standalone-form-name-icon-svg\"\n width=\"16\"\n viewBox=\"0 0 16 14\"\n />\n </div>\n </div>\n </div>\n </div>\n { withBackButton ? (\n (\n <div className=\"jfSingleSubmissionView-standalone-header-column forClose\">\n <button\n type=\"button\"\n className=\"jfSingleSubmissionView-standalone-close-button jfDialog-backButton\"\n onClick={handleClose}\n aria-label=\"Back button\"\n >\n <span className=\"backIcon\"><IconArrowLeft width=\"9\" height=\"15\" viewBox=\"0 0 9 15\" /></span>\n {t('Back')}\n </button>\n </div>\n )\n )\n : (\n <div className=\"jfSingleSubmissionView-standalone-header-column forClose\">\n <button\n type=\"button\" className=\"jfSingleSubmissionView-standalone-close-button jfDialog-closeButton\"\n onClick={handleClose}\n aria-label=\"Close dialog\"\n >\n <span className=\"closeIcon\"><IconModalClose /></span>\n </button>\n </div>\n )}\n </div>\n );\n};\n\nFormName.propTypes = {\n formName: string.isRequired,\n formID: string.isRequired,\n submissionID: string.isRequired,\n withBackButton: bool\n};\n\nFormName.defaultProps = {\n withBackButton: false\n};\n\nexport default FormName;\n","import { saveBlobAsFile } from '@jotforminc/utils';\nimport { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nexport const layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\nexport const fetchQuestions = formID => layer.get(`form/${formID}/questions`);\nexport const fetchSubmission = submissionID => layer.get(`submission/${submissionID}`);\nexport const fetchUser = () => layer.get('user/combinedinfo');\n\nexport const generatePDF = (formID, reportID, submissionID, username, filename, liteMode, isHIPAA) => layer.get(`generatePDF?type=PDFv2${liteMode\n ? '&liteMode=1' : ''}&formid=${formID}&submissionid=${submissionID}&pdfName=${filename}&username=${username}&useNew=1${reportID\n ? `&reportid=${reportID}` : '&inbox=1'}${isHIPAA ? '&hipaa=1' : ''}`, {\n responseType: isHIPAA ? 'arraybuffer' : 'json'\n}).then(response => {\n const { headers: responseHeaders } = response;\n if (responseHeaders['content-type'].indexOf('application/pdf') > -1) {\n saveBlobAsFile(new global.Blob([response.data], { type: 'application/pdf' }), `${submissionID}.pdf`);\n return null;\n }\n\n const { data: { content } = {} } = response;\n return content;\n});\n\nexport const fetchFormPdf = formID => layer.get(`form/${formID}/pdf`);\n","import React, { useEffect, useRef, useState } from 'react';\nimport { string } from 'prop-types';\nimport classNames from 'classnames';\nimport Tethered from 'react-tether';\nimport { t } from '@jotforminc/translation';\nimport { generateFileName } from '@jotforminc/answer-utils';\nimport IconPDF from './assets/icon_pdf.svg';\nimport IconDownload from './assets/icon_download.svg';\nimport {\n fetchQuestions, fetchUser, generatePDF, fetchFormPdf\n} from './helper';\nimport './jfSingleSubmissionView-standalone.scss';\n\nconst DownloadButton = ({ formID, submissionID }) => {\n const [isMenuVisible, setMenuVisibility] = useState(false);\n const [loading, setLoading] = useState(false);\n const [question, setQuestion] = useState();\n const [formPdfList, setPdfList] = useState([]);\n const [username, setUsername] = useState('');\n const menuRef = useRef();\n const buttonRef = useRef();\n\n useEffect(() => {\n if (formID) {\n const getSubmissionInfo = async () => {\n try {\n const questionRes = await fetchQuestions(formID);\n if (typeof questionRes === 'object') {\n setQuestion(questionRes);\n }\n } catch (e) {\n setQuestion([]);\n console.log('error', e);\n }\n };\n getSubmissionInfo();\n }\n }, [formID]);\n\n const requestGeneratePDF = (title, id) => {\n let generatePromise;\n if (title && id) {\n generatePromise = generatePDF(formID, id, submissionID, username, title, false, false);\n } else {\n generatePromise = generatePDF(formID, '', submissionID, username, generateFileName(Object.values(question)), false, false);\n }\n setLoading(true);\n generatePromise.then(url => {\n if (url) window.location.href = url;\n setLoading(false);\n });\n setMenuVisibility(false);\n };\n\n const renderDownloadPDFMenu = () => {\n return (\n <Tethered\n ref={menuRef}\n style={{\n zIndex: 200,\n display: `${isMenuVisible ? 'block' : 'none'}`, // stylelint-disable-line\n pointerEvents: `${isMenuVisible ? 'auto' : 'none'}` // stylelint-disable-line\n }}\n targetAttachment='bottom right'\n attachment='top right'\n constraints={[{\n to: 'window',\n attachment: 'together',\n pin: true\n }]}\n >\n <div ref={menuRef} className={classNames('jfMenu', { isVisible: true })} style={{ background: 'white' }}>\n {formPdfList.map(({ id, title }) => (\n <div>\n <button\n className=\"jfSingleSubmissionView-standalone-button showMore\" type='button'\n onMouseLeave={() => setMenuVisibility(false)}\n onClick={() => {\n requestGeneratePDF(id, title);\n }}\n >\n <div className=\"forIcon\">\n <IconPDF width=\"16\" height=\"15\" />\n </div>\n {title}\n </button>\n </div>\n\n ))}\n <button\n className=\"jfSingleSubmissionView-standalone-button showMore\" type='button'\n onMouseLeave={() => setMenuVisibility(false)}\n onClick={() => {\n requestGeneratePDF();\n }}\n >\n <div className=\"forIcon\">\n <IconPDF width=\"16\" height=\"15\" />\n </div>\n Default PDF\n </button>\n </div>\n </Tethered>\n );\n };\n\n const onDownloadClick = async () => {\n const userResponse = await fetchUser();\n const formPdfResponse = await fetchFormPdf(formID);\n const noPdfTemplate = formPdfResponse.length < 1;\n if (!noPdfTemplate) {\n setPdfList(formPdfResponse);\n setUsername(userResponse?.credentials?.username);\n setMenuVisibility(true);\n return;\n }\n if (userResponse?.credentials?.username) {\n requestGeneratePDF();\n }\n };\n\n return (\n <>\n <button\n ref={buttonRef}\n type=\"button\"\n className={classNames(\n 'jfSingleSubmissionView-standalone-button forDownload',\n {\n isLoading: loading\n }\n )}\n onClick={() => onDownloadClick()}\n >\n <div className=\"forIcon\">\n <IconDownload width=\"14\" height=\"16\" />\n </div>\n <div className=\"forText\">\n {t('Download')}\n </div>\n </button>\n {isMenuVisible && renderDownloadPDFMenu()}\n\n </>\n );\n};\n\nDownloadButton.propTypes = {\n formID: string,\n submissionID: string\n};\n\nDownloadButton.defaultProps = {\n formID: '',\n submissionID: ''\n};\n\nexport default DownloadButton;\n","import React from 'react';\nimport { string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport IconInboxNavigator from './assets/iconInboxNavigator.svg';\nimport './jfSingleSubmissionView-standalone.scss';\n\nconst ViewInInboxButton = ({ formID, submissionID }) => {\n return (\n <button\n type=\"button\"\n className=\"jfSingleSubmissionView-standalone-button forInbox\"\n onClick={() => handleCustomNavigation(`/inbox/${formID}/${submissionID}`, '_blank')}\n >\n <div className=\"forIcon\">\n <IconInboxNavigator width=\"16\" height=\"15\" />\n </div>\n <div className=\"forText\">\n {t('View In Inbox')}\n </div>\n </button>\n );\n};\n\nViewInInboxButton.propTypes = {\n formID: string,\n submissionID: string\n};\n\nViewInInboxButton.defaultProps = {\n formID: '',\n submissionID: ''\n};\n\nexport default ViewInInboxButton;\n","import React, { useContext } from 'react';\nimport { string, bool } from 'prop-types';\nimport { IconTaskFilled } from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport IconModalClose from './assets/iconModalClose.svg';\nimport IconArrowLeft from './assets/arrow_left.svg';\nimport { SingleSubmissionButtonContext } from './context';\n\nconst CustomName = ({\n name,\n withBackButton,\n customIconValue\n}) => {\n const { setPanelOpen } = useContext(SingleSubmissionButtonContext);\n const handleClose = () => {\n setTimeout(() => {\n setPanelOpen?.(false);\n }, 500);\n document.body.classList.remove('jfSingleSubmissionView-standalone-isVisible');\n };\n\n const customIconMapping = {\n ASSIGN_TASK_COMPLETE: <IconTaskFilled />\n };\n\n return (\n <div className=\"jfSingleSubmissionView-standalone-header\">\n <div className=\"jfSingleSubmissionView-standalone-header-column forTitle\">\n <div className=\"jfSingleSubmissionView-standalone-header-column forIcon\">\n {customIconMapping?.[customIconValue]}\n </div>\n <div className=\"jfSingleSubmissionView-standalone-header-column forPrefix\">\n <div className=\"jfSingleSubmissionView-standalone-form-name\">\n <div className=\"jfSingleSubmissionView-standalone-form-name-text\">\n {name}\n </div>\n </div>\n </div>\n </div>\n { withBackButton ? (\n (\n <div className=\"jfSingleSubmissionView-standalone-header-column forClose\">\n <button\n type=\"button\"\n className=\"jfSingleSubmissionView-standalone-close-button jfDialog-backButton\"\n onClick={handleClose}\n aria-label=\"Back button\"\n >\n <span className=\"backIcon\"><IconArrowLeft width=\"9\" height=\"15\" viewBox=\"0 0 9 15\" /></span>\n {t('Back')}\n </button>\n </div>\n )\n )\n : (\n <div className=\"jfSingleSubmissionView-standalone-header-column forClose\">\n <button\n type=\"button\" className=\"jfSingleSubmissionView-standalone-close-button jfDialog-closeButton\"\n onClick={handleClose}\n aria-label=\"Close dialog\"\n >\n <span className=\"closeIcon\"><IconModalClose /></span>\n </button>\n </div>\n )}\n </div>\n );\n};\n\nCustomName.propTypes = {\n name: string.isRequired,\n customIconValue: string,\n withBackButton: bool\n};\n\nCustomName.defaultProps = {\n withBackButton: false,\n customIconValue: null\n};\n\nexport default CustomName;\n","import React from 'react';\nimport { shape, string, bool } from 'prop-types';\nimport { SingleSubmissionView } from '@jotforminc/singlesubmissionview';\nimport { useMomentDate } from '@jotforminc/hooks';\nimport FormName from './FormName';\nimport IconPrint from './assets/iconPrint.svg';\nimport DownloadButton from './DownloadButton';\nimport ViewInInboxButton from './ViewInInboxButton';\nimport './jfSingleSubmissionView-standalone.scss';\nimport CustomName from './CustomName';\n\nconst SingleSubmissionViewWithButton = ({\n subHeaderText: modifyDate,\n formName,\n formID,\n submissionID,\n headerText,\n hideHeaderAndText,\n hideEmptyFields,\n question,\n submission,\n showSubmissionWithHeader: {\n showFormName, showInboxNavigator, showDownloadButton, showPrintButton, showCustomName\n },\n customIconValue,\n withBackButton\n}) => {\n const [dateObj] = useMomentDate(modifyDate, 'YYYY-MM-DD HH:mm');\n const date = dateObj.format('MMM DD, YYYY');\n\n const onPrintClick = () => {\n global.window.print();\n };\n\n const renderButtons = () => {\n return (\n <div className=\"jfSingleSubmissionView-standalone-toolbar\">\n <div className=\"jfSingleSubmissionView-standalone-toolbar-column isLeftColumn\">\n {showInboxNavigator && (\n <ViewInInboxButton\n formID={formID}\n submissionID={submissionID}\n />\n )}\n {showDownloadButton && (\n <DownloadButton\n formID={formID}\n submissionID={submissionID}\n />\n )}\n </div>\n <div className=\"jfSingleSubmissionView-standalone-toolbar-column isRightColumn\">\n {showPrintButton && (\n <button\n type=\"button\"\n className=\"jfSingleSubmissionView-standalone-button forPrint\"\n onClick={() => onPrintClick()}\n >\n <div className=\"forIcon\">\n <IconPrint width=\"15\" height=\"15\" />\n </div>\n </button>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <>\n { question && submission\n && (\n <>\n {showFormName && (\n <FormName\n formName={formName}\n formID={formID}\n submissionID={submissionID}\n withBackButton={withBackButton}\n />\n )}\n {\n showCustomName && (\n <CustomName\n name={formName}\n withBackButton={withBackButton}\n customIconValue={customIconValue}\n />\n )\n }\n {(showInboxNavigator || showDownloadButton || showPrintButton) && renderButtons()}\n <div className=\"jfSingleSubmissionView-wrapper\">\n <div className=\"jfSingleSubmissionView-view\">\n <SingleSubmissionView\n questions={question}\n headerText={headerText}\n submission={submission}\n hideEmptyFields={hideEmptyFields}\n subHeaderText={`Updated at ${date}`}\n hideHeaderAndText={hideHeaderAndText}\n />\n </div>\n </div>\n </>\n )}\n </>\n );\n};\n\nSingleSubmissionViewWithButton.defaultProps = {\n hideHeaderAndText: true,\n hideEmptyFields: true,\n showSubmissionWithHeader: {\n showFormName: false,\n showInboxNavigator: false,\n showDownloadButton: false,\n showPrintButton: false,\n showCustomName: false\n },\n formName: '',\n headerText: '',\n formID: null,\n submissionID: null,\n question: {},\n submission: {},\n withBackButton: false,\n customIconValue: string\n};\n\nSingleSubmissionViewWithButton.propTypes = {\n showSubmissionWithHeader: shape({}),\n question: shape({}),\n submission: shape({}),\n headerText: string,\n subHeaderText: string.isRequired,\n formName: string,\n formID: string,\n submissionID: string,\n hideHeaderAndText: bool,\n hideEmptyFields: bool,\n withBackButton: bool,\n customIconValue: null\n};\n\nexport default SingleSubmissionViewWithButton;\n","import { WORKFLOW_SYSTEM_OUTCOMES } from '../constants/systemOutcomes';\n\nexport const getOutcomeByID = (outcomeID, outcomes) => {\n if (WORKFLOW_SYSTEM_OUTCOMES[outcomeID] > -1) {\n return { outcomeID };\n }\n\n return (outcomes.find(({ outcomeID: tempOutcomeID }) => parseInt(tempOutcomeID, 10) === parseInt(outcomeID, 10)) || {});\n};\n\nexport const isOutcomeBelongsToSystem = outcomeID => {\n return !!WORKFLOW_SYSTEM_OUTCOMES[outcomeID];\n};\n\nexport const isWorkflowSystemUser = username => {\n return username === '!workflow_system';\n};\n\nexport const didActiveSubmissionChange = submissionID => (window && window.activeSubmissionID && window.activeSubmissionID !== submissionID);\n\nexport const stripHTML = string => {\n if (\n string.indexOf\n && (string.indexOf('<') !== -1 || string.indexOf('>') !== -1)\n ) {\n const tmp = document.createElement('DIV');\n tmp.innerHTML = string;\n return tmp.textContent || tmp.innerText || string;\n }\n return string;\n};\n\nexport const decodeHTML = html => {\n const txt = document.createElement('textarea');\n txt.innerHTML = html;\n return txt.value;\n};\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\nimport { string, number } from 'prop-types';\n\nconst ApprovalOptions = ({\n option, value, subType, type\n}) => {\n const approvalOptionValues = {\n workflow_approval: {\n amount: t(`${value} response${value > 1 ? 's' : ''} completes the approval`),\n first: t('Require response from one person'),\n all: t('Require response from all'),\n majority: t('Require response from majority')\n },\n workflow_approval_with_sign: {\n amount: t(`${value} response${value > 1 ? 's' : ''} completes the approval`),\n first: t('Require response from one person'),\n all: t('Require response from all'),\n majority: t('Require response from majority')\n },\n workflow_team_approval: {\n amount: t(`${value} response${value > 1 ? 's' : ''} completes the approval`),\n first: t('Require response from one person'),\n all: t('Require response from all'),\n majority: t('Require response from majority')\n }\n };\n\n return (\n <span>\n {approvalOptionValues?.[subType || type]?.[option]}\n </span>\n );\n};\n\nApprovalOptions.defaultProps = {\n option: '',\n value: null,\n type: '',\n subType: ''\n};\n\nApprovalOptions.propTypes = {\n option: string,\n value: number,\n type: string,\n subType: string\n};\n\nexport default ApprovalOptions;\n","import React from 'react';\nimport {\n bool,\n elementType,\n node,\n string,\n oneOf,\n oneOfType,\n func,\n shape\n} from 'prop-types';\nimport classNames from 'classnames';\n\nimport '../styles/_jfTooltip.scss';\n\nconst VerticalAttachments = ['Left', 'Right'];\nconst HorizontalAttachments = ['Top', 'Bottom'];\n\n/**\n * Displays a tooltip\n */\nexport class Tooltip extends React.Component {\n get wrapperClassNames() {\n const {\n animated,\n wrapperClassName\n } = this.props;\n\n return classNames(\n 'jfTooltip-wrapper',\n wrapperClassName,\n {\n withAnimation: animated\n }\n );\n }\n\n get containerClassNames() {\n const {\n align,\n attach\n } = this.props;\n\n return classNames('jfTooltip-container', align ? `align${align}` : null, attach ? `attach${attach}` : null);\n }\n\n get classNames() {\n const {\n icon\n } = this.props;\n\n return classNames('jfTooltip', { hasIcon: icon });\n }\n\n get stateClassNames() {\n const {\n isVisible,\n allowHover,\n noWrap,\n align,\n attach,\n renderInContainer\n } = this.props;\n\n return classNames(\n {\n isVisible,\n isInContainer: renderInContainer,\n tooltipAllowHover: allowHover,\n tooltipNoWrap: noWrap\n },\n align ? `tooltipAlign${align}` : null,\n attach ? `tooltipAttach${attach}` : null\n );\n }\n\n renderIcon() {\n const {\n icon\n } = this.props;\n return icon ? <div className=\"jfTooltip-icon\">{icon}</div> : null;\n }\n\n renderV1() {\n const {\n text,\n onClick,\n backgroundColor,\n color,\n children,\n customProps\n } = this.props;\n\n return (text || children) ? (\n <div\n className={this.wrapperClassNames}\n onClick={onClick}\n onKeyUp={onClick}\n tabIndex=\"-1\"\n {...customProps}\n >\n <div className={this.containerClassNames}>\n <div className={this.classNames} style={{ backgroundColor }}>\n {this.renderIcon()}\n <div className=\"jfTooltip-text\" style={{ color }}>{children || text}</div>\n </div>\n </div>\n <div className=\"jfTooltip-arrow\" style={{ borderColor: backgroundColor ? `transparent transparent ${backgroundColor} ${backgroundColor}` : null }} />\n </div>\n ) : null;\n }\n\n renderV2() {\n const {\n v2,\n animated,\n className,\n backgroundColor,\n wrapperClassName,\n isVisible,\n children,\n align,\n attach,\n customProps,\n style,\n allowHover,\n hideArrow,\n tooltipDistance,\n tooltipArrowDistance,\n noWrap,\n ...props\n } = this.props;\n\n const isVertical = VerticalAttachments.indexOf(attach) >= 0;\n\n return children ? (\n <div\n className={classNames('jfTooltipNew', className, this.stateClassNames)}\n style={{\n '--tooltipDistance': tooltipDistance,\n '--tooltipArrowDistance': tooltipArrowDistance\n }}\n {...props}\n >\n <div className={classNames('jfTooltipNew-arrow', { isHidden: hideArrow })}>\n <svg\n className=\"jfTooltipNew-arrow-svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...(isVertical ? {\n width: '7',\n height: '16',\n viewBox: '0 0 7 16'\n } : {\n width: '16',\n height: '7',\n viewBox: '0 0 16 7'\n })}\n fill=\"none\"\n >\n <path fill={style?.backgroundColor || 'currentColor'} d={isVertical ? 'M0 8l7-8v16L0 8z' : 'M8 0l8 7H0l8-7z'} />\n </svg>\n </div>\n <div className=\"jfTooltipNew-body\" style={style}>\n {children}\n </div>\n </div>\n ) : null;\n }\n\n render() {\n const { v2 } = this.props;\n return !v2 ? this.renderV1() : this.renderV2();\n }\n}\n\nTooltip.propTypes = {\n v2: bool,\n className: string,\n children: node,\n icon: oneOfType([\n elementType,\n node\n ]),\n text: string,\n align: oneOf(['Left', 'Center', 'Right', 'Start', 'End']),\n attach: oneOf([...VerticalAttachments, ...HorizontalAttachments]),\n animated: bool,\n onClick: func,\n wrapperClassName: string,\n backgroundColor: string,\n color: string,\n isVisible: bool,\n allowHover: bool,\n hideArrow: bool,\n noWrap: bool,\n renderInContainer: bool,\n tooltipDistance: string,\n tooltipArrowDistance: string,\n style: shape({}),\n customProps: shape({})\n};\n\nTooltip.defaultProps = {\n v2: false,\n className: null,\n children: null,\n icon: null,\n text: null,\n align: 'Center',\n attach: 'Top',\n animated: false,\n onClick: f => f,\n wrapperClassName: null,\n backgroundColor: null,\n color: null,\n isVisible: false,\n allowHover: false,\n hideArrow: false,\n noWrap: false,\n renderInContainer: false,\n tooltipDistance: null,\n tooltipArrowDistance: null,\n style: {},\n customProps: {}\n};\n","import React from 'react';\nimport {\n number,\n shape,\n string,\n node\n} from 'prop-types';\nimport classNames from 'classnames';\n\nconst SingleAvatar = ({\n user: {\n name = '',\n email = '',\n avatarUrl = ''\n },\n className,\n containerClassName,\n shortNameMaxChars,\n children,\n containerProps,\n ...props\n}) => {\n const isDefaultAvatar = avatarUrl === '' || avatarUrl?.includes('Podo-Guest');\n const shortName = (name || email || '').slice(0, shortNameMaxChars).toUpperCase();\n\n const avatarItem = (\n <div\n className={classNames('jfAvatarGroup-item', { isDefaultAvatar }, className)}\n {...props}\n >\n {isDefaultAvatar ? shortName : <img className=\"jfAvatarGroup-image\" src={avatarUrl} alt=\"User Avatar\" />}\n </div>\n );\n\n const renderContent = children ? (\n <div className={classNames('jfAvatarGroup-item-container', containerClassName)} {...containerProps}>\n <div className=\"jfAvatarGroup-item-column forAvatar\">\n {avatarItem}\n </div>\n <div className=\"jfAvatarGroup-item-column forChildren\">\n {children}\n </div>\n </div>\n ) : avatarItem;\n\n return (\n avatarUrl || isDefaultAvatar || email ? renderContent : null\n );\n};\n\nSingleAvatar.propTypes = {\n user: shape({}).isRequired,\n className: string,\n containerProps: shape({}),\n containerClassName: string,\n shortNameMaxChars: number,\n children: node\n};\n\nSingleAvatar.defaultProps = {\n className: null,\n containerProps: {},\n containerClassName: null,\n shortNameMaxChars: 2,\n children: null\n};\n\nexport default SingleAvatar;\n","import React from 'react';\nimport { node, shape, string } from 'prop-types';\nimport { Tooltip } from '@jotforminc/tooltip';\nimport { t } from '@jotforminc/translation';\nimport SingleAvatar from './SingleAvatar';\nimport '../styles/SingleAvatarWithDetails.scss';\n\nconst SingleAvatarWithDetails = ({\n name,\n email,\n avatarUrl,\n status,\n comment,\n signature,\n date,\n outcomeColor,\n menu,\n contentText,\n children\n}) => {\n const { text, type } = status;\n const userName = name || email;\n const isWaitingType = type === 'WAITING';\n const isNotRequiredType = type === 'NOTREQUIRED';\n const isCreatorType = type === 'CREATOR';\n\n return (\n <div className={['jfSingleAvatarWithDetails', `is--${type}`].filter(Boolean).join(' ')} style={{ '--outcome-color': outcomeColor }}>\n <SingleAvatar\n user={{\n name,\n email,\n avatarUrl\n }}\n className=\"forApproval\"\n >\n <div className=\"jfAvatarGroup-user\">\n <div className=\"jfAvatarGroup-user-row forTitle\">\n <div className=\"jfAvatarGroup-user-column forUser\" title={email}>\n {userName}\n </div>\n <div className=\"jfAvatarGroup-user-column forMenu\">\n {menu}\n </div>\n </div>\n <div className=\"jfAvatarGroup-user-row forInfo\">\n <div className=\"jfAvatarGroup-user-column forStatus\">\n <span className=\"isStatus jfTooltipNew-hoverTarget\">\n {text}\n {isCreatorType && (\n <Tooltip\n v2\n className=\"isCreator-tooltip\"\n align=\"Start\"\n attach=\"Top\"\n >\n {t('Creator roles are not involved in the approval process.')}\n </Tooltip>\n )}\n </span>\n {contentText?.length ? (\n <>\n {' '}\n <span className=\"isInfo\">{contentText}</span>\n </>\n ) : null}\n\n {date && !isWaitingType && !isNotRequiredType && !isCreatorType ? (\n <span className=\"isDate\">\n {' at '}\n {date.format('MMM DD, yyyy h:mm A')}\n </span>\n ) : null}\n </div>\n </div>\n </div>\n </SingleAvatar>\n {comment ? (\n <div className=\"jfAvatarGroup-user-comment\">\n {comment}\n </div>\n ) : null}\n {signature ? (\n <div className=\"jfAvatarGroup-user-signature\">\n <img src={signature} alt={`${userName}'s signature`} className=\"jfAvatarGroup-user-signature-img\" />\n </div>\n ) : null}\n {children}\n </div>\n );\n};\n\nSingleAvatarWithDetails.propTypes = {\n name: string,\n email: string,\n avatarUrl: string,\n status: shape({}),\n comment: string,\n signature: string,\n date: string,\n outcomeColor: string,\n children: node,\n menu: node,\n contentText: string\n};\n\nSingleAvatarWithDetails.defaultProps = {\n name: null,\n email: null,\n avatarUrl: null,\n status: {},\n comment: null,\n signature: null,\n date: null,\n outcomeColor: null,\n children: null,\n menu: null,\n contentText: null\n};\n\nexport default SingleAvatarWithDetails;\n","import {\n arrayOf,\n shape,\n string,\n node\n} from 'prop-types';\nimport React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport SingleAvatar from './SingleAvatar';\nimport '../styles/jfAvatarGroup.scss';\n\nconst AvatarGroup = ({ className, children, items }) => {\n const renderAvatarList = useMemo(() => {\n return items.map(({\n name = '',\n email = '',\n avatarUrl = '',\n itemClassName = null,\n itemWrapperClassName = null,\n itemContainerClassName = null,\n children: singleAvatarChildren = null,\n ...props\n }) => {\n return (\n <div className={['jfAvatarGroup-item-wrapper', itemWrapperClassName].filter(Boolean).join(' ')}>\n <SingleAvatar\n className={itemClassName}\n containerClassName={itemContainerClassName}\n key={email}\n user={{ name, email, avatarUrl }}\n {...props}\n >\n {singleAvatarChildren}\n </SingleAvatar>\n </div>\n );\n });\n }, [items]);\n\n return (\n <div className={classNames('jfAvatarGroup', className)}>\n {renderAvatarList}\n {children}\n </div>\n );\n};\n\nAvatarGroup.propTypes = {\n className: string,\n children: node,\n items: arrayOf(shape({\n name: string,\n email: string,\n avatarUrl: string,\n itemClassName: string,\n itemContainerClassName: string,\n children: node\n }))\n};\n\nAvatarGroup.defaultProps = {\n className: null,\n children: null,\n items: []\n};\n\nexport default AvatarGroup;\n","import React, {\n forwardRef, useRef, useEffect, useState, useMemo\n} from 'react';\nimport {\n node, shape, bool, string, func\n} from 'prop-types';\nimport { createPopper } from '@popperjs/core';\n\nimport Portal from '../Portal';\n\nimport { useCombinedRefs } from '../../utils/hooks';\n\nconst Popover = forwardRef(({\n style,\n children,\n usePortal,\n popoverOptions,\n targetRef: { current },\n portalContainerSelector,\n onPlacementChange,\n useMemoizedPopper,\n dontUpdate = false,\n ...props\n}, ref) => {\n if (!current) {\n return null;\n }\n\n // States\n const [popperInstance, setPopperInstance] = useState(false);\n\n // detect placement changings\n useEffect(() => {\n onPlacementChange(popperInstance?.state?.placement);\n }, [popperInstance?.state, popperInstance?.state?.placement]);\n\n // Refs\n const innerRef = useRef();\n const rootRef = useCombinedRefs(ref, innerRef);\n\n const memoizedPopperInstance = useMemo(() => (\n useMemoizedPopper && current && rootRef.current ? createPopper(current, rootRef.current, popoverOptions) : null\n ), [rootRef.current, current, useMemoizedPopper]);\n\n useEffect(() => {\n if (rootRef.current && current) {\n setPopperInstance((useMemoizedPopper && memoizedPopperInstance) ? memoizedPopperInstance : createPopper(current, rootRef.current, popoverOptions));\n }\n\n function handleOrientation() {\n popperInstance.update();\n }\n\n if (window.screen.orientation) {\n window.screen.orientation.addEventListener('change', handleOrientation);\n }\n\n if (popperInstance && !dontUpdate) {\n popperInstance.update();\n }\n\n return () => {\n if (window.screen.orientation) {\n window.screen.orientation.removeEventListener('change', handleOrientation);\n }\n if (popperInstance) popperInstance.destroy();\n };\n }, [rootRef.current, current]);\n\n useEffect(() => {\n if (popperInstance) {\n popperInstance.setOptions(popoverOptions);\n }\n }, [popoverOptions]);\n\n return (\n <Portal usePortal={usePortal} containerSelector={portalContainerSelector}>\n <div {...props} ref={rootRef} style={popperInstance ? style : { display: 'none' }}>\n {popperInstance && children}\n </div>\n </Portal>\n );\n});\n\nPopover.propTypes = {\n usePortal: bool,\n children: node,\n targetRef: shape({}),\n popoverOptions: shape({}),\n style: shape({}),\n portalContainerSelector: string,\n onPlacementChange: func,\n useMemoizedPopper: bool,\n dontUpdate: bool\n};\n\nPopover.defaultProps = {\n usePortal: false,\n targetRef: { current: null },\n popoverOptions: {},\n style: {},\n children: null,\n portalContainerSelector: undefined,\n onPlacementChange: f => f,\n useMemoizedPopper: false,\n dontUpdate: false\n};\n\nexport default Popover;\n","import React from 'react';\nimport {\n arrayOf, shape, string, node\n} from 'prop-types';\nimport { AvatarGroup, SingleAvatarWithDetails } from '@jotforminc/avatar-groups';\nimport { useHover } from '@jotforminc/hooks';\nimport { Popover } from '@jotforminc/uikit';\nimport '../styles/AvatarGroupWithContact.scss';\nimport { defaultAvatarValues, getDateValue } from '../utils/helper';\n\nconst AvatarGroupWithContact = ({ items, children }) => {\n const filteredItems = items.filter(({ properties: { notQualifiedReason = null }, status: subtaskStatus }) => {\n return subtaskStatus !== 'CANCELED' && (!notQualifiedReason || notQualifiedReason !== 'CREATOR_ROLE');\n });\n const newAvatar = filteredItems.map(item => {\n const {\n name,\n email,\n avatarUrl,\n comment = null,\n signature = null,\n updated_at: updatedAt,\n timestamp,\n user = [],\n properties: {\n outcomeInfo, notRequired, contentText, takenOver\n }\n } = item;\n\n const date = getDateValue(timestamp, updatedAt);\n const { buttonColor, type, text } = defaultAvatarValues(outcomeInfo, notRequired) || {};\n const userValue = name || email;\n const isTakenOver = takenOver && user && !Array.isArray(user);\n const contentTextForUser = takenOver ? `on behalf of ${userValue}` : '';\n const userNameValue = isTakenOver ? (user?.name || user?.username || user?.email) : name;\n const userEmailValue = isTakenOver ? user?.email : email;\n const userAvatarValue = isTakenOver ? user?.avatarUrl : avatarUrl;\n\n const [hoverRef, isHovered] = useHover(250);\n\n return {\n children: (\n <>\n <div className=\"jfContact-popover-target\" ref={hoverRef} />\n {(isHovered) && (\n <Popover\n className=\"jfContact-popover forSingleAvatar\"\n targetRef={hoverRef}\n usePortal={false}\n popoverOptions={{\n placement: 'top',\n modifiers: [{\n name: 'offset',\n options: {\n offset: [0, 4]\n }\n }]\n }}\n >\n <SingleAvatarWithDetails\n name={userNameValue}\n email={userEmailValue}\n avatarUrl={userAvatarValue}\n outcomeColor={buttonColor}\n status={{ type, text }}\n comment={comment}\n signature={signature}\n date={date}\n contentText={contentText || contentTextForUser}\n />\n </Popover>\n )}\n </>\n ),\n itemWrapperClassName: `jfContact-popover-container is--${type}`,\n itemClassName: 'forApproval',\n style: { '--outcome-color': buttonColor },\n ...item\n };\n });\n\n return (\n <AvatarGroup\n items={newAvatar}\n className=\"forWithContact\"\n >\n {children}\n </AvatarGroup>\n );\n};\n\nAvatarGroupWithContact.propTypes = {\n children: node,\n items: arrayOf(shape({\n name: string,\n email: string,\n avatarUrl: string,\n itemClassName: string,\n itemWrapperClassName: string,\n children: node\n }))\n};\n\nAvatarGroupWithContact.defaultProps = {\n children: null,\n items: []\n};\n\nexport default AvatarGroupWithContact;\n","import React, {\n forwardRef, useRef, FunctionComponent\n} from 'react';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport classNames from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport { Hooks } from '@jotforminc/uikit';\nimport { HeaderProps, RightPanelPropType } from './types';\nimport './styles/RightPanel.scss';\n\nconst PanelHeader: FunctionComponent<HeaderProps> = ({ title, onClick, headerIcon }: HeaderProps): JSX.Element => (\n <div className=\"jfRightPanel-header\">\n <div className=\"jfRightPanel-title\">\n {headerIcon}\n {title}\n </div>\n <button\n className=\"jfRightPanel-close\"\n onClick={onClick}\n type=\"button\"\n aria-label={t('Close')}\n >\n <IconXmark />\n </button>\n </div>\n);\n\nconst RightPanel = forwardRef<FunctionComponent, RightPanelPropType>((props, ref): JSX.Element => {\n const {\n isVisible,\n asideClass,\n wrapperClass,\n bodyClass,\n onClose,\n RightPanelHeader,\n panelTitle,\n clickableRefList,\n appName,\n isPanelHeaderHidden,\n closeOnClickOutside,\n theme,\n headerIcon,\n children,\n CustomPanelHeader,\n ...otherProps\n } = props;\n const innerRef = useRef();\n const panelRef = Hooks.useCombinedRefs(innerRef, ref);\n Hooks.useClickOutsideStateWithCallback({\n refs: clickableRefList ? [...clickableRefList, panelRef] : [panelRef],\n callback: closeOnClickOutside ? onClose : null\n });\n return (\n <aside\n ref={panelRef}\n className={classNames(\n 'jfRightPanel',\n asideClass,\n { isPanelVisible: isVisible },\n { [`for${appName}`]: appName },\n theme\n )}\n {...otherProps}\n >\n <div className={classNames('jfRightPanel-wrapper', wrapperClass)}>\n {!isPanelHeaderHidden\n ? RightPanelHeader && <RightPanelHeader title={panelTitle} onClick={() => onClose()} headerIcon={headerIcon} />\n : CustomPanelHeader && <CustomPanelHeader />}\n <div className={classNames('jfRightPanel-body', bodyClass)}>\n {children}\n </div>\n </div>\n </aside>\n );\n});\n\nRightPanel.defaultProps = {\n isVisible: false,\n asideClass: '',\n wrapperClass: '',\n bodyClass: '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClose: () => {},\n RightPanelHeader: PanelHeader,\n panelTitle: '',\n clickableRefList: [],\n appName: '',\n isPanelHeaderHidden: false,\n closeOnClickOutside: true,\n headerIcon: null,\n theme: '',\n children: null,\n CustomPanelHeader: null\n};\n\nexport default RightPanel;\n","import React, { useState } from 'react';\nimport { string, node, bool } from 'prop-types';\nimport { IconChevronDown } from '@jotforminc/svg-icons';\nimport './styles/jfCollapse.scss';\n\nconst Collapse = ({\n className, buttonTitle, children, initialState\n}) => {\n const [isCollapsed, setCollapsed] = useState(initialState);\n\n const toggle = () => {\n setCollapsed(c => !c);\n };\n return (\n <div className={['jfCollapse', isCollapsed ? 'isCollapsed' : null, className].filter(Boolean).join(' ')}>\n <button className=\"jfCollapse-button\" type='button' onClick={toggle}>\n {buttonTitle}\n <IconChevronDown className=\"jfCollapse-button-svg\" width='16px' />\n </button>\n {!isCollapsed && (\n <div className=\"jfCollapse-children\">\n {children}\n </div>\n )}\n </div>\n );\n};\n\nCollapse.propTypes = {\n className: string,\n buttonTitle: string,\n children: node,\n initialState: bool\n};\n\nCollapse.defaultProps = {\n className: null,\n buttonTitle: '',\n children: null,\n initialState: true\n};\n\nexport default Collapse;\n","import React, {\n forwardRef, useImperativeHandle, useRef, useState, useEffect\n} from 'react';\nimport {\n bool, node, elementType, string, shape, func, arrayOf, oneOfType, any\n} from 'prop-types';\nimport KeyboardJS from 'keyboardjs';\nimport { nodeContains } from '@jotforminc/utils';\n\nimport Portal from '../Portal';\n\nimport { useContinueFocus, useEffectIgnoreFirst } from '../../utils/hooks';\nimport { generateShortID } from '../../utils';\n\nconst Modal = forwardRef(({\n children,\n defaultVisible,\n usePortal,\n portalContainerSelector,\n initialPortalSelector,\n closeOnOutsideClick,\n DialogRenderer,\n HeaderRenderer,\n ContentRenderer,\n FooterRenderer,\n reffedDivProps,\n onModalClose,\n closeOnEscPress,\n exceptionalSelectorList,\n autoFocus,\n currentActiveElementRef,\n t,\n ariaLabel\n}, ref) => {\n // Refs\n const portalRef = useRef();\n\n let selector = \"[data-uikit-modal-container='true'],[data-uikitgeneratedportalcontainer='true']\";\n\n if (closeOnOutsideClick && exceptionalSelectorList.length > 0) {\n const additionalSelector = exceptionalSelectorList.join(',');\n selector = `${selector},${additionalSelector}`;\n }\n // States\n const [isVisible, setVisibility] = useState(defaultVisible);\n const hideMenu = event => {\n const containerList = global.document.querySelectorAll(selector);\n const isContained = [...containerList].find(container => nodeContains(container, event.target));\n if (!isContained) {\n setVisibility(false);\n }\n };\n const contentRef = autoFocus ? useContinueFocus(isVisible, currentActiveElementRef) : useRef();\n const hide = () => setVisibility(false);\n const show = () => setVisibility(true);\n const toggleVisibility = () => setVisibility(!isVisible);\n useImperativeHandle(ref, () => ({\n ...portalRef.current,\n hide,\n show,\n toggleVisibility,\n isVisible,\n contentRef\n }));\n\n useEffect(() => {\n if (closeOnOutsideClick) {\n global.window.addEventListener('mouseup', hideMenu);\n return () => global.window.removeEventListener('mouseup', hideMenu);\n }\n }, [selector]);\n\n useEffect(() => {\n if (closeOnEscPress) {\n if (isVisible) {\n KeyboardJS.bind('esc', hide);\n } else {\n KeyboardJS.unbind('esc', hide);\n }\n }\n return () => KeyboardJS.unbind('esc', hide);\n }, [closeOnEscPress, isVisible]);\n\n useEffectIgnoreFirst(() => {\n if (!isVisible) {\n onModalClose();\n }\n }, [isVisible]);\n\n const headerTitleId = useRef(generateShortID()).current;\n const headerSubTitleId = useRef(generateShortID()).current;\n\n return (\n <Portal\n ref={portalRef}\n usePortal={usePortal}\n portalAttribute=\"data-uikit-modal-wrapper\"\n containerSelector={portalContainerSelector}\n initialPortalSelector={initialPortalSelector}\n >\n {isVisible && (\n <DialogRenderer>\n <div\n ref={contentRef}\n {...reffedDivProps}\n role=\"dialog\"\n aria-modal=\"true\"\n data-uikit-modal-container\n {...(!ariaLabel ? {\n 'aria-labelledby': headerTitleId,\n 'aria-describedby': headerSubTitleId\n } : {\n 'aria-label': ariaLabel\n })}\n tabIndex=\"-1\"\n >\n <ContentRenderer>\n <HeaderRenderer\n headerTitleId={headerTitleId}\n headerSubTitleId={headerSubTitleId}\n t={t}\n />\n {children}\n <FooterRenderer />\n </ContentRenderer>\n </div>\n </DialogRenderer>\n )}\n </Portal>\n );\n});\n\nModal.propTypes = {\n usePortal: bool,\n defaultVisible: bool,\n children: node.isRequired,\n closeOnOutsideClick: bool,\n DialogRenderer: elementType,\n HeaderRenderer: elementType,\n ContentRenderer: elementType,\n FooterRenderer: elementType,\n portalContainerSelector: string,\n reffedDivProps: shape({}),\n onModalClose: func,\n closeOnEscPress: bool,\n exceptionalSelectorList: arrayOf(string),\n autoFocus: bool,\n currentActiveElementRef: oneOfType([\n func,\n shape({ current: any })\n ]),\n initialPortalSelector: string,\n ariaLabel: string\n};\n\n/* eslint react/prop-types: \"off\" */\nModal.defaultProps = {\n usePortal: false,\n defaultVisible: false,\n closeOnOutsideClick: true,\n portalContainerSelector: 'body',\n DialogRenderer: ({ children }) => (\n <div style={{\n position: 'fixed',\n zIndex: 1,\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'auto',\n backgroundColor: 'rgb(0, 0, 0, 0.4)'\n }}\n >\n {children}\n </div>\n ),\n ContentRenderer: ({ children }) => (\n <div\n style={{\n backgroundColor: '#fefefe',\n margin: '15% auto',\n padding: '20px',\n border: '1px solud #888',\n width: '80%'\n }}\n >\n {children}\n </div>\n ),\n HeaderRenderer: ({ children }) => <div>{children}</div>,\n FooterRenderer: ({ children }) => <div>{children}</div>,\n reffedDivProps: {},\n onModalClose: () => {},\n closeOnEscPress: true,\n exceptionalSelectorList: [],\n autoFocus: true,\n currentActiveElementRef: null,\n initialPortalSelector: '',\n ariaLabel: ''\n};\n\nexport default Modal;\n","/* eslint-disable max-len */\nimport Styled, { css } from 'styled-components';\n\nexport const customFont = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif';\n// '\"CircularStd\", \"Work Sans SemiBold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif';\n\nexport const commonStyles = `\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-family: ${customFont};\n font-size: 16px;\n`;\n\nexport const ScBox = Styled.div`\n box-sizing: border-box;\n background-color: #fff;\n border-radius: 4px;\n margin: auto auto;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n\n .wBox-upper {\n position: absolute;\n left: 0;\n top: 0;\n right: 50px;\n height: 79px;\n }\n\n > div { flex: 1 1 auto; min-height: 0; }\n\n @media screen and (max-width: 480px) {\n border-radius: 0;\n }\n`;\n\nexport const ScHeader = Styled.div`\n @font-face {\n font-family:\"Circular\";\n src: local(\"Circular Medium\"), local(\"Circular-Medium\"), url(\"https://cdn.jotfor.ms/fonts/circular/fonts/Circular-Medium.woff2\") format(\"woff2\"), url(\"https://cdn.jotfor.ms/fonts/circular/fonts/Circular-Medium.woff\") format(\"woff\");\n font-display:swap;\n font-style:normal;\n font-weight: 500;\n }\n\n border-bottom: ${p => (p.withHeader === true ? '1px solid #eaebf2' : 0)};\n display: flex;\n align-items: center;\n\n .header-content {\n flex: 1 1 auto;\n padding-left: 20px;\n .jShareModal-titleText {\n font-size: 20px;\n line-height: 24px;\n font-weight: 500;\n }\n\n html[dir=\"rtl\"] & {\n padding-left: 0;\n padding-right: 20px;\n }\n }\n\n .header-title {\n display: flex;\n align-items: center;\n font-size: 18px;\n font-weight: 500;\n font-family: \"Circular\",Work Sans Medium,-apple-system,Helvetica Neue,sans-serif;\n line-height: 20px;\n color: #141E46;\n height: 20px;\n margin: 0;\n\n .avatarHolder {\n margin-right: 10px;\n html[dir=\"rtl\"] & {\n margin-right: 0;\n margin-left: 10px;\n }\n }\n }\n\n .close-modal {\n margin: 18px;\n }\n && { flex: 0 0 auto; }\n\n @media screen and (max-width: 480px) {\n .header-content { padding-left: 1.5rem; }\n }\n`;\n\nexport const ScFooter = Styled.div`\n border-top: 1px solid #EDEEF5;\n border-radius: 0 0 4px 4px;\n background-color: #F8F8FA;\n min-height: 30px;\n padding: 12px 25px;\n\n && { flex: 0 0 auto; }\n\n @media screen and (max-width: 480px) {\n padding: 9px 18px;\n }\n`;\n\nexport const ScOverlay = Styled.div`\n * { box-sizing: border-box; }\n ${commonStyles};\n font-family: \"Circular\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 7002;\n background-color: rgba(37, 45, 91, 0.7);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n div[data-uikit-modal-container] {\n max-width: ${p => (p.maxWidth ? p.maxWidth : 630)}px;\n }\n &.templateModal {\n div[data-uikit-modal-container] {\n max-width: 1440px;\n max-height: unset;\n height: 96%;\n }\n [data-sc=\"picker-body\"] {\n max-height: unset;\n }\n [data-sc=\"footer\"] {\n display: none;\n }\n }\n\n &.forWizard {\n div[data-uikit-modal-container] {\n max-width: 860px;\n min-height: 0;\n }\n .header-content {\n padding-left: 24px;\n }\n .jfTabs-tabs-button {\n color: #8D8FA8;\n border-bottom: 1px solid #EAEBF2;\n &[data-isactive=true] {\n color: #5e74e6;\n }\n &:after {\n background-color: #5e74e6;\n }\n }\n }\n\n &.contactsDeleteModal {\n .title {\n margin: 24px 0 12px 0;\n }\n .content {\n padding-bottom: 32px;\n p {\n max-width: 450px;\n width: 100%;\n background-color: #F3F3FE;\n border-radius: 4px;\n padding: 24px 32px;\n color: #0A1551;\n .contactNames {\n font-weight: 500;\n }\n }\n .subtitle {\n color: #8D8FA8;\n font-weight: 400;\n .undone {\n font-weight: 500;\n }\n }\n }\n }\n\n :not(:last-child) {\n display: none;\n }\n\n .forShareModal-assignee div[data-uikitgeneratedportalcontainer=true] {\n position: absolute;\n\n & > div {\n position: relative !important;\n }\n }\n\n & > div {\n ${p => (p.isFullScreen ? css`\n width: 100%;\n height: 100%;\n ` : css`\n width: 96%;\n max-width: 770px;\n max-height: 80vh;\n // min-height: 424px;\n `)};\n display: flex;\n }\n\n ${p => p.isFullScreen && css`\n ${ScBox} { border-radius: 0; }\n `};\n\n @media screen and (max-width: 480px), (max-height: 480px) {\n overflow: auto;\n display: block;\n &.is2FAModal {\n display: flex;\n height: auto !important; \n }\n\n & > div {\n max-height: none;\n height: 100svh;\n width: 100%;\n margin: 0;\n max-width: none;\n }\n }\n\n @media screen and (max-width: 480px) and (max-height: 380px) {\n & > div {\n height: calc(100vh + 88px);\n }\n }\n\n @media screen and (max-height: 414px) and (orientation: landscape) {\n & > div {\n height: unset;\n }\n }\n`;\n","import React, { useMemo, useRef } from 'react';\nimport {\n elementType, func, bool, node, oneOfType, string, number\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { Modal as UIKitModal, Hooks } from '@jotforminc/uikit';\n\nimport { Button } from '@jotforminc/magnet';\nimport { IconChevronLeft, IconXmark } from '@jotforminc/svg-icons';\n\nimport {\n ScOverlay, ScBox, ScHeader, ScFooter\n} from './styled';\n\nconst Modal = React.forwardRef((props, ref) => {\n const {\n header,\n footer,\n onClose,\n isFullScreen,\n showGoBackAsClose,\n contentRenderer,\n className,\n headerHasCloseButton,\n usePortal,\n headerVisible,\n portalContainerSelector,\n onHeaderCloseClick,\n is2FAModal,\n maxWidth\n } = props;\n const innerRef = useRef();\n const rootRef = Hooks.useCombinedRefs(innerRef, ref);\n\n // TODO :: We should translate `Go Back` text\n\n const handleHeaderClose = () => {\n if (onHeaderCloseClick) {\n onHeaderCloseClick();\n return;\n }\n rootRef.current.hide();\n };\n\n const HeaderRenderer = useMemo(() => () => (\n <ScHeader withHeader={Boolean(header)}>\n <div className=\"header-content\">{header}</div>\n {headerHasCloseButton && (\n <Button\n className=\"close-modal\"\n startIcon={showGoBackAsClose ? IconChevronLeft : IconXmark}\n colorStyle=\"secondary\"\n rounded={!showGoBackAsClose}\n onClick={handleHeaderClose}\n aria-label={showGoBackAsClose ? t('Go back') : t('Close')}\n >\n {showGoBackAsClose ? t('Go back') : ''}\n </Button>\n )}\n </ScHeader>\n ), [rootRef.current, header]);\n\n const FooterRenderer = useMemo(() => () => (footer ? <ScFooter data-sc='footer'>{footer}</ScFooter> : null), [footer]);\n const ScOverlayWithClass = useMemo(() => pr => (\n <ScOverlay\n className={className} data-sc='overlay'\n isFullScreen={isFullScreen}\n is2FAModal={is2FAModal}\n maxWidth={maxWidth}\n {...pr}\n />\n ), [isFullScreen, className, is2FAModal]);\n\n const isMobile = window.navigator.userAgent.indexOf('Mobile') !== -1;\n\n return (\n <UIKitModal\n closeOnOutsideClick={!isMobile}\n {...props}\n ref={rootRef}\n usePortal={usePortal}\n portalContainerSelector={portalContainerSelector}\n ContentRenderer={contentRenderer}\n DialogRenderer={ScOverlayWithClass}\n HeaderRenderer={headerVisible ? HeaderRenderer : () => null}\n FooterRenderer={FooterRenderer}\n onModalClose={onClose}\n />\n );\n});\n\nModal.propTypes = {\n header: oneOfType([elementType, node]),\n footer: oneOfType([elementType, node]),\n onClose: func,\n onHeaderCloseClick: func,\n isFullScreen: bool,\n showGoBackAsClose: bool,\n className: string,\n contentRenderer: oneOfType([elementType, node]),\n headerHasCloseButton: bool,\n usePortal: bool,\n headerVisible: bool,\n portalContainerSelector: string,\n is2FAModal: bool,\n maxWidth: number\n};\n\nModal.defaultProps = {\n header: null,\n footer: null,\n onClose: f => f,\n onHeaderCloseClick: undefined,\n isFullScreen: false,\n showGoBackAsClose: false,\n className: undefined,\n contentRenderer: ScBox,\n headerHasCloseButton: true,\n usePortal: false,\n headerVisible: true,\n portalContainerSelector: 'body',\n is2FAModal: false,\n maxWidth: 630\n};\n\nexport default Modal;\n","import Styled from 'styled-components';\n\n// eslint-disable-next-line\nconst signHere = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMDAgNDMiPgogIDxwYXRoIHN0cm9rZT0iI0RGRTNFRCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTEgMzguNjAyYzExLjI0NiAzLjE5NyAyMi4xODItLjk5IDMxLjUwOC03LjE3MiA0LjkzMi0zLjI3IDkuODI2LTcuMTgzIDEyLjgyNS0xMi4zNDEgMS4xOTUtMi4wNTcgMi42NTYtNS42MjYtMS4xMDYtNS42NTgtNC4wOTMtLjAzNC03LjE0IDMuNjYyLTguNjY4IDcuMDIyLTIuMTkgNC44MTktMi4yNjggMTAuNTI2LjQwNyAxNS4xNyAyLjUzMSA0LjM5NSA2Ljc3OCA2LjQ3NCAxMS44NDUgNS42MiA1LjI5My0uODkzIDkuOTItNC41MDggMTMuNzY1LTcuOTg2YTQwLjcxNCA0MC43MTQgMCAwIDAgMy45NjYtNC4wOTNjLjE0Mi0uMTcuNjQyLTEuMDA2Ljk2Ni0xLjA2NC4xMi0uMDIxLjI5OCAzLjY0My4zMyAzLjg0My4yODggMS43OSAxLjE5MSAzLjgwNiAzLjMwNSAzLjg2NyAyLjY5LjA3OCA0Ljk0LTIuMTcyIDYuNzUtMy44My42MS0uNTU5IDIuNTUtMy4yNDEgMy41ODMtMy4yNDEuNDI1IDAgMS4yNDkgMi4xNDMgMS40MzcgMi40MjggMi40ODQgMy43NjQgNi4xMzIgMi40MDEgOC45Ni0uMjM4LjUyLS40ODUgMy4zMDUtNC4zNjcgNC40MzYtMy42NjcuOTExLjU2MyAxLjMxMyAxLjg5MyAxLjc4IDIuNzc4Ljc2IDEuNDQxIDEuNzIyIDIuNDY4IDMuMzMgMy4wMDQgMy40OTMgMS4xNjYgNy4yNjEtMi4xMDIgMTAuODAzLTIuMTAyIDEuMDMzIDAgMS41NjEuNTY4IDIuMTEgMS4zNTEuNzQ5IDEuMDY4IDEuNTIxIDEuODEzIDIuODczIDIuMTAzIDQuMTg4Ljg5OCA3LjYxNy0zLjA3NyAxMS42NjctMi43MjggMS4xODEuMTAxIDIuMDYzIDEuMjkyIDIuOTQ5IDEuOTI3IDEuNzg4IDEuMjggMy45MzggMi4xNjcgNi4xMjcgMi40NzggMy41MDkuNDk5IDcuMDI3LS4xNjIgMTAuNDQ3LS45IDUuOTA1LTEuMjc3IDExLjc1Mi0yLjc5OSAxNy42NjctNC4wMzEiLz4KICA8ZyBmaWxsPSIjREZFM0VEIiBjbGlwLXBhdGg9InVybCgjYSkiPgogICAgPHBhdGggZD0iTTE5Ni41MTQgMTcuNjU3IDE4NC40OTEgMy4xM2EuNjY1LjY2NSAwIDAgMC0uOTM4LS4wODlsLTIuOTA1IDIuNDA1YS42NjYuNjY2IDAgMCAwLS4wODkuOTM4bDEyLjAyMyAxNC41MjZhLjY2NC42NjQgMCAwIDAgLjQ1MS4yMzkuNjY2LjY2NiAwIDAgMCAuNDg4LS4xNWwyLjkwNS0yLjQwNWEuNjY2LjY2NiAwIDAgMCAuMDg4LS45Mzh6bS0xNS4wNzctOC4xMjEtMTAuNTgyIDIuODY5YS42NjYuNjY2IDAgMCAwLS40NzIuNDhsLTQuMjI4IDE2Ljc5NSA3LjgyLTYuNDcyYTMuMzQgMy4zNCAwIDAgMSAuODE1LTQuMTM3IDMuMzM3IDMuMzM3IDAgMCAxIDQuNjkzLjQ0MiAzLjMzOCAzLjMzOCAwIDAgMS0uNDQyIDQuNjk0IDMuMzIyIDMuMzIyIDAgMCAxLTIuNDM4Ljc1IDMuMzM1IDMuMzM1IDAgMCAxLTEuNzc4LS43MjFsLTcuODIgNi40NzEgMTcuMjg5LTEuMDE0YS42NjguNjY4IDAgMCAwIC41NjEtLjM3NGw0Ljc5Ni05Ljg1OS04LjIxNC05LjkyNHoiLz4KICA8L2c+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImEiPgogICAgICA8cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTY3LjU3MyAwaDMydjMyaC0zMnoiIHRyYW5zZm9ybT0icm90YXRlKDUuMzg2IDE2Ny41NzMgMCkiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgo8L3N2Zz4=';\n\nexport const ScMainContainer = Styled.div`\n text-align: center;\n [data-uikit-modal-container=\"true\"] & { padding: 12px 24px; }\n`;\n\nexport const ScFooter = Styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ScHeader = Styled.div`\n color: #2c3345;\n font-size: 18px;\n font-weight: 600;\n display: flex;\n align-items: center;\n svg {\n width: 18px; height: 16px;\n flex: 0 0 18px;\n margin-right: 8px;\n }\n`;\n\nexport const ScTitle = Styled.div`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const ScTypingInput = Styled.input`\n width: 100%;\n border: none;\n appearance: none;\n font-size: 48px;\n outline: none;\n padding: 0;\n text-align: center;\n line-height: 152px;\n border-bottom: 2px solid #979797;\n &:invalid { background: url(${signHere}) no-repeat center/65%; }\n`;\n\nexport const ScCanvas = Styled.div`\n ${({ mode }) => mode === 'type' && 'opacity: 0; position: absolute; left: -9999px; pointer-events: none;'}\n text-align: right;\n canvas {\n display: inline-block;\n ${({ emptyCanvas }) => emptyCanvas && `background: url(${signHere}) no-repeat center/65%;`}\n border-bottom: 2px solid #979797;\n }\n`;\n\nexport const ScTypeSwitcher = Styled.div`\n button {\n border: 1px solid #2e69ff;\n padding: .3em 1em;\n margin: 0;\n transition: background-color .1s, color .1s;\n &:first-child {\n border-radius: 4px 0 0 4px;\n border-width: 1px 0 1px 1px;\n }\n &:last-child {\n border-radius: 0 4px 4px 0;\n border-width: 1px 1px 1px 0;\n }\n }\n`;\n\nexport const ScColorSelection = Styled.div`\n display: flex;\n align-items: center;\n ${({ mode }) => mode === 'draw' && 'padding-top: 12px;'}\n span { color: #4a5265; }\n`;\n\nexport const ScModal = Styled.div`\n background-color: #fefefe;\n border-radius: 4px;\n width: 100%;\n .header-content {\n width: 80%;\n padding-left: 24px;\n }\n [data-sc=\"footer\"] { padding: 12px 24px; }\n`;\n\nexport const ScColorSelectionInput = Styled.input`\n position: relative;\n appearance: none;\n margin: 0 0 0 16px;\n background-color: ${({ value }) => value};\n width: 14px; height: 14px;\n border-radius: 50%;\n outline: none;\n cursor: pointer;\n &:before {\n content: '';\n position: absolute;\n width: 100%; height: 100%;\n top: 0; left: 0;\n transform: scale(1.1);\n border-radius: 50%;\n box-shadow: none;\n transition: box-shadow .2s;\n }\n &:checked:before {\n box-shadow: 0 0 0 2px rgba(46, 105, 255, .8);\n }\n`;\n\nexport const ScSettingsContainer = Styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n ${({ mode }) => mode === 'type' && 'padding-top: 12px;'}\n button:not(.clearButton) {\n display: flex;\n align-items: center;\n white-space: nowrap;\n img {\n width: 10px; height: 6px;\n margin-left: 12px;\n }\n }\n button.clearButton {\n background-color: transparent;\n color: #8894ab;\n padding: 0;\n }\n ul {\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 0 2px 9px 0 rgba(76, 72, 72, .3);\n &, li {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n div {\n background-color: #fff;\n font-size: 24px;\n cursor: pointer;\n padding: 8px 12px;\n white-space: nowrap;\n transition: background-color .2s;\n &:hover { background-color: #f5f5f5; }\n &[data-selected=\"true\"] { background-color: #efeff0; }\n }\n }\n`;\n\nexport const ScButtonCont = Styled.div`\n position: relative;\n`;\n\nexport const ScButton = Styled.button`\n appearance: none;\n border: none;\n outline: none;\n cursor: pointer;\n border-radius: 4px;\n font-size: 1em;\n padding: 16px 32px;\n background-color: #ececec;\n color: #4c5467;\n text-transform: capitalize;\n &.dropdownButton {\n padding: 12px 16px;\n img {\n transform: rotateX(${({ opened }) => (opened ? '180deg' : '0')});\n transition: transform .2s;\n }\n }\n &.isGray { background-color: #fff; color: #2e69ff; }\n &.isBlue { background-color: #2e69ff; color: #fff; }\n &.isBlue:disabled { background-color: #2e69ff88; cursor: auto; }\n`;\n","import { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer';\n\nconst getFontList = options => options.reduce(\n (acc, option, i) => (i === 1 ? `?family=${option}` : `${acc}&family=${option}`)\n).replace(/ /g, '+');\n\nexport const addGoogleFonts = options => tagId => {\n const { document } = global;\n const styleTag = document.getElementById(tagId);\n\n if (!styleTag) {\n const node = document.createElement('link');\n node.rel = 'stylesheet';\n node.id = tagId;\n node.href = `//fonts.googleapis.com/css2${getFontList(options)}`;\n document.head.appendChild(node);\n }\n};\n\nexport const getImageDimensions = base64 => {\n if (!base64) { return; }\n const i = document.createElement('img');\n i.src = base64;\n\n return { width: i.width, height: i.height };\n};\n\nexport const fromDataURL = pad => (dataUrl, options = {}) => {\n const image = document.createElement('img');\n const ratio = options.ratio || window.devicePixelRatio || 1;\n const width = options.width || (pad.canvas.width / ratio);\n const height = options.height || (pad.canvas.height / ratio);\n const top = options.top || 0;\n const left = options.left || 0;\n\n pad.clear();\n image.src = dataUrl;\n image.onload = () => {\n pad.canvas.getContext('2d').drawImage(image, left, top, width, height);\n };\n pad._isEmpty = false; // eslint-disable-line\n};\n\nconst createSvgTextElement = (ctx, text, attrs) => {\n const svgText = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n Object.keys(attrs).forEach(key => svgText.setAttribute(key, attrs[key]));\n svgText.style.font = ctx.font;\n svgText.textContent = text;\n return svgText;\n};\n\nconst getTextBoxWidth = text => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.style = 'position: absolute; z-index:-1; width:0; height: 0';\n svg.appendChild(text);\n document.body.appendChild(svg);\n const box = text.getBBox();\n document.body.removeChild(svg);\n return box.width;\n};\n\nexport const drawTextToCanvas = pad => (options = {}) => {\n const { canvas: { width: canvasWidth, height: canvasHeight }, canvas } = pad;\n const ctx = canvas.getContext('2d');\n const { font, text, color } = options;\n const defaultFontSize = 48;\n\n pad.clear();\n\n ctx.font = `${defaultFontSize}px ${font}`;\n ctx.fillStyle = color;\n ctx.textAlign = 'center';\n\n // ctx.measureText() is not working properly on built-in italic fonts. To get more accurate calculations, need to use SVGTextElement.\n const svgTxt = createSvgTextElement(ctx, text, {\n x: canvasWidth / 2,\n y: canvasHeight / 2,\n 'text-anchor': 'middle'\n });\n const textWidth = getTextBoxWidth(svgTxt);\n if (textWidth > canvasWidth) {\n // odds ratio\n const newFontSize = (canvasWidth * defaultFontSize) / textWidth;\n // -0.5 is to handle italic texts' width calculation error\n ctx.font = `${newFontSize - 0.5}px ${font}`;\n }\n ctx.fillText(text, canvasWidth / 2, canvasHeight / 2);\n};\n\nexport const resizeObserver = (el, cb) => {\n const ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;\n const ro = new ResizeObserver(entries => {\n entries.forEach(entry => {\n cb(entry);\n });\n });\n\n ro.observe(el);\n};\n\nexport const capitalizeFirstLetter = string => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n","import React, { useEffect, useRef } from 'react';\nimport { string, func } from 'prop-types';\n\nimport { ScTypingInput } from '../sc/scSignature';\nimport { resizeObserver } from '../helpers/utils';\n\nconst TypingArea = ({\n color,\n font,\n text,\n onChange,\n onBlur\n}) => {\n const inputRef = useRef();\n\n useEffect(() => {\n inputRef.current.focus();\n inputRef.current.selectionStart = inputRef.current.value.length;\n // was blurring out after following commit:\n // https://github.com/jotform/Jotform3/pull/1577/commits/033a131d75570b55168bbf2eda5af08a1de56e11\n // was not able to reproduce related bug (BUGFIX #3271904)\n // we override blur to prevent this from happening\n inputRef.current.blur = () => {};\n\n resizeObserver(inputRef.current, ({ target }) => {\n if ('value' in target && target.value) {\n onChange(target.value.trim());\n }\n });\n }, []);\n\n return (\n <ScTypingInput\n type=\"text\"\n aria-label=\"Signature Input\"\n defaultValue={text.trim()}\n ref={inputRef}\n style={{ color, fontFamily: font }}\n onChange={e => { onChange(e.target.value.trim()); }}\n onBlur={onBlur}\n required\n />\n );\n};\n\nTypingArea.propTypes = {\n color: string.isRequired,\n font: string.isRequired,\n text: string.isRequired,\n onChange: func.isRequired,\n onBlur: func\n};\n\nTypingArea.defaultProps = {\n onBlur: () => {}\n};\n\nexport default TypingArea;\n","import React from 'react';\nimport { func, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { ScColorSelection, ScColorSelectionInput } from '../sc/scSignature';\n\nconst COLORS = ['black', 'red', 'blue'];\n\nconst ColorSelection = ({\n onChange,\n selectedColor,\n mode\n}) => {\n return (\n <ScColorSelection {...{ mode }}>\n <span>{t('Select color')}</span>\n {COLORS.map(color => (\n <ScColorSelectionInput\n key={color}\n type=\"radio\"\n name=\"color\"\n value={color}\n aria-label={color}\n checked={selectedColor === color}\n onChange={e => onChange(e.target.value)}\n />\n ))}\n </ScColorSelection>\n );\n};\n\nColorSelection.propTypes = {\n onChange: func.isRequired,\n selectedColor: string.isRequired,\n mode: string.isRequired\n};\n\nexport default ColorSelection;\n","/* eslint-disable react/button-has-type */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { wrapWithComp } from '../../utils/index';\n\n// not so pro but it does the trick\nconst getSomeString = el => {\n const defaultString = 'Button';\n let resultString = '';\n if (typeof el === 'string') {\n resultString = el;\n } else if (Array.isArray(el)) {\n const strArr = [];\n el.map(i => typeof i === 'string' && strArr.push(i));\n resultString = strArr.length === 0\n ? defaultString : strArr.join(' ');\n } else {\n resultString = defaultString;\n }\n\n return resultString;\n};\n\nconst Button = React.forwardRef(({\n children,\n disabled,\n ariaLabel,\n buttonAriaLabelPrefix,\n ...others\n}, ref) => {\n const defaultAriaLabel = (ariaLabel === 'Button' && others && others['aria-label']) ? others['aria-label'] : ariaLabel;\n const producedAriaLabel = defaultAriaLabel === 'Button' ? getSomeString(children) : defaultAriaLabel;\n const ariaLabelWithPrefix = buttonAriaLabelPrefix ? `${buttonAriaLabelPrefix} ${producedAriaLabel}` : producedAriaLabel;\n return (\n <button\n tabIndex={disabled ? '-1' : null}\n disabled={disabled}\n ref={ref}\n {...others}\n aria-label={ariaLabelWithPrefix}\n >\n {React.Children.map(children, child => wrapWithComp(child, 'btn-label'))}\n </button>\n );\n});\n\nButton.propTypes = {\n disabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n children: PropTypes.node.isRequired,\n buttonAriaLabelPrefix: PropTypes.string\n};\n\nButton.defaultProps = {\n disabled: false,\n ariaLabel: 'Button',\n buttonAriaLabelPrefix: ''\n};\n\nexport default Button;\n","import React from 'react';\nimport {\n shape, func, elementType, bool, oneOfType, string, number\n} from 'prop-types';\n\nimport { isPressedKeyEnter } from '../../utils';\n\nconst Option = ({\n option, setSelected, ContainerRenderer, Renderer, isSelected, disabled, OptionContainerRendererProps\n}) => {\n const handleSelection = opt => {\n if (disabled) return;\n setSelected(opt);\n };\n\n const onOptionClick = opt => () => handleSelection(opt);\n const onOptionKeyPress = opt => event => isPressedKeyEnter(event) && handleSelection(opt);\n const ContainerRendererProps = typeof OptionContainerRendererProps === 'function' ? OptionContainerRendererProps(option) : OptionContainerRendererProps;\n return (\n <ContainerRenderer\n role=\"option\"\n tabIndex={0}\n aria-disabled={disabled}\n aria-selected={isSelected}\n onClick={onOptionClick(option)}\n {...ContainerRendererProps}\n onKeyPress={onOptionKeyPress(option)}\n >\n <Renderer option={option} isSelected={isSelected} />\n </ContainerRenderer>\n );\n};\n\nOption.prototype = {\n disabled: bool,\n isSelected: bool,\n setSelected: func,\n Renderer: elementType,\n ContainerRenderer: elementType,\n OptionContainerRendererProps: oneOfType([\n func,\n shape({})\n ]),\n option: shape({ text: string, value: oneOfType([string, number]) })\n};\n\n/* eslint react/prop-types: \"off\" */\nOption.defaultProps = {\n option: {},\n disabled: false,\n isSelected: false,\n setSelected: f => f,\n ContainerRenderer: props => <li {...props} />,\n OptionContainerRendererProps: {},\n Renderer: ({ option: { text, value }, isSelected }) => <div data-value={value} data-selected={isSelected}>{text}</div>\n};\n\nexport default Option;\n","import React, { forwardRef } from 'react';\nimport {\n arrayOf, oneOfType, string, number, shape, elementType, bool, func\n} from 'prop-types';\n\nimport Option from '../Option';\n\nconst OptionGroup = forwardRef(({\n options, setSelected, checkOptionSelectionState, ContainerRenderer, OptionContainerRenderer, OptionRenderer, disabled, GroupRenderer, text, OptionContainerRendererProps, groupIcon,\n NoResultsRenderer, onClearFilter, inputValue, containerID\n}, ref) => {\n if (inputValue && !options.length && NoResultsRenderer) {\n return <NoResultsRenderer onClearFilter={onClearFilter} />;\n }\n return (\n <ContainerRenderer\n ref={ref}\n id={containerID}\n text={text}\n groupIcon={groupIcon}\n >\n {options.map(option => {\n if (option.type === 'group') {\n return (\n <OptionGroup\n text={option.text}\n groupIcon={option.groupIcon}\n disabled={disabled}\n options={option.options}\n setSelected={setSelected}\n GroupRenderer={GroupRenderer}\n OptionRenderer={OptionRenderer}\n ContainerRenderer={GroupRenderer}\n OptionContainerRenderer={OptionContainerRenderer}\n OptionContainerRendererProps={OptionContainerRendererProps}\n checkOptionSelectionState={checkOptionSelectionState}\n role=\"radiogroup\"\n tabIndex=\"0\"\n />\n );\n }\n\n return (\n <Option\n option={option}\n key={option.value}\n Renderer={option.Renderer || OptionRenderer}\n OptionContainerRendererProps={OptionContainerRendererProps}\n setSelected={setSelected}\n disabled={disabled || option.disabled}\n ContainerRenderer={OptionContainerRenderer}\n isSelected={checkOptionSelectionState(option)}\n aria-checked={checkOptionSelectionState(option)}\n />\n );\n })}\n </ContainerRenderer>\n );\n});\n\nOptionGroup.prototype = {\n containerID: string.isRequired,\n disabled: bool,\n setSelected: func,\n onClearFilter: func,\n GroupRenderer: elementType,\n OptionRenderer: elementType,\n ContainerRenderer: elementType,\n OptionContainerRenderer: elementType,\n OptionContainerRendererProps: oneOfType([\n func,\n shape({})\n ]),\n NoResultsRenderer: elementType,\n inputValue: string,\n checkOptionSelectionState: func,\n options: arrayOf(shape({ text: string, value: oneOfType([string, number]) })),\n selectedOptions: arrayOf(shape({ text: string, value: oneOfType([string, number]) }))\n};\n\n/* eslint react/prop-types: \"off\" */\nOptionGroup.defaultProps = {\n options: [],\n selectedOptions: [],\n disabled: false,\n setSelected: f => f,\n checkOptionSelectionState: f => f,\n onClearFilter: f => f,\n GroupRenderer: ({ text, children, ...props }) => (\n <div {...props}>\n <b>{text}</b>\n <div>{children}</div>\n </div>\n ),\n ContainerRenderer: forwardRef(({ children }, ref) => <ul ref={ref}>{children}</ul>),\n OptionContainerRenderer: props => <li {...props} />,\n OptionContainerRendererProps: {},\n OptionRenderer: ({ option: { text, value }, isSelected }) => <div data-value={value} data-selected={isSelected}>{text}</div>,\n NoResultsRenderer: null,\n inputValue: ''\n};\n\nexport default OptionGroup;\n","import React, {\n useState, useEffect, useMemo, forwardRef\n} from 'react';\nimport {\n bool, string, func, oneOfType, number\n} from 'prop-types';\nimport { useEffectIgnoreFirst } from '../../utils/hooks';\n\nconst TextInput = forwardRef(({\n id,\n label,\n value,\n defaultValue,\n onChange,\n onBlur,\n isErrored,\n errorMessage: baseErrorMessage,\n multiline,\n showInitialError,\n errorClassName,\n ...props\n}, ref) => {\n // States\n const [isDirty, setDirty] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [errorMessage, setErrorMessage] = useState(baseErrorMessage);\n\n // Event handler\n const onInputValueChange = e => {\n setInputValue(e.target.value);\n onChange(e, inputValue, setInputValue);\n };\n\n const onInputBlur = e => {\n onBlur(e, inputValue, setInputValue);\n setDirty(isErrored(inputValue));\n };\n\n // Effect\n useEffect(() => {\n setInputValue(value || defaultValue);\n setDirty(false);\n }, [value, defaultValue]);\n\n useEffect(() => {\n setErrorMessage('');\n }, [isDirty]);\n\n useEffectIgnoreFirst(() => {\n setErrorMessage(baseErrorMessage);\n }, [baseErrorMessage]);\n\n useEffect(() => {\n if (isDirty || showInitialError) {\n setErrorMessage(isErrored(inputValue));\n }\n }, [isDirty, inputValue, showInitialError]);\n\n // Memoized values\n const eventHandlerProps = useMemo(() => Object.keys(props)\n .filter(propKey => /^on[A-Z]/.test(propKey) && typeof props[propKey] === 'function')\n .reduce((prev, propKey) => ({ ...prev, [propKey]: e => props[propKey](e, inputValue, setInputValue) }), {}),\n [props]);\n\n const InputElement = multiline ? 'textarea' : 'input';\n return (\n <>\n {label && <label htmlFor={id}>{label}</label>}\n <InputElement\n id={id}\n ref={ref}\n value={inputValue}\n onChange={onInputValueChange}\n onBlur={onInputBlur}\n {...props}\n {...eventHandlerProps}\n />\n {errorMessage && <div className={errorClassName}>{errorMessage}</div>}\n </>\n );\n});\n\nTextInput.propTypes = {\n id: string,\n label: string,\n value: oneOfType([string, number]),\n defaultValue: oneOfType([string, number]),\n onChange: func,\n onBlur: func,\n isErrored: func,\n errorMessage: string,\n errorClassName: string,\n multiline: bool,\n showInitialError: bool\n};\n\nTextInput.defaultProps = {\n id: '',\n label: '',\n value: '',\n defaultValue: '',\n onChange: f => f,\n onBlur: f => f,\n isErrored: () => false,\n errorMessage: '',\n multiline: false,\n errorClassName: null,\n showInitialError: false\n};\n\nexport default TextInput;\n","import React, {\n useState, useRef, forwardRef, useImperativeHandle, useEffect\n} from 'react';\nimport {\n shape, arrayOf, elementType, string, number, oneOfType, func, bool\n} from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { nodeContains } from '@jotforminc/utils';\n\nimport Button from '../Button';\nimport Popover from '../Popover';\nimport OptionGroup from '../OptionGroup';\n\nimport {\n generateShortID, isPressedKeyEnter, findOptionByValue, flattenOptions\n} from '../../utils';\nimport {\n useClickOutsideState, useEffectIgnoreFirst, useCombinedRefs, useFuse\n} from '../../utils/hooks';\nimport TextInput from '../TextInput';\n\nconst Dropdown = forwardRef(({\n options,\n defaultValue,\n GroupRenderer,\n OptionRenderer,\n OptionContainerRenderer,\n ButtonRenderer,\n ContainerRenderer,\n TextInputRenderer,\n NoResultsRenderer,\n onOptionSelect,\n closeOnOptionSelect,\n closeOnScroll,\n scrollableElementSelector,\n popoverProps,\n disabled,\n filterable,\n extendable,\n onTextInputChange,\n onOptionAdded,\n allowEmpty,\n placeholder,\n textInputPlaceholder,\n triggerChangeOnDatasetChange,\n extendOnGroupSearch,\n onOptionsVisibilityChanged,\n skipSetSelectedOption,\n optionsAutoFocus,\n optionsAutoPosition,\n dropdownButtonAriaLabelPrefix,\n recordEvent,\n translate,\n textInputAriaLabel,\n clearSearchButtonText,\n textInputFocusOptions\n}, ref) => {\n const textInputRef = useRef();\n const buttonRef = useRef();\n const containerRef = useRef();\n const dropdownRef = useRef();\n const optionsRef = useRef();\n const containerID = useRef(generateShortID()).current;\n const rootRef = useCombinedRefs(dropdownRef, ref);\n\n const [selectedOption, setSelectedOption] = useState(false);\n const [isOptionsVisible, _setOptionsVisibility] = useClickOutsideState(false, [containerRef, buttonRef]);\n\n const [textInputValue, _setTextInputValue] = useState('');\n const [placement, setPlacement] = useState();\n\n const finalOptions = extendOnGroupSearch && filterable && textInputValue ? flattenOptions(options) : options;\n const filteredOptions = useFuse(finalOptions, filterable ? textInputValue : undefined)\n .map(each => (each.item ? each.item : each));\n\n const handleInputChange = e => {\n const { value } = (typeof e === 'string') ? { value: e } : e.target;\n _setTextInputValue(value);\n onTextInputChange(value);\n };\n\n const clearInput = () => handleInputChange('');\n const handleChangeOptionsVisibility = visible => {\n clearInput();\n _setOptionsVisibility(visible);\n };\n\n const checkOptionSelectionState = option => {\n if (selectedOption && option && selectedOption.value && option.value) {\n return selectedOption.value === option.value;\n }\n return false;\n };\n const onButtonClick = () => {\n if (!isOptionsVisible) recordEvent();\n handleChangeOptionsVisibility(!isOptionsVisible);\n };\n const onButtonKeyPress = event => isPressedKeyEnter(event) && handleChangeOptionsVisibility(!isOptionsVisible);\n const setSelected = option => {\n if (option && option.disabled) return;\n\n clearInput();\n if (!skipSetSelectedOption) {\n setSelectedOption(option);\n }\n if (option) {\n const { disabled: isDisabled, ...rest } = option;\n onOptionSelect(rest);\n } else { // Selection must be cleared\n onOptionSelect();\n }\n\n if (closeOnOptionSelect) {\n handleChangeOptionsVisibility(false);\n }\n };\n\n const findByText = text => options.find(opt => opt.text.toLowerCase() === text.toLowerCase());\n const handleAddNewOption = newOptionText => {\n const alreadyHave = findByText(newOptionText);\n if (alreadyHave) {\n setSelected(alreadyHave);\n\n return;\n }\n clearInput();\n onOptionAdded(newOptionText);\n };\n\n const handleKeyDown = e => {\n if (extendable && textInputValue && isPressedKeyEnter(e)) {\n handleAddNewOption(textInputValue);\n }\n };\n\n const clearSelection = () => {\n setSelected();\n };\n\n useEffectIgnoreFirst(() => {\n const foundByValue = findOptionByValue(defaultValue, options, allowEmpty);\n // Check every possible difference on the option.\n // It may have other attributes besides text which affects selected option visibility especially when used with custom option renderer\n if (!isEqual(foundByValue, selectedOption)) {\n if (foundByValue) {\n setSelectedOption(foundByValue);\n if (triggerChangeOnDatasetChange) {\n onOptionSelect(foundByValue);\n }\n } else {\n setSelectedOption(false);\n }\n }\n }, [defaultValue, options]);\n\n useEffect(() => {\n const foundByValue = findOptionByValue(defaultValue, options, allowEmpty);\n if (foundByValue) {\n setSelectedOption(foundByValue);\n }\n }, []);\n\n useEffect(() => {\n onOptionsVisibilityChanged(isOptionsVisible);\n if (isOptionsVisible) {\n setTimeout(() => { // Popper renders content as display:none at first, and focus call is not working on non displayed elements\n if (textInputRef?.current) textInputRef.current.focus(textInputFocusOptions);\n\n if (optionsAutoFocus && optionsRef?.current?.firstChild) optionsRef.current.firstChild.focus();\n\n if (optionsAutoPosition && buttonRef?.current && optionsRef?.current) {\n const buttonTop = buttonRef.current.getBoundingClientRect().top;\n const optsHeight = optionsRef.current.offsetHeight + (textInputRef?.current?.offsetHeight || 0);\n setPlacement(((window.innerHeight - buttonTop) < (optsHeight + 40)) && ((buttonTop - optsHeight) > 40) ? 'top-end' : popoverProps?.popoverOptions?.placement);\n }\n });\n }\n }, [isOptionsVisible]);\n\n useEffect(() => {\n if (closeOnScroll && isOptionsVisible) {\n const handleScroll = e => {\n // fix for closing modal while scrolling this dropdown options issue\n if (!optionsRef?.current || !nodeContains(optionsRef.current, e.target)) {\n handleChangeOptionsVisibility(false);\n }\n };\n\n const scrollableElement = scrollableElementSelector ? document.querySelector(scrollableElementSelector) || document : document;\n\n scrollableElement.addEventListener('scroll', handleScroll, true);\n return () => {\n scrollableElement.removeEventListener('scroll', handleScroll, true);\n };\n }\n }, [scrollableElementSelector, closeOnScroll, isOptionsVisible]);\n\n useImperativeHandle(rootRef, () => ({\n buttonRef,\n containerRef,\n setSelected,\n setOptionsVisibility: handleChangeOptionsVisibility,\n clearSelection,\n isOptionsVisible\n }));\n\n return (\n <>\n <ButtonRenderer\n ref={buttonRef}\n isOptionsVisible={isOptionsVisible}\n option={selectedOption}\n onClick={onButtonClick}\n onKeyPress={onButtonKeyPress}\n disabled={disabled}\n placeholder={placeholder}\n buttonAriaLabelPrefix={dropdownButtonAriaLabelPrefix}\n tabIndex={0}\n aria-label={placeholder}\n role=\"combobox\"\n aria-expanded={isOptionsVisible}\n aria-controls={`dropdown-options-${containerID}`}\n />\n {isOptionsVisible && (\n <Popover\n ref={containerRef}\n targetRef={buttonRef}\n {...popoverProps}\n {...placement ? {\n popoverOptions: {\n ...popoverProps?.popoverOptions || {},\n placement\n }\n } : {}}\n tabIndex=\"0\"\n >\n {(filterable || extendable) ? (\n <>\n <TextInputRenderer\n ref={textInputRef}\n type={extendable ? 'text' : 'search'}\n value={textInputValue}\n placeholder={textInputPlaceholder || translate(extendable ? 'Type to add' : 'Type to filter')}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n aria-label={textInputAriaLabel || textInputPlaceholder}\n NoResultsRenderer={NoResultsRenderer}\n textInputFocusOptions={textInputFocusOptions}\n />\n {clearSearchButtonText && textInputValue !== '' && <button type=\"button\" className=\"dropdown-clearSearchBtn\" onClick={clearInput}>{clearSearchButtonText}</button>}\n </>\n ) : null}\n <OptionGroup\n ref={optionsRef}\n containerID={containerID}\n options={filteredOptions}\n setSelected={setSelected}\n GroupRenderer={GroupRenderer}\n OptionRenderer={OptionRenderer}\n ContainerRenderer={ContainerRenderer}\n OptionContainerRenderer={OptionContainerRenderer}\n NoResultsRenderer={NoResultsRenderer}\n checkOptionSelectionState={checkOptionSelectionState}\n inputValue={textInputValue}\n onClearFilter={clearInput}\n />\n </Popover>\n )}\n </>\n );\n});\n\nDropdown.propTypes = {\n options: arrayOf(shape({\n text: string,\n value: oneOfType([string, number])\n })),\n disabled: bool,\n popoverProps: shape({}),\n GroupRenderer: elementType,\n ButtonRenderer: elementType,\n OptionRenderer: elementType,\n OptionContainerRenderer: elementType,\n ContainerRenderer: elementType,\n TextInputRenderer: elementType,\n NoResultsRenderer: elementType,\n closeOnOptionSelect: bool,\n closeOnScroll: bool,\n scrollableElementSelector: string,\n defaultValue: oneOfType([string, number]),\n onOptionSelect: func,\n filterable: bool,\n extendable: bool,\n onTextInputChange: func,\n onOptionAdded: func,\n allowEmpty: bool,\n placeholder: string,\n textInputPlaceholder: string,\n triggerChangeOnDatasetChange: bool,\n extendOnGroupSearch: bool,\n onOptionsVisibilityChanged: func,\n skipSetSelectedOption: bool,\n optionsAutoFocus: bool,\n optionsAutoPosition: bool,\n dropdownButtonAriaLabelPrefix: string,\n recordEvent: func,\n translate: func,\n textInputAriaLabel: string,\n clearSearchButtonText: string,\n textInputFocusOptions: shape({})\n};\n\n/* eslint react/prop-types: \"off\" */\nDropdown.defaultProps = {\n options: [],\n disabled: false,\n defaultValue: undefined,\n closeOnOptionSelect: true,\n closeOnScroll: false,\n scrollableElementSelector: '',\n popoverProps: {},\n GroupRenderer: ({ text, children, ...props }) => (\n <div {...props}>\n <b>{text}</b>\n <div>{children}</div>\n </div>\n ),\n ContainerRenderer: forwardRef(({ children, id }, ref) => (\n <ul\n ref={ref}\n aria-label=\"options\"\n role=\"listbox\"\n id={`dropdown-options-${id}`}\n >\n {children}\n </ul>\n )),\n ButtonRenderer: forwardRef(({\n option: { text, value } = {}, placeholder, buttonAriaLabelPrefix, ...props\n }, ref) => (\n <Button\n ref={ref}\n type=\"button\"\n data-value={value}\n data-testid=\"dropdown-button\"\n buttonAriaLabelPrefix={buttonAriaLabelPrefix}\n {...props}\n >\n {text || placeholder}\n </Button>\n )),\n OptionRenderer: ({ option: { text, value }, isSelected }) => <div data-value={value} data-selected={isSelected}>{text}</div>,\n OptionContainerRenderer: props => <li {...props} />,\n TextInputRenderer: forwardRef(({ ...props }, ref) => <TextInput ref={ref} {...props} />),\n NoResultsRenderer: null,\n onOptionSelect: f => f,\n filterable: false,\n extendable: false,\n onTextInputChange: f => f,\n onOptionAdded: f => f,\n allowEmpty: false,\n placeholder: 'Please select',\n textInputPlaceholder: '',\n triggerChangeOnDatasetChange: false,\n extendOnGroupSearch: false,\n onOptionsVisibilityChanged: f => f,\n skipSetSelectedOption: false,\n optionsAutoFocus: false,\n optionsAutoPosition: false,\n dropdownButtonAriaLabelPrefix: '',\n recordEvent: f => f,\n translate: f => f,\n textInputAriaLabel: '',\n clearSearchButtonText: null,\n textInputFocusOptions: {}\n};\n\nexport default Dropdown;\n","import React, { useEffect, forwardRef } from 'react';\nimport {\n string, func, shape, bool\n} from 'prop-types';\nimport { Dropdown as UIKitDropdown } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\n\nimport { addGoogleFonts } from '../helpers/utils';\nimport { ScButton, ScButtonCont } from '../sc/scSignature';\n\nconst FONT_LIST = ['Shadows Into Light', 'Yellowtail', 'Dancing Script', 'Great Vibes'];\n\nconst DBButton = forwardRef(({ option: { value }, ...props }, ref) => (\n <ScButton\n ref={ref}\n data-value={value}\n opened={props.isOptionsVisible}\n type=\"button\"\n className=\"dropdownButton\"\n {...props}\n >\n <span>{t('Change Style')}</span>\n <img src=\"//cdn.jotfor.ms/assets/img/v4/fields/control_inline/arrow.svg\" alt=\"\" />\n </ScButton>\n));\n\nDBButton.propTypes = {\n option: shape({\n value: string\n }).isRequired,\n isOptionsVisible: bool.isRequired\n};\n\nconst popoverProps = {\n usePortal: false,\n popoverOptions: {\n placement: 'bottom-start',\n modifiers: [\n { name: 'offset', options: { offset: [0, 6] } },\n { name: 'computeStyles', options: { gpuAcceleration: false } }\n ]\n }\n};\n\nconst FontSelection = ({\n onChange, font\n}) => {\n useEffect(() => {\n addGoogleFonts(FONT_LIST)('signature-fonts');\n }, []);\n\n return (\n <ScButtonCont>\n <UIKitDropdown\n onOptionSelect={e => onChange(e.value)}\n options={FONT_LIST.map(f => ({ text: f, value: f }))}\n ButtonRenderer={DBButton}\n ContainerRenderer={({ children }) => <ul>{children}</ul>}\n OptionRenderer={({ option: { value } }) => (\n <div\n data-value={value}\n data-selected={font === value}\n style={{ fontFamily: value }}\n >\n Your Signature\n </div>\n )}\n popoverProps={popoverProps}\n />\n </ScButtonCont>\n );\n};\n\nFontSelection.propTypes = {\n onChange: func.isRequired,\n font: string.isRequired\n};\n\nexport default FontSelection;\n","import React from 'react';\nimport { arrayOf, shape } from 'prop-types';\n\nimport { ScButton } from '../sc/scSignature';\n\nconst Button = ({\n btns\n}) => btns.map(({\n text, className, onClick, ...rest\n}) => (\n <ScButton\n type=\"button\"\n {...(text ? { 'aria-label': text } : {})}\n {...(className ? { className } : {})}\n onClick={onClick}\n {...rest}\n >\n {text || ''}\n </ScButton>\n));\n\nButton.propTypes = {\n btns: arrayOf(shape({})).isRequired\n};\n\nexport default Button;\n","import React, { useEffect, useState, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport SignaturePad from 'signature_pad';\nimport trimCanvas from 'trim-canvas';\nimport { t } from '@jotforminc/translation';\n\nimport { Hooks } from '@jotforminc/uikit';\nimport { StyledModal as Modal } from '@jotforminc/styled-modal';\nimport TypingArea from './TypingArea';\nimport ColorSelection from './ColorSelection';\nimport FontSelection from './FontSelection';\nimport Button from './Button';\nimport {\n ScMainContainer, ScCanvas, ScFooter, ScHeader, ScTypeSwitcher, ScSettingsContainer, ScModal, ScTitle\n} from '../sc/scSignature';\nimport {\n getImageDimensions, fromDataURL, drawTextToCanvas, resizeObserver, capitalizeFirstLetter\n} from '../helpers/utils';\nimport SignatureIcon from '../assets/svg/signature_icon.svg';\n\n// const switchPad = mode => pad => (mode === 'type' ? pad.off() : pad.on());\n\nconst Signature = ({\n onUse,\n onCancel,\n wrapper,\n getInitialValue,\n confirmButtonText,\n unmountComponent,\n required,\n labelTitle,\n renderMode,\n initialMode\n}) => {\n const [pad, setPad] = useState(null);\n const [mode, setMode] = useState(initialMode);\n const [color, setColor] = useState('black');\n const [font, setFont] = useState('Yellowtail');\n const [text, setText] = useState('');\n const [emptyCanvas, setEmptyCanvas] = useState(true);\n const {\n mode: initMode = mode,\n font: initFont = font,\n color: initColor = color,\n value = '',\n text: initText = text\n } = getInitialValue();\n\n const canvasRef = useRef();\n\n const getCanvasValue = () => {\n if (!pad || ((mode === 'draw' && pad.isEmpty()) || (mode === 'type' && !text))) {\n return '';\n }\n\n if (mode === 'type') {\n drawTextToCanvas(pad)({ font, text, color });\n }\n\n const tmpCanvas = document.createElement('canvas');\n\n tmpCanvas.width = pad.canvas.width;\n tmpCanvas.height = pad.canvas.height;\n tmpCanvas.getContext('2d').drawImage(pad.canvas, 0, 0);\n trimCanvas(tmpCanvas);\n\n return tmpCanvas.toDataURL();\n };\n\n const onEnd = () => {\n onUse({\n value: getCanvasValue(),\n text,\n color,\n font,\n mode\n });\n };\n\n const onClear = () => {\n if (pad) {\n pad.clear();\n }\n setEmptyCanvas(true);\n if (renderMode === 'embed') {\n onEnd();\n }\n };\n\n const handleOnUse = () => {\n if (required && !getCanvasValue()) {\n return;\n }\n\n onEnd();\n unmountComponent(wrapper);\n };\n\n const handleOnCancel = () => {\n onCancel();\n unmountComponent(wrapper);\n };\n\n useEffect(() => {\n const sigCanvas = canvasRef.current;\n const sigPad = new SignaturePad(sigCanvas, {\n throttle: 10,\n minWidth: 1,\n maxWidth: 2.5,\n minDistance: 5,\n velocityFilterWeight: 0.3\n });\n\n setPad(sigPad);\n\n if (value && emptyCanvas) {\n setMode(initMode);\n setColor(initColor);\n setEmptyCanvas(false);\n\n if (initMode === 'type') {\n setFont(initFont);\n setText(initText);\n }\n }\n\n resizeObserver(sigCanvas.parentNode, entry => {\n const { width: parentWidth, height: parentHeight } = entry.contentRect;\n\n if (value && emptyCanvas) {\n const { width, height } = getImageDimensions(value);\n\n if (initMode === 'draw') {\n fromDataURL(sigPad)(value, {\n top: (parentHeight - height) / 2,\n left: (parentWidth - width) / 2,\n width,\n height\n });\n }\n }\n });\n\n sigCanvas.focus();\n }, []);\n\n useEffect(() => {\n pad && (pad.penColor = color); // eslint-disable-line\n }, [color, pad]);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (renderMode === 'embed' && mode === 'type') {\n onEnd();\n }\n }, [text, color, font]);\n\n const setRescaledSignature = (lines, scale) => (\n lines.map(line => ({\n ...line,\n points: line.points.map(point => ({\n ...point,\n x: point.x * scale\n }))\n }))\n );\n\n useEffect(() => {\n if (mode === 'draw') {\n onClear();\n\n resizeObserver(canvasRef.current.parentNode, entry => {\n const { width: parentWidth } = entry.contentRect;\n const offsetWidth = canvasRef.current ? canvasRef.current.offsetWidth : 0;\n\n if (parentWidth && offsetWidth !== parentWidth) {\n canvasRef.current.setAttribute('width', `${parentWidth}px`);\n // BUGFIX #5207734 :: prevent signature deletion on orientation change with scaling.\n if (pad && !pad.isEmpty()) {\n pad.fromData(setRescaledSignature(pad.toData(), parentWidth / offsetWidth));\n }\n }\n });\n }\n }, [mode]);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (renderMode !== 'workflow_embed') {\n onEnd();\n }\n }, [renderMode, mode]);\n\n const renderMain = () => {\n return (\n <ScMainContainer data-mode={mode}>\n <ScTypeSwitcher>\n <Button\n btns={['type', 'draw'].map(btn => ({\n className: `${btn}Mode_button ${mode === btn ? 'isBlue' : 'isGray'}`,\n onClick: () => setMode(btn),\n text: t(capitalizeFirstLetter(btn)),\n 'aria-selected': `${mode === btn}`,\n 'aria-pressed': `${mode === btn}`\n }))}\n />\n </ScTypeSwitcher>\n <ScCanvas\n {...{ mode, emptyCanvas }}\n {...(emptyCanvas ? { className: 'emptyCanvas' } : {})}\n >\n <canvas\n ref={canvasRef}\n onMouseDown={() => setEmptyCanvas(false)}\n onTouchStart={() => setEmptyCanvas(false)}\n {...(renderMode === 'embed' ? { onMouseUp: onEnd, onMouseLeave: onEnd, onTouchEnd: onEnd } : {})}\n className=\"signatureCanvas\"\n tabIndex={mode === 'draw' ? 0 : -1}\n role=\"button\"\n aria-label={t('E-Signature canvas')}\n aria-hidden={mode !== 'draw'}\n />\n </ScCanvas>\n {mode === 'type' && (\n <TypingArea\n onChange={setText}\n // {...(renderMode === 'embed' ? { onBlur: onEnd } : {})}\n {...{ color, font, text }}\n />\n )}\n <ScSettingsContainer {...{ mode, renderMode }}>\n <ColorSelection onChange={setColor} selectedColor={color} mode={mode} />\n {mode === 'type' && <FontSelection onChange={setFont} font={font} />}\n {mode === 'draw' && <Button btns={[{ onClick: onClear, text: t('Clear'), className: 'clearButton' }]} />}\n </ScSettingsContainer>\n </ScMainContainer>\n );\n };\n\n if (renderMode === 'embed') {\n return renderMain();\n }\n\n return (\n <Modal\n defaultVisible\n onClose={handleOnCancel}\n handleHeaderClose={handleOnCancel}\n contentRenderer={ScModal}\n header={(\n <ScHeader>\n <SignatureIcon fill=\"#2c3345\" />\n <ScTitle aria-label={t(labelTitle)} tabIndex={0}>{t(labelTitle)}</ScTitle>\n </ScHeader>\n )}\n footer={(\n <ScFooter>\n <Button\n btns={['cancel', confirmButtonText].map(btn => ({\n className: btn === confirmButtonText ? 'isBlue' : '',\n onClick: btn === 'cancel' ? handleOnCancel : handleOnUse,\n text: t(capitalizeFirstLetter(btn)),\n disabled: btn === confirmButtonText && required && getCanvasValue() === ''\n }))}\n />\n </ScFooter>\n )}\n >\n {renderMain()}\n </Modal>\n );\n};\n\nSignature.propTypes = {\n onUse: PropTypes.func,\n onCancel: PropTypes.func,\n getInitialValue: PropTypes.func,\n wrapper: PropTypes.shape({}),\n confirmButtonText: PropTypes.string,\n required: PropTypes.bool,\n labelTitle: PropTypes.string,\n renderMode: PropTypes.string,\n initialMode: PropTypes.oneOf(['draw', 'type']),\n unmountComponent: PropTypes.func\n};\n\nSignature.defaultProps = {\n onUse: sign => console.log(`Here is the signature: ${sign}`), // eslint-disable-line\n onCancel: sign => console.log('signing canceled'), // eslint-disable-line\n getInitialValue: () => '',\n wrapper: {},\n confirmButtonText: 'use',\n required: false,\n labelTitle: 'YOUR SIGNATURE',\n renderMode: 'modal',\n initialMode: 'draw',\n // Default to ReactDOM.unmountComponentAtNode for backwards compatibility with React-DOM 17\n // TODO: Remove this when all projects are updated to React 18 or above\n unmountComponent: ReactDOM.unmountComponentAtNode\n};\n\nexport default Signature;\n","export const DEFAULT_DATE_FORMAT = 'MMMM D, YYYY HH:mm';\n\nexport const SUBMISSION_DATE_FORMATS = [\n 'M/D/YYYY',\n 'D/M/YYYY',\n 'MMM D, YYYY',\n 'MMMM D, YYYY',\n 'ddd, MMM D, YYYY',\n 'dddd, MMMM D, YYYY',\n 'MMM D, YYYY HH:mm',\n DEFAULT_DATE_FORMAT,\n 'ddd, MMM D, YYYY HH:mm',\n 'dddd, MMMM D, YYYY HH:mm'\n];\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport {\n string, func, shape, oneOf\n} from 'prop-types';\nimport { DEFAULT_DATE_FORMAT } from '@jotforminc/constants';\nimport { useMomentDate } from '@jotforminc/hooks';\nimport {\n NOW,\n X_MINUTE_SHORT,\n X_HOUR_SHORT,\n X_DAY_SHORT\n} from './constants';\n\nimport './styles/jfShortDate.scss';\n\nconst ShortDate = ({\n date, fullDateFormat, t, dateTexts, dateFormat, align\n}) => {\n const [currentDate] = useMomentDate();\n const [dateObject] = useMomentDate(date, dateFormat);\n\n const formattedDate = useMemo(() => {\n switch (true) {\n case currentDate.diff(dateObject, 'minutes') < 1:\n return ({ dateStructure: t(dateTexts.NOW), numericDate: dateObject });\n case currentDate.diff(dateObject, 'minutes') < 60:\n return ({ dateStructure: t(dateTexts.X_MINUTE_SHORT), numericDate: currentDate.diff(dateObject, 'minutes') || 1 });\n case currentDate.diff(dateObject, 'hours') < 24:\n return ({ dateStructure: t(dateTexts.X_HOUR_SHORT), numericDate: currentDate.diff(dateObject, 'hours') });\n case currentDate.diff(dateObject, 'days') < 7:\n return ({ dateStructure: t(dateTexts.X_DAY_SHORT), numericDate: currentDate.diff(dateObject, 'days') });\n case currentDate.year() !== dateObject.year():\n return dateObject.format('MMM DD, YYYY');\n default:\n return dateObject.format('MMM DD');\n }\n }, [currentDate, dateObject, dateTexts, t]);\n\n const translatedDate = typeof formattedDate === 'object' ? formattedDate.dateStructure.replace('XX', formattedDate.numericDate) : formattedDate;\n\n return (\n <div className={classNames('jfShortDate', align && `align${align}`)}>\n <div className=\"jfShortDate-text isShort\">\n {translatedDate}\n </div>\n <div className=\"jfShortDate-text isLong\">\n {dateObject.format(fullDateFormat)}\n </div>\n </div>\n );\n};\n\nShortDate.propTypes = {\n date: string.isRequired,\n dateFormat: string,\n fullDateFormat: string,\n dateTexts: shape({\n NOW: string.isRequired,\n X_MINUTE_SHORT: string.isRequired,\n X_HOUR_SHORT: string.isRequired,\n X_DAY_SHORT: string.isRequired\n }),\n align: oneOf(['Left', 'Right']),\n t: func\n};\n\nShortDate.defaultProps = {\n dateFormat: 'YYYY-MM-DD HH:mm',\n fullDateFormat: DEFAULT_DATE_FORMAT,\n dateTexts: {\n NOW,\n X_MINUTE_SHORT,\n X_HOUR_SHORT,\n X_DAY_SHORT\n },\n align: 'Left',\n t: text => text\n};\n\nexport default ShortDate;\n","export const NOW = 'Now';\nexport const X_MINUTE_SHORT = 'XXm';\nexport const X_HOUR_SHORT = 'XXh';\nexport const X_DAY_SHORT = 'XXd';\n","import React, { useMemo } from 'react';\nimport { bool, string } from 'prop-types';\nimport classNames from 'classnames';\nimport '../styles/UserAccount.scss';\n\nconst UserAccount = ({\n name, email, avatarUrl, isSystemUser, testIDPrefix\n}) => {\n const accountName = useMemo(() => {\n return isSystemUser ? 'System' : (name || email || '');\n }, [name, isSystemUser]);\n const isAvatarExist = Boolean(avatarUrl) && !isSystemUser;\n\n const [avatarContent, avatarStyle] = isAvatarExist\n ? [undefined, { backgroundImage: `url(${avatarUrl})` }]\n : [accountName[0], undefined];\n\n return (\n <div className={classNames('jfUserAccount', { isSystemUser })} data-testid={`${testIDPrefix}-user`}>\n <div className=\"jfUserAccount-avatar\" style={avatarStyle} data-testid={`${testIDPrefix}-user-avatar`}>\n {avatarContent}\n </div>\n <div className=\"jfUserAccount-name\" data-testid={`${testIDPrefix}-user-name`}>{accountName}</div>\n </div>\n );\n};\n\nUserAccount.propTypes = {\n name: string,\n email: string,\n isSystemUser: bool,\n avatarUrl: string,\n testIDPrefix: string\n};\n\nUserAccount.defaultProps = {\n name: '',\n email: '',\n isSystemUser: false,\n avatarUrl: 'https://cdn.jotfor.ms/assets/img/v4/avatar/Podo-Avatar2-02.png',\n testIDPrefix: 'jfUserAccount'\n};\n\nexport default UserAccount;\n","const TEXTS = {\n FORM_SUBMITTED: 'Form submitted by',\n WAITING_FOR_APPROVAL: 'Waiting for approval',\n EMAIL_SENT_TO: 'Email sent to',\n FLOW_COMPLETED: 'Flow completed',\n DATE: 'Date',\n PLEASE_REVIEW: 'Please review the request and either approve it or reject it',\n SELECTED_BY: '{outcome} selected by',\n THIS_REQUEST: '{outcome} this request',\n BEFORE_CONTINUE: 'Before continue you need to confirm your selection. This action cannot be undone',\n ARE_YOU_SURE: 'Are you sure you want to {outcome}?',\n PENDING: 'Pending',\n CANCELLED: 'Cancelled',\n COMPLETED: 'Completed',\n REASSIGN: 'Reassign',\n ADD_MESSAGE: 'Add Message',\n DISCARD_MESSAGE: 'Discard Message',\n SOMETHING_WENT_WRONG: 'Something went wrong. Please try again.',\n REASSIGN_TASK: 'Reassign Task',\n REASSIGN_DESC: 'You selected the Reassign option. When you reassign this task, you will no longer take any action on it. This action cannot be undone.',\n REASSIGN_ADD_EMAIL: 'Add an email address to assign this task',\n INVALID_EMAIL_ADDRESS: 'Invalid email address',\n EMAIL_REQUIRED: 'Email address is required',\n MESSAGE: 'message...',\n ADD_COMMENT: 'Add Comment',\n COMMENT_REQUIRED: 'Comment is required.',\n WRITE_HERE: 'Write Here',\n APPROVAL_STATUS: 'Approval Status',\n REQUEST_MORE_INFO: 'Request More Info',\n VIEW_ASSIGNED_FORM: 'View Assigned Form',\n EDIT_SUBMISSION: 'Edit submission'\n};\n\nexport default TEXTS;\n","import React, { forwardRef, useEffect } from 'react';\nimport {\n string,\n bool,\n func,\n node\n} from 'prop-types';\n\nimport TEXTS from '../constants/texts';\n\nconst Comment = forwardRef(({\n id,\n children,\n comment,\n isRequired,\n isEditable,\n onInput,\n t\n}, ref) => {\n useEffect(() => {\n if (!isEditable && comment) {\n // eslint-disable-next-line no-param-reassign\n ref.current.innerHTML = comment.split(/\\n+/).map(commentPart => `<div>${commentPart}</div>`).join('');\n }\n }, [isEditable, comment]);\n\n return (\n <div className=\"wmApproval-task-comment\">\n <div className=\"wmApproval-task-comment-title\">\n {t(TEXTS.ADD_COMMENT)}\n {' '}\n {isRequired && (<span className=\"isAsterisk\">*</span>)}\n </div>\n <div className=\"wmApproval-task-comment-textarea-wrapper\">\n <div\n ref={ref}\n data-placeholder={t(TEXTS.WRITE_HERE)}\n data-testid={`${id}-comment`}\n contentEditable={isEditable}\n className=\"wmApproval-task-comment-textarea\"\n onInput={onInput}\n >\n {children}\n </div>\n <div aria-hidden={isRequired ? 'false' : 'true'} className=\"wmApproval-task-comment-textarea-error\">\n {t(TEXTS.COMMENT_REQUIRED)}\n </div>\n </div>\n </div>\n );\n});\n\nComment.propTypes = {\n children: node,\n id: string.isRequired,\n comment: string,\n isRequired: bool,\n isEditable: bool,\n onInput: func,\n t: func\n};\n\nComment.defaultProps = {\n children: null,\n comment: '',\n isRequired: false,\n isEditable: true,\n onInput: f => f,\n t: text => text\n};\n\nexport default Comment;\n","import React from 'react';\nimport { string } from 'prop-types';\nimport classNames from 'classnames';\nimport Styled from 'styled-components';\n\nconst StyledSVG = Styled.svg`\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${({ size = '70px' }) => size};\n height: ${({ size = '70px' }) => size};\n transform: translate(-50%, -50%);\n animation: jfLoading-svgRotate 2s linear 0s infinite normal none running;\n transform-origin: center center 0;\n\n .jfLoading-svgPath {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: jfLoading-svgPath 1.5s ease-in-out 0s infinite normal none running;\n stroke-linecap: round;\n }\n\n @keyframes jfLoading-svgPath {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n }\n\n @keyframes jfLoading-svgRotate {\n 100% {\n transform: rotate(360deg) translate(-50%, -50%);\n }\n }\n`;\n\nexport const Loading = ({\n className = null,\n strokeWidth = '2',\n strokeColor = 'rgba(0,0,0,0.5)',\n ...props\n}) => (\n <StyledSVG viewBox=\"25 25 50 50\" className={classNames('jfLoading-loader', className)} {...props}>\n <circle\n className=\"jfLoading-svgPath\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth={strokeWidth}\n stroke={strokeColor}\n />\n </StyledSVG>\n);\n\nLoading.propTypes = {\n className: string,\n strokeColor: string,\n strokeWidth: string\n};\n","import React, { useMemo } from 'react';\nimport { string, func, bool } from 'prop-types';\nimport classNames from 'classnames';\nimport { Loading } from '@jotforminc/loading';\nimport { t } from '@jotforminc/translation';\nimport { capitalizeFirstLetter, isBright } from '@jotforminc/utils';\nimport { WORKFLOW_SYSTEM_OUTCOMES } from '../constants/systemOutcomes';\n\nconst Outcome = ({\n type,\n text,\n className,\n textColor,\n buttonColor,\n onClick,\n dataTestid,\n isLoading,\n isSelected,\n isCompleted\n}) => {\n const pastTenseText = useMemo(() => {\n if (WORKFLOW_SYSTEM_OUTCOMES[text]) {\n return WORKFLOW_SYSTEM_OUTCOMES[text].passiveText;\n }\n\n switch (text) {\n case 'Approve':\n return `${text}d`;\n case 'Escalate':\n case 'escalate':\n return 'Escalated';\n case 'Expire':\n case 'expire':\n return 'Expired';\n case 'Deny':\n return 'Denied';\n case 'Reject':\n case 'Reassign':\n return `${text}ed`;\n case 'reassign':\n return 'Reassigned';\n default:\n return text;\n }\n }, [text]);\n\n const computedTextColor = useMemo(() => {\n if (WORKFLOW_SYSTEM_OUTCOMES[text]) {\n return WORKFLOW_SYSTEM_OUTCOMES[text].textColor;\n }\n return textColor;\n }, [textColor, text]);\n\n const computedButtonColor = useMemo(() => {\n if (WORKFLOW_SYSTEM_OUTCOMES[text]) {\n return WORKFLOW_SYSTEM_OUTCOMES[text].buttonColor;\n }\n return buttonColor;\n }, [buttonColor, text]);\n\n const viewText = useMemo(() => {\n if (isCompleted) {\n return pastTenseText;\n }\n\n if (WORKFLOW_SYSTEM_OUTCOMES[text]) {\n return WORKFLOW_SYSTEM_OUTCOMES[text].text;\n }\n\n return text;\n }, [isCompleted, text]);\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={isLoading || isCompleted}\n className={classNames([\n 'wmApproval-task-outcome-button',\n isSelected && 'isSelectedAction',\n isLoading && 'wmApproval-task-outcome-button-loading',\n type ? `is${capitalizeFirstLetter(type.toLowerCase())}` : 'isCustomAction',\n className\n ])}\n style={{ color: isBright(computedButtonColor) ? computedTextColor : '#fff' }}\n data-testid={dataTestid}\n >\n <div className=\"wmApproval-task-outcome-button-loading-wrapper\">\n <div className=\"wmApproval-task-outcome-button-loading-container\">\n <Loading className=\"wmApproval-task-outcome-button-loading\" size=\"100%\" />\n </div>\n </div>\n <span className=\"wmApproval-task-outcome-button-background\" style={{ backgroundColor: computedButtonColor }} />\n {t(viewText)}\n </button>\n );\n};\n\nOutcome.propTypes = {\n type: string,\n className: string,\n text: string.isRequired,\n textColor: string.isRequired,\n buttonColor: string.isRequired,\n dataTestid: string,\n isLoading: bool,\n isSelected: bool,\n isCompleted: bool,\n onClick: func\n};\n\nOutcome.defaultProps = {\n type: '',\n className: null,\n dataTestid: '',\n isLoading: false,\n isSelected: false,\n isCompleted: false,\n onClick: f => f\n};\n\nexport default Outcome;\n","/* eslint-disable max-len */\nimport styled, { css } from 'styled-components';\n\nconst commonStyles = css`\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n font-size: 16px;\n`;\n\nexport const ScBox = styled.div`\n box-sizing: border-box;\n background-color: #ffffff;\n border-radius: 4px;\n margin: auto auto;\n height: 100%;\n width: 560px;\n // box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.5);\n border: 1px solid #D8DAE9;\n display: flex;\n flex-direction: column;\n position: relative;\n\n > div { flex: 1 1 auto; min-height: 0; }\n\n @media screen and (max-width: 480px) {\n border-radius: 0;\n }\n`;\n\nexport const ScHeader = styled.div`\n display: flex;\n align-items: center;\n height: 75px;\n padding: 0 1.625rem;\n border-bottom: 1px solid #EDEEF5;\n \n > svg {\n margin-right: 14px;\n height: 100%;\n width: 100%;\n max-width: 20px;\n max-height: 20px;\n\n [fill~=\"#fff\"] {\n fill: #141E46;\n }\n \n [stroke~=\"#fff\"] {\n stroke: #141E46;\n }\n }\n \n > span {\n font-family: 'Circular Std Medium', 'Circular Std Book', sans-serif;\n font-weight: 500; \n font-size: 20px;\n line-height: 25px;\n \n color: #141E46;\n }\n \n && { flex: 0 0 auto; }\n`;\n\nexport const ScBody = styled.div`\n padding: 1.125rem 1.625rem;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n \n > span {\n font-size: 16px;\n line-height: 25px;\n color: #121C48;\n margin-bottom: 16px;\n display: inline-block;\n }\n\n .isErrored {\n .wmApproval {\n &-task {\n &-outcome {\n padding-bottom: 3em;\n margin-bottom: -2.25em;\n }\n }\n\n &-error {\n margin-top: -0.75em !important;\n text-align: right;\n padding-top: .5em;\n }\n }\n }\n \n .wmApproval{\n &-task {\n display: flex;\n flex-direction: column;\n flex: 1;\n \n &-container {\n flex: 1;\n }\n \n &-comment {\n flex: 1;\n\n &-title {\n display: none;\n }\n \n &-textarea {\n height: 20vh;\n min-height: 120px;\n max-height: 200px;\n\n &-wrapper {\n margin-bottom: 1.125rem;\n } \n }\n }\n \n &-outcome {\n display: flex;\n justify-content: flex-end;\n flex-wrap: wrap; \n \n border-top: 1px solid #EDEEF5;\n padding: 1rem 1.625rem;\n background-color: #F8F8FB;\n margin: -1rem -1.625rem;\n margin-top: 0;\n position: relative;\n z-index: 1;\n \n @media screen and (max-width: 480px) {\n flex-direction: column;\n align-items: stretch;\n margin-top: auto;\n }\n \n &-button {\n &,\n &:last-of-type{\n margin: 0.125rem\n }\n \n @media screen and (max-width: 480px) {\n margin: 0 0 12px;\n \n &:last-of-type {\n margin: 0;\n }\n }\n }\n }\n }\n }\n`;\n\nexport const ScFooter = styled.div`\n border-top: 1px solid #eaebf2;\n min-height: 30px;\n padding: 12px 27px 21px;\n\n && { flex: 0 0 auto; }\n\n @media screen and (max-width: 480px) {\n padding: 9px 18px;\n }\n`;\n\nexport const ScOverlay = styled.div`\n * { box-sizing: border-box; }\n ${commonStyles};\n font-family: \"Circular Std Book\", Circular, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 7002; \n background-color: rgba(39, 41, 55, 0.61);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n :not(:last-child) {\n display: none;\n }\n\n & > div {\n ${p => (p.isFullScreen ? css`\n width: 100%;\n height: 100%;\n ` : css`\n width: 96%;\n max-width: 770px;\n max-height: 80vh;\n // min-height: 424px;\n `)};\n display: flex;\n overflow: visible;\n }\n\n ${p => p.isFullScreen && css`\n ${ScBox} { border-radius: 0; }\n `};\n\n @media screen and (max-width: 480px), (max-height: 480px) {\n overflow: auto;\n display: block;\n\n & > div {\n max-height: none;\n height: 100%;\n width: 100%;\n margin: 0;\n max-width: none;\n\n > div > div:empty {\n display: none;\n }\n }\n }\n`;\n","import React, { forwardRef } from 'react';\nimport { func } from 'prop-types';\nimport { Dropdown as UiKitDropdown } from '@jotforminc/uikit';\n\nconst ContainerRenderer = props => <ul {...props} className=\"jfEmailWizard-dropdown-container\" />;\nconst OptionContainerRenderer = props => <li {...props} className=\"jfEmailWizard-dropdown-option-container\" />;\nconst ButtonRenderer = forwardRef(({ option: { text, value }, ...props }, ref) => { // eslint-disable-line\n return (\n <button\n ref={ref}\n className=\"jfEmailWizard-dropdown-button\"\n type=\"button\"\n data-value={value}\n {...props}\n >\n {text}\n </button>\n );\n});\n\nconst Dropdown = ({ onChange, ...properties }) => {\n const handleOptionSelect = ({ value }) => onChange(value);\n\n return (\n <div className=\"jfEmailWizard-dropdown-wrapper\">\n <UiKitDropdown\n ContainerRenderer={ContainerRenderer}\n OptionContainerRenderer={OptionContainerRenderer}\n ButtonRenderer={ButtonRenderer}\n defaultValue={properties.value}\n {...properties}\n onOptionSelect={handleOptionSelect}\n />\n </div>\n );\n};\n\nDropdown.propTypes = {\n onChange: func.isRequired\n};\n\nexport default Dropdown;\n","import React, { useEffect, useState } from 'react';\nimport {\n arrayOf,\n func,\n shape,\n string,\n bool\n} from 'prop-types';\nimport Dropdown from '../Dropdown';\nimport '../../styles/jfEmailWizard.scss';\n\nexport default function EmailDropdown({\n value,\n onChange,\n options,\n filterable,\n textInputPlaceholder\n}) {\n const [defaultValue, setDefaultValue] = useState(value);\n useEffect(() => {\n if (value.length && value[0].value !== defaultValue[0].value) {\n setDefaultValue(value);\n }\n }, [value]);\n const wrappedOnChange = val => {\n onChange([{ value: val, email: val, text: val }]);\n };\n return (\n <Dropdown\n onChange={wrappedOnChange}\n defaultValue={defaultValue.length ? defaultValue[0].value : ''}\n options={options}\n filterable={filterable}\n textInputPlaceholder={textInputPlaceholder}\n />\n );\n}\n\nEmailDropdown.propTypes = {\n value: arrayOf(shape({\n value: string\n })),\n options: arrayOf(shape({\n value: string,\n text: string\n })).isRequired,\n onChange: func,\n filterable: bool,\n textInputPlaceholder: string\n};\n\nEmailDropdown.defaultProps = {\n value: [],\n onChange: f => f,\n filterable: false,\n textInputPlaceholder: null\n};\n","export const NON_INPUT_QUESTIONS = [\n 'control_pagebreak',\n 'control_collapse',\n 'control_head',\n 'control_text',\n 'control_image',\n 'control_button',\n 'control_captcha',\n 'control_separator',\n 'control_clear',\n 'control_divider'\n];\n\n// these are widgets that do not generate answers.\nexport const NON_INPUT_WIDGETS = [\n '5273bb4faa80af0979000005', // Youtube\n '52a8531850e4cbc101000004', // Progress Bar\n '0fff4c94790070b09933edd8', // Open Street Map\n '5295bb771a667c525e000007', // Kinomap\n '5295c0a8ba5d618d5f000004', // Video Detective\n '526a2cd08a881e882100000c', // Vimeo\n '526a318cdeab09892100001c', // Animoto\n '52721d0af9879ec031000026', // Mobypicture\n '5295afd37da55cb758000008', // 23 Video\n '5295beee9319dafd5e000004', // Socialcam\n '526a2dbf8a881e882100000f', // Funny or Die\n '5295bf984d4ed6385f000004', // TED\n '5295ba694a87e6175e000007', // Howcast\n '5295c1831c9dde8961000004', // Worldstar HipHop\n '526a2d72deab09892100000d', // Dotsub\n '5295bc6528947a7d5e000004', // LogoTV\n '573985710fe4dd7d72000009', // Wistia\n '52930ea905a7114f7000002e', // Embed Flash\n '526a31538a881e8821000015', // Dailymotion\n '5295bfef3c0d37545f000004', // Twitch\n '5295bd563a20442323000004', // MySpace Videos\n '5295b815485bd19f5d000008', // Comedy Central\n '5295b794b3a63a910c000004', // Colbert Nation\n '5295b4bd22d53d3d59000004', // Bambuser\n '5295bfc6edbacd465f000004', // Trailer Addict\n '5295c0785a989c8c5f000004', // UStream\n '529ca19069fc7db354000004', // Livestream\n '5295b856ebc6f2bf5d000004', // Coub\n '5295c144a9770db75f000004', // WordPress TV\n '5295bec630696cfc5e000004', // Screenr\n '526a3007deab098921000016', // Vzaar\n '526a33258a881e882100001b', // Minoto Video\n '5295b9b357166ffb5d000004', // Fora.tv\n '5295bd883a20442323000007', // NFB\n '5295bc310802796e5e000004', // LiveLeak\n '5295bb401a667c525e000004', // KickStarter\n '5295bf7a1750fa375f000004', // StreetFire\n '5295c117bb1d7ea95f000004', // Weavly\n '526a2c3fdeab098921000007', // Hulu\n '5283818625d5b96b67000004', // Viddler\n '5295b9701667a0de5d000008', // ESPN\n '526a33768a881e882100001e', // Youku\n '5295bc9989cc268a5e000004', // MixBit\n '5295b142ba053ae558000004', // AOL On\n '526a32b68a881e8821000018', // Veoh\n '5295c1aaaa24319761000004', // Zapiks\n '526a2ef1deab098921000013', // Metacafe\n '5295b9f083a5d70a5e000004', // Game Trailers\n '52a604a359583c1d56000006', // Movie\n '529cd0ea8afa8f742d000004', // Image Slider\n '5293065005a7114f7000002a', // Fit Text\n '5297606bfe8fa6bf0d000016', // Data grid\n '529260f705a7114f70000008', // Social Follow\n '529641beb15ce2ac76000007', // PDF Embedder\n '528ef93577d598b430000010' // Countdown\n];\n\nexport const STATIC_FIELDS_WITH_PLACEHOLDER = [\n { text: 'Submission ID', placeholder: '{id}' },\n { text: 'Form Title', placeholder: '{form_title}' },\n { text: 'IP Address', placeholder: '{ip}' }\n];\n","import compose from 'lodash/fp/compose';\nimport isString from 'lodash/isString';\nimport { NON_INPUT_QUESTIONS, STATIC_FIELDS_WITH_PLACEHOLDER, NON_INPUT_WIDGETS } from '@jotforminc/constants';\nimport { tagDuplicateProperty, shortenString } from './misc';\nimport { fixUTF, capitalize } from './strings';\n\nexport const getPlaceholder = ({\n type, text, name, fields, sublabels, disabled, protected: _protected, selectedField\n}, anotherFieldDropdown) => {\n const isProtected = _protected === 'Yes';\n\n if ((!fields || !fields.length) && text && name) {\n return {\n text: shortenString(text, 40), placeholder: `{${name}}`, disabled, isProtected\n };\n }\n\n switch (type) {\n case 'control_widget': {\n if (selectedField === '533946093c1ad0c45d000070' && text && fields && !Array.isArray(fields)) { // Configurable List\n return {\n text: shortenString(text, 40), placeholder: `{${name}}`, disabled, isProtected\n };\n }\n return false;\n }\n case 'control_mixed': {\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.map(({ type: fieldType, fieldID }) => {\n const menuItemText = sublabels && sublabels[`field_${fieldID}`] !== '' ? sublabels[`field_${fieldID}`] : `${fieldType}_${fieldID}`;\n return {\n text: `${text} / ${menuItemText}`, placeholder: `{${name}[${fieldID}]}`, disabled, isProtected\n };\n });\n }\n case 'control_inline': {\n if (!Array.isArray(fields)) {\n return false;\n }\n if (anotherFieldDropdown) {\n return {\n text: `${text || 'Fill in the Blank'}`, placeholder: `{${name}}`, disabled, isProtected\n };\n }\n\n return fields.map(({ label, id }) => {\n return {\n text: `${text || 'Fill in the Blank'} / ${label}`, placeholder: `{${name}:${id}}`, disabled, isProtected\n };\n });\n }\n default:\n return false;\n }\n};\n\nexport const getPlaceholderList = (questions, anotherFieldDropdown = false) => questions.reduce((prev, question) => {\n const placeholder = getPlaceholder(question, anotherFieldDropdown);\n if (!placeholder) {\n return prev;\n }\n\n if (Array.isArray(placeholder)) {\n return [...prev, ...placeholder];\n }\n\n return [...prev, placeholder];\n}, []);\n\nexport const getDynamic = questions => questions.filter(({ type }) => NON_INPUT_QUESTIONS.indexOf(type) === -1);\nexport const getDynamicWidgets = questions => questions.filter(({ type, selectedField }) => type !== 'control_widget' || NON_INPUT_WIDGETS.indexOf(selectedField) === -1);\nexport const getLabeled = questions => questions.filter(({ text }) => text !== undefined);\n\nexport const getPlaceholderListForDynamicQuestions = compose(getPlaceholderList, getLabeled, getDynamic, getDynamicWidgets);\n\nexport const getPlaceholderListForDynamicQuestionsForWorkflow = (questions, anotherFieldDropdown = false) => {\n const dynamicQuestions = getDynamic(questions);\n const labeledQuestions = getLabeled(dynamicQuestions);\n const placeholderList = getPlaceholderList(labeledQuestions, anotherFieldDropdown);\n return placeholderList;\n};\n\nexport const preparePlaceholderDynamicList = (questions, anotherFieldDropdown, usedFromWorkflow) => {\n return usedFromWorkflow\n ? getPlaceholderListForDynamicQuestionsForWorkflow(questions, anotherFieldDropdown)\n : getPlaceholderListForDynamicQuestions(questions);\n};\n\nexport const getPlaceholderListWithStaticFields = ({\n usedFromWorkflow = false,\n anotherFieldDropdown = false,\n questions = [],\n staticFields = STATIC_FIELDS_WITH_PLACEHOLDER,\n staticFieldsAtTop = true,\n includeSeparator = true,\n isEncrypted = false\n}) => {\n if (isEncrypted) {\n return staticFields;\n }\n const dynamicFields = preparePlaceholderDynamicList(questions, anotherFieldDropdown, usedFromWorkflow);\n const [firstPart, secondPart] = staticFieldsAtTop ? [staticFields, dynamicFields] : [dynamicFields, staticFields];\n const separatorPart = firstPart.length && secondPart.length ? [{ text: '------------------------------' }] : [];\n return [...firstPart, ...(includeSeparator ? separatorPart : []), ...secondPart];\n};\n\nexport const getQuestionByPlaceholder = (placeholder, questionList) => questionList && questionList.length > 0 && questionList.find(question => {\n const tmpPlaceholder = getPlaceholder(question);\n switch (true) {\n case !placeholder:\n return false;\n case Array.isArray(tmpPlaceholder) && Boolean(Array.isArray(tmpPlaceholder) && tmpPlaceholder.find(({ placeholder: tmpPlaceholderPart }) => tmpPlaceholderPart === placeholder)):\n case tmpPlaceholder.placeholder === placeholder:\n return true;\n default:\n return false;\n }\n});\n\nexport const preparePillObjectFromQuestion = question => ({\n id: question.qid,\n value: `{${question.name}}`,\n name: question.text,\n text: question.text,\n isValid: true,\n isQuestion: true\n});\n\nexport const tagDuplicateQuestions = tagDuplicateProperty('text');\n\nexport const findSubField = (question, subfieldId) => {\n const questionFields = question?.fields;\n const subfield = Array.isArray(questionFields) ? questionFields.find(field => field?.id === subfieldId) : question;\n return subfield;\n};\n\nexport const parseFieldValues = (value, splitter = ':') => {\n const fields = value.split(splitter);\n if (fields.length > 1) {\n return { questionID: fields[0], subfieldID: fields[1] };\n }\n return { questionID: fields[0] };\n};\n\nexport const makeQuestionName = text => {\n if (typeof (text) === 'string') {\n let name = text.replace(' ', '');\n const tokens = name.split(/\\s+/);\n name = fixUTF((tokens['1']) ? tokens['0'].toLowerCase() + capitalize(tokens['1'].toLowerCase()) : tokens['0'].toLowerCase());\n name = name.replace(/\\W/gim, '');\n // Neil: If name is empty (due to foreign charsets), return text 'input' to enable propulation (182589)\n return name.length === 0 ? 'input' : name;\n }\n};\n\nexport const deleteIncorrectPropTypes = question => {\n const objectProps = {\n control_datetime: ['limitDate']\n };\n const fieldTypes = Object.keys(objectProps);\n for (let i = 0; i < fieldTypes.length; i++) {\n const controlType = fieldTypes[i];\n if (question.type && question.type === controlType) {\n const questionProps = Object.keys(question);\n for (let q = 0; q < questionProps.length; q++) {\n const prop = questionProps[q];\n if (isString(question[prop]) && objectProps[controlType].indexOf(prop) > -1) {\n delete question[prop]; // eslint-disable-line\n }\n }\n }\n }\n};\n","/* eslint-disable */\nimport tlds from 'tlds';\n\nexport const TLDs = tlds.join('|');\nexport const EMAIL_PATTERN = new RegExp(`^[a-z0-9_\\`'\\\\-\\\\+\\\\&+]+(\\\\.[_a-z0-9'\\\\-\\\\+]+)*@([_a-z0-9\\\\-]+\\\\.)+([a-z]{2}|${TLDs})$`, 'i');\n","import isNumber from 'lodash/isNumber';\nimport { EMAIL_PATTERN } from '@jotforminc/constants';\nimport { t } from '@jotforminc/translation';\n\nimport { safeJSONParse } from './data';\n\nexport const isFilled = value => {\n if (typeof value === 'string') {\n const val = value && value.replace(/^\\s+|\\s+$/g, '');\n return !!val;\n } if (Array.isArray(value)) {\n return value.length > 0;\n }\n return !!value;\n};\n\nexport const isEmpty = value => {\n return !isFilled(value);\n};\n\nexport const isValidUrl = value => {\n const URLPattern = /(http|ftp|https){0,1}:{0,1}[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?/; // eslint-disable-line no-useless-escape\n const validUrlRegex = global?.JotForm?.validationRegexes?.url || URLPattern;\n return isFilled(value) && validUrlRegex.test(value);\n};\n\nexport const isEmail = value => {\n return isFilled(value) && EMAIL_PATTERN.test(value);\n};\n\nexport const isTeamEmail = value => {\n const teamRegex = /team:[0-9].{13,14}$/;\n return teamRegex.test(value);\n};\n\n/**\n * Hostname validation\n * @function\n * @param {String} hostname to validate\n */\nexport const validateHostname = hostname => /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/\n .test(String(hostname).toLowerCase());\n\nexport const isSafari = () => /^((?!chrome|android).)*safari/i.test(global.navigator.userAgent);\n\n/**\n * E-mail validation\n * @function\n * @param {String} email to validate\n */\nexport const validateEmail = email => /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n .test(String(email).toLowerCase());\n\nconst validationMessages = {\n required: t('This field is required'),\n invalidEmail: t('Invalid email address')\n};\n\nconst validationsMap = {\n required: value => (!isFilled(value) ? validationMessages.required : false),\n required_withnone: value => (!isFilled(value) || value === 'none' ? validationMessages.required : false),\n email: value => {\n const questionPlaceholderRegex = /^\\{(.*?)\\}$/;\n if (typeof value === 'string' && questionPlaceholderRegex.test(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n const [, tagifyValue] = value.match(/^\\[\\[(.*?)\\]\\]$/) || [];\n if (tagifyValue) {\n const parsedTagifyValue = safeJSONParse(tagifyValue);\n if (parsedTagifyValue && parsedTagifyValue.name && questionPlaceholderRegex.test(parsedTagifyValue.name)) {\n return false;\n }\n }\n }\n\n if (Array.isArray(value) && value.length === 1 && questionPlaceholderRegex.test(value[0].value)) {\n return false;\n }\n\n const strEmail = (Array.isArray(value) && value.length === 1) ? value[0].value : value;\n return !isEmail(strEmail) ? validationMessages.invalidEmail : false;\n },\n numeric: val => (!isNumber(val) ? 'please write numeric' : false),\n content: val => {\n if (!isFilled(val)) {\n return validationMessages.required;\n }\n\n // Create dummy dom to check if the email content is empty or not\n const emailContent = new window.DOMParser().parseFromString(val, 'text/html').body.textContent.trim();\n return !emailContent ? validationMessages.required : false;\n }\n};\n\n// TODO: memoize this fn\nexport const generateIsErroredFromValidations = validations => {\n const fns = [];\n validations.forEach(name => {\n const validator = validationsMap[name];\n if (validator) {\n fns.push(validator);\n }\n });\n return value => {\n let errorMsg;\n fns.find(fn => {\n errorMsg = fn(value);\n return errorMsg;\n });\n return errorMsg || false;\n };\n};\n\nexport const checkUserType = (userType, credentials) => {\n const { account_type: { name } } = credentials;\n return name === userType;\n};\n","import { v4 as uuid } from 'uuid';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isUndefined from 'lodash/isUndefined';\nimport { t } from '@jotforminc/translation';\n\nimport { getQuestionByPlaceholder, preparePillObjectFromQuestion } from './questions';\nimport {\n isEmail,\n isTeamEmail,\n generateIsErroredFromValidations\n} from './validation';\nimport { sanitizeSingleEmailInputValue } from './sanitize';\n\nexport const pillValidator = (email, questions) => {\n return (Boolean(isEmail(email) || isTeamEmail(email) || getQuestionByPlaceholder(email, questions)));\n};\n\nexport const preparePillObjectFromEmail = email => ({\n id: uuid(),\n value: email,\n text: email,\n isValid: pillValidator(email),\n isQuestion: false\n});\n\nexport const sanitizeEmailList = (emailList, questions) => emailList.map(email => {\n if (typeof email === 'object') {\n return email;\n }\n\n const question = getQuestionByPlaceholder(email, questions);\n return question ? preparePillObjectFromQuestion(question) : preparePillObjectFromEmail(email);\n});\n\nexport const emailAnswerFinder = () => {\n const { JFFormUserHelper: { user: { email = '' } = {} } = {} } = window;\n if (email) return email;\n\n const emailSentTo = document.querySelector('input#jfFormUserSCL_emailSentTo');\n if (emailSentTo && emailSentTo.value) return emailSentTo.value;\n\n const emailSentToElementFindWithName = document.querySelector('input[name=\"jfFormUserSCL_emailSentTo\"]');\n if (emailSentToElementFindWithName && emailSentToElementFindWithName.value) return emailSentToElementFindWithName.value;\n\n // use form fields\n const emailInput = [...window.document.forms[0].querySelectorAll('.form-line:not(.form-field-hidden):not(.always-hidden) input[type=\"email\"]')]\n .find(input => input.value && input.value.trim());\n\n if (!emailInput) return '';\n\n return emailInput.value;\n};\n\n// TODO: remoe this shit\nexport const singleEmailInputEmailErrored = (value, isRequired = false) => {\n const stringVal = sanitizeSingleEmailInputValue(value);\n if (!stringVal && !isRequired) {\n return false;\n }\n\n const validations = isRequired ? ['required', 'email'] : ['email'];\n return generateIsErroredFromValidations(validations)(stringVal);\n};\n\nexport const removeHtmlTags = content => {\n const parser = (new global.DOMParser()).parseFromString(content, 'text/html').body;\n return parser.textContent || parser.innerText || '';\n};\n\nexport const selectText = question => {\n let text = removeHtmlTags(question.text);\n if (text === '' || text === ' ' || isUndefined(text)) {\n if (question.hint === '' || question.hint === ' ' || isUndefined(question.hint)) {\n // eslint-disable-next-line prefer-destructuring\n text = question.type.split('_')[1];\n text = t(`${text.substr(0, 1).toUpperCase() + text.substr(1)} Field`);\n } else {\n text = question.hint;\n }\n }\n return text;\n};\n\nexport const computeQuestions = (questions, isHIPAA) => {\n const target = isHIPAA ? questions.filter(q => q.protected !== 'Yes') : questions;\n return target.map(question => {\n const newQuestion = cloneDeep(question);\n newQuestion.text = selectText(question);\n return newQuestion;\n });\n};\n","import React, { useState } from 'react';\nimport { string, func, bool } from 'prop-types';\nimport { Hooks } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport classNames from 'classnames';\n\nfunction SearchInput({\n placeholder,\n value: defaultValue,\n onChange,\n autoFocus,\n className,\n isNewBranding\n}) {\n const [value, setValue] = useState(defaultValue);\n\n const handleInputChange = e => setValue(e.target.value);\n\n Hooks.useEffectIgnoreFirst(() => onChange(value), [value]);\n\n return (\n <input\n className={classNames('cb-search', className, { isNewBranding })}\n type=\"search\"\n value={value}\n placeholder={placeholder}\n onChange={handleInputChange}\n autoFocus={autoFocus}\n />\n );\n}\n\nSearchInput.propTypes = {\n placeholder: string,\n value: string,\n onChange: func,\n autoFocus: bool,\n className: string,\n isNewBranding: bool\n};\n\nSearchInput.defaultProps = {\n placeholder: t('Search'),\n value: '',\n onChange: f => f,\n autoFocus: false,\n className: null,\n isNewBranding: false\n};\n\nexport default SearchInput;\n","import React, {\n useRef, useImperativeHandle, forwardRef, useEffect\n} from 'react';\nimport {\n arrayOf, oneOfType, string, number, shape, elementType, bool, node, func\n} from 'prop-types';\n\nimport OptionGroup from '../OptionGroup';\n\nimport { useSelectionState, useEffectIgnoreFirst, useCombinedRefs } from '../../utils/hooks';\n\nconst SelectionGroup = forwardRef(({\n options,\n disabled,\n defaultValue,\n isMultiSelect,\n GroupRenderer,\n OptionRenderer,\n ContainerRenderer,\n OptionContainerRenderer,\n OptionContainerRendererProps,\n onSelectionChange,\n autoFocusToFirstChild\n}, ref) => {\n const [selectedOptionList, toggleSelectedOption, setSelectedOptionList] = useSelectionState(defaultValue, isMultiSelect);\n\n const optionGroupRef = useRef();\n const rootRef = useCombinedRefs(ref, optionGroupRef);\n useImperativeHandle(rootRef, () => ({\n current: rootRef.current,\n setSelectedOptionList\n }));\n\n const changeSelectedOptions = value => !disabled && toggleSelectedOption(value);\n const checkOptionSelectionState = option => selectedOptionList.indexOf(option.value) > -1;\n const onOptionSelection = option => !disabled && !option.disabled && changeSelectedOptions(option.value);\n\n useEffectIgnoreFirst(() => {\n onSelectionChange(isMultiSelect ? selectedOptionList : selectedOptionList[0]);\n }, [selectedOptionList]);\n\n useEffect(() => {\n if (autoFocusToFirstChild) rootRef?.current?.current?.firstChild?.focus();\n }, [autoFocusToFirstChild]);\n\n return (\n <OptionGroup\n ref={rootRef}\n options={options}\n disabled={disabled}\n role=\"radiogroup\"\n tabIndex=\"0\"\n aria-disabled={disabled}\n GroupRenderer={GroupRenderer}\n setSelected={onOptionSelection}\n OptionRenderer={OptionRenderer}\n OptionContainerRendererProps={OptionContainerRendererProps}\n ContainerRenderer={ContainerRenderer}\n OptionContainerRenderer={OptionContainerRenderer}\n checkOptionSelectionState={checkOptionSelectionState}\n />\n );\n});\n\nSelectionGroup.propTypes = {\n disabled: bool,\n options: arrayOf(shape({\n text: oneOfType([string, node]),\n value: oneOfType([string, number])\n })),\n defaultValue: oneOfType([string, number, arrayOf(oneOfType([string, number]))]),\n isMultiSelect: bool,\n GroupRenderer: elementType,\n OptionRenderer: elementType,\n OptionContainerRenderer: elementType,\n OptionContainerRendererProps: oneOfType([\n func,\n shape({})\n ]),\n ContainerRenderer: elementType,\n onSelectionChange: func,\n autoFocusToFirstChild: bool\n};\n\n/* eslint react/prop-types: \"off\" */\nSelectionGroup.defaultProps = {\n disabled: false,\n options: [],\n defaultValue: undefined,\n isMultiSelect: false,\n GroupRenderer: ({ text, children, ...props }) => (\n <div {...props}>\n <b>{text}</b>\n <div>{children}</div>\n </div>\n ),\n ContainerRenderer: forwardRef(({ children }, ref) => <ul aria-label=\"options\" role=\"listbox\" ref={ref}>{children}</ul>),\n OptionRenderer: ({ option: { text, value }, isSelected }) => <div data-value={value} data-selected={isSelected}>{`${text}${isSelected ? '- SELECTED' : ''}`}</div>,\n OptionContainerRenderer: props => <li {...props} />,\n OptionContainerRendererProps: {},\n onSelectionChange: f => f,\n autoFocusToFirstChild: false\n};\n\nexport default SelectionGroup;\n","import React from 'react';\nimport { SelectionGroup as UiKitSelectionGroup } from '@jotforminc/uikit';\n\nconst ContainerRenderer = props => <ul {...props} className=\"selection-group-container\" />;\nconst OptionContainerRenderer = props => <li {...props} className=\"selection-group-option-container\" />;\n\nconst SelectionGroup = properties => (\n <UiKitSelectionGroup\n ContainerRenderer={ContainerRenderer}\n OptionContainerRenderer={OptionContainerRenderer}\n {...properties}\n />\n);\n\nSelectionGroup.propTypes = UiKitSelectionGroup.propTypes;\nSelectionGroup.defaultProps = UiKitSelectionGroup.defaultProps;\n\nexport default SelectionGroup;\n","import { cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { CheckboxProps } from './checkbox.types';\n\n// CVA Types\ntype CheckboxCVAType = CVAType<Pick<CheckboxProps, 'size' | 'disabled' | 'checked' | 'indeterminate' | 'theme' | 'error'>>\ntype CheckboxWrapperCVAType = CVAType<Pick<CheckboxProps, 'size'>>\ntype CheckboxIconCVAType = CVAType<Pick<CheckboxProps, 'disabled' | 'theme'>>\n\n// Common classes\nconst checkboxSizes = {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n};\n\n// Classes\nexport const checkboxCVA = cva<CheckboxCVAType>(\n 'appearance-none border-2 radius inline-flex shrink-0 focus:outline-2 outline-offset-0 m-0', {\n variants: {\n size: checkboxSizes,\n disabled: {\n true: 'cursor-not-allowed',\n false: 'cursor-pointer'\n },\n checked: {},\n indeterminate: {},\n theme: {},\n error: {\n false: primary.accent.default.border.focus\n }\n },\n compoundVariants: [\n // Dark\n {\n theme: 'dark',\n error: false,\n className: 'outline-blue-600 outline-opacity-50'\n },\n {\n theme: 'dark',\n error: true,\n checked: true,\n className: 'outline-blue-600 outline-opacity-50'\n },\n {\n theme: 'dark',\n checked: false,\n disabled: false,\n error: false,\n indeterminate: false,\n className: [\n secondary.background.dark.base,\n secondary.border.medium.base,\n primary.accent.default.border.hover\n ]\n },\n {\n theme: 'dark',\n checked: true,\n disabled: true,\n indeterminate: false,\n className: [secondary.background.light.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n indeterminate: true,\n checked: false,\n disabled: true,\n className: [secondary.background.light.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n checked: false,\n disabled: true,\n indeterminate: false,\n className: [secondary.background.medium.base, secondary.border.medium.base]\n },\n // Light\n {\n theme: 'light',\n error: false,\n className: 'focus:outline-blue-200'\n },\n {\n theme: 'light',\n error: true,\n checked: true,\n className: 'focus:outline-blue-200'\n },\n {\n theme: 'light',\n checked: false,\n disabled: false,\n indeterminate: false,\n error: false,\n className: [primary.border.medium.base, primary.accent.default.border.hover, 'bg-white']\n },\n {\n theme: 'light',\n checked: true,\n disabled: true,\n className: 'bg-navy-50 border-navy-50'\n },\n {\n theme: 'light',\n indeterminate: true,\n checked: false,\n disabled: true,\n className: 'bg-navy-50 border-navy-50'\n },\n {\n theme: 'light',\n checked: false,\n disabled: true,\n className: 'border-navy-50'\n },\n // Dark & Light\n {\n theme: ['dark', 'light'],\n checked: false,\n error: false,\n className: [primary.accent.default.border.focus]\n },\n {\n theme: ['dark', 'light'],\n checked: true,\n disabled: false,\n indeterminate: false,\n className: [\n primary.accent.default.bg.base,\n primary.accent.default.border.base,\n primary.accent.dark.bg.hover,\n primary.accent.dark.border.hover\n ]\n },\n {\n theme: ['dark', 'light'],\n checked: false,\n indeterminate: true,\n disabled: false,\n className: [\n primary.accent.default.bg.base,\n primary.accent.default.border.base,\n primary.accent.dark.bg.hover,\n primary.accent.dark.border.hover\n ]\n },\n {\n theme: ['dark', 'light'],\n checked: false,\n indeterminate: false,\n disabled: false,\n error: true,\n className: [\n primary.error.default.border.base,\n primary.error.dark.border.hover\n ]\n },\n {\n theme: 'light',\n checked: false,\n indeterminate: false,\n disabled: false,\n error: true,\n className: 'focus:outline-red-200 focus:outline-opacity-50'\n },\n {\n theme: 'dark',\n checked: false,\n indeterminate: false,\n error: true,\n disabled: false,\n className: [secondary.background.dark.base, 'focus:outline-red-400 focus:outline-opacity-50']\n }\n ]\n }\n);\n\nexport const checkboxWrapperCVA = cva<CheckboxWrapperCVAType>('inline-flex shrink-0 relative', {\n variants: {\n size: checkboxSizes\n }\n});\n\nexport const checkboxIconCVA = cva<CheckboxIconCVAType>('absolute inset-0 w-full h-full pointer-events-none', {\n variants: {\n disabled: {\n false: 'color-white'\n },\n theme: {}\n },\n compoundVariants: [\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-600'\n },\n {\n theme: 'light',\n disabled: true,\n className: primary.text.light.base\n }\n ]\n});\n","import {\n createContext, CSSProperties, ReactNode, useContext\n} from 'react';\nimport { useInteractions } from '@floating-ui/react';\nimport {\n FormControlColorStyle, Icon, Size, Theme\n} from '../constants/common.types';\nimport { pick } from '../utils';\nimport { TagProps } from '../components/Tag/tag.types';\n\nconst useSelectValue = <ContextTypes extends object | null, PropTypes extends object>(\n ownContext: ContextTypes,\n props: PropTypes,\n pickedContextValues: string[]\n): PropTypes => {\n if (!ownContext) {\n return props;\n }\n\n const pickedContext = pick<any, any>(ownContext, pickedContextValues);\n return { ...props, ...pickedContext };\n};\n\nexport type FormControlContextType = {\n id?: string\n colorStyle?: FormControlColorStyle,\n size?: Size,\n disabled?: boolean,\n required?: boolean,\n readOnly?: boolean,\n theme?: Theme\n}\n\nexport const commonInputDefaults:Partial<FormControlContextType> = {\n size: 'medium',\n theme: 'light',\n colorStyle: 'default'\n} as const;\n\nexport const FormControlContext = createContext<FormControlContextType | null>(null);\n\ntype FormControlContextArrayKeys = (keyof FormControlContextType)[];\nconst contextValuesArray:FormControlContextArrayKeys = ['colorStyle', 'disabled', 'readOnly', 'required', 'size', 'theme', 'id'];\n\nexport const useFormControl = <T extends object>(\n props:T,\n pickContextValues:FormControlContextArrayKeys = contextValuesArray\n):T & FormControlContextType => {\n const formContext = useContext(FormControlContext);\n return useSelectValue(formContext, props, pickContextValues);\n};\n\nexport type HandleSelectParams = {\n index: number,\n} & DropdownOptionType\n\nexport type HandleGroupSelectParams = {\n checked: boolean,\n allOptions: DropdownOptionType[],\n childrenArray: DropdownOptionType[]\n}\n\nexport type HandleMultiSelect = {\n checked: boolean\n} & DropdownOptionType;\n\nexport type DropdownOptionType = {\n index?: number,\n icon?: Icon\n value: string | number,\n disabled?: boolean,\n tagStyles?: CSSProperties,\n tagColorStyle?: TagProps['colorStyle'],\n children?: string | ReactNode\n}\n\nexport type DropdownContextType = {\n activeIndex: number | null,\n selectedIndex: number | null,\n getItemProps: ReturnType<typeof useInteractions>['getItemProps'],\n handleSelect: (args: HandleSelectParams) => void,\n handleGroupSelect: (args: HandleGroupSelectParams) => void,\n handleMultiSelect: (args: HandleMultiSelect) => void,\n multiple?: boolean,\n selectedOptionArray: DropdownOptionType[] | null,\n setSelectedOptionArray: (array: DropdownOptionType[]) => void\n} & FormControlContextType;\n\nexport type DropdownGroupContextType = {\n indent?: boolean,\n}\n\nexport const DropdownContext = createContext<DropdownContextType | null>(null);\n\nexport const DropdownGroupContext = createContext<DropdownGroupContextType | null>(null);\n\nexport const useDropdownContext = ():DropdownContextType => {\n const context = useContext(DropdownContext);\n if (!context) {\n throw new Error('DropdownOption/DropdownGroup should wrap within a Dropdown');\n }\n return context;\n};\n\nexport const useDropdownGroupContext = ():DropdownGroupContextType => {\n const context = useContext(DropdownGroupContext);\n if (!context) {\n return {};\n }\n return context;\n};\n","import {\n Children, cloneElement, Fragment, isValidElement, ReactChild, ReactNode\n} from 'react';\nimport { Responsive } from '../constants/common.types';\n\nexport type ResponsiveClasses<T extends readonly string[]> = Record<T[number], Record<Responsive, string>>;\n\nexport const convertResponsiveClass = <T extends readonly string[]>(\n propValue: Partial<Record<Responsive, T[number]>> | string | undefined, classList: ResponsiveClasses<T>\n): string[] => {\n if (propValue === undefined) {\n return [];\n }\n\n const valueObject = typeof propValue === 'string' ? { base: propValue } : propValue;\n\n const classArr = Object.entries(valueObject).map(values => {\n const _key:T[number] = values[1];\n const _val = values[0] as Responsive;\n\n return classList[_key][_val];\n });\n\n return classArr;\n};\n\nexport function pick<T, K extends keyof T>(\n object: T,\n keys: K[]\n): Pick<T, K> {\n return Object.assign(\n {},\n ...keys.map((key: K) => {\n return { [key]: object[key] };\n })\n );\n}\n\ntype FlattenChildrenArgs = {\n children: ReactNode,\n depth: number,\n keys?: (string | number)[]\n filter: string,\n group:string\n}\n\nexport function flattenChildren({\n children, depth = 0, keys = [], filter, group\n}: FlattenChildrenArgs): ReactChild[] {\n return Children.toArray(children).reduce(\n (acc: ReactChild[] | any, node: any, nodeIndex) => {\n if (node?.type?.displayName === group || node?.type === Fragment) {\n acc.push(\n acc,\n ...flattenChildren({\n children: node.props.children,\n depth: depth + 1,\n keys: keys.concat(node.key || nodeIndex),\n group,\n filter\n })\n );\n } else if (isValidElement(node)) {\n acc.push(\n cloneElement(node, {\n key: keys.concat(String(node.key)).join('.')\n })\n );\n } else if (typeof node === 'string' || typeof node === 'number') {\n acc.push(node);\n }\n return acc;\n },\n []\n ).filter((child: any) => child?.type?.displayName === filter);\n}\n\nexport const arraysEqualsCheck = (a:any[] = [], b:any[] = []):boolean => a.length === b.length && a.every((v, i) => v === b[i]);\n","import { ChoiceTruncate, Size, Theme } from '../../constants/common.types';\nimport { commonInputDefaults } from '../../contexts';\nimport { NativePropsWithoutRef } from '../../types/system.types';\n\nexport type CheckboxBaseProps = {\n label?: string,\n description?: string\n htmlSize?: number,\n truncate?: ChoiceTruncate,\n size?: Size,\n indeterminate?: boolean,\n theme?: Theme,\n error?: boolean,\n in?: 'dropdown'\n}\n\nexport type CheckboxProps = NativePropsWithoutRef<'input', CheckboxBaseProps> & CheckboxBaseProps;\n\nexport const checkboxDefaultProps:Partial<CheckboxProps> = {\n size: commonInputDefaults.size,\n theme: commonInputDefaults.theme\n};\n","import { VariantProps, cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types';\nimport { ChoiceLabelProps } from './choice-label.types';\n\nexport type ChoiceLabelVariantProps = VariantProps<typeof choiceLabelCVA>\n\ntype ChoiceLabelCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'>>\ntype ChoiceLabelContainerCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'truncate'>>\ntype ChoiceLabelTextCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'> & { hasDescription?: boolean }>\ntype ChoiceLabelDescCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'>>\n\n// Variance values\nexport const choiceLabelCVA = cva<ChoiceLabelCVAType>('flex', {\n variants: {\n size: {\n small: 'gap-2',\n medium: 'gap-3',\n large: 'gap-3'\n },\n disabled: {},\n theme: {},\n truncate: {}\n },\n compoundVariants: [\n {\n truncate: ['both', 'description', 'label'],\n className: 'max-w-full'\n }\n ]\n});\n\nexport const choiceLabelContainerCVA = cva<ChoiceLabelContainerCVAType>('', {\n variants: {\n size: {\n small: '-mt-px',\n large: 'mt-0.5'\n },\n truncate: {}\n },\n compoundVariants: [\n {\n truncate: ['both', 'description', 'label'],\n className: 'overflow-hidden'\n }\n ]\n});\n\nexport const choiceLabelTextCVA = cva<ChoiceLabelTextCVAType>('', {\n variants: {\n size: {\n small: 'text-sm',\n medium: 'text-md',\n large: 'text-md'\n },\n hasDescription: {\n true: 'font-bold'\n },\n theme: {},\n disabled: {},\n truncate: {}\n },\n compoundVariants: [\n {\n size: ['small', 'medium', 'large'],\n className: 'block'\n },\n {\n theme: 'light',\n disabled: false,\n className: primary.text.darkest.base\n },\n {\n theme: 'light',\n disabled: true,\n className: 'color-navy-100'\n },\n {\n theme: 'dark',\n disabled: false,\n className: 'color-white'\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-400'\n },\n {\n truncate: ['both', 'label'],\n className: 'truncate'\n }\n ]\n});\n\nexport const choiceLabelDescriptionCVA = cva<ChoiceLabelDescCVAType>('block', {\n variants: {\n size: {\n small: 'text-xs',\n medium: 'text-sm',\n large: 'text-sm'\n },\n theme: {},\n disabled: {},\n truncate: {}\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n className: primary.text.medium.base\n },\n {\n theme: 'light',\n disabled: true,\n className: 'color-navy-100'\n },\n {\n theme: 'dark',\n disabled: false,\n className: secondary.text.light.base\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-400'\n },\n {\n truncate: ['both', 'description'],\n className: 'truncate'\n }\n ]\n});\n","import React from 'react';\n\nimport { cx } from 'class-variance-authority';\n\nimport { ChoiceLabelProps, choiceLabelDefaultProps } from './choice-label.types';\nimport {\n choiceLabelCVA, choiceLabelContainerCVA, choiceLabelDescriptionCVA, choiceLabelTextCVA\n} from './choice-label.cva';\n\nexport const ChoiceLabel = (props: ChoiceLabelProps):JSX.Element => {\n const {\n className, description, disabled, id, input, label, size, theme, truncate\n } = props;\n const hasDescription = description.length > 0;\n const hasLabel = label.length > 0;\n\n return (\n <label className={cx(className, choiceLabelCVA({ size, truncate }))} htmlFor={id}>\n {input}\n <span className={choiceLabelContainerCVA({ size, truncate })}>\n {hasLabel && (\n <span\n className={choiceLabelTextCVA({\n size, theme, disabled, hasDescription, truncate\n })}\n >\n {label}\n </span>\n )}\n {hasDescription && (\n <span className={choiceLabelDescriptionCVA({\n size, theme, disabled, truncate\n })}\n >\n {description}\n </span>\n )}\n </span>\n </label>\n );\n};\n\nChoiceLabel.defaultProps = choiceLabelDefaultProps;\n","import { ComponentPropsWithoutRef } from 'react';\nimport { ChoiceTruncate, Size, Theme } from '../../constants/common.types';\n\nexport type ChoiceLabelBaseProps = {\n className?: string,\n description: string,\n id: string,\n input: ComponentPropsWithoutRef<'input'>,\n label: string,\n truncate?: ChoiceTruncate,\n disabled?: boolean,\n theme?: Theme,\n size?: Size\n}\n\nexport type ChoiceLabelProps = ChoiceLabelBaseProps;\n\nexport const choiceLabelDefaultProps:Partial<ChoiceLabelProps> = {\n description: '',\n label: '',\n disabled: false,\n size: 'medium',\n theme: 'light'\n};\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\nimport { IconCheck, IconMinus } from '@jotforminc/svg-icons';\n\nimport '@jotforminc/jotform.css';\n\nimport { checkboxCVA, checkboxIconCVA, checkboxWrapperCVA } from './checkbox.cva';\nimport { CheckboxProps, checkboxDefaultProps } from './checkbox.types';\n\nimport { ChoiceLabel } from '../../shared/ChoiceLabel/ChoiceLabel';\nimport { useFormControl } from '../../contexts';\n\nexport const Checkbox = forwardRef((\n props: CheckboxProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n): JSX.Element => {\n const {\n description,\n label,\n htmlSize,\n theme,\n disabled,\n indeterminate,\n checked,\n size,\n error,\n className,\n id,\n truncate,\n ...rest\n } = useFormControl<CheckboxProps>(props, ['theme', 'size']);\n\n const hasLabel = label && label.length > 0;\n const hasDescription = description && description.length > 0;\n const wrapperClass = cx(!hasLabel && !hasDescription ? className : null, checkboxWrapperCVA({ size }));\n\n const checkIcon = (\n <span className={wrapperClass}>\n <input\n type=\"checkbox\"\n id={id}\n checked={checked}\n className={checkboxCVA({\n size,\n theme,\n disabled: !!disabled,\n checked: !!checked,\n indeterminate: !!indeterminate,\n error: !!error\n })}\n disabled={disabled}\n ref={ref}\n size={htmlSize}\n {...rest}\n />\n {checked && <IconCheck className={checkboxIconCVA({ theme, disabled: !!disabled })} />}\n {indeterminate && <IconMinus className={checkboxIconCVA({ theme, disabled: !!disabled })} />}\n </span>\n );\n\n return (\n (hasLabel || hasDescription) ? (\n <ChoiceLabel\n id={id}\n input={checkIcon}\n description={description}\n label={label}\n className={className}\n size={size}\n disabled={!!disabled}\n theme={theme}\n truncate={truncate}\n />\n ) : checkIcon\n );\n});\n\nCheckbox.defaultProps = checkboxDefaultProps;\n","import React from 'react';\nimport { Tooltip } from '@jotforminc/tooltip';\nimport { t } from '@jotforminc/translation';\n\nconst ProtectedTag = () => (\n <>\n <div className=\"isPHIIcon jfTooltipNew-hoverTarget\">\n <Tooltip\n v2\n className=\"isPHITooltip\"\n align=\"Center\"\n attach=\"Left\"\n >\n {t('Protected Health Information: This field includes sensitive information. This data can’t be added.')}\n </Tooltip>\n </div>\n </>\n);\n\nexport default ProtectedTag;\n","import React from 'react';\nimport { Tooltip } from '@jotforminc/tooltip';\nimport { t } from '@jotforminc/translation';\nimport { IconLockFilled } from '@jotforminc/svg-icons';\n\nconst EncryptedTag = () => (\n <>\n <div className=\"isEncryptedFormIcon jfTooltipNew-hoverTarget\">\n <IconLockFilled fill='#0A1551' />\n <Tooltip\n v2\n className=\"isEncryptedFormTooltip\"\n align=\"Center\"\n attach=\"Left\"\n >\n {t('Encrypted Form: This field includes encrypted information. This data can’t be added.')}\n </Tooltip>\n </div>\n </>\n);\n\nexport default EncryptedTag;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Checkbox } from '@jotforminc/magnet';\nimport ProtectedTag from './ProtectedTag';\nimport EncryptedTag from './EncryptedTag';\n\nconst WithOptionRenderer = (isSingle, showOptionValue) => {\n return ({\n option: {\n text, value, isProtected, isEncrypted\n }, isSelected\n }) => {\n return (\n <div\n className=\"formFields-option\"\n data-value={value}\n data-selected={isSelected}\n data-testid={`selectiongroup-option-${value}`}\n >\n {isSingle && (\n <Checkbox\n checked={isSelected}\n size=\"small\"\n onChange={f => f}\n data-testid={`selectiongroup-option-checkbox-${value}`}\n />\n )}\n <div className=\"formFields-option-column formFields-option-content\">\n <span className=\"formFields-option-text\">{text}</span>\n {showOptionValue && (\n <i style={{ opacity: '0.75', fontStyle: 'normal', fontSize: '12px' }}>\n {' '}\n { ` - ${value}` }\n {' '}\n </i>\n )}\n </div>\n {(isProtected || isEncrypted) && (\n <div className=\"formFields-option-column forProtectedFields\">\n {isProtected ? <ProtectedTag /> : <EncryptedTag />}\n </div>\n )}\n </div>\n );\n };\n};\n\nexport default WithOptionRenderer;\n","import classNames from 'classnames';\nimport {\n arrayOf, bool, func, objectOf, oneOfType, shape, string\n} from 'prop-types';\nimport React, { useState } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { useFuse } from '@jotforminc/hooks';\nimport SearchInput from '@jotforminc/search-input';\n\nimport { IconMagnifyingGlass, IconAngleUp } from '@jotforminc/svg-icons';\nimport SelectionGroup from './SelectionGroup';\nimport Option from './Option';\n\nconst questionsPropType = arrayOf(\n shape({\n formTitle: string,\n questions: oneOfType([\n arrayOf(shape({ text: string, qid: string })),\n objectOf(shape({ text: string, qid: string }))\n ])\n })\n);\n\nfunction ColoredFieldsRenderer({\n formTitle,\n questions,\n color,\n optionParser,\n suggestions,\n setMenuVisibility,\n isSingle,\n defaultValue,\n hasForm,\n onChange,\n formID,\n staticFields,\n isMain,\n isExpanded,\n setExpanded\n}) {\n const options = optionParser(questions, { staticFields: staticFields.map(f => ({ ...f, placeholder: isMain ? f.placeholder : f.placeholder.replace('{', `{f${formID}_`) })) });\n const suggestedOptions = options.filter(({ text }) => suggestions?.find(({ text: suggestionText }) => text === suggestionText));\n const wrapperClasses = classNames('formFields-wrapper', { isCollapsed: !isExpanded });\n const suggestionText = suggestions?.[0]?.text?.toLowerCase();\n\n return (\n <div className={wrapperClasses} key={formTitle}>\n <div className=\"formFields-select\">\n {formTitle && (\n <div\n className=\"formFields-header\"\n onClick={setExpanded}\n style={{\n borderLeftColor: color\n }}\n >\n <div className=\"formFields-header-text\">\n {formTitle}\n </div>\n <div className=\"formFields-header-icon\">\n <IconAngleUp />\n </div>\n </div>\n )}\n {suggestedOptions.length !== 0 && hasForm && isExpanded && (\n <SelectionGroup\n isMultiSelect={isSingle} // yes!\n options={suggestedOptions}\n defaultValue={isSingle ? defaultValue : ''}\n onSelectionChange={val => {\n if (!isSingle) {\n setMenuVisibility(false);\n }\n onChange(isSingle ? val : [val]);\n }}\n OptionRenderer={Option(isSingle)}\n />\n )}\n {options.length === 0 && hasForm && isExpanded && (\n <div className=\"formFields-empty\">\n {t(`This form doesn't have any ${suggestionText || 'appropriate'} fields to add.`)}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nColoredFieldsRenderer.propTypes = {\n formTitle: string.isRequired,\n color: string.isRequired,\n suggestions: arrayOf(shape({})).isRequired,\n questions: arrayOf(questionsPropType).isRequired,\n hasForm: bool.isRequired,\n isSingle: bool.isRequired,\n setMenuVisibility: func.isRequired,\n defaultValue: arrayOf(string).isRequired,\n onChange: func.isRequired,\n optionParser: func.isRequired,\n formID: string.isRequired,\n staticFields: arrayOf(shape({})).isRequired,\n isMain: bool.isRequired,\n isExpanded: bool,\n setExpanded: func\n};\n\nColoredFieldsRenderer.defaultProps = {\n isExpanded: true,\n setExpanded: x => x\n};\n\nexport default function MultipleForms({\n hasForm,\n isSingle,\n setMenuVisibility,\n defaultValue,\n onChange,\n optionParser,\n formArray,\n staticFields,\n isDark\n}) {\n const [searchTerm, setSearchTerm] = useState('');\n const [expandedIndex, setExpandedIndex] = useState(0);\n const allQuestions = formArray.flatMap(q => optionParser(q.questions));\n const suggestions = useFuse(allQuestions, searchTerm, ['name', 'text']);\n const noResultFound = suggestions.length === 0 && optionParser(formArray.flatMap(q => q.questions)).length !== 0;\n\n const setExpanded = index => setExpandedIndex(expandedIndex === index ? -1 : index);\n\n return (\n <div className={classNames('formFields-container', 'forMultiple', { isDark })}>\n <div className=\"formFields-row forSearch\">\n <div className=\"formFields-search-icon\">\n <IconMagnifyingGlass />\n </div>\n <SearchInput className=\"formFields-search\" placeholder={t('Search fields')} onChange={setSearchTerm} />\n </div>\n <div className=\"formFields-row forFields\">\n {formArray.map(({\n formTitle, questions, color, id, isMain, staticFields: formSpecificStaticFields = undefined\n }, index) => {\n const toggleExpand = () => setExpanded(index);\n return (\n <ColoredFieldsRenderer\n key={id || formTitle}\n formTitle={formTitle}\n questions={questions}\n color={color}\n isSingle={isSingle}\n setMenuVisibility={setMenuVisibility}\n defaultValue={defaultValue}\n onChange={onChange}\n optionParser={optionParser}\n hasForm={hasForm}\n suggestions={suggestions}\n formID={id}\n staticFields={formSpecificStaticFields || staticFields}\n isMain={isMain}\n isExpanded={expandedIndex === index || searchTerm.length > 2}\n setExpanded={toggleExpand}\n />\n );\n })}\n </div>\n {noResultFound ? (\n <div className=\"formFields-empty\">\n {t('No result found. We couldn’t find any matching items.')}\n </div>\n ) : null}\n {!hasForm && (\n <div className=\"formFields-empty\">\n {t(\"You don't have a form to select a field.\")}\n </div>\n )}\n </div>\n );\n}\n\nMultipleForms.propTypes = {\n formArray: questionsPropType.isRequired,\n hasForm: bool.isRequired,\n isSingle: bool.isRequired,\n setMenuVisibility: func.isRequired,\n defaultValue: arrayOf(string).isRequired,\n onChange: func.isRequired,\n optionParser: func.isRequired,\n staticFields: arrayOf(shape({})).isRequired,\n isDark: string\n};\n\nMultipleForms.defaultProps = {\n isDark: false\n};\n","import {\n arrayOf, bool, func, objectOf, oneOfType, shape, string\n} from 'prop-types';\nimport React from 'react';\nimport { t } from '@jotforminc/translation';\n\nimport SelectionGroup from './SelectionGroup';\nimport Option from './Option';\n\nexport default function SingleForm({\n formTitle,\n questions,\n hasForm,\n isSingle,\n setMenuVisibility,\n defaultValue,\n onChange,\n showOptionValue,\n isEncrypted\n}) {\n const checkIsEncrypted = value => (isEncrypted && !['{form_title}', '{id}'].includes(value));\n\n const refactoredQuestions = questions.map(question => ({\n ...question,\n isEncrypted: checkIsEncrypted(question.value)\n }));\n return (\n <div className=\"formFields-wrapper\" key={formTitle}>\n <div className=\"formFields-select\">\n {formTitle && (\n <div className=\"formFields-header\">\n {formTitle}\n </div>\n )}\n {questions.length !== 0 && hasForm && (\n <SelectionGroup\n isMultiSelect={isSingle} // yes!\n options={refactoredQuestions}\n defaultValue={isSingle ? defaultValue : ''}\n onSelectionChange={val => {\n if (!isSingle) {\n setMenuVisibility(false);\n }\n onChange(isSingle ? val : [val]);\n }}\n OptionRenderer={Option(isSingle, showOptionValue)}\n />\n )}\n {questions.length === 0 && hasForm && (\n <div className=\"formFields-empty\">\n {t(\"Your form doesn't have any appropriate fields to add.\")}\n </div>\n )}\n {!hasForm && (\n <div className=\"formFields-empty\">\n {t(\"You don't have a form to select a field.\")}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nconst questionsPropType = oneOfType([\n arrayOf(shape({ text: string, qid: string })),\n objectOf(shape({ text: string, qid: string }))\n]);\n\nSingleForm.defaultProps = {\n formTitle: '',\n showOptionValue: false,\n isEncrypted: false\n};\n\nSingleForm.propTypes = {\n formTitle: string,\n questions: questionsPropType.isRequired,\n hasForm: bool.isRequired,\n isSingle: bool.isRequired,\n setMenuVisibility: func.isRequired,\n defaultValue: arrayOf(string).isRequired,\n onChange: func.isRequired,\n showOptionValue: bool,\n isEncrypted: bool\n};\n","import React, {\n useRef, useImperativeHandle, forwardRef, useEffect\n} from 'react';\nimport {\n arrayOf, shape, string, func, bool, oneOfType, objectOf\n} from 'prop-types';\nimport classNames from 'classnames';\nimport { Popover, Hooks } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport { getPlaceholderListWithStaticFields, preparePlaceholderDynamicList } from '@jotforminc/utils';\nimport { STATIC_FIELDS_WITH_PLACEHOLDER } from '@jotforminc/constants';\n\nimport { IconLinkDiagonal } from '@jotforminc/svg-icons';\nimport {\n SingleForm, MultipleForms\n} from './components';\n\nimport './styles/FormFields.scss';\n\nconst FormFields = forwardRef(({\n usedFromWorkflow,\n anotherFieldDropdown,\n defaultValue,\n questions,\n onChange,\n addStaticFields,\n staticFields,\n hasForm,\n formTitle,\n isSingle,\n menuTargetRef,\n isButtonVisible,\n fieldsLabelText,\n useMultipleForms,\n formArray,\n isDark,\n usePortal,\n popoverClassName,\n showOptionValue,\n showProtectedTag,\n onVisibilityChange,\n duplicatedEmails,\n isEncrypted\n}, ref) => {\n const menuRef = useRef();\n const buttonRef = useRef();\n const onButtonClickCallbackRef = useRef(null);\n const [isMenuVisible, setMenuVisibility] = Hooks.useClickOutsideState(false, [menuRef, buttonRef]);\n const isFormFieldsDisabledForWorkflow = value => duplicatedEmails && value && duplicatedEmails?.length > 0 && duplicatedEmails.includes(value);\n const getOptions = (formQuestions, opts = {}) => {\n const { staticFields: staticFieldsOptions = staticFields } = opts;\n const questionsArray = Object.values(formQuestions);\n const placeholderList = addStaticFields\n ? getPlaceholderListWithStaticFields({\n questions: questionsArray, includeSeparator: false, staticFields: staticFieldsOptions, anotherFieldDropdown, usedFromWorkflow\n })\n : preparePlaceholderDynamicList(questionsArray, anotherFieldDropdown, usedFromWorkflow);\n // 'protected' is a reserved word in strict mode. so mapeed it to isProtected field\n return placeholderList.map(({\n text, placeholder: value, disabled, isProtected\n }) => ({\n text, value, disabled: isFormFieldsDisabledForWorkflow(value) || disabled, isProtected: isProtected && showProtectedTag\n }));\n };\n\n const handleButtonClick = () => {\n onButtonClickCallbackRef.current?.();\n setMenuVisibility(!isMenuVisible);\n };\n\n useImperativeHandle(ref, () => ({\n setMenuVisibility,\n getIsMenuVisible: () => isMenuVisible,\n setOnButtonClickCallback: callback => {\n onButtonClickCallbackRef.current = callback;\n }\n }));\n\n useEffect(() => {\n onVisibilityChange(isMenuVisible);\n }, [isMenuVisible]);\n\n return (\n <div className=\"formFields\">\n {isButtonVisible && (\n <button\n className={`formFields-button${isMenuVisible ? ' isMenuVisible' : ''}`}\n type=\"button\"\n ref={buttonRef}\n onClick={handleButtonClick}\n >\n <div className=\"formFields-icon-wrapper\">\n <IconLinkDiagonal className=\"formFields-icon\" />\n </div>\n <div className=\"formFields-text\">\n {t(fieldsLabelText)}\n </div>\n </button>\n )}\n {isMenuVisible && (\n <Popover\n ref={menuRef}\n className={classNames('formFields-popover', popoverClassName)}\n targetRef={menuTargetRef || buttonRef}\n usePortal={usePortal || useMultipleForms}\n popoverOptions={{ placement: 'bottom-end' }}\n >\n {useMultipleForms ? (\n <MultipleForms\n optionParser={getOptions}\n formArray={formArray}\n hasForm={hasForm}\n isSingle={isSingle}\n setMenuVisibility={setMenuVisibility}\n defaultValue={defaultValue}\n onChange={onChange}\n staticFields={staticFields}\n isDark={isDark}\n />\n ) : (\n <SingleForm\n questions={getOptions(questions)}\n formTitle={formTitle}\n hasForm={hasForm}\n isSingle={isSingle}\n setMenuVisibility={setMenuVisibility}\n defaultValue={defaultValue}\n onChange={onChange}\n showOptionValue={showOptionValue}\n isEncrypted={isEncrypted}\n />\n )}\n </Popover>\n )}\n </div>\n );\n});\n\nconst questionsPropType = oneOfType([\n arrayOf(shape({ text: string, qid: string })),\n objectOf(shape({ text: string, qid: string }))\n]);\n\nFormFields.propTypes = {\n usedFromWorkflow: bool,\n anotherFieldDropdown: bool,\n defaultValue: arrayOf(string),\n questions: questionsPropType,\n addStaticFields: bool,\n staticFields: arrayOf(shape({})),\n isSingle: bool,\n onChange: func,\n hasForm: bool,\n formTitle: string,\n menuTargetRef: shape({}),\n isButtonVisible: bool,\n fieldsLabelText: string,\n useMultipleForms: bool,\n formArray: arrayOf(shape({})),\n isDark: bool,\n usePortal: bool,\n popoverClassName: string,\n showOptionValue: bool,\n showProtectedTag: bool,\n onVisibilityChange: func,\n duplicatedEmails: shape(),\n isEncrypted: bool\n};\n\nFormFields.defaultProps = {\n usedFromWorkflow: false,\n anotherFieldDropdown: false,\n defaultValue: [],\n questions: [],\n addStaticFields: false,\n staticFields: STATIC_FIELDS_WITH_PLACEHOLDER,\n isSingle: false,\n onChange: f => f,\n hasForm: true,\n formTitle: '',\n menuTargetRef: null,\n isButtonVisible: true,\n fieldsLabelText: 'Form Fields',\n useMultipleForms: false,\n formArray: [],\n isDark: false,\n usePortal: false,\n popoverClassName: null,\n showOptionValue: false,\n showProtectedTag: false,\n onVisibilityChange: () => null,\n duplicatedEmails: [],\n isEncrypted: false\n};\n\nexport default FormFields;\n","import Styled from 'styled-components';\n\nexport const ScSuggestions = Styled.div`\n font-size: 16px;\n line-height: 1em;\n border-radius: 4px;\n box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.5);\n background-color: #fff;\n width: clamp(320px, 100%, 640px);\n padding: .375em 0;\n height: 260px;\n overflow-x: hidden;\n\n .suggestion {\n display: flex;\n align-items: center;\n padding: .75em 1.25em;\n position: relative;\n cursor: pointer;\n transition: background-color .15s;\n\n &-email-container {\n display: flex;\n justify-content: flex-start;\n margin-right: 10px;\n }\n\n &-email {\n text-overflow: ellipsis;\n width: 16em;\n overflow: hidden;\n white-space: nowrap;\n }\n\n &-info {\n font-size: .875em;\n color: #2c3345;\n color: #6a6e8f;\n flex: 1 1 auto;\n position: relative;\n }\n\n &-teamlist {\n background-color: #2b3245;\n border-radius: 0.25em;\n z-index: 1;\n width: auto;\n position: absolute;\n right: -10em;\n }\n\n &-teamitem {\n background-color: #2b3245;\n color: #abadb4;\n padding: 0.5em 0.6875em;\n text-align: left;\n display: flex;\n right: 0em;\n width: 14.0625em;\n z-index: 1;\n }\n\n &-avatar {\n flex: 0 0 32px;\n height: 32px;\n border: 2px solid #fff;\n border-radius: 50%;\n overflow: hidden;\n font-size: .75em;\n margin-right: 1em;\n\n div {\n height: 100%;\n line-height: 32px;\n color: #fff;\n text-align: center;\n font-weight: 500;\n background-color: #b9bbd2;\n background-repeat: no-repeat;\n background-size: cover;\n text-transform: uppercase;\n }\n }\n .expand-list {\n background-color: #EBEDF3;\n color: #2C3345;\n border-radius: 1em;\n text-align: center;\n width: 5em;\n height: 1.5em;\n white-space: nowrap;\n margin-left: 2em;\n\n &:hover {\n background-color: rgba(84, 180, 92, 0.1);\n }\n }\n\n & + .suggestion:before {\n content: \"\";\n display: block;\n height: 1px;\n right: 1em;\n left: 1em;\n position: absolute;\n top: 0;\n background-color: #eaebf2;\n }\n\n &:hover {\n background-color: rgba(84, 180, 92, 0.1);\n }\n } \n`;\n\nexport const ScList = Styled.div`\n .suggestion {\n display: flex;\n align-items: center;\n position: relative;\n cursor: default;\n\n &-teamlist {\n background-color: #2b3245;\n border-radius: 0.25em;\n z-index: 1;\n width: auto;\n position: absolute;\n top: -1em;\n right: -10em ;\n max-height: 40em;\n overflow-y: scroll;\n }\n\n &-info {\n font-size: .875em;\n color: white;\n flex: 1 1 auto;\n position: relative;\n max-width: 13em;\n }\n\n\n &-email {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n color: #A9AACB;\n }\n\n &-teamitem {\n background-color: #2b3245;\n color: #abadb4;\n padding: 0.5em 0.6875em;\n text-align: left;\n display: flex;\n right: 0em;\n width: 16em;\n z-index: 1;\n border-radius: 1em;\n }\n\n &-avatar {\n flex: 0 0 32px;\n height: 32px;\n border: 2px solid #fff;\n border-radius: 50%;\n overflow: hidden;\n font-size: .75em;\n margin-right: 1em;\n\n div {\n height: 100%;\n line-height: 32px;\n color: #fff;\n text-align: center;\n font-weight: 500;\n background-color: #b9bbd2;\n background-repeat: no-repeat;\n background-size: cover;\n text-transform: uppercase;\n }\n }\n\n &:after {\n border: 0.3125em solid transparent;\n border-bottom-color: #000;\n bottom: 1em;\n content: \" \";\n left: -3em;\n margin-left: -0.3125em;\n position: absolute;\n }\n`;\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n string, func, arrayOf, shape, bool\n} from 'prop-types';\nimport { Popover, Utils } from '@jotforminc/uikit';\n\nimport { ScSuggestions, ScList } from './styles';\n\nconst SubMember = ({\n name, avatar, subMemberList\n}) => {\n const [isListExpanded, setIsListExpanded] = useState(false);\n const targetRef = useRef();\n\n return (\n <>\n <div className=\"suggestion-avatar\">\n {avatar}\n </div>\n <div className=\"suggestion-info\">\n <div className=\"suggestion-name\">{name}</div>\n <div className=\"suggestion-email-container\">\n <div className=\"suggestion-email\">\n {subMemberList.map(member => (member.email)).toString()}\n </div>\n <div\n className=\"expand-list\"\n id='email'\n onMouseEnter={() => setIsListExpanded(true)}\n onMouseLeave={() => setIsListExpanded(false)}\n ref={targetRef}\n >\n {`+ ${subMemberList.length} More`}\n </div>\n </div>\n {isListExpanded && (\n <Popover\n targetRef={targetRef}\n usePortal={true}\n popoverOptions={{\n placement: 'bottom-end',\n modifiers: [\n { name: 'offset', options: { offset: [15, 25] } }\n ]\n }}\n style={{ zIndex: 100002 }}\n >\n <ScList>\n <div className='suggestion'>\n <div className=\"suggestion-teamlist\">\n {subMemberList.map(member => {\n return (\n <div className='suggestion-teamitem'>\n <div className=\"suggestion-avatar\">\n <div style={{ backgroundImage: `url(${member.avatar})` }} />\n </div>\n <div className=\"suggestion-info\">\n <div className=\"suggestion-name\">{member.username}</div>\n <div className=\"suggestion-email\">{member.email}</div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </ScList>\n </Popover>\n )}\n </div>\n </>\n );\n};\n\nSubMember.propTypes = {\n name: string.isRequired,\n avatar: string.isRequired,\n subMemberList: arrayOf(shape({\n name: string,\n email: string,\n avatarUrl: string\n })).isRequired\n};\n\nconst UserList = ({\n list, onClick, useMouseDown, useKeyboardEvents, preventClickDefault, onBlurEventHandler\n}) => {\n const containerRef = useRef();\n const tabIndex = useKeyboardEvents ? { tabIndex: 0 } : {};\n const keyHandler = event => {\n const relatedKeyCodes = [40, 38];\n // Don't handle if key is not arrowdown/arrowup\n if (relatedKeyCodes.indexOf(event.keyCode) === -1 || !containerRef.current) { return; }\n event.preventDefault();\n const { activeElement } = document;\n let nextElement;\n const ownElement = containerRef.current.contains(activeElement);\n if (ownElement && !activeElement.classList.contains('suggestion')) {\n return;\n }\n\n const direction = event.keyCode === 40 ? 'down' : 'up';\n switch (true) {\n case ownElement && direction === 'down' && !!activeElement.nextElementSibling:\n nextElement = activeElement.nextElementSibling;\n break;\n case ownElement && direction === 'up' && !!activeElement.previousElementSibling:\n nextElement = activeElement.previousElementSibling;\n break;\n default:\n nextElement = containerRef.current.querySelector('.suggestion'); // First Suggestion\n break;\n }\n nextElement.focus();\n };\n if (useKeyboardEvents) {\n useEffect(() => {\n document.addEventListener('keydown', keyHandler);\n return () => document.removeEventListener('keydown', keyHandler);\n }, []);\n }\n return (\n <ScSuggestions className=\"suggestion-list\" ref={containerRef}>\n {list.map(user => {\n const {\n name, email, avatarUrl, username, subMembers\n } = user;\n const handleClick = e => {\n // to prevent looping behavior with input onBlur\n if (preventClickDefault) {\n e.preventDefault();\n }\n return onClick(user);\n };\n const handleKeyDown = event => Utils.isPressedKeyEnterOrSpace(event) && onClick(user);\n\n const identifier = name || email || username;\n const avatar = avatarUrl\n ? <div style={{ backgroundImage: `url(${avatarUrl})` }} />\n : <div>{identifier[0]}</div>;\n\n const handler = {\n [useMouseDown ? 'onMouseDown' : 'onClick']: handleClick,\n onBlur: onBlurEventHandler\n };\n if (subMembers) {\n return (\n <div\n className='suggestion'\n key={email}\n {...handler}\n onKeyDown={handleKeyDown}\n {...tabIndex}\n >\n <SubMember\n name={name}\n avatar={avatar}\n subMemberList={subMembers}\n containerRef={containerRef}\n />\n </div>\n );\n }\n return (\n <div\n key={email}\n className=\"suggestion\"\n {...handler}\n onKeyDown={handleKeyDown}\n {...tabIndex}\n >\n <div className=\"suggestion-avatar\">\n {avatar}\n </div>\n <div className=\"suggestion-info\">\n <div className=\"suggestion-name\">{name}</div>\n <div className=\"suggestion-email\">{email}</div>\n </div>\n </div>\n );\n })}\n </ScSuggestions>\n );\n};\n\nUserList.propTypes = {\n list: arrayOf(shape({\n name: string,\n email: string,\n avatarUrl: string\n })).isRequired,\n onClick: func.isRequired,\n useMouseDown: bool,\n useKeyboardEvents: bool,\n preventClickDefault: bool,\n onBlurEventHandler: func\n};\n\nUserList.defaultProps = {\n useMouseDown: false,\n useKeyboardEvents: false,\n preventClickDefault: false,\n onBlurEventHandler: f => f\n};\n\nexport default UserList;\n","import compose from 'lodash/fp/compose';\n\nimport {\n getPlaceholder,\n getPlaceholderList,\n getQuestionByPlaceholder\n} from '@jotforminc/utils';\n\nexport const tagifyQuestion = ({\n question, asString = true, mode, key = '', returnAll = false\n}) => {\n const placeholderRaw = getPlaceholder(question);\n const placeholders = Array.isArray(placeholderRaw) ? placeholderRaw : [placeholderRaw];\n const allTagifiedQuestions = placeholders.map(({ placeholder, text }) => {\n const tagifyObject = { name: placeholder, value: text, editable: mode !== 'mix' };\n if (!asString) {\n return tagifyObject;\n }\n\n const jsonString = JSON.stringify(tagifyObject);\n return mode === 'mix' ? `#start#${jsonString}#end#` : jsonString;\n });\n if (returnAll) {\n return allTagifiedQuestions;\n }\n const tagified = allTagifiedQuestions.find(tagifiedQuestion => (asString ? tagifiedQuestion.includes(`${key}`) : JSON.stringify(tagifiedQuestion).includes(`${key}`)));\n return tagified || allTagifiedQuestions[0];\n};\n\nexport const getStaticFieldsAsSimpleQuestions = fields => fields.map(({ text, placeholder }) => ({ text, name: placeholder.match(/{(.*)}/)[1] }));\n\nconst getQuestionsFromTagifyValue = (tagifyValue, questions, mode) => questions.filter(question => {\n const taggedQuestions = tagifyQuestion({ question, mode, returnAll: true });\n return taggedQuestions.some(tag => tagifyValue.indexOf(tag) > -1);\n});\nconst getQuestionPlaceholderList = questions => getPlaceholderList(questions).map(({ placeholder }) => placeholder);\nexport const getSelectedPlaceholderList = compose(getQuestionPlaceholderList, getQuestionsFromTagifyValue);\n\nexport const tagifyPlaceholder = (placeholder, questionList, mode) => {\n const question = getQuestionByPlaceholder(placeholder, questionList);\n return question ? tagifyQuestion({\n question, asString: false, key: placeholder, mode\n }) : false;\n};\nexport const tagifyPlaceholderList = (placeholderList, questionList, mode) => placeholderList.map(placeholder => tagifyPlaceholder(placeholder, questionList, mode));\n\nexport const getTagifyValue = (sanitizedValue, questions, mode) => {\n if (!sanitizedValue || (Array.isArray(sanitizedValue) && sanitizedValue.length === 0)) {\n return '';\n }\n const usedQuestionNames = {};\n return questions.reduce((prev, question) => {\n switch (question.type) {\n case 'control_mixed':\n case 'control_inline': {\n const placeholderRaw = getPlaceholder(question);\n const placeholders = Array.isArray(placeholderRaw) ? placeholderRaw : [placeholderRaw];\n return (placeholders || []).reduce((sanitized, { placeholder }) => {\n const key = placeholder;\n const tagified = tagifyQuestion({ question, mode, key });\n return sanitized.split(key).join(tagified);\n }, prev);\n }\n default:\n const tagified = tagifyQuestion({ question, mode });\n if (!prev || prev.length < 1) {\n return '';\n }\n // If tagified value is inserted do not recurse\n if (usedQuestionNames[question.name]) {\n return prev;\n }\n usedQuestionNames[question.name] = true;\n return prev.split(`{${question.name}}`).join(tagified);\n }\n },\n sanitizedValue);\n};\n\nexport const getSanitizedValue = (isModeMix, tagifyValue, selectedPlaceholderList, questionsWithStaticFieldsList) => {\n if (!isModeMix) {\n return (tagifyValue && JSON.parse(tagifyValue));\n }\n const sanitizedValue = selectedPlaceholderList.reduce((prev, placeholder) => {\n const question = getQuestionByPlaceholder(placeholder, questionsWithStaticFieldsList);\n let key;\n let from;\n switch (question.type) {\n case 'control_inline':\n case 'control_mixed':\n {\n const placeholderRaw = getPlaceholder(question);\n const placeholders = Array.isArray(placeholderRaw) ? placeholderRaw : [placeholderRaw];\n const tag = placeholders.find(({ placeholder: tmp }) => prev.includes(tmp) && tmp === placeholder);\n key = tag?.placeholder;\n from = key;\n }\n break;\n default:\n key = '';\n from = `{${question.name}}`;\n }\n const tagifiedQuestion = tagifyQuestion({ question, mode: 'mix', key });\n const re = new RegExp(tagifiedQuestion.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'g');\n return prev.replace(re, from);\n }, tagifyValue).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n\n return (sanitizedValue);\n};\n\nexport const sanitizeTextBeforeSet = data => {\n return data.replace(/(<([^>]+)>)/ig, '');\n};\n","const patchTagify = tagify => {\n const clonedTagify = tagify;\n clonedTagify.addMixTags = function addMixTags(tagsItems) {\n const {\n settings: {\n pattern, transformTag, classNames, tagSuffix, focusAfterAddingTag\n },\n state: { tag: { prefix: tagPrefix } = {} }\n } = clonedTagify;\n\n const defaultPrefix = tagPrefix || (pattern?.source || [])[0];\n const prefixedTagItems = tagsItems.map(tagItem => ({ ...tagItem, prefix: tagItem.prefix || defaultPrefix }));\n\n return prefixedTagItems.map(tagItem => {\n transformTag.call(clonedTagify, tagItem);\n const tagElement = clonedTagify.createTagElem(tagItem);\n\n try {\n if (!clonedTagify.replaceTextWithNode(tagElement)) {\n if (clonedTagify.DOM.input.lastChild && clonedTagify.DOM.input.lastChild.tagName === 'BR') {\n clonedTagify.DOM.input.insertBefore(tagElement, clonedTagify.DOM.input.lastChild);\n } else {\n clonedTagify.DOM.input.appendChild(tagElement);\n }\n }\n } catch {\n clonedTagify.DOM.input.appendChild(tagElement);\n }\n\n if (tagSuffix) {\n clonedTagify.insertAfterTag(tagElement, tagSuffix);\n }\n\n if (focusAfterAddingTag) {\n clonedTagify.DOM.input.focus();\n clonedTagify.placeCaretAfterNode(tagElement);\n }\n\n setTimeout(() => tagElement.classList.add(classNames.tagNoAnimation), 300);\n\n clonedTagify.value.push(tagItem);\n clonedTagify.update();\n\n clonedTagify.trigger('add', { tag: tagElement, data: tagItem });\n return tagElement;\n });\n };\n\n clonedTagify.DOM.input.addEventListener('keypress', e => {\n if (e?.keyCode === 13) {\n clonedTagify.DOM.input.blur();\n e.preventDefault();\n }\n });\n\n return clonedTagify;\n};\n\nexport default patchTagify;\n","export const STATIC_FIELDS_WITH_PLACEHOLDER_FOR_SACL = [\n { text: 'Form Title', placeholder: '{form_title}' }\n];\n\nexport const EMAIL_TEMPLATE_TYPES = {\n WORKFLOW_APPROVE_START: 'WORKFLOW_APPROVE_START',\n WORKFLOW_APPROVE_APPROVED: 'WORKFLOW_APPROVE_APPROVED',\n WORKFLOW_APPROVE_REJECTED: 'WORKFLOW_APPROVE_REJECTED',\n WORKFLOW_SEND_EMAIL_GENERAL: 'WORKFLOW_SEND_EMAIL_GENERAL',\n WORKFLOW_APPROVE_REASSIGN: 'WORKFLOW_APPROVE_REASSIGN',\n WORKFLOW_APPROVE_REASSIGN_APPROVER: 'WORKFLOW_APPROVE_REASSIGN_ASSIGNEE',\n WORKFLOW_ASSIGN_START: 'WORKFLOW_ASSIGN_START',\n FORM_SUBMIT_AUTORESPONDER: 'autorespond',\n FORM_SUBMIT_NOTIFICATION: 'notification',\n FORM_SAVE_AND_CONTINUE_LATER: 'sacl',\n FORM_SUBMIT_CONDITIONAL: 'FORM_SUBMIT_CONDITIONAL',\n FORM_SHARE: 'FORM_SHARE',\n FORM_REMINDER: 'FORM_REMINDER',\n APPOINTMENT_REMINDER: 'APPOINTMENT_REMINDER',\n WORKFLOW_ASSIGN_FORM_NOTIFICATION: 'WORKFLOW_ASSIGN_FORM_NOTIFICATION',\n WORKFLOW_SEND_PDF: 'WORKFLOW_SEND_PDF',\n WORKFLOW_SEND_REPORT: 'WORKFLOW_SEND_REPORT'\n};\n","import React, {\n useRef, useState, useEffect, useMemo, useCallback, forwardRef, useImperativeHandle\n} from 'react';\nimport {\n string, bool, shape, oneOfType, arrayOf, func, elementType\n} from 'prop-types';\nimport { Hooks, Popover } from '@jotforminc/uikit';\nimport { tagDuplicateQuestions, isBright } from '@jotforminc/utils';\nimport { useFuse } from '@jotforminc/hooks';\nimport FormFields from '@jotforminc/form-fields-menu';\nimport UserList from '@jotforminc/user-list';\nimport { STATIC_FIELDS_WITH_PLACEHOLDER } from '@jotforminc/constants';\n\nimport difference from 'lodash/difference';\nimport Tagify from '@yaireo/tagify/dist/react.tagify';\nimport uniqBy from 'lodash/uniqBy';\nimport '@yaireo/tagify/dist/tagify.css';\n\nimport './styles/TagInput.scss';\nimport {\n getTagifyValue, getSelectedPlaceholderList,\n tagifyQuestion, tagifyPlaceholderList,\n getStaticFieldsAsSimpleQuestions, getSanitizedValue,\n sanitizeTextBeforeSet\n} from './utils';\nimport patchTagify from './patch';\nimport {\n STATIC_FIELDS_WITH_PLACEHOLDER_FOR_SACL,\n EMAIL_TEMPLATE_TYPES\n} from './constants';\n\nconst FIELD_REGEX = /\\{[^}]+\\}/gi;\n\nconst getAvailableUsers = (userList, addedTags) => {\n if (!addedTags) {\n return userList;\n }\n return userList.filter(a => !addedTags.find(tag => tag.value === a.email));\n};\n\n// eslint-disable-next-line max-statements\nconst TagInput = forwardRef(({\n value, defaultValue, addFormFields, addStaticFields, questions: questionsProp, allowDuplicateFields, formTitle, onRemove,\n settings, onChange, userList, popoverProps, SuggestionRenderer, onBlur, showFormFieldsOnClick, staticFieldsList, onFocus, isEncrypted,\n isSingleEntry, fieldsLabelText, useMultipleForms, formArray, showProtectedTag, showFormFieldsButtonOnFocus, validateSelectedBeforeAdd, keepInvalidTags, onAddTag,\n duplicatedEmails, useTextToTag, ...tagifyProps\n}, ref) => {\n const { mode, emailType } = settings;\n const isModeMix = mode === 'mix';\n const isEmailTypeSACL = emailType === EMAIL_TEMPLATE_TYPES.FORM_SAVE_AND_CONTINUE_LATER;\n const questions = useMemo(() => (useMultipleForms ? formArray.flatMap(({ questions: q }) => q) : questionsProp), [formArray, questionsProp, useMultipleForms]);\n const questionList = useMemo(() => tagDuplicateQuestions(Array.isArray(questions) ? questions : Object.values(questions || [])), [questions]);\n\n const staticFieldsAsSimpleQuestions = useMemo(() => getStaticFieldsAsSimpleQuestions(useMultipleForms ? formArray.flatMap(f => {\n const newPlaceholder = p => (f.isMain ? p.placeholder : p.placeholder.replace('{', `{f${f.id}_`));\n return staticFieldsList.map(s => ({ ...s, placeholder: newPlaceholder(s) }));\n }) : staticFieldsList), [staticFieldsList, formArray]);\n const staticFieldQuestionList = useMemo(() => (addStaticFields ? staticFieldsList : []), [addStaticFields]);\n const questionsWithStaticFieldsList = useMemo(() => [...questionList, ...staticFieldsAsSimpleQuestions], [questionList, staticFieldsAsSimpleQuestions]);\n const whiteList = useRef([]);\n\n useEffect(() => {\n whiteList.current = [\n ...whiteList.current,\n ...questionsWithStaticFieldsList.map(question => tagifyQuestion({ question, asString: false, mode })).filter(q => q)\n ];\n whiteList.current = uniqBy(whiteList.current, 'name');\n }, [questionsWithStaticFieldsList]);\n\n const sanitizedValue = useMemo(() => sanitizeTextBeforeSet(value || defaultValue), [value, defaultValue]);\n const tagifyRef = useRef(false);\n const suggestionListRef = useRef(false);\n const formFieldsRef = useRef(false);\n const tagifyContRef = useRef(false);\n const inputRef = { current: tagifyRef.current?.DOM?.input };\n const tagInputRef = useRef(false);\n const rootRef = Hooks.useCombinedRefs(tagInputRef, ref);\n const [textInputValue, setTextInputValue] = useState('');\n const [isFocused, setFocus] = useState(false);\n const [isFormFieldsVisible, setFormFieldsVisible] = useState(false);\n const [isSuggestionVisible, setSuggestionVisibility] = Hooks.useClickOutsideState(false, [suggestionListRef, inputRef]);\n const [tagifyValue, setTagifyValue] = useState(getTagifyValue(sanitizedValue, questionsWithStaticFieldsList, mode));\n const selectedPlaceholderList = getSelectedPlaceholderList(tagifyValue, questionsWithStaticFieldsList, mode);\n const userListSource = useMemo(() => getAvailableUsers(userList, tagifyRef.current.value), [tagifyValue]);\n const suggestedUserList = useFuse(userListSource, textInputValue);\n\n const handleSelectionChange = placeholderList => {\n if (!validateSelectedBeforeAdd(placeholderList)) return;\n\n if (isSingleEntry) {\n tagifyRef.current.removeAllTags();\n } else {\n const removedPlaceholderList = !allowDuplicateFields ? difference(selectedPlaceholderList, placeholderList) : [];\n tagifyRef.current.removeTags(tagifyPlaceholderList(removedPlaceholderList, questionsWithStaticFieldsList, mode).map(({ value: tmpValue }) => tmpValue));\n }\n onAddTag(placeholderList);\n const addedPlaceholderList = !allowDuplicateFields ? difference(placeholderList, selectedPlaceholderList) : placeholderList;\n const tags = tagifyPlaceholderList(addedPlaceholderList, questionsWithStaticFieldsList, mode);\n if (!tagifyRef.current.state?.selection?.range || tags.length > 1) {\n tagifyRef.current.addTags(tags);\n } else if (tags.length === 1) {\n const tagElem = tagifyRef.current.createTagElem(tags[0]);\n tagifyRef.current.injectAtCaret(tagElem);\n if (tagElem.previousSibling?.wholeText !== ' ') tagElem.before(document.createTextNode(' '));\n tagifyRef.current.placeCaretAfterNode(tagifyRef.current.insertAfterTag(tagElem));\n }\n };\n\n const splitTagsAndTexts = (addedTags = [], node) => {\n const invalidsShouldRemoved = !validateSelectedBeforeAdd(addedTags);\n const duplicatsShouldRemoved = !allowDuplicateFields && selectedPlaceholderList.some(item => addedTags.includes(item));\n\n if (invalidsShouldRemoved || duplicatsShouldRemoved) {\n node.textContent = node.textContent.replace(FIELD_REGEX, ''); // eslint-disable-line no-param-reassign\n tagifyRef.current.placeCaretAfterNode(node);\n tagifyRef.current.update();\n return;\n }\n\n const tags = tagifyPlaceholderList(addedTags, questionsWithStaticFieldsList, mode);\n if (isSingleEntry) {\n tagifyRef.current.removeAllTags();\n tagifyRef.current.addTags(tags);\n } else {\n const { textContent } = node;\n const [firstPartOfText, lastPartOfText] = textContent.split(FIELD_REGEX);\n node.textContent = `${firstPartOfText} `; // eslint-disable-line no-param-reassign\n const tagElem = tagifyRef.current.createTagElem(tags[0]);\n node.after(tagElem);\n tagElem.after(document.createTextNode(` ${lastPartOfText}`));\n tagifyRef.current.placeCaretAfterNode(tagElem);\n tagifyRef.current.update();\n }\n onAddTag([...selectedPlaceholderList, ...addedTags]);\n };\n\n const textToTag = () => {\n inputRef.current.childNodes.forEach(node => {\n const matchedTags = node.textContent.match(FIELD_REGEX) || [];\n if (node.nodeType === global.Node.TEXT_NODE && matchedTags.length > 0) {\n splitTagsAndTexts(matchedTags, node);\n }\n });\n };\n\n const colorifyTags = useCallback(() => {\n tagifyRef.current.getTagElms().forEach(elm => {\n const name = /{f(\\d*)_/gm.exec(elm.__tagifyTagData.name)?.[1];\n const { color } = formArray.find(({ id }) => id.toString() === name?.toString?.()) || formArray[0];\n const isDark = isBright(color);\n elm.style.setProperty('--tag-bg', color);\n elm.style.setProperty('--tag-text-color', isDark ? '#000' : '#fff');\n elm.setAttribute('data-state', isDark ? 'dark' : 'light');\n });\n }, [formArray]);\n\n const handleTagifyChange = ({ target: { value: tmpValue } }) => {\n const sanitizedText = sanitizeTextBeforeSet(tmpValue);\n setTagifyValue(sanitizedText);\n if (useMultipleForms && formArray.length && formArray[0].color && tagifyRef.current?.getTagElms?.()?.length) {\n colorifyTags();\n }\n if (useTextToTag) textToTag();\n };\n const handleInputChange = e => {\n const { detail: { textContent, value: tmpValue } } = e;\n const nextValue = (isModeMix ? textContent.split(/\\n/).pop().trim() : tmpValue);\n if (isSingleEntry) {\n tagifyRef.current.removeTags();\n }\n\n tagifyRef.current.update();\n setTextInputValue(nextValue);\n };\n\n const handleSuggestionClick = ({ email }) => {\n setTextInputValue('');\n\n if (isSingleEntry) {\n tagifyRef.current.removeAllTags();\n\n if (inputRef.current) {\n inputRef.current.innerHTML = email;\n }\n\n tagifyRef.current.update();\n setSuggestionVisibility(false);\n return;\n }\n\n tagifyRef.current.addTags([email]);\n return !isModeMix\n ? tagifyRef.current.input.set.call(tagifyRef.current)\n : inputRef.current.childNodes.forEach(node => {\n if (node.nodeType === global.Node.TEXT_NODE && node.textContent === textInputValue) {\n node.remove();\n }\n });\n };\n\n const addTags = (tagValue, removeAllTags) => {\n const newTagifyValue = getTagifyValue(tagValue, questionsWithStaticFieldsList, mode);\n const newSelectedPlaceholderList = getSelectedPlaceholderList(newTagifyValue, questionsWithStaticFieldsList, mode);\n if (removeAllTags || isSingleEntry) {\n tagifyRef.current.removeAllTags();\n }\n tagifyRef.current.addTags(tagifyPlaceholderList(newSelectedPlaceholderList, questionsWithStaticFieldsList, mode));\n };\n\n const onInputClick = () => {\n if (showFormFieldsOnClick) {\n formFieldsRef.current.setMenuVisibility(true);\n }\n };\n\n useEffect(() => {\n if (tagifyRef.current) {\n tagifyRef.current = patchTagify(tagifyRef.current);\n tagifyRef.current?.DOM?.input?.setAttribute('aria-label', tagifyProps.ariaLabel);\n }\n }, [tagifyRef.current]);\n\n useEffect(() => {\n setSuggestionVisibility(Boolean(textInputValue && suggestedUserList.length > 0));\n }, [textInputValue, suggestedUserList]);\n Hooks.useEffectIgnoreFirst(() => {\n onChange(getSanitizedValue(isModeMix, tagifyValue, selectedPlaceholderList, questionsWithStaticFieldsList));\n }, [tagifyValue]);\n\n const clearWhiteSpaces = () => {\n const textNodes = [...tagifyRef.current.DOM.input.childNodes].filter(node => node.nodeType === global.Node.TEXT_NODE);\n textNodes.forEach((node, i) => {\n const isPrevTag = node.previousSibling?.nodeName === 'TAG';\n const isNextTag = node.nextSibling?.nodeName === 'TAG';\n\n let text = node.nodeValue;\n if (i === 0 && !isPrevTag) {\n text = text.trimStart();\n }\n if (i === textNodes.length - 1 && !isNextTag) {\n text = text.trimEnd();\n }\n text = text.split(/\\s+/).join(' ');\n node.nodeValue = text; // eslint-disable-line no-param-reassign\n });\n tagifyRef.current.update();\n };\n\n Hooks.useEffectIgnoreFirst(() => {\n if (!isFormFieldsVisible) clearWhiteSpaces();\n }, [isFormFieldsVisible]);\n\n const handleBlur = (event, ...params) => {\n const inputValue = event.detail.tagify.DOM.originalInput.value;\n const sanitized = getSanitizedValue(isModeMix, inputValue, selectedPlaceholderList, questionsWithStaticFieldsList);\n // eslint-disable-next-line no-param-reassign\n event.target.value = sanitized;\n onBlur(event, ...params);\n setFocus(false);\n if (!event.detail.relatedTarget || event.detail.relatedTarget.getAttribute('class') !== 'formFields-button') {\n clearWhiteSpaces();\n }\n };\n\n const handleFocus = (event, ...params) => {\n onFocus(event, ...params);\n setFocus(true);\n };\n\n const handleRemove = (event, ...params) => {\n const inputValue = event.detail.tagify.DOM.originalInput.value;\n const sanitized = getSanitizedValue(isModeMix, inputValue, selectedPlaceholderList, keepInvalidTags, questionsWithStaticFieldsList);\n // eslint-disable-next-line no-param-reassign\n event.target.value = sanitized;\n onRemove(event, ...params);\n };\n\n useEffect(() => {\n if (useMultipleForms && formArray.length && formArray[0].color && tagifyRef.current?.getTagElms?.()?.length) {\n colorifyTags();\n }\n }, [formArray, value, colorifyTags, tagifyValue, useMultipleForms]);\n\n useImperativeHandle(rootRef, () => ({\n tagifyRef,\n addTags,\n formFieldsRef\n }));\n\n const isFormFieldsButtonVisible = showFormFieldsButtonOnFocus || !showFormFieldsOnClick;\n const formFieldsMenuTargetRef = showFormFieldsButtonOnFocus || showFormFieldsOnClick ? tagifyContRef : null;\n\n return (\n <div\n className={`jfTagInput${isFocused ? ' isFocused' : ''}${isFormFieldsVisible ? ' isFormFieldsVisible' : ''}`}\n onClick={onInputClick}\n ref={tagifyContRef}\n >\n <Tagify\n settings={{\n ...(addFormFields && questionList.length > 0 ? { whitelist: whiteList.current, prefix: /{/ } : {}),\n keepInvalidTags: keepInvalidTags,\n addTagOnBlur: false,\n delimiters: ',| ',\n duplicates: allowDuplicateFields,\n mixTagsInterpolator: ['#start#', '#end#'],\n ...settings,\n hooks: {\n beforeRemoveTag: () => {\n tagifyRef.current.update();\n setTextInputValue('');\n return new Promise(resolve => {\n resolve(true);\n });\n }\n },\n callbacks: {\n add: () => setTextInputValue(''),\n remove: () => {\n tagifyRef.current.update();\n }\n }\n }}\n {...tagifyProps}\n tagifyRef={tagifyRef}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onInput={handleInputChange}\n onChange={handleTagifyChange}\n onRemove={handleRemove}\n >\n {isModeMix ? tagifyValue : `[${tagifyValue}]`}\n </Tagify>\n {addFormFields && questions && (\n <FormFields\n ref={formFieldsRef}\n isButtonVisible={isFormFieldsButtonVisible}\n formTitle={formTitle}\n menuTargetRef={formFieldsMenuTargetRef}\n isSingle={!allowDuplicateFields}\n addStaticFields={addStaticFields}\n staticFields={!isEmailTypeSACL ? staticFieldQuestionList : STATIC_FIELDS_WITH_PLACEHOLDER_FOR_SACL}\n questions={!isEmailTypeSACL ? questionList : []}\n onChange={handleSelectionChange}\n defaultValue={selectedPlaceholderList}\n fieldsLabelText={fieldsLabelText}\n useMultipleForms={useMultipleForms}\n formArray={formArray}\n showProtectedTag={showProtectedTag}\n onVisibilityChange={setFormFieldsVisible}\n duplicatedEmails={duplicatedEmails}\n isEncrypted={isEncrypted}\n {...(tagifyProps ? { hasForm: tagifyProps?.hasForm } : {})}\n />\n )}\n {isSuggestionVisible && (\n <Popover\n ref={suggestionListRef}\n targetRef={tagifyContRef}\n usePortal={true}\n {...popoverProps}\n popoverOptions={{\n placement: 'bottom-start'\n }}\n style={{ zIndex: 7050 }}\n >\n <SuggestionRenderer\n list={suggestedUserList}\n onClick={handleSuggestionClick}\n useKeyboardEvents\n />\n </Popover>\n )}\n </div>\n );\n});\n\nTagInput.propTypes = {\n value: string,\n defaultValue: string,\n addFormFields: bool,\n addStaticFields: bool,\n staticFieldsList: arrayOf(shape({})),\n questions: oneOfType([\n shape({}),\n arrayOf(shape({}))\n ]),\n settings: shape({}),\n userList: arrayOf(shape({})),\n popoverProps: shape({}),\n SuggestionRenderer: elementType,\n allowDuplicateFields: bool,\n onChange: func,\n onBlur: func,\n onFocus: func,\n onRemove: func,\n formTitle: string,\n showFormFieldsOnClick: bool,\n isSingleEntry: bool,\n fieldsLabelText: string,\n useMultipleForms: bool,\n formArray: arrayOf(shape({})),\n showProtectedTag: bool,\n showFormFieldsButtonOnFocus: bool,\n validateSelectedBeforeAdd: func,\n keepInvalidTags: bool,\n duplicatedEmails: arrayOf(shape({})),\n isEncrypted: bool,\n onAddTag: func,\n useTextToTag: bool\n};\n\nTagInput.defaultProps = {\n value: '',\n defaultValue: '',\n addFormFields: false,\n addStaticFields: false,\n staticFieldsList: STATIC_FIELDS_WITH_PLACEHOLDER,\n questions: undefined,\n settings: {},\n popoverProps: {},\n userList: [],\n SuggestionRenderer: UserList,\n allowDuplicateFields: true,\n onChange: f => f,\n onBlur: f => f,\n onFocus: f => f,\n onRemove: f => f,\n formTitle: undefined,\n showFormFieldsOnClick: false,\n isSingleEntry: false,\n fieldsLabelText: 'Form Fields',\n useMultipleForms: false,\n formArray: [],\n showProtectedTag: false,\n showFormFieldsButtonOnFocus: false,\n validateSelectedBeforeAdd: () => true,\n keepInvalidTags: true,\n duplicatedEmails: [],\n isEncrypted: false,\n onAddTag: f => f,\n useTextToTag: false\n};\n\nexport default TagInput;\n","import React from 'react';\nimport {\n func, oneOfType, shape, string, arrayOf, bool\n} from 'prop-types';\nimport {\n getQuestionByPlaceholder,\n preparePillObjectFromQuestion,\n preparePillObjectFromEmail,\n computeQuestions\n} from '@jotforminc/utils';\nimport TagInput from '@jotforminc/tag-input';\n\nconst SingleEmailInput = ({\n addFormFields, value, formTitle, questions, userList,\n onChange, useArrayAsValue, isHIPAA, useMultipleForms, formArray, duplicatedEmails, ...props\n}) => {\n const valueAsArray = Array.isArray(value) && value[0] ? value[0].value : '';\n const valArrToStr = Array.isArray(value) && !valueAsArray ? '' : value;\n const calculatedValue = useArrayAsValue && valueAsArray ? valueAsArray : valArrToStr;\n const sanitizedValue = !calculatedValue && typeof value === 'string' ? value : calculatedValue;\n const questionList = useMultipleForms ? formArray.flatMap(q => q.questions) : questions;\n\n const handleChange = tmpValue => {\n if (!tmpValue) {\n return onChange(useArrayAsValue ? [] : '');\n }\n\n const question = getQuestionByPlaceholder(tmpValue, questionList);\n const updatedValue = question ? preparePillObjectFromQuestion(question) : preparePillObjectFromEmail(tmpValue);\n onChange(useArrayAsValue ? [updatedValue] : updatedValue);\n };\n\n const computedQuestions = computeQuestions(questionList, isHIPAA);\n\n return (\n <TagInput\n {...props}\n useMultipleForms={useMultipleForms}\n formArray={formArray}\n isSingleEntry\n userList={userList}\n questions={computedQuestions}\n formTitle={formTitle}\n defaultValue={sanitizedValue}\n onChange={handleChange}\n settings={{ mode: 'mix' }}\n duplicatedEmails={duplicatedEmails}\n addFormFields={addFormFields}\n />\n );\n};\n\nSingleEmailInput.propTypes = {\n addFormFields: bool,\n useArrayAsValue: bool,\n formTitle: string.isRequired,\n userList: arrayOf(shape({})).isRequired,\n questions: arrayOf(shape({})),\n value: oneOfType([shape(), arrayOf(shape()), string]).isRequired,\n onChange: func.isRequired,\n isHIPAA: bool,\n useMultipleForms: bool,\n formArray: arrayOf(shape({})),\n duplicatedEmails: arrayOf(shape({}))\n};\n\nSingleEmailInput.defaultProps = {\n addFormFields: false,\n useArrayAsValue: false,\n isHIPAA: false,\n useMultipleForms: false,\n formArray: [],\n questions: [],\n duplicatedEmails: []\n};\n\nexport default SingleEmailInput;\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nexport const layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\nconst getTeamHeaders = (teamInfo = {}) => {\n const { disableTeamPrefix = false, teamID = '' } = teamInfo;\n\n return {\n headers: {\n ...(teamID && !disableTeamPrefix) ? { 'jf-team-id': teamID } : {}\n },\n disableTeamIDHeader: disableTeamPrefix\n };\n};\n\nexport const completeTask = (taskID, teamInfo, body) => layer.post(`workflow/task/${taskID}/complete`, body, getTeamHeaders(teamInfo));\nexport const reassignTask = (taskID, teamInfo, body) => layer.post(`workflow/task/${taskID}/reassign`, body, getTeamHeaders(teamInfo));\nexport const getTaskOccurenceTimeByTaskID = (taskID, teamInfo) => layer.get(`workflow/task/${taskID}/occurence`, getTeamHeaders(teamInfo));\nexport const getTaskBySubmissionID = (submissionID, teamInfo) => layer.get(`workflow/submission/${submissionID}/tasks?includeHistory=1`, getTeamHeaders(teamInfo));\nexport const terminateWorkflow = async (instanceID, teamInfo, body) => (instanceID ? layer.post(`workflow/instance/${instanceID}/cancel`, body, getTeamHeaders(teamInfo)) : undefined);\nexport const onRetryActionRequest = async (taskID, teamInfo) => layer.post(`workflow/task-integration/${taskID}/retry`, getTeamHeaders(teamInfo));\nexport const startWorkflow = async (submissionID, teamInfo, body, enableWorkflow) => (submissionID\n ? layer.post(`workflow/submission/${submissionID}/start${enableWorkflow ? `?enableWorkflow=${enableWorkflow}` : ''}`, body, getTeamHeaders(teamInfo))\n : undefined);\nexport const workflowStartOver = async (instanceID, teamInfo, body) => (instanceID ? layer.post(`workflow/instance/${instanceID}/restart`, body, getTeamHeaders(teamInfo)) : undefined);\nexport const loadSubmissionThread = async ({\n submissionID, project = '', apiKey, teamInfo\n}) => {\n if (!submissionID || submissionID === -1) {\n return { thread: [], users: [] };\n }\n\n const [thread, users] = await Promise.all([\n layer.get(`${project}/submission/${submissionID}/thread${apiKey ? `?apiKey=${apiKey}` : ''}`, getTeamHeaders(teamInfo)),\n layer.get(`${project}/submission/${submissionID}/users${apiKey ? `?apiKey=${apiKey}` : ''}`, getTeamHeaders(teamInfo))\n ]);\n\n return { thread, users };\n};\nexport const getCompletedApprovalTask = (submissionID, teamInfo) => (submissionID ? layer.get(\n `workflow/submission/${submissionID}/tasks?limit=50&filter=${encodeURI(JSON.stringify({ 'status:eq': ['COMPLETED'], onlyAssignee: '1' }))}`,\n getTeamHeaders(teamInfo)\n) : []);\n\nexport const getActiveApprovalTask = (submissionID, teamInfo) => (submissionID ? layer.get(\n `workflow/submission/${submissionID}/tasks?limit=50&filter=${encodeURI(JSON.stringify({ 'status:ne': ['COMPLETED', 'CANCELED'], onlyAssignee: '1' }))}`,\n getTeamHeaders(teamInfo)\n) : []);\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n bool, func, number, shape, string\n} from 'prop-types';\nimport classNames from 'classnames';\nimport { EmailDropdown } from '@jotforminc/email-wizards';\nimport SingleEmailInput from '@jotforminc/single-email-input';\nimport { isEmail } from '@jotforminc/utils';\nimport { isEnterprise as isEnterpriseEnv } from '@jotforminc/enterprise-utils';\nimport { Button } from '@jotforminc/magnet';\nimport { t } from '@jotforminc/translation';\nimport { layer, reassignTask } from '../api';\n\nconst MAX_REASSIGN_LIMIT = 3;\n\nconst DropdownWrapper = styled.div`\n--wizard-body-padding: 0 42px;\n--wizard-label-color: #23283a;\n--wizard-item-margin: 21px 0 42px;\n--wizard-item-padding: 21px 0;\n\n--input-color: #23283a;\n--input-background-color: #fff;\n--input-option-background-color-hover: #f3f8fe;\n--input-option-background-color-selected: #e7f1ff;\n--input-option-background-color-bullet-hover: #cee2fd;\n--input-option-background-color-bullet-selected: #5e74e6;\n--input-border-color: #d8dae9;\n--input-border-hover-color: #b7bbd7;\n--input-border-focus-color: #5e74e6;\n--input-border-error-color: #fc8291;\n--input-placeholder-color: #8d8fa8;\n\ninput[type=\"search\"] {\n margin: -1px 26px;\n width: calc(100% - 52px);\n}\n\nul {\n margin: 0 1.625rem;\n max-height: 35vh;\n overflow-y: auto;\n}\n`;\n\nconst WorkflowReassign = ({\n taskID,\n onRenew,\n recordEvent,\n isHIPAA,\n fromError,\n isReassignDisabled,\n displayReassignCount,\n isReassignLimitReached,\n teamInfo\n}) => {\n const [message, setMessage] = useState('');\n const [assigneeEmail, setAssigneeEmail] = useState('');\n const [error, setError] = useState(false);\n const [isMessageVisible, setMessageVisibility] = useState(false);\n const [loading, setLoading] = useState(false);\n const [enterpriseUsers, setEnterpriseUsers] = useState([]);\n const [enterpriseUserList, setEnterpriseUserList] = useState([]);\n\n const isEnterprise = isEnterpriseEnv();\n\n useEffect(() => {\n if (isEnterprise) {\n layer.get('users?bypass=1').then(users => {\n setEnterpriseUsers(users);\n const userList = users.filter(({ email }) => email).map(({ email }) => ({ value: email, text: email }));\n setEnterpriseUserList(userList);\n });\n }\n }, []);\n\n const handleEmailChange = ({ value = '' } = {}) => {\n setAssigneeEmail(value.trim());\n };\n const handleEmailDropdownChange = ([{ value = '' } = {}]) => {\n setAssigneeEmail(value.trim());\n };\n\n const handleMessageButtonClick = () => {\n recordEvent('toggleReassignMessage', 'workflow');\n setMessageVisibility(!isMessageVisible);\n setMessage('');\n };\n\n const handleMessageChange = ({ target: { value } }) => {\n setMessage(value);\n };\n\n const validateInput = () => {\n if (assigneeEmail === '') {\n setError('*Add an email address');\n return false;\n }\n\n const isValidEmail = isEmail(assigneeEmail);\n if (!isValidEmail) {\n setError('*Invalid email address');\n return false;\n }\n\n const regex = /\\+/;\n\n if (regex.test(assigneeEmail)) {\n setError(\"*You can't use + on emails\");\n return false;\n }\n setError('');\n return true;\n };\n\n const onReassignClick = async () => {\n if (!validateInput()) return;\n\n const action = fromError ? 'WF-Error-Reassigned' : 'WF-ParticipantReassigned';\n recordEvent(action, 'workflow');\n\n setLoading(true);\n\n try {\n const result = await reassignTask(taskID, teamInfo, { message, assigneeEmail });\n if (result) onRenew();\n if (!result) setError('something went wrong');\n setLoading(false);\n } catch (e) {\n setError('something went wrong');\n setLoading(false);\n }\n };\n\n const randomId = `assignee_${Math.random().toString(36).substring(2)}`;\n return (\n <>\n <span>\n You can reassign this task to another approver by entering an email address below.\n </span>\n <span>\n You can reassign the same task only three times.\n <div className={classNames('wmApproval-reassign-count', { isReassignLimitReached })}>\n {` Assigned ${displayReassignCount} of ${MAX_REASSIGN_LIMIT} times.`}\n </div>\n </span>\n <div\n className=\"wmApproval-task\"\n >\n <div className={classNames('wmApproval-task-comment-textarea-wrapper', { isReassignDisabled, hasError: error })}>\n {\n isEnterprise && isHIPAA ? (\n <DropdownWrapper>\n <EmailDropdown\n value={[{ value: assigneeEmail }]}\n options={enterpriseUserList}\n onChange={handleEmailDropdownChange}\n filterable={true}\n textInputPlaceholder=\"Search...\"\n />\n </DropdownWrapper>\n ) : (\n <SingleEmailInput\n className=\"wmApproval-task-comment isSingleEmailInput\"\n style={{\n background: '#FFFFFF',\n border: '1px solid #D8DAE9',\n borderRadius: 4,\n padding: 10,\n fontSize: 14,\n lineHeight: '18px',\n color: '#8D8FA8'\n }}\n placeholder='example@example.com'\n value={assigneeEmail}\n onChange={handleEmailChange}\n questions={[]}\n userList={enterpriseUsers}\n inputProps={{\n id: randomId,\n className: 'section-ln-content-input',\n placeholder: 'example@example.com'\n }}\n suggestionProps={{\n preventClickDefault: true\n }}\n popoverProps={{\n usePortal: false\n }}\n />\n )\n }\n {error\n ? (\n <div style={{\n color: '#F43B57', fontSize: '14px', marginBottom: '4px', marginTop: '6px'\n }}\n >\n {error}\n </div>\n )\n : null}\n {isMessageVisible ? (\n <textarea\n className=\"wmApproval-task-comment\"\n value={message}\n placeholder='Write your message here.'\n onChange={handleMessageChange}\n style={{\n background: '#FFFFFF',\n border: '1px solid #D8DAE9',\n borderRadius: 4,\n padding: 10,\n marginTop: 10,\n fontSize: 14,\n lineHeight: '18px',\n minHeight: 100,\n resize: 'vertical',\n color: '#8D8FA8'\n }}\n />\n ) : null}\n <button\n className=\"addMessage\"\n type='button'\n onClick={handleMessageButtonClick}\n style={{\n color: '#5E74E6',\n backgroundColor: 'transparent',\n border: 'none',\n marginTop: 4,\n alignSelf: 'flex-start',\n cursor: 'pointer',\n padding: 0\n }}\n >\n {`${!isMessageVisible ? 'Add' : 'Discard'} Message`}\n </button>\n </div>\n <div\n className=\"wmApproval-task-outcome\"\n >\n <Button\n colorStyle=\"forms\"\n loader={loading}\n disabled={isReassignDisabled}\n onClick={onReassignClick}\n >\n {t('Reassign')}\n </Button>\n </div>\n </div>\n </>\n );\n};\n\nWorkflowReassign.propTypes = {\n onRenew: func.isRequired,\n taskID: string.isRequired,\n recordEvent: func,\n isHIPAA: bool,\n fromError: bool,\n isReassignDisabled: bool,\n displayReassignCount: number,\n isReassignLimitReached: bool,\n teamInfo: shape({\n disableTeamPrefix: bool,\n teamID: string\n })\n};\n\nWorkflowReassign.defaultProps = {\n recordEvent: f => f,\n isHIPAA: false,\n fromError: false,\n isReassignDisabled: false,\n displayReassignCount: 0,\n isReassignLimitReached: false,\n teamInfo: {}\n};\n\nexport default WorkflowReassign;\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n string, func, bool, shape\n} from 'prop-types';\nimport { Modal } from '@jotforminc/uikit';\n\nimport { Button } from '@jotforminc/magnet';\nimport { IconUsersFilled, IconXmark } from '@jotforminc/svg-icons';\nimport { t as translate } from '@jotforminc/translation';\nimport Outcome from './Outcome';\n\nimport TEXTS from '../constants/texts';\n\nimport {\n ScOverlay, ScBox, ScHeader, ScBody\n} from '../SubmissionThread/scModal';\nimport WorkflowReassign from './IndependentReassign';\nimport { getTaskOccurenceTimeByTaskID } from '../api';\n\nconst Reassign = ({\n id, isSelected, isLoading, isCompleted, t, onTaskListRenew, isHIPAA, useModal, teamInfo\n}) => {\n const modalRef = useRef();\n const MAX_REASSIGN_LIMIT = 3;\n const handleModalHide = () => modalRef.current.hide();\n const handleModalShow = () => modalRef.current.show();\n\n const [displayReassignCount, setDisplayReassignCount] = useState(0);\n const [isReassignLimitReached, setReassignLimitReached] = useState(false);\n const [isReassignDisabled, setDisableReassign] = useState(false);\n\n useEffect(() => {\n try {\n getTaskOccurenceTimeByTaskID(id, teamInfo).then(({ taskOccurenceTime }) => {\n setDisplayReassignCount(taskOccurenceTime);\n if (taskOccurenceTime >= MAX_REASSIGN_LIMIT) {\n setReassignLimitReached(true);\n setDisableReassign(true);\n }\n }).catch(error => {\n console.log('error', error);\n });\n } catch (e) {\n console.log('error', e);\n }\n }, []);\n\n const ReassignComponent = () => (\n <WorkflowReassign\n taskID={id}\n onRenew={onTaskListRenew}\n isHIPAA={isHIPAA}\n isReassignDisabled={isReassignDisabled}\n isReassignLimitReached={isReassignLimitReached}\n displayReassignCount={displayReassignCount}\n teamInfo={teamInfo}\n />\n );\n\n return (\n useModal ? (\n <>\n <Outcome\n id={id}\n onClick={handleModalShow}\n text={t(TEXTS.REASSIGN)}\n textColor=\"#fff\"\n buttonColor=\"#ff9946\"\n dataTestid={`${id}-reassign`}\n isSelected={isSelected}\n isLoading={isLoading}\n isCompleted={isCompleted}\n />\n <div dataTestid={`${id}-reassign-modal`}>\n <Modal\n usePortal\n ref={modalRef}\n DialogRenderer={ScOverlay}\n ContentRenderer={ScBox}\n HeaderRenderer={() => (\n <ScHeader>\n <IconUsersFilled />\n <span>Reassign</span>\n <Button\n colorStyle=\"secondary\"\n rounded={true}\n startIcon={IconXmark}\n className=\"ml-auto\"\n onClick={handleModalHide}\n aria-label={translate('Close Modal')}\n />\n </ScHeader>\n )}\n >\n <ScBody>\n <ReassignComponent />\n </ScBody>\n </Modal>\n </div>\n </>\n ) : (<ReassignComponent />)\n );\n};\n\nReassign.propTypes = {\n id: string.isRequired,\n isLoading: bool,\n isCompleted: bool,\n isSelected: bool,\n onTaskListRenew: func,\n t: func,\n isHIPAA: bool,\n useModal: bool,\n teamInfo: shape({\n disableTeamPrefix: bool,\n teamID: string\n })\n};\n\nReassign.defaultProps = {\n isLoading: false,\n isCompleted: false,\n isSelected: false,\n onTaskListRenew: f => f,\n t: text => text,\n isHIPAA: false,\n useModal: true,\n teamInfo: {}\n};\n\nexport default Reassign;\n","import { useEffect, useCallback, useState } from 'react';\nimport { usePropState } from '@jotforminc/hooks';\n\nimport {\n getTaskBySubmissionID, completeTask, reassignTask\n} from '../api';\n\nexport const useSubmissionTaskInfo = ({\n taskList,\n submissionID,\n fetchTaskFromApi,\n instanceStatus = false,\n onComplete,\n onRenew = f => f,\n teamInfo = {}\n}) => {\n const [taskListState, setTaskList] = usePropState(taskList);\n const [isInitialized, setInitialized] = useState(!fetchTaskFromApi);\n const [instanceStatusState, setInstanceStatus] = usePropState(instanceStatus);\n\n const TaskActionTypes = {\n COMPLETE: 'COMPLETE',\n REASSIGN: 'REASSIGN',\n RENEW_TASK_LIST: 'RENEW_TASK_LIST'\n };\n\n const TaskErrorObject = (isErrored = false, reason = '') => {\n return isErrored ? { isErrored, reason } : { isErrored };\n };\n\n const TaskActionValidator = (action, params = {}) => {\n switch (action) {\n case TaskActionTypes.COMPLETE:\n if (params.commentRequired && !params.comment) {\n return TaskErrorObject(true, 'comment');\n }\n break;\n case TaskActionTypes.REASSIGN:\n if (!params.assigneeEmail) {\n return TaskErrorObject(true, 'reassign');\n }\n break;\n case TaskActionTypes.RENEW_TASK_LIST:\n if (!params.submissionID) return TaskErrorObject(true, 'submissionID');\n break;\n default:\n return TaskErrorObject();\n }\n return TaskErrorObject();\n };\n\n const renewTaskList = async forceInitialization => {\n const validationResult = TaskActionValidator(TaskActionTypes.COMPLETE, { submissionID });\n if (validationResult.isErrored) {\n return validationResult;\n }\n onRenew();\n\n const result = await getTaskBySubmissionID(submissionID, teamInfo);\n if (Array.isArray(result) && !result.length) return;\n const [{ taskList: tempTaskList, instance_status: tempInstanceStatus }] = result;\n\n setInstanceStatus(tempInstanceStatus);\n\n const isInitializing = !isInitialized || forceInitialization;\n if (isInitializing) {\n setInitialized(true);\n setTaskList(tempTaskList);\n } else {\n const { length: newLength } = tempTaskList;\n const { length: oldLength } = taskListState || [];\n const lengthDiff = Math.max(newLength - oldLength, 0);\n setTaskList([\n ...tempTaskList.slice(0, -lengthDiff),\n ...tempTaskList.slice(-lengthDiff).map(task => ({ ...task, isNew: true }))\n ]);\n }\n\n if (!isInitializing && ['COMPLETED', 'CANCELED'].indexOf(tempInstanceStatus) > -1) {\n onComplete();\n }\n\n return TaskErrorObject();\n };\n\n const onTaskCompleteGenerator = (taskID, commentRequired = false) => async ({ outcomeID, comment, signature }) => {\n const validationResult = TaskActionValidator(TaskActionTypes.COMPLETE, { commentRequired, comment });\n if (validationResult.isErrored) {\n return validationResult;\n }\n const result = await completeTask(taskID, teamInfo, { outcomeID, comment, signature });\n return result ? renewTaskList() : TaskErrorObject(true, 'api');\n };\n\n const onTaskReassignGenerator = taskID => async ({ assigneeEmail, message }) => {\n const validationResult = TaskActionValidator(TaskActionTypes.COMPLETE, { assigneeEmail });\n if (validationResult.isErrored) {\n return validationResult;\n }\n const result = await reassignTask(taskID, teamInfo, { assigneeEmail, message });\n return result ? renewTaskList() : TaskErrorObject(true, 'api');\n };\n\n useEffect(() => {\n setInitialized(!fetchTaskFromApi);\n\n if (fetchTaskFromApi) {\n setTaskList([]);\n renewTaskList(true);\n }\n window.activeSubmissionID = submissionID;\n }, [fetchTaskFromApi, submissionID]);\n\n return {\n isInitialized,\n taskListState,\n TaskActionTypes,\n TaskActionValidator,\n instanceStatusState,\n onTaskCompleteGenerator,\n onTaskReassignGenerator\n };\n};\n\nexport const useLastHistoryByType = history => useCallback(\n type => history.filter(({ action_type: tempActionType }) => tempActionType === type).slice(-1).pop(), [history]\n);\nexport const useLastHistory = history => {\n const getLastHistoryByType = useLastHistoryByType(history);\n const [lastStartHistory, lastCompleteHistory, lastCanceledHistory] = [getLastHistoryByType('START'), getLastHistoryByType('COMPLETE'), getLastHistoryByType('CANCELED')];\n return lastCanceledHistory || lastCompleteHistory || lastStartHistory || {};\n};\n\nexport const useApiState = () => {\n const [isLoading, setLoading] = useState(false);\n const [isErrored, setErrored] = useState(false);\n const [errorReason, setErrorReason] = useState(false);\n const [clickedOutcome, setClickedOutcome] = useState({});\n\n const apiRequestGenerator = apiFN => async (params, outcome) => {\n try {\n setLoading(true);\n setErrored(false);\n setErrorReason('');\n setClickedOutcome(outcome);\n\n const { isErrored: tmpIsErrored, reason } = await apiFN(params);\n\n setLoading(false);\n setErrored(tmpIsErrored);\n setErrorReason(tmpIsErrored ? reason : '');\n } catch (e) {\n setLoading(false);\n setErrored(true);\n setErrorReason(e.toString());\n }\n };\n\n return {\n isLoading,\n setLoading,\n isErrored,\n setErrored,\n errorReason,\n setErrorReason,\n clickedOutcome,\n setClickedOutcome,\n apiRequestGenerator\n };\n};\n","import {\n string, shape, oneOf, arrayOf, oneOfType, number\n} from 'prop-types';\n\nexport const ElementPropTypes = {\n type: oneOf([\n 'workflow_start_point',\n 'workflow_approval',\n 'workflow_send_email',\n 'workflow_end_point'\n ]).isRequired\n};\n\nexport const HistoryPropTypes = {\n action_type: string,\n user: shape({\n name: string,\n email: string,\n avatarUrl: string\n }).isRequired\n};\n\nexport const PropertiesPropType = oneOfType([\n shape({ outcomeID: oneOfType([string, number]) }),\n arrayOf(shape())\n]);\n\nexport const TaskPropTypes = {\n id: string.isRequired,\n element: shape(ElementPropTypes).isRequired,\n history: arrayOf(shape(HistoryPropTypes)).isRequired,\n properties: PropertiesPropType\n};\n\nexport const InstanceStatusPropType = oneOf(['ACTIVE', 'COMPLETED', 'CANCELED']);\n","import React, {\n useState, useEffect, useRef, useMemo\n} from 'react';\nimport {\n bool, func, shape, string\n} from 'prop-types';\nimport classNames from 'classnames';\nimport { useStateWithAutoReset } from '@jotforminc/hooks';\nimport ShortDate from '@jotforminc/short-date';\nimport UserAccount from '../components/UserAccount';\nimport Comment from '../components/Comment';\nimport Outcome from '../components/Outcome';\nimport Reassign from '../components/Reassign.new';\nimport { useApiState, useLastHistory } from '../hooks';\nimport { getOutcomeByID, isOutcomeBelongsToSystem, isWorkflowSystemUser } from '../utils';\nimport TEXTS from '../constants/texts';\nimport { TaskPropTypes } from '../constants/propTypes';\n\n// eslint-disable-next-line complexity\nconst TaskSection = ({\n id,\n isNew,\n isCompleteAllowed,\n isOwner,\n history,\n properties: {\n assigneeUser,\n outcomeID,\n comment,\n isReassigned,\n isEscalated,\n reassignEmail\n },\n element: {\n name,\n outcomes,\n comment__commentRequired: commentRequired,\n reassign__reassignTask: reassignTask\n },\n highlightActiveTask,\n onTaskComplete,\n onTaskListRenew,\n t,\n showUserInfo,\n isHIPAA,\n teamInfo,\n parent\n}) => {\n const commentRef = useRef(false);\n const lastHistory = useLastHistory(history);\n const [isClean, setClean] = useState(true);\n const [isHighlighted, setHighlight] = useStateWithAutoReset(false);\n const {\n isLoading,\n isErrored,\n setErrored,\n errorReason,\n setErrorReason,\n clickedOutcome,\n apiRequestGenerator\n } = useApiState();\n\n const { action_type: actionType, created_at: createdAt, user } = lastHistory;\n if (actionType === 'CANCELED') {\n return null;\n }\n\n const isGroupApproval = Boolean(parent);\n const isCompleted = actionType === 'COMPLETE';\n const isSystemUser = isCompleted && isWorkflowSystemUser(user?.username);\n const isReassignEnabled = reassignTask === 'Yes';\n const isReassignAllowed = isGroupApproval ? (isOwner && isReassignEnabled) : isReassignEnabled;\n const hasCommentError = isErrored && errorReason === 'comment';\n const isCommentRequired = commentRequired === 'Yes';\n const { outcomeID: selectedOutcomeID } = isCompleted ? getOutcomeByID(outcomeID, outcomes) : clickedOutcome;\n const isSystemOutcome = isOutcomeBelongsToSystem(outcomeID);\n const handleOutcomeClick = outcome => () => apiRequestGenerator(onTaskComplete)({ ...outcome, comment: commentRef.current ? commentRef.current.innerText.trim() : '' }, outcome);\n\n const handleCommentInput = () => {\n setErrored(false);\n setErrorReason('');\n setClean(commentRef.current.innerText.trim().length === 0);\n };\n\n useEffect(() => {\n if (hasCommentError && commentRef.current) {\n commentRef.current.focus();\n }\n }, [hasCommentError, commentRef.current]);\n\n useEffect(() => {\n setHighlight(highlightActiveTask);\n }, [highlightActiveTask]);\n\n const targetUserInfo = (isSystemUser || isCompleted) ? user : assigneeUser;\n const systemComment = useMemo(() => {\n switch (true) {\n case isEscalated === '1' || isEscalated === 1:\n return `Escalated to ${reassignEmail}.`;\n case isReassigned === '1' || isReassigned === 1:\n return `Reassigned to ${reassignEmail}.`;\n default:\n return '';\n }\n }, [isReassigned, isEscalated]);\n const computedComment = useMemo(() => (systemComment ? `${systemComment} ${comment}` : comment), [systemComment, comment]);\n\n const containerClassNames = classNames(\n 'wmApproval-task-container',\n {\n isNew,\n isClean,\n isLoading,\n isErrored,\n isCompleted,\n isReassigned,\n isEscalated,\n isCommentRequired,\n hasComment: Boolean(comment),\n hasCommentError,\n isHighlighted: isHighlighted && !isCompleted,\n isActionPrevented: !isCompleted && !isCompleteAllowed\n }\n );\n const activeOutcomes = outcomes?.filter?.(({ linkID }) => !!linkID) || [];\n return (\n <>\n {isSystemUser && (\n <div className={containerClassNames}>\n <div className=\"wmApproval-task-column forTaskUser\">\n <div className=\"wmApproval-task-name\">{name}</div>\n <div className=\"wmApproval-task-user\">\n <UserAccount\n key={assigneeUser?.email}\n {...assigneeUser}\n testIDPrefix={id}\n />\n </div>\n\n </div>\n {isCompleted && (\n <div className=\"wmApproval-task-column forTask\">\n <div className=\"wmApproval-task-date\">\n <ShortDate date={createdAt} align=\"Right\" />\n </div>\n <Comment\n id={id}\n ref={commentRef}\n comment={computedComment}\n isEditable={!isCompleted}\n isRequired={isCommentRequired}\n onInput={handleCommentInput}\n >\n {t('The task was not completed in the time allowed.')}\n </Comment>\n </div>\n )}\n </div>\n )}\n <div className={containerClassNames}>\n {showUserInfo && (\n <div className=\"wmApproval-task-column forTaskUser\">\n <div className=\"wmApproval-task-name\">{name}</div>\n <div className=\"wmApproval-task-user\">\n {targetUserInfo ? (\n <UserAccount\n key={targetUserInfo.email}\n {...targetUserInfo}\n isSystemUser={isSystemUser}\n testIDPrefix={id}\n />\n ) : 'User ERROR!' }\n </div>\n </div>\n )}\n <div className=\"wmApproval-task-column forTask\">\n {isCompleted && (\n <div className=\"wmApproval-task-date\">\n <ShortDate date={createdAt} align=\"Right\" />\n </div>\n )}\n {(!isCompleted || (isCompleted && !!computedComment)) && (\n <Comment\n id={id}\n ref={commentRef}\n comment={computedComment}\n isEditable={!isCompleted}\n isRequired={isCommentRequired}\n onInput={handleCommentInput}\n />\n )}\n <div className=\"wmApproval-task-outcome\">\n {(isSystemOutcome && isCompleted) ? (\n <Outcome\n type={outcomeID}\n text={outcomeID}\n isSelected\n isCompleted={true}\n />\n ) : null}\n {activeOutcomes.map(outcome => (\n <Outcome\n id={id}\n key={outcome.outcomeID}\n {...outcome}\n isLoading={isLoading}\n onClick={handleOutcomeClick(outcome)}\n isCompleted={isCompleted}\n isSelected={selectedOutcomeID === outcome.outcomeID}\n />\n ))}\n {isReassignAllowed && (\n <Reassign\n t={t}\n id={parent || id}\n isLoading={isLoading}\n isCompleted={isCompleted}\n isSelected={selectedOutcomeID === 'reassign'}\n onTaskListRenew={onTaskListRenew}\n isHIPAA={isHIPAA}\n teamInfo={teamInfo}\n />\n )}\n </div>\n <div className=\"wmApproval-error\" aria-hidden={!isErrored}>\n {t(TEXTS.SOMETHING_WENT_WRONG)}\n </div>\n </div>\n </div>\n </>\n );\n};\n\nTaskSection.propTypes = {\n ...TaskPropTypes,\n isNew: bool,\n isCompleteAllowed: bool,\n isOwner: bool,\n highlightActiveTask: bool,\n showUserInfo: bool,\n isHIPAA: bool,\n t: func,\n onTaskComplete: func,\n onTaskListRenew: func,\n teamInfo: shape({\n disableTeamPrefix: bool,\n teamID: string\n }),\n parent: string\n};\n\nTaskSection.defaultProps = {\n isNew: false,\n isCompleteAllowed: false,\n isOwner: false,\n highlightActiveTask: false,\n showUserInfo: true,\n isHIPAA: false,\n t: text => text,\n onTaskComplete: f => f,\n onTaskListRenew: f => f,\n teamInfo: {},\n parent: null\n};\n\nexport default TaskSection;\n","import { ScheduleDropdownOptions } from '@jotforminc/constants';\n\nconst isValidTimeZone = tz => {\n return !!ScheduleDropdownOptions.time.timeZone.reduce((acc, current) => {\n return [...acc, ...current.options];\n }, [])\n .find(opt => opt.value === tz);\n};\n\nexport const guessTimezone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nexport const getTimeZone = (preferredTZ, fallbackTZ = 'America/Los_Angeles') => {\n if (isValidTimeZone(preferredTZ)) return preferredTZ;\n const guessedTZ = guessTimezone(); // Somehow guessTimeZone returns invalid record :/\n\n return isValidTimeZone(guessedTZ) ? guessedTZ : fallbackTZ;\n};\n\nexport const getNextSharpHour = () => {\n const date = new Date();\n\n date.setHours(date.getHours() + 1);\n date.setMinutes(0);\n\n return date;\n};\n\nexport const formatRawTime = time => {\n const delimeter = ':';\n if (!time || !time.includes(delimeter)) return false;\n\n const splittedTime = time.split(delimeter);\n let hours = Number(splittedTime[0]);\n const minutesAndRest = splittedTime[1];\n\n if (!minutesAndRest) return false;\n\n const splittedRest = splittedTime[1].split(' ');\n const minutes = Number(splittedRest[0]);\n const amPm = splittedRest[1];\n\n if (amPm === 'pm') {\n hours += 12;\n }\n\n return (\n !amPm\n || (amPm !== 'am' && amPm !== 'pm')\n || hours < 0\n || hours > 23\n || minutes < 0\n || minutes > 59\n ) ? false : {\n hours,\n minutes\n };\n};\n\nexport const formatRawDate = (date, delimeter = '/') => {\n if (!date || !date.includes(delimeter)) return false;\n\n const splittedDate = date.split(delimeter);\n const month = Number(splittedDate[0]);\n const day = Number(splittedDate[1]);\n const year = Number(splittedDate[2]);\n\n return (\n month < 0 || month > 12\n || day < 0 || day > 31\n || year < (new Date()).getFullYear()\n ) ? false : {\n month,\n day,\n year\n };\n};\n\nexport const getLocalTimeLabel = (duration, unitLabel, t) => {\n const locales = {\n minutes: { singular: t('Minute'), plural: t('Minutes') },\n hours: { singular: t('Hour'), plural: t('Hours') },\n days: { singular: t('Day'), plural: t('Days') }\n };\n return locales[unitLabel][duration === 1 ? 'singular' : 'plural'];\n};\n\nexport const getPossibleTimeZone = () => {\n let possibleTimeZone = 'UTC';\n try {\n possibleTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch (err) {\n // If user's country is using DST(Daylight Saving Time), then we need to get standard timeoffset.\n const dateInJan = new Date();\n dateInJan.setMonth(0);\n dateInJan.setDate(1);\n let offset = dateInJan.getTimezoneOffset() / 60;\n // GMT notations are reversed in PHP. For example New York's standard timezone is GMT-5, but\n // When we are using GMT notation in PHP we need to change the sign.\n offset = `${offset > 0 ? 'Etc/GMT+' : 'Etc/GMT'}${offset}`;\n possibleTimeZone = offset;\n }\n\n return possibleTimeZone;\n};\n\nexport const getCurrentTime = () => {\n const date = new Date();\n let hours = date.getHours();\n let minutes = date.getMinutes();\n const ampm = hours >= 12 ? 'PM' : 'AM';\n hours = hours % 12;\n hours = hours || 12;\n minutes = minutes < 10 ? `0${minutes}` : minutes;\n const strTime = `${hours}:${minutes} ${ampm}`;\n return strTime;\n};\n\n/**\n * @function prettyDate\n * @desc Creates a formatted date string with options for displaying the time of day and adjusting date for timezones.\n * @param {Date|number|string} date\n * @param {boolean} showTime\n * @param {boolean} ignoreUserTz\n * @param {boolean} ignoreCompanyTz\n * @param {DateTimeFormatOptions} options\n * @param {string} language\n * @returns {string|{formattedDate: string, tokens: string[]}}\n */\nexport const prettyDate = (date = new Date(), showTime, ignoreUserTz, ignoreCompanyTz, options, language) => {\n // Test for invalid dates, e.g. form.last_submission returns '0000-00-00 00:00:00'\n if (!date || Number.isNaN(new Date(date).valueOf())) return '';\n const intlDateInParts = new Intl.DateTimeFormat(language || window.navigator.language, {\n // Setting false for timeZone triggers an exception, so explicitly set it to undefined\n timeZone: (!ignoreUserTz && window.userTimeZone) || (!ignoreCompanyTz && window.companyTimeZone) || undefined,\n hour: '2-digit',\n minute: '2-digit',\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour12: true,\n ...options\n }).formatToParts(new Date(date));\n\n // Convert Intl Date parts into an object which is easier to work with to create a readable string\n const datePartsObject = Object.fromEntries(\n intlDateInParts.reduce((previousValue, currentValue) => (\n [...previousValue, [currentValue.type, currentValue.value]]\n ), [])\n );\n\n const dateString = `${datePartsObject.month} ${datePartsObject.day}, ${datePartsObject.year}`;\n const timeString = `${datePartsObject.hour}:${datePartsObject.minute} ${datePartsObject.dayPeriod}`;\n\n if (!showTime) return dateString;\n\n return {\n formattedDate: `${dateString} ${timeString}`,\n tokens: [dateString, timeString]\n };\n};\n\nexport const milisecondToDay = milisecond => {\n if (!milisecond || milisecond === null) return undefined;\n return parseInt(milisecond / (1000 * 60 * 60 * 24), 10);\n};\n\nconst addzero = date => {\n return date.toString().padStart(2, '0');\n};\n\nexport const getFormatedDate = date => {\n if (!date) return '';\n return `${(date.getFullYear())}-${addzero(date.getMonth() + 1)}-${addzero(date.getDate())}`;\n};\n","import {\n bool, oneOfType, shape, number, string, node, elementType, objectOf, oneOf, arrayOf\n} from 'prop-types';\n\nconst answersPropType = oneOfType([\n objectOf(shape({})).isRequired,\n bool\n]);\n\nconst formPropType = shape({\n id: oneOfType([string, number]).isRequired,\n title: string.isRequired,\n isEncrypted: oneOf(['Yes', 'No']),\n count: oneOfType([string, number]).isRequired,\n new: oneOfType([string, number]).isRequired,\n flag: oneOfType([string, number]),\n last_submission: string,\n pdfTemplates: arrayOf(shape({})),\n paymentStrings: arrayOf(objectOf(string)),\n products: arrayOf(objectOf(oneOfType([shape({}), string]))),\n hideSubmissionHeader: oneOf(['Yes', 'No']),\n showApprovalStatus: oneOf(['Yes', 'No'])\n});\n\nconst propTypes = {\n renderable: oneOfType([\n elementType,\n node\n ]),\n stringOrNumber: oneOfType([\n number,\n string\n ]),\n submissionPropType: shape({\n id: oneOfType([string, number]).isRequired,\n answers: answersPropType.isRequired,\n created_at: string.isRequired\n }),\n userPropType: shape({\n email: string,\n username: string.isRequired,\n language: string.isRequired,\n forms: arrayOf(formPropType).isRequired,\n account_type: oneOfType([string, shape({\n name: string\n })]).isRequired\n })\n};\n\nexport {\n propTypes\n};\n","import React, {\n createContext, useContext, useMemo, useState, useEffect\n} from 'react';\nimport {\n node, bool, func, string, number, shape\n} from 'prop-types';\nimport moment from 'moment-timezone';\nimport { getPossibleTimeZone } from '@jotforminc/utils';\nimport { useRequest } from '@jotforminc/hooks';\nimport { propTypes, DEFAULT_DATE_FORMAT } from '@jotforminc/constants';\nimport {\n getActiveApprovalTask, getCompletedApprovalTask, workflowStartOver, terminateWorkflow, startWorkflow,\n onRetryActionRequest\n} from '../api';\nimport { didActiveSubmissionChange } from '../utils';\n\nconst WorkflowContext = createContext({ });\n\nexport const useWorkflow = () => useContext(WorkflowContext);\n\nconst WorkflowProvider = ({\n children,\n isFormOwner,\n user,\n submission,\n onRenewSubmission,\n activeTabID,\n formID,\n featureSubmissionThread,\n recordEvent,\n dateFormat,\n canUndo = false,\n undoTimeout = 5000,\n teamInfo = {},\n isCollaborator\n}) => {\n const [isStartOverPressed, setIsStartOverPressed] = useState(false);\n const [showFixErrorsInWorkflow, setShowFixErrorsInWorkflow] = useState(false);\n const [undoFns, setUndoFns] = useState({});\n const [completeFns, setCompleteFns] = useState({});\n const [fakeEntries, setFakeEntries] = useState({});\n const [showToastState, setshowToastState] = useState(false);\n const {\n id: submissionID,\n workflowStatusDetails,\n workflowStatus,\n workflowInstanceID,\n isWorkflowEnabled = null\n } = submission || {};\n\n const approvalRequestConditionaly = () => {\n if (featureSubmissionThread && submissionID !== -1 && workflowStatus !== 'CANCELED') {\n if (activeTabID === 'completed') return getCompletedApprovalTask(submissionID, teamInfo);\n return getActiveApprovalTask(submissionID, teamInfo);\n }\n return [];\n };\n\n const request = useRequest(approvalRequestConditionaly, 'submissionWorkFlow');\n const reload = () => request?.load(submissionID);\n const query = { ...request, reload };\n\n useEffect(() => {\n reload();\n }, [submission.updated_at, submissionID]);\n\n const ignoreHiddenSpanTag = text => {\n const spanRegExp = new RegExp(/<span[^>]*>[\\s\\S]+<\\/span>/gm);\n if (user.isHIPAA === '1' && spanRegExp.test(text)) {\n return 'Hidden PHI Field';\n }\n return text;\n };\n\n const getTaskLists = (taskArray = []) => (\n taskArray.map(task => {\n const {\n element: {\n comment__commentRequired: commentRequired,\n requestMore\n },\n properties: {\n assigneeUser: {\n avatarUrl,\n name,\n email\n } = {},\n assigneeEmail: assigneeUserEmail = '',\n taskName\n },\n error: errorObj,\n status,\n team = null\n } = task;\n const subtasks = (task.subtasks || []).reduce((res, curr) => {\n const {\n assigneeUser, assigneeEmail, avatarUrl: subtaskAvatarUrl, comment, signature\n } = curr.properties;\n if (!assigneeUser) {\n return res;\n }\n res[assigneeUser.email] = {\n ...curr,\n element: task.element,\n email: assigneeEmail,\n name: assigneeUser.name || assigneeUser.username,\n avatarUrl: assigneeUser.avatarUrl || subtaskAvatarUrl,\n comment: comment,\n signature: signature?.value\n };\n return res;\n }, {});\n const isCurrentUserApprover = subtasks[user.email] ? subtasks[user.email].status === 'ACTIVE' : user.email === email;\n const isActive = status === 'ACTIVE' || status === 'PENDING' || status === 'FAILED';\n const isCommentRequired = commentRequired === 'Yes';\n return {\n isCommentRequired,\n avatarUrl,\n isActive,\n task,\n isCurrentUserApprover,\n name: ignoreHiddenSpanTag(name),\n assigneeEmail: ignoreHiddenSpanTag(email || assigneeUserEmail),\n taskName,\n errorObj,\n requestMore,\n subtasks,\n team\n };\n })\n );\n\n const taskLists = useMemo(() => {\n if (query?.data && Array.isArray(query.data)) {\n return query.data.reduce((acc, res) => [\n ...acc,\n ...getTaskLists(res?.taskList)\n ], []);\n }\n\n return [];\n }, [query?.data, user?.email]);\n\n const activeTaskList = useMemo(() => {\n return taskLists?.filter(t => t.isActive && t.taskName !== 'Merge Point') || [];\n }, [taskLists]);\n\n /* eslint-disable camelcase */\n const instanceID = useMemo(() => workflowInstanceID || (query?.data || []).find(task => task.instance_status === 'ACTIVE')?.instance_id || null, [workflowInstanceID, query?.data]);\n\n const onTaskListRenew = () => {\n // If submission changes and there's a pending request, somehow it shows the old submission's thread\n // Couldn't think of a better way this is a workaround\n if (didActiveSubmissionChange(submissionID)) {\n return;\n }\n onRenewSubmission(submissionID, false);\n };\n\n const onStartOver = () => {\n recordEvent('WF-Error-Restarted', 'workflow');\n setIsStartOverPressed(true);\n return workflowStartOver(instanceID, teamInfo);\n };\n\n const onCancelFlow = () => {\n return terminateWorkflow(instanceID, teamInfo);\n };\n\n const onStartFlow = enableWorkflow => {\n recordEvent('onStartFlow', 'workflow');\n return startWorkflow(submissionID, teamInfo, null, enableWorkflow);\n };\n\n const undoTaskToastShow = val => {\n setshowToastState(val);\n };\n\n const onRetryAction = task => {\n return onRetryActionRequest(task.id, teamInfo);\n };\n\n useEffect(() => {\n if (isStartOverPressed && submission.workflowStatus === 'ERRORED') {\n setShowFixErrorsInWorkflow(true);\n } else {\n setShowFixErrorsInWorkflow(false);\n }\n setIsStartOverPressed(false);\n }, [submission]);\n\n const userTimeZone = getPossibleTimeZone();\n const formatDate = datetime => {\n const serverTimeZone = 'America/New_York';\n const momentFormat = 'YYYY-MM-DD HH:mm ZZ';\n\n let dateObject = moment.tz(datetime, momentFormat, serverTimeZone);\n if (userTimeZone) {\n dateObject = dateObject.clone().tz(userTimeZone);\n }\n\n return dateObject.format(dateFormat);\n };\n\n const value = {\n ...query,\n submissionID,\n formID,\n user,\n onTaskListRenew,\n instanceID,\n taskLists,\n isFormOwner,\n onStartOver,\n onCancelFlow,\n onStartFlow,\n onRenewSubmission,\n workflowStatusDetails,\n workflowStatus,\n showFixErrorsInWorkflow,\n setShowFixErrorsInWorkflow,\n activeTaskList,\n userTimeZone,\n dateFormat,\n formatDate,\n undoFns,\n setUndoFns,\n undoTaskToastShow,\n showToastState,\n completeFns,\n setCompleteFns,\n fakeEntries,\n setFakeEntries,\n canUndo,\n undoTimeout,\n teamInfo,\n isCollaborator,\n isWorkflowEnabled,\n onRetryAction\n };\n\n return (\n <WorkflowContext.Provider value={value}>\n {children}\n </WorkflowContext.Provider>\n );\n};\n\nWorkflowProvider.propTypes = {\n submission: propTypes.submissionPropType.isRequired,\n children: node.isRequired,\n user: propTypes.userPropType.isRequired,\n isFormOwner: bool.isRequired,\n onRenewSubmission: func.isRequired,\n activeTabID: string,\n formID: string.isRequired,\n featureSubmissionThread: bool,\n recordEvent: func,\n dateFormat: string,\n canUndo: bool,\n isCollaborator: bool,\n undoTimeout: number,\n teamInfo: shape({\n teamID: string,\n disableTeamPrefix: bool\n })\n};\n\nWorkflowProvider.defaultProps = {\n isCollaborator: false,\n featureSubmissionThread: true,\n recordEvent: f => f,\n activeTabID: '',\n dateFormat: DEFAULT_DATE_FORMAT,\n canUndo: false,\n undoTimeout: 5000,\n teamInfo: {}\n};\n\nexport default WorkflowProvider;\n","import React, { useEffect, useState } from 'react';\nimport {\n func, bool, string, shape\n} from 'prop-types';\nimport qs from 'querystring';\n\nimport { renderSignatureModal } from '@jotforminc/signature';\nimport { usePropState } from '@jotforminc/hooks';\nimport Task from '../sections/Task';\nimport { useSubmissionTaskInfo } from '../hooks/index';\nimport { TaskPropTypes } from '../constants/propTypes';\nimport { useWorkflow } from '../contexts';\nimport { didActiveSubmissionChange } from '../utils';\n\nconst TaskSection = ({\n submissionID,\n onRenew,\n isCommentRequired,\n commentPlaceholder,\n task,\n recordEvent,\n isHIPAA,\n user,\n isTakeOver,\n teamInfo\n}) => {\n const {\n onTaskCompleteGenerator,\n TaskActionValidator,\n TaskActionTypes\n } = useSubmissionTaskInfo({\n submissionID, task, onRenew, onComplete: f => f, teamInfo\n });\n\n const {\n undoTimeout,\n undoFns,\n setUndoFns,\n completeFns,\n setCompleteFns,\n fakeEntries,\n setFakeEntries,\n undoTaskToastShow,\n isFormOwner,\n onRenewSubmission,\n canUndo\n } = useWorkflow();\n\n const { id } = task;\n const [taskState, setTaskState] = usePropState(task);\n const [prevTaskState, setPrevTaskState] = useState(task);\n const [timeoutExpired, setTimeoutExpired] = useState(false);\n const generatedTaskComplete = onTaskCompleteGenerator(id, isCommentRequired);\n\n const removeCurrentTaskFn = (store, setStore) => () => {\n const { [id]: _tempFN, ...rest } = store;\n setStore(rest);\n };\n const removeUndoFn = removeCurrentTaskFn(undoFns, setUndoFns);\n const removeCompleteFn = removeCurrentTaskFn(completeFns, setCompleteFns);\n\n const completeTask = async (...args) => {\n if (isTakeOver) {\n recordEvent(`${isFormOwner ? 'WF-FlowOwnerTakeOver' : 'WF-ParticipantTakeOver'}`, 'workflow');\n } else {\n recordEvent(`${isFormOwner ? 'WF-FlowOwnerCompleted' : 'WF-ParticipantCompleted'}`, 'workflow');\n }\n removeCurrentTaskFn(completeFns, setCompleteFns);\n const result = await generatedTaskComplete(...args);\n\n // This was added in order to refresh the left panel on inbox,\n // to update the status of previous or current submission\n if (didActiveSubmissionChange(submissionID)) {\n onRenewSubmission(submissionID, false);\n }\n return result;\n };\n\n const prepareToUndoAndComplete = async (outcome, ...args) => {\n // Complete task and cleanup if timeout expires\n if (!canUndo) {\n await completeTask(...args);\n return;\n }\n const timeout = setTimeout(async () => {\n await completeTask(...args);\n setTimeoutExpired(true);\n removeUndoFn();\n }, undoTimeout);\n // Store the complete function\n setCompleteFns({\n ...completeFns,\n [id]: async () => {\n clearTimeout(timeout);\n await completeTask(...args);\n setTimeoutExpired(true);\n removeUndoFn();\n }\n });\n // Set fake entry of the task\n setFakeEntries({\n ...fakeEntries,\n [id]: outcome\n });\n // Store the undo function of task\n setUndoFns({\n ...undoFns,\n [id]: () => {\n recordEvent('WF-ParticipantUndid', 'workflow');\n if (!timeoutExpired) {\n setTaskState(prevTaskState);\n }\n clearTimeout(timeout);\n removeUndoFn();\n removeCompleteFn();\n }\n });\n };\n\n const onTaskComplete = async (...args) => {\n const validation = TaskActionValidator(TaskActionTypes.COMPLETE, { commentRequired: isCommentRequired, ...args[0] });\n if (validation.isErrored) {\n return validation;\n }\n const modifiedArgs = args;\n const outcome = args[0];\n if (outcome && outcome?.outcomeSign === 'Yes') {\n const signature = await renderSignatureModal({ required: true, confirmButtonText: 'sign', renderMode: 'workflow_embed' });\n if (!signature) {\n return { isErrored: false };\n }\n modifiedArgs[0].signature = signature;\n }\n\n const properties = {\n ...task.properties,\n ...outcome\n };\n setPrevTaskState(task);\n setTaskState({\n ...task, user, history: [{ action_type: 'COMPLETE', created_at: new Date() }], properties\n });\n await prepareToUndoAndComplete(outcome, ...modifiedArgs);\n if (outcome) {\n undoTaskToastShow(true);\n }\n return { isErrored: false };\n };\n\n const clearOutcomeIDFromWindow = () => {\n const params = new URLSearchParams(document.location.search);\n params.delete('outcomeID');\n params.delete('taskID');\n window.history.replaceState(null, '', `?${params}`);\n };\n\n useEffect(() => {\n if (!window.taskAutoCompleted) {\n const queries = qs.parse(document.location.search.split('?')[1]);\n const { outcomeID, taskID = false } = queries;\n if (taskID && taskID !== task.id) {\n return;\n }\n const { element = {} } = task || {};\n const { outcomes = [] } = element || {};\n const linkedOutcomes = outcomes.filter(outcome => outcome.linkID);\n\n if (outcomeID) {\n const selectedOutcome = linkedOutcomes.find(({ outcomeID: tmpOutcomeID }) => outcomeID.toString() === tmpOutcomeID.toString());\n if (selectedOutcome) {\n onTaskComplete(selectedOutcome);\n }\n window.taskAutoCompleted = true;\n }\n if (queries && (queries.approve === '' || queries.deny === '')) {\n const type = queries.approve === '' ? 'APPROVE' : 'DENY';\n const selectedOutcome = linkedOutcomes.find(({ type: outcomeType }) => outcomeType === type);\n if (selectedOutcome) {\n onTaskComplete(selectedOutcome);\n }\n window.taskAutoCompleted = true;\n }\n clearOutcomeIDFromWindow();\n }\n }, []);\n\n useEffect(() => {\n const textarea = document.querySelector('.wmApproval-task-comment-textarea');\n if (textarea) textarea.dataset.placeholder = commentPlaceholder;\n }, [commentPlaceholder]);\n\n return (\n <Task\n id={id}\n key={id}\n showUserInfo={false}\n history={[]}\n {...taskState}\n onTaskComplete={onTaskComplete}\n onTaskListRenew={onRenew}\n isHIPAA={isHIPAA}\n teamInfo={teamInfo}\n />\n );\n};\n\nTaskSection.propTypes = {\n ...TaskPropTypes,\n onRenew: func,\n commentPlaceholder: string,\n isCommentRequired: bool.isRequired,\n recordEvent: func,\n isHIPAA: bool,\n isTakeOver: bool,\n teamInfo: shape({\n disableTeamPrefix: bool,\n teamID: string\n })\n};\n\nTaskSection.defaultProps = {\n commentPlaceholder: 'Add your comment here.',\n onRenew: f => f,\n recordEvent: f => f,\n isHIPAA: false,\n isTakeOver: false,\n teamInfo: {}\n};\n\nexport default TaskSection;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Signature from './Signature';\n\nexport function renderSignatureModal(props = {}) {\n return new Promise(resolve => {\n const { onUse: propOnUse, onCancel: propOnCancel, ...rest } = props;\n const wrapper = document.createElement('div');\n wrapper.className = 'signatureWrapper';\n document.body.appendChild(wrapper);\n const onCancel = () => {\n propOnCancel?.();\n resolve(null);\n };\n const onUse = value => {\n propOnUse?.(value);\n resolve(value);\n };\n ReactDOM.render(\n <Signature\n {...rest}\n onUse={onUse}\n onCancel={onCancel}\n wrapper={wrapper}\n />,\n wrapper,\n () => {\n const sigCanvas = document.querySelector('.signatureCanvas');\n sigCanvas.setAttribute('width', `${sigCanvas.parentNode.offsetWidth}px`);\n }\n );\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactModal from 'react-modal';\nimport classNames from 'classnames';\n\nimport {\n IconCheck, IconExclamationTriangleFilled, IconLinkDiagonalBroken, IconTrashExclamationFilled, IconXmark\n} from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport IconHIPAAWarning from '../assets/svg/iconHipaaWarning.svg';\n\nimport '../styles/_jfDialog.scss';\n\nclass Dialog extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loadingState: 'default'\n };\n }\n\n onSubmit = e => {\n e.preventDefault();\n\n const { onSubmit } = this.props;\n onSubmit(e.target.doNotShowAgain ? { doNotShowAgain: e.target.doNotShowAgain.checked } : null);\n };\n\n onCancel = e => {\n if (e) {\n e.preventDefault();\n }\n const { onClose, modalID } = this.props;\n\n onClose(modalID);\n };\n\n onOtherButtonClickHandle = async (loadingButtonEnable, onOtherButtonClick) => {\n if (loadingButtonEnable) {\n this.setState({ loadingState: 'loading' });\n await onOtherButtonClick();\n setTimeout(() => {\n this.setState({ loadingState: 'default' });\n }, 2000);\n return;\n }\n onOtherButtonClick();\n };\n\n get headerIcon() {\n const { type } = this.props;\n switch (type) {\n case 'warning':\n return {\n svg: <IconExclamationTriangleFilled />,\n class: 'warningIcon'\n };\n case 'success':\n return {\n svg: <span><IconCheck /></span>,\n class: 'successIcon'\n };\n case 'removeConnection':\n return {\n svg: <IconLinkDiagonalBroken />,\n class: 'removeConnectionIcon'\n };\n case 'trash':\n return {\n svg: <IconTrashExclamationFilled />,\n class: 'dialogTrashIcon'\n };\n case 'hipaaWarning':\n return {\n svg: <IconHIPAAWarning />,\n class: 'dialogHIPAAWarningIcon'\n };\n // case 'error':\n // return {\n // svg: errorSVG,\n // class: 'error'\n // };\n default:\n return null;\n }\n }\n\n render() {\n const {\n closable, isOpen, modalID, submitButtonText, cancelButtonText, oneButtonDialog, isOneButtonColor,\n title, subTitles, hasCheckboxForDisabling, otherButtonText, onOtherButtonClick, dialogClass, renderFields, wrapperClassName, headerImg, isSolidButtonGreen,\n loadingButtonEnable, parentSelector\n } = this.props;\n\n const { loadingState } = this.state;\n return (\n <ReactModal\n key={modalID}\n isOpen={isOpen}\n overlayClassName={`jfDialog-wrapper ${wrapperClassName}`}\n className={`jfDialog ${dialogClass}`}\n role=\"dialog\"\n ariaHideApp={true}\n shouldCloseOnOverlayClick={true}\n shouldCloseOnEsc={true}\n onRequestClose={this.onCancel}\n aria={{\n labelledby: 'heading',\n describedby: 'full_description'\n }}\n parentSelector={parentSelector}\n >\n <form onSubmit={this.onSubmit}>\n <div className=\"jfDialog-header\">\n {this.headerIcon && <span className={classNames('jfDialog-header-icon', this.headerIcon.class)}>{this.headerIcon.svg}</span>}\n {headerImg && <span className='jfDialog-header-img'>{headerImg}</span>}\n {title && <h2 className=\"jfDialog-title\">{title}</h2>}\n {subTitles && subTitles.map(subTitle => <p key={subTitle} className=\"jfDialog-subTitle\" dangerouslySetInnerHTML={{ __html: subTitle }} />)}\n {hasCheckboxForDisabling && (\n <label htmlFor=\"doNotShowConfirmation\" className=\"jfDialog-checkBox\">\n <input\n type=\"checkbox\"\n name=\"doNotShowAgain\"\n className=\"jfDialog-checkBoxInput\"\n id=\"doNotShowConfirmation\"\n />\n <span className=\"jfDialog-checkBoxLabel\">\n {t('Do not show this message again')}\n </span>\n </label>\n )}\n {closable && (\n <button\n tabIndex=\"-1\" type=\"button\" className=\"jfDialog-closeButton\"\n onClick={this.onCancel}\n aria-label=\"Close dialog\"\n >\n <IconXmark />\n </button>\n )}\n </div>\n <div className=\"jfDialog-main\">\n {renderFields !== null ? renderFields().map((item, index) => {\n return (\n <div\n key={index.toString()} // eslint-disable-line react/no-array-index-key\n className=\"jfDialog-row\"\n >\n <h2 className=\"jfDialog-title\">{item.fieldTitle}</h2>\n <p className=\"jfDialog-subTitle\">{item.fieldSubTitle}</p>\n {item.element}\n </div>\n );\n }) : null}\n </div>\n <div className={classNames('jfDialog-footer', { hasHideButton: otherButtonText })}>\n {!oneButtonDialog && <button type=\"submit\" className={classNames('jfDialog-solidButton', { solidButtonGreen: isSolidButtonGreen })}>{submitButtonText}</button>}\n {otherButtonText && (\n <button\n type=\"button\"\n tabIndex=\"-1\"\n data-test-id=\"jfDialog-outlineButton\"\n className={classNames(\n 'jfDialog-outlineButton',\n {\n solidButtonGreen: isOneButtonColor === 'green',\n solidButtonBlue: isOneButtonColor === 'blue',\n isLoading: loadingState === 'loading'\n }\n )}\n onClick={() => this.onOtherButtonClickHandle(loadingButtonEnable, onOtherButtonClick)}\n >\n {loadingState === 'default' && (otherButtonText)}\n {loadingButtonEnable && loadingState === 'loading' && ('PLEASE WAIT...')}\n {loadingButtonEnable && loadingState === 'completed' && ('REQUEST COMPLETED')}\n </button>\n )}\n {cancelButtonText && (\n <button type=\"button\" className=\"jfDialog-outlineButton\" onClick={this.onCancel}>{cancelButtonText}</button>\n )}\n </div>\n </form>\n </ReactModal>\n );\n }\n}\n\nDialog.propTypes = {\n isOpen: PropTypes.bool,\n closable: PropTypes.bool,\n modalID: PropTypes.string,\n type: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n hasCheckboxForDisabling: PropTypes.bool,\n title: PropTypes.string,\n subTitles: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n onOtherButtonClick: PropTypes.func,\n submitButtonText: PropTypes.string,\n otherButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n dialogClass: PropTypes.string,\n renderFields: PropTypes.func,\n wrapperClassName: PropTypes.string,\n headerImg: PropTypes.node,\n isSolidButtonGreen: PropTypes.bool,\n oneButtonDialog: PropTypes.bool,\n isOneButtonColor: PropTypes.string,\n loadingButtonEnable: PropTypes.bool,\n parentSelector: PropTypes.func\n};\n\nDialog.defaultProps = {\n isOpen: false,\n closable: true,\n modalID: '',\n type: '',\n hasCheckboxForDisabling: false,\n title: '',\n subTitles: '',\n onOtherButtonClick: () => { },\n submitButtonText: '',\n otherButtonText: '',\n cancelButtonText: '',\n dialogClass: 'isDefault',\n renderFields: null,\n wrapperClassName: '',\n headerImg: null,\n isSolidButtonGreen: false,\n oneButtonDialog: false,\n isOneButtonColor: null,\n loadingButtonEnable: false,\n parentSelector: () => document.body\n};\n\nexport default Dialog;\n","/**\n * Determine if two nodes have parent relationship between each other.\n * @function\n * @param {HTMLElement} parentNode Parent node\n * @param {HTMLElement} childNode Child node\n * @return {boolean} Return status\n */\nexport const isParentNode = (parentNode, childNode) => {\n let sourceNode = childNode;\n\n while (sourceNode.parentNode) {\n if (sourceNode.parentNode !== parentNode) {\n sourceNode = sourceNode.parentNode;\n } else {\n return true;\n }\n }\n return false;\n};\n","import React, { Component } from 'react';\nimport {\n node,\n func,\n bool,\n shape,\n string,\n number,\n oneOfType,\n elementType\n} from 'prop-types';\n\nimport { isParentNode } from '../utils';\n\nimport IconDropdownArrow from '../assets/svg/iconDropdownArrow.svg';\n\nimport '../styles/style.scss';\n\n/** A button with popover capabilities - Needs refactor */\nexport class ButtonField extends Component {\n constructor(props) {\n super(props);\n\n const { options } = props;\n this.state = {\n isDropdownOpen: options.isDropdownOpenInitially || false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.handleOutsideClick = this.handleOutsideClick.bind(this);\n this.closeDropdown = this.closeDropdown.bind(this);\n }\n\n componentDidMount() {\n const { innerRef } = this.props;\n if (typeof innerRef === 'object' && innerRef !== null) {\n innerRef.current = { closeDropdown: this.closeDropdown };\n }\n }\n\n handleOutsideClick(e) {\n const { options: { forceDropdown = false }, listenerElementClass } = this.props;\n\n if (!forceDropdown && !isParentNode(this.self, e.target) && this.self !== e.target) {\n this.setState(({ isDropdownOpen }) => ({ isDropdownOpen: !isDropdownOpen }));\n const queryElement = listenerElementClass ? global.document.querySelector(`.${listenerElementClass}`) : global.document.body;\n queryElement?.removeEventListener('mousedown', this.handleOutsideClick);\n }\n }\n\n handleClick(e) {\n const {\n onClick,\n items,\n options,\n listenerElementClass\n } = this.props;\n\n const {\n isDropdownOpen\n } = this.state;\n\n const willBeIsDropdownOpen = !isDropdownOpen;\n\n if (options.preventBubblingFromChildren && e.target !== this.self) {\n e.stopPropagation();\n } else if (items) {\n this.setState({ isDropdownOpen: willBeIsDropdownOpen }, () => {\n const queryElement = listenerElementClass ? global.document.querySelector(`.${listenerElementClass}`) : global.document.body;\n if (willBeIsDropdownOpen) {\n queryElement?.addEventListener('mousedown', this.handleOutsideClick);\n } else {\n queryElement?.removeEventListener('mousedown', this.handleOutsideClick);\n }\n if (typeof onClick === 'function') {\n onClick(e, willBeIsDropdownOpen);\n }\n });\n e.stopPropagation();\n } else if (typeof onClick === 'function') {\n onClick(e);\n }\n }\n\n get classNames() {\n const {\n className,\n icon,\n items,\n options,\n children\n } = this.props;\n\n const {\n isDropdownOpen\n } = this.state;\n\n return [\n 'jfButton',\n className.trim(),\n icon && !options.hideItemsArrow ? 'hasIcon' : null,\n items ? 'hasItems' : null,\n children ? 'hasContent' : null,\n isDropdownOpen ? 'isDropdownOpen' : null\n ].filter(a => a).join(' ');\n }\n\n closeDropdown() {\n this.setState({ isDropdownOpen: false });\n }\n\n render() {\n const {\n items,\n icon,\n options,\n children,\n appendChildren,\n onClick,\n onKeyUp,\n useMouseUp,\n tabIndex,\n ...remainingProps\n } = this.props;\n\n const event = useMouseUp ? {\n onMouseUp: this.handleClick\n } : {\n onClick: this.handleClick\n };\n\n return (\n <div\n ref={e => { this.self = e; }}\n disabled={!onClick && !items}\n {...remainingProps}\n className={this.classNames}\n onKeyUp={onKeyUp}\n tabIndex={tabIndex}\n role=\"button\"\n {...event}\n >\n {icon && <span className=\"jfButton-icon\">{icon}</span>}\n {children && <span className=\"jfButton-children\">{children}</span>}\n {items && (options && !options.hideItemsArrow) ? (\n <span className=\"jfButton-dropdownIcon\"><IconDropdownArrow /></span>\n ) : null}\n {items && (\n <div className=\"jfButton-items\">\n {items}\n </div>\n )}\n {appendChildren && <span className=\"jfButton-appendedChildren\">{appendChildren}</span>}\n </div>\n );\n }\n}\n\nButtonField.propTypes = {\n children: oneOfType([elementType, node]),\n appendChildren: oneOfType([elementType, node]),\n icon: oneOfType([elementType, node]),\n items: oneOfType([\n oneOfType([elementType, node]),\n bool\n ]),\n options: shape({\n hideItemsArrow: bool,\n forceDropdown: bool,\n isDropdownOpenInitially: bool,\n preventBubblingFromChildren: bool\n }),\n title: string,\n className: string,\n onClick: func,\n useMouseUp: bool,\n onKeyUp: func,\n onMouseEnter: func,\n onMouseLeave: func,\n innerRef: shape({ current: shape({}) }),\n tabIndex: number,\n listenerElementClass: string\n};\n\nButtonField.defaultProps = {\n children: null,\n appendChildren: null,\n icon: null,\n items: null,\n className: '',\n title: '',\n options: {\n hideItemsArrow: false,\n forceDropdown: false\n },\n onClick: null,\n useMouseUp: null,\n onKeyUp: f => f,\n onMouseEnter: f => f,\n onMouseLeave: f => f,\n innerRef: { current: {} },\n tabIndex: -1,\n listenerElementClass: ''\n};\n","import React, { useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport {\n string, node, func, elementType\n} from 'prop-types';\nimport { ButtonField as Button } from '@jotforminc/button-field';\nimport { Button as CloseButton } from '@jotforminc/magnet';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport {\n ScOverlay, ScBox, ScHeader, ScBody\n} from '../SubmissionThread/scModal';\n\nconst ActionButton = ({\n title, icon, onClick, component, ComponentRenderer\n}) => {\n const modalRef = useRef();\n const handleModalHide = () => modalRef.current.hide();\n const handleModalShow = () => modalRef.current.show();\n\n return (\n <>\n <Button\n icon={icon}\n type=\"button\"\n onClick={onClick || handleModalShow}\n >\n {title}\n </Button>\n { (component || ComponentRenderer) && !onClick\n ? (\n <Modal\n usePortal\n ref={modalRef}\n DialogRenderer={ScOverlay}\n ContentRenderer={ScBox}\n FooterRenderer={() => null}\n HeaderRenderer={() => (\n <ScHeader>\n {icon || null}\n <span>{title}</span>\n <CloseButton\n colorStyle=\"secondary\"\n rounded={true}\n startIcon={IconXmark}\n className=\"ml-auto\"\n aria-label={t('Close Modal')}\n onClick={handleModalHide}\n />\n </ScHeader>\n )}\n >\n <ScBody>\n {ComponentRenderer ? <ComponentRenderer modalRef={modalRef} /> : component}\n </ScBody>\n </Modal>\n )\n : null }\n </>\n );\n};\n\nActionButton.propTypes = {\n title: string.isRequired,\n icon: node.isRequired,\n component: node,\n onClick: func.isRequired,\n ComponentRenderer: elementType\n};\n\nActionButton.defaultProps = {\n component: null,\n ComponentRenderer: null\n};\n\nexport default ActionButton;\n","import React, { useEffect, useRef } from 'react';\nimport {\n arrayOf, shape, node, bool\n} from 'prop-types';\nimport classNames from 'classnames';\nimport Tethered from 'react-tether';\nimport { Hooks } from '@jotforminc/uikit';\n\nimport ActionButton from './ActionButton';\n\nconst MoreButton = ({ components, children, disabled }) => {\n const menuRef = useRef();\n const buttonRef = useRef();\n const tetherMenuRef = useRef();\n const componentsFiltered = components && components.filter(val => val);\n const [isMenuVisible, setMenuVisibility] = Hooks.useClickOutsideState(false, [buttonRef]);\n\n useEffect(() => {\n if (isMenuVisible) {\n tetherMenuRef?.current?.children[0]?.focus();\n }\n }, [isMenuVisible]);\n\n return (\n <div className=\"jfThread-action-header-actions\">\n <Tethered\n ref={menuRef}\n style={{\n zIndex: 200,\n display: `${isMenuVisible ? 'block' : 'none'}`, // stylelint-disable-line\n pointerEvents: `${isMenuVisible ? 'auto' : 'none'}` // stylelint-disable-line\n }}\n targetAttachment='bottom right'\n attachment='top right'\n constraints={[{\n to: 'window',\n attachment: 'together',\n pin: true\n }]}\n >\n <button\n ref={buttonRef}\n className=\"forActions\"\n type=\"button\"\n disabled={disabled}\n onClick={() => setMenuVisibility(!isMenuVisible)}\n >\n more\n </button>\n <div ref={tetherMenuRef} className={classNames('jfMenu', 'isDark', { isVisible: isMenuVisible })}>\n {children || null}\n {componentsFiltered ? componentsFiltered.map(({\n title, icon, onClick, component, button, ComponentRenderer\n }) => (\n button || (\n <ActionButton\n key={title}\n title={title}\n icon={icon}\n onClick={onClick}\n component={component}\n ComponentRenderer={ComponentRenderer}\n />\n )))\n : null}\n </div>\n </Tethered>\n </div>\n );\n};\n\nMoreButton.propTypes = {\n components: arrayOf(\n shape(ActionButton.propTypes)\n ),\n children: node,\n disabled: bool\n};\n\nMoreButton.defaultProps = {\n components: null,\n children: null,\n disabled: false\n};\n\nexport default MoreButton;\n","import React from 'react';\nimport { SingleAvatarWithDetails } from '@jotforminc/avatar-groups';\nimport { bool, shape } from 'prop-types';\nimport { useActionComponents } from '../hooks/useActionComponents';\nimport MoreButton from './MoreButton';\nimport { defaultAvatarValues, getDateValue } from '../utils/helper';\n\nconst SingleAvatarMoreButton = val => {\n const { takeover: singleTakeover } = useActionComponents(val);\n\n return (\n <MoreButton\n components={[singleTakeover()]}\n />\n );\n};\n\nconst AvatarWithApprovalAction = ({\n forTask, subtasks, task, isTeamApproval, ...rest\n}) => {\n const renderAvatars = subtasks.map(subtask => {\n const {\n updated_at: updatedAt, timestamp = null, comment, status, properties: {\n outcomeInfo, signature, notRequired, contentText, takenOver, notQualifiedReason\n }, name, email, avatarUrl, user = [], ...eachTask\n } = subtask;\n const { isCompleteAllowed = false } = task;\n const { buttonColor, type, text } = defaultAvatarValues(outcomeInfo, notRequired, notQualifiedReason) || {};\n const isCompleted = status && status === 'COMPLETED';\n const isCanceled = status && status === 'CANCELED';\n const userValue = name || email;\n const contentTextForUser = takenOver ? `on behalf of ${userValue}` : '';\n const isTakenOver = takenOver && user && !Array.isArray(user);\n const userNameValue = isTakenOver ? (user?.name || user?.username || user?.email) : name;\n const userEmailValue = isTakenOver ? user?.email : email;\n const userAvatarValue = isTakenOver ? user?.avatarUrl : avatarUrl;\n const date = getDateValue(timestamp, updatedAt);\n return (\n <SingleAvatarWithDetails\n {...eachTask}\n name={userNameValue}\n email={userEmailValue}\n avatarUrl={userAvatarValue}\n comment={comment}\n outcomeColor={buttonColor}\n status={{ type, text }}\n signature={eachTask?.signature || signature}\n contentText={contentText || contentTextForUser}\n date={date}\n menu={forTask && !isCompleted && !isCanceled && isCompleteAllowed && (\n <SingleAvatarMoreButton\n task={subtask}\n approver={{ name: userNameValue, email: userEmailValue, avatarUrl: userAvatarValue }}\n {...rest}\n />\n )}\n />\n );\n });\n\n return (\n <>\n {isTeamApproval && (\n <h3 className=\"jfWorkflowPanel-row isHeader\">\n Team Members\n </h3>\n )}\n <div className=\"jfWorkflowPanel-row forUsers\">\n {renderAvatars}\n </div>\n </>\n );\n};\n// TODO: check proptypes\nAvatarWithApprovalAction.propTypes = {\n forTask: bool,\n isTeamApproval: bool,\n subtasks: shape({}),\n task: shape({})\n};\n\nAvatarWithApprovalAction.defaultProps = {\n forTask: false,\n isTeamApproval: false,\n subtasks: {},\n task: {}\n};\n\nexport default AvatarWithApprovalAction;\n","import React, { useRef } from 'react';\nimport { func } from 'prop-types';\n\nconst HiddenFrame = ({ onLoad }) => {\n const uploadFrameRef = useRef(false);\n\n const handleLoad = () => {\n let content = false;\n const { current: iframe } = uploadFrameRef;\n switch (true) {\n case Boolean(iframe.contentDocument):\n content = iframe.contentDocument.body.innerHTML;\n break;\n case Boolean(iframe.contentWindow):\n content = iframe.contentWindow.document.body.innerHTML;\n break;\n case Boolean(iframe.document):\n content = iframe.document.body.innerHTML;\n break;\n default:\n break;\n }\n\n return onLoad({ content, iframe });\n };\n\n return (\n <iframe\n width=\"0\"\n height=\"0\"\n title=\"frame\"\n id=\"uploadTrg\"\n name=\"uploadTrg\"\n frameBorder=\"0\"\n scrolling=\"yes\"\n ref={uploadFrameRef}\n onLoad={handleLoad}\n />\n );\n};\n\nHiddenFrame.propTypes = {\n onLoad: func\n};\n\nHiddenFrame.defaultProps = {\n onLoad: f => f\n};\n\nexport default HiddenFrame;\n","import React from 'react';\nimport { elementType, func } from 'prop-types';\n\nimport { useDragState, useEffectIgnoreFirst } from '../../utils/hooks';\n\nconst DragContainer = ({\n ContainerRenderer, onDragStateChange, onDragOver, onDragLeave, onDrop, onDragEnter, ...props\n}) => {\n const [isDragging, dragEventHandlers] = useDragState(false, {\n onDragOver,\n onDragLeave,\n onDrop,\n onDragEnter\n });\n\n useEffectIgnoreFirst(() => {\n onDragStateChange(isDragging);\n }, [isDragging]);\n\n return <ContainerRenderer {...props} {...dragEventHandlers} />;\n};\n\nDragContainer.propTypes = {\n ContainerRenderer: elementType,\n onDragStateChange: func,\n onDragOver: func,\n onDragLeave: func,\n onDrop: func,\n onDragEnter: func\n};\n\nDragContainer.defaultProps = {\n ContainerRenderer: props => <div {...props} />,\n onDragStateChange: f => f,\n onDragOver: f => f,\n onDragLeave: f => f,\n onDrop: f => f,\n onDragEnter: f => f\n};\n\nexport default DragContainer;\n","import React from 'react';\nimport { shape } from 'prop-types';\n\nconst Text = ({ style, ...props }) => <div className=\"fileUpload-verticalAlign-text\" style={{ textAlign: 'center', ...style }} {...props} />;\n\nText.propTypes = {\n style: shape({})\n};\n\nText.defaultProps = {\n style: {}\n};\n\nexport default Text;\n","import React from 'react';\nimport { shape } from 'prop-types';\n\nconst Form = ({ style, ...props }) => (\n <form\n style={{ textAlign: 'center', ...style }}\n {...props}\n />\n);\n\nForm.propTypes = {\n style: shape({})\n};\n\nForm.defaultProps = {\n style: {}\n};\n\nexport default Form;\n","import React from 'react';\nimport { shape, string } from 'prop-types';\n\nconst ErrorText = ({ className, style, ...props }) => (\n <span\n style={{ whiteSpace: 'pre-line', ...style }}\n className={['fileUpload-error', className].join(' ')}\n {...props}\n />\n);\n\nErrorText.propTypes = {\n className: string,\n style: shape({})\n};\n\nErrorText.defaultProps = {\n className: '',\n style: {}\n};\n\nexport default ErrorText;\n","import React, { useRef } from 'react';\nimport { bool, func, string } from 'prop-types';\nimport { Button } from '@jotforminc/magnet';\nimport { IconArrowDownToLine } from '@jotforminc/svg-icons';\nimport { isPressedKeyEnterOrSpace } from '../../../utils';\n\nconst FileInput = ({\n putFileInput, translate, buttonText, ...inputProps\n}) => {\n const inputRef = useRef();\n const isBrowserMsEdge = global.isMsEdge && global.isMsEdge === true;\n const handleLabelClick = () => isBrowserMsEdge && inputRef.current && inputRef.current.click();\n const handleLabelKeyDown = event => isPressedKeyEnterOrSpace(event) && handleLabelClick();\n const onUploadBtnClick = () => inputRef.current.click();\n\n return (\n <>\n <Button\n type=\"button\"\n onClick={() => {\n onUploadBtnClick();\n handleLabelClick();\n }}\n onKeyDown={handleLabelKeyDown}\n startIcon={IconArrowDownToLine}\n className='fileInputBtn min-h-8 h-auto py-3'\n aria-label={translate(buttonText)}\n >\n {translate(buttonText)}\n </Button>\n {putFileInput && (\n <input\n type=\"file\"\n ref={inputRef}\n {...inputProps}\n />\n )}\n </>\n );\n};\n\nFileInput.propTypes = {\n buttonText: string,\n putFileInput: bool,\n translate: func\n};\n\nFileInput.defaultProps = {\n buttonText: 'Upload File',\n putFileInput: true,\n translate: f => f\n};\n\nexport default FileInput;\n","import React from 'react';\nimport {\n shape, string, func, elementType\n} from 'prop-types';\nimport { shortenString } from '@jotforminc/utils';\n\nimport { isPressedKeyEnterOrSpace } from '../../../utils';\n\nconst FilePreview = ({\n file, translate, changeModeToUpload, Thumbnail, removeButtonText\n}) => {\n const { name, type } = file;\n const shortName = shortenString(name);\n const isImage = type.indexOf('image') !== -1;\n\n const handleKeyDown = event => isPressedKeyEnterOrSpace(event) && changeModeToUpload();\n return (\n <div\n className=\"card\"\n >\n <div className=\"card-leftSide\">\n <Thumbnail file={file} />\n </div>\n <div className=\"card-contentWrapper\">\n <div className=\"card-content\">\n <span className=\"card-content-fileName\">{shortName}</span>\n <a\n tabIndex=\"0\"\n role=\"button\"\n onKeyDown={handleKeyDown}\n onClick={changeModeToUpload}\n className=\"card-content-button\"\n style={{\n left: isImage ? '132px' : '63px'\n }}\n >\n {translate(removeButtonText)}\n </a>\n </div>\n </div>\n </div>\n );\n};\n\nFilePreview.propTypes = {\n file: shape({\n name: string,\n type: string,\n url: string\n }),\n translate: func,\n changeModeToUpload: func,\n Thumbnail: elementType,\n removeButtonText: string\n};\n\nFilePreview.defaultProps = {\n file: {},\n translate: f => f,\n changeModeToUpload: f => f,\n Thumbnail: props => <img src=\"cdn.jotfor.ms/assets/img/builder/other_file_icon.png\" {...props} alt=\"file-upload-thumbnail\" />,\n removeButtonText: 'Remove File'\n};\n\nexport default FilePreview;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst TextWrapper = ({ className, ...props }) => <div className={['fileUpload-verticalAlign', className].join(' ')} {...props} />;\n\nTextWrapper.propTypes = {\n className: string\n};\n\nTextWrapper.defaultProps = {\n className: ''\n};\n\nexport default TextWrapper;\n","import React, { useMemo } from 'react';\nimport { shape, string } from 'prop-types';\n\nconst Thumbnail = ({ file: { type, url } }) => {\n const [imageURL, style = { height: '64px' }] = useMemo(() => {\n switch (true) {\n case type.indexOf('image') !== -1: {\n return [url, {\n width: '120px', minHeight: '64px', maxHeight: '120px', objectFit: 'contain'\n }];\n }\n case type.indexOf('application/pdf') !== -1: {\n return ['//cdn.jotfor.ms/assets/img/builder/pdf_icon.png'];\n }\n case type.indexOf('msword') !== -1 || type.indexOf('officedocument') !== -1: {\n return ['//cdn.jotfor.ms/assets/img/builder/doc_icon.png'];\n }\n default: {\n return ['//cdn.jotfor.ms/assets/img/builder/other_file_icon.png'];\n }\n }\n }, [type, url]);\n\n return (\n <img alt=\"\" src={imageURL} style={style} />\n );\n};\n\nThumbnail.propTypes = {\n file: shape({\n name: string,\n type: string\n })\n};\n\nThumbnail.defaultProps = {\n file: {}\n};\n\nexport default Thumbnail;\n","import { elementType, func } from 'prop-types';\nimport React from 'react';\n\nconst LoadingScreen = ({\n Wrapper, translate\n}) => {\n return (\n <Wrapper>\n {translate('Uploading...')}\n </Wrapper>\n );\n};\n\nLoadingScreen.propTypes = {\n Wrapper: elementType,\n translate: func\n};\n\nLoadingScreen.defaultProps = {\n Wrapper: props => <div {...props} />,\n translate: f => f\n};\n\nexport default LoadingScreen;\n","import React, { Component } from 'react';\nimport {\n shape, string, bool, func, node, elementType\n} from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\n\nimport HiddenFrame from '../HiddenFrame';\nimport DragContainer from '../DragContainer';\nimport {\n Form as DefaultForm,\n Text as DefaultText,\n Wrapper as DefaultWrapper,\n ErrorText as DefaultErrorText,\n Thumbnail as DefaultThumbnail,\n FileInput as DefaultFileInput,\n FilePreview as DefaultFilePreview,\n TextWrapper as DefaultTextWrapper,\n DragContainer as DefaultDragContainer,\n LoadingScreen as DefaultLoadingScreen\n} from './defaults';\n\nimport { createFileMetadata } from '../../utils';\nimport { SERVER_ERROR, FILE_TYPE_ERROR } from '../../utils/constants';\n\nlet apiKey = '';\nconst isThereInvitation = global.location.href.match(/iak=([\\d | \\w | -]*)/) !== null && global.location.href.match(/iak=([\\d | \\w | -]*)/).length === 2;\nlet invitationAPIKey = '';\nif (isThereInvitation) {\n [, invitationAPIKey] = global.location.href.match(/iak=([\\d | \\w | -]*)/);\n}\nif (isThereInvitation && invitationAPIKey.length > 0) {\n apiKey = `${invitationAPIKey}`;\n}\n// We have duplicated above apiKey logic from form-builder/api.js for a fast secuirty fix of #5463996\n// And we need to put it to global scope unfortunately because these iak params gets deleted on page navigations.\n// an unfortunate lazy and fast fix :(\n\nclass FileUpload extends Component {\n constructor(props) {\n super(props);\n this.currentlyUploadingFile = null;\n\n const { showFile } = props;\n const isModeDisplay = showFile && showFile.name;\n const uploadedFiles = isModeDisplay ? [showFile] : [];\n const mode = isModeDisplay ? 'display' : 'upload';\n this.state = {\n mode,\n uploadedFiles,\n init: true,\n isDragging: false,\n isUploading: false\n };\n\n const xhr = new global.XMLHttpRequest();\n this.supportXHR2 = xhr.upload && window.File && window.FileList && window.FileReader;\n }\n\n static getDerivedStateFromProps = (nextProps, prevState) => {\n const { showFile } = nextProps;\n const { uploadedFiles } = prevState;\n if (showFile?.name && !isEqual(showFile, uploadedFiles[0])) {\n return {\n mode: 'display',\n uploadedFiles: [showFile],\n init: true,\n isDragging: false,\n isUploading: false\n };\n }\n return null;\n };\n\n handleFormSubmit = () => this.setState({ isUploading: true, init: false });\n\n handleUploadFrameLoad = ({ content }) => {\n const [serverMessage] = (content.match(/\\{.*\\}/) || ['']);\n try {\n const response = JSON.parse(serverMessage);\n if (response.success !== true) {\n this.fileUploadError(SERVER_ERROR);\n return;\n }\n const { multipleFileUpload } = this.props;\n if (multipleFileUpload && !this.checkMultipleUploadError(response)) {\n return;\n }\n this.fileUploadComplete(response);\n } catch (e) {\n this.fileUploadError(SERVER_ERROR);\n }\n };\n\n handleDragStateChange = isDragging => this.setState({ isDragging });\n\n get uploadURL() {\n const { targetURL, optimize } = this.props;\n const isQueryStringExist = /[?&](.*?)=/.test(targetURL);\n const extraParameter = optimize ? `${isQueryStringExist ? '&' : '?'}optimize=1` : '';\n return `${targetURL}${extraParameter}`;\n }\n\n uploadFile = e => {\n // is file uploading\n const { onFileUploading, limitType, multipleFileUpload } = this.props;\n onFileUploading(true);\n\n const fd = new global.FormData();\n let files = e.target.files || e.dataTransfer.files;\n if (multipleFileUpload) {\n files = (files.length && !Array.isArray(files)) ? Array.from(files) : files;\n }\n\n if (!this.controlUploadingFiles(files)) {\n return;\n }\n\n if (multipleFileUpload) {\n files.forEach((file, index) => {\n if (index < 10 && this.checkFileType(file)) {\n fd.append('file[]', file);\n }\n });\n } else {\n [this.currentlyUploadingFile] = files;\n const newFileName = this.currentlyUploadingFile.name.split('\\'').join('');\n fd.append('file', this.currentlyUploadingFile, newFileName);\n }\n\n if (limitType) {\n fd.append('limit_type', limitType);\n }\n\n this.setState({\n isUploading: true,\n isUploadFailed: false,\n init: false\n }, () => {\n const request = new global.XMLHttpRequest();\n request.open('POST', this.uploadURL);\n if (apiKey) { // for collaborator auths\n request.setRequestHeader('apiKey', apiKey);\n }\n request.onreadystatechange = () => {\n if (request.status === 200) {\n if (request.readyState === 4) {\n try {\n const response = JSON.parse(request.responseText);\n if (response.success !== true) {\n this.fileUploadError(SERVER_ERROR);\n return;\n }\n\n if (multipleFileUpload && !this.checkMultipleUploadError(response, files)) {\n return;\n }\n\n this.fileUploadComplete(response);\n } catch (err) {\n this.fileUploadError(SERVER_ERROR);\n }\n }\n } else { // request not success\n this.fileUploadError(SERVER_ERROR);\n }\n };\n request.send(fd);\n });\n };\n\n fileUploadComplete = resp => {\n let { uploadedFiles: uploadedFilesArr } = this.state;\n const {\n multipleFileUpload, displayUpload, onFileUpload, multi, onFileUploading, onDisplayModeChange\n } = this.props;\n\n // is file uploading complete\n onFileUploading(false);\n\n const url = encodeURI(resp.message);\n const newFileRecord = createFileMetadata(this.currentlyUploadingFile, url);\n\n let urls = [];\n if (resp.message.length > 0) {\n urls = resp.message;\n }\n if (multipleFileUpload) {\n urls.forEach((currentUrl, index) => {\n if (typeof currentUrl !== 'object' && (typeof currentUrl === 'string' && !currentUrl.match(/\\{.*\\}/))) { // The object file means it's an error.\n uploadedFilesArr.push(createFileMetadata(this.currentlyUploadingFile[index], currentUrl));\n }\n });\n } else {\n uploadedFilesArr = [newFileRecord];\n }\n\n const nextMode = displayUpload ? 'display' : 'upload';\n this.setState({\n uploadedFiles: uploadedFilesArr,\n isUploading: false,\n init: false,\n isDragging: false,\n mode: nextMode\n });\n\n onDisplayModeChange(nextMode);\n if (!onFileUpload) {\n return;\n }\n\n if (multipleFileUpload) {\n onFileUpload(uploadedFilesArr);\n } else if (multi) {\n const fileNames = uploadedFilesArr.map(file => file.name);\n onFileUpload(fileNames);\n } else {\n onFileUpload(newFileRecord);\n }\n };\n\n checkMultipleUploadError = (response, files) => {\n const { addNotification } = this.props;\n\n const errors = [];\n if (Array.isArray(response.message)) {\n response.message.forEach(file => {\n if (typeof file === 'object') {\n errors.push(file.error);\n } else if (typeof file === 'string' && file.match(/\\{.*\\}/)) {\n errors.push(JSON.parse(file).error);\n }\n });\n\n if (errors.length === response.message.length) {\n this.fileUploadError(errors.join('\\n'));\n return false;\n }\n\n if (errors.length > 0 && addNotification) {\n errors.forEach(error => {\n setTimeout(() => {\n // SetTimeout is necessary to send all errors.\n addNotification({\n message: error,\n autoDismiss: 7,\n level: 'error'\n });\n }, 100);\n });\n }\n\n if (files && files.length > 10 && addNotification) {\n addNotification({\n autoDismiss: 7,\n level: 'error',\n message: `${10 - errors.length} of the images were uploaded succesfully. ${files.length - 10} images couldn't be attached due to file limit (max 10 images)`\n });\n }\n\n return true;\n }\n\n if (typeof response.message === 'string' && response.message.match(/\\{.*\\}/)) {\n const errorMessage = JSON.parse(response.message).error;\n this.fileUploadError(errorMessage);\n return false;\n }\n\n this.fileUploadError(SERVER_ERROR);\n return false;\n };\n\n fileUploadError = message => {\n const { init, isDragging } = this.state;\n if (init && !isDragging) {\n return;\n }\n\n const { onError, onFileUploading } = this.props;\n onFileUploading(false);\n onError(message);\n\n this.setState({\n isDragging: false,\n isUploadFailed: true,\n isUploading: false,\n errorMessage: message\n });\n };\n\n controlUploadingFiles = files => {\n const { multipleFileUpload, addNotification, onFileUploading } = this.props;\n if (!multipleFileUpload) {\n [this.currentlyUploadingFile] = files;\n return Boolean(this.checkFileType());\n }\n\n const errors = [];\n\n files.forEach(file => {\n this.currentlyUploadingFile = file;\n if (!this.checkFileType()) {\n errors.push(FILE_TYPE_ERROR);\n }\n });\n\n if (errors.length === files.length) {\n this.fileUploadError(FILE_TYPE_ERROR);\n onFileUploading(false);\n return false;\n }\n\n if (errors.length > 0) {\n errors.forEach(error => {\n setTimeout(() => {\n addNotification({\n message: error,\n autoDismiss: 7,\n level: 'error'\n });\n }, 100);\n });\n }\n\n this.currentlyUploadingFile = files;\n return true;\n };\n\n checkFileType = checkingFile => {\n const { imageUpload, allowedTypes, typeErrorMessage } = this.props;\n const file = checkingFile || this.currentlyUploadingFile;\n if (imageUpload) {\n if (file.type.indexOf('image') < 0 || file.type.indexOf('image/heic') > -1) {\n this.fileUploadError(FILE_TYPE_ERROR);\n return false;\n }\n\n return true;\n }\n\n if (isEmpty(allowedTypes)) {\n return true;\n }\n\n const accepted = allowedTypes.split(',').map(el => el.trim());\n if (accepted.indexOf('image/*') >= 0 && file.type.indexOf('image') < 0 && accepted.indexOf(file.type) < 0) {\n this.fileUploadError(typeErrorMessage || FILE_TYPE_ERROR);\n return false;\n }\n\n if (accepted.indexOf(file.type) < 0) {\n this.fileUploadError(typeErrorMessage || FILE_TYPE_ERROR);\n return false;\n }\n\n return true;\n };\n\n changeModeToUpload = () => {\n const { onFileRemove, onDisplayModeChange } = this.props;\n this.setState({\n mode: 'upload',\n uploadedFiles: []\n }, () => {\n onDisplayModeChange('upload');\n });\n\n if (onFileRemove) {\n onFileRemove();\n }\n };\n\n renderForm() {\n const { isDragging } = this.state;\n const {\n children, buttonText, multipleFileUpload, putFileInput, imageUpload, allowedTypes, translate,\n FileInputRenderer, FormRenderer, TextRenderer\n } = this.props;\n\n const containerDisplay = isDragging ? 'none' : 'block';\n const accept = (imageUpload && !allowedTypes) ? 'image/*' : allowedTypes;\n const inputEl = children || (\n <FileInputRenderer\n translate={translate}\n buttonText={buttonText}\n putFileInput={putFileInput}\n multiple={multipleFileUpload}\n accept={accept}\n name={multipleFileUpload ? 'file[]' : 'file'}\n onChange={this.uploadFile}\n onClick={() => this.setState({ init: false })}\n />\n );\n\n if (!putFileInput) {\n return (\n <TextRenderer style={{ display: containerDisplay, textAlign: 'center' }}>\n {inputEl}\n </TextRenderer>\n );\n }\n\n return (\n <FormRenderer\n id=\"myForm\"\n style={{ display: containerDisplay }}\n action={this.uploadURL}\n method=\"post\"\n encType=\"multipart/form-data\"\n onSubmit={this.handleFormSubmit}\n target=\"uploadTrg\"\n >\n {inputEl}\n </FormRenderer>\n );\n }\n\n render() {\n const {\n multipleFileUpload, putFileInput, translate,\n WrapperRenderer, FilePreviewRenderer, DragContainerRenderer, TextRenderer,\n ErrorTextRenderer, TextWrapperRenderer, LoadingScreenRenderer, isFileUploading,\n removeButtonText, Thumbnail\n } = this.props;\n const {\n isUploadFailed, mode, isUploading, errorMessage, isDragging, uploadedFiles\n } = this.state;\n\n const [file] = uploadedFiles;\n\n const isStillFileUploading = isUploading || isFileUploading;\n\n return (\n <WrapperRenderer>\n {!multipleFileUpload && file && (\n <FilePreviewRenderer\n file={file} translate={translate} changeModeToUpload={this.changeModeToUpload}\n Thumbnail={Thumbnail} removeButtonText={removeButtonText}\n />\n )}\n <DragContainer\n onDrop={this.uploadFile}\n onDragStateChange={this.handleDragStateChange}\n ContainerRenderer={DragContainerRenderer}\n style={{ display: mode === 'display' ? 'none' : 'block' }}\n className={`fileUpload${isUploadFailed ? ' hasError' : ''}`}\n >\n {putFileInput && (\n <HiddenFrame onLoad={this.handleUploadFrameLoad} />\n )}\n <TextWrapperRenderer>\n {!isStillFileUploading && this.renderForm()}\n {this.supportXHR2 && !isStillFileUploading && (\n <TextRenderer style={{ display: (isDragging || isUploadFailed) ? 'none' : 'block' }}>\n {translate('or drag and drop here')}\n </TextRenderer>\n )}\n {(isDragging && !isStillFileUploading) && (\n <TextRenderer>\n {translate('Drop files here')}\n </TextRenderer>\n )}\n {isStillFileUploading && (\n <LoadingScreenRenderer\n Wrapper={TextRenderer}\n translate={translate}\n />\n )}\n {isUploadFailed && (\n <ErrorTextRenderer>\n {translate(errorMessage)}\n </ErrorTextRenderer>\n )}\n </TextWrapperRenderer>\n </DragContainer>\n </WrapperRenderer>\n );\n }\n}\n\nFileUpload.propTypes = {\n TextRenderer: elementType,\n FormRenderer: elementType,\n WrapperRenderer: elementType,\n ErrorTextRenderer: elementType,\n FileInputRenderer: elementType,\n FilePreviewRenderer: elementType,\n TextWrapperRenderer: elementType,\n DragContainerRenderer: elementType,\n children: node,\n showFile: shape({\n name: string\n }),\n buttonText: string,\n allowedTypes: string,\n typeErrorMessage: string,\n targetURL: string,\n limitType: string,\n multi: bool,\n multipleFileUpload: bool,\n imageUpload: bool,\n putFileInput: bool,\n displayUpload: bool,\n optimize: bool,\n onFileUpload: func,\n onFileRemove: func,\n addNotification: func,\n translate: func,\n LoadingScreenRenderer: elementType,\n onFileUploading: func,\n isFileUploading: bool,\n removeButtonText: string,\n Thumbnail: elementType,\n onError: func,\n onDisplayModeChange: func\n};\n\nFileUpload.defaultProps = {\n TextRenderer: DefaultText,\n FormRenderer: DefaultForm,\n WrapperRenderer: DefaultWrapper,\n ErrorTextRenderer: DefaultErrorText,\n FileInputRenderer: DefaultFileInput,\n FilePreviewRenderer: DefaultFilePreview,\n TextWrapperRenderer: DefaultTextWrapper,\n DragContainerRenderer: DefaultDragContainer,\n Thumbnail: DefaultThumbnail,\n children: null,\n showFile: {},\n buttonText: 'Upload File',\n allowedTypes: '',\n typeErrorMessage: '',\n limitType: '',\n targetURL: '/server.php?action=uploadImageS3',\n putFileInput: true,\n optimize: false,\n multipleFileUpload: false,\n multi: false,\n imageUpload: false,\n displayUpload: false,\n onFileUpload: f => f,\n onFileRemove: f => f,\n addNotification: f => f,\n translate: f => f,\n LoadingScreenRenderer: DefaultLoadingScreen,\n onFileUploading: f => f,\n isFileUploading: false,\n removeButtonText: 'Remove File',\n onError: f => f,\n onDisplayModeChange: f => f\n};\n\nexport {\n DefaultText as Text,\n DefaultForm as Form,\n DefaultWrapper as Wrapper,\n DefaultFileInput as FileInput,\n DefaultThumbnail as Thumbnail,\n DefaultErrorText as ErrorText,\n DefaultFilePreview as FilePreview,\n DefaultTextWrapper as TextWrapper,\n DefaultDragContainer as DragContainer,\n DefaultLoadingScreen as LoadingScreen\n};\n\nexport default FileUpload;\n","import React from 'react';\n\nconst Wrapper = props => <div {...props} />;\n\nexport default Wrapper;\n","import React from 'react';\n\nconst DragContainer = props => <div {...props} />;\n\nexport default DragContainer;\n","import React from 'react';\nimport { node } from 'prop-types';\n\nconst TabListContainer = ({ children = null, ...props }) => <div className=\"jfTabs-row forBody\" {...props}><div className=\"jfTabs-body\">{children}</div></div>;\n\nTabListContainer.propTypes = {\n children: node.isRequired\n};\n\nexport default TabListContainer;\n","import React from 'react';\nimport { node } from 'prop-types';\n\nconst TabButtonContainer = ({ children = null, ...props }) => <div className=\"jfTabs-row forTabs\" {...props}><div className=\"jfTabs-tabs\" role=\"tablist\">{children}</div></div>;\n\nTabButtonContainer.propTypes = {\n children: node.isRequired\n};\n\nexport default TabButtonContainer;\n","import React, { forwardRef } from 'react';\nimport { elementType, node } from 'prop-types';\n\nimport TabList from './TabList';\nimport './components/TabList.scss';\n\nimport {\n Wrapper,\n TabListContainer,\n TabButtonContainer,\n TabButton\n} from './components';\n\nconst TabListWithStyles = forwardRef(({\n children, ...props\n}, tabListRef) => (\n <TabList {...props} ref={tabListRef}>\n {children}\n </TabList>\n));\n\nTabListWithStyles.propTypes = {\n children: node,\n Wrapper: elementType,\n TabListContainer: elementType,\n TabButtonContainer: elementType,\n TabButton: elementType\n};\n\nTabListWithStyles.defaultProps = {\n children: null,\n Wrapper,\n TabListContainer,\n TabButtonContainer,\n TabButton\n};\n\nexport default TabListWithStyles;\n","import React from 'react';\n\nconst Wrapper = props => <div className=\"jfTabs\" {...props} />;\n\nexport default Wrapper;\n","import React from 'react';\n\nconst TablistWrapper = props => (\n <button\n type=\"button\"\n className=\"jfTabs-tabs-button\"\n role=\"tab\"\n {...props}\n />\n);\n\nexport default TablistWrapper;\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { FormControlContextType } from '../../contexts';\nimport { primary, secondary } from '../../tokens/colors';\n\ntype FormLabelCVAType = CVAType<Pick<FormControlContextType, 'size' | 'theme' | 'required'>>\ntype FormLabelDescCVAType = CVAType<Pick<FormControlContextType, 'size' | 'theme'>>\ntype FormHelperTextCVAType = CVAType<Pick<FormControlContextType, 'theme' | 'colorStyle'>>\n\nexport const formLabelCVA = cva<FormLabelCVAType>('block font-bold', {\n variants: {\n theme: {\n light: primary.text.darkest.base,\n dark: 'color-white'\n },\n size: {\n large: 'text-md line-height-xl'\n },\n required: {}\n },\n compoundVariants: [\n {\n size: ['small', 'medium'],\n className: 'text-sm line-height-md'\n }\n ]\n});\n\nexport const formLabelDescCVA = cva<FormLabelDescCVAType>('block', {\n variants: {\n theme: {\n light: primary.text.medium.base,\n dark: secondary.text.light.base\n },\n size: {\n large: 'text-sm line-height-md'\n }\n },\n compoundVariants: [\n {\n size: ['small', 'medium'],\n className: 'text-xs'\n }\n ]\n});\n\nexport const formHelperTextCVA = cva<FormHelperTextCVAType>('flex items-center text-xs gap-1', {\n variants: {\n colorStyle: {\n success: primary.success.default.color.base,\n error: [primary.error.default.bg.base, 'color-white p-1 radius'],\n warning: 'color-yellow-500'\n },\n theme: {}\n },\n compoundVariants: [\n {\n theme: 'light',\n colorStyle: 'default',\n className: primary.text.medium.base\n },\n {\n theme: 'dark',\n colorStyle: 'default',\n className: secondary.text.light.base\n }\n ]\n});\n","import React, { PropsWithChildren } from 'react';\nimport { cx } from 'class-variance-authority';\nimport { IconCheckCircleFilled, IconExclamationCircleFilled } from '@jotforminc/svg-icons';\nimport {\n FormControlContext, commonInputDefaults, useFormControl\n} from '../../contexts';\nimport { FormControlProps, FormHelperProps, FormLabelProps } from './form-control.types';\nimport {\n formLabelDescCVA, formLabelCVA, formHelperTextCVA\n} from './form-control.cva';\nimport { primary } from '../../tokens/colors';\n\nexport const FormControl = (props: PropsWithChildren<FormControlProps>):JSX.Element => {\n const {\n className,\n children,\n ...rest\n } = props;\n\n const formControlClassName = cx(className, 'magnet-form-control space-y-2');\n\n return (\n <FormControlContext.Provider value={rest}>\n <div className={formControlClassName}>\n {children}\n </div>\n </FormControlContext.Provider>\n );\n};\n\nFormControl.defaultProps = commonInputDefaults;\n\nexport const FormLabel = (props: PropsWithChildren<FormLabelProps>):JSX.Element => {\n const {\n id,\n theme,\n size,\n required\n } = useFormControl<FormLabelProps>(props);\n\n const { children, description, ...rest } = props;\n\n const formLabelClassName = formLabelCVA({ theme, size, required });\n const formLabelDescClassName = formLabelDescCVA({ theme, size });\n\n return (\n <label htmlFor={id} {...rest}>\n <span className={formLabelClassName}>\n {children}\n {required && <span className={primary.error.default.color.base}> *</span>}\n </span>\n {description && <span className={formLabelDescClassName}>{description}</span>}\n </label>\n );\n};\n\nexport const FormHelperText = (props: PropsWithChildren<FormHelperProps>):JSX.Element => {\n const {\n theme,\n colorStyle\n } = useFormControl<FormHelperProps>(props);\n\n const { children, ...rest } = props;\n const formHelperTextClassName = formHelperTextCVA({ theme, colorStyle });\n const HelperIcon = colorStyle === 'success' ? IconCheckCircleFilled : IconExclamationCircleFilled;\n\n return (\n <p className={formHelperTextClassName} {...rest}>\n <HelperIcon className=\"w-4 h-4 shrink-0\" />\n {children}\n </p>\n );\n};\n","import {\n ComponentPropsWithoutRef, ElementType, ReactNode\n} from 'react';\nimport { ForwardedComponentType } from '../../types/system.types';\nimport { FormControlContextType, commonInputDefaults } from '../../contexts';\nimport { BaseInputAddonDirection, BaseInputAddonVariant, Icon } from '../../constants/common.types';\nimport { ColorPickerProps, colorPickerDefaultProps } from '../ColorPicker/color-picker.types';\n\n// BaseInput & BaseInputAddon\nexport type NativeInputTypes = Omit<ComponentPropsWithoutRef<'input'>, keyof FormControlContextType | 'prefix'>\nexport type CommonInputProps = FormControlContextType & NativeInputTypes & {\n ghost?: boolean\n};\n\ntype BaseInputOwnProps = {\n htmlSize?: number,\n addonStart?: ReactNode,\n addonEnd?: ReactNode,\n as?: 'input' | 'dropdown',\n expand?: boolean\n}\n\nexport type BaseInputProps = BaseInputOwnProps & CommonInputProps;\n\nexport type BaseInputAddonProps = Partial<FormControlContextType> & {\n icon?: Icon,\n text?: string,\n direction?: BaseInputAddonDirection\n variant?: BaseInputAddonVariant,\n useInputColor?: boolean\n}\n\nexport type BaseInputAddonComponentType = ForwardedComponentType<BaseInputAddonProps, 'span'>\n\nexport type AppendixType = {\n as?: ElementType\n icon?: Icon,\n text?: string,\n variant?: BaseInputAddonVariant,\n useInputColor?: boolean\n [otherProps: string]: unknown\n}\n\n// InputText\nexport type InputTextProps = CommonInputProps & {\n showLockIconInReadOnly?: boolean\n prefix?: AppendixType\n suffix?: AppendixType\n}\n\n// InputNumber\nexport type InputNumberProps = Omit<CommonInputProps, 'step'> & {\n step?: number\n}\n\n// InputColor\nexport type InputColorProps = CommonInputProps & {\n pickerOptions?: Pick<ColorPickerProps, 'disableAlpha' | 'offset' | 'onSwatchHover' | 'placement' | 'presetColors' | 'buttonAttrs' | 'pickerAttrs'>\n}\n\n// Defaults\nexport const baseInputDefaultProps:Partial<BaseInputProps> = { ...commonInputDefaults, as: 'input' };\n\nconst appendixDefaults:AppendixType = {\n as: 'span',\n icon: undefined,\n text: undefined,\n variant: 'ghost'\n};\n\nexport const inputAddonDefaultProps:Partial<BaseInputAddonProps> = {\n ...commonInputDefaults,\n direction: 'start',\n variant: 'ghost'\n};\n\nexport const inputTextDefaultProps:Partial<InputTextProps> = {\n ...commonInputDefaults,\n showLockIconInReadOnly: true,\n prefix: appendixDefaults,\n suffix: appendixDefaults\n};\n\nexport const inputNumberDefaultProps:InputNumberProps = {\n ...commonInputDefaults,\n step: 1\n};\n\nconst {\n disableAlpha, presetColors, offset, placement, onSwatchHover\n}:InputColorProps['pickerOptions'] = colorPickerDefaultProps;\n\nexport const inputColorDefaultProps:InputColorProps = {\n ...commonInputDefaults,\n pickerOptions: {\n disableAlpha,\n presetColors,\n offset,\n placement,\n onSwatchHover\n }\n};\n","import { AriaAttributes, MouseEvent } from 'react';\nimport { OffsetOptions, Placement } from '@floating-ui/react';\nimport { SketchPickerProps } from 'react-color';\nimport { Size, Theme } from '../../constants/common.types';\nimport { DataAttrs } from '../../types/system.types';\n\nexport type ColorPickerProps = {\n disabled?: boolean,\n size?: Size,\n rounded?: boolean,\n placement?: Placement,\n offset?: OffsetOptions,\n theme?: Theme,\n onChange?: (color: string) => void,\n color?: string,\n custom?: boolean,\n className?: string\n zIndex?: number,\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void,\n buttonAttrs?: DataAttrs & AriaAttributes & {\n id: string\n },\n pickerAttrs?: DataAttrs & AriaAttributes & {\n id?: string\n }\n} & Pick<SketchPickerProps, 'presetColors' | 'onSwatchHover' | 'disableAlpha'>\n\nexport const colorPickerDefaultProps:Partial<ColorPickerProps> = {\n size: 'medium',\n placement: 'bottom-end',\n offset: 6,\n rounded: false,\n disableAlpha: false,\n theme: 'light',\n custom: false,\n zIndex: 1005\n};\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { primary, secondary } from '../../tokens/colors';\nimport { BaseInputAddonProps, BaseInputProps } from './input.types';\n\ntype BaseInputHelperTypes = {\n hasPlaceholder: boolean,\n hasChildren: boolean\n}\n\n// CVA Types\ntype BaseInputCVAType = CVAType<Pick<BaseInputProps, 'as' | 'theme' | 'size'> & BaseInputHelperTypes>\ntype BaseInputContainerCVAType = CVAType<Pick<BaseInputProps, 'as' | 'size' | 'expand' | 'disabled' | 'readOnly'>>\ntype BaseInputAddonTextCVAType = CVAType<Pick<BaseInputAddonProps, 'size' | 'theme' | 'readOnly' | 'disabled' | 'direction' | 'variant' | 'useInputColor'>>\ntype BaseInputAddonIconCVAType = CVAType<Pick<BaseInputAddonProps, 'size'>>\ntype InputSpinButtonCVAType = CVAType<Pick<BaseInputProps, 'theme' | 'disabled' | 'readOnly'>>\n\n// Classes\nexport const baseInputContainerCVA = cva<BaseInputContainerCVAType>('', {\n variants: {\n size: {},\n expand: {},\n disabled: {},\n readOnly: {},\n as: {\n input: 'magnet-input-container',\n dropdown: 'magnet-dropdown items-center'\n }\n },\n compoundVariants: [\n {\n expand: false,\n size: 'small',\n className: 'h-8'\n },\n {\n expand: false,\n size: 'medium',\n className: 'h-10'\n },\n {\n expand: false,\n size: 'large',\n className: 'h-12'\n },\n {\n expand: true,\n size: 'small',\n className: 'min-h-8 py-1'\n },\n {\n expand: true,\n size: 'medium',\n className: 'min-h-10 py-1'\n },\n {\n expand: true,\n size: 'large',\n className: 'min-h-12 py-1.5'\n },\n {\n disabled: true,\n as: 'dropdown',\n className: 'cursor-not-allowed'\n },\n {\n disabled: false,\n readOnly: false,\n as: 'dropdown',\n className: 'cursor-pointer'\n }\n ]\n});\n\nexport const baseInputCVA = cva<BaseInputCVAType>('', {\n variants: {\n size: {\n small: 'px-2',\n medium: 'px-3',\n large: 'px-3'\n },\n as: {\n input: 'magnet-input h-full color-current',\n dropdown: 'truncate'\n },\n hasPlaceholder: {},\n hasChildren: {},\n theme: {}\n },\n compoundVariants: [\n {\n hasPlaceholder: true,\n hasChildren: false,\n as: 'dropdown',\n theme: 'light',\n className: 'color-navy-200'\n },\n {\n hasPlaceholder: true,\n hasChildren: false,\n as: 'dropdown',\n theme: 'dark',\n className: secondary.text.light.base\n }\n ]\n});\n\nexport const baseInputAddon = {\n textCVA: cva<BaseInputAddonTextCVAType>('flex shrink-0 items-center', {\n variants: {\n size: {\n small: 'gap-2 text-sm',\n medium: 'gap-3 text-sm',\n large: 'gap-3 text-md'\n },\n theme: {},\n readOnly: {},\n disabled: {},\n direction: {},\n variant: {},\n useInputColor: {}\n },\n compoundVariants: [\n {\n direction: 'start',\n className: 'radius-l'\n },\n {\n direction: 'end',\n className: 'radius-r'\n },\n {\n useInputColor: false,\n theme: 'light',\n className: primary.text.medium.base\n },\n {\n useInputColor: false,\n theme: 'dark',\n className: 'color-gray-200'\n },\n {\n direction: 'start',\n variant: 'ghost',\n size: 'small',\n className: 'pl-2'\n },\n {\n direction: 'start',\n variant: 'ghost',\n size: ['medium', 'large'],\n className: 'pl-3'\n },\n {\n direction: 'end',\n variant: 'ghost',\n size: 'small',\n className: 'pr-2'\n },\n {\n direction: 'end',\n variant: 'ghost',\n size: ['medium', 'large'],\n className: 'pr-3'\n },\n {\n variant: 'filled',\n size: 'small',\n className: 'px-2'\n },\n {\n variant: 'filled',\n size: ['medium', 'large'],\n className: 'px-3'\n },\n {\n variant: 'filled',\n readOnly: false,\n disabled: false,\n theme: 'light',\n className: 'bg-navy-25'\n },\n {\n variant: 'filled',\n readOnly: true,\n disabled: false,\n theme: 'light',\n className: 'bg-navy-50'\n },\n {\n variant: 'filled',\n readOnly: false,\n disabled: true,\n theme: 'light',\n className: 'bg-navy-100'\n },\n {\n variant: 'filled',\n theme: 'dark',\n className: 'bg-gray-400 bg-opacity-50'\n }\n ]\n }),\n iconCVA: cva<BaseInputAddonIconCVAType>('shrink-0', {\n variants: {\n size: {\n small: 'w-4',\n medium: 'w-5',\n large: 'w-6'\n }\n }\n })\n};\n\nexport const numberSpinButtonCVA = cva<InputSpinButtonCVAType>('flex shrink-0 grow-1 justify-center items-center', {\n variants: {\n theme: {},\n readOnly: {},\n disabled: {}\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n className: [primary.text.dark.base, 'bg-navy-10']\n },\n {\n theme: 'light',\n readOnly: true,\n disabled: false,\n className: 'color-navy-200 bg-navy-75'\n },\n {\n theme: 'light',\n readOnly: false,\n disabled: true,\n className: 'color-navy-200 bg-navy-75'\n },\n {\n theme: 'dark',\n className: 'bg-gray-400'\n },\n {\n theme: 'dark',\n readOnly: true,\n className: 'color-gray-300'\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-300'\n }\n ]\n});\n","import { cva } from 'class-variance-authority';\nimport { FormControlContextType } from '../contexts';\nimport { BaseInputProps, CVAType } from '../types';\nimport { primary } from '../tokens/colors';\nimport { ResponsiveClasses } from '../utils';\nimport { JUSTIFY_CONTENT_VALUES } from './common.values';\n\ntype FormControlInputCVAType = CVAType<Pick<FormControlContextType, 'theme' | 'disabled' | 'size'> & Pick<BaseInputProps, 'ghost'>>;\ntype FormControlContainerCVAType = CVAType<Omit<FormControlContextType, 'id' | 'size'> & Pick<BaseInputProps, 'ghost'>>;\n\nexport const commonFormControlCVA = {\n container: cva<FormControlContainerCVAType>('flex', {\n variants: {\n colorStyle: {},\n disabled: {\n true: 'opacity-40'\n },\n readOnly: {},\n theme: {},\n required: {},\n ghost: {\n true: 'border-0 bg-transparent',\n false: 'border radius outline-2 outline-offset-0 hover:duration-300 focus:duration-300 duration-all-colors'\n }\n },\n compoundVariants: [\n {\n theme: 'light',\n className: primary.text.darkest.base\n },\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n ghost: false,\n className: 'bg-white'\n },\n {\n theme: 'light',\n disabled: true,\n readOnly: false,\n ghost: false,\n className: 'border-navy-50 bg-navy-50 outline-transparent'\n },\n // shadow\n {\n colorStyle: ['error', 'success', 'warning'],\n readOnly: false,\n ghost: false,\n className: 'shadow-xs'\n },\n {\n disabled: false,\n ghost: false,\n className: 'hover:shadow-xs'\n },\n // readonly - light\n {\n theme: 'light',\n disabled: false,\n readOnly: true,\n ghost: false,\n className: [\n primary.border.medium.base,\n primary.accent.default.border.focusWithin,\n 'bg-navy-25 outline-transparent hover:border-navy-300 focus-within:outline-blue-200 focus-within:outline-opacity-50'\n ]\n },\n // default - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'default',\n ghost: false,\n className: [\n primary.border.medium.base,\n primary.accent.default.border.focusWithin,\n 'outline-transparent hover:border-navy-300 focus-within:outline-blue-200 focus-within:outline-opacity-50'\n ]\n },\n // primary - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'primary',\n ghost: false,\n className: [\n primary.accent.default.border.base,\n 'outline-blue-200 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n ]\n },\n // success - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'success',\n ghost: false,\n className: [\n primary.success.default.border.base,\n 'outline-green-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n ]\n },\n // error - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'error',\n ghost: false,\n className: [\n primary.error.default.border.base,\n 'outline-red-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n ]\n },\n // warning - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'warning',\n className: 'border-yellow-500 outline-yellow-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n },\n {\n theme: 'dark',\n className: 'color-white'\n },\n {\n theme: 'dark',\n ghost: false,\n className: 'bg-gray-500'\n },\n // default - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'default',\n className: [\n primary.accent.default.border.focusWithin,\n 'border-gray-500 outline-transparent hover:border-gray-300 focus-within:outline-blue-500 focus-within:outline-opacity-30'\n ]\n },\n // primary - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'primary',\n className: [\n primary.accent.default.border.base,\n 'outline-blue-500 outline-opacity-0 hover:outline-opacity-20 focus-within:outline-opacity-30'\n ]\n },\n // success - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'success',\n className: [\n primary.success.default.border.base,\n 'outline-green-600 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n ]\n },\n // error - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'error',\n className: 'border-red-400 outline-red-400 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n },\n // warning - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'warning',\n className: 'border-yellow-500 outline-yellow-500 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n },\n // readonly - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: true,\n ghost: false,\n className: [\n primary.accent.default.border.focusWithin,\n 'border-gray-500 outline-transparent hover:border-gray-300 focus-within:outline-blue-500 focus-within:outline-opacity-30'\n ]\n },\n {\n theme: 'dark',\n disabled: true,\n readOnly: false,\n ghost: false,\n className: 'outline-transparent border-gray-500'\n }\n ]\n }),\n input: cva<FormControlInputCVAType>('appearance-none bg-transparent grow-1 outline-0 w-full focus-visible-none border-0', {\n variants: {\n size: {\n small: 'text-sm',\n medium: 'text-sm',\n large: 'text-md'\n },\n theme: {},\n disabled: {},\n ghost: {\n true: '',\n false: 'radius'\n }\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n className: 'placeholder-navy-200'\n },\n {\n theme: 'light',\n disabled: true,\n className: 'placeholder-navy-300'\n }\n ]\n })\n};\n\nexport const justifyContentClasses:ResponsiveClasses<typeof JUSTIFY_CONTENT_VALUES> = {\n around: {\n base: 'justify-around',\n xs: 'xs:justify-around',\n sm: 'sm:justify-around',\n md: 'md:justify-around',\n lg: 'lg:justify-around',\n xl: 'xl:justify-around',\n xxl: 'xxl:justify-around'\n },\n between: {\n base: 'justify-between',\n xs: 'xs:justify-between',\n sm: 'sm:justify-between',\n md: 'md:justify-between',\n lg: 'lg:justify-between',\n xl: 'xl:justify-between',\n xxl: 'xxl:justify-between'\n },\n center: {\n base: 'justify-center',\n xs: 'xs:justify-center',\n sm: 'sm:justify-center',\n md: 'md:justify-center',\n lg: 'lg:justify-center',\n xl: 'xl:justify-center',\n xxl: 'xxl:justify-center'\n },\n end: {\n base: 'justify-end',\n xs: 'xs:justify-end',\n sm: 'sm:justify-end',\n md: 'md:justify-end',\n lg: 'lg:justify-end',\n xl: 'xl:justify-end',\n xxl: 'xxl:justify-end'\n },\n evenly: {\n base: 'justify-evenly',\n xs: 'xs:justify-evenly',\n sm: 'sm:justify-evenly',\n md: 'md:justify-evenly',\n lg: 'lg:justify-evenly',\n xl: 'xl:justify-evenly',\n xxl: 'xxl:justify-evenly'\n },\n start: {\n base: 'justify-start',\n xs: 'xs:justify-start',\n sm: 'sm:justify-start',\n md: 'md:justify-start',\n lg: 'lg:justify-start',\n xl: 'xl:justify-start',\n xxl: 'xxl:justify-start'\n }\n};\n","import React, { ComponentPropsWithRef, ElementType, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\nimport {\n BaseInputAddonComponentType,\n BaseInputAddonProps, BaseInputProps, baseInputDefaultProps, inputAddonDefaultProps\n} from './input.types';\nimport { baseInputAddon, baseInputContainerCVA, baseInputCVA } from './input.cva';\nimport { PolymorphicProps } from '../../types';\n\nimport '@jotforminc/jotform.css';\nimport { commonFormControlCVA } from '../../constants/common.cva';\n\nexport const BaseInput = forwardRef((\n props: BaseInputProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n):JSX.Element => {\n const {\n colorStyle,\n size,\n disabled,\n theme,\n readOnly,\n htmlSize,\n id,\n className,\n addonStart,\n addonEnd,\n required,\n ghost,\n as = 'input',\n expand = false,\n value,\n children,\n placeholder,\n ...rest\n } = props;\n\n const handleFocus = (e: React.MouseEvent<HTMLDivElement>) => {\n const element = e.target as HTMLElement;\n if (element.tagName === 'BUTTON' || element.tagName === 'LABEL' || element.tagName === 'INPUT') return;\n\n const input = e?.currentTarget?.getElementsByTagName('input')[0];\n input?.focus();\n };\n\n const readOnlyVariant = readOnly && !disabled;\n\n const baseInputContainerClassName = cx(\n className,\n commonFormControlCVA.container({\n colorStyle,\n readOnly: readOnlyVariant,\n disabled: !!disabled,\n theme,\n ghost: !!ghost\n }),\n baseInputContainerCVA({\n size, as, expand, disabled: !!disabled, readOnly: !!readOnly\n })\n );\n\n const baseInputClassName = cx(\n commonFormControlCVA.input({\n disabled,\n theme,\n size,\n ghost: !!ghost\n }),\n baseInputCVA({\n size,\n as,\n hasPlaceholder: !!placeholder,\n hasChildren: !!children,\n theme\n })\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n className={baseInputContainerClassName}\n onClick={handleFocus}\n ref={as === 'dropdown' ? ref : null}\n {... as === 'dropdown' ? rest : {}}\n >\n {addonStart}\n {as === 'input'\n && (\n <input\n className={baseInputClassName}\n disabled={disabled}\n size={htmlSize}\n readOnly={readOnly}\n ref={ref}\n id={id}\n value={value}\n required={required}\n placeholder={placeholder}\n {...rest}\n />\n )}\n {as === 'dropdown' && <span className={baseInputClassName}>{children ?? placeholder}</span>}\n {addonEnd}\n </div>\n );\n});\n\nBaseInput.defaultProps = baseInputDefaultProps;\n\nexport const BaseInputAddon:BaseInputAddonComponentType = forwardRef(\n <Element extends ElementType>(\n props: PolymorphicProps<Element, BaseInputAddonProps>,\n ref?: ComponentPropsWithRef<Element>['ref']\n ):JSX.Element => {\n const {\n size = inputAddonDefaultProps.size,\n theme = inputAddonDefaultProps.theme,\n direction = inputAddonDefaultProps.direction,\n variant = inputAddonDefaultProps.variant,\n disabled = inputAddonDefaultProps.disabled,\n readOnly = inputAddonDefaultProps.readOnly,\n as = 'span',\n useInputColor,\n id,\n icon: Icon,\n text,\n htmlFor,\n ...rest\n } = props;\n\n if (!Icon && !text) return <></>;\n\n const addonContainerClassName = cx(baseInputAddon.textCVA({\n size,\n theme,\n direction,\n variant,\n readOnly: !!readOnly,\n disabled: !!disabled,\n useInputColor: !!useInputColor\n }));\n\n const addonIconClassName = baseInputAddon.iconCVA({ size });\n const Component = as;\n\n return (\n <Component\n className={addonContainerClassName}\n htmlFor={htmlFor}\n id={id}\n ref={ref}\n {...rest}\n >\n {direction === 'start'\n && (\n <>\n {Icon && <Icon className={addonIconClassName} />}\n {text && text}\n </>\n )}\n {direction === 'end'\n && (\n <>\n {text && text}\n {Icon && <Icon className={addonIconClassName} />}\n </>\n )}\n </Component>\n );\n }\n);\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { IconLockFilled } from '@jotforminc/svg-icons';\nimport { BaseInput, BaseInputAddon } from './BaseInput';\nimport { InputTextProps, inputTextDefaultProps } from './input.types';\nimport { useFormControl } from '../../contexts';\n\nexport const InputText = forwardRef((\n props: InputTextProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n):JSX.Element => {\n const {\n id,\n readOnly,\n size,\n disabled,\n theme,\n prefix,\n suffix,\n showLockIconInReadOnly,\n required,\n ...rest\n } = useFormControl(props);\n\n const addonStart = (\n <BaseInputAddon\n {...prefix}\n size={size}\n theme={theme}\n disabled={!!disabled}\n readOnly={!!readOnly}\n direction=\"start\"\n />\n );\n\n const addonEnd = (\n <BaseInputAddon\n {...suffix}\n size={size}\n icon={readOnly && showLockIconInReadOnly ? IconLockFilled : suffix?.icon}\n theme={theme}\n disabled={!!disabled}\n readOnly={!!readOnly}\n direction=\"end\"\n />\n );\n\n return (\n <BaseInput\n id={id}\n ref={ref}\n readOnly={!!readOnly}\n size={size}\n theme={theme}\n disabled={!!disabled}\n addonStart={addonStart}\n addonEnd={addonEnd}\n required={required}\n {...rest}\n />\n );\n});\n\nInputText.defaultProps = inputTextDefaultProps;\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types';\nimport { TextareaProps } from './textarea.types';\n\ntype TextareaCVAType = CVAType<Pick<TextareaProps, 'size'>>\ntype TextareaContainerCVAType = CVAType<Pick<TextareaProps, 'resize'>>\ntype TextareaBarCVAType = CVAType<Pick<TextareaProps, 'size' | 'theme'>>\n\nexport const textareaCVA = cva<TextareaCVAType>('magnet-textarea resize-none', {\n variants: {\n size: {\n small: 'p-3',\n medium: 'p-3',\n large: 'py-3 px-4'\n }\n }\n});\n\nexport const textareaContainerCVA = cva<TextareaContainerCVAType>('magnet-textarea-container flex-col', {\n variants: {\n resize: {\n both: 'resize-both',\n none: 'resize-none',\n horizontal: 'resize-x',\n vertical: 'resize-y'\n }\n },\n compoundVariants: [\n {\n resize: ['both', 'horizontal', 'vertical'],\n className: 'overflow-auto'\n }\n ]\n});\n\nexport const textareaBarCVA = cva<TextareaBarCVAType>('flex items-center justify-end pb-2 gap-2', {\n variants: {\n size: {\n small: 'px-3 text-sm',\n medium: 'px-3 text-sm',\n large: 'px-4 text-md'\n },\n theme: {\n light: 'color-navy-200',\n dark: 'color-gray-200'\n }\n }\n});\n","import { ComponentPropsWithoutRef } from 'react';\nimport { FormControlContextType, commonInputDefaults } from '../../contexts';\n\nexport type NativeTextareaTypes = Omit<ComponentPropsWithoutRef<'textarea'>, keyof FormControlContextType | 'maxLength'>\nexport type TextareaProps = FormControlContextType & NativeTextareaTypes & {\n resize?: 'none' | 'both' | 'horizontal' | 'vertical',\n maxLength?: number,\n ghost?: boolean\n}\n\nexport const textareaDefaultProps:Partial<TextareaProps> = {\n ...commonInputDefaults,\n resize: 'none'\n};\n","import React, {\n ChangeEvent, ComponentPropsWithRef, forwardRef, useEffect, useRef, useState\n} from 'react';\nimport { cx } from 'class-variance-authority';\nimport { IconLockFilled } from '@jotforminc/svg-icons';\n\nimport { useFormControl } from '../../contexts';\nimport { commonFormControlCVA } from '../../constants/common.cva';\n\nimport { textareaBarCVA, textareaCVA, textareaContainerCVA } from './textarea.cva';\nimport { TextareaProps, textareaDefaultProps } from './textarea.types';\n\nimport '@jotforminc/jotform.css';\n\nexport const Textarea = forwardRef((\n props: TextareaProps,\n ref: ComponentPropsWithRef<'textarea'>['ref']\n):JSX.Element => {\n const {\n colorStyle,\n readOnly,\n disabled,\n size,\n theme,\n resize,\n maxLength,\n onChange,\n className,\n value,\n ghost,\n ...rest\n } = useFormControl(props);\n\n const [count, setCount] = useState(0);\n const readOnlyVariant = readOnly && !disabled;\n const textareaContainerRef = useRef(null);\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n setCount(e.target.value.length);\n if (onChange) onChange(e);\n };\n\n const textareaContainerClassName = cx(\n className,\n commonFormControlCVA.container({\n colorStyle,\n readOnly: !!readOnlyVariant,\n disabled: !!disabled,\n theme,\n ghost: !!ghost\n }),\n textareaContainerCVA({ resize })\n );\n\n const textareaClassName = cx(\n commonFormControlCVA.input({\n disabled: !!disabled,\n theme,\n size\n }),\n textareaCVA({ size })\n );\n\n const getTextAreaLength = (textarea: HTMLTextAreaElement, inputValue: string | number | readonly string[] | undefined) => {\n if (Array.isArray(inputValue)) {\n return inputValue?.join(',').length;\n } if (typeof inputValue === 'string') {\n return inputValue?.length;\n }\n return textarea.value.length;\n };\n\n useEffect(() => {\n if (textareaContainerRef.current) {\n const textarea = (textareaContainerRef.current as HTMLDivElement).firstChild as HTMLTextAreaElement;\n const length = getTextAreaLength(textarea, value);\n setCount(length);\n }\n }, [value]);\n\n return (\n <div className={textareaContainerClassName} ref={textareaContainerRef}>\n <textarea\n className={textareaClassName}\n disabled={disabled}\n readOnly={readOnly}\n maxLength={maxLength}\n onChange={handleChange}\n ref={ref}\n value={value}\n {...rest}\n />\n {(readOnly || !!maxLength)\n && (\n <div className={textareaBarCVA({ size, theme })}>\n {readOnly && <IconLockFilled className=\"w-4 h-4\" />}\n {!!maxLength && (\n <span className=\"magnet-textarea-count\">\n {count}\n /\n {maxLength}\n </span>\n )}\n </div>\n )}\n </div>\n );\n});\n\nTextarea.defaultProps = textareaDefaultProps;\n","import React, { Component } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { IconExclamationTriangleFilled } from '@jotforminc/svg-icons';\nimport '../styles/index.scss';\n\nclass ErrorPage extends Component {\n render() {\n return (\n <div className=\"jfErrorPage-wrapper\" data-component=\"Container\" data-testid=\"error-page-root\">\n <div className=\"jfErrorPage\">\n <div className=\"jfErrorPage-container\">\n <div className=\"jfErrorPage-content\">\n <div className=\"jfErrorPage-icon-container\">\n <IconExclamationTriangleFilled />\n </div>\n <div className=\"jfErrorPage-title\">\n {t('Something went wrong')}\n </div>\n <div className=\"jfErrorPage-highlight\">\n {t('Please refresh the page to try again.')}\n </div>\n <button\n data-component=\"Button_Button\"\n type=\"button\"\n onClick={() => window.location.reload()}\n className=\"jfErrorPage-action\"\n >\n {t('Refresh')}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ErrorPage;\n","import React, { lazy } from 'react';\nimport { render } from 'react-dom';\nimport Tracking from '@jotforminc/tracking';\nimport { ErrorPage } from '../components';\n\n// For future needs\n// const getChunkName = name => {\n// const startIndex = name.indexOf('|') + 2;\n// const endIndex = name.indexOf('*/') - 1;\n// return (startIndex && endIndex)\n// ? name.substr(startIndex, endIndex - startIndex)\n// : 'generic';\n// };\n\nconst safeLazy = componentImport => lazy(async () => {\n try {\n const component = await componentImport();\n return component;\n } catch (error) {\n Tracking.configureScope(scope => {\n scope.addBreadcrumb({\n message: 'Failed to load lazy script',\n category: 'editor',\n level: 'error'\n });\n });\n Tracking.captureException(error);\n let root = [...document.body.children].find(elem => elem._reactRootContainer);\n if (!root) { // as a fallback\n root = document.createElement('div');\n root.className = 'safe-lazy-root';\n document.body.appendChild(root);\n }\n render(<ErrorPage />, root);\n throw error;\n }\n});\n\nexport default safeLazy;\n","import React, { Suspense } from 'react';\nimport { Loading } from '@jotforminc/loading';\nimport { safeLazy } from '@jotforminc/safe-lazy-import';\n\nconst LibIconSelector = safeLazy(() => import(/* webpackChunkName: \"LibIconSelector\" */'./LibIconSelector'));\n\nconst IconSelector = props => {\n return (\n <Suspense fallback={<Loading />}>\n <LibIconSelector\n {...props}\n />\n </Suspense>\n );\n};\n\nexport default IconSelector;\n","import React from 'react';\nimport {\n arrayOf, bool, func, oneOfType, string, shape\n} from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport isObject from 'lodash/isObject';\nimport { t } from '@jotforminc/translation';\n\nconst UploadedImagesPanel = ({\n onImageSelect, selectedImage, allowMultipleSelection, onImageDeselect, uploadedImageList, noUploadedImageText\n}) => {\n const hasQueryParams = (url = '') => url.indexOf('?') !== -1;\n\n const renderUploadedImages = () => {\n return uploadedImageList.map(image => {\n const isImgObject = isObject(image);\n const imgThumb = isImgObject ? image.urlThumb : image;\n const urlThumb = hasQueryParams(imgThumb) ? imgThumb : `${imgThumb}?height=80`;\n const urlType = image.urlFull !== undefined ? image.urlFull : image.urlThumb;\n const urlFull = isImgObject ? urlType : image;\n const imgUserInfo = isImgObject ? image.userInfo : '';\n const key = isImgObject ? `${image.id}_${uuid()}` : urlFull;\n const isImageSelected = allowMultipleSelection ? (selectedImage.indexOf(urlFull) > -1) : (urlFull === selectedImage);\n const imageAltLabel = image.alt !== undefined ? image.alt : '';\n return (\n <div\n key={key}\n className=\"prevUploads-listItem\"\n onKeyDown={null}\n onClick={!isImageSelected ? onImageSelect(urlFull) : onImageDeselect(urlFull)}\n data-selected={isImageSelected}\n >\n <img alt={imageAltLabel} src={urlThumb} style={{ height: '80px' }} />\n {imgUserInfo && (\n <p>\n by \n <a href={urlFull}>{imgUserInfo}</a>\n </p>\n )}\n </div>\n );\n });\n };\n\n const renderNoImageScreen = () => {\n return (\n <div className=\"jfImageUpload-noImage\">\n {noUploadedImageText}\n </div>\n );\n };\n\n return (\n <>\n {uploadedImageList.length ? renderUploadedImages() : renderNoImageScreen()}\n </>\n );\n};\n\nUploadedImagesPanel.propTypes = {\n onImageSelect: func,\n selectedImage: oneOfType([string, arrayOf(string)]),\n allowMultipleSelection: bool,\n onImageDeselect: func,\n uploadedImageList: oneOfType([arrayOf(string), arrayOf(shape({}))]),\n noUploadedImageText: string\n};\n\nUploadedImagesPanel.defaultProps = {\n onImageSelect: f => f,\n selectedImage: '',\n allowMultipleSelection: false,\n onImageDeselect: f => f,\n uploadedImageList: [],\n noUploadedImageText: t('There is no image to show!')\n};\n\nexport default UploadedImagesPanel;\n","import React from 'react';\nimport {\n elementType,\n func, number, oneOfType, shape, string\n} from 'prop-types';\n\nimport { Utils } from '@jotforminc/uikit';\nimport { Button } from '@jotforminc/magnet';\nimport { t } from '@jotforminc/translation';\nimport { formatBytes } from '@jotforminc/utils';\n\nconst ImagePreview = ({\n file, changeModeToUpload, Thumbnail, removeButtonText\n}) => {\n const { name, size } = file;\n const sizeText = formatBytes(size);\n\n const handleKeyDown = event => Utils.isPressedKeyEnterOrSpace(event) && changeModeToUpload();\n return (\n <div\n className=\"cardNew\"\n >\n <div\n className=\"cardNew-leftSide\"\n >\n <Thumbnail file={file} />\n </div>\n <div className=\"cardNew-rightSide\">\n <div className=\"cardNew-content\">\n <span className=\"cardNew-content-fileName\">{name}</span>\n <span className=\"cardNew-content-fileSize\">{sizeText}</span>\n </div>\n <Button\n onKeyDown={handleKeyDown}\n onClick={changeModeToUpload}\n type=\"button\"\n >\n {t(removeButtonText)}\n </Button>\n </div>\n </div>\n );\n};\n\nImagePreview.propTypes = {\n file: shape({\n name: string,\n url: string,\n size: oneOfType([string, number])\n }),\n changeModeToUpload: func,\n Thumbnail: elementType,\n removeButtonText: string\n};\n\nImagePreview.defaultProps = {\n file: {},\n changeModeToUpload: f => f,\n Thumbnail: ({ url }) => <img src={url} alt=\"ImageUpload-preview_alternative\" />, // eslint-disable-line react/prop-types\n removeButtonText: 'Remove Image'\n};\n\nexport default ImagePreview;\n","import { FileUtils } from '@jotforminc/upload-fields';\n\nexport const filterImages = imageList => imageList.filter(image => FileUtils.isImage(image));\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nimport { filterImages } from '../utils';\n\nconst layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\nexport const deleteSelectedImage = url => {\n const requestURL = Array.isArray(url) ? url.join('\",\"') : url;\n return layer.post(`/server.php?action=deleteUserUpload&file=[\"${requestURL}\"]`, null, { disableResponseInterceptors: true });\n};\n\nexport const getUploadedUserImage = showOnlyImages => {\n return layer.post('/server.php?action=getUploadedImages', null, { disableResponseInterceptors: true })\n .then(response => {\n const { data: { files = [] } = {} } = response;\n // Files may be both array and object\n const fileList = Array.isArray(files) ? files : Object.values(files);\n return showOnlyImages ? filterImages(fileList) : fileList;\n });\n};\n\nexport const searchUnsplash = (keyword, count = 16, page = 1) => {\n return layer.get(`image/searchUnsplash?keyword=${keyword}&limit=${count}&page=${page}`);\n};\n\nexport const getRandomImagesFromUnsplash = (count = 16) => {\n return layer.get(`unsplash/photos/random?count=${count}`);\n};\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\n\nimport { Button } from '@jotforminc/magnet';\nimport UnsplashIcon from '../assets/svg/unsplash_icon.svg';\n\nexport const DEFAULT_TAB_LIST = {\n upload: { label: 'UPLOAD' },\n choose: { label: 'MY IMAGES' },\n link: { label: 'ENTER URL' },\n icon: { label: 'SELECT ICON' },\n gallery: { label: 'GALLERY' },\n groupedGallery: { label: 'GALLERY' },\n unsplash: {\n label: (\n <div className=\"tabUnsplash\">\n <UnsplashIcon />\n Unsplash\n </div>\n )\n }\n};\n\nexport const THEME_MAP = {\n isDark: 'isDark',\n isLight: 'isLight',\n isTransparent: 'isTransparent'\n};\n\n/* eslint-disable */\nexport const DefaultDeleteButton = ({ onClick, disabled }) => {\n return (\n <Button colorStyle=\"error\" className=\"text-uppercase\" onClick={disabled ? () => {} : onClick} data-testid=\"deleteSelectedImage\">\n {t('Delete Selected')}\n </Button>\n )\n};\n\nexport const DefaultSelectButton = ({ onClick }) => (\n <Button className=\"mt-2 xs:mt-0 text-uppercase\" onClick={onClick} data-testid=\"useSelectedImage\">\n {t('Use Selected')}\n </Button>\n)\n/* eslint-enable */\n\nexport const modesRequireUploadedImages = ['imageUpload'];\n","/* eslint-disable max-statements */\nimport React, {\n useEffect, useState, useRef, useCallback, forwardRef, useImperativeHandle\n} from 'react';\nimport {\n array, arrayOf, bool, elementType, func, shape, string\n} from 'prop-types';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { FileUpload } from '@jotforminc/uikit';\nimport { t } from '@jotforminc/translation';\nimport { TabListWithStyles, Tab } from '@jotforminc/tabs';\nimport { useDebounce } from '@jotforminc/hooks';\nimport {\n Button, InputText, Textarea, FormLabel, FormControl, FormHelperText\n} from '@jotforminc/magnet';\nimport { IconMagnifyingGlass } from '@jotforminc/svg-icons';\nimport IconSelector from './IconSelector';\n\nimport UploadedImagesPanel from './UploadedImagesPanel';\nimport ImagePreview from './ImagePreview';\nimport LoadingScreen from './LoadingScreen';\n\nimport '../styles/ImageUpload.scss';\n\nimport {\n deleteSelectedImage, getUploadedUserImage, searchUnsplash, getRandomImagesFromUnsplash\n} from '../actions';\nimport {\n DEFAULT_TAB_LIST, THEME_MAP, DefaultDeleteButton, DefaultSelectButton, modesRequireUploadedImages\n} from '../constants';\nimport { filterImages } from '../utils';\n\nconst ImageUpload = forwardRef(({\n onImageUpload,\n onImageSelect,\n onImageChange,\n onImageRemove,\n isAltTextActive,\n onAltTextChange,\n renderTabs,\n allowMultipleSelection,\n forceSelect,\n optimize,\n addNotification,\n limitType,\n multipleFileUpload,\n targetURL,\n onlyColoredIcons,\n linkTextInputDefaultValue,\n onLinkTextInputSubmit,\n linkTextInputPlaceholder,\n imgDescInputPlaceholder,\n imageList: originalImageList,\n galleryImageList,\n useAPI,\n theme,\n showLabel,\n showActionButtons,\n SelectButtonRenderer,\n DeleteButtonRenderer,\n ActionButtonsWrapper,\n onLinkInputChange,\n ImageUploadPreviewRenderer,\n ImageLoadingScreenRenderer,\n allowedTypes,\n allowImageUpload,\n onFileUploading,\n onFileRemove,\n isFileUploading,\n value: uploadedFile,\n removeButtonText,\n PreviewThumbnail,\n FileInputRenderer,\n showOnlyImages,\n mode,\n TextWrapperRenderer,\n onFileUploadError,\n noUploadedImageText,\n galleryMode,\n inputButtonText,\n initialSelectedImage,\n groupedGalleryClass,\n groupedGalleryImageList,\n isDeleteSelectedDisabled\n}, ref) => {\n const [imageList, setImageList] = useState(showOnlyImages ? filterImages(originalImageList) : originalImageList);\n const [altText, setAltText] = useState('');\n const [fileUploadDisplayMode, setFileUploadDisplayMode] = useState(uploadedFile.url ? 'display' : 'upload');\n const defaultSelectedImg = initialSelectedImage || '';\n const [selectedImage, setSelectedImage] = useState(allowMultipleSelection ? [] : defaultSelectedImg);\n const [isActionButtonsVisible, setActionButtonsVisible] = useState(false);\n const [unsplashImageList, setUnsplashImageList] = useState([]);\n const [randomUnsplashImageList, setRandomUnsplashImageList] = useState([]);\n const [unsplashPageNumber, setUnsplashPageNumber] = useState(1);\n const [stopLoadMore, setStopLoadMore] = useState(false);\n const allowGettingUploadedImages = modesRequireUploadedImages.includes(mode);\n const textInputRef = useRef();\n const unsplashSearchInputRef = useRef();\n const isBranding21 = true;\n\n useImperativeHandle(ref, () => ({\n setSelectedImage\n }));\n\n const prepareTabTitleList = () => {\n return renderTabs.reduce((prev, tabKey) => {\n return {\n ...prev,\n [tabKey]: {\n ...DEFAULT_TAB_LIST[tabKey],\n label: t(DEFAULT_TAB_LIST[tabKey]?.label)\n }\n };\n }, {});\n };\n const [tabTitleList, setTabTitleList] = useState(prepareTabTitleList());\n\n const handleGetUploadedImages = () => {\n getUploadedUserImage(showOnlyImages)\n .then((images = []) => setImageList(images));\n };\n\n const handleAltTextChange = ({ target: { value } }) => {\n setAltText(value);\n };\n\n const handleImageSelect = url => () => {\n onImageChange(url, selectedImage);\n\n if (allowMultipleSelection) {\n setSelectedImage([\n ...selectedImage,\n url\n ]);\n } else {\n if (forceSelect || !showActionButtons) {\n onImageSelect(url);\n }\n setSelectedImage(url);\n }\n };\n\n const handleImageDeselect = url => () => {\n if (allowMultipleSelection) {\n setSelectedImage(selectedImage.filter(image => image !== url));\n }\n };\n\n const handleUseSelectedImage = url => {\n onImageSelect(url);\n };\n\n const handleImageUpload = fileData => {\n onImageUpload(fileData);\n };\n\n const handleLinkTextClick = () => {\n const { current: { value } } = textInputRef;\n onLinkTextInputSubmit(value);\n };\n\n const handleFileUploadDisplayModeChange = displayMode => {\n setFileUploadDisplayMode(displayMode);\n };\n\n const renderAltTextInput = () => (\n <div className=\"jfTabs-body-row image-description-wrapper\">\n <FormControl id=\"imageAltText\">\n <FormLabel>{t('Image Description')}</FormLabel>\n <InputText\n className=\"w-full\"\n value={altText}\n onChange={handleAltTextChange}\n placeholder={imgDescInputPlaceholder}\n />\n <FormHelperText className=\"flex items-center text-xxs gap-1 color-navy-300 text-justify\">\n {t('Add alt text for accessibility and SEO purposes. This text will be shown if the image can\\'t be loaded.')}\n </FormHelperText>\n </FormControl>\n </div>\n );\n\n const handleDeleteSelectedImage = () => {\n setSelectedImage('');\n setImageList(imageList.filter(image => !selectedImage.includes(image)));\n if (useAPI) {\n deleteSelectedImage(selectedImage)\n .then(() => handleGetUploadedImages());\n }\n onImageRemove(selectedImage);\n };\n\n const renderActionButtons = () => (\n <ActionButtonsWrapper>\n <DeleteButtonRenderer onClick={() => handleDeleteSelectedImage()} disabled={isDeleteSelectedDisabled} />\n {\n !forceSelect\n && <SelectButtonRenderer onClick={() => handleUseSelectedImage(selectedImage)} />\n }\n </ActionButtonsWrapper>\n );\n\n const renderLinkTabInput = () => {\n if (allowMultipleSelection) {\n return (\n <Textarea\n ref={textInputRef}\n onChange={({ target: { value } }) => onLinkInputChange(value)}\n defaultValue={linkTextInputDefaultValue}\n placeholder={linkTextInputPlaceholder}\n rows={5}\n resize=\"both\"\n />\n );\n }\n return (\n <InputText\n className=\"w-full\"\n ref={textInputRef}\n onChange={({ target: { value } }) => onLinkInputChange(value)}\n defaultValue={linkTextInputDefaultValue}\n placeholder={linkTextInputPlaceholder}\n />\n );\n };\n\n const renderEnterUrl = () => (\n <div className=\"jfTabs-body-row\">\n <FormControl id=\"imgUrl\">\n {showLabel && (\n <FormLabel>{t('Enter URL')}</FormLabel>\n )}\n {renderLinkTabInput()}\n </FormControl>\n {/* eslint-disable */}\n {showActionButtons && <div className=\"line\">\n <Button className=\"text-uppercase\" onClick={handleLinkTextClick}>\n {t('Add Link')}\n </Button>\n </div>}\n {/* eslint-enable */}\n </div>\n );\n\n const renderUploadImage = () => {\n return (\n <>\n <div className=\"tethers-wrapper\">\n <FileUpload\n showFile={uploadedFile}\n isFileUploading={isFileUploading}\n multi={false}\n onFileUploading={onFileUploading}\n imageUpload={allowImageUpload}\n onFileUpload={fileData => handleImageUpload(fileData)}\n allowedTypes={allowedTypes}\n targetURL={targetURL}\n multipleFileUpload={multipleFileUpload}\n optimize={optimize}\n addNotification={addNotification}\n limitType={limitType}\n displayUpload={true}\n translate={t}\n FilePreviewRenderer={ImageUploadPreviewRenderer}\n LoadingScreenRenderer={ImageLoadingScreenRenderer}\n onFileRemove={onFileRemove}\n removeButtonText={removeButtonText}\n Thumbnail={PreviewThumbnail}\n FileInputRenderer={FileInputRenderer}\n TextWrapperRenderer={TextWrapperRenderer}\n onError={onFileUploadError}\n onDisplayModeChange={handleFileUploadDisplayModeChange}\n buttonText={inputButtonText}\n />\n </div>\n {fileUploadDisplayMode === 'display' && isAltTextActive && renderAltTextInput()}\n {fileUploadDisplayMode === 'upload' && isAltTextActive && renderEnterUrl()}\n </>\n );\n };\n\n const renderChooseImage = () => (\n <>\n <div className=\"prevUploads-list\">\n <UploadedImagesPanel\n noUploadedImageText={noUploadedImageText}\n uploadedImageList={imageList}\n onImageSelect={handleImageSelect}\n onImageDeselect={handleImageDeselect}\n selectedImage={selectedImage}\n allowMultipleSelection={allowMultipleSelection}\n getUploadedImagesFromServer={useAPI}\n />\n </div>\n {isAltTextActive && renderAltTextInput()}\n {isActionButtonsVisible && showActionButtons && renderActionButtons()}\n </>\n );\n\n const renderGallery = () => (\n <>\n <div className={`prevUploads-list ${galleryMode}`}>\n <UploadedImagesPanel\n uploadedImageList={galleryImageList}\n onImageSelect={handleImageSelect}\n onImageDeselect={handleImageDeselect}\n selectedImage={selectedImage}\n allowMultipleSelection={allowMultipleSelection}\n />\n </div>\n {isAltTextActive && renderAltTextInput()}\n {isActionButtonsVisible && showActionButtons && renderActionButtons()}\n </>\n );\n\n const renderGroupedGallery = () => {\n return (\n <div className={groupedGalleryClass}>\n {groupedGalleryImageList.map(list => (\n <div data-testid=\"grouped-gallery\">\n {t(list.text)}\n <div className={`prevUploads-list ${galleryMode}`}>\n <UploadedImagesPanel\n uploadedImageList={list.images}\n onImageSelect={url => () => {\n setSelectedImage(url);\n onImageSelect(url);\n }}\n onImageDeselect={url => () => {\n setSelectedImage('');\n onImageRemove(url);\n }}\n selectedImage={selectedImage}\n />\n </div>\n </div>\n ))}\n </div>\n );\n };\n\n const createUnsplashImageList = (list = []) => list.map(image => {\n const {\n id = '',\n urls: { full = '', thumb = '' } = {},\n user: { name = '' } = {}\n } = image;\n\n return {\n urlFull: full,\n urlThumb: thumb,\n userInfo: name,\n id\n };\n });\n\n const getRandomUnsplashImages = () => {\n getRandomImagesFromUnsplash().then(response => {\n const list = createUnsplashImageList(response);\n const newList = [...randomUnsplashImageList, ...list];\n setRandomUnsplashImageList(newList);\n setUnsplashImageList(newList);\n }).catch(() => {});\n };\n\n const getUnsplashImages = loadMore => {\n const keyword = unsplashSearchInputRef && unsplashSearchInputRef.current && unsplashSearchInputRef.current.value;\n\n if (keyword) {\n if (loadMore && stopLoadMore) return;\n const count = 16;\n const page = loadMore ? unsplashPageNumber + 1 : 1;\n\n searchUnsplash(keyword, count, page).then(response => {\n const newImageList = createUnsplashImageList(response);\n setUnsplashImageList(currList => (loadMore ? [...currList, ...newImageList] : newImageList));\n setUnsplashPageNumber(page);\n setStopLoadMore(response.length < count);\n }).catch(() => {\n setUnsplashImageList([]);\n setStopLoadMore(true);\n });\n } else if (loadMore) {\n getRandomUnsplashImages();\n } else {\n setUnsplashImageList(randomUnsplashImageList);\n }\n };\n\n const renderUnsplash = () => {\n return (\n <div>\n <InputText\n className=\"w-full\"\n ref={unsplashSearchInputRef}\n placeholder={t('Search for an image')}\n onChange={useDebounce(() => {\n setUnsplashPageNumber(1);\n setStopLoadMore(false);\n getUnsplashImages();\n }, 600)}\n prefix={{ icon: IconMagnifyingGlass }}\n />\n <InfiniteScroll\n hasMore={!(unsplashSearchInputRef && unsplashSearchInputRef.current && unsplashSearchInputRef.current.value && stopLoadMore)}\n dataLength={unsplashImageList.length}\n next={() => getUnsplashImages(true)}\n className=\"prevUploads-list\"\n height=\"190px\"\n >\n <UploadedImagesPanel\n uploadedImageList={unsplashImageList}\n onImageSelect={urlFull => () => {\n setSelectedImage(urlFull);\n onImageSelect(urlFull);\n }}\n onImageDeselect={urlFull => () => {\n setSelectedImage('');\n onImageRemove(urlFull);\n }}\n selectedImage={selectedImage}\n />\n </InfiniteScroll>\n </div>\n );\n };\n\n const renderLinkTab = () => (\n <>\n <FormControl id=\"imageUrl\">\n {showLabel && (\n <FormLabel>{t('Enter URL')}</FormLabel>\n )}\n {renderLinkTabInput()}\n </FormControl>\n {isAltTextActive && (\n <div className=\"jfTabs-body-row\">\n <FormControl id=\"altText\">\n <FormLabel>{t('Add Alt Text')}</FormLabel>\n <InputText className=\"w-full\" value={altText} onChange={handleAltTextChange} />\n </FormControl>\n </div>\n )}\n {/* eslint-disable */}\n {showActionButtons && <div className=\"line\">\n <Button className=\"text-uppercase\" onClick={handleLinkTextClick}>\n {t('Add Link')}\n </Button>\n </div>}\n {/* eslint-enable */}\n </>\n );\n\n const renderIconSelector = () => (\n <IconSelector\n onSuccess={res => handleUseSelectedImage(res.url)}\n onRemove={() => handleUseSelectedImage('')}\n onlyColored={onlyColoredIcons}\n />\n );\n\n const tabPanelRendererMap = {\n upload: renderUploadImage,\n choose: renderChooseImage,\n link: renderLinkTab,\n icon: renderIconSelector,\n gallery: renderGallery,\n groupedGallery: renderGroupedGallery,\n unsplash: renderUnsplash\n };\n\n const getRootClassNames = () => {\n const classNames = ['imageUpload'];\n if (isBranding21) classNames.push('branding21');\n if (THEME_MAP[theme]) classNames.push(THEME_MAP[theme]);\n\n return classNames.join(' ');\n };\n\n useEffect(() => {\n setActionButtonsVisible(selectedImage.length > 0);\n }, [selectedImage]);\n\n useEffect(() => {\n setTabTitleList(prepareTabTitleList());\n }, [renderTabs]);\n\n useEffect(() => {\n if (!imageList.length && useAPI && allowGettingUploadedImages) {\n handleGetUploadedImages();\n }\n\n if (renderTabs.indexOf('unsplash') > -1) {\n getRandomUnsplashImages();\n }\n }, []);\n\n useEffect(() => {\n setImageList(showOnlyImages ? filterImages(originalImageList) : originalImageList);\n }, [originalImageList]);\n\n useEffect(() => {\n onAltTextChange(altText);\n }, [altText]);\n\n return (\n <TabListWithStyles\n activeTabClassName='is-active'\n tabButtonClassName='tabMenu-inner-link'\n list={tabTitleList}\n // eslint-disable-next-line\n TabButton={useCallback(props => <div {...props} />, [])}\n TabButtonContainer={useCallback(props => <div className='tabMenu' {...props} />, [])}\n Wrapper={useCallback(props => <div className={getRootClassNames()} {...props} />, [])}\n TabListContainer={useCallback(props => <div className='tabContent' {...props} />, [])}\n >\n {\n renderTabs\n .filter(tabKey => Object.keys(tabPanelRendererMap)\n .includes(tabKey))\n .map(tabKey => (\n <Tab id={tabKey} key={tabKey}>\n {tabPanelRendererMap[tabKey]()}\n </Tab>\n ))\n }\n </TabListWithStyles>\n );\n});\n\nImageUpload.propTypes = {\n onImageUpload: func,\n onImageSelect: func,\n onImageChange: func,\n onImageRemove: func,\n addNotification: func,\n onAltTextChange: func,\n onLinkInputChange: func,\n onLinkTextInputSubmit: func,\n isAltTextActive: bool,\n allowMultipleSelection: bool,\n forceSelect: bool,\n optimize: bool,\n multipleFileUpload: bool,\n onlyColoredIcons: bool,\n useAPI: bool,\n showLabel: bool,\n showActionButtons: bool,\n limitType: string,\n targetURL: string,\n linkTextInputDefaultValue: string,\n linkTextInputPlaceholder: string,\n imgDescInputPlaceholder: string,\n imageList: arrayOf(string),\n galleryImageList: array,\n theme: string,\n renderTabs: array,\n ActionButtonsWrapper: elementType,\n SelectButtonRenderer: elementType,\n DeleteButtonRenderer: elementType,\n ImageUploadPreviewRenderer: elementType,\n ImageLoadingScreenRenderer: elementType,\n allowedTypes: string,\n allowImageUpload: bool,\n onFileUploading: func,\n onFileRemove: func,\n isFileUploading: bool,\n value: shape({\n name: string,\n type: string,\n url: string,\n size: string\n }),\n removeButtonText: string,\n PreviewThumbnail: elementType,\n TextWrapperRenderer: elementType,\n FileInputRenderer: elementType,\n mode: string,\n showOnlyImages: bool,\n onFileUploadError: func,\n noUploadedImageText: string,\n galleryMode: string,\n inputButtonText: string,\n initialSelectedImage: string,\n groupedGalleryClass: string,\n groupedGalleryImageList: arrayOf(shape({})),\n isDeleteSelectedDisabled: bool\n};\n\nImageUpload.defaultProps = {\n onImageUpload: f => f,\n onImageSelect: f => f,\n onImageChange: f => f,\n onImageRemove: f => f,\n onAltTextChange: f => f,\n addNotification: f => f,\n onLinkTextInputSubmit: f => f,\n onLinkInputChange: f => f,\n isAltTextActive: false,\n allowMultipleSelection: false,\n forceSelect: false,\n optimize: false,\n multipleFileUpload: false,\n onlyColoredIcons: false,\n useAPI: false,\n showLabel: false,\n showActionButtons: true,\n limitType: '',\n linkTextInputDefaultValue: '',\n theme: '',\n linkTextInputPlaceholder: 'https://',\n imgDescInputPlaceholder: t('Alternative Text'),\n renderTabs: ['upload', 'choose', 'link'],\n imageList: [],\n galleryImageList: [],\n targetURL: undefined,\n ActionButtonsWrapper: props => <div className=\"prevUploads-button\" {...props} />,\n DeleteButtonRenderer: ({ onClick, disabled }) => <DefaultDeleteButton onClick={onClick} disabled={disabled} />, // eslint-disable-line react/prop-types\n SelectButtonRenderer: ({ onClick }) => <DefaultSelectButton onClick={onClick} />, // eslint-disable-line react/prop-types\n ImageUploadPreviewRenderer: ImagePreview,\n ImageLoadingScreenRenderer: LoadingScreen,\n allowedTypes: 'image',\n allowImageUpload: true,\n onFileUploading: f => f,\n onFileRemove: f => f,\n isFileUploading: false,\n value: {},\n removeButtonText: 'Remove Image',\n PreviewThumbnail: undefined,\n TextWrapperRenderer: undefined,\n FileInputRenderer: undefined,\n mode: 'imageUpload',\n showOnlyImages: true,\n onFileUploadError: f => f,\n noUploadedImageText: t('There is no image to show!'),\n galleryMode: '',\n inputButtonText: 'Upload File',\n initialSelectedImage: '',\n groupedGalleryClass: '',\n groupedGalleryImageList: [],\n isDeleteSelectedDisabled: false\n};\n\nexport default ImageUpload;\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\n\nconst LoadingScreen = () => {\n return (\n <>\n <div className=\"fileUpload-verticalAlign-text-loader\"> </div>\n <div className=\"fileUpload-verticalAlign-text-loading\">{t('Uploading...')}</div>\n </>\n );\n};\n\nexport default LoadingScreen;\n","import React, { Suspense } from 'react';\n\nimport 'emoji-mart/css/emoji-mart.css';\nimport { safeLazy } from '@jotforminc/safe-lazy-import';\n\nconst PickerComponent = safeLazy(() => import(/* webpackChunkName: \"emoji_mart_picker\" */'emoji-mart/dist/components/picker/picker'));\n\nconst Picker = props => (\n <Suspense fallback={<div />}>\n <PickerComponent {...props} />\n </Suspense>\n);\n\nexport default Picker;\n","import React, {\n useState, Suspense\n} from 'react';\nimport { bool, func, shape } from 'prop-types';\nimport { Picker } from '@jotforminc/emoji-mart';\nimport { t } from '@jotforminc/translation';\nimport { Loading } from '@jotforminc/loading';\nimport { Tab, TabListWithStyles } from '@jotforminc/tabs';\nimport { safeLazy } from '@jotforminc/safe-lazy-import';\n\nconst IconSelector = safeLazy(() => import(/* webpackChunkName: \"IconEmojiSelector_IconSelector\" */'../../IconSelector'));\n\nconst IconEmojiSelector = ({\n emojiPickerProperties, isEmojiFirst, ...props\n}) => {\n const {\n handleEmojiClick, ...otherProps\n } = emojiPickerProperties;\n const [activeTab, setActiveTab] = useState(false);\n\n return (\n <TabListWithStyles\n list={{\n iconSelector: { label: t('ICON') },\n emojiSelector: { label: t('EMOJI') }\n }}\n onTabChange={setActiveTab}\n defaultActiveTab={isEmojiFirst ? 'emojiSelector' : ''}\n >\n <Tab id=\"iconSelector\">\n <Suspense fallback={<Loading />}>\n <IconSelector {...props} />\n </Suspense>\n </Tab>\n <Tab id=\"emojiSelector\">\n <Picker\n onClick={handleEmojiClick}\n autoFocus={true}\n showPreview={false}\n showSkinTones={false}\n emojiSize={24}\n color=\"#0061FF\"\n title=\"Emoji\"\n perLine={8}\n native={true}\n isActive={activeTab === 'emojiSelector'} // Hacky way to fix clicking tabs issue for the first render of the Picker.\n {...otherProps}\n />\n </Tab>\n </TabListWithStyles>\n );\n};\n\nIconEmojiSelector.propTypes = {\n emojiPickerProperties: shape({\n handleEmojiClick: func\n }),\n isEmojiFirst: bool\n};\n\nIconEmojiSelector.defaultProps = {\n emojiPickerProperties: {\n handleEmojiClick: f => f\n },\n isEmojiFirst: false\n};\n\nexport default IconEmojiSelector;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nconst Color = ({ color }) => (\n <span className=\"suffix\" style={{ padding: '0 5px' }}>\n <div className=\"colorPickerAfter\" style={{ dwidth: 28, height: 28, background: color }} />\n </span>\n);\n\nColor.propTypes = {\n color: string\n};\n\nColor.defaultProps = {\n color: ''\n};\n\nexport default Color;\n","import React from 'react';\n\nconst Wrapper = props => <div {...props} />;\n\nexport default Wrapper;\n","import React, { useState, useMemo, useRef } from 'react';\nimport {\n elementType, string, func, oneOf, arrayOf, shape\n} from 'prop-types';\nimport * as ColorPickerList from 'react-color';\nimport { isRGB, rgbToHex, isHexColor } from '@jotforminc/utils';\n\nimport Popover from '../Popover';\nimport TextInput from '../TextInput';\nimport { Color as DefaultColorRenderer, Wrapper as DefaultWrapperRenderer } from './defaults';\n\nimport { useEffectIgnoreFirst, useClickOutsideState } from '../../utils/hooks';\n\nexport const validateCSSColor = color => {\n const dummyElement = document.createElement('div');\n dummyElement.style.color = color;\n\n const validColor = dummyElement.style.color.split(/\\s+/).join('').toLowerCase(); /* e.g.: rgb(255, 255, 255) */\n if (validColor && !isRGB(color) && isHexColor(color)) {\n return rgbToHex(validColor);\n }\n return validColor;\n};\n\nconst defaultColorStringGenerator = ({ hex, rgb }) => (rgb.a === 1 ? hex : `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.a})`);\n\nconst ColorPicker = ({\n type, defaultValue, value, id, presetColors, popoverProps,\n ColorRenderer, WrapperRenderer, TextInputRenderer, ColorPickerWrapper,\n onChange, pickerProps, onInputRemove, colorStringGenerator, ariaLabel, isVisible\n}) => {\n const containerRef = useRef(false);\n const textInputRef = useRef(false);\n const indicatorRef = useRef(false);\n const ColorPickerComponent = useMemo(() => ColorPickerList[`${type}Picker`], [type]);\n\n const [color, setColor] = useState(value || defaultValue);\n const [isColorPickerVisible, setColorPickerVisibility] = useClickOutsideState(false, [containerRef, textInputRef, indicatorRef]);\n const isPickerVisible = isVisible ?? isColorPickerVisible;\n\n useEffectIgnoreFirst(() => {\n setColor(value);\n }, [value]);\n\n const handleTextInputChange = ({ target: { value: inputValue } }) => {\n const trimmedValue = inputValue.trim();\n const validatedColorValue = validateCSSColor(trimmedValue);\n if (validatedColorValue || value === '') {\n onChange(validatedColorValue);\n setColor(validatedColorValue);\n }\n if (inputValue === '') {\n onInputRemove();\n }\n };\n\n const handleTextInputFocus = () => {\n setColorPickerVisibility(true);\n };\n\n const handleChangeComplete = pickedColor => {\n const currentColor = colorStringGenerator(pickedColor);\n setColor(currentColor);\n onChange(currentColor);\n };\n\n const toggleVisibility = () => {\n setColorPickerVisibility(!isColorPickerVisible);\n };\n\n return (\n <WrapperRenderer>\n <TextInputRenderer\n id={id}\n value={color}\n ref={textInputRef}\n onFocus={handleTextInputFocus}\n onChange={handleTextInputChange}\n role='textbox'\n aria-label={ariaLabel}\n />\n <ColorRenderer\n ref={indicatorRef} color={color} onClick={toggleVisibility}\n ariaLabel={ariaLabel}\n />\n {isPickerVisible && (\n <Popover ref={containerRef} {...popoverProps} targetRef={textInputRef}>\n <ColorPickerWrapper>\n <ColorPickerComponent\n color={color}\n presetColors={presetColors}\n onChangeComplete={handleChangeComplete}\n {...pickerProps}\n />\n </ColorPickerWrapper>\n </Popover>\n )}\n </WrapperRenderer>\n );\n};\n\nColorPicker.propTypes = {\n type: oneOf(['Alpha', 'Block', 'Chrome', 'Circle', 'Compact', 'Custom', 'Github', 'Hue', 'Material', 'Photoshop', 'Sketch', 'Slider', 'Swatches', 'Twitter']),\n id: string,\n value: string,\n defaultValue: string,\n presetColors: arrayOf(string),\n popoverProps: shape(Popover.propTypes),\n ColorRenderer: elementType,\n WrapperRenderer: elementType,\n TextInputRenderer: elementType,\n ColorPickerWrapper: elementType,\n onChange: func,\n pickerProps: shape({}),\n onInputRemove: func,\n colorStringGenerator: func,\n ariaLabel: string,\n isVisible: oneOf([null, false, true])\n\n};\n\nColorPicker.defaultProps = {\n type: 'Sketch',\n id: '',\n value: '',\n defaultValue: '',\n presetColors: [\n '#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF', 'rgba(255,255,255,0)'\n ],\n popoverProps: Popover.defaultProps,\n ColorRenderer: DefaultColorRenderer,\n WrapperRenderer: DefaultWrapperRenderer,\n ColorPickerWrapper: DefaultWrapperRenderer,\n TextInputRenderer: TextInput,\n onChange: f => f,\n pickerProps: {},\n onInputRemove: f => f,\n colorStringGenerator: defaultColorStringGenerator,\n ariaLabel: 'Color',\n isVisible: null\n};\n\nexport default ColorPicker;\n","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\n\ninterface ApiCallProps {\n path: string,\n options?: Partial<AxiosRequestConfig>,\n method?: AxiosRequestConfig['method'],\n url?: string,\n headers?: AxiosRequestConfig['headers'],\n callback?: (response: AxiosResponse<any>) => void,\n handleError?: (error: any) => void\n}\n\nexport const apiCall = ({\n path,\n options = {},\n method = 'get',\n url = '/API',\n headers = {},\n callback = ({ data: { content } = {} }) => content,\n handleError = () => {}\n}: ApiCallProps): Promise<any> => {\n return axios({\n method,\n url: `${url}${path}`,\n withCredentials: true,\n headers,\n ...options\n }).then(callback).catch(error => {\n // eslint-disable-next-line no-console\n handleError(error);\n });\n};\n","import qs from 'qs';\nimport { apiCall } from '../../utils/api';\n\nexport const getTeam = (id: string, fetchTeamProperties: boolean, returnMemberRoles: boolean): Promise<any> => {\n const query = qs.stringify({\n ...fetchTeamProperties ? { returnTeamProperties: '1' } : {},\n ...returnMemberRoles ? { returnMembers: '1', returnMembersRoles: '1' } : {}\n });\n return apiCall({ path: `/team/${id}?${query}`, headers: { 'jf-team-id': id }, callback: f => f });\n};\n\nexport const updateTeamProperties = (id: string, data: { [key: string]: any }): Promise<any> => {\n return apiCall({\n path: `/team/${id}/properties?${qs.stringify(data)}`,\n headers: { 'jf-team-id': id },\n method: 'put',\n callback: f => f\n });\n};\n","/* eslint-disable camelcase */\nimport { KeyboardEvent } from 'react';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\n\nimport {\n AccountType, User, ACCOUNTS, PrettyUser, RolesType, ServerTeamSettingsType\n} from '../types';\nimport { ACCOUNT_TYPES } from './constants';\nimport { TeamRoleDescription as getTeamRoleDescription } from '../components/TeamRoleDescription';\nimport { apiCall } from './api';\n\nexport const handleKeyUp = (e: KeyboardEvent<HTMLElement>, func: () => void): void => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n func();\n }\n};\n\nexport const visibleName = (accountType: AccountType): string => ACCOUNT_TYPES[accountType].visibleName;\n\nexport const toFormattedNumber = (num: number): string => {\n return num ? num.toLocaleString('en-US') : '0';\n};\n\nexport const isDataOnlyUser = (user: User | PrettyUser): boolean => {\n return user.isDataOnlyUser === '1';\n};\n\nexport const mappedAccountType = (user: User | PrettyUser | false): AccountType => {\n if (!user) return ACCOUNTS.USER;\n if (isDataOnlyUser(user)) return ACCOUNTS.DATA_ONLY_USER;\n return user.account_type === ACCOUNTS.ADMIN ? ACCOUNTS.ADMIN : ACCOUNTS.USER;\n};\n\nexport const parseUser = (user: User | PrettyUser, isTeamMember?: boolean): PrettyUser => ({\n ...user,\n fullText: `${user.username}${user.name}${user.email}${user.jobTitle}`,\n avatar: isTeamMember ? user.avatar : user.avatarUrl,\n visibleUserType: isTeamMember ? user?.role?.role_name || '' : visibleName(mappedAccountType(user)),\n visibleUserName: user.name || '',\n formCount: user.form_count,\n formCountForUI: toFormattedNumber(user.form_count)\n});\n\n// eslint-disable-next-line\nexport const isErrored = (res: any): boolean => !res || (res.responseCode && res.responseCode !== 200) || (res.data && res.data.responseCode && res.data.responseCode !== 200);\n\nexport const createTeamRolesWithDescriptions = (teamRoles: RolesType[]): RolesType[] => teamRoles.map(role => ({\n ...role,\n role_description: role.role_description || getTeamRoleDescription(role.role_slug)\n}));\n\nexport const checkUserCanInviteMembers = (): boolean => isEnterprise();\n\nexport const checkUserCanCreateTeam = (teamCount: number): boolean => isEnterprise() || !teamCount || teamCount < 5;\n\nexport const isPrivacyFeatureEnabled = (): boolean => isEnterprise();\n\nexport const hasQueryParams = (url: string): boolean => !!url && url.indexOf('?') > -1;\n\nexport const isServerTeamSettingsEnabled = (): boolean => isEnterprise();\n\nexport const canAddNewUsers = (serverTeamSettings: ServerTeamSettingsType, accountType: string): boolean => {\n return !serverTeamSettings?.teamNewUserInvitation || serverTeamSettings?.teamNewUserInvitation !== '0' || accountType === 'ADMIN';\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const canCreateTeam = (isTeamCreationDisabled: boolean, accountType: any): boolean => !isTeamCreationDisabled || accountType === 'ADMIN' || accountType?.name === 'ADMIN';\n\nexport const addBodyClass = (className: string): void => document.body.classList.add(className);\n\nexport const removeBodyClass = (className: string): void => document.body.classList.remove(className);\n\nexport const isBillingTabActive = async (): Promise<boolean> => {\n const { host } = window.location;\n\n const isDevelopmentEnv = host.indexOf('jotform.biz') > -1;\n const testEnvironmentList = [\n 'invoicetestinternal.jotform.com', 'www.jotformers.com',\n 'portosudeste.jotform.com', 'talend.jotform.com', 'chcsno.jotform.com', 'sierrageotech.jotform.com',\n 'vivachicken.jotform.com', 'vyanet.jotform.com', 'batsoncook.jotform.com', 'bespokeguardians.jotform.com',\n 'solidplatforms.jotform.com', 'campallen.jotform.com', '1callclosers.jotform.com', '3deventsla.jotform.com',\n 'baycare.jotform.com', 'lgcypower.jotform.com', 'atomsupplies.jotform.com', 'cjrdc.jotform.com',\n 'nfpcanada.jotform.com', 'metroplains.jotform.com', 'engglo.jotform.com', 'mjelectric.jotform.com'\n ];\n\n // Old method of checking for feature flag. Use the api instead to update the server config\n if ((testEnvironmentList.indexOf(host) > -1 || isDevelopmentEnv)) return true;\n\n return apiCall({ path: '/enterprise-dashboard/server/customization/billing/status' });\n};\n\nexport const getDateFilter = (dateFilter?: string | { start: string, end: string }): {[key: string]: string} => {\n if (!dateFilter) return {};\n\n return typeof dateFilter === 'string' ? { date: dateFilter } : { date: 'range', startDate: dateFilter.start, endDate: dateFilter.end };\n};\n\n/**\n * @description Filters a list of users against a search term and/or an excluded user list\n */\nexport const filterUsers = ({\n searchTerm, destinations, excludedUsers\n}: {\n searchTerm: string,\n destinations: Partial<User>[],\n excludedUsers?: Partial<User>[]\n}): Partial<User>[] => {\n return destinations.filter(destination => {\n const { name = '', username = '', email = '' } = destination;\n\n const searchRegex = new RegExp(searchTerm, 'i');\n\n // Filter out users we're from excluded users list\n if (excludedUsers?.some(excludedUser => excludedUser.username === username)) return false;\n\n // Filter target destination list by search term\n return searchRegex.test(name) || searchRegex.test(username) || searchRegex.test(email);\n });\n};\n","import { updateTeamProperties } from './api';\nimport { TeamProps } from '../../types';\nimport { isErrored } from '../../utils';\n\nexport const handleUpdateTeamProps = async (\n teamId: string,\n newData: TeamProps,\n onUpdate: (newData: TeamProps) => void,\n setTeam: (f: (TeamProps | ((currTeam: TeamProps) => TeamProps))) => void\n): Promise<any> => {\n try {\n const res = await updateTeamProperties(teamId, newData);\n if (!isErrored(res)) {\n setTeam((currTeam: TeamProps): TeamProps => ({ ...currTeam, ...newData }));\n onUpdate(newData);\n }\n } catch (e) {\n // handle errors\n }\n};\n","import React, { forwardRef } from 'react';\nimport { string } from 'prop-types';\n\ntype Props = {\n color?: string\n};\n\nconst ColorRenderer = forwardRef<HTMLDivElement, Props>(({ color, ...rest }, ref) => (\n <div\n className='jfColors-picker'\n style={{ background: color }}\n ref={ref}\n {...rest}\n />\n));\n\nColorRenderer.propTypes = {\n color: string\n};\n\nColorRenderer.defaultProps = {\n color: '#FFFFFF'\n};\n\nexport default ColorRenderer;\n","export const BG_IMAGE_SET = [\n {\n text: 'NATURE',\n images: [\n 'https://images.unsplash.com/photo-1497436072909-60f360e1d4b1?w=1200&h=80',\n 'https://images.unsplash.com/photo-1491147334573-44cbb4602074?w=1200&h=80',\n 'https://images.unsplash.com/photo-1490358930084-2d26f21dc211?w=1200&h=80',\n 'https://images.unsplash.com/photo-1576806817362-9ed6edf33591?w=1200&h=80',\n 'https://images.unsplash.com/photo-1500964757637-c85e8a162699?w=1200&h=80',\n 'https://images.unsplash.com/photo-1556103727-777acb371272?w=1200&h=80',\n 'https://images.unsplash.com/photo-1551376347-075b0121a65b?w=1200&h=80'\n ]\n },\n {\n text: 'ART & CULTURE',\n images: [\n 'https://images.unsplash.com/photo-1621886292650-520f76c747d6?w=1200&h=80',\n 'https://images.unsplash.com/photo-1515448315142-dca41dcde981?w=1200&h=80',\n 'https://images.unsplash.com/photo-1547891654-e66ed7ebb968?w=1200&h=80',\n 'https://images.unsplash.com/photo-1554139681-1adb48e035cb?w=1200&h=80'\n ]\n },\n {\n text: 'SPACE',\n images: [\n 'https://images.unsplash.com/photo-1419242902214-272b3f66ee7a?w=1200&h=80',\n 'https://images.unsplash.com/photo-1519681393784-d120267933ba?w=1200&h=80',\n 'https://images.unsplash.com/photo-1532798369041-b33eb576ef16?w=1200&h=80',\n 'https://images.unsplash.com/photo-1545243424-0ce743321e11?w=1200&h=80',\n 'https://images.unsplash.com/photo-1589225529399-8705282f98e2?w=1200&h=80',\n 'https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=1200&h=80'\n ]\n },\n {\n text: 'BUSINESS',\n images: [\n 'https://images.unsplash.com/photo-1507904139316-3c7422a97a49?w=1200&h=80',\n 'https://images.unsplash.com/photo-1535498730771-e735b998cd64?w=1200&h=80',\n 'https://images.unsplash.com/photo-1498036882173-b41c28a8ba34?w=1200&h=80',\n 'https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?w=1200&h=80'\n ]\n }\n];\n\nexport const AVATAR_SET = [\n {\n text: 'ANIMALS',\n images: [\n 'https://images.unsplash.com/photo-1517849845537-4d257902454a',\n 'https://images.unsplash.com/photo-1537151608828-ea2b11777ee8',\n 'https://images.unsplash.com/photo-1581300134629-4c3a06a31948',\n 'https://images.unsplash.com/photo-1547721064-da6cfb341d50',\n 'https://images.unsplash.com/photo-1514571948039-d3cb9e8f9750',\n 'https://images.unsplash.com/photo-1535076766578-839cd64d7a73',\n 'https://images.unsplash.com/photo-1535062311770-93adb0401917',\n 'https://images.unsplash.com/photo-1612372992697-81c95501d0d1',\n 'https://images.unsplash.com/photo-1605092676920-8ac5ae40c7c8',\n 'https://images.unsplash.com/photo-1590079015089-875baa76cc8d',\n 'https://images.unsplash.com/photo-1522069169874-c58ec4b76be5',\n 'https://images.unsplash.com/photo-1590787996529-a542c86ca267',\n 'https://images.unsplash.com/photo-1591025207163-942350e47db2'\n ]\n },\n {\n text: 'NATURE',\n images: [\n 'https://images.unsplash.com/photo-1522688306378-fbb315c6ba9a',\n 'https://images.unsplash.com/photo-1606041008023-472dfb5e530f',\n 'https://images.unsplash.com/photo-1540490190210-9e2825f75418',\n 'https://images.unsplash.com/photo-1604820849194-837928614a4a',\n 'https://images.unsplash.com/photo-1453791052107-5c843da62d97',\n 'https://images.unsplash.com/photo-1502003148287-a82ef80a6abc'\n ]\n },\n {\n text: 'BUSINESS',\n images: [\n 'https://images.unsplash.com/photo-1513171920216-2640b288471b',\n 'https://images.unsplash.com/photo-1555323912-3526a765162b'\n ]\n },\n {\n text: 'ARTS & CULTURE',\n images: [\n 'https://images.unsplash.com/photo-1646001943936-f1edc87d4ac5',\n 'https://images.unsplash.com/photo-1634986666676-ec8fd927c23d',\n 'https://images.unsplash.com/photo-1628526799996-0cfe210f5fbc'\n ]\n },\n {\n text: 'TECHNOLOGY',\n images: [\n 'https://images.unsplash.com/photo-1485827404703-89b55fcc595e',\n 'https://images.unsplash.com/photo-1536697246787-1f7ae568d89a'\n ]\n }\n];\n\nexport const DEFAULT_SELECTED_OPTIONS = {\n teamAvatarURL: '',\n teamAvatarIcon: '',\n teamAvatarIconSvgRef: '',\n teamAvatarIconColor: '',\n teamAvatarIconBgColor: '#18235C',\n teamAvatarEmojiId: 'european_castle'\n};\n\nexport const DEFAULT_TEAM = {\n id: '',\n name: '',\n showCoverImage: '',\n teamAvatarIconBgColor: '',\n teamAvatarIconColor: '',\n teamAvatarURL: '',\n teamAvatarIcon: '',\n teamAvatarEmojiId: '',\n coverTitleColor: '',\n teamAvatarIconSvgRef: '',\n coverBgImageURL: '',\n coverBgColor: '',\n coverBgImageCropInfo: '',\n members: []\n};\n","/* eslint-disable max-len */\nimport styled from 'styled-components';\n\nexport const CustomizationWrapper = styled.div`\n background: #FFFFFF;\n max-width: 350px;\n width: 100%;\n border-radius: 4px;\n background: #FFFFFF;\n border: 1px solid #B2B4CC;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.08);\n\n &.cover {\n max-width: 485px;\n width: 100%;\n\n // FIXME: This is a hack to fix the width of the cover\n .content-fileupload .imageUpload .tabContent .galleryWrapper > div .prevUploads-list .prevUploads-listItem {\n width: 100%;\n height: auto;\n border-radius: 4px;\n aspect-ratio: 16 / 9;\n\n img {\n height: 100% !important;\n }\n }\n }\n\n .heading {\n height: 40px;\n font-size: 14px;\n line-height: 18px;\n font-weight: 600;\n color: #2E3345;\n padding: 12px 16px;\n }\n\n .content-heading {\n align-self: flex-start;\n color: #141E46;\n font-weight: 500;\n margin-bottom: 8px;\n position: relative;\n\n &.centering {\n align-self: center;\n margin: 0;\n }\n }\n\n .content-option-colorpicker {\n position: relative;\n\n input {\n background: #FFFFFF;\n border: 1px solid #B2B4CC;\n border-radius: 4px;\n color: #333A71;\n font-size: 14px;\n line-height: 18px;\n padding: 8px 32px 8px 8px;\n\n html[dir=\"rtl\"] & {\n padding: 8px 43px 8px 8px;\n }\n }\n .jfColors-picker {\n position: absolute;\n top: 6px;\n right: 6px;\n width: 24px;\n height: 24px;\n border-radius: 2px;\n\n &:before {\n content: '';\n width: 1px;\n height: 34px;\n background-color: #B2B4CC;\n display: block;\n position: absolute;\n right: 30px;\n top: -5px;\n }\n }\n }\n\n .content {\n .content-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n width: 100%;\n\n &.col {\n flex-direction: column;\n\n input {width: 100%}\n }\n }\n\n .double-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center; \n flex: 1 0 auto;\n flex-wrap: wrap;\n z-index: 5;\n position: relative;\n\n &.midSize {\n max-width: 70%;\n\n @media (max-width: 768px) {\n max-width: 100%;\n }\n }\n\n .col {\n width: 50%;\n }\n }\n\n .forBody {\n @media screen and (max-width: 600px) {\n max-height: 35vh;\n }\n\n @media screen and (max-height: 568px) {\n max-height: 20vh;\n }\n }\n }\n\n .content-fileupload {\n width: 100%;\n border: 1px solid #B2B4CC;\n border-radius: 4px;\n\n div[data-tabid=\"unsplash\"] {\n .prevUploads-listItem {\n height: auto;\n cursor: pointer;\n\n img {\n width: 100%;\n max-height: 100% !important;\n aspect-ratio: 16 / 9;\n object-fit: cover;\n }\n\n p {\n margin: 0;\n padding: 0;\n width: 100%;\n font-size: 10px;\n color: #999;\n overflow: hidden;\n height: 12px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n a {\n color: inherit;\n margin-left: 2px;\n }\n }\n }\n }\n\n .imageUpload {\n .tabMenu {\n border-bottom: 1px solid #B2B4CC\n }\n \n .tabMenu-inner-link {\n padding: 6px 0;\n font-size: 12px;\n color: #333A71;\n border-bottom-width: 2px;\n border-right: 1px solid #B2B4CC;\n display: grid;\n place-items: center;\n line-height: 1;\n\n &:last-of-type {\n border-right: none;\n }\n\n &.is-active {\n border-bottom-color: #18235C;\n border-bottom-width: 2px;\n }\n }\n\n .tabUnsplash {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n margin-right: 4px;\n }\n }\n\n .tabContent {\n padding: 12px 8px;\n max-height: 300px;\n overflow: auto;\n min-width: 314px;\n\n .galleryWrapper {\n > div {\n color: #9FA0B9;\n font-size: 12px;\n line-height: 16px;\n font-weight: 600;\n text-align: left;\n margin-bottom: 16px;\n\n .prevUploads-list {\n border: none;\n padding: 0;\n margin: 6px auto 24px;\n min-height: auto;\n max-height: auto;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n padding: 4px;\n\n @media (max-width: 768px) {\n gap: 1vw;\n }\n\n .prevUploads-listItem {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n overflow: hidden;\n display: flex;\n margin: 5px;\n cursor: pointer;\n margin: 0;\n\n img {\n width: 100%;\n height: 100% !important;\n object-fit: cover;\n }\n }\n }\n }\n }\n\n div[data-tabid=\"upload\"] {\n label.fileUploadLabel {\n background-color: #0099FF;\n }\n .fileUpload {\n min-height: 135px;\n\n &-verticalAlign-text {\n color: #9FA0B9;\n font-size: 12px;\n line-height: 16px;\n margin-top: 8px;\n }\n }\n }\n\n div[data-tabid=\"unsplash\"] {\n .prevUploads-list {\n border: none;\n overflow: auto;\n margin: 0;\n padding: 0;\n\n display: grid;\n grid-gap: 8px;\n grid-template-columns: repeat(auto-fit, minmax(102px, 1fr));\n margin-top: 12px;\n\n .prevUploads-listItem {\n width: 100%;\n max-width: 100%;\n float: initial;\n overflow: initial;\n margin: initial;\n }\n }\n\n .searchBox {\n background-color: #F5F6FE;\n border: 1px solid #C8CEED;\n border-radius: 4px;\n font-size: 14px;\n line-height: 18px;\n }\n }\n\n div[data-tabid=\"link\"] {\n label {\n display: flex;\n\n input {\n background: #F5F6FE;\n border: 1px solid #C8CEED;\n border-radius: 4px;\n color: #797EA8;\n }\n }\n\n .line {\n margin-top: 12px;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n a.btn {\n background-color: #0099FF;\n border-radius: 4px;\n line-height: 1.5;\n\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n }\n }\n }\n }\n\n .withBorder {\n border-bottom: 1px solid rgba(225, 226, 236, 0.7);\n }\n\n .jfTabs-body {\n padding: 0;\n }\n\n .icon-selector-wizard {\n padding: 0;\n\n svg {\n fill: #18235C;\n }\n }\n\n .icon-tab-wrapper {\n width: 100%;\n\n .jfTabs {\n border: 1px solid #B2B4CC;\n border-radius: 4px;\n }\n\n .forTabs { \n z-index: 4;\n\n .jfTabs-tabs {\n min-height: 32px;\n height: 32px;\n border-bottom: 1px solid #B2B4CC;\n\n &-button {\n color: #333A71;\n font-size: 12px;\n line-height: 16px;\n border-right: 1px solid #B2B4CC;\n\n &:last-of-type {\n border-right: none;\n }\n }\n }\n }\n\n .forBody {\n .iconSelectorPanel {\n .tabMenu {\n background-color: #F3F3FE;\n display: flex;\n justify-content: space-around;\n align-items: center;\n padding: 8px;\n\n .tabMenu-link.is-active {\n position: relative;\n\n &:after {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 2px;\n background-color: #0061FF;\n bottom: -7px;\n left: 0;\n }\n }\n\n input {\n margin: 0;\n background-color: #FFF !important;\n color: #797EA8;\n background-position: 5%;\n padding: .625em .625em .625em 40px;\n }\n\n a {\n cursor: pointer;\n\n svg {\n fill: #797EA8;\n }\n }\n }\n\n .tabContent {\n .SeachIconWrapper {\n input {\n margin: 0;\n padding: 8px 0 8px 36px;\n background-color: transparent !important;\n color: #797EA8;\n background-position: 12px center;\n border-bottom: 1px solid #E1E2EC;\n border-radius: 0 !important;\n }\n }\n .LogoIconsWrapper {\n .content-item-wrapper {\n border-radius: 50%;\n }\n .content-item-label {\n border-radius: 50%;\n\n &:hover {\n background-color: #7698EF;\n\n svg {\n fill: #B4C8FC;\n }\n }\n }\n }\n }\n }\n .emoji-mart {\n button:not(.emoji-mart-search-icon) {\n border: none;\n padding: 8px;\n }\n\n &-search-icon {\n padding: 0 4px 0 0;\n border: none;\n min-height: auto;\n }\n\n &-category-label {\n color: #9FA0B9;\n font-size: 12px;\n line-height: 16px;\n font-weight: 600;\n text-align: left;\n }\n }\n }\n }\n`;\n\nexport const CoverWrapper = styled.div`\n display: flex;\n height: 100%;\n width: 100%;\n\n .teamCardWrapper &:hover {\n .teamcover .teamcover-container {\n transform: translateY(-100px);\n }\n\n .teamcover-bg::before {\n background: initial;\n }\n\n .teamcover-container {\n bottom: 8px;\n }\n .teamName {\n margin-top: 8px;\n }\n \n .teamMembers-count-normal {\n display: none\n }\n .teamMembers-count-hover {\n display: block;\n }\n }\n\n @media screen and (max-width: 768px) {\n position: relative;\n z-index: 0;\n\n .isMyaccount & {\n position: relative;\n z-index: 20;\n }\n }\n\n body.jfWizard--isVisible:not(.jfWizard--isModalView) & {\n display: none;\n }\n\n .teamcover {\n width: 100%;\n min-height: 200px;\n text-align: center;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n position: relative;\n // overflow: hidden;\n transition: all .2s;\n\n &-container {\n position: relative;\n z-index: 10;\n width: 100%;\n display: flex;\n flex-direction: column;\n }\n\n &-imageCropper {\n position: relative;\n\n .wrapper {\n height: 200px;\n position: relative;\n }\n \n .wrapperButtons {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n height: 51px;\n\n position: absolute;\n right: 0;\n bottom: 4px;\n background: #FFFFFF61;\n padding: 8px;\n border-radius: 4px;\n \n button {\n cursor: pointer;\n transition: .2s all ease;\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n font-family: inherit;\n border-radius: 4px;\n width: 72px;\n height: 28px;\n font-size: 12px;\n }\n .wrapperCancel {\n background-color: #dddfe9;\n color: #23283a;\n margin-right: 12px;\n }\n .wrapperSave {\n background-color: #4573e3;\n color: #fff;\n margin-right: 15px;\n }\n }\n\n &-info {\n position: absolute;\n z-index: 10;\n color: #141E46;\n top: 50%;\n background: rgba(255, 255, 255, 0.8);\n padding: 8px;\n border-radius: 4px;\n left: 50%;\n margin: -16px 0 0 -96px;\n pointer-events: none;\n }\n }\n\n &-avatar {\n position: relative;\n background-color: transparent;\n border: none;\n width: 64px;\n margin: 0 auto;\n\n &-wrapper {\n width: 64px;\n height: 64px;\n border: 2px solid #fff;\n border-radius: 50%;\n overflow: hidden;\n margin: 0 auto;\n padding: 0;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n \n img {\n object-fit: cover;\n height: 100%;\n width: 100%;\n }\n \n &.hasBgColor {\n // padding: 12px;\n }\n \n .jfIconSVG-wrapper {\n width: 100%;\n height: 100%;\n padding: 12px;\n }\n \n .emoji-mart-emoji {\n // transform: scale(.7);\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \n span {\n font-size: 40px;\n align-self: center;\n display: flex;\n justify-content: center;\n align-items: center;\n //margin: 2px 0 0 0;\n } \n \n .emoji-mart-search {\n .emoji-mart-search-icon {\n //padding: 0 4px 0 0 !important; // FIXME\n }\n }\n }\n } \n \n img {\n width: 100%;\n background-size: cover;\n height: 100%;\n }\n \n &-edit {\n position: absolute;\n width: 24px;\n height: 24px;\n background-color: #D3DCEF;\n border-radius: 50%;\n padding: 4px;\n right: -2px;\n bottom: -2px;\n filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25)); \n }\n \n .hoverSettingButton {\n opacity: 1;\n transition: all .1s ease;\n }\n \n &:hover {\n .hoverSettingButton {\n opacity: 1;\n }\n }\n }\n\n &-name {\n color: #fff;\n font-weight: 600;\n font-size: 24px;\n line-height: 30px;\n margin: 8px 0 0 0;\n word-break: break-all;\n }\n\n &-members {\n position: absolute;\n top: 0;\n right: 12px;\n z-index: 15;\n display: flex;\n justify-content: center;\n align-items: center;\n\n html[dir=\"rtl\"] & {\n right: initial;\n left: 12px;\n }\n }\n\n &-btnset {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n padding: 12px;\n\n & > * {\n margin-left: 4px;\n }\n\n .teamSettingsButton {\n padding: 4px;\n border-radius: 4px;\n background: rgba(255, 255, 255, 0.8);\n width: 24px;\n height: 24px;\n cursor: pointer;\n transition: background .2s ease;\n z-index: 2;\n order: 2;\n \n &:hover + .teamcover-btnset-customization {\n opacity: 1;\n visibility: visible;\n transform: translate(0, 0);\n }\n }\n\n &-customization {\n display: flex;\n background-color: rgba(255, 255, 255, 0.8);\n border-radius: 4px;\n border: none;\n transition: background-color .2s ease;\n\n order: 1;\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: none;\n background-color: transparent;\n padding: 4px 8px;\n color: #141E46;\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n border-right: 1px solid #141E46;\n\n &:last-of-type {\n border-right: none;\n }\n\n svg {\n width: 12px;\n margin-right: 4px;\n\n html[dir=\"rtl\"] & {\n margin-right: 0px;\n margin-left: 4px;\n }\n }\n }\n }\n }\n\n &-bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n right: 0;\n bottom: 0;\n z-index: 0;\n border: none;\n margin: 0;\n padding: 0;\n overflow: hidden;\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(180deg, rgba(159, 160, 185, 0.6) 0%, rgba(159, 160, 185, 0) 123.33%);\n mix-blend-mode: multiply;\n }\n\n &-wrapper {\n position: relative;\n top: 0;\n left: 0;\n transition: background .3s ease;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n }\n\n &-img {\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n position: absolute;\n inset: 0;\n z-index: 1;\n will-change: transform; \n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n &-invite {\n margin-left: auto;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n margin: 12px 0 12px auto;\n\n ul {\n display: flex;\n\n li {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: -6px;\n \n img {\n width: 100%;\n object-fit: cover;\n height: 100%;\n }\n\n button {\n border: none;\n width: 100%;\n height: 100%;\n color: #6F76A7;\n background-color: #E2E6F9;\n display: flex;\n margin: 0;\n padding: 0;\n justify-content: center;\n align-items: center;\n\n width: 32px;\n height: 32px;\n overflow: hidden;\n border-radius: 50%;\n border: 1px solid rgb(200, 206, 237);\n }\n\n .jfTooltipNew-body {\n span {\n display: block;\n margin-bottom: 8px;\n text-align: left;\n\n &:nth-child(1) {\n color: #fff;\n font-size: 15px;\n font-weight: 500;\n }\n &:nth-child(2) {\n color: #a9aacb;\n }\n &:nth-child(3) {\n background-color: #404b6b;\n border-radius: 30px;\n color: #f3f7ff;\n font-size: 12px;\n padding: 8px 16px;\n align-self: flex-start;\n margin-bottom: 0;\n white-space: nowrap;\n }\n }\n }\n }\n }\n\n > button {\n background: rgba(255, 255, 255, 0.8);\n padding: 4px 12px;\n border-radius: 4px;\n border: none;\n color: #141E46;\n font-weight: 500;\n line-height: 24px;\n font-size: 12px;\n transition: background .2s ease;\n margin-left: 8px;\n\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: 8px;\n }\n\n &:hover {\n background: rgba(255, 255, 255, 1);\n } \n }\n }\n\n &-cta {\n background: #0A1551;\n border-radius: 4px;\n border: none;\n color: #FFF;\n padding: 6px;\n line-height: 22px;\n }\n\n &-select {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n\n label {\n color: #141E46;\n font-size: 16px;\n line-height: 21px;\n margin-right: 12px;\n }\n\n select {\n background: #E3E5F5;\n border-radius: 4px;\n }\n }\n\n &-wrapper {\n z-index: 7;\n width: 100%;\n\n [data-popper-placement] {\n z-index: 7;\n }\n\n &.isEditable {\n z-index: 8;\n .teamcover-bg {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n }\n }\n }\n`;\n","/* eslint-disable react/require-default-props */\nimport React, {\n ReactNode,\n forwardRef,\n FunctionComponent,\n useState,\n useRef\n} from 'react';\nimport debounce from 'lodash/debounce';\nimport { ImageUpload } from '@jotforminc/image-upload';\nimport { IconEmojiSelector } from '@jotforminc/icon-selector';\nimport { TabListWithStyles, Tab } from '@jotforminc/tabs';\nimport { t } from '@jotforminc/translation';\nimport { ColorPicker as UIKitColorPicker, Popover } from '@jotforminc/uikit';\nimport { handleUpdateTeamProps } from './utils';\n\nimport ColorRenderer from './ColorRenderer';\nimport { AVATAR_SET, DEFAULT_SELECTED_OPTIONS } from './constants';\nimport { TeamProps } from '../../types';\nimport { CustomizationWrapper } from './StyledElements';\nimport { ImageUploadRefType } from './types';\n\ntype Props = {\n teamId?: string,\n teamAvatarURL?: string,\n teamAvatarIcon?: string,\n teamAvatarIconColor?: string,\n teamAvatarIconBgColor?: string,\n buttonRef: ReactNode,\n setTeam?: (f: (TeamProps | ((currTeam: TeamProps) => TeamProps))) => void,\n onUpdate?: (newData: TeamProps) => void,\n notUpdateOnSelection?: boolean,\n popoverProps?: { [key: string]: any },\n useOnUpdateProp?: boolean\n};\n\nconst CustomizeTeamAvatar = forwardRef<FunctionComponent, Props>(({\n teamId,\n teamAvatarURL,\n teamAvatarIcon,\n teamAvatarIconColor,\n teamAvatarIconBgColor,\n buttonRef,\n onUpdate = f => f,\n setTeam = f => f,\n notUpdateOnSelection,\n popoverProps = {},\n useOnUpdateProp\n}, ref) => {\n const imageUploadRef = useRef<ImageUploadRefType>(null);\n const [activeTab, setActiveTab] = useState<string | undefined>();\n\n const update = (newData: TeamProps) => {\n if (notUpdateOnSelection || useOnUpdateProp) {\n onUpdate(newData);\n } else {\n handleUpdateTeamProps(teamId as string, newData, onUpdate, setTeam);\n }\n };\n\n const selectImage = (url: string) => update({\n teamAvatarURL: url,\n teamAvatarIcon: '',\n teamAvatarIconSvgRef: '',\n teamAvatarEmojiId: '',\n teamAvatarIconColor: '',\n teamAvatarIconBgColor: ''\n });\n\n const handleResetSelectedImage = () => {\n if (imageUploadRef?.current?.setSelectedImage) {\n imageUploadRef.current.setSelectedImage('');\n }\n };\n\n const removeImage = () => {\n update(DEFAULT_SELECTED_OPTIONS);\n handleResetSelectedImage();\n };\n\n const selectIcon = (val: { url: string, iconSvgRef: string }) => {\n update({\n teamAvatarIcon: val?.url,\n teamAvatarIconSvgRef: val?.iconSvgRef,\n teamAvatarURL: '',\n teamAvatarEmojiId: '',\n ...(!teamAvatarIconBgColor && { teamAvatarIconBgColor: '#0099FF' })\n });\n handleResetSelectedImage();\n };\n\n const selectEmoji = (emoji: { id: string }) => {\n update({\n teamAvatarEmojiId: emoji?.id,\n teamAvatarURL: '',\n teamAvatarIcon: '',\n teamAvatarIconSvgRef: '',\n ...(!teamAvatarIconBgColor && { teamAvatarIconBgColor: '#0099FF' })\n });\n handleResetSelectedImage();\n };\n\n const onLinkTextInputSubmit = (url?: string) => {\n if (!url) return;\n selectImage(url);\n handleResetSelectedImage();\n };\n\n const TABS = {\n image: { label: t('IMAGE') },\n icon: { label: t('ICON') }\n };\n\n return (\n <Popover\n ref={ref}\n targetRef={buttonRef}\n popoverOptions={{\n placement: window.innerWidth > 768 ? 'right-start' : 'bottom-end',\n modifiers: [\n { name: 'offset', options: { offset: [0, 5] } }\n ]\n }}\n {...popoverProps}\n >\n <CustomizationWrapper className=\"avatar\">\n <div className=\"heading withBorder\" data-testid=\"team-avatar-customization-header\">\n {t('TEAM AVATAR')}\n </div>\n <div className=\"content withBorder\">\n <TabListWithStyles\n list={TABS}\n onTabChange={setActiveTab}\n >\n <Tab id=\"image\">\n <div className=\"content-wrapper col\">\n <div className=\"content-fileupload\">\n <ImageUpload\n ref={imageUploadRef}\n renderTabs={['groupedGallery', 'upload', 'link']}\n initialSelectedImage={teamAvatarURL}\n theme=\"isLight\"\n groupedGalleryClass=\"galleryWrapper\"\n groupedGalleryImageList={AVATAR_SET}\n onImageUpload={(file: { url: string }) => {\n selectImage(file?.url);\n handleResetSelectedImage();\n }}\n onLinkTextInputSubmit={onLinkTextInputSubmit}\n onFileRemove={removeImage}\n onImageSelect={selectImage}\n onImageRemove={removeImage}\n />\n </div>\n </div>\n </Tab>\n <Tab id=\"icon\">\n <div className=\"double-wrapper\">\n <div className=\"content-wrapper col\">\n <div className=\"content-heading\">\n {t('Icon Color')}\n </div>\n <div className=\"content-option content-option-colorpicker\">\n <UIKitColorPicker\n ColorRenderer={ColorRenderer}\n pickerProps={{\n disableAlpha: true\n }}\n value={teamAvatarIconColor}\n onChange={debounce(val => update({ teamAvatarIconColor: val }), 400)}\n onInputRemove={() => update({ teamAvatarIconColor: '' })}\n ariaLabel={t('Icon Color')}\n />\n </div>\n </div>\n <div className=\"content-wrapper col\">\n <div className=\"content-heading\">\n {t('Background Color')}\n </div>\n <div className=\"content-option content-option-colorpicker\">\n <UIKitColorPicker\n ColorRenderer={ColorRenderer}\n pickerProps={{\n disableAlpha: true\n }}\n value={teamAvatarIconBgColor}\n onChange={debounce(val => update({ teamAvatarIconBgColor: val }), 400)}\n onInputRemove={() => update({ teamAvatarIconBgColor: '' })}\n ariaLabel={t('Background Color')}\n />\n </div>\n </div>\n </div>\n <div className=\"content-wrapper col\">\n <div className=\"content-option icon-tab-wrapper\">\n <IconEmojiSelector\n emojiPickerProperties={{\n handleEmojiClick: selectEmoji,\n exclude: ['symbols']\n }}\n onChange={selectIcon}\n value={teamAvatarIcon}\n allIconsContainerID='team-avatar-icons'\n allowShuffle={false}\n selectedIconBgColor={teamAvatarIconBgColor}\n selectedIconColor={teamAvatarIconColor}\n overriddenTabNames={['All', 'Colored']}\n allowRemove={false}\n isEmojiFirst={true}\n isActive={activeTab === 'icon'} // To fix clicking tabs issue for the first render of the Emoji Picker.\n />\n </div>\n </div>\n </Tab>\n </TabListWithStyles>\n </div>\n </CustomizationWrapper>\n </Popover>\n );\n});\n\nCustomizeTeamAvatar.defaultProps = {\n teamId: '',\n teamAvatarURL: '',\n teamAvatarIcon: '',\n teamAvatarIconColor: '',\n teamAvatarIconBgColor: '',\n notUpdateOnSelection: false,\n popoverProps: {},\n useOnUpdateProp: false\n};\n\nexport default CustomizeTeamAvatar;\n","/* eslint-disable react/require-default-props */\nimport React, {\n ReactNode, forwardRef, FunctionComponent, useRef\n} from 'react';\nimport debounce from 'lodash/debounce';\nimport { ImageUpload } from '@jotforminc/image-upload';\nimport { t } from '@jotforminc/translation';\nimport { ColorPicker as UIKitColorPicker, Popover } from '@jotforminc/uikit';\nimport ColorRenderer from './ColorRenderer';\nimport { BG_IMAGE_SET } from './constants';\nimport { TeamProps } from '../../types';\nimport { handleUpdateTeamProps } from './utils';\nimport { CustomizationWrapper } from './StyledElements';\nimport { ImageUploadRefType } from './types';\n\ntype Props = {\n teamId?: string,\n coverBgColor?: string,\n coverTitleColor?: string,\n coverBgImageURL?: string,\n buttonRef: ReactNode,\n setTeam?: (f: (TeamProps | ((currTeam: TeamProps) => TeamProps))) => void,\n onUpdate?: (newData: TeamProps) => void,\n useOnUpdateProp?: boolean\n};\n\nconst CustomizeCover = forwardRef<FunctionComponent, Props>(({\n teamId,\n coverBgColor,\n coverTitleColor,\n coverBgImageURL,\n buttonRef,\n onUpdate = f => f,\n setTeam = f => f,\n useOnUpdateProp\n}, ref) => {\n const imageUploadRef = useRef<ImageUploadRefType>(null);\n const update = (newData: TeamProps) => (useOnUpdateProp ? onUpdate(newData) : handleUpdateTeamProps(teamId as string, newData, onUpdate, setTeam));\n\n const handleResetSelectedImage = () => {\n if (imageUploadRef?.current?.setSelectedImage) {\n imageUploadRef.current.setSelectedImage('');\n }\n };\n\n const removeHeightParam = (url: string) => {\n const heightParam = new RegExp(/(&h=80)$/, 'gm');\n return url.replace(heightParam, '');\n };\n\n const selectImage = (url: string) => update({ coverBgColor: '', coverBgImageURL: removeHeightParam(url), coverBgImageCropInfo: '' });\n const removeImage = () => {\n update({ coverBgImageURL: '' });\n handleResetSelectedImage();\n };\n\n const onLinkTextInputSubmit = (url?: string) => {\n if (!url) return;\n selectImage(url);\n handleResetSelectedImage();\n };\n\n return (\n <Popover\n ref={ref}\n targetRef={buttonRef}\n popoverOptions={{\n placement: 'bottom-start',\n modifiers: [\n { name: 'offset', options: { offset: [0, 5] } }\n ]\n }}\n >\n <CustomizationWrapper className=\"cover\">\n <div className=\"heading withBorder\" data-testid=\"cover-customization-header\">\n {t('CUSTOMIZE COVER')}\n </div>\n <div className=\"content withBorder\">\n <div className=\"double-wrapper midSize\">\n <div className=\"content-wrapper col\">\n <div className=\"content-heading\">\n {t('Background Color')}\n </div>\n <div className=\"content-option content-option-colorpicker\">\n <UIKitColorPicker\n ColorRenderer={ColorRenderer}\n pickerProps={{\n disableAlpha: true\n }}\n value={coverBgColor}\n onChange={debounce(val => update({ coverBgImageURL: '', coverBgColor: val }), 400)}\n onInputRemove={() => update({ coverBgColor: '' })}\n />\n </div>\n </div>\n <div className=\"content-wrapper col\">\n <div className=\"content-heading\">\n {t('Title Color')}\n </div>\n <div className=\"content-option content-option-colorpicker\">\n <UIKitColorPicker\n ColorRenderer={ColorRenderer}\n pickerProps={{\n disableAlpha: true\n }}\n value={coverTitleColor}\n onChange={debounce(val => update({ coverTitleColor: val }), 400)}\n onInputRemove={() => update({ coverTitleColor: '' })}\n />\n </div>\n </div>\n </div>\n <div className=\"content-wrapper col\">\n <div className=\"content-fileupload\">\n <ImageUpload\n ref={imageUploadRef}\n renderTabs={['groupedGallery', 'upload', 'link', 'unsplash']}\n initialSelectedImage={coverBgImageURL}\n theme=\"isLight\"\n groupedGalleryClass=\"galleryWrapper\"\n groupedGalleryImageList={BG_IMAGE_SET}\n onImageUpload={file => {\n selectImage(file?.url);\n handleResetSelectedImage();\n }}\n onLinkTextInputSubmit={onLinkTextInputSubmit}\n onFileRemove={removeImage}\n onImageSelect={selectImage}\n onImageRemove={removeImage}\n />\n </div>\n </div>\n </div>\n </CustomizationWrapper>\n </Popover>\n );\n});\n\nCustomizeCover.defaultProps = {\n teamId: '',\n coverBgColor: '',\n coverTitleColor: '',\n coverBgImageURL: '',\n useOnUpdateProp: false\n};\n\nexport default CustomizeCover;\n","import React, {\n FunctionComponent,\n ReactNode,\n useEffect,\n useRef\n} from 'react';\nimport { t } from '@jotforminc/translation';\nimport { Hooks } from '@jotforminc/uikit';\nimport CustomizeTeamAvatar from './CustomizeTeamAvatar';\nimport CustomizeCover from './CustomizeCover';\nimport { TeamProps } from '../../types';\n\ntype Props = {\n teamId?: string,\n type?: string,\n buttonClass?: string,\n buttonStyles?: { [key: string]: any },\n onVisibilityChange?: (isCustomizationVisible: boolean) => void,\n isVisible?: boolean,\n children?: ReactNode,\n coverBgColor?: string,\n coverTitleColor?: string,\n coverBgImageURL?: string,\n teamAvatarURL?: string,\n teamAvatarIcon?: string,\n teamAvatarIconColor?: string,\n teamAvatarIconBgColor?: string,\n setTeam?: (f: (TeamProps | ((currTeam: TeamProps) => TeamProps))) => void,\n onUpdate?: (newData: TeamProps) => void,\n notUpdateOnSelection?: boolean,\n popoverProps?: { [key: string]: any },\n useOnUpdateProp?: boolean\n};\n\nexport const CustomizationButton: FunctionComponent<Props> = ({\n type,\n buttonClass,\n buttonStyles,\n children,\n onVisibilityChange = f => f,\n isVisible,\n ...otherProps\n}) => {\n const ActiveComponent = type === 'cover' ? CustomizeCover : CustomizeTeamAvatar;\n const popoverRef = useRef<FunctionComponent>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [isCustomizationVisible, setCustomizationVisibility] = Hooks.useClickOutsideStateMouseDown(!!isVisible, [popoverRef, buttonRef]);\n\n useEffect(() => {\n onVisibilityChange(isCustomizationVisible);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCustomizationVisible]);\n\n useEffect(() => {\n setCustomizationVisibility(!!isVisible);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <>\n <button\n className={buttonClass}\n style={buttonStyles}\n ref={buttonRef}\n type=\"button\"\n onClick={() => setCustomizationVisibility(true)}\n data-testid={`customization-button-${type}`}\n aria-label={t('Customization')}\n >\n {children}\n </button>\n {isCustomizationVisible && <ActiveComponent {...otherProps} ref={popoverRef} buttonRef={buttonRef} />}\n </>\n );\n};\n\nCustomizationButton.defaultProps = {\n teamId: '',\n type: '',\n buttonClass: '',\n buttonStyles: {},\n onVisibilityChange: f => f,\n isVisible: false,\n children: null,\n coverBgColor: '',\n coverTitleColor: '',\n coverBgImageURL: '',\n teamAvatarURL: '',\n teamAvatarIcon: '',\n teamAvatarIconColor: '',\n teamAvatarIconBgColor: '',\n setTeam: f => f,\n onUpdate: f => f,\n notUpdateOnSelection: false,\n popoverProps: undefined,\n useOnUpdateProp: false\n};\n","import React, { Suspense } from 'react';\nimport { safeLazy } from '@jotforminc/safe-lazy-import';\n\nimport 'emoji-mart/css/emoji-mart.css';\n\nconst EmojiComponent = safeLazy(() => import(/* webpackChunkName: \"emoji_mart_emoji\" */'emoji-mart/dist/components/emoji/emoji'));\n\nconst Emoji = props => (\n <Suspense fallback={<div />}>\n <EmojiComponent {...props} />\n </Suspense>\n);\n\nexport default Emoji;\n","import React from 'react';\nimport { Emoji } from '@jotforminc/emoji-mart';\nimport { string, oneOfType, number } from 'prop-types';\n\nconst EmojiRenderer = ({ id, size }) => (\n <Emoji\n emoji={{ id }}\n size={size}\n native={true}\n />\n);\n\nEmojiRenderer.propTypes = {\n id: string,\n size: oneOfType([number, string])\n};\n\nEmojiRenderer.defaultProps = {\n id: '',\n size: 55\n};\n\nexport default EmojiRenderer;\n","import React, { memo, useCallback } from 'react';\nimport { string } from 'prop-types';\nimport { ReactSVG } from 'react-svg';\n\nconst SvgErrorFallback = () => <img src=\"https://www.jotform.com/images/image_placeholder.png\" alt=\"error-placeholer\" />;\n\nexport const SVGIcon = ({\n url, iconColor, ...props\n}) => {\n return (\n <ReactSVG\n src={url}\n afterInjection={useCallback((error, svg) => {\n if (error) return;\n const _svg = svg;\n _svg.style.fill = iconColor;\n }, [iconColor])}\n beforeInjection={useCallback(svg => {\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', '100%');\n }, [])}\n fallback={SvgErrorFallback}\n renumerateIRIElements={false}\n wrapper=\"div\"\n className=\"jfIconSVG-wrapper\"\n {...props}\n />\n );\n};\n\nSVGIcon.propTypes = {\n url: string,\n iconColor: string\n};\n\nSVGIcon.defaultProps = {\n url: '',\n iconColor: ''\n};\n\nexport default memo(SVGIcon);\n","/* eslint-disable max-len */\nimport styled from 'styled-components';\n\nexport const centerer = `\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const AvatarWrapper = styled.div`\n .jfIconSVG-wrapper {\n ${centerer}\n padding: 8px;\n\n > div {\n ${centerer}\n }\n }\n`;\n","import React, { FunctionComponent } from 'react';\nimport { SVGIcon, EmojiRenderer } from '@jotforminc/icon-selector';\nimport { AvatarWrapper } from './StyledElements';\n\ntype ImageProps = {\n url?: string,\n icon?:string,\n emojiId?: string,\n emojiSize?: number | string,\n iconColor?: string,\n iconSvgRef?: string\n urlParams?: string\n};\n\nconst Image: FunctionComponent<ImageProps> = ({\n url = '',\n urlParams = '',\n icon = '',\n emojiId = '',\n emojiSize = 16,\n iconColor = '',\n iconSvgRef = ''\n}) => {\n if (url) return (<img src={`${url}${urlParams}`} alt=\"Team Avatar\" data-testid=\"team-avatar-image\" />);\n\n if (emojiId) return (<EmojiRenderer id={emojiId} size={emojiSize} />);\n\n const isIconSpriteLoaded = !!document.getElementById('team-avatar-icons');\n\n return isIconSpriteLoaded && iconSvgRef ? (\n <AvatarWrapper>\n <div className=\"jfIconSVG-wrapper xxxx\">\n <svg\n fill={iconColor}\n viewBox=\"0 0 24 24\"\n style={{ width: '100%', height: '100%' }}\n >\n <use xlinkHref={`#${iconSvgRef}`} href={`#${iconSvgRef}`} />\n </svg>\n </div>\n </AvatarWrapper>\n ) : (\n <AvatarWrapper>\n <SVGIcon\n url={icon}\n iconColor={iconColor}\n />\n </AvatarWrapper>\n );\n};\n\nexport default Image;\n","/* eslint-disable react/require-default-props */\nimport React, { FunctionComponent } from 'react';\nimport { CustomizationButton } from '../Cover/CustomizationButton';\nimport { TeamProps } from '../../types';\nimport Image from '.';\nimport { hasQueryParams } from '../../utils';\nimport '../../styles/Image.scss';\n\ntype Props = {\n iconBgColor?: string,\n hasCustomization?:boolean,\n isVisible?: boolean,\n onVisibilityChange?: (isCustomizationVisible: boolean) => void,\n url?: string,\n icon?: string,\n iconColor?: string,\n teamId?: string,\n onUpdate?: (newData: TeamProps) => void,\n customClass?: string,\n emojiId?: string,\n iconSvgRef?: string,\n emojiSize?: number | string\n};\n\nexport const ImageWithWrapper: FunctionComponent<Props> = ({\n iconBgColor = '',\n hasCustomization = false,\n isVisible = false,\n onVisibilityChange = f => f,\n teamId = '',\n customClass = '',\n onUpdate = f => f,\n url = '',\n icon = '',\n iconColor = '',\n ...props\n}) => {\n const imageProps = {\n urlParams: url ? `${hasQueryParams(url) ? '&' : '?'}h=128` : '',\n url,\n icon,\n iconColor,\n ...props\n };\n return hasCustomization ? (\n <>\n <CustomizationButton\n type=\"teamAvatar\"\n buttonClass={`sb-customIcon forTeamAvatar ${customClass}`}\n buttonStyles={{\n backgroundColor: iconBgColor\n }}\n teamAvatarURL={url}\n teamAvatarIcon={icon}\n teamAvatarIconColor={iconColor}\n teamAvatarIconBgColor={iconBgColor}\n isVisible={isVisible}\n onVisibilityChange={onVisibilityChange}\n teamId={teamId}\n onUpdate={onUpdate}\n >\n <Image {...imageProps} />\n </CustomizationButton>\n </>\n ) : (\n <div className={`sb-customIcon ${customClass}`} style={{ backgroundColor: iconBgColor }}>\n <Image {...imageProps} />\n </div>\n );\n};\n","import React from 'react';\nimport { ImageWithWrapper } from '@jotforminc/enterprise-components';\nimport { shape, string } from 'prop-types';\n\nconst TeamImageWithWrapper = ({ team, customClass }) => {\n return (\n <ImageWithWrapper\n iconBgColor={team?.teamAvatarIconBgColor}\n url={team?.teamAvatarURL}\n icon={team?.teamAvatarIcon}\n emojiId={team?.teamAvatarEmojiId}\n iconColor={team?.teamAvatarIconColor}\n iconSvgRef={team?.teamAvatarIconSvgRef}\n hasCustomization={false}\n isVisible={true}\n customClass={customClass}\n />\n );\n};\n\nTeamImageWithWrapper.propTypes = {\n team: shape({\n teamAvatarIconBgColor: string,\n teamAvatarURL: string,\n teamAvatarIcon: string,\n teamAvatarEmojiId: string,\n teamAvatarIconColor: string,\n teamAvatarIconSvgRef: string\n }),\n customClass: string\n};\n\nTeamImageWithWrapper.defaultProps = {\n team: {},\n customClass: ''\n};\n\nexport default TeamImageWithWrapper;\n","import React, { useMemo, useState } from 'react';\nimport { bool, shape, string } from 'prop-types';\nimport { IconChevronRight, IconFormCheckFilled } from '@jotforminc/svg-icons';\nimport RightPanel from '@jotforminc/right-panel';\nimport { safeJSONParse } from '@jotforminc/utils';\nimport Collapse from '@jotforminc/collapse';\nimport { t } from '@jotforminc/translation';\nimport '../styles/jfWorkflowPanel.scss';\nimport AvatarWithApprovalAction from './AvatarWithApprovalAction';\nimport { useWorkflow } from '../contexts';\nimport TeamImageWithWrapper from './TeamImageWithWrapper';\nimport { isTeamApproval } from '../utils/helper';\n\nconst getApproverTitle = (type, teamInfo = null) => {\n if (type === 'workflow_approval') {\n return 'Approvers';\n }\n if (type === 'workflow_approval_with_sign') {\n return 'Signers';\n }\n if (type === 'workflow_team_approval') {\n return teamInfo?.teamName || 'Team Approvals';\n }\n};\n\nconst APPROVAL_OPTIONS = {\n workflow_approval: {\n all: t('Require response from all'),\n first: t('Require response from one person'),\n amount: t('Require certain number of responses'),\n majority: t('Require response from majority')\n },\n workflow_approval_with_sign: {\n all: t('Require response from all'),\n first: t('Require response from one person'),\n amount: t('Require certain number of responses'),\n majority: t('Require response from majority')\n },\n workflow_team_approval: {\n all: t('Require response from all'),\n first: t('Require response from one person'),\n amount: t('Require certain number of responses'),\n majority: t('Require response from majority')\n },\n workflow_completion_text: ({ value, max }) => ({\n all: t('All responded'),\n first: t('One person responded'),\n amount: t(`${value} out of ${max} people responded`),\n majority: t('Majority responded'),\n escalated: t('Task escalated'),\n expired: t('Task expired'),\n taken_over: t('Task taken over'),\n auto_completed: t('Task automatically completed'),\n reassigned: t('Task reassigned')\n })\n};\n\nconst WORKFLOW_STATUS = {\n ACTIVE: 'Waiting',\n NOT_STARTED: 'Not Started',\n APPROVE: 'Approved',\n DENY: 'Denied',\n CANCELED: 'Canceled',\n COMPLETED: 'Completed',\n ERRORED: 'Errored',\n ESCALATED: 'Escalated',\n EXPIRED: 'Expired',\n TAKEN_OVER: 'Taken Over',\n AUTO_COMPLETED: 'Auto Completed',\n REASSIGNED: 'Reassigned'\n};\n\nconst WorkflowInformationPanel = props => {\n const {\n elementType,\n subType,\n approvalOptions,\n approverCount,\n status,\n updated_at: updatedAt,\n sentDate = null,\n customOutcomeStatus,\n subtasks,\n task: {\n team = null\n },\n cancelReason,\n teamProps = null\n } = props;\n\n const teamData = teamProps || team;\n const [visible, setVisible] = useState(false);\n const textType = safeJSONParse(approvalOptions, approvalOptions).option;\n const { formatDate } = useWorkflow();\n const { text: customText = null, color: customColor = null } = customOutcomeStatus;\n const outcomeCount = subtasks.filter(subtask => subtask.properties.outcomeInfo).length;\n const statusType = cancelReason || status;\n const teamApproval = useMemo(() => isTeamApproval(subType || elementType, teamData), [subType, elementType, teamData]);\n const showRightPanel = () => setVisible(true);\n const hideRightPanel = () => setVisible(false);\n\n const headerTitle = (\n <div className=\"jfWorkflowPanel-title-content\">\n <div className='jfWorkflowPanel-title'>\n { `${getApproverTitle(subType || elementType || t('Approvers'), teamData)} `}\n { subType !== 'workflow_team_approval' && !teamData && `(${approverCount}) `}\n </div>\n {teamApproval && (\n <div className='jfWorkflowPanel-subtitle'>\n {`${approverCount} members`}\n </div>\n )}\n </div>\n );\n\n const headerIcon = (\n <div className=\"jfWorkflowPanel-title-icon\">\n {teamApproval ? <TeamImageWithWrapper team={teamData} /> : <IconFormCheckFilled fill=\"#6C73A8\" />}\n </div>\n );\n\n return (\n <div className=\"jfWorkflowPanel-wrapper\">\n <button className=\"jfWorkflowPanel-button forDetails\" type=\"button\" onClick={showRightPanel}>\n {t('Show Details')}\n <IconChevronRight width=\"12\" />\n </button>\n <RightPanel\n asideClass=\"isWorkflowPanel\"\n headerIcon={headerIcon}\n isVisible={visible}\n onClose={hideRightPanel}\n panelTitle={headerTitle}\n theme=\"light\"\n >\n <div className=\"jfWorkflowPanel\">\n <div className=\"jfWorkflowPanel-row asFlex\">\n <div className=\"jfWorkflowPanel-row-title\">\n {`${t('Status')}`}\n </div>\n <div\n className={['jfWorkflowPanel-row-text', 'isPill', statusType ? `is--${statusType}` : null].filter(Boolean).join(' ')}\n style={{ '--outcomeColor': customColor }}\n >\n {customText || WORKFLOW_STATUS[statusType]}\n </div>\n </div>\n <AvatarWithApprovalAction isTeamApproval={teamApproval} {...props} />\n <div className=\"jfWorkflowPanel-row\">\n <Collapse initialState={false} buttonTitle='Details'>\n <DetailRenderer title='Completion Rule' text={APPROVAL_OPTIONS[subType || elementType]?.[textType]} />\n {status !== 'ACTIVE' && (\n <DetailRenderer\n title='Result'\n text={APPROVAL_OPTIONS.workflow_completion_text({ value: outcomeCount, max: approverCount })[cancelReason.toLowerCase() || textType]}\n />\n )}\n <DetailRenderer title='Sent Date' text={formatDate(sentDate || updatedAt)} />\n </Collapse>\n </div>\n </div>\n </RightPanel>\n </div>\n );\n};\n\nconst DetailRenderer = ({ title, text }) => {\n return (\n <div className=\"jfCollapse-row\">\n <div className=\"jfCollapse-row-title\">\n {title}\n </div>\n <div className=\"jfCollapse-row-text\">\n {text}\n </div>\n </div>\n );\n};\n\nDetailRenderer.propTypes = {\n title: string.isRequired,\n text: string.isRequired\n};\n\nWorkflowInformationPanel.propTypes = {\n elementType: string,\n subType: string,\n approvalOptions: shape({}),\n approverCount: string,\n status: string,\n forTask: bool,\n task: shape({}),\n subtasks: shape({}),\n updated_at: string,\n sentDate: string,\n customOutcomeStatus: shape({}),\n cancelReason: string,\n teamProps: shape({})\n};\nWorkflowInformationPanel.defaultProps = {\n elementType: '',\n subType: '',\n approvalOptions: {},\n approverCount: '',\n status: '',\n forTask: false,\n task: {},\n subtasks: [],\n updated_at: '',\n sentDate: '',\n customOutcomeStatus: {},\n cancelReason: '',\n teamProps: null\n};\n\nexport default WorkflowInformationPanel;\n","import { arrayOf } from 'prop-types';\nimport React from 'react';\nimport AvatarGroupWithContact from './AvatarGroupWithContact';\nimport WorkflowInformationPanel from './WorkflowInformationPanel';\n\nconst AvatarGroupWithPanel = ({ items, ...informationProps }) => {\n return (\n <AvatarGroupWithContact\n items={items}\n >\n <WorkflowInformationPanel subtasks={items} {...informationProps} />\n </AvatarGroupWithContact>\n );\n};\n\nexport default AvatarGroupWithPanel;\n\nAvatarGroupWithPanel.propTypes = {\n items: arrayOf({})\n};\n\nAvatarGroupWithPanel.defaultProps = {\n items: []\n};\n","import React from 'react';\nimport { number, shape, string } from 'prop-types';\nimport classNames from 'classnames';\nimport '../styles/jfAvatar.scss';\n\nconst ThreadAvatar = ({\n user: {\n name, email, avatarUrl = ''\n },\n color,\n className,\n assigneeEmail,\n maxCharShow\n}) => {\n const isDefaultAvatar = avatarUrl === '' || avatarUrl?.includes?.('Podo-Guest');\n const firstTwoLetterOfEmail = (name || email || assigneeEmail || '').slice(0, maxCharShow).toUpperCase();\n const backgroundImage = typeof avatarUrl === 'string' ? `url(\"${avatarUrl}\")` : undefined;\n const avatarF = typeof avatarUrl === 'function' ? avatarUrl() : undefined;\n\n return (\n avatarUrl || isDefaultAvatar || assigneeEmail ? (\n <div\n className={classNames('jfAvatar', { isDefaultAvatar }, className)}\n style={isDefaultAvatar ? {} : { backgroundImage }}\n data-color={color}\n >\n {avatarF}\n {isDefaultAvatar ? firstTwoLetterOfEmail : ''}\n </div>\n ) : null\n );\n};\n\nThreadAvatar.propTypes = {\n user: shape({}).isRequired,\n color: string,\n className: string,\n assigneeEmail: string,\n maxCharShow: number\n};\n\nThreadAvatar.defaultProps = {\n color: '',\n className: '',\n assigneeEmail: '',\n maxCharShow: 2\n};\n\nexport default ThreadAvatar;\n","/* eslint-disable no-constant-condition */\n/* eslint-disable complexity */\nimport React, { useCallback, useMemo, useRef } from 'react';\nimport { t } from '@jotforminc/translation';\nimport {\n rgba, lighten, readableColor, darken\n} from 'polished';\nimport {\n arrayOf, bool, func, shape\n} from 'prop-types';\nimport classnames from 'classnames';\nimport styled, { css } from 'styled-components';\nimport { Hooks } from '@jotforminc/uikit';\nimport Tethered from 'react-tether';\nimport { isTeamApproval } from '../utils/helper';\nimport EntryTypes, { entryFiltererGenerator, convertTasks, statusTexts } from '../SubmissionThread/EntryTypes';\nimport ThreadAvatar from './ThreadAvatar';\n\nimport '../styles/_jfWorkflowStatus.scss';\nimport '../styles/_jfMenu.scss';\nimport TeamImageWithWrapper from './TeamImageWithWrapper';\n\nexport const WORKFLOW_STATUS = {\n ACTIVE: 'In Progress',\n NOT_STARTED: 'Not Started',\n APPROVE: 'Approved',\n DENY: 'Denied',\n CANCELED: 'Canceled',\n COMPLETED: 'Completed',\n ERRORED: 'Error'\n};\n\nconst TEAM_APPROVAL_STATUS_TEXT = {\n APPROVE: 'Approved',\n DENY: 'Denied',\n EXPIRE: 'Expired',\n AUTO: 'Automatically Finished',\n ESCALATE: 'Escalated',\n REASSIGN: 'Reassigned',\n CANCEL: 'Canceled',\n CUSTOM_EMAIL: 'Email Sent',\n REPLY: 'Replied',\n RESTART: 'Restarted',\n TASK: 'Waiting',\n REQUEST_MORE_INFO: 'Requested more info',\n EDIT_SUBMISSION: 'Edit submission',\n ASSIGN_FORM_SUBMISSION: 'Form Submitted',\n ASSIGN_FORM_NOTIFICATION_MAIL: 'Form Assigned',\n MULTIPLE_APPROVAL_MAIL: 'Team Approval'\n};\n\nconst { useClickOutsideState } = Hooks;\n\nconst entryFilterer = entryFiltererGenerator('workflow');\n\nconst StatusPill = styled.div`\n${({ color }) => {\n if (!color) return null;\n\n return css`\n color: ${color};\n background-color: ${rgba(color, 0.2)};\n\n &:hover {\n border: 1px solid ${color};\n box-shadow: 0 0 0 1px ${rgba(color, 0.2)};\n }\n `;\n }\n}\n`;\n\nconst StatusText = styled.div`\n${({ color }) => {\n const statusColor = color || '#5E74E6';\n const backgroundColor = rgba(statusColor, 0.20);\n const textColor = readableColor(backgroundColor, lighten(0.2, statusColor), statusColor, false);\n const borderColor = readableColor(backgroundColor, color, darken(0.2, statusColor), false);\n\n return css`\n color: ${textColor};\n border-color: ${borderColor};\n background-color: ${backgroundColor};\n `;\n }\n}\n`;\n\nconst WorkflowStatus = ({\n isFormOwner,\n showTaskStatus,\n submission: {\n id: submissionID,\n tasks = null,\n workflowStatus,\n workflowStatusDetails: {\n showOutcome = false,\n buttonColor: color = ''\n } = {}\n },\n onClick,\n showPopover,\n thread,\n setSubmission\n}) => {\n const isCustomOutcome = showOutcome && !!color;\n\n const renderPill = () => {\n const list = useMemo(() => {\n const tasksConverted = tasks?.filter(task => task.taskName !== 'Merge Point')?.map(convertTasks);\n const entriesFiltered = thread?.filter(entryFilterer);\n\n return [].concat(tasksConverted, entriesFiltered).filter(e => !!e);\n }, [thread, tasks]);\n\n const status = WORKFLOW_STATUS[workflowStatus.toUpperCase()] || workflowStatus;\n const className = workflowStatus?.toLowerCase();\n\n const wrapperRef = useRef();\n const popoverRef = useRef();\n\n const [isPopoverVisible, setPopoverVisibility] = useClickOutsideState(false, [wrapperRef, popoverRef]);\n\n const shouldListRender = showPopover && list?.length;\n\n const handleClick = useCallback(async e => {\n if (typeof setSubmission === 'function') await setSubmission(e);\n if (typeof onClick === 'function') onClick(e);\n if (shouldListRender) setPopoverVisibility(!isPopoverVisible);\n }, [onClick, isPopoverVisible, shouldListRender]);\n\n return (\n <Tethered\n ref={popoverRef}\n targetRef={wrapperRef}\n key={submissionID}\n style={{\n zIndex: 200,\n display: `${isPopoverVisible ? 'block' : 'none'}`,\n pointerEvents: `${isPopoverVisible ? 'auto' : 'none'}`\n }}\n attachment='top left'\n targetAttachment='bottom left'\n constraints={[{\n to: 'window',\n attachment: 'together',\n pin: true\n }]}\n >\n <StatusPill\n ref={wrapperRef}\n className={classnames('workflowStatus', className, { hasColor: isCustomOutcome })}\n onClick={e => e.stopPropagation()}\n onMouseDown={handleClick}\n aria-hidden=\"true\"\n color={isCustomOutcome ? color : null}\n >\n <span>{isCustomOutcome ? status : t(status)}</span>\n </StatusPill>\n {shouldListRender ? (\n <div\n ref={popoverRef}\n className={classnames('jfMenu', 'forWorkflowStatus', 'isDark', { isVisible: isPopoverVisible })}\n >\n <div\n className=\"header\"\n >\n <div\n className={classnames('header-text', className)}\n style={false && isCustomOutcome ? { backgroundColor: color, color: readableColor(color, '#000', '#fff', false) } : {}}\n >\n <span>{`Status: ${status}`}</span>\n </div>\n </div>\n <div className=\"list\">\n {list?.map(({\n actionType, actionDetails, user: userRaw\n }, index) => {\n const entryType = actionType.toLowerCase();\n const EntryComp = EntryTypes[entryType];\n const assigneeUser = actionDetails?.assigneeUser;\n const assigneeEmail = actionDetails?.assigneeEmail;\n if (!EntryComp) return null;\n\n const user = EntryComp?.user ? EntryComp.user(actionDetails, userRaw) : userRaw;\n const actionSubType = actionDetails?.type?.toLowerCase();\n const isCustomAction = actionType === 'APPROVE_REJECT' && actionSubType === 'custom';\n const getAssignFormText = actionType === 'MAIL' && actionDetails?.reason === 'ASSIGN_FORM_NOTIFICATION_MAIL' ? actionDetails?.reason : undefined;\n const userName = user?.name || user?.email || assigneeUser?.name || assigneeEmail;\n const statusText = actionDetails?.team\n ? TEAM_APPROVAL_STATUS_TEXT[(actionDetails?.text || getAssignFormText || actionSubType || actionType)?.toUpperCase()] || actionDetails?.text\n : statusTexts[(actionDetails?.text || getAssignFormText || actionSubType || actionType)?.toUpperCase()] || actionDetails?.text;\n const isTeamApprovalAction = isTeamApproval(actionDetails?.subType, actionDetails?.team) && user?.team;\n // if (!user) return null;\n\n return (\n <div\n // key={threadID}\n className=\"list-item\"\n >\n <div className=\"list-item-no\">\n {index + 1}\n .\n </div>\n { user && !isTeamApprovalAction ? (\n <div className=\"list-item-avatar\">\n <ThreadAvatar\n user={user}\n className={classnames(entryType, actionSubType, { isSystem: user?.isSystem })}\n assigneeEmail={assigneeEmail}\n />\n </div>\n ) : null }\n {\n isTeamApprovalAction && (\n <div className=\"list-item-avatar\">\n <TeamImageWithWrapper customClass=\"jfAvatar multiple_approval_mail isSystem\" team={actionDetails?.team} />\n </div>\n )\n }\n <div className=\"list-item-user\">\n {userName ? <div className=\"list-item-user-name\">{userName}</div> : null}\n <div className=\"list-item-user-email\">\n {/* eslint-disable-next-line no-nested-ternary */}\n {EntryComp.PopoverDescription\n ? <EntryComp.PopoverDescription actionDetails={actionDetails} />\n : (false && user?.name && user?.email ? user?.email : null) }\n </div>\n </div>\n <div className=\"list-item-outcome\">\n <StatusText\n // TODO: Make it Styled Component, and check readability then lighten or darken\n className={classnames(\n 'list-item-outcome-badge',\n ({ [actionSubType || entryType]: !isCustomAction } || { workflow: user?.isSystem })\n )}\n color={isCustomAction ? actionDetails?.buttonColor : null}\n title={statusText}\n >\n <span>{statusText}</span>\n </StatusText>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n\n ) : null}\n </Tethered>\n );\n };\n\n return workflowStatus && WORKFLOW_STATUS[workflowStatus.toUpperCase()] !== WORKFLOW_STATUS.NOT_STARTED && (isFormOwner || showTaskStatus)\n ? renderPill()\n : null;\n};\n\nWorkflowStatus.defaultProps = {\n showPopover: true,\n onClick: f => f,\n setSubmission: f => f,\n thread: null\n};\n\nWorkflowStatus.propTypes = {\n isFormOwner: bool.isRequired,\n showTaskStatus: bool.isRequired,\n submission: shape({}).isRequired,\n thread: arrayOf(shape()),\n showPopover: bool,\n setSubmission: null,\n onClick: func\n};\n\nexport default WorkflowStatus;\n","import React from 'react';\nimport { bool, shape, string } from 'prop-types';\nimport { Baseline } from '@jotforminc/answer-fields';\nimport { WorkflowStatus } from '@jotforminc/workflow-components';\n\nfunction WorkflowStatusAnswer(props) {\n const { text, labelProps } = props;\n return (\n <Baseline label={text} labelContainerProps={labelProps}>\n <WorkflowStatus {...props} />\n </Baseline>\n );\n}\n\nWorkflowStatusAnswer.propTypes = {\n text: string.isRequired,\n labelProps: shape({\n className: string\n }).isRequired,\n submission: shape({\n id: string\n }).isRequired,\n isFormOwner: bool.isRequired\n};\n\nexport default React.memo(WorkflowStatusAnswer);\n","import React, { memo, useMemo, useCallback } from 'react';\nimport { areEqual } from 'react-window';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport SheetCell from '../TableGrid/Cell';\nimport FileUpload from './FileUpload';\nimport { getDefaultCustomProps } from '../TableGrid/Cell/cellUtils';\nimport WorkflowStatusAnswer from './WorkflowStatusAnswer';\n\nconst Cell = ({\n data: {\n submissionGetter,\n questions,\n questionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClick,\n isFormOwner\n } = {},\n columnIndex = 0,\n isFreezeColumn = false,\n rowIndex = 0,\n style = {}\n}) => {\n const submission = useMemo(() => submissionGetter(rowIndex), [rowIndex, submissionGetter]);\n const questionID = questionsWithOrders[columnIndex];\n const question = questions[questionID];\n\n const { columnIndex: selectedColumnIndex, rowIndex: selectedRowIndex, isColumnLocked } = selectedCell;\n const isSelectedCell = isFreezeColumn === isColumnLocked && columnIndex === selectedColumnIndex && rowIndex === selectedRowIndex;\n\n const onKeyDown = useCallback(f => f, []);\n const onClick = useCallback(() => onCellClick({ columnIndex, rowIndex }), [columnIndex, rowIndex, onCellClick]);\n\n const customProps = useMemo(() => ({\n ...getDefaultCustomProps({\n question,\n submission,\n userTimeZone,\n formProducts\n }),\n isFormOwner,\n containerClasses: classNames({\n isSelected: isSelectedCell,\n 'jSheetRow-cell': true\n })\n\n }), [\n question,\n submission,\n userTimeZone,\n formProducts,\n isSelectedCell,\n isFormOwner\n ]);\n\n const getCustomComponent = useCallback(qType => {\n if (qType === 'control_fileupload' || qType === 'control_documentAttachment') {\n return FileUpload;\n } if (qType === 'control_workflowStatus') {\n return WorkflowStatusAnswer;\n }\n return null;\n }, []);\n\n return (\n <div\n className={`jfGrid-cellWrapper cell-${question && question.qid}`}\n style={style}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {question ? (\n <SheetCell\n question={question}\n submission={submission}\n customProps={customProps}\n renderCustomField={getCustomComponent}\n />\n ) : (\n <div>Question was not found</div>\n )}\n </div>\n );\n};\n\nCell.propTypes = {\n data: PropTypes.shape({\n submissionGetter: PropTypes.func,\n questions: PropTypes.shape({}),\n questionsWithOrders: PropTypes.arrayOf(PropTypes.string),\n userTimeZone: PropTypes.string,\n formProducts: PropTypes.arrayOf(PropTypes.shape({})),\n selectedCell: PropTypes.shape({\n columnIndex: PropTypes.number,\n rowIndex: PropTypes.number,\n isColumnLocked: PropTypes.bool\n }).isRequired,\n onCellClick: PropTypes.func,\n isFormOwner: PropTypes.bool\n }),\n columnIndex: PropTypes.number,\n isFreezeColumn: PropTypes.bool,\n rowIndex: PropTypes.number,\n style: PropTypes.shape({})\n};\n\nexport const CellRenderer = memo(Cell, areEqual);\n","import FileUpload from './FileUpload';\n\nexport default FileUpload;\n","import Cell from './Cell';\n\nexport default Cell;\n","/* eslint-disable react/require-default-props */\nimport React, { memo } from 'react';\nimport { areEqual } from 'react-window';\nimport PropTypes from 'prop-types';\nimport { CellRenderer } from './GridCell';\n\nconst FixedCell = props => {\n const {\n columnIndex,\n rowIndex,\n style\n } = props;\n if (columnIndex > 0) {\n return <CellRenderer {...props} isFreezeColumn />;\n }\n return (\n <div style={style} className=\"jfGrid-rowHeaderContainer\">\n <div className=\"jfGrid-rowHeader\">\n <span className=\"jfGrid-rowHeaderCount\">{rowIndex + 1}</span>\n </div>\n </div>\n );\n};\n\nFixedCell.propTypes = {\n columnIndex: PropTypes.number,\n rowIndex: PropTypes.number,\n style: PropTypes.shape({})\n};\n\nFixedCell.defaultProps = {\n columnIndex: 0,\n rowIndex: 0,\n style: {}\n};\n\nexport const FixedCellRenderer = memo(FixedCell, areEqual);\n","export const prepareColumnsForHash = (questions, questionsWithOrders, frozenQuestions, hiddenQuestions, columnWidth) => {\n return Object.keys(questions).reduce((accum, qid) => {\n const _accum = accum;\n _accum[qid] = {\n isLocked: frozenQuestions.indexOf(qid) > -1,\n isVisible: !(hiddenQuestions.indexOf(qid) > -1),\n order: questionsWithOrders.findIndex(q => q === qid),\n width: columnWidth[qid] || 200\n };\n return _accum;\n }, {});\n};\n","import React, {\n memo,\n useCallback,\n useMemo,\n useState\n} from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoize-one';\nimport objectHash from 'object-hash';\nimport { getDefaultHeaderText } from '@jotforminc/search-filter';\nimport { safeJSONParse } from '@jotforminc/utils';\n\nimport TableGrid from '../TableGrid';\nimport GridHeaderItem from './GridHeaderItem';\nimport { CellRenderer } from './GridCell';\nimport { FixedCellRenderer } from './GridFixedCell';\nimport { prepareColumnsForHash } from './sheetUtils';\n\n// Cell data memoizer\nconst createItemData = memoize((\n questions,\n submissionGetter,\n questionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClick,\n isFormOwner\n) => ({\n questions,\n submissionGetter,\n questionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClick,\n isFormOwner\n}));\n\n// Fixed Cell data memoizer\nconst createFixedItemData = memoize((\n questions,\n submissionGetter,\n frozenQuestionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClick\n) => ({\n questions,\n submissionGetter,\n questionsWithOrders: frozenQuestionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClick\n}));\n\n// Sheet Element\nconst SheetElement = ({\n isSelected = false,\n item = {\n frozenQuestions: '[]',\n height: 0,\n hiddenQuestions: '[]',\n questionOrders: '[]',\n width: 0\n },\n itemAccessor = f => f,\n onAnEventTrigger = f => f,\n onItemChange = f => f\n}) => {\n // Use question and submissionGetter from JotForm Sheets\n const {\n formProducts,\n questions,\n rowsCount,\n submissionGetter,\n userTimeZone,\n isFormOwner\n } = itemAccessor(item);\n\n const initialSelectedCell = useMemo(() => ({ columnIndex: null, rowIndex: null }), []);\n const [selectedCell, setSelectedCell] = useState(initialSelectedCell);\n const [resizedColumn, setResizedColumn] = useState({ qid: '', width: 0, index: 0 });\n\n const onCellClick = useCallback((isFreezeColumn, { columnIndex, rowIndex }) => {\n const isColumnLocked = isFreezeColumn === 'freeze';\n setSelectedCell({ columnIndex, rowIndex, isColumnLocked });\n }, []);\n\n // Create ordered question headers\n const { questionOrders: _questionOrders } = item;\n const questionOrders = useMemo(() => {\n const parsedOrders = safeJSONParse(_questionOrders, []);\n const missingQuestions = [];\n\n if (parsedOrders.length === 0) {\n return Object.values(questions)\n .sort((a, b) => parseInt(a.order, 10) - parseInt(b.order, 10))\n .map(question => question.qid);\n }\n\n Object.keys(questions).forEach(qid => {\n if (parsedOrders.indexOf(qid) === -1) {\n missingQuestions.push(qid);\n }\n });\n\n return [...parsedOrders, ...missingQuestions];\n }, [_questionOrders, questions]);\n\n // Freeze columns\n const { frozenQuestions: _frozenQuestions } = item;\n const frozenQuestions = useMemo(() => safeJSONParse(_frozenQuestions, []), [_frozenQuestions]);\n // Hidden columns\n const { hiddenQuestions: _hiddenQuestions } = item;\n const hiddenQuestions = useMemo(() => safeJSONParse(_hiddenQuestions, []), [_hiddenQuestions]);\n\n // Filter hidden & frozen & deleted questions\n const questionsWithOrders = useMemo(() => {\n return questionOrders.filter(\n questionOrder => questions[questionOrder]\n && (\n !(hiddenQuestions.indexOf(questionOrder) > -1\n || frozenQuestions.indexOf(questionOrder) > -1)\n )\n );\n }, [frozenQuestions, hiddenQuestions, questionOrders, questions]);\n\n const frozenQuestionsWithOrders = useMemo(() => ([\n '', // this is a empty string. columnIndex should be right for CellRenderer.\n ...frozenQuestions.filter(question => questions[question] && hiddenQuestions.indexOf(question) === -1)\n ]), [frozenQuestions, hiddenQuestions, questions]);\n\n // Custom Titles for questions\n const { questionCustomTitles: _questionCustomTitles } = item;\n const questionsWithTitles = useMemo(() => {\n const parsedTitles = safeJSONParse(_questionCustomTitles, {});\n const titledQuestions = Object.keys(parsedTitles);\n return Object.keys(questions).reduce((_questions, qID) => {\n let { text = '' } = questions[qID];\n if (titledQuestions.indexOf(qID) > -1) {\n text = parsedTitles[qID];\n } else if (!text) {\n text = getDefaultHeaderText(questions, questions[qID]);\n }\n\n return {\n ..._questions,\n [qID]: {\n ...questions[qID],\n text\n }\n };\n }, {});\n }, [_questionCustomTitles, questions]);\n\n // Create memoized cell data\n const onCellClickForUnfreezeColumns = useMemo(() => onCellClick.bind(null, 'unfreeze'), [onCellClick]);\n const itemData = useMemo(() => createItemData(\n questionsWithTitles,\n submissionGetter,\n questionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClickForUnfreezeColumns,\n isFormOwner\n ), [\n questionsWithTitles,\n submissionGetter,\n questionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClickForUnfreezeColumns,\n isFormOwner\n ]);\n\n // Column Widths and Resize\n const { id, columnWidth: _columnWidth } = item;\n const columnWidth = useMemo(() => safeJSONParse(_columnWidth), [_columnWidth]);\n const onResizeColumnWidth = useCallback((qid, newWidth, columnIndex, save = false) => {\n if (columnWidth[qid] !== newWidth) {\n setResizedColumn({ qid, width: newWidth, index: columnIndex });\n if (save) {\n const config = { ...columnWidth, [qid]: newWidth };\n onItemChange({ id }, { columnWidth: JSON.stringify(config) });\n onAnEventTrigger('gridColumnWidthResize', 'report');\n setResizedColumn({ qid: '', width: 0, index: 0 });\n }\n }\n }, [columnWidth, id, onAnEventTrigger, onItemChange, document]);\n\n const columns = useMemo(() => {\n return questionsWithOrders.map(qid => ({\n ...questionsWithTitles[qid],\n width: resizedColumn.qid === qid ? resizedColumn.width : (columnWidth[qid] || 200)\n }));\n },\n [questionsWithOrders, questionsWithTitles, columnWidth, resizedColumn]);\n\n const fixedColumns = useMemo(() => {\n const frozenColumns = frozenQuestions\n .filter(freezeQuestion => questionsWithTitles[freezeQuestion] && hiddenQuestions.indexOf(freezeQuestion) === -1)\n .map(qid => ({\n ...questionsWithTitles[qid],\n width: resizedColumn.qid === qid ? resizedColumn.width : (columnWidth[qid] || 200)\n }));\n\n return [{ width: 42, text: '' }, ...frozenColumns];\n }, [frozenQuestions, hiddenQuestions, questionsWithTitles, columnWidth, resizedColumn]);\n\n // Create memoized fixed cell data\n const onCellClickForFreezeColumns = useMemo(() => onCellClick.bind(null, 'freeze'), [onCellClick]);\n const fixedItemData = useMemo(() => createFixedItemData(\n questionsWithTitles,\n submissionGetter,\n frozenQuestionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClickForFreezeColumns\n ), [\n questionsWithTitles,\n submissionGetter,\n frozenQuestionsWithOrders,\n userTimeZone,\n formProducts,\n selectedCell,\n onCellClickForFreezeColumns\n ]);\n\n const columnHash = useMemo(() => {\n const hashFunc = memoize(prepareColumnsForHash);\n return objectHash(hashFunc(\n questionsWithTitles,\n questionsWithOrders,\n frozenQuestions,\n hiddenQuestions,\n columnWidth\n ));\n }, [\n questionsWithTitles,\n questionsWithOrders,\n frozenQuestions,\n hiddenQuestions,\n columnWidth\n ]);\n\n // Render\n return (\n <div className=\"jfGrid\">\n <TableGrid\n CellRenderer={CellRenderer}\n columns={columns}\n fixedColumns={fixedColumns}\n fixedItemData={fixedItemData}\n FixedCellRenderer={FixedCellRenderer}\n gridHeight={item.height}\n gridWidth={item.width}\n HeaderItemRenderer={GridHeaderItem}\n itemData={itemData}\n rowCount={rowsCount}\n columnHash={columnHash}\n onResizeColumnWidth={onResizeColumnWidth}\n isSelected={isSelected}\n resizedColumn={resizedColumn}\n frozenQuestions={frozenQuestions}\n />\n </div>\n );\n};\n\nSheetElement.propTypes = {\n isSelected: PropTypes.bool,\n item: PropTypes.shape({\n columnWidth: PropTypes.string,\n frozenQuestions: PropTypes.string,\n height: PropTypes.number,\n hiddenQuestions: PropTypes.string,\n id: PropTypes.string,\n questionCustomTitles: PropTypes.string,\n questionOrders: PropTypes.string,\n width: PropTypes.number\n }),\n itemAccessor: PropTypes.func,\n onAnEventTrigger: PropTypes.func,\n onItemChange: PropTypes.func\n};\n\nexport default memo(SheetElement);\n","import TableGrid from './TableGrid';\n\nexport default TableGrid;\n","export const ITEM_TYPE = 'sheet';\n","import Sheet from './Sheet';\nimport { ITEM_TYPE } from './sheetConstants';\nimport { details } from './sheetDetails';\n\nexport default {\n Component: Sheet,\n details,\n itemType: ITEM_TYPE\n};\n","import { ITEM_TYPE } from './sheetConstants';\n\nexport const details = {\n frozenQuestions: JSON.stringify([]),\n height: 400,\n hiddenQuestions: JSON.stringify([]),\n itemType: ITEM_TYPE,\n questionOrders: JSON.stringify([]),\n questionCustomTitles: JSON.stringify({}),\n width: 400\n};\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactSVG } from 'react-svg';\n\nconst ITEM_TYPE = 'icon';\nconst iconRegex = /(jfc_icon_(.*?)-.*)/;\n\nconst settings = [\n {\n key: 'iconType',\n label: 'Font Family',\n section: 'TYPE',\n type: 'iconSelectBox'\n },\n {\n key: 'iconFillColor',\n label: 'Icon Color',\n section: 'STYLE',\n type: 'colorPicker'\n },\n {\n key: 'opacity',\n label: 'Opacity',\n range: [0, 100],\n section: 'STYLE',\n type: 'slider'\n },\n {\n key: 'sizeSettings',\n label: 'Size',\n section: 'STYLE',\n type: 'sizeSettings',\n value: (_, { height, width }) => `${width}x${height}`\n }\n];\n\nconst IconElement = ({\n item: {\n iconCategory,\n iconFillColor,\n iconType,\n opacity\n } = {}\n}) => {\n const { location: { host, protocol } } = window;\n const svgTypeMatch = iconType.match(iconRegex);\n if (!svgTypeMatch || (svgTypeMatch && !svgTypeMatch[2])) {\n // eslint-disable-next-line no-console\n console.error(`Cannot find SVG! type: ${iconType}, category: ${iconCategory}`);\n return null;\n }\n\n const svgType = svgTypeMatch[2];\n\n return (\n <ReactSVG\n src={`${protocol}//${host}/cardforms/assets/icons/icon-sets-v2/${svgType}/${iconCategory}/${iconType}.svg`}\n afterInjection={(error, svg) => {\n if (error) return;\n const _svg = svg;\n _svg.style.opacity = opacity;\n _svg.style.fill = iconFillColor;\n }}\n beforeInjection={svg => {\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', '100%');\n }}\n fallback={() => <span>Error!</span>}\n renumerateIRIElements={false}\n wrapper=\"span\"\n className=\"svg-wrapper\"\n />\n );\n};\n\nIconElement.propTypes = {\n item: PropTypes.shape({\n height: PropTypes.number,\n iconCategory: PropTypes.string,\n iconFillColor: PropTypes.string,\n iconType: PropTypes.string,\n opacity: PropTypes.number,\n width: PropTypes.number\n })\n};\n\nconst details = {\n height: 200,\n iconCategory: 'Smileys',\n iconFillColor: '#000000',\n iconType: 'jfc_icon_line-happy',\n itemType: ITEM_TYPE,\n opacity: 1,\n width: 200\n};\n\nexport default {\n Component: memo(IconElement),\n details,\n itemType: ITEM_TYPE,\n settings\n};\n","export const isDevelopment = window.location.href.indexOf('jotform.pro') > -1;\nexport const baseName = window.location.href.indexOf('presentations') > -1\n ? 'presentations'\n : 'report';\n","import {\n StaticSheet,\n StaticChart,\n ReportHeader as Header,\n ReportIcon as Icon,\n commonChartConstants,\n} from '@jotforminc/report-components';\nimport {\n StaticRichText,\n Image,\n Shapes,\n} from '@jotforminc/dnd-builder';\nimport type { Matrix, Question } from '@jotforminc/types';\nimport { isDevelopment } from '../constants/app';\nimport type { Page, PageItem } from '../types';\n\nexport const acceptedItems = {\n [StaticRichText.itemType]: StaticRichText,\n [Header.itemType]: Header,\n [Image.itemType]: Image,\n [StaticChart.itemType]: StaticChart,\n [Shapes.itemType]: Shapes,\n [StaticSheet.itemType]: StaticSheet,\n [Icon.itemType]: Icon,\n};\n\nexport const generatePages = (pages: Record<string, Page>, items: PageItem[]):\n(Omit<Page, 'items'> & { items: PageItem[] })[] => {\n const newPages = Object.values(pages).reduce((accum, page) => {\n if (page.id && page.order) {\n // TODO :: next line will cause mutation if we remove JSON class functions.\n const newPage = JSON.parse(JSON.stringify(page));\n const pageItems : string[] = page.items\n && page.items.length > 3 ? JSON.parse(page.items) : [];\n newPage.items = pageItems.map(itemID => {\n const foundItem = items.find(item => item.id === itemID);\n return foundItem || null;\n }).filter(f => f);\n accum.push(newPage);\n }\n return accum;\n }, [] as (Omit<Page, 'items'> & { items: PageItem[] })[]);\n newPages.sort((a, b) => parseFloat((a.order).toString()) - parseFloat((b.order).toString()));\n return newPages;\n};\n\nconst isEmojiSlider = (inputType: string, mrows: string): boolean => {\n return inputType === 'Emoji Slider'\n && mrows.split('|')[0] === ''\n && mrows.split('|').length === 1;\n};\n\nconst isRowlessMatrix = (mrows: string): boolean => {\n return mrows.split('|')[0] === '' && mrows.split('|').length === 1;\n};\n\nexport const getTrueQuestionType = (question: Question): string => {\n const initType = question.type;\n if (initType === 'control_matrix') {\n const matrixQuestion = question as Matrix;\n if (isEmojiSlider(matrixQuestion.inputType as string, matrixQuestion.mrows as string)) {\n return 'emojiSlider';\n }\n if (isRowlessMatrix(matrixQuestion.mrows as string)) {\n return 'rowlessMatrix';\n }\n }\n return initType;\n};\n\nexport const logActivity = (action: string, target: string): void => {\n if (!isDevelopment && window.presentationsLogger) {\n window.presentationsLogger.tick({\n action: action,\n actor: 'presentationVisitor',\n target: target,\n });\n }\n};\n\nexport const getQuestionsToUse = (questions: Question[]): any => {\n const PAYMENT_QUESTION_ID = '10000000';\n const PAYMENT_QUESTION_TYPE = 'control_paymentchart';\n const PAYMENT_QUESTION_NAME = 'Payment Chart';\n const paymentField = {\n qid: PAYMENT_QUESTION_ID,\n text: PAYMENT_QUESTION_NAME,\n type: PAYMENT_QUESTION_TYPE,\n };\n\n const hasPaymentField = questions.some(q => (\n commonChartConstants.paymentFields.indexOf(q.type) > -1\n && q.type !== 'control_paymentmethods'\n ));\n\n if (hasPaymentField) {\n return [...questions, paymentField];\n }\n\n return questions;\n};\n","import Header from './Header';\n\nexport default Header;\n","import Icon from './Icon';\n\nexport default Icon;\n","export const baseAPIUrl = '/API';\nexport const batchCount = 100;\n","// submission fetch actions\nexport const FETCH_SUBMISSIONS_REQUEST = 'FETCH_SUBMISSIONS_REQUEST';\nexport const FETCH_SUBMISSIONS_SUCCESS = 'FETCH_SUBMISSIONS_SUCCESS';\nexport const FETCH_SUBMISSIONS_FAILURE = 'FETCH_SUBMISSIONS_FAILURE';\n\n// embed message actions\nexport const PRESENTATION_FRAME_IS_READY = 'JFREPORT:PRESENTATION_FRAME_IS_READY';\nexport const SET_FRAME_LAYOUT = 'JFREPORT:SET_FRAME_LAYOUT';\nexport const CLOSE_MESSAGE_CHANNEL = 'JFREPORT:CLOSE_MESSAGE_CHANNEL';\n","import { commonChartConstants } from '@jotforminc/report-components';\nimport type { Form, Question, Submission } from '@jotforminc/types';\nimport type { ChartData, ReportSettings } from '../types';\nimport { getTrueQuestionType } from './report';\n\ntype ItemAccessor = {\n chartData: ChartData,\n formQuestions: Record<string, Question>,\n chartQuestions: Question[],\n filters: Record<string, string> | [],\n isFormOwner: boolean,\n userTimeZone: string,\n form: Form,\n settings: ReportSettings,\n submissionGetter: (index: number) => Submission,\n submissions: Submission[],\n}\n\nconst getItemAccessor = ({\n chartData,\n chartQuestions,\n filters,\n form,\n formQuestions,\n isFormOwner,\n settings,\n submissionGetter,\n submissions,\n userTimeZone,\n}: ItemAccessor) => ({ itemType, qid }: { itemType: string, qid: string }): any => {\n if (itemType === 'chart') {\n if (!chartQuestions.length) {\n return {\n question: {\n type: '',\n },\n };\n }\n\n const question = chartQuestions.find(q => {\n if (!Number.isNaN(parseInt(qid, 10))) {\n return parseInt(q.qid, 10) === parseInt(qid, 10);\n }\n return q.qid === qid;\n });\n\n if (!question) {\n return {\n chartData: [],\n hideSettings: true,\n question: {},\n };\n }\n\n const questionType = getTrueQuestionType(question);\n let questionToUse: any = question;\n if (questionToUse.toJS) {\n questionToUse = questionToUse.set('type', questionType).toJS();\n } else {\n question.type = questionType;\n }\n\n const chartDataOptions = Object.keys(chartData).reduce((acc, key) => {\n if (key === `${qid}` || key.indexOf(`${qid}_`) > -1 || key.indexOf(`${qid}^`) > -1) {\n acc[key] = chartData[key];\n }\n return acc;\n }, {} as ChartData);\n\n const _chartData = commonChartConstants.paymentFields.indexOf(questionToUse.type) > -1 ? {\n ...chartData[qid],\n lineData: chartData[10000001],\n } : chartData[qid];\n\n return {\n chartData: _chartData,\n chartDataOptions,\n filters,\n form,\n question: questionToUse,\n reportColorPalette: settings.reportColorPalette,\n reportCustomColorPalettes: settings.reportCustomColorPalettes,\n reportTooltip: settings.reportTooltip,\n };\n }\n if (itemType === 'sheet') {\n return {\n formProducts: (form as any).products || [],\n isFormOwner,\n questions: formQuestions,\n rowsCount: submissions.length,\n submissionGetter,\n userTimeZone,\n };\n }\n if (itemType === 'image' && window.branding21) {\n return {\n defaultURL: 'https://cdn.jotfor.ms/assets/img/logo2021/dnd-builder-default-logo.svg',\n };\n }\n};\n\nexport default getItemAccessor;\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport axios from 'axios';\nimport type { Form, Question, Submission } from '@jotforminc/types';\nimport { baseAPIUrl, batchCount } from '../constants/api';\nimport {\n CLOSE_MESSAGE_CHANNEL,\n PRESENTATION_FRAME_IS_READY,\n SET_FRAME_LAYOUT,\n} from '../constants/actions';\nimport getItemAccessor from './itemAccessor';\nimport { logActivity } from './report';\nimport type {\n ChartData, LinkSettings, Page, ReportSettings, ResultSet,\n} from '../types';\n\nconst pdfDownloadURL = `${baseAPIUrl}/presentation/${window._presentationID}/download/pdf`;\n\nexport const useDynamicPresentationBar = (linkSettings: LinkSettings): object[] => {\n const [inProgress, setDownloadInProgress] = useState(false);\n\n const download = useCallback(async () => {\n logActivity('downloadPresentation', 'presentationBar');\n setDownloadInProgress(true);\n\n try {\n const {\n data: blob,\n headers: { 'content-type': contentType },\n status,\n } = await axios.get(pdfDownloadURL, { responseType: 'blob' });\n\n if (\n status !== 200\n || contentType !== 'application/pdf'\n || blob instanceof Blob === false\n ) {\n throw Error;\n }\n\n const title = window._presentation ? (window._presentation.title || 'Report') : 'Report';\n\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(blob, `${title}.pdf`);\n } else {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n link.download = `${title}.pdf`;\n document.body.append(link);\n link.click();\n link.remove();\n window.addEventListener('focus', () => URL.revokeObjectURL(link.href), { once: true });\n }\n } catch (error) {\n console.error('Couldn\\'t download pdf', error);\n }\n\n setDownloadInProgress(false);\n }, []);\n\n const presentationBarActions = useMemo(() => ([\n {\n isHidden: linkSettings.showPrintOption === 'No',\n key: 'print',\n },\n {\n className: 'isOutline isSuccess',\n handler: download,\n icon: inProgress ? 'loadingCircle' : 'download',\n isHidden: linkSettings.showDownloadOption === 'No',\n key: 'download',\n },\n {\n key: 'present',\n },\n ]), [linkSettings, download, inProgress]);\n\n return presentationBarActions;\n};\n\nexport const useEmbedMessageListener = (\n embedMode: string,\n settings: ReportSettings,\n pages: Page[],\n): boolean => {\n const [isEmbedReady, setIsEmbedReady] = useState(false);\n\n const handlePostMessage = useCallback(({ data /* { type, payload } */ }) => {\n if (!data.type || data.type.split(':')[0] !== 'JFREPORT') {\n return;\n }\n\n switch (data.type) {\n case PRESENTATION_FRAME_IS_READY: {\n /**\n * If you are planning to add another action\n * be in mind that right now we are removing\n * the message listener since we don't have\n * another action to listen.\n */\n window.removeEventListener('message', handlePostMessage);\n //\n setIsEmbedReady(true);\n //\n window.parent.postMessage({ type: CLOSE_MESSAGE_CHANNEL }, '*');\n break;\n }\n default: //\n }\n }, []);\n\n useEffect(() => {\n if (embedMode && embedMode === 'js') {\n try {\n /**\n * The following post messaging is between here\n * and the report embed script in\n * jotform/common/src/reports/embed.js\n * */\n\n // Send layout props to calculate proper iframe w/h\n window.parent.postMessage({\n payload: {\n ...settings,\n showProgressBar: pages.length > 2,\n },\n type: SET_FRAME_LAYOUT,\n }, '*');\n\n // Listen for status change\n window.addEventListener('message', handlePostMessage);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error in post msg: ', e);\n }\n }\n\n return () => {\n window.removeEventListener('message', handlePostMessage);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return isEmbedReady;\n};\n\nexport type ItemAccessorProps = {\n chartData: ChartData,\n chartQuestions: Question[],\n filters: any,\n form: Form,\n formQuestions: Record<string, Question>,\n isFormOwner: boolean,\n settings: ReportSettings,\n userTimeZone: string,\n}\n\nexport const useItemAccessor = ({\n fetchSubmissions,\n itemAccessorProps,\n resultSet,\n submissions,\n}: {\n fetchSubmissions: (batchCount: number) => void,\n resultSet: ResultSet,\n itemAccessorProps: ItemAccessorProps,\n submissions: Submission[],\n}): any => {\n const submissionGetter = useMemo(() => {\n let resultSetWillBeFetched: ResultSet;\n\n return (index: number) => {\n const rowsCount = submissions.length;\n if (index === (rowsCount - (batchCount / 2)) || index === (rowsCount - 1)) {\n if (\n resultSet\n && resultSetWillBeFetched !== resultSet\n && resultSet.count > resultSet.limit + resultSet.offset\n ) {\n resultSetWillBeFetched = resultSet;\n fetchSubmissions(batchCount);\n }\n }\n return submissions[index];\n };\n }, [resultSet, submissions, fetchSubmissions]);\n\n const itemAccessor = useMemo(() => getItemAccessor({\n ...itemAccessorProps,\n submissionGetter,\n submissions,\n }), [itemAccessorProps, submissionGetter, submissions]);\n\n return itemAccessor;\n};\n\nexport const useInterval = (callback: () => void, delay: number): void => {\n const savedCallback = useRef(callback);\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n return undefined;\n }, [delay]);\n};\n","import React, { memo } from 'react';\nimport type { ReactNode } from 'react';\nimport {\n Presentation,\n PrintMode,\n} from '@jotforminc/dnd-builder';\nimport {\n acceptedItems,\n logActivity,\n} from '../utils/report';\nimport {\n useDynamicPresentationBar,\n useEmbedMessageListener,\n} from '../utils/hooks';\nimport type {\n LinkSettings, Page, ReportSettings, ResultSet,\n} from '../types';\n\nexport interface IPresentationRenderer {\n additionalPageItems: ReactNode,\n embedMode: string,\n itemAccessor: ({ itemType, qid }: { itemType: string, qid: string }) => any,\n linkSettings: LinkSettings,\n pages: Page[],\n printMode: boolean,\n resultSet: ResultSet,\n settings: ReportSettings,\n submissionsLength: number,\n}\n\nconst PresentationRenderer = ({\n additionalPageItems = [],\n embedMode,\n itemAccessor,\n linkSettings = {\n showDownloadOption: 'Yes',\n showPrintOption: 'No',\n },\n pages = [],\n printMode = false,\n resultSet,\n settings,\n submissionsLength = 0,\n}: IPresentationRenderer): JSX.Element | null => {\n const isEmbedReady = useEmbedMessageListener(embedMode, settings, pages);\n const presentationBarActions = useDynamicPresentationBar(linkSettings);\n const useFixedPresentationBar = !!(window.location !== window.parent.location || embedMode);\n\n if (printMode) {\n /**\n * jfFields class is needed for Grid element. So this shouldn't be here in\n * the first place. We need to find a way to keep this in common Sheet component\n */\n const wrapperClasses = ['jfFields'];\n return (\n <div className={wrapperClasses.join(' ')}>\n <PrintMode\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n itemAccessor={itemAccessor}\n pages={pages}\n resultSet={resultSet}\n settings={settings}\n submissionsLength={submissionsLength}\n />\n </div>\n );\n }\n\n if (embedMode && embedMode === 'js' && !isEmbedReady) {\n return null;\n }\n\n return (\n <Presentation\n acceptedItems={acceptedItems}\n additionalPageItems={additionalPageItems}\n itemAccessor={itemAccessor}\n onTickWatchman={logActivity}\n pages={pages}\n presentationBarActions={presentationBarActions}\n resultSet={resultSet}\n settings={settings}\n submissionsLength={submissionsLength}\n useFixedPresentationBar={useFixedPresentationBar}\n />\n );\n};\n\nexport default memo(PresentationRenderer);\n","import axios from 'axios';\nimport type { Submission } from '@jotforminc/types';\nimport type { AxiosResponse } from 'axios';\nimport { baseAPIUrl } from '../constants/api';\n\nexport interface APIResponse<T = object> extends Omit<AxiosResponse<T>, 'data'> {\n data: {\n content: T,\n duration: string,\n message: string,\n responseCode: number,\n resultSet?: object,\n },\n}\n\nconst fetchSubmissions = (id: string, offset: number, limit: number)\n: Promise<APIResponse<Submission[]>> => {\n return axios.get(`${baseAPIUrl}/presentation/${id}/table?filter=%7B\"status:ne\":\"DELETED\"%7D&offset=${offset}&limit=${limit}&next=1&addWorkflowStatus=1&addAutomationRunHistory=1`); // eslint-disable-line\n};\n\nconst getHipaaStatus = (): Promise<APIResponse<string>> => {\n const id = window._presentation.formID;\n return axios.get(`/API/form/${id}/hipaaTempTableStatus`);\n};\n\nconst api = {\n fetchSubmissions,\n getHipaaStatus,\n};\n\nexport default api;\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\nimport { useInterval } from '../utils/hooks';\nimport api from '../api';\n\nconst LoadingScreen = (): JSX.Element => {\n // Long polling\n useInterval(() => {\n api.getHipaaStatus().then(result => {\n const status = result?.data?.content;\n if (status === 'COMPLETED') {\n window.location.reload();\n }\n });\n }, 2000);\n\n return (\n <div className=\"loadingOverlay\">\n {t('Decrypting HIPAA answers...')}\n </div>\n );\n};\n\nexport default LoadingScreen;\n","import React, { useMemo } from 'react';\nimport { connect } from 'react-redux';\nimport { BrandingFooter } from '@jotforminc/branding-footer';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport type { Submission } from '@jotforminc/types';\nimport PresentationRenderer from '../components/PresentationRenderer';\nimport type { IPresentationRenderer } from '../components/PresentationRenderer';\nimport { fetchSubmissions } from '../actions';\nimport {\n getQuestionsToUse,\n generatePages,\n} from '../utils/report';\nimport { useItemAccessor } from '../utils/hooks';\nimport type { ItemAccessorProps } from '../utils/hooks';\nimport LoadingScreen from '../components/LoadingScreen';\nimport type { RootState } from '../store';\nimport type { ResultSet } from '../types';\n\ninterface IPresentationContainer {\n fetchSubmissions: (batchCount: number) => void,\n isReady: boolean,\n itemAccessorProps: ItemAccessorProps,\n resultSet: ResultSet,\n showBranding: '0' | '1',\n submissions: Submission[],\n}\n\nconst PresentationContainer = ({\n fetchSubmissions: _fetchSubmissions,\n isReady,\n itemAccessorProps,\n resultSet,\n showBranding,\n submissions,\n ...componentProps\n}: IPresentationContainer) => {\n const itemAccessor = useItemAccessor({\n fetchSubmissions: _fetchSubmissions,\n itemAccessorProps,\n resultSet,\n submissions,\n });\n\n const openedInApp = !!window._openedInApp;\n\n const additionalPageItems = useMemo(() => {\n switch (true) {\n case isEnterprise():\n case openedInApp:\n case showBranding === '0': {\n return [];\n }\n case window.branding21: {\n return [\n <BrandingFooter\n key=\"footer_branding\"\n passiveUtmScheme={{\n campaing: 'powered_by_jotform_reports',\n content: 'jotform_logo',\n medium: 'banner',\n source: 'presentationfooter',\n term: window.location.href,\n }}\n product=\"reports\"\n showBranding={showBranding === '1'}\n />,\n ];\n }\n default: {\n return [];\n }\n }\n }, [showBranding, openedInApp]);\n\n return getUrlParameter('forceLoading') === '1' || !isReady ? (\n <LoadingScreen />\n ) : (\n <PresentationRenderer\n {...componentProps as Omit<\n IPresentationRenderer, 'additionalPageItems' | 'itemAccessor' | 'resultSet'\n >}\n additionalPageItems={additionalPageItems}\n itemAccessor={itemAccessor}\n resultSet={resultSet}\n />\n );\n};\n\nconst mapStateToProps = ({\n app: {\n embedMode,\n isFormOwner = false,\n isReady = false,\n printMode,\n resultSet,\n },\n presentation: {\n chartData,\n filters,\n form,\n questions: _chartQuestions = [],\n reportItems = [],\n reportPages = {},\n settings,\n showJotFormBrandingOnReport: showBranding = '1',\n userTimeZone,\n },\n questions,\n submissions = [],\n}: RootState) => {\n const linkSettings = {\n showDownloadOption: 'Yes',\n showPrintOption: 'No',\n ...window._presentation.linkSettings,\n };\n const chartQuestions = getQuestionsToUse(_chartQuestions);\n const itemAccessorProps = {\n chartData,\n chartQuestions,\n filters,\n form,\n formQuestions: questions,\n isFormOwner,\n settings,\n userTimeZone,\n };\n\n // TODO: we have to fix it later ~ generatePages function is mutate presentation state\n const pages = generatePages(reportPages, reportItems);\n\n const submissionsLength = submissions.length;\n\n return {\n embedMode,\n isReady,\n itemAccessorProps,\n linkSettings,\n pages,\n printMode,\n resultSet,\n settings,\n showBranding,\n submissions,\n submissionsLength,\n };\n};\n\nconst mapDispatchToProps = {\n fetchSubmissions,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PresentationContainer);\n","import { FETCH_SUBMISSIONS_REQUEST } from '../constants/actions';\nimport type { ActionType } from '../types';\n\nexport const fetchSubmissions = (batchCount: number): ActionType => {\n return {\n payload: {\n batchCount,\n },\n type: FETCH_SUBMISSIONS_REQUEST,\n };\n};\n","import type { Submission } from '@jotforminc/types';\nimport { FETCH_SUBMISSIONS_SUCCESS } from '../constants/actions';\nimport type { ActionType } from '../types';\n\ntype SubmissionState = Submission[]\n\nconst submissions = window._tableData ? window._tableData.submissions : [];\nconst INITIAL_STATE = [\n ...submissions,\n];\n\nexport default (state: SubmissionState = INITIAL_STATE, action: ActionType): SubmissionState => {\n switch (action.type) {\n case FETCH_SUBMISSIONS_SUCCESS: {\n return state.concat(action.payload.submissions);\n }\n default: {\n return state;\n }\n }\n};\n","import dompurify from 'dompurify';\nimport type { ChartData } from '../types';\n\nconst sanitizeChartData = (content: ChartData): ChartData => {\n const newContent: ChartData = {};\n const questionIds = Object.keys(content);\n\n questionIds.forEach(qid => {\n newContent[qid] = {\n empty: content[qid].empty,\n total: content[qid].total,\n };\n\n Object.keys(content[qid]).forEach(key => {\n if (key.length > 5 && key.substr(0, 5) === 'total') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n newContent[qid][key] = content[qid][key];\n }\n });\n\n const { data } = content[qid];\n\n if (data) {\n newContent[qid].totalChoice = content[qid].totalChoice;\n newContent[qid].data = [];\n\n const { data: sanitizedData = [] } = newContent[qid];\n\n data.forEach((dataRow, index) => {\n const dataKeys = Object.keys(dataRow);\n dataKeys.forEach(dataKey => {\n const sanitizedDataKey = dompurify.sanitize(dataKey);\n if (!sanitizedData[index]) {\n sanitizedData[index] = {};\n }\n let dataValue = dataRow[dataKey];\n if (typeof dataValue === 'string') {\n dataValue = dompurify.sanitize(dataValue);\n }\n sanitizedData[index][sanitizedDataKey] = dataValue;\n });\n });\n }\n });\n\n return newContent;\n};\n\nexport default sanitizeChartData;\n","import type { Question } from '@jotforminc/types';\nimport type { ActionType } from '../types';\n\ntype QuestionState = Record<string, Question>\n\nconst formQuestions = window._tableData ? window._tableData.formQuestions : {};\n\nconst INITIAL_STATE = {\n // created_at: {\n // allowTime: 'Yes',\n // dateFormat: 'MMM D, YYYY',\n // dateSeparator: '-',\n // liteMode: 'Yes',\n // name: 'Submission Date',\n // order: '0',\n // qid: 'created_at',\n // step: '10',\n // sublabels: {\n // day: 'Day',\n // hour: 'Hour',\n // last: 'Last',\n // litemode: 'Date',\n // minutes: 'Minutes',\n // month: 'Month',\n // year: 'Year',\n // },\n // text: 'Submission Date',\n // timeFormat: '24 Hour',\n // type: 'control_submissionDate',\n // },\n ...formQuestions,\n // Please check Presentation.php inside this repo\n ...window._presentation.workflowQuestions,\n // id: {\n // name: 'Submission ID',\n // order: '10001',\n // qid: 'id',\n // text: 'Submission ID',\n // type: 'control_submissionID',\n // },\n // ip: {\n // name: 'Submission IP',\n // order: '10000',\n // qid: 'ip',\n // text: 'Submission IP',\n // type: 'control_submissionIP',\n // },\n};\n\nexport default (state: QuestionState = INITIAL_STATE, action: ActionType): QuestionState => {\n switch (action.type) {\n default: {\n return state;\n }\n }\n};\n","import { combineReducers } from 'redux';\n\nimport app from './appReducer';\nimport submissions from './submissionsReducer';\nimport presentation from './presentationReducer';\nimport questions from './questionsReducer';\n\nconst reducers = {\n app,\n presentation,\n questions,\n submissions,\n};\n\nexport default combineReducers(reducers);\n","import {\n call,\n takeLatest,\n select,\n put,\n} from 'redux-saga/effects';\nimport {\n FETCH_SUBMISSIONS_REQUEST,\n FETCH_SUBMISSIONS_SUCCESS,\n FETCH_SUBMISSIONS_FAILURE,\n} from '../constants/actions';\nimport api from '../api';\nimport { batchCount } from '../constants/api';\nimport type { RootState } from '../store';\n\nexport function* fetchSubmissions(): Generator<any, any, any> {\n const state: RootState = yield select();\n try {\n const { data } = yield call(\n api.fetchSubmissions,\n window._presentationID,\n state.submissions.length,\n batchCount,\n );\n\n yield put({\n payload: {\n resultSet: data.resultSet,\n submissions: data.content,\n },\n type: FETCH_SUBMISSIONS_SUCCESS,\n });\n } catch (err) {\n yield put({ error: (err as Error).message, type: FETCH_SUBMISSIONS_FAILURE });\n }\n}\n\nconst submissionsSagas = [\n takeLatest(FETCH_SUBMISSIONS_REQUEST, fetchSubmissions),\n];\n\nexport default submissionsSagas;\n","import {\n createStore,\n applyMiddleware,\n} from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport reducer from './reducers';\nimport rootSaga from './sagas';\nimport './styles/ReportViewer.scss';\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst store = createStore(\n reducer,\n applyMiddleware(sagaMiddleware),\n);\n\n// eslint-disable-next-line\nsagaMiddleware.run(rootSaga);\n\nexport type RootState = ReturnType<typeof store.getState>\n\nexport default store;\n","import type { AllEffect, ForkEffect } from 'redux-saga/effects';\nimport { all } from 'redux-saga/effects';\nimport submissions from './submissionsSaga';\n\nexport default function* rootSaga(): Generator<AllEffect<ForkEffect<never>>> {\n yield all([\n ...submissions,\n ]);\n}\n","import { createRoot } from 'react-dom/client';\nimport { Provider } from 'react-redux';\nimport PresentationContainer from './containers/PresentationContainer';\nimport store from './store';\nimport './styles/ReportViewer.scss';\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(\n <Provider store={store}>\n <PresentationContainer />\n </Provider>,\n);\n","import { LATEST_ACTIVE_SERVERS_LIST, RANDOM_ACTIVE_200_SERVERS_LIST, RANDOM_ACTIVE_300_SERVERS_LIST } from './constants/latestActiveServers';\n\nconst isActive = (testEnvList = [], parameter) => {\n const { host, search } = window.location;\n return host.indexOf('jotform.biz') > -1 || host.indexOf('jotform.pro') > -1 || testEnvList.indexOf(host) > -1 || (parameter && search.indexOf(parameter) > -1);\n};\n\nexport const isEnterprise = () => {\n if (!window) {\n return false;\n }\n\n if (window.JOTFORM_ENV === 'ENTERPRISE') {\n return true;\n }\n\n if (window.JotForm && window.JotForm.enterprise) {\n return true;\n }\n\n return false;\n};\n\nexport const isTestAndDevelopmentEnvironment = () => isActive([\n 'eeproduct2.jotform.com',\n 'enterpriseqa.jotform.com',\n 'enterpriseqahipaa.jotform.com',\n 'demo.jotform.com',\n 'acmetest.jotform.com',\n 'uxlabs.jotform.com',\n 'soc2-test1.jotform.com',\n 'mobile-test.jotform.com',\n 'enterpriseqamanual.jotform.com',\n 'marketing.jotform.com',\n 'passgp.jotform.com',\n 'mcrcbiobank.jotform.com',\n 'aat.jotform.com',\n 'sso-multi-test.jotform.com'\n]);\n\nexport const isOneOfTheMostActiveEnterpriseServers = () => {\n return isActive(LATEST_ACTIVE_SERVERS_LIST) || isActive(RANDOM_ACTIVE_200_SERVERS_LIST) || isActive(RANDOM_ACTIVE_300_SERVERS_LIST) || isTestAndDevelopmentEnvironment();\n};\n\nexport const isNew2FAEnabled = () => window.location.search.indexOf('new2FA') > -1;\n\nexport const isNewSMTPFlow = (user = {}) => {\n const { isNewSMTPFlowEnabled = false } = user;\n return window?.user?.isNewSMTPFlowEnabled || isNewSMTPFlowEnabled;\n};\n","import momentTimeZone from 'moment-timezone';\n\nconst SERVER_TIMEZONE = 'America/New_York';\nconst DEFAULT_DATE_FORMAT = 'MMMM D, YYYY HH:mm';\nconst SUBMISSION_DATE_FORMATS = [\n 'M/D/YYYY',\n 'D/M/YYYY',\n 'MMM D, YYYY',\n 'MMMM D, YYYY',\n 'ddd, MMM D, YYYY',\n 'dddd, MMMM D, YYYY',\n 'MMM D, YYYY HH:mm',\n DEFAULT_DATE_FORMAT,\n 'ddd, MMM D, YYYY HH:mm',\n 'dddd, MMMM D, YYYY HH:mm'\n];\n\nconst localeSymbol = Symbol('locale');\nconst timezoneSymbol = Symbol('timezone');\nconst callbackSymbol = Symbol('callback');\n\nclass Moment {\n constructor() {\n this[localeSymbol] = 'en';\n this[timezoneSymbol] = null;\n this[callbackSymbol] = {\n setLocale: {},\n setTimezone: {}\n };\n }\n\n get locale() {\n return this[localeSymbol];\n }\n\n get timezone() {\n return this[timezoneSymbol];\n }\n\n get callback() {\n return this[callbackSymbol];\n }\n\n get formatList() {\n const formatListObject = momentTimeZone.localeData(this.locale)._longDateFormat;\n return formatListObject && Object.keys(formatListObject).length > 0 ? [\n formatListObject.LLLL,\n formatListObject.LLL,\n formatListObject.LL,\n formatListObject.L\n ] : SUBMISSION_DATE_FORMATS;\n }\n\n setLocale(locale = 'en') {\n this[localeSymbol] = locale;\n Object.values(this.callback.setLocale).forEach(callback => callback());\n }\n\n setTimezone(timezone) {\n this[timezoneSymbol] = timezone;\n\n Object.values(this.callback.setTimezone).forEach(callback => callback());\n }\n\n dateToMoment(date, dateFormat) {\n const dateObject = momentTimeZone(date, dateFormat);\n\n const dateObjectWithTimezone = this.timezone\n ? dateObject.clone().tz(this.timezone)\n : dateObject.clone().utcOffset(this.serverTimezoneOffset(date));\n\n return dateObjectWithTimezone.locale(this.locale);\n }\n\n /**\n * Format date with given parameters\n * @param {Date} date\n * @param {Date} dateFormat ex: 'YYYY-MM-DD HH:mm ZZ'\n * @param {Date} intendedFormat ex: 'MMM D, YYYY h:mm A'\n * @returns Formatted date.\n */\n formatDate(date, dateFormat, intendedFormat) {\n return this.dateToMoment(date, dateFormat).format(intendedFormat);\n }\n\n /**\n * Format date with given parameters and timezone\n * @param {Date} date\n * @param {Date} format ex: 'YYYY-MM-DD HH:mm ZZ'\n * @param {Date} intendedFormat ex: 'MMM D, YYYY h:mm A'\n * @returns Formatted date according to timezone.\n */\n formatDateWithTimezone(date, format, intendedFormat) {\n const serverTimezoneOffset = this.serverTimezoneOffset(date);\n const timezoneDate = `${date} ${serverTimezoneOffset}`;\n\n return this.formatDate(timezoneDate, format, intendedFormat);\n }\n\n serverTimezoneOffset(date) {\n return momentTimeZone(date).tz(SERVER_TIMEZONE).format('Z');\n }\n\n addListener(methodName, identifier, callback) {\n this.callback[methodName][identifier] = callback;\n }\n\n removeListener(methodName, identifier) {\n delete this.callback[methodName][identifier];\n }\n\n getTimeZoneOffsetWithDate(date, timeZone) {\n return momentTimeZone.tz(date, timeZone).format('Z');\n }\n\n getDateWithTimezone(date = undefined, timeZone, dateFormat) {\n return momentTimeZone(date).tz(timeZone).format(dateFormat);\n }\n\n convertServerDateToUserTimezone(date, timeZone, dateFormat) {\n return momentTimeZone.tz(date, SERVER_TIMEZONE).tz(timeZone).format(dateFormat);\n }\n\n /**\n * Create a date from a timestamp of a given\n * source timezone converted to a date of the\n * destination timezone.\n *\n * @param {number} timestamp\n * @param {string} srcTimezone\n * @param {string} destTimezone\n * @returns Date with the destination timezone.\n */\n getDateFromTimeStamp(timestamp, srcTimezone, destTimezone) {\n return new Date(\n momentTimeZone.tz(timestamp, srcTimezone)\n .tz(destTimezone)\n .format('YYYY/MM/DD HH:mm:ss')\n );\n }\n\n /**\n * Return the timezone adjusted moment object.\n */\n tz(date, timeZone) {\n return momentTimeZone.tz(date, timeZone);\n }\n\n now() {\n return momentTimeZone();\n }\n\n /**\n * Returns if the given date string is a valid date.in expected format\n * @param {string} date\n * @param {string} dateFormat\n * @returns {boolean} true if the date is valid, false otherwise\n */\n isValid(date, dateFormat) {\n return momentTimeZone(date, dateFormat).isValid();\n }\n}\n\nexport const moment = new Moment();\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useLayoutEffect\n} from 'react';\nimport { moment as Moment, nodeContains } from '@jotforminc/utils';\nimport debounce from 'lodash/debounce';\nimport { v4 as uuid } from 'uuid';\nimport throttle from 'lodash/throttle';\nimport Fuse from 'fuse.js';\nimport { useResize } from './useResize';\n\nexport const useDebounce = (fn, waitTime = 400, options = {}) => {\n const funcRef = useRef(fn);\n if (funcRef.current !== fn) {\n funcRef.current = fn;\n }\n\n return useCallback(debounce(fn, waitTime, options), [funcRef.current]);\n};\n\nconst baseFuseOptions = {};\nconst baseKeys = ['name', 'email'];\nexport const useFuse = (list, searchTerm, keys = baseKeys, fuseOptions = baseFuseOptions) => {\n const fuse = useMemo(() => new Fuse(list, {\n shouldSort: true,\n location: 0,\n threshold: 0.4,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n ...fuseOptions,\n keys\n }), [list, keys, fuseOptions]);\n\n const results = useMemo(() => (!searchTerm\n ? list\n : fuse.search(searchTerm).map(fuseResult => ({\n ...fuseResult.item\n }))\n ), [fuse, searchTerm]);\n return results;\n};\n\nexport const useLongPress = (callback, ms = 500) => {\n const timer = useRef();\n\n const start = useCallback(event => {\n timer.current = setTimeout(() => callback(event), ms);\n }, [ms, callback]);\n\n const cancel = useCallback(() => {\n if (timer.current !== undefined) clearTimeout(timer.current);\n });\n\n useEffect(() => () => {\n if (timer.current !== undefined) clearTimeout(timer.current);\n }, []);\n\n return useMemo(() => ({\n onMouseDown: start,\n onMouseUp: cancel,\n onMouseLeave: cancel,\n onTouchStart: start,\n onTouchEnd: cancel,\n onTouchMove: cancel,\n onTouchCancel: cancel\n }), [start, cancel]);\n};\n\nexport const useSwitch = (value, cases) => useMemo(() => {\n const firstMatchingCase = cases.find(([caseValue]) => caseValue === value);\n if (firstMatchingCase) {\n const [, result] = firstMatchingCase;\n return result;\n }\n}, [value, cases]);\n\nexport const useStateWithAutoReset = (initialState = '', timeoutDuration = 3000) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n if (state !== initialState) {\n const delayedClearStateTimeout = global.setTimeout(() => setState(initialState), timeoutDuration);\n return () => global.clearTimeout(delayedClearStateTimeout);\n }\n }, [state]);\n\n return [state, setState];\n};\n\nexport const useTimeout = (callback, delay) => {\n const callbackRef = useRef(callback);\n const timeoutRef = useRef();\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const set = useCallback(() => {\n timeoutRef.current = setTimeout(() => callbackRef.current(), delay);\n }, [delay]);\n\n const clear = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n }, []);\n\n useEffect(() => {\n set();\n return clear;\n }, [delay, set, clear]);\n\n const reset = useCallback(() => {\n clear();\n set();\n }, [clear, set]);\n\n return { reset, clear };\n};\n\nexport const useDebounceWithTimeout = (callback, delay, dependencies) => {\n const { reset, clear } = useTimeout(callback, delay);\n useEffect(reset, [...dependencies, reset]);\n useEffect(clear, []);\n};\n\nexport const useTimeoutMessage = (initialValue, timeout = 3000) => {\n const timeoutRef = useRef(null);\n const [message, setMessage] = useState(initialValue);\n\n useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return [\n message, data => {\n clearTimeout(timeoutRef.current);\n setMessage(data);\n timeoutRef.current = setTimeout(() => setMessage(false), timeout);\n }\n ];\n};\n\nexport const usePropState = initalValue => {\n const [state, setState] = useState(initalValue);\n useEffect(() => {\n if (initalValue !== state) {\n setState(initalValue);\n }\n }, [initalValue]);\n\n return [state, setState];\n};\n\nconst fetchers = {};\n\nexport const useRequest = (fetcher, name = fetcher.toString()) => {\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState(false);\n const [error, setError] = useState(false);\n\n const load = async (...args) => {\n setLoading(true);\n setError(false);\n\n try {\n const req = fetcher(...args);\n fetchers[name] = req;\n\n const newData = await req;\n\n if (fetchers[name] !== req) return;\n\n setData(newData);\n } catch (e) {\n setError(e);\n }\n\n setLoading(false);\n\n return data;\n };\n\n return {\n error, load, loading, data, setData\n };\n};\nexport const useQuery = (fetcher, query, name) => {\n const request = useRequest(fetcher, name);\n const { load, setData } = request;\n\n const reload = () => load(query);\n\n useEffect(() => {\n setData(false);\n reload();\n }, [JSON.stringify(query)]);\n\n return { ...request, reload };\n};\n\nexport const useInViewport = (elementRef, callback = f => f, threshold = 0.2, callOnce = true, scrollRef = { current: window }) => {\n const isCalledRef = useRef(false);\n\n const isInViewport = elRef => {\n const rect = elRef.current?.getBoundingClientRect();\n const innerHeight = window.innerHeight || document.documentElement.clientHeight;\n const innerWidth = window.innerWidth || document.documentElement.clientWidth;\n const topCalculation = rect.top + (rect.height * threshold);\n const bottomCalculation = rect.bottom + (rect.height * threshold);\n const fromTop = topCalculation <= innerHeight && topCalculation >= 0;\n const fromBottom = bottomCalculation <= innerHeight && bottomCalculation >= 0;\n return (\n rect.left >= 0\n && (fromTop || fromBottom)\n && rect.right <= innerWidth\n );\n };\n\n const handleScroll = () => {\n if (!elementRef.current) return;\n const inViewport = isInViewport(elementRef);\n const shouldCall = callOnce ? (inViewport && !isCalledRef.current) : inViewport;\n if (shouldCall) {\n callback();\n isCalledRef.current = true;\n }\n };\n\n useEffect(() => {\n handleScroll();\n const throttledHandleScroll = throttle(handleScroll, 400);\n scrollRef.current?.addEventListener('scroll', throttledHandleScroll);\n return () => {\n scrollRef.current?.removeEventListener('scroll', throttledHandleScroll);\n };\n }, [elementRef, scrollRef]);\n};\n\n// from usehooks.com\nexport const useHover = (ms = 0) => {\n const [value, setValue] = useState(false);\n\n const ref = useRef(null);\n let timeout;\n const handleMouseOver = () => {\n if (ms > 0) {\n timeout = setTimeout(() => setValue(true), ms);\n } else {\n setValue(true);\n }\n };\n const handleMouseOut = () => {\n if (timeout) {\n timeout = clearTimeout(timeout);\n }\n setValue(false);\n };\n\n useEffect(\n () => {\n const node = ref.current;\n if (node) {\n node.addEventListener('mouseover', handleMouseOver);\n node.addEventListener('mouseout', handleMouseOut);\n\n return () => {\n if (timeout) {\n timeout = clearTimeout(timeout);\n }\n node.removeEventListener('mouseover', handleMouseOver);\n node.removeEventListener('mouseout', handleMouseOut);\n };\n }\n },\n [ref.current] // Recall only if ref changes\n );\n\n return [ref, value];\n};\n\nexport const useMomentDate = (date, format) => {\n const [momentDate, setMomentDate] = useState(Moment.dateToMoment(date, format));\n const renewMomentDate = () => {\n setMomentDate(Moment.dateToMoment(date, format));\n };\n\n useEffect(() => {\n const listenerKey = `renewMomentDate_${uuid()}`;\n Moment.addListener('setLocale', listenerKey, renewMomentDate);\n return () => Moment.removeListener('setLocale', listenerKey);\n }, []);\n\n useEffect(() => {\n renewMomentDate();\n }, [date, format]);\n\n return [momentDate, setMomentDate];\n};\n\nexport const useIsMobile = (mobileBreakdownWidth = 580) => {\n const { width } = useResize();\n return width <= mobileBreakdownWidth;\n};\n\nexport const useMoveOutsideState = (initialState, refs = []) => {\n const [isVisible, setVisibility] = useState(initialState);\n\n useEffect(() => {\n const hideMenu = ({ target }) => {\n return !refs.find(ref => ref?.current && nodeContains(ref.current, target)) && setVisibility(false);\n };\n\n global.window.addEventListener('mouseout', hideMenu);\n return () => global.window.removeEventListener('mouseout', hideMenu);\n }, [refs]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useSetAttributeToElement = (className, setAttributeName, setAttributeValue, useEffectDependency) => {\n useEffect(() => {\n let index;\n const dates = document.getElementsByClassName(className);\n for (index = 0; index < dates.length; ++index) {\n dates[index]?.setAttribute(setAttributeName, setAttributeValue);\n }\n }, [useEffectDependency]);\n};\n\nexport const useDelayUnmount = (isMounted, delayTime) => {\n const [shouldRender, setShouldRender] = useState(false);\n const [className, setClassName] = useState('closed');\n useEffect(() => {\n let timeoutIdOut;\n if (isMounted && !shouldRender) {\n setShouldRender(true);\n setTimeout(() => setClassName('opened'));\n } else if (!isMounted && shouldRender) {\n setClassName('closed');\n timeoutIdOut = setTimeout(() => setShouldRender(false), delayTime);\n }\n return () => {\n clearTimeout(timeoutIdOut);\n };\n }, [isMounted, delayTime, shouldRender]);\n return [shouldRender, className];\n};\n\nexport const useKeyPress = targetKey => {\n const [keyPressed, setKeyPressed] = useState(false);\n function downHandler({ key }) {\n if (key === targetKey) {\n setKeyPressed(true);\n }\n }\n const upHandler = ({ key }) => {\n if (key === targetKey) {\n setKeyPressed(false);\n }\n };\n useEffect(() => {\n window.addEventListener('keydown', downHandler);\n window.addEventListener('keyup', upHandler);\n return () => {\n window.removeEventListener('keydown', downHandler);\n window.removeEventListener('keyup', upHandler);\n };\n }, []);\n return keyPressed;\n};\n\nexport const useMeasure = () => {\n const ref = useRef(null);\n const [forceRedraw, setForceRedraw] = useState(1);\n const rect = useRef(null);\n\n useLayoutEffect(() => {\n rect.current = ref.current && ref.current.getBoundingClientRect();\n if (!ref.current) return;\n if (rect.current.height) {\n setForceRedraw(0);\n }\n }, [forceRedraw, rect]);\n return [ref, rect.current && rect.current.height];\n};\n\nexport const useFocus = () => {\n const htmlElRef = useRef(null);\n // eslint-disable-next-line no-unused-expressions\n const setFocus = () => { htmlElRef?.current && htmlElRef?.current?.focus(); };\n\n return [htmlElRef, setFocus];\n};\n\nexport const useDelayed = (fn, ms) => {\n const ready = useRef(false);\n const timeout = useRef();\n const callback = useRef(fn);\n\n const isReady = useCallback(() => ready.current, []);\n\n const set = useCallback(\n (...args) => {\n ready.current = false;\n if (timeout.current) clearTimeout(timeout.current);\n\n timeout.current = setTimeout(() => {\n ready.current = true;\n callback.current(...args);\n }, ms);\n },\n [ms]\n );\n\n const clear = useCallback(() => {\n ready.current = null;\n if (timeout.current) clearTimeout(timeout.current);\n }, []);\n\n // update ref when function changes\n useEffect(() => {\n callback.current = fn;\n }, [fn]);\n\n // clear on unmount\n useEffect(() => {\n return clear;\n }, [ms]);\n\n return [isReady, clear, set];\n};\n\nexport const useOnClickOutside = (ref, handler) => {\n useEffect(() => {\n const listener = event => {\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\nconst defaultOptions = {\n isPassive: true, condition: true, element: global, capture: false\n};\n\nexport const useEventListener = (\n eventName,\n handler,\n options\n) => {\n const savedHandler = useRef();\n const {\n isPassive, condition, element, capture\n } = { ...defaultOptions, ...options };\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const eventListener = event => savedHandler.current(event);\n if (condition) {\n element.addEventListener(eventName, eventListener, { passive: isPassive, capture });\n }\n return () => {\n if (condition) {\n element.removeEventListener(eventName, eventListener, { passive: isPassive, capture });\n }\n };\n }, [eventName, condition, element, isPassive]);\n};\n","// import path from 'path';\n\nimport get from 'lodash/get';\n\nexport const getRouterValue = (key, defaultValue) => {\n return get(window.__jfrouter, key, defaultValue);\n};\n\nexport const getEnv = () => {\n return getRouterValue('JOTFORM_ENV', 'development');\n};\n\nexport const getAppPath = () => {\n return getRouterValue('APP_PATH', '/');\n};\n\nexport const getBaseURL = () => {\n return getRouterValue('BASE_URL', 'http://localhost');\n};\n\nexport const getAssetPath = () => {\n return getRouterValue('ASSET_PATH', '/');\n};\n\nexport const getRevision = () => {\n return getRouterValue('REVISION_HASH', '/');\n};\n\nexport const getPublicURL = () => {\n return `${getBaseURL()}${getAssetPath()}`;\n};\n\nexport const getCDNURL = () => {\n return getRouterValue('CDN_URL', getPublicURL());\n};\n\n// export const getAssetURL = assetPath => {\n// return `${getBaseURL()}${path.join(getAssetPath(), assetPath)}`;\n// };\n\nexport const getAppURL = () => {\n return `${getBaseURL()}${getAppPath()}`;\n};\n\nexport const getRoutePath = () => {\n return window.location.pathname.replace(getAppPath(), '');\n};\n\nexport const getActiveAlias = () => {\n return getRouterValue('ACTIVE_ALIAS', '');\n};\n\nexport const getActiveApp = () => {\n return getRouterValue('ACTIVE_APP', '');\n};\n\nexport const getInitialRoutePath = () => {\n return getRouterValue('INITIAL_ROUTE_PATH', '');\n};\n\nexport const getFullPath = () => {\n return getRouterValue('FULL_PATH', '');\n};\n\nexport const isHIPAA = () => {\n return getRouterValue('IS_HIPAA', '0') === '1';\n};\n\nexport const isEU = () => {\n return getRouterValue('IS_EU', '0') === '1';\n};\n\nexport const isSSO = () => {\n return getRouterValue('IS_SSO', '0') === '1';\n};\n\nexport const getRootPath = () => {\n return getRouterValue('ROOT_PATH', '');\n};\n","import React from 'react';\nimport { node, string } from 'prop-types';\n\nconst Tab = ({ id, children = null }) => {\n return (\n <div data-tabid={id}>\n {children}\n </div>\n );\n};\n\nTab.propTypes = {\n id: string.isRequired,\n children: node.isRequired\n};\n\nexport default Tab;\n","import React, {\n Children,\n forwardRef,\n useImperativeHandle,\n useEffect,\n useState,\n useMemo\n} from 'react';\nimport {\n objectOf, shape, node, string, elementType, arrayOf, func\n} from 'prop-types';\n\nconst TabList = forwardRef(({\n list, children, defaultActiveTab, erroredTabs, onTabChange,\n Wrapper, TabButton, TabButtonContainer, TabListContainer, TabContainer, activeTabClassName, tabButtonClassName\n}, tabListRef) => {\n const tabs = Object.entries(list);\n const [activeTabID, setActiveTabID] = useState(defaultActiveTab || tabs[0][0]);\n useImperativeHandle(tabListRef, () => ({ setActiveTabID, activeTabID }));\n\n useEffect(() => {\n onTabChange(activeTabID);\n }, [activeTabID]);\n\n const generateTabClickHandler = id => () => setActiveTabID(id);\n const tabIdPrefix = useMemo(() => Math.random().toString(36).slice(2), []);\n const tabButtonPrefix = useMemo(() => Math.random().toString(36).slice(2), []);\n\n return (\n <Wrapper data-activetab={activeTabID} data-testid={activeTabID}>\n <TabButtonContainer>\n {tabs\n .filter(([, { hidden = false }]) => !hidden)\n .map(([id, tabProps], index) => {\n const hasError = erroredTabs[index];\n const isActiveTab = id === activeTabID;\n const classNames = tabButtonClassName ? { className: `${tabButtonClassName} ${isActiveTab ? activeTabClassName : ''}` } : {};\n const ariaId = [tabIdPrefix, id].join('_');\n const buttonId = [tabButtonPrefix, id].join('-');\n\n return (\n <TabButton\n id={buttonId}\n data-isactive={activeTabID === id}\n aria-selected={activeTabID === id}\n data-tabid={id}\n aria-controls={ariaId}\n data-haserror={hasError}\n key={id}\n onClick={generateTabClickHandler(id)}\n data-eventkey={id}\n {...classNames}\n >\n {tabProps.label}\n {hasError && <span className=\"isErrorBullet\" />}\n </TabButton>\n );\n })}\n </TabButtonContainer>\n <TabListContainer data-activetab={activeTabID}>\n {Children.map(children, tab => {\n const { props: { id } } = tab;\n const isActiveTab = id === activeTabID;\n const ariaId = [tabIdPrefix, id].join('_');\n const ariaLabelledByButtonId = [tabButtonPrefix, id].join('-');\n\n return (\n <TabContainer\n role=\"tabpanel\"\n aria-labelledby={ariaLabelledByButtonId}\n id={ariaId}\n data-isactive={isActiveTab ? 'true' : 'false'}\n style={{ display: isActiveTab ? 'block' : 'none' }}\n >\n {tab}\n </TabContainer>\n );\n })}\n </TabListContainer>\n </Wrapper>\n );\n});\n\nTabList.propTypes = {\n children: node,\n defaultActiveTab: string,\n list: objectOf(shape({})).isRequired,\n Wrapper: elementType,\n TabButton: elementType,\n TabButtonContainer: elementType,\n TabListContainer: elementType,\n TabContainer: elementType,\n erroredTabs: arrayOf(string),\n activeTabClassName: string,\n tabButtonClassName: string,\n onTabChange: func\n};\n\nTabList.defaultProps = {\n children: null,\n defaultActiveTab: null,\n Wrapper: props => <div {...props} />,\n TabButton: props => <button type=\"button\" {...props} />,\n TabButtonContainer: props => <div {...props} />,\n TabListContainer: props => <div {...props} />,\n TabContainer: props => <div {...props} />,\n erroredTabs: [],\n activeTabClassName: '',\n tabButtonClassName: '',\n onTabChange: () => {}\n};\n\nexport default TabList;\n","import axios from 'axios';\nimport isNil from 'lodash/isNil';\n\nimport { encodeUsedTranslations, unlocalizeOriginHref } from './utils';\nimport { partialTranslations, DEFAULT_LANGUAGE } from './constants';\n\nexport const prepareT = translation => function t(str, params = {}) {\n if (!str) {\n return str;\n }\n if (typeof str !== 'string') {\n return str;\n }\n\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return str;\n }\n\n let translated = str;\n try {\n if (typeof translation.translate === 'function') {\n translated = translation.translate(str, params);\n } else if (typeof translation.t === 'function') {\n translated = translation.t(str, params);\n }\n if (typeof global?.window?.useTranslationScreenshots !== 'undefined') {\n return str;\n }\n if (translation.currentLocale !== DEFAULT_LANGUAGE && str !== translated && translation.controlMode) {\n return '1';\n }\n } catch (e) {\n console.error('Error on common/translate falling back with original str', e);\n }\n\n const resp = (params.branding21) ? translated.replace(/JotForm/g, 'Jotform') : translated;\n\n return resp;\n};\n\nexport const preapreTtime = translation => function ttime(str, options = {}) {\n const { hour = 'numeric', minute = 'numeric' } = options;\n const formatOptions = { hour, minute };\n let [hourVal, minuteVal] = str.replace('/am|pm/', '').split(':').map(i1 => parseInt(i1, 10)); //eslint-disable-line\n\n if (str.indexOf('pm') > 0) {\n hourVal = hourVal !== 12 ? hourVal + 12 : hourVal;\n } else if (str.indexOf('am') > 0) {\n hourVal = hourVal === 12 ? 0 : hourVal;\n }\n\n const tempDate = new Date();\n tempDate.setHours(hourVal, minuteVal);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(tempDate.getTime())) {\n return str;\n }\n return tempDate.toLocaleTimeString(translation.currentLocale, formatOptions);\n};\n\nexport const prepareTDate = translation => function tdate(str, options = {}) {\n try {\n const ttime = preapreTtime(translation);\n if (options.timeOnly) {\n return ttime(str, options);\n }\n const dateObj = new Date(str);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(dateObj.getTime())) {\n return str;\n }\n // Add undesired fields with null values to options object. Ex:{weekday : null}\n const formatOptions = {\n weekday: 'short', year: 'numeric', month: 'short', day: 'numeric'\n };\n if (options && typeof options === 'object') {\n Object.keys(options).forEach(optionName => {\n if (options[optionName] == null) {\n delete formatOptions[optionName];\n } else {\n formatOptions[optionName] = options[optionName];\n }\n });\n }\n return dateObj.toLocaleDateString(translation.currentLocale, formatOptions);\n } catch (err) {\n return str;\n }\n};\n\n// Example usage:\n/*\n translationRenderer('This is an [1[example]] string [2[for]] translation')({\n renderer1: (str) => <b>{str}</b>; // str is \"example\"\n fallback: (str) => <AwesomeComponent>{str}</AwesomeComponent>;\n })\n - Since there is no render function given for second match, fallback function will be used as renderer.\n - Renderer functions can only have 1 parameter, which is sanitized version of delimeter.\n */\nexport const prepareTranslationRenderer = t => function translationRenderer(str, params = {}) {\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return () => str;\n }\n const translatedString = t(str, params);\n const getRendererIndex = delimiterStr => {\n const matches = delimiterStr.match(/\\[(\\d+)\\[/);\n if (matches && matches[1]) {\n return matches[1];\n }\n throw new Error(`Delimeter string (${delimiterStr}) format is inappropriate! Correct format is [RENDERER_NUMBER[TEXT]]`);\n };\n\n return renderFunctions => {\n try {\n const matchTemplate = /\\[\\d+\\[.*?\\]{2}/g;\n const replaceTemplate = /\\[(\\d+)\\[|\\]{2}/g;\n const matches = (translatedString && translatedString.match) ? translatedString.match(matchTemplate) : null;\n if (matches && matches.length > 0) {\n const renderers = renderFunctions || {};\n // Set a fallback renderer if it is not given in renderFunctions\n if (typeof renderers.fallback !== 'function') {\n renderers.fallback = i1 => i1;\n }\n // Create an array which includes all render functions\n const matchedStrings = matches.map(matchItem => {\n const currentKey = `renderer${getRendererIndex(matchItem)}`;\n const sanitizedValue = matchItem.replace(replaceTemplate, '');\n if (typeof renderers[currentKey] === 'function') {\n return renderers[currentKey](sanitizedValue);\n }\n return renderers.fallback(sanitizedValue);\n });\n\n return translatedString.split(matchTemplate).map((normStr, index) => (\n typeof matchedStrings[index] !== 'undefined'\n ? [normStr, matchedStrings[index]]\n : [normStr]\n ));\n }\n } catch (err) {\n console.error(err); // eslint-disable-line\n }\n return translatedString;\n };\n};\n\nexport const prepareControlModeChange = translation => function controlModeChange(controlMode) {\n return new Promise((resolve, reject) => {\n try {\n // eslint-disable-next-line no-param-reassign\n translation.controlMode = controlMode;\n resolve({ loaded: true, controlMode });\n } catch (err) {\n reject(new Error(err));\n }\n });\n};\n\nexport const prepareAddTranslationToDictionary = translation => function addTranslationToDictionary(code, translationData) {\n const dictionary = translationData;\n // remove untranslated keys\n const clearedDic = Object.keys(dictionary).reduce((dic, key) => {\n const entry = dictionary[key];\n if (!entry) {\n return dic;\n }\n return Object.assign(dic, { [key]: entry });\n }, {});\n\n if (dictionary) {\n translation.add(code, clearedDic);\n }\n return ({ loaded: true, code });\n};\n\nexport const generateDictionaryURL = ({ path, code = DEFAULT_LANGUAGE }) => {\n const sanitizedCode = code?.length !== 5 ? DEFAULT_LANGUAGE : code;\n return `/js/${path}/locale_${sanitizedCode}.js?${Math.floor((Math.random() * (9999 - 1001)) + 1000)}`;\n};\n\nexport const loadDictionaryViaTag = ({ code, path }) => new Promise((resolve, reject) => {\n try {\n const tmpScriptTag = global.document.createElement('script');\n tmpScriptTag.src = generateDictionaryURL({ code, path });\n tmpScriptTag.onload = () => resolve(global.Locale.language);\n tmpScriptTag.onerror = () => reject(new Error('Language dictionary load failed.'));\n\n if (!global.Locale) {\n global.Locale = {};\n }\n\n global.document.body.appendChild(tmpScriptTag);\n } catch (e) {\n reject(e);\n }\n});\n\nexport const loadDictionaryViaFetch = ({ code, path }) => fetch(generateDictionaryURL({ code, path }), {\n headers: { 'Content-Type': 'text/plain' }\n}).then(r => r.text()).then(r => r.replace('Locale.language=', '')).then(r => JSON.parse(r));\n\nexport const prepareAddDictionary = translation => function addDictionary(code, partialDictionaryName) {\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n const url = unlocalizeOriginHref(global?.window?.location?.href);\n const partialDictionaryPath = partialDictionaryName || Object.keys(partialTranslations).find(q => partialTranslations[q](url));\n const loadMethod = global?.document ? loadDictionaryViaTag : loadDictionaryViaFetch;\n const path = partialDictionaryPath ? `locale/partial-translations/${partialDictionaryPath}` : 'locale';\n return new Promise((resolve, reject) => {\n loadMethod({ path, code: code?.length !== 5 ? DEFAULT_LANGUAGE : code })\n .then(translationData => resolve(addTranslationToDictionary(code, translationData)))\n .catch(err => reject(new Error(err)));\n });\n};\n\nexport const sendUsedTranslationsInterval = () => {\n if (isNil(global.Translations.processUsedTranslationsInterval) && !global.Translations.forceStopCollecting) {\n console.log('[Translations] :: Collecting used translation strings.');\n\n global.Translations.processUsedTranslationsInterval = setInterval(() => {\n const finishInterval = global.Translations.encodedAndProcessedStrings?.length >= global.Translations.usedTranslations?.length;\n\n if (global.Translations.forceStopCollecting) {\n return;\n }\n\n if (finishInterval) {\n clearInterval(global.Translations.processUsedTranslationsInterval);\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.forceStopCollecting = true;\n\n return axios.post('/API/translation/track-translated-strings', {\n url: global.location?.href,\n hashes: global.Translations.encodedAndProcessedStrings\n }).then(res => {\n if (res?.data?.responseCode === 200) {\n console.log(`[Translations] :: ${global.Translations.encodedAndProcessedStrings?.length} used translations collected.`);\n }\n }).catch(() => {\n console.log('[Translations] :: Error while collect used translations.');\n });\n }\n\n encodeUsedTranslations(global.Translations.usedTranslations);\n }, 1500);\n }\n};\n","// Clear translation visibility classes\nexport const clearTranslationMarkup = () => {\n // Get elements with the class\n const elements = global.document.body.querySelectorAll('.js-translationBlocker');\n\n // Get direct parents of translation texts\n const textParents = global.document.body.querySelectorAll('.js-translationText');\n\n // Get select parents of translation texts\n const selectParents = global.document.body.querySelectorAll('.js-translationSelect');\n\n // Convert node list to array and remove class from each element\n Object.values(elements).forEach(el => el && el.classList && el.classList.remove('js-translationBlocker'));\n // Object.values(textParents).forEach(el => el && el.classList && el.classList.remove('js-translationText'));\n Object.values(textParents).forEach(el => {\n // eslint-disable-next-line no-unused-expressions\n if (el && el.classList) {\n const elc = el;\n elc.style.outline = 'none';\n elc.style.position = 'initial';\n elc.style.zIndex = 'initial';\n el.classList.remove('js-translationText');\n }\n });\n Object.values(selectParents).forEach(el => {\n // Return if not a valid dom element\n if (!el || !el.classList) {\n return false;\n }\n\n // Get original size and multiple values of element if there were exist\n const originalSize = el.getAttribute('data-tempsize');\n const originalMultiple = el.getAttribute('data-tempmultiple');\n\n // Remove temporary attributes\n el.removeAttribute('data-tempsize');\n el.removeAttribute('data-tempmultiple');\n\n // If any one of them was setted then add them again; otherwise remove them\n if (originalSize !== 'null') {\n el.setAttribute('size', originalSize);\n } else {\n el.removeAttribute('size');\n }\n\n if (originalMultiple !== 'null') {\n el.setAttribute('multiple', originalMultiple);\n } else {\n el.removeAttribute('multiple');\n }\n\n // Lastly remove translation class\n el.classList.remove('js-translationSelect');\n });\n};\n\nexport const addTranslationMarkup = (el, initial = true) => {\n // If element is body or global then no need to process further\n if (el === global || el === global.document || el === global.document.body) return true;\n\n // If element or style belongs to it is undefined then terminate the process\n if (!el) return false;\n\n // Put text class at initial call\n if (initial) {\n el.parentElement.classList.add('js-translationText');\n\n const parent = el.parentElement;\n parent.style.outline = '3px solid #F00';\n parent.style.position = 'relative';\n parent.style.zIndex = '1000';\n }\n\n // Process if style is defined\n if (el.style) {\n // Get current style values of the element\n const currentStyle = global.getComputedStyle(el);\n\n // Check if one of the invisibility requirements it satisfied\n if (currentStyle.display === 'none' || currentStyle.opacity === '0' || currentStyle.visibility === 'hidden' || currentStyle.maxHeight === '0px') {\n // Add visibility class of translation\n el.classList.add('js-translationBlocker');\n }\n }\n\n if (el.tagName === 'SELECT') { // Handle select to show all options\n // Keep size and multiple attributes temporarily\n el.setAttribute('data-tempsize', el.getAttribute('size'));\n el.setAttribute('data-tempmultiple', el.getAttribute('multiple'));\n\n // Add size attribute temporarly to show all options\n el.setAttribute('size', el.length);\n el.setAttribute('multiple', 'multiple');\n\n // Add translation class to set height and mark select as dirty to clear later\n el.classList.add('js-translationSelect');\n }\n\n return addTranslationMarkup(el.parentElement, false);\n};\n\n// Finds elements that contains one of the texts passed\nexport const searchTextInDOM = (el, texts) => {\n // No need to parse the dom if it belongs to one of the given tags\n if (['SCRIPT', 'SVG', 'IMG', 'STYLE', 'INPUT', 'PATH'].indexOf(el.tagName) !== -1) {\n return null;\n }\n\n // If classList is defined for given element\n if (el.classList && el.classList.value) {\n // Define classes that we do not want to search\n // const classesToBeFiltered = [/hideOnDesktop/, /hide-on-builder/, /tabMenu/, /toggleText-mobile/, /hide-on-crawler/];\n const classesToBeFiltered = [/hideOnDesktop/, /toggleText-mobile/, /hide-on-crawler/];\n\n // Check if classList contains one of the unwanted classes\n if (classesToBeFiltered.some(rgx => rgx.test(el.classList.value))) {\n return null;\n }\n }\n\n // If still a child exist then parse tree deeper\n if (el.childNodes && el.childNodes.length !== 0) {\n return Object.values(el.childNodes) // Convert nodeList to array\n .filter(child => typeof child === 'object') // Remove numbers and functions to take only nodes(objects)\n .map(child => searchTextInDOM(child, texts)) // Call every node element with parseTree (recursive)\n .reduce((prev, curr) => (curr !== null ? prev.concat(curr) : prev), []); // Reduce results to one array\n }\n\n // Check if text content is one of the strings we are searching\n if (el.textContent && texts.indexOf(el.textContent.trim()) > -1) {\n return el;\n }\n\n return null;\n};\n\n// Checks if element is in viewport\nexport const isInViewport = el => {\n if (el === null) {\n return false;\n }\n if (typeof el.offsetTop === 'undefined') {\n return isInViewport(el.parentNode);\n }\n\n // Get recteangle information of element\n const elementRect = el.getBoundingClientRect();\n\n // Get window height and width\n const windowHeight = global.window.innerHeight;\n const windowWidth = global.window.innerWidth;\n\n // Get scrolling x and y\n const scrollX = global.window.pageXOffset;\n const scrollY = global.window.pageYOffset;\n\n // eslint-disable-next-line max-len\n if (elementRect.top + elementRect.height < windowHeight + scrollY && elementRect.left + elementRect.width < windowWidth + scrollX && elementRect.top + elementRect.height > 0 && elementRect.left + elementRect.width > 0) {\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n // eslint-disable-next-line no-lonely-if\n if (global.window.casperJsTest) {\n el.scrollIntoView({ behavior: 'auto', block: 'center' });\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n return false;\n }\n }\n};\n\n// Get text contents of dom elements\nexport const getTextContents = elements => elements.map(el => el.textContent.trim());\n","import qs from 'qs';\nimport Axios from 'axios';\nimport Polyglot from 'node-polyglot';\nimport domtoimage from 'dom-to-image-more';\nimport isUndefined from 'lodash/isUndefined';\n\nimport {\n isInViewport,\n getTextContents,\n searchTextInDOM,\n addTranslationMarkup,\n clearTranslationMarkup\n} from './domHelper';\n\nclass Translation {\n constructor() {\n // Default value settings\n this.defaultLang = 'en-US';\n this.processedStrings = {};\n this.usedTranslations = [];\n this.untranslatedStrings = {};\n this.currentLocale = this.defaultLang;\n this.filterClasses = [\n 'ace_editor',\n 'ace-solarized-dark',\n 'ace_dark',\n 'input-group',\n 'isAvatar',\n 'jfHeader-userAvatar',\n 'themesListItem-img',\n 'themesListItem-imgAspect',\n 'prevUploads-list',\n 'card-leftSide',\n 'jfQuestion-fields-contentVisible',\n 'appBox-image'\n ];\n this.filterTags = [\n 'IFRAME',\n 'IMG'\n ];\n this.dictionaries = {\n [this.defaultLang]: new Polyglot({\n phrases: {},\n locale: this.defaultLang.split('-')[0],\n allowMissing: true\n })\n };\n\n this.interpolation = { templateSyntax: /\\{.\\}*\\w+\\}/g, eraseTemplate: /\\{|\\}/g };\n // Variables related to delayed submitNotTranslated function\n this.callTimer = null;\n\n // Number of elements to be processed and send to server at once\n this.processLimit = 1;\n\n // Debounce time for process function\n this.debounceTime = 1000;\n\n // Function binds\n this.setLocale = this.setLocale.bind(this);\n this.resetProcess = this.resetProcess.bind(this);\n this.limitElements = this.limitElements.bind(this);\n this.orderElements = this.orderElements.bind(this);\n this.takeScreenShot = this.takeScreenShot.bind(this);\n this.debounceProcess = this.debounceProcess.bind(this);\n this.handleMissingKey = this.handleMissingKey.bind(this);\n this.submitNotTranslated = this.submitNotTranslated.bind(this);\n this.processNotTranslated = this.processNotTranslated.bind(this);\n this.updateProcessedStrings = this.updateProcessedStrings.bind(this);\n this.rotateUntranslatedStrings = this.rotateUntranslatedStrings.bind(this);\n this.filterUntranslatedStrings = this.filterUntranslatedStrings.bind(this);\n this.translate = this.translate.bind(this);\n this.initServerSideDictionary = this.initServerSideDictionary.bind(this);\n }\n\n // Getter for getting untranslated string list of current language\n get currentLocaleUntranslated() {\n return Array.isArray(this.untranslatedStrings[this.currentLocale]) ? this.untranslatedStrings[this.currentLocale] : [];\n }\n\n // Get processed elements in this session\n get currentProcessed() {\n return Array.isArray(this.processedStrings[this.currentLocale]) ? this.processedStrings[this.currentLocale] : [];\n }\n\n // Get single array that contains all untranslated strings\n get allUntranslatedStrings() {\n return Object.keys(this.untranslatedStrings).reduce(\n (prev, curr) => prev.concat(this.untranslatedStrings[curr]),\n []\n );\n }\n\n initServerSideDictionary(langCode, dictionary) {\n this.add(langCode, dictionary);\n }\n\n // Sets current locale and fetch untranslated list if it still does not exist\n setLocale(code) {\n // Set locale of objectcurrentLocale\n this.currentLocale = code;\n }\n\n // Update untranslatedStrings array by removing sended strings\n filterUntranslatedStrings(langCode, strings) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [langCode]: this.untranslatedStrings[langCode].filter(str => strings.indexOf(str) === -1)\n };\n }\n\n // Update unprocessedStrings by adding sended strings\n updateProcessedStrings(langCode, strings) {\n // Add processed words to processed list\n this.processedStrings = {\n\n ...this.processedStrings,\n [langCode]: this.processedStrings[langCode] ? this.processedStrings[langCode].concat(strings) : strings\n };\n }\n\n // Add sended str to the untranslatedStrIngs array of current locale\n addUntranslatedString(str) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [this.currentLocale]: this.currentLocaleUntranslated.concat([str])\n };\n }\n\n // Move given strings to the end of their respective array\n rotateUntranslatedStrings(strings) {\n // For each key filter given strings and append found ones to the end\n this.untranslatedStrings = Object.keys(this.untranslatedStrings).reduce((prev, curr) => {\n // Get matched strings array of given locale\n const foundStrings = this.untranslatedStrings[curr].filter(str => strings.indexOf(str) > -1);\n\n // First filter given strings and then append them afterward\n return {\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) < 0).concat(foundStrings)\n };\n }, {});\n }\n\n // Order given dom elements respect to their position as strings in untranslated array\n orderElements(elements) {\n // No need to order if only one is found\n if (elements.length <= 1) {\n return elements;\n }\n\n // Get strings of elements\n const textContents = getTextContents(elements);\n\n // Order elements by looking their string positions\n return this.allUntranslatedStrings.filter(str => textContents.indexOf(str) > -1).map(str => elements[textContents.indexOf(str)]);\n }\n\n // Initializes locale and the dictionary belongs to it\n add(code = '', dictionary = {}) {\n // Initialize locale\n this.setLocale(code);\n\n if (isUndefined(this.dictionaries[code])) {\n // Add sended dictionary to the current list\n this.dictionaries = {\n\n ...this.dictionaries,\n [code]: new Polyglot({\n phrases: dictionary,\n locale: code.split('-')[0],\n onMissingKey: this.handleMissingKey // This function will be triggered if the text does not exist in translation list\n })\n };\n }\n }\n\n // Translate string using Polyglot api\n translate(str, params) {\n let translated = str;\n if (typeof params === 'object' && Object.keys(params).length) {\n const variables = str.match(this.interpolation.templateSyntax);\n variables?.forEach(strVar => {\n // Remove template string characters and get variable name.\n const variableName = strVar.replace(this.interpolation.eraseTemplate, '');\n // If there is a value for given key, replace the key with given value\n if (params[variableName]) {\n translated = translated.replace(strVar, params[variableName]);\n }\n });\n }\n\n if (!this.usedTranslations.includes(str)) {\n this.usedTranslations.push(str);\n }\n\n return this.dictionaries[this.currentLocale].t(translated, params);\n }\n\n // Handler for texts that does not have translation\n handleMissingKey(str, options) {\n // Further process is limited to certain users\n if (!(global.window.useTranslationScreenshots === true)) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // If it is already in processed list then skip processing it\n if (this.currentProcessed.indexOf(str) > -1) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // Do not try to process if string is empty or only contains space\n if (/^\\s+$/.test(str)) {\n return '';\n }\n\n // Add founded word to untranslated texts if it does not exist\n if (this.currentLocaleUntranslated.indexOf(str) === -1) {\n this.addUntranslatedString(str);\n }\n\n // Call debounced process (works every n seconds where n is this.processLimit)\n this.debounceProcess();\n }\n\n // Delays the call of submitNotTranslated\n debounceProcess() {\n // If a timer is already started\n if (this.callTimer !== null) {\n // Do not process any further\n return;\n }\n\n // Restart timer\n this.callTimer = setTimeout(this.processNotTranslated, this.debounceTime);\n }\n\n // Limits sended dom elements according to the constants set in class\n limitElements(elements) {\n // Limit the elements based on the processLimit variable\n return elements.slice(0, this.processLimit);\n }\n\n // Filters false positive translations by looking their screenshot values\n filterFalseTranslations(strings, screenshots) {\n // Indexes of false screenshots\n const emptyIndexes = screenshots.reduce((prev, curr, index) => { return curr === false ? prev.concat([index]) : prev; }, []);\n\n // Filter strings that matched with false screenshot results\n const filteredStrings = {\n\n ...strings,\n [this.currentLocale]: strings[this.currentLocale].filter((str, index) => emptyIndexes.indexOf(index) < 0)\n };\n\n // Filter false screenshots\n const filteredScreenshots = screenshots.filter((ss, index) => emptyIndexes.indexOf(index) < 0);\n\n // Return filtered strings and screenshots\n return {\n filteredStrings,\n filteredScreenshots\n };\n }\n\n // Prepares object for next translation process\n resetProcess(strings = []) {\n // Clear timer as the submit promises are resolved\n clearTimeout(this.callTimer);\n this.callTimer = null;\n\n // If there is still an untranslated string in the list\n if (this.currentLocaleUntranslated.length !== 0) {\n if (strings.length !== 0) {\n // Rotate strings that tried to be translated before if they still exist\n this.rotateUntranslatedStrings(strings);\n }\n\n // Try to call process again\n this.debounceProcess();\n }\n }\n\n // Filter and screenshot process\n processNotTranslated() {\n // Get body for dom earch\n let node = '';\n if (global.window.casperjsTestDomParam) {\n node = global.document.querySelector(decodeURI(global.window.casperjsTestDomParam));\n /* eslint-disable no-console */\n console.log('global.window.casperjsTestDomParam', global.window.casperjsTestDomParam);\n /* eslint-enable no-console */\n } else {\n node = global.document.body;\n }\n\n // Search all texts accross dom elements to find their containers\n const foundElements = searchTextInDOM(node, this.allUntranslatedStrings);\n\n /* eslint-disable no-console */\n console.log('this.allUntranslatedStrings', this.allUntranslatedStrings);\n console.log('foundElements', foundElements);\n /* eslint-enable no-console */\n\n // If could not found any element then reset the process\n if (!foundElements || foundElements.length === 0) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n // Clear timer\n return this.resetProcess();\n }\n\n // Order these elements to match with their respected string positions in untranslated strings array\n const orderedFoundElements = this.orderElements(foundElements);\n\n // Limit the number of elements to be processed\n const elementsToProcess = this.limitElements(orderedFoundElements);\n\n // Get strings of found elements\n const foundStrings = getTextContents(elementsToProcess);\n\n // Get only matched strings from unstranslated list\n const untranslatedToPost = Object.keys(this.untranslatedStrings).reduce((prev, curr) => ({\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) > -1)\n }), {});\n\n // Create promise for each screenshot\n const ssPromises = Object.values(elementsToProcess).reduce((prev, curr) => { return typeof curr === 'object' ? prev.concat([this.takeScreenShot(node, curr)]) : prev; }, []);\n\n Promise.all(ssPromises) // After all screenshots taken\n .then(ssDataAll => this.filterFalseTranslations(untranslatedToPost, ssDataAll)) // Filter false positive translations\n // After resolving all of the promises just pass them to the not transalted submission\n .then(({ filteredStrings, filteredScreenshots }) => this.submitNotTranslated(filteredStrings, filteredScreenshots))\n // Reset required variables and do post process jobs to prepare object for next translation after submissions\n .then(submitPromises => Promise.all(submitPromises).then(() => this.resetProcess(foundStrings)));\n }\n\n // Submit not translated strings\n submitNotTranslated(untranslatedToPost, ssDataAll) {\n // Send translation request for each key separately\n return Object.keys(untranslatedToPost).map(langCode => {\n // Get strings to send\n const strings = untranslatedToPost[langCode];\n\n let depthCount = 0;\n let depthLabel = '';\n if (global.window.casperJsTest) {\n if (global.window.depthCount) {\n depthCount = global.window.depthCount;\n }\n if (global.window.depthLabel) {\n depthLabel = global.window.depthLabel;\n }\n }\n\n // No need to send data if one of them is empty or their lengths are not equal to each other\n if (strings.length === 0 || ssDataAll.length === 0 || strings.length !== ssDataAll.length) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n return false;\n }\n\n Axios.post('/server.php', qs.stringify({\n action: 'submitNotTranslated',\n lang_code: langCode,\n raw: untranslatedToPost[langCode].join('__NOT_TRANSLATED__'),\n autoSuggestion: false,\n depthCount,\n depthLabel,\n screenshot: ssDataAll.join('|||')\n }), {\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n .then(() => {\n // Move processed strings to processed list\n this.updateProcessedStrings(langCode, untranslatedToPost[langCode]);\n\n // Filter them from untranslated list\n this.filterUntranslatedStrings(langCode, untranslatedToPost[langCode]);\n });\n\n return true;\n });\n }\n\n // Take screenshot of given node if foundElement is visible in that dom\n takeScreenShot(node, foundElement) {\n // Try to make every element visible on found elements\n const visibilityResult = addTranslationMarkup(foundElement);\n if (global.window.casperJsTest) {\n /* eslint-disable no-console */\n console.log('foundElement', foundElement.wholeText);\n /* eslint-enable no-console */\n }\n // Do not need to take ss if element is invisible or not in viewport\n if (!visibilityResult || !isInViewport(foundElement)) {\n /* eslint-disable no-console */\n console.log('the element is invisible or not in viewport');\n /* eslint-enable no-console */\n // Clear visibility\n clearTranslationMarkup();\n\n // Return false due to it does not exist on screen\n return false;\n }\n\n // If the page is loaded by casperjs\n if (global.window.casperJsTest) {\n // Send capture command to casperjs as error\n /* eslint-disable no-console */\n console.log('capture');\n /* eslint-enable no-console */\n\n // Resolve with base64 encoded ss data\n return new Promise(resolve => {\n setTimeout(() => {\n // Take ss data\n const capturedData = global.window.tempCaptureData;\n\n // Clear temporary data\n global.window.tempCaptureData = null;\n\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(capturedData);\n }, 2000);\n });\n }\n\n // Take screenshot and return base64 encoded form using visibility css\n return new Promise(resolve => domtoimage.toPng(\n node,\n {\n filter: el => {\n // Return if element is not valid to check\n if (!el || !el.className || !el.tagName || typeof el.className !== 'string') {\n return true;\n }\n\n // If element is one of the tags to be filtered from screenshot\n if (this.filterTags.indexOf(el.tagName) > -1) {\n return false;\n }\n\n const filteredNodeClass = el.className.split(' ').filter(classStr => this.filterClasses.indexOf(classStr) !== -1);\n\n return filteredNodeClass.length === 0;\n }\n }\n )\n .then(dataUrl => {\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(dataUrl);\n }));\n }\n}\n\nexport const translation = global.Translations || new Translation();\n\nexport default Translation;\n","export const langCodes = {\n tr: 'tr-TR',\n en: 'en-US',\n es: 'es-ES',\n pt: 'pt-PT',\n fr: 'fr-FR',\n de: 'de-DE',\n it: 'it-IT',\n bg: 'bg-BG',\n sr: 'sr-BA',\n hu: 'hu-HU',\n fi: 'fi-FI',\n ka: 'ka-GE',\n nl: 'nl-NL',\n uk: 'uk-UA',\n ua: 'uk-UA',\n id: 'id-ID',\n ko: 'ko-KR',\n ar: 'ar-AR',\n ja: 'ja-JP',\n pl: 'pl-PL',\n ca: 'ca-ES',\n sv: 'sv-SE',\n no: 'no-NO',\n da: 'da-DA',\n ro: 'ro-RO',\n ru: 'ru-RU',\n zh: 'zh-CN',\n 'zh-CN': 'zh-CN',\n 'zh-HK': 'zh-HK',\n af: 'af-ZA',\n he: 'he-IL'\n};\n\nexport const partialTranslations = {\n 'animal-shelter': path => /(jotform.com|jform.co.kr|jotform.pro)(\\/){1}(animal-shelter){1}/g.test(path)\n};\n\n/**\n * Returns Jotform translation files suffix (locale/locale_SUFFIX.js)\n * @param {string} localeCode - lang-[country] (en-US, pt-BR, en)\n * @return {string} A value from langCodes object.\n */\nexport const getLangFileSuffix = localeCode => {\n const lang = localeCode.split('-')[0];\n return langCodes[localeCode] || langCodes[lang];\n};\n\nexport const DEFAULT_LANGUAGE = 'en-US';\n","import { langCodes } from './constants';\n\nexport const getApp = () => global.window.__jfrouter?.ACTIVE_ALIAS || global.window.location.pathname?.replace(/\\//g, '');\nexport const isProduction = () => global.window?.__jfrouter?.JOTFORM_ENV === 'PRODUCTION' || global.window?.JOTFORM_ENV === 'PRODUCTION';\n\nconst encodedAndProcessedStrings = [];\n\nconst processTranslation = async string => {\n const transformPhrase = string?.replace(/JotForm|Jform/gm, 'Jotform')?.trim();\n const buffer = new TextEncoder('utf-8').encode(transformPhrase);\n const digest = await global.crypto.subtle.digest('SHA-1', buffer);\n return {\n raw: transformPhrase,\n encoded: Array.from(new Uint8Array(digest)).map(x => x.toString(16).padStart(2, '0')).join('')\n };\n};\n\nexport const encodeUsedTranslations = translations => {\n translations.forEach(translation => {\n processTranslation(translation)\n .then(({ encoded, raw }) => {\n if (!global.Translations.encodedAndProcessedStrings.some(q => Object.keys(q).includes(encoded))) {\n global.Translations.encodedAndProcessedStrings.push({\n [encoded]: raw\n });\n }\n })\n .catch(error => console.error(error));\n });\n\n return encodedAndProcessedStrings;\n};\n\nexport const collectionTimer = () => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth();\n const day = new Date().getDate();\n const hours = new Date().getHours();\n const minutes = new Date().getMinutes();\n const now = Date.UTC(year, month, day, hours, minutes, 0);\n const startDate = Date.UTC(year, month, day, hours, 0, 0);\n const endDate = Date.UTC(year, month, day, hours, 15, 0);\n\n // Between HH:00 and HH:15\n return startDate < now && endDate > now;\n};\n\nexport const unlocalizeOriginHref = url => {\n const shortLangCodes = Object.keys(langCodes)?.join('|');\n const exp = RegExp(`(\\\\/)(${shortLangCodes})(\\\\/)`, 'g');\n\n return url?.replace(exp, '/');\n};\n","import { translation } from './Translation';\nimport { initializeTranslationFromGlobal } from './global';\nimport { prepareT, prepareTranslationRenderer, prepareTDate } from './hof';\nimport { langCodes, getLangFileSuffix } from './constants';\nimport { TranslateProvider } from './components/TranslateProvider';\nimport { setDatepickerLocale } from './setDatepickerLocale';\n\nconst t = prepareT(translation);\nconst tdate = prepareTDate(translation);\nconst translationRenderer = prepareTranslationRenderer(t);\n\ninitializeTranslationFromGlobal(translation, t);\n\nexport {\n t,\n tdate,\n translation,\n translationRenderer,\n langCodes,\n getLangFileSuffix,\n TranslateProvider,\n setDatepickerLocale\n};\n\nexport default translation;\n","import {\n prepareAddDictionary,\n prepareControlModeChange,\n prepareAddTranslationToDictionary,\n sendUsedTranslationsInterval\n} from './hof';\n\nimport { isProduction, collectionTimer } from './utils';\n\n/* eslint-disable no-param-reassign, no-extend-native */\nexport function initializeTranslationFromGlobal(translation, t) {\n const addDictionary = prepareAddDictionary(translation);\n const controlModeChange = prepareControlModeChange(translation);\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n\n // Overriding all strings and adding locale method\n String.prototype.locale = function locale() {\n return t(this);\n };\n\n if (!global.Translations) {\n global.__t = t;\n global.Translations = translation;\n global.Translations.t = t;\n global.Translations.addDictionary = addDictionary;\n global.Translations.addTranslationToDictionary = addTranslationToDictionary;\n global.Translations.controlModeChange = controlModeChange;\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.encodedAndProcessedStrings = [];\n global.Translations.startCollectUsedTranslationsInterval = sendUsedTranslationsInterval;\n global.Translations.forceStopCollecting = false;\n }\n\n if (global.window && global.window.useLocaleDictionary && global.window?.Locale?.language) {\n addTranslationToDictionary(global.window.currentLocale, global.window.Locale.language);\n }\n\n if (isProduction() && collectionTimer() && global.Translations.currentLocale !== 'en-US') {\n sendUsedTranslationsInterval();\n }\n}\n","export const PlatformTypes = {\n SALESFORCE: 'salesforce',\n WEEBLY: 'weebly',\n ANYWHERE: 'anywhere',\n DOCUSIGN: 'docusign',\n CANVA: 'canva'\n};\n\nexport const AllowedPlatforms = [\n PlatformTypes.SALESFORCE,\n PlatformTypes.WEEBLY,\n PlatformTypes.ANYWHERE,\n PlatformTypes.DOCUSIGN,\n PlatformTypes.CANVA\n];\n","import { createStore, compose } from 'redux';\n\nconst makeFeatureReducer = initialState => {\n return (state = initialState, action) => {\n if (!action.type) return state;\n if (action.type === 'ADD_NEW_FEATURE') {\n return {\n ...state,\n [action.payload.featureName]: {\n name: action.payload.featureName,\n value: action.payload.featureValue\n }\n };\n }\n if (action.type === 'ADD_FEATURE_FLAG_LIST') {\n return {\n ...state,\n ...action.payload.featureFlagList\n };\n }\n if (action.type === 'RENEW_FEATURE_FLAG') {\n return {\n ...action.payload.featureFlagList\n };\n }\n if (action.type === 'RESET_FEATURE_FLAG') {\n return {};\n }\n if (!state[action.type]) return state;\n return {\n ...state,\n [action.type]: {\n ...state[action.type],\n value: !state[action.type].value\n }\n };\n };\n};\n\nconst composeEnhancers = (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ name: 'JF Feature Flag Reducer' })) || compose;\nclass FeatureFlag {\n store = createStore(makeFeatureReducer({}), composeEnhancers());\n\n constructor() {\n if (global.FeatureFlag) return global.FeatureFlag;\n global.FeatureFlag = this;\n }\n\n init = featureList => {\n this.store.dispatch({ type: 'ADD_FEATURE_FLAG_LIST', payload: { featureFlagList: featureList } });\n };\n\n getStore = () => {\n // TODO: return singleton store;\n return this.store;\n };\n\n addNewFeature = (featureName, featureValue) => {\n this.store.dispatch({ type: 'ADD_NEW_FEATURE', payload: { featureName, featureValue } });\n };\n\n getList = () => {\n return this.store.getState();\n };\n\n getFeature = feature => {\n const featureName = this.getFeatureName(feature);\n const featureValue = this.store.getState()[featureName]?.value;\n if (typeof featureValue === 'undefined') {\n console.log(JSON.stringify(feature), ': feature is not defined.');\n return false;\n }\n return featureValue;\n };\n\n toggleFeature = feature => {\n const featureName = this.getFeatureName(feature);\n this.store.dispatch({ type: featureName });\n };\n\n getFeatureName = feature => {\n if (typeof feature === 'undefined') return null;\n if (typeof feature === 'string') return feature;\n return feature.name;\n };\n}\n\nexport default new FeatureFlag();\n","import { AllowedPlatforms, PlatformTypes } from '@jotforminc/constants';\nimport { getRootPath, getBaseURL } from '@jotforminc/router-bridge';\nimport { featureFlag } from '@jotforminc/feature-flag';\n\nconst cache = {};\n\nexport const isPlatformEnv = () => {\n if (typeof cache.isPlatform !== 'undefined') return cache.isPlatform;\n let platformEnv = null;\n if (typeof window !== 'undefined') {\n platformEnv = window.__jfrouter ? window.__jfrouter.PLATFORM_ENV : window.PLATFORM_ENV;\n }\n const isAllowedPlatform = AllowedPlatforms.includes(platformEnv);\n cache.isPlatform = isAllowedPlatform;\n cache.platformEnv = isAllowedPlatform ? platformEnv : null;\n return cache.isPlatform;\n};\n\nexport const isSalesforceEnv = () => {\n if (isPlatformEnv()) {\n return cache.platformEnv === PlatformTypes.SALESFORCE;\n }\n return false;\n};\n\nexport const isAnywhereEnv = () => {\n return cache.platformEnv === PlatformTypes.ANYWHERE;\n};\n\nexport const getPlatformEnv = () => {\n if (isPlatformEnv()) {\n return cache.platformEnv;\n }\n return null;\n};\n\nconst getValidURL = (url, baseURL) => {\n try {\n return new URL(url, baseURL);\n } catch (e) {\n return false;\n }\n};\n\nconst appendRootPath = pathname => {\n const rootPath = getRootPath();\n if (!pathname.startsWith(rootPath)) {\n return `${pathname.startsWith('/') ? rootPath.slice(0, -1) : rootPath}${pathname}`;\n }\n return pathname;\n};\n\n// THIS IS A TEMPORARY FUNCTION WILL BE DELETED AFTER RELEASE. THANKS AND SORRY :)\nconst interceptURLForWorkflowRelease = (url = '') => {\n const pathnames = url?.split('/').filter(Boolean) || [];\n const shouldChangeParameter = window?.isWorkflowReleased && pathnames[0] === 'myapprovals';\n if (!shouldChangeParameter) return url;\n return ['/myworkflows', ...pathnames.slice(1)].join('/');\n};\n\nconst prepareURLWithRoot = urlString => {\n const baseURL = getBaseURL();\n let url = urlString;\n const urlObject = getValidURL(url);\n\n if (urlObject) {\n if (urlObject.origin === baseURL) {\n urlObject.pathname = appendRootPath(urlObject.pathname);\n url = urlObject.toString();\n }\n } else {\n url = appendRootPath(url);\n }\n url = interceptURLForWorkflowRelease(url);\n return url;\n};\n\nconst shouldRedirectToSessionExpired = redirectURL => {\n if (isPlatformEnv()) {\n if (\n redirectURL.pathname === '/login'\n && (redirectURL.searchParams.has('rp') || redirectURL.searchParams.size === 0)\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const handleCustomNavigation = (url, target = '_blank', dontOverwrite = false, windowFeatures = '') => {\n const isMobileApp = global.navigator.userAgent.indexOf('JotForm Mobile') > -1 || global.navigator.userAgent.indexOf('JFCEMobile') > -1;\n const redirectURL = getValidURL(url, getBaseURL());\n\n if (redirectURL && shouldRedirectToSessionExpired(redirectURL)) {\n return window.open(`/platform/${getPlatformEnv()}/platform-pages/session-expired${redirectURL.search}`, '_self', windowFeatures);\n }\n\n if (dontOverwrite) {\n return window.open(url, target, windowFeatures);\n }\n\n if (isMobileApp) {\n window.location.href = url;\n return;\n }\n if (isPlatformEnv()) {\n if (featureFlag.getFeature(featureFlag.getList().NAVIGATE_TO_THE_NEW_TAB)) {\n return window.open(url, '_blank', `noopener,noreferrer,${windowFeatures}`);\n }\n\n if (url.startsWith('https://')) {\n // TODO: handle this properly\n return window.open(url, target, windowFeatures);\n }\n return window.open(`/platform/${getPlatformEnv()}${url}`, '_self', windowFeatures);\n }\n\n return window.open(prepareURLWithRoot(url), target, windowFeatures);\n};\n\nexport const getPlatformSafeUrl = url => {\n let safeUrl = getValidURL(url);\n if (!safeUrl || (safeUrl && window.__jfrouter.BASE_URL !== (new URL(safeUrl)).origin)) {\n const platformEnv = getPlatformEnv();\n const platformPrefix = platformEnv ? `/platform/${platformEnv}` : '';\n safeUrl = `${window.__jfrouter.BASE_URL}${platformPrefix}/myforms`;\n }\n return safeUrl;\n};\n","import { NormalizeMap } from './types';\n\n// normalizing request fields to prevent unnecessary hit misses\nexport const normalizedKeyMap: Record<string, NormalizeMap> = {\n teamID: { contains: [''], to: undefined }\n};\n","/* eslint-disable no-param-reassign */\nimport { normalizedKeyMap } from './constants';\nimport { CacheValue } from './types';\n\ntype RetryFunction = () => Promise<CacheValue<unknown> | undefined>;\nconst delay = (fn: RetryFunction, ms: number): ReturnType<RetryFunction> => new Promise(resolve => setTimeout(() => resolve(fn()), ms));\n\nexport const retry = async (fn: RetryFunction, maxAttempts = 3, delayMs = 10): ReturnType<RetryFunction> => {\n const execute = async (attempt: number): ReturnType<RetryFunction> => {\n try {\n return await fn();\n } catch {\n if (attempt <= maxAttempts) {\n const nextAttempt = attempt + 1;\n return delay(() => execute(nextAttempt), delayMs);\n }\n return undefined;\n }\n };\n return execute(1);\n};\n\nexport const mapRequest = (obj: Record<string, unknown>): void => {\n Object.keys(obj).forEach(key => {\n if (normalizedKeyMap[key]) {\n const shouldMap = normalizedKeyMap[key].contains.includes(obj[key]);\n if (shouldMap) obj[key] = normalizedKeyMap[key].to;\n }\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n mapRequest(obj[key] as Record<string, unknown>);\n }\n });\n};\n","import { RequestContext, ResponseResult } from '../layer/types';\nimport { CacheValue, LatestHitAttempt } from './types';\nimport { retry, mapRequest } from './utils';\n\nexport default class TTLCache {\n private cache: Map<string, CacheValue>;\n\n private readonly ttl: number;\n\n // it's used as a lookup table to check consecutive requests\n private readonly latestAttempts: LatestHitAttempt[];\n\n private readonly MAX_LATEST_ATTEMPTS = 5;\n\n private readonly attemptTTL: number;\n\n private readonly MAX_CACHE_SIZE = 25;\n\n constructor(ttl = 900) {\n this.cache = new Map();\n this.ttl = ttl;\n this.attemptTTL = ttl - 50;\n this.latestAttempts = [];\n }\n\n private pushLatestHitAttemps(key: string): void {\n if (this.latestAttempts.length === this.MAX_LATEST_ATTEMPTS) {\n this.latestAttempts.pop();\n }\n this.latestAttempts.unshift({ key: key, ttl: Date.now() + this.attemptTTL });\n }\n\n private shouldAttempt(key: string): boolean {\n return !!this.latestAttempts.find(attempt => attempt.key === key && Date.now() < attempt.ttl);\n }\n\n private generateCacheKey(request: RequestContext): string {\n mapRequest(request as unknown as Record<string, unknown>);\n const { url, ...rest } = request;\n return `${url}-${JSON.stringify(rest)}`;\n }\n\n public add(request: RequestContext, response: ResponseResult<unknown>): void {\n if (this.size() >= this.MAX_CACHE_SIZE) {\n this.clear();\n }\n\n this.cache.set(\n this.generateCacheKey(request),\n {\n response,\n expirationTime: Date.now() + this.ttl\n }\n );\n }\n\n public async get(request: RequestContext): Promise<ResponseResult<unknown> | null> {\n const key = this.generateCacheKey(request);\n\n const shouldAttempt = this.shouldAttempt(key);\n this.pushLatestHitAttemps(key);\n\n let cacheItem: CacheValue<unknown> | undefined = this.cache.get(key);\n\n // it's a retry mechanism to handle consecutive hit attempts\n // to decrase the posiblity of worst case scenarios, a lookup table is used\n // and early exists are implemented\n if (!cacheItem && shouldAttempt) {\n cacheItem = await retry(() => new Promise((resolve, reject) => {\n const item = this.cache.get(key);\n\n if (item) {\n if (this.isValueValid(item)) resolve(item);\n else {\n this.cache.delete(key);\n resolve(undefined);\n }\n }\n\n reject();\n }), 40, 50);\n }\n\n if (cacheItem && this.isValueValid(cacheItem)) {\n return cacheItem.response;\n }\n\n this.cache.delete(key);\n return null;\n }\n\n public remove(request: RequestContext): void {\n this.cache.delete(this.generateCacheKey(request));\n }\n\n public clear(): void {\n this.cache.clear();\n }\n\n public size(): number {\n return this.cache.size;\n }\n\n private isValueValid(cacheItem: CacheValue<unknown> | undefined): boolean {\n if (!cacheItem) return false;\n return Date.now() < cacheItem.expirationTime;\n }\n}\n","import {\n Config, Methods, RequestArgs, RequestParameters\n} from '../layer/types';\n\nexport const argumentParser = (method: Methods, args: RequestArgs): RequestParameters => {\n switch (true) {\n case args.length === 1: {\n const [url] = args;\n return { url, config: {} };\n }\n case args.length === 2 && ['get', 'delete'].includes(method): {\n const [url, config] = args;\n return { url, config: config as Config };\n }\n\n case args.length === 2 && ['put', 'post'].includes(method): {\n const [url, data] = args;\n return { url, data, config: {} };\n }\n\n case args.length === 3: {\n const [url, data, config] = args;\n if (config) return { url, data, config };\n return { url, data, config: {} };\n }\n\n default:\n return { url: '' };\n }\n};\n","// type InterceptorKeys = keyof DefaultInterceptorsConfig;\n// type InterceptorValues = DefaultInterceptorsConfig[InterceptorKeys];\n\nimport { CustomConfig, DefaultInterceptorsConfig } from '../layer/types';\n\nexport const constructInterceptorConfig = (\n config: CustomConfig,\n interceptorConfig: DefaultInterceptorsConfig | undefined\n): DefaultInterceptorsConfig => {\n return { ...interceptorConfig, ...config };\n\n // later if we want to strict the usage of configs\n // we can only override the settings which are defined on request-layer\n // it can be used instead\n\n // return (Object.entries(interceptorConfig) as [InterceptorKeys, InterceptorValues][])\n // .reduce((newConfig, props) => {\n // const [key, value] = props;\n // return { ...newConfig, [key]: config[key] ?? value };\n // }, {} as DefaultInterceptorsConfig);\n};\n","import { Interceptor } from '../types';\n\nexport class InterceptorHandler<T> {\n interceptors: Interceptor<T>[];\n\n constructor(interceptors: InterceptorHandler<T>['interceptors']) {\n this.interceptors = interceptors;\n }\n\n run(ctx: T): void {\n this.interceptors.forEach(interceptor => {\n interceptor(ctx);\n });\n }\n}\n","import { InterceptorHandler } from '..';\nimport {\n RequestContext,\n RequestInterceptor, ResponseContext, ResponseInterceptor\n} from '../../types';\n\nconst createDefaultInterceptors = (\n reqInterceptors: RequestInterceptor[],\n resInterceptors: ResponseInterceptor[],\n resFailedInterceptors: ResponseInterceptor[]\n): {preRequest: InterceptorHandler<RequestContext>, postRequest: InterceptorHandler<ResponseContext>, postFailedRequest: InterceptorHandler<ResponseContext>} => ({\n preRequest: new InterceptorHandler(reqInterceptors),\n postRequest: new InterceptorHandler(resInterceptors),\n postFailedRequest: new InterceptorHandler(resFailedInterceptors)\n});\n\nexport { createDefaultInterceptors };\n","// If the value is not a string or a Blob, append() will convert it to a string automatically\n// Therefore using \"any\" as type, should be safe\n\nimport { BaseResponse, ResponseContext } from '../../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function objToFormData(obj: Record<string, any>, prefix?: string, formData?: FormData): FormData {\n // eslint-disable-next-line no-param-reassign\n formData = formData ?? new FormData();\n\n if (obj) {\n Object.keys(obj).forEach(key => {\n const keyName = prefix ? `${prefix}[${key}]` : key;\n\n if (typeof obj[key] !== 'object') {\n formData?.append(keyName, obj[key]);\n } else {\n objToFormData(obj[key], keyName, formData);\n }\n });\n }\n\n return formData;\n}\n\nexport const isCrossOrigin = (url?: string): boolean => {\n const { location: { origin } } = window || {};\n if (url?.startsWith('http') && !url.includes(origin)) {\n return true;\n }\n return false;\n};\n\nexport const axiosNormalizer = (ctx: ResponseContext): void => {\n if (ctx.interceptorConfig?.disableResponseNormalizer) {\n return;\n }\n if ('data' in ctx.resp) {\n ctx.result = ctx.resp.data;\n }\n\n const resp = ctx.result as BaseResponse;\n\n if (resp && typeof resp.responseCode === 'number'\n && (resp.responseCode < 200 || resp.responseCode > 299)) {\n ctx.result = Promise.reject(resp);\n return;\n }\n\n if (resp && resp.content) {\n ctx.result = resp.content;\n }\n};\n\nexport const engineResponseNormalizer = (ctx: ResponseContext): void => {\n switch (ctx.engineName) {\n default:\n axiosNormalizer(ctx);\n }\n};\n","import { isSalesforceEnv, handleCustomNavigation } from '@jotforminc/utils';\nimport { RequestInterceptor, ResponseInterceptor } from '../../../types';\n\nexport const salesforceAuthFailed: ResponseInterceptor = ctx => {\n if (`${ctx?.resp?.config?.baseURL}/${ctx?.resp?.config?.url}`.startsWith('/API/salesforce/')) {\n if (ctx?.resp?.data?.responseCode === 400 && ctx?.resp?.data?.message === 'Please reauthenticate your account.') {\n handleCustomNavigation(`/platform/salesforce/platform-pages/reauth?rp=${window.location}`, '_self', true);\n }\n }\n};\n\nconst salesforceRequestInterceptors: RequestInterceptor[] = [];\nconst salesforceResponseSuccessInterceptors: ResponseInterceptor[] = [];\nconst salesforceResponseFailedInterceptors: ResponseInterceptor[] = [];\n\nlet isSalesforcePlatform = false;\ntry {\n isSalesforcePlatform = isSalesforceEnv();\n} catch (e) {\n console.log('Error :: salesforceInterceptors -> ', e);\n isSalesforcePlatform = false;\n}\nif (isSalesforcePlatform) {\n salesforceResponseFailedInterceptors.push(salesforceAuthFailed);\n}\n\nexport {\n salesforceRequestInterceptors,\n salesforceResponseSuccessInterceptors,\n salesforceResponseFailedInterceptors\n};\n","import {\n RequestInterceptor, ResponseInterceptor\n} from '../../types';\nimport { engineResponseNormalizer, isCrossOrigin, objToFormData } from './utils';\nimport { salesforceResponseFailedInterceptors } from './platform/salesforceInterceptors';\n\nexport const requestUrlInterceptor: RequestInterceptor = ctx => {\n const { url, config } = ctx;\n\n // ignore base url if req starts with different origin\n // or it starts with a protocol\n if (url.startsWith('/') || url.startsWith('https://') || url.startsWith('http://')) {\n config.baseURL = '';\n }\n // attach apiKey header if it exists\n const apiKey = ctx.interceptorConfig?.apiKey;\n if (apiKey) {\n ctx.config.headers = {\n apiKey,\n ...ctx.config.headers\n };\n }\n\n if (config.method === 'get' && ctx.data) {\n ctx.config.params = { ...(ctx.config.params as Record<string, unknown>), ...(ctx.data as Record<string, unknown>) };\n ctx.data = null;\n }\n};\n\n// xml requests are heavily used in form-builder\n// this interceptor does the job of reqwest library\nexport const requestXMLInterceptor: RequestInterceptor = ctx => {\n if (ctx.interceptorConfig?.isFormData) {\n ctx.config.headers = {\n Accept: '*/*',\n ...ctx.config.headers\n };\n\n if (ctx.data) {\n ctx.data = objToFormData(ctx.data as Record<string, Record<string, unknown>>);\n }\n }\n};\n\nexport const requestNormalizer: RequestInterceptor = ctx => {\n const { config } = ctx;\n if (ctx.interceptorConfig?.teamID) {\n if (isCrossOrigin(ctx.url) || config.disableTeamIDHeader) {\n return;\n }\n\n config.headers = { 'jf-team-id': ctx.interceptorConfig.teamID, ...config.headers };\n }\n};\n\nexport const responseNormalizer: ResponseInterceptor = ctx => {\n engineResponseNormalizer(ctx);\n};\n\nexport const requestInterceptors = [requestUrlInterceptor, requestXMLInterceptor, requestNormalizer];\nexport const responseInterceptors = [responseNormalizer];\n\nexport const defaultRequestInterceptors = [];\nexport const defaultResponseSuccessInterceptors = [];\nexport const defaultResponseFailedInterceptors = [...salesforceResponseFailedInterceptors];\n","import { createDefaultInterceptors } from '../layer/interceptors/defaultInterceptors';\nimport {\n requestInterceptors,\n responseInterceptors,\n defaultRequestInterceptors,\n defaultResponseSuccessInterceptors,\n defaultResponseFailedInterceptors\n} from '../layer/interceptors/defaultInterceptors/defaultInterceptors';\nimport { Interceptors } from '../layer/interceptors/types';\nimport {\n DefaultInterceptorsConfig\n} from '../layer/types';\n\nexport const setInterceptors = (config: DefaultInterceptorsConfig | undefined)\n: Interceptors | undefined => {\n if (config?.disableInterceptors) return undefined;\n\n let preRequestInterceptors = config?.customRequestInterceptors ?? requestInterceptors;\n let postRequestInterceptors = config?.customResponseInterceptors ?? responseInterceptors;\n const postRequestFailedInterceptors = [];\n\n if (config?.disableRequestInterceptors) {\n preRequestInterceptors = [];\n }\n\n if (config?.disableResponseInterceptors) {\n postRequestInterceptors = [];\n }\n\n if (!config?.disableDefaultInterceptors) {\n preRequestInterceptors.push(...defaultRequestInterceptors);\n postRequestInterceptors.push(...defaultResponseSuccessInterceptors);\n postRequestFailedInterceptors.push(...defaultResponseFailedInterceptors);\n }\n\n return createDefaultInterceptors(preRequestInterceptors, postRequestInterceptors, postRequestFailedInterceptors);\n};\n","export const defaultValidation = (status: number): boolean => {\n return status >= 200 && status < 300;\n};\n","import { AxiosEngine } from './AxiosEngine';\n\n// add ${newEngine} class\nexport const ENGINES = {\n AXIOS: AxiosEngine\n};\n\nexport type EngineNames = keyof typeof ENGINES\n","import axios, {\n AxiosInstance, AxiosRequestConfig, AxiosResponse, Method\n} from 'axios';\nimport { CustomConfig, Engine, RequestFunction } from '../types';\nimport { defaultValidation } from './utils';\n\nexport class AxiosEngine implements Engine {\n instance: AxiosInstance;\n\n public get: RequestFunction;\n\n public post: RequestFunction;\n\n public put: RequestFunction;\n\n public delete: RequestFunction;\n\n constructor(baseURL: string, config?: CustomConfig) {\n this.instance = axios.create({\n baseURL,\n validateStatus: config?.disableEngineThrowOnError ? () => true : defaultValidation,\n ...config\n });\n\n this.get = this.createRequestMethod('get');\n\n this.post = this.createRequestMethod('post');\n\n this.put = this.createRequestMethod('put');\n\n this.delete = this.createRequestMethod('delete');\n }\n\n public createRequestMethod(method: Method): RequestFunction {\n return <T, D = void>(url: string, config?: AxiosRequestConfig, data?: D) => {\n return this.instance.request<T, AxiosResponse<T>, D>({\n url,\n method,\n data,\n ...config\n });\n };\n }\n}\n","import { isAxiosError } from 'axios';\nimport { RequestFunction, Responses } from './types';\n\nexport type AwaitedEngineResponse = Awaited<ReturnType<RequestFunction>>\n\nexport const mapAxiosResponse = (awaitedEngineResp: AwaitedEngineResponse): Responses<unknown> => {\n if (isAxiosError(awaitedEngineResp) && awaitedEngineResp.response) {\n return awaitedEngineResp.response;\n }\n\n return awaitedEngineResp as Responses<unknown>;\n};\n","import TTLCache from '../request-cache';\nimport { argumentParser } from '../utils/argumentParser';\nimport { constructInterceptorConfig } from '../utils/constructInterceptorConfig';\nimport { setInterceptors } from '../utils/setInterceptors';\nimport { EngineNames, ENGINES } from './engines/constants';\nimport { Interceptors } from './interceptors/types';\nimport {\n CustomConfig,\n DefaultInterceptorsConfig,\n Engine,\n Methods,\n RequestArgs,\n RequestContext,\n RequestFunction,\n ResponseContext,\n ResponseResult,\n Responses\n} from './types';\nimport { mapAxiosResponse } from './utils';\n\nexport class RequestLayer {\n engineInstance: Engine;\n\n engineName: EngineNames;\n\n interceptors?: Interceptors;\n\n configs?: {engineConfig?: CustomConfig, interceptorConfig?: DefaultInterceptorsConfig};\n\n ttlCache?: TTLCache;\n\n baseURL?: string;\n\n get: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n post: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n delete: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n put: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n constructor(\n baseURL?: string,\n configs?: {engineConfig?: CustomConfig, interceptorConfig?: DefaultInterceptorsConfig},\n engineName: EngineNames = 'AXIOS'\n\n ) {\n this.configs = configs;\n this.engineInstance = new ENGINES[engineName](baseURL || '', { withCredentials: true, ...configs?.engineConfig });\n this.interceptors = setInterceptors(configs?.interceptorConfig);\n this.engineName = engineName;\n this.baseURL = baseURL;\n\n if (configs?.interceptorConfig?.shouldCache) {\n this.ttlCache = new TTLCache(configs?.interceptorConfig?.cacheTTL);\n }\n\n this.get = this.createMethod('get');\n\n this.post = this.createMethod('post');\n\n this.delete = this.createMethod('delete');\n\n this.put = this.createMethod('put');\n }\n\n createMethod(method: Methods): <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T> {\n return async <T>(...args: RequestArgs): Promise<ResponseResult<T> | T> => {\n const { url, config, data } = argumentParser(method, args);\n\n // it enables to override request layer's interceptor configs\n // so configs are prioritized for endpoints, not for layer configs\n const modifiedInterceptorConfig = config\n ? constructInterceptorConfig(config, this.configs?.interceptorConfig)\n : this.configs?.interceptorConfig;\n\n const req: RequestContext<T> = {\n url,\n config: { method, ...config },\n data: (data as T),\n interceptorConfig: modifiedInterceptorConfig,\n engineName: this.engineName\n };\n\n const shouldCacheRun = this.ttlCache && !config?.disableCache && modifiedInterceptorConfig?.shouldCache;\n\n if (!modifiedInterceptorConfig?.disableRequestInterceptors) {\n this.interceptors?.preRequest?.run(req);\n }\n\n const cacheRequest: RequestContext = {\n ...req,\n data: req.data instanceof FormData ? Object.fromEntries(req.data as unknown as Iterable<readonly [PropertyKey, unknown]>) : req.data,\n interceptorConfig: {\n ...req.interceptorConfig,\n customRequestInterceptors: [],\n customResponseInterceptors: []\n }\n };\n\n if (shouldCacheRun) {\n const cachedResponse = await this.ttlCache?.get(cacheRequest);\n if (cachedResponse) {\n return cachedResponse as ResponseResult<T>;\n }\n }\n\n let resp: Responses<T>;\n let ctx: ResponseContext<T>;\n\n switch (method) {\n case 'get':\n case 'delete':\n case 'post':\n case 'put': {\n let engineResponse;\n try {\n engineResponse = await this.engineInstance[method]<T>(req.url, req.config, req.data);\n } catch (e) {\n resp = this.mapEngineResponse<T>(e as Awaited<ReturnType<RequestFunction>>);\n ctx = {\n resp, config: req.config, interceptorConfig: modifiedInterceptorConfig, engineName: this.engineName, result: resp\n };\n this.interceptors?.postFailedRequest?.run(ctx);\n\n throw e;\n }\n\n resp = this.mapEngineResponse<T>(engineResponse);\n\n ctx = {\n resp,\n config: req.config,\n interceptorConfig: modifiedInterceptorConfig,\n engineName: this.engineName,\n result: resp\n };\n break;\n }\n\n default: {\n const customMethod = this.engineInstance.createRequestMethod(method);\n resp = await customMethod<T>(url, config, data as T) as Responses<T>;\n ctx = {\n resp, config: req.config, interceptorConfig: modifiedInterceptorConfig, engineName: this.engineName, result: resp\n };\n }\n }\n\n if (!modifiedInterceptorConfig?.disableResponseInterceptors) {\n this.interceptors?.postRequest?.run(ctx);\n }\n\n if (shouldCacheRun) {\n this.ttlCache?.add(cacheRequest, ctx.result);\n }\n\n return ctx.result;\n };\n }\n\n setTeamID(teamID: number): void {\n this.configs = {\n ...this.configs,\n interceptorConfig: {\n ...this.configs?.interceptorConfig,\n teamID\n }\n };\n }\n\n getTeamID(): DefaultInterceptorsConfig['teamID'] {\n return this.configs?.interceptorConfig?.teamID;\n }\n\n private mapEngineResponse = <T>(\n awaitedEngineResp: Awaited<ReturnType<RequestFunction>>\n ): Responses<T> => {\n switch (this.engineName) {\n default:\n return mapAxiosResponse(awaitedEngineResp) as Responses<T>;\n }\n };\n}\n","import { ResponseInterceptor } from '../../types';\n\n// if rejected it returns AxiosResponse instead AxiosResponse.data\n// it is implemented to refactor projects that use RequestManager\nconst requestManagerResponseNormalizer: ResponseInterceptor = ctx => {\n if (ctx.interceptorConfig?.disableResponseNormalizer) {\n return;\n }\n\n const { resp } = ctx;\n\n if (resp && resp.data && typeof resp.data.responseCode === 'number'\n && (resp.data.responseCode < 200 || resp.data.responseCode > 299)) {\n ctx.result = Promise.reject(ctx.resp);\n return;\n }\n\n if (resp && resp.data) {\n ctx.result = resp.data?.content || resp.data;\n }\n};\n\nconst returnAxiosData: ResponseInterceptor = ctx => {\n // it is implemented for reqwest only\n if (ctx.engineName === 'AXIOS') {\n ctx.result = (new Promise(resolve => {\n if ('data' in ctx.resp) {\n resolve(ctx.resp.data);\n }\n }));\n }\n};\n\nexport const Interceptors = {\n requestManagerResponseNormalizer,\n returnAxiosData\n};\n"],"names":["window","module","getFSEnabledForSignFiller","e","checkImageHeight","checkImageWidth","browserWidth","latestTap","baseKey","AUTH_METHODS","PARTNER_NAMES","PARTNER_NAMES_V1","RESOURCE_TYPE","INTEGRATION_ACTION_TYPES","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_polygon","_g","_defs","_use","_global","_window","_window__presentation","_window__presentation1","RemoveBrandingFooter","isPaidUser","isOwner","referrerUrl","removeBranding","content","translationRenderer","text","t","PropTypes","withClickOutside","WrappedComponent","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","otherProps","wrapper","useRef","handleClickOutside","event","classList","xClass","item","useEffect","_extends","Object","n","arguments","r","BASE_JOTFORM_URL","PRICING_JOTFORM_URL","UTM_PROP_SCHEME","string","PRODUCT_CONFIGS","utmParser","scheme","key","encodeURIComponent","BrandingFooter","activeUtmScheme","passiveUtmScheme","showBranding","isPassive","brandingIcon","style","product","onClick","showRemove","setShowRemove","useState","appName","showAppName","bannerTagLine","buttonText","f","shape","bool","func","node","oneOf","JotformLogo","safeJSONParse","str","defVal","allowObj","JSON","ex","getUrlParameter","name","_global_location","_global_window_location","_name","results","regex","RegExp","decodeURIComponent","closest","_element","selector","stopSelector","element","retval","nodeContains","node2","node1","isElement","selectAllText","target","shouldCollapse","focusBefore","selection","range","document","passiveEvent","Editable","allowEmpty","applyKeyCodes","cancelKeyCodes","defaultClass","disabled","disabledClass","editClass","forceEdit","isSelected","onCancel","onChange","onDoubleClick","onEditBegin","placeholder","tagName","isEditActive","setIsEditActive","isForceEdit","setIsForceEdit","editableRef","willTrimContent","trimmedContent","handleDoubleClick","currentContent","CustomTag","classNames","keyCode","shiftKey","cancel","apply","memo","fontTypes","elem","index","self","fontSizes","divider","section","ITEM_TYPE","settings","IconAlignTextLeft","IconAlignTextCenter","IconAlignTextRight","FontBold","FontItalic","FontUnderline","HeaderElement","headerFontColor","headerFontFamily","headerFontSize","headerFontStyle","headerLineColor","headerLineOpacity","headerLineShow","headerLineSize","headerLineStyle","headerOpacity","headerText","headerTextAlign","id","isLocked","subHeaderFontColor","subHeaderFontFamily","subHeaderFontSize","subHeaderFontStyle","subHeaderOpacity","subHeaderShow","subHeaderText","subHeaderTextAlign","onItemChange","draggable","setDraggable","_headerFontStyle","_subHeaderFontStyle","headerStyle","parseInt","subHeaderStyle","newValue","onDragStart","useCallback","defaultItem","details","stripHTML","tmp","emojiArrays","chartColorList","emoBase","placeholderImage","defaultColorPalette","excludeQuestionsForEntryLimit","OPTION","STANDARD","MATRIX","optionFields","optionConfig","paymentFields","paymentConfig","standardFields","standardConfig","scaleFields","scaleConfig","customFields","reduceToConfig","arr","conf","all","current","_all","chartAvailabilityMap","chartQuestions","specialQuestions","isEmojiSlider","type","inputType","mrows","isRowlessMatrix","getTrueQuestionType","question","isEmoji","isRowless","getPipedNameWithLineBreaks","isPlainObject","getPipedName","getPipedLink","getPipedIsDeleted","responses","total","upper","parseTotal","moreThanOne","onlyOne","getPercentValue","value","roundValues","round","percentage","Number","finalValue","questionTypesWithoutOptions","dynamicSort","property","sortType","a","b","findChartData","chartOption","c","comparisonValue","getVisibleOptionsTotal","data","valueSource","chartSelectedMetric","acc","curr","orderChartData","chartType","chartData","orderBy","chartOptions","fromSettings","colorPalette","fullChartData","isRoundedValues","fromSummarize","newTotal","questionType","helperIndex","_exactChartData","found","link","isDeleted","color","isVisible","undefined","val","visibleOptionsTotal","exactChartData","whichPaletteIsUsed","reOrderColors","newExactChartData","optionsByFormOrder","option","sortedChartData","options","exactData","v","index1","index2","isEqual","Infinity","sanitize","strippedString","sanitizeChartData","d","sanitizeRowValues","rowValues","getCorrectedMatrixData","matrixSelectedRows","filterHiddenKeys","mcolumns","toggleText","dcolumns","parsedSelectedRows","questionRows","mr","questionColumns","getQuestionColumns","mc","dc","selectedRows","_selectedRows","row","sortedValueKeys","column","result","_item","itemKeys","uniqueData","o","sanitizedChartData","sortedData","single","vals","_vals","s","i","savedOption","sanitizedKey","_a","values","filteredVals","sortBy","prepareForEntryLimit","entryLimit","otherChartDataOptions","chartLimit","showedChartData","otherChartData","otherValue","_curr","order","otherData","getLabelImage","_isEmojiSlider","isImageChoice","isAssignee","exactValue","getLabelText","getLabelIsDeleted","getColorLight","hex","g","cmin","Math","l","cmax","getAverage","cd","emojiArr","getColorPalette","chartColorPalette","reportColorPalette","reportCustomColorPalettes","selectedPaletteId","parsedCustomColorPalettes","foundPalette","whichPaletteGroup","p","getCustomChartBgStyle","chartBgColor","chartBgCorners","chartBgOpacity","chartBgShow","rgba","getCustomHeaderStyle","getDefaultExactData","totalChoice","average","getPaymentChartData","products","defaultData","productList","Array","soldProducts","productOptions","image","images","defaultLine","lineData","line","_products","obj","cloneDeep","pName","renameKeys","newKeys","mergeWithLabelsAsStandard","customLabels","cData","mergeWithCustomLabels","dataKeys","isMatrix","isPaymentField","isSheetbox","sortedDataKeys","dKey","getExactChartData","selectedMetric","error","console","sortProductData","_exactChartData_","optionsName","dataItem","getMergedData","_chartData","rest","getCurrencyFormatter","currency","formatter","Intl","getCustomQuestions","customQuestions","PieChartTooltip","active","payload","_selectedPayload","selectedPayload","dataKey","isStarRating","isShowName","isShowPercentage","isShowResponse","isLightMode","isShowTitle","renderAssigneeInfo","assigneeText","renderStars","stars","starStyle","starValues","k","IconRating","IconHeartFilled","IconStarFilled","fillColor","star","renderPieInfo","IconSheetbox","sheetboxSelected","sheetboxUnselected","React","RADIAN","PieLabel","cx","cy","innerRadius","chartFontFamily","chartFontSize","labelNameShow","labelPercentageTotalShow","labelResponseValueShow","primaryLabelColor","secondaryLabelColor","midAngle","outerRadius","radius","x","y","insideRadius","insideX","insideY","isDark","pieChartMargin","ChartPie","customProps","reportTooltip","wrapperMaxWidth","parsedReportTooltip","useMemo","isShowTooltip","isExistsLabel","isEmpty","ResponsiveContainer","PieChart","Pie","entry","Cell","Tooltip","ChartTooltip","CustomizedAxisTick","height","layout","visibleTicksCount","width","tickStyle","_data_find","isHorizontal","getCustomLabelStyle","offset","position","viewBox","sign","CustomizedLabel","label","labelStyle","payloadValue","positionForValue","positionForPercentage","valueToUse","isFitInLabel","referenceAxis","conditionForOutside","Text","ChartTooltipList","children","barChartMargin","columnChartMargin","axisDomain","dataMax","ChartBar","onAnEventTrigger","axisWidth","categoryAxisWidth","allowDragging","setAllowDragging","scale","setScale","initialStateTooltip","tooltip","setTooltip","handleOnMouseEnter","handleOnMouseLeave","wrapperStyle","exactCustomQuestions","CustomTooltip","cartesianProps","commonBarProps","commonLabelListProps","dataKeyForAxis","customizedAxisTick","customBarSizeProps","onResizeStart","onResizeStop","direction","ref","customTooltipProps","ResponsiveContent","containerWidth","containerHeight","BarChart","CartesianGrid","XAxis","YAxis","Bar","_d","_d_key","LabelList","Resizable","LineChartTooltip","isShowAmount","calculateTotalMetric","metric","totalAmount","totalQuantity","IconCalendar","ChartLine","_data_","dataLine","yAxisFormatter","commonLineProps","LineChart","rKey","multiplier","fill","Line","avgFields","ChartBasic","form","showAverage","filteredOtherData","mostWantedOption","maxBy","metricTotal","percent","mostWantedPercentage","mostWantedLink","mostWantedName","getEmoji","emojiArray","getStars","avgVal","fillRatio","svgWidth","getProductImage","productName","showLabel","getMostWanted","renderImage","TextGridItemRenderer","showResponseColumn","root","containerStyle","valueHeight","setValueHeight","areEqual","createItemData","memoize","TextGrid","incomingData","responseColumnShow","isThumbnail","resizeObserverErrDiv","resizeObserverErr","columnStyle","itemData","Header","VirtuosoList","ChartLabel","customHeaderStyle","customResponseStyle","emptyCount","filters","itemID","responseCount","responseSummaryShow","isFiltered","icons","bar","pie","basic","donut","textGrid","ChartPlaceholder","isPlaceholder","deletedQuestion","ChartIcon","isEmptyChart","EmptyChart","hideSettings","ChartLegendItem","legendStyle","renderSheetbox","Icon","ChartLegend","contentStyle","legendData","ChartDataList","isProductList","productData","pData","renderBullet","productImg","InfoComponentContainer","necessaryProps","ChartComponent","itemResources","Component","infoPosition","infoType","customChartBgStyle","parsedChartOptions","parsedCustomLabels","empty","mergedChartData","infoComponentProps","ChartContainer","itemAccessor","selectedField","resources","isProbablyLoading","qid","chartDataOptions","exactChartType","ChartTypes","_qid","fieldLabel","shouldReturnEmptyChart","getDefaultHeaderText","questions","qType","subLabel","hint","readyToUseLabels","qOrder","previousQuestion","q","typeLabel","getSVGbyQuestionType","IconTagsFilled","IconCalendarFilled","IconTypeSquareFilled","IconTagFilled","IconAt","IconNumberSquareFilled","IconPhoneFilled","IconText","IconLocationPinFilled","IconPaperclipDiagonal","IconConditionalBranchFilled","IconUsersFilled","IconPenSignFilled","IconSquaresArrow","IconShapesFilled","DefaultHeaderRenderer","columnIndex","GridHeader","columns","HeaderItemRenderer","innerRef","onScroll","onResizeColumnWidth","frozenQuestions","HeaderItem","MemoizedGridHeader","forwardRef","Element","DefaultFixedCellRenderer","rowIndex","rowHeight","gridHeaderHeight","TableGrid","CellRenderer","fixedItemData","FixedCellRenderer","fixedColumns","gridHeight","gridWidth","rowCount","columnHash","resizedColumn","scrollbar","gridRef","gridHeaderRef","scrollbarLeft","gridLeftRef","FixedCell","DefaultCellRenderer","onGridHeaderScroll","scrollLeft","onScrollLeft","columnWidth","fixedColumnWidth","gridColumnHeight","leftPaneWidth","_","gridStyle","freezeLineStyle","Scrollbar","Grid","GridHeaderItem","frozenColumns","isFreezePin","setFreezePinned","onResize","throttle","iconHeight","iconWidth","svg","headerItem","IconThumbtackVerticalFilled","noSanitize","textWrapper","textWrapperRef","Wrapper","dompurify","ViewWithAlignment","Styled","View","LIST_TYPES","NUMBER_FORMATS","ROW_BASED_MATRIX_TYPES","LOCALES","isJSVM","global","isNative","isBrowser","sanitizeHTML","html","sanitizeHtml","getMonth","month","parsed","loadMomentLocale","locale","correctedLocale","moment","getDateTimeText","getDateTimeValues","AnswerYear","AnswerMonth","AnswerDay","AnswerHour","AnswerMinute","AnswerAMPM","AnswerSecond","hideTime","dateFormat","userTimeZone","shouldCalculateTimeZone","localeFn","date","datetime","monthFormat","momentFormat","controlledDateFormat","dateObject","dateText","generateNumberArray","nl2br","splitted","Fragment","parseJSONObject","json","isBase64Image","url","isLocalFile","getFixedUrl","timestamp","baseURL","fixedUrl","separator","Date","sanitizedHTML","sanitizeOrStripHTML","mapAnswerItems","ItemComponent","items","itemKey","justifyContentPicker","alignment","isAnswerExits","child","convertAnswerToArray","answer","renameDuplicateRows","rows","uniqueRows","trimmedName","fixTableHeader","getBirthdateText","day","year","format","monthStr","dateObj","mm","fm","replaceUrlsWithAnchors","regex2Link","optimizeImageUrl","newURL","URL","hexToRgb","bigint","hexToRgba","opacity","approvalOptionValues","parseConfigurableListFields","fields","matches","match","field","count","decideWidgetTableData","parsedAnswer","tableData","intersectedFields","parsedFields","newTableData","processWidgetTableData","widgetsNeedsTheirAnswersToBeSorted","col","LabelText","Label","prevProps","_this_props","textProps","textStyle","allowHTML","childLabels","WrappedLabelText","isValid","prettyLabel","styledProps","LabelWithAlignment","flexBasis","Answer","AnswerWithAlignment","Baseline","widgetId","simpleBaseLine","simpleBaseLineProps","answerWrapperProps","selectionProps","_labelContainerProps","labelHiddenClass","unescape","Image","alt","EmptyResult","StyledText","fontWeight","ImageView","Address","showMap","AnswerLine1","AnswerLine2","AnswerCity","AnswerState","AnswerPostal","AnswerCountry","labelProps","answerProps","baselineProps","mapLink","largerMapLink","emptyResult","address","prev","next","Geocode","response","latitude","longitude","north","south","west","east","largerLink","args","arg","street1","street2","streetLine","city","state","postalCode","cityLine","country","tags","others","TimezoneText","Appointment","timezone","showTimezone","timeFormat","submissionDate","isNewAppointment","dateStr","duration","serverTimeZone","endDate","answerTimeFormat","Emoji","EmojiRendererWithoutLazy","size","EmojiWithoutLazy","oneOfType","number","StyledTextHolder","StyleSubText","StyledImageLine","backgroundColor","StyledImage","AssigneeLine","imageLabel","valueContainerProps","imageContainerProps","optimizeImage","showSubLabel","teamAvatarID","AssigneeItem","opt","subOpt","checked","mixPropTypes","propTypes","ContainerProps","ListItem","ShowAll","ListItems","ItemProps","ListItemProps","ListTypes","OptionsArrayItem","MultiChoiceAnswer","OptionsArray","SubmissionWidget","NumberFormats","ListPropTypes","SubmissionWidgetPropsTypes","LocaleTypes","ViewWrap","AssigneeList","itemProps","containerProps","ImageLine","noCache","noImgPlaceholder","imageUrl","imageSource","baseUrl","_imgURL","ImageItem","Imageline","ImageList","ViewChild","CommaList","OptionItem","remainingProps","OptionList","StyledListItem","OrderedList","StyledView","Checkbox","interactive","handleChange","CheckbowWrapper","CheckboxContainer","CheckboxLabel","CheckboxView","CheckboxList","UnorderedList","List","allItems","showAll","itemIndex","COMMA","ORDERED","CHECKBOX","UNORDERED","IMAGE","ASSIGNEE","memoizedJSONParse","AnswerComponent","ExtendedAnswerComponent","optionsExtender","submissionWidget","optionsArray","sheetField","otherOption","optionKey","Assignee","answerTupleList","answerArray","txt","_optionsArray_answerArr","_optionsArray_answerArr1","answerArr","assignee","avatarUrl","email","withSubmissionWidgetProps","defaultItemProp","listType","editMode","toggleProps","isSubmissionWidget","submissionWidgetAnswer","allOptions","optionsLength","baseItemProps","prop","curatedItems","Touchable","Datetime","dateTimeText","CountryList","CanadianProvinces","GenderList","USStates","USStatesAbbr","LocationCountries","Days","Months","TimeZones","Dropdown","multipleSelections","isToggleActive","special","isPredefined","Specials","isRenderItsToggle","StyledAnchor","Hypertext","Email","isMailTo","answerText","HyperText","ICON_TYPES_ALL","ICON_TYPES","getIconType","fileFormat","findIndex","iconType","makeCamelCase","newStr","getFileName","getFileExtension","isImage","src","encodeRequestUrl","prepareFiles","withIconType","file","fileName","fileUrl","extension","getUploadUrl","removeExtension","filename","isPDF","isImageFile","HalfView","Fileupload","showFileNameAsText","showImageHyperlink","imagePropsArray","filePropsArray","fileNameProps","hideImageLine","useEncodeURI","imgPropsArray","fileProps","uploadedUrl","answerIndex","encodedRequestUrl","encodeURI","FileUtils","Utils","SimpleText","Fullname","prefix","firstName","middleName","lastName","suffix","BaseImage","Imagechoice","imgUrl","imageText","BLOT_REGEX","isOldBlotId","setParsedId","parseBlotId","blotId","setBlotId","COLOR_LIST","getItemFromList","normalizeDate","normalizeTime","hourSelect","minuteSelect","ampm","makeArray","isArray","normalizeData","isString","normalizeArray","uniq","flatten","isAnswerEmpty","isObject","getAnswerByType","answers","merged","ax","time","path","getNumberFromLabel","compose","split","defaultTo","getIndex","add","getFieldOptions","isMerged","normalizeURLPath","isAbsoluteURL","normalizeURL","getSiblingAnswers","siblingId","CSS","groupID","mainStyle","getHTMLLine","showSublabels","siblingAnswers","_answer","indexOfCurrentAnswer","ReactDOMServer","get","HTML_ANSWER","mainProps","dateSeparator","Sublabel","Subtext","labelContainerProps","getLine","lineProps","listComponent","LIST_ANSWER","ListComponent","getEmptyStringByEnvironment","findBlot","blots","currId","checkTypeToStrip","prepareAnswer","blot","renderAnswer","renderType","getBlots","sortBlots","prevIndex","nextIndex","getListAnswers","updateHTML","template","currBlot","_props","Inline","fullContent","isFullContentVisible","arrayOf","EmojiImage","score","themeDark","themeLight","themeBorder","themeHeaderColor","memoizedTranspose","cell","ColumnOrientedView","RowOrientedView","Thead","Tbody","TableHeader","EmptyHeader","TableData","RowHeader","Row","StyledRow","StyledQuestion","StyledAnswer","Tableview","transpose","orientation","emptyData","cellData","fixedHeader","headerProps","showRowHeader","rowData","header","cells","TableComponent","showColumnHeader","_param","rowHeaderClassName","className","answerClassName","tableComponent","cellPropTypes","capitalize","capitalizeFirstLetter","stripSlashes","n1","isAnswerValid","answerData","isValidObject","isValidArray","normalizeAnswer","useIndex","dummyAnswerRow","parsedAnswerValues","isAnswerArray","ans","sanitizedAnswer","columnLengthDiff","hasColDifference","answerRowData","generateEmojiArray","emojiCount","getOrientation","matrixType","singleInputTables","splitNormalizer","EmojiText","StyledCheckboxImage","StyledRadioActiveImage","Matrix","normalizedAnswer","isDynamic","sanitizedColumns","maxAnswerLength","dummyDeletedColumns","toggleOptions","columnnHeaderProps","yesOption","noOption","useDcols","normalized","strippedHtml","newNormalized","rowAnswer","strippedAns","sublabelProps","cellDataPropTypes","withMatrixProps","MatrixComponent","ExtendedMatrix","featureSet","drows","Mixed","sublabels","answerValue","isStringArray","answerWithQuotationMark","isNumber","numberFormat","answerNum","POINT","NUMBER","Phone","AnswerCountryCode","AnswerAreaCode","AnswerPhoneNumber","AnswerFullNumber","Radio","answerString","Rating","filledStars","emptyStars","scaleFrom","isFilled","raitingArray","Scale","scaleAmount","SheetboxCellContainer","SheetboxWrapper","SheetboxInput","SheetboxCustomInput","Sheetbox","PureComponent","Spinner","Textarea","wysiwyg","mde","isHTMLAnswerAllowed","replacedText","Child","Textbox","Time","AnswerHourRange","AnswerMinuteRange","AnswerAMPMRange","TimeRangeDuration","timeString","timeObject","rangeString","timeMoment","rangeMoment","isTimeValid","isRangeValid","Yesno","Autocomp","Autoincrement","Birthdate","Calculation","Grading","totalGrading","accumulator","intValue","answerLine","Hidden","Range","rangeFrom","rangeTo","Signature","emptySignatureProps","emptyAnswerProps","Slider","maxValue","MetaWidget","_url","base64Decode","Base64","inp","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","input","String","utftext","decodedString","c1","c2","c3","Widget","frameSrc","projectName","widgetPath","searchParams","_safeJSONParse","parsedData","questionID","frameWidth","frameHeight","valid","formID","isFrameLoaded","widgetSettings","widgetType","createRef","WidgetUtils","widgetMetaData","tempAnswer","base64","ImageUploadPreview","onImagePress","urls","SmoothSignature","cfname","ConfigurableList","submitNarration","TakePhoto","metaData","thumbnail","showImageLink","isSelectable","onSelect","href","isInitialWidget","VoiceRecorder","onPress","csvUrlRegex","LocationCoordinate","fullMatch","csvPath","ChecklistWidget","hideunchecked","answerLines","answerCheckboxObjects","checkedStatus","optionName","longerOptions","DynamicTextBoxWidget","TinyMCE","DOMPurify","ButtonCheckboxWidget","optionsChecked","optionsAll","UploadCare","answerPart","DatePickerWidget","description","descriptionProps","descriptionPart","GeoLocation","GPSLocation","GeoStamp","VideoRecorder","LoomVideoRecorder","widgetVideoMode","tableViewWidgetComponents","TABLEVIEW_WIDGETS","listViewWidgetComponents","LISTVIEW_WIDGETS","imageWidgetComponents","IMAGE_WIDGETS","htmlWidgetComponents","HTML_WIDGETS","CustomWidgets","CustomComponent","dontSpreadAnswerPropsToWrapper","ClickOutside","forceCloseOutside","exceptionClass","ProductView","ProductName","ProductPeriod","ProductPrice","ProductImage","ProductOptions","ProductDetails","HeaderText","PriceView","PriceLabel","PriceText","PriceDetailsView","PaymentImageText","PayerView","PayerViewTitle","ProductImageline","SheetsProductView","isPreview","SheetsProductName","SheetsProductDetails","SheetsPriceView","SheetsPriceLabel","SheetsPriceText","SheetsPriceDetailsView","SheetsPayerView","SheetsPayerViewTitle","SheetsProductOptions","SheetsProductPrice","SheetsProductImageline","SheetsPaymentImageText","defaultsMap","sheetsMap","PaymentView","allProducts","boughtProducts","currentIndex","productSpecs","allProductsArray","productSpec","icon","productID","period","price","viewKey","popoverProps","parseFloat","colorMap","showImages","imageContainerStyles","productProps","colorKey","productId","productKey","topic","cost","coupon","shipping","tax","subtotal","paymentStrings","currencyText","paymentStringsDefault","strings","company","street","gateway","pm","payerName","amountIndex","amountArrayIndex","productPrice","productView","productPreview","priceView","payerView","shippingView","transactionView","paymentMethodView","containerCustomProps","getStyledComponent","prettyFormatSanitized","Payment","paymentArray","paymentType","prettyFormat","paymentData","HTMLRenderer","Paymentmethods","SubmissionDate","SubmissionID","SubmissionIP","getAnswer","keys","Submitter","isRGB","isHexColor","hexColorRegex","rgbToHex","rgbVal","rgb","isBrightColor","sourceColor","getIconProps","appIconColor","appIconType","appIconURL","appIconBackground","SubmittedVia","PortalItemRenderer","portalItemProps","StyledPortalItemRenderer","hasAnswer","WorkflowStatus","PARTNER_ICONS","LogoMondayLogomarkColor","LogoGooglesheetsColor","LogoWebhooksLogomarkColor","LogoCampaignmonitorLogomarkColor","LogoZohoColor","LogoGooglecalendarLogomarkColor","LogoMailchimpLogomarkDark","LogoActivecampaignLogomarkColor","LogoKeapLogomarkColor","LogoSendgridLogomarkColor","GOOGLE_DRIVE_ACTIONS","BOX_ACTIONS","DROPBOX_ACTIONS","ONEDRIVE_ACTIONS","EGNYTE_ACTIONS","AIRTABLE_ACTIONS","QUICKBOOKS_ACTIONS","MONDAY_ACTIONS","GOOGLE_SHEETS_ACTIONS","WEBHOOKSV2_ACTIONS","MICROSOFT_TEAMS_ACTIONS","CAMPAIGN_MONITOR_ACTIONS","ASANA_ACTIONS","TRELLO_ACTIONS","SLACK_ACTIONS","CLICKUP_ACTIONS","ZOHOCRM_ACTIONS","HUBSPOT_ACTIONS","GOOGLE_CALENDAR_ACTIONS","ZOOM_ACTIONS","MAILERLITE_ACTIONS","CONSTANT_CONTACT_ACTIONS","GETRESPONSE_ACTIONS","MAILCHIMP_ACTIONS","ACTIVE_CAMPAIGN_ACTIONS","AWEBER_ACTIONS","KEAP_ACTIONS","ZENDESK_ACTIONS","PIPEDRIVE_ACTIONS","SENDGRID_ACTIONS","MAILSOFTLY_ACTIONS","DUMMY_PROPS","PARTNER_DETAILS","BOX_DETAILS","MONDAY_DETAILS","getIntegrationDetails","resource","partner","shortDescription","action","isUndefined","getAllIntegrationsDetails","orderedPartnerNames","INTEGRATION_DETAILS","ThreadActor","avatar","showAvatars","showAssigneeEmail","team","TeamAvatar","getAvatarText","getAvatarUrl","avatarURL","currentURL","getThreadActor","ThreadActorPropTypes","object","ThreadActorDefaultProps","GroupApprovalIcon","ExpiredAction","assigneeUser","fromMultipleApproval","assigneeName","assigneeEmail","CanceledAction","EscalatedAction","showComments","_details_previousAssigneeUser","previousAssigneeName","newAssignee","ReassignAction","OutcomeAction","isAutoAction","showSignature","comment","_buttonColor","signature","title","seperatedSubtask","disectedParent","takenOver","buttonColor","signatureOwner","signatureAltName","SignAction","documentTitle","MultipleApprovalMailAction","approvalOptions","assigneeEmails","reason","mergeTo","assigneeEmailTexts","MailAction","elementType","elementSubType","to","getElementName","WaitingAction","actor","IntegrationTriggerAction","actionDetails","_details_actions_find","integrationAccountName","ThreadAction","status","ThreadActionPropTypes","ThreadDate","ip","amPmHour","showDate","showIP","parsedDate","StyledTableview","SubmissionThread","customTableProps","_action_details","SignDocumentStatus","_optionsArray_answer_status","RadioField","ScAssigneeLine","styled","UserInfo","getAnswerFieldComponent","makeGetAnswerFieldComponent","config","Types","Fields","fieldKeys","getFieldType","getMatchedFieldKey","fnKeys","fieldType","matchedFieldKey","MissingField","ErrorBoundry","errorInfo","hasError","shortenString","maxLength","sanitizedString","getTextForDuplicate","list","tmpText","textParts","originalText","formatBytes","bytes","decimals","sizes","isBright","generateUniqueID","bytesToHuman","octets","units","decPoint","thousandsSep","toFixedFix","num","_prec","dec","abs","prec","preca","saveBlobAsFile","blob","blobURL","QUESTION_PROPS_NECESSARY_FIELDS","SIMPLE_LABEL_PROPS","LABEL_PROPS","TEXT_BASED_WIDGETS","IMAGE_BASED_WIDGETS","CURRENCY_SYMBOLS","getPaymentType","getWidgetType","getWidgetClass","getInputType","getQuestionPropsIfNecessary","isNecessaryField","emptyFunction","getSubmissionDateObj","includeSecond","addThousandSeparators","parts","integer","decimal","modifyNumberAnswer","symbol","inputTextMask","precision","currEnd","zeros","modifiedAnswer","newAnswer","valueKey","getCellSubmissionAnswer","cellSubmissionAnswers","subColumnKey","answerType","getCellAnswer","submission","createdAt","updatedAt","submittedBy","cellSubmission","parentQid","ignoreQuestionTypes","isSheetField","maybeVal","newAnswerValue","answerKey","getUniqueID","optionID","extractAnswerValues","ColorList","extractColor","prepareSelectablePropsForImageChoice","checkIndex","ansText","ansLink","prepareOptionProps","allowOther","hasOther","otherID","answerMap","answerValues","_optionsArray_option","getContainerProps","getAnswerProps","getDefaultCustomProps","questionValues","Set","answerProducts","productRawData","parsedProduct","imagesArr","qtz","questionTimezone","renderCustomField","cellProps","submissionID","questionProps","FieldComponent","cellAnswer","containerClasses","widgetClass","customClassName","cellLabelProps","dataType","ErrorBoundary","background","border","accent","success","buttonCVA","cva","primary","secondary","buttonTextCVA","buttonIconCVA","buttonIndicatorCVA","indicatorCVA","Indicator","colorStyle","invert","indicatorClassName","hasChildren","ButtonText","showTextOnHover","showTextOnly","loader","hasLoaderText","ButtonIcon","ButtonIndicator","indicatorText","variant","indicatorColorStyle","loaderCVA","loaderTrackCVA","loaderSpinnerCVA","loaderDefaultProps","Loader","_ref","theme","loaderClassName","PRODUCT_NAME_VALUES","GRID_TRACK_VALUES","Button","EndIcon","fullWidth","loaderText","rounded","StartIcon","hasOneIcon","hasDoubleIcon","hasIndicator","buttonVariant","isProductButton","buttonLoader","hasText","buttonClassName","loaderComponent","loaderContent","buttonContent","KEY_KEYCODE_LIST","SERVER_ERROR","FILE_TYPE_ERROR","wrapWithComp","Comp","prepareKeyList","keyList","isPressedKeyFN","preparedKeyList","expectedKey","expectedKeyCode","isPressedKeyEnter","isPressedKeyEnterOrSpace","flattenOptions","flattenedOptions","findOptionByValue","optionsHaveSomeDisabledOptions","dropdownMayBeEmpty","sanitizedOptions","optionValue","createFileMetadata","generateShortID","nanoid","PreviewZoomContainer","handleZoomIn","handleZoomOut","IconMagnifyingGlassMinus","IconMagnifyingGlassPlus","defaultImageStyle","zoomImage","Hammer","timesince","now","prevState","axisValue","initialPercentage","nextPercentage","naturalHeight","naturalWidth","newCalculationForWidth","newCalculationForHeight","currentWidth","currentHeight","isBiggerImage","heightForRecursive","widthForRecursive","imageStyle","render","axis","bounds","initialPosition","Draggable","TiffFile","xhr","firstPageOfTif","ifds","UTIF","imageWidth","imageHeight","cnv","ctx","imageData","canvasStyle","fileFormats","IconProductSignFilled","IconDocumentListBulletFilled","fileFormatsAsArray","supportedImageExtensions","Unsupported","fileClass","wrapperClassName","defaultIcon","IconDocumentSimpleFilled","fileThumbnailBox","Audio","Video","fetchPDFJSWorker","pdfjs","version","_window___jfrouter","_window_JotForm","_window___jfrouter1","workerSrc","PasswordResponses","calculateScale","windowWidth","PDF","pageIndex","pageViewports","pageViewport","isVirtualized","numPages","showDocument","pdfJSWorkerURL","previewURL","Document","VariableSizeList","_file_props_renderTextLayer","Page","el","innerWidth","newScale","callback","callbackProxy","password","pdf","viewPortPromises","pageNumber","page","Promise","debounce","bytesToSize","isIE","isIEOrEdge","isEdge","downloadURI","startsWith","XMLHttpRequest","isMainJotformWebsite","isAnimalCareApp","fixCrossOriginFile","urlKeys","transform","isValidHttpUrl","fileTypesAsArray","FileTypes","PreviewArea","hasSingleFile","inputRef","useCustomIcon","CustomIcon","showFileSizeOnDownload","handleDownloadFile","isTempUpload","previewUrl","fileExtension","component","FileComponent","isUnsupported","IconArrowDownToLine","PreviewThumbnail","PreviewFooter","files","changeCurrentIndex","isNewIcon","fileIndex","fileRef","PreviewHeader","togglePreviewContextMenu","isPreviewContextMenuOpened","handleAllFileUploads","hideFolderDetails","fileReference","IconInfoCircleFilled","IconPrinterFilled","IconTrashFilled","Preview","filesProp","onClose","onNextClick","onBackClick","initialFileIndex","folderDetails","onDownload","fixDomainURL","hammer","setCurrenIndex","previewContainer","screenWidth","screenHeight","previewContainerRef","previewAreaRef","isEnterprise","fileCount","folderSize","totalSize","fileSize","newFolderDetails","currentFile","handleClose","handleNextClick","_currentIndex","handleBackClick","handleClick","swipeRight","clientHeight","clientWidth","swipeLeft","fetch","blobFile","blobFileUrl","err","createPortal","IconXmark","IconChevronLeft","IconChevronRight","iconTypes","findIconType","getThumbnailUrl","NoImageFilePlaceholder","iconName","ImageFile","onError","thumbnailUrl","hasMoreFile","totalFiles","moreFileCount","File","onImageLoadError","isDocumentAttachment","documentType","conditionForIE","_iconMapping_documentType","FileUpload","isPreviewOpen","setIsPreviewOpen","selectedIndex","setSelectedIndex","closePreview","filesWithProps","dataIndex","useClickOutsideState","initialState","refs","eventTypes","setVisibility","hideMenu","eventType","useClickOutsideStateWithCallback","_callback","useClickOutsideStateMouseDown","useClickOutsideStateWithSelector","container","useSelectionState","isMultiSelect","sanitizeInitialState","selectedOptions","setSelectedOptions","selectedValue","isOptionExist","useEffectIgnoreFirst","effectHandler","effectDependedValues","isFirstRun","useCombinedRefs","targetRef","usePortalRef","containerSelector","usePortal","portalAttribute","initialPortalSelector","getPortalRefElement","portalContainer","currentPortalDiv","div","portalRef","useDragState","onDropCallBack","onDragOverCallBack","onDragEnterCallBack","onDragLeaveCallBack","isDragging","setDragState","generateDragEventHandler","onDragEnter","onDragOver","onDragLeave","onDrop","cachedScripts","useScript","scriptState","setLoadState","scriptTag","onScriptLoad","onScriptError","useFuse","searchTerm","fuseOptions","fuse","Fuse","usePrev","useInView","onInView","observer","useContinueFocus","isOpen","currentActiveElementRef","panelRef","activeElementRef","useLayoutEffect","_panelRef_current","_panelRef_current1","_activeElementRef_current","NOT_REQUIRED_TASK","DEFAULT_TASK","NOT_QUALIFIED_REASON_CREATOR","defaultAvatarValues","outcomeInfo","notRequired","notQualifiedReason","getDateValue","serverTimezoneOffset","useMomentDate","isTeamApproval","Portal","useImperativeHandle","FullStoryManager","fullStoryConfigs","customVars","displayName","projectVars","FullStory","uid","IGNORED_ERRORS","findValue","search","defaultSentryConfigs","browserTracingIntegration","captureConsoleIntegration","extraErrorDataIntegration","contextLinesIntegration","attributes","_event_exception","_event_extra","_extra___serialized__","_event_exception_values","message","exactErrors","partialErrors","partialError","patterns","pattern","parsedEvent","predicate","stacktrace","recaptchaPattern","extra","parsedArguments","ignored","fullStoryBreadcrumbs","breadcrumb","_breadcrumb_data_url","lastFailedNetworkCall","crumb","_crumb_data","XHRS_TO_IGNORE","_lastFailedNetworkCall_data","SentryManager","sentryOptions","exception","Error","Sentry","fn","fsInstance","fullStoryIntegration","TrackingManager","forceEnable","getEnv","isHIPAA","isEU","_trackingList_activeApp_sentry","activeApp","getActiveApp","doesSentryNameExist","getRevision","userVars","extraConfigs","_trackingList_appName","_trackingList_appName1","_trackingType","enable","extras","_this_sentry","enhanceOptions","_this_FS","eventName","eventProperties","Placeholder","animated","StyledWorkflowStatus","layer","RequestLayer","Interceptors","fetchQuestions","project","fetchSubmission","SingleSubmissionButtonContext","createContext","FILENAME_ALLOWED_FIELDS","isArrayEmpty","isQuestionAnswerEmpty","trimmedValue","keyValueArray","dateBoxFields","dateAnswers","fieldID","dateAnswer","generateFileName","qs","checkHiddenFields","firstNameIndex","firstDateIndex","firstDate","pdfName","getDisplayName","StyledPreviewWrapper","WithPreview","clickableImageSelector","activePreviewIndex","setActivePreviewIndex","setFiles","prepareFile","allImages","newPreviewContentEl","SVGComponents","SVG","SVGComponent","FileUploadField","updateActivePreviewIndex","classes","NON_INPUT_QUESTIONS","HEADER_TEXT_QUESTIONS","PAYMENT_FIELDS","isFieldWithPreview","WIDGETS_WITH_IMAGE_PREVIEW","getCustomProps","allowTime","workflowOutcomes","outcome","ViewItem","itemQuestion","itemAnswer","Field","withPreview","answerFieldProps","SingleSubmissionViewHeader","SingleSubmissionView","hideHeaderAndText","hideEmptyFields","ViewHeader","renderViewItems","filteredQuestions","orderedQuestions","submissionAnswer","isHeaderText","isEmptyFieldHidden","FormName","formName","withBackButton","setPanelOpen","useContext","setTimeout","IconViewNewSubmission","IconViewAllSubmission","IconArrowLeft","IconModalClose","fetchUser","generatePDF","reportID","username","liteMode","responseHeaders","fetchFormPdf","DownloadButton","isMenuVisible","setMenuVisibility","loading","setLoading","setQuestion","formPdfList","setPdfList","setUsername","menuRef","buttonRef","getSubmissionInfo","questionRes","requestGeneratePDF","generatePromise","onDownloadClick","_userResponse_credentials","_userResponse_credentials1","userResponse","formPdfResponse","IconDownload","Tethered","IconPDF","ViewInInboxButton","handleCustomNavigation","IconInboxNavigator","CustomName","customIconValue","customIconMapping","IconTaskFilled","SingleSubmissionViewWithButton","modifyDate","showFormName","showInboxNavigator","showDownloadButton","showPrintButton","showCustomName","onPrintClick","IconPrint","WORKFLOW_SYSTEM_OUTCOMES","getOutcomeByID","outcomeID","outcomes","tempOutcomeID","isOutcomeBelongsToSystem","isWorkflowSystemUser","didActiveSubmissionChange","decodeHTML","ApprovalOptions","subType","_approvalOptionValues_","VerticalAttachments","align","attach","allowHover","noWrap","renderInContainer","v2","hideArrow","tooltipDistance","tooltipArrowDistance","isVertical","SingleAvatar","containerClassName","shortNameMaxChars","isDefaultAvatar","shortName","avatarItem","renderContent","SingleAvatarWithDetails","outcomeColor","menu","contentText","userName","isCreatorType","Boolean","AvatarGroup","renderAvatarList","itemClassName","itemWrapperClassName","itemContainerClassName","singleAvatarChildren","Popover","_popperInstance_state","popoverOptions","portalContainerSelector","onPlacementChange","useMemoizedPopper","dontUpdate","popperInstance","setPopperInstance","rootRef","memoizedPopperInstance","createPopper","handleOrientation","AvatarGroupWithContact","newAvatar","filteredItems","subtaskStatus","user","isTakenOver","contentTextForUser","userNameValue","userEmailValue","userAvatarValue","hoverRef","isHovered","useHover","RightPanel","asideClass","wrapperClass","bodyClass","RightPanelHeader","panelTitle","clickableRefList","isPanelHeaderHidden","closeOnClickOutside","headerIcon","CustomPanelHeader","Hooks","Collapse","buttonTitle","isCollapsed","setCollapsed","IconChevronDown","Modal","defaultVisible","closeOnOutsideClick","DialogRenderer","HeaderRenderer","ContentRenderer","FooterRenderer","reffedDivProps","onModalClose","closeOnEscPress","exceptionalSelectorList","autoFocus","ariaLabel","additionalSelector","contentRef","hide","show","toggleVisibility","KeyboardJS","headerTitleId","headerSubTitleId","any","commonStyles","ScBox","ScHeader","ScFooter","ScOverlay","css","footer","isFullScreen","showGoBackAsClose","contentRenderer","headerHasCloseButton","headerVisible","onHeaderCloseClick","is2FAModal","maxWidth","handleHeaderClose","ScOverlayWithClass","pr","isMobile","UIKitModal","signHere","ScMainContainer","ScTitle","ScTypingInput","ScCanvas","mode","emptyCanvas","ScTypeSwitcher","ScColorSelection","ScModal","ScColorSelectionInput","ScSettingsContainer","ScButtonCont","ScButton","opened","getFontList","addGoogleFonts","tagId","document1","getImageDimensions","fromDataURL","pad","dataUrl","ratio","top","left","createSvgTextElement","attrs","svgText","getTextBoxWidth","box","drawTextToCanvas","canvasWidth","canvasHeight","canvas","font","textWidth","newFontSize","resizeObserver","cb","ro","ResizeObserverPolyfill","entries","TypingArea","onBlur","COLORS","ColorSelection","selectedColor","getSomeString","defaultString","resultString","strArr","buttonAriaLabelPrefix","defaultAriaLabel","producedAriaLabel","ariaLabelWithPrefix","Option","setSelected","ContainerRenderer","Renderer","OptionContainerRendererProps","handleSelection","ContainerRendererProps","OptionGroup","checkOptionSelectionState","OptionContainerRenderer","OptionRenderer","GroupRenderer","groupIcon","NoResultsRenderer","onClearFilter","inputValue","containerID","TextInput","defaultValue","isErrored","baseErrorMessage","multiline","showInitialError","errorClassName","isDirty","setDirty","setInputValue","errorMessage","setErrorMessage","eventHandlerProps","propKey","InputElement","ButtonRenderer","TextInputRenderer","onOptionSelect","closeOnOptionSelect","closeOnScroll","scrollableElementSelector","filterable","extendable","onTextInputChange","onOptionAdded","textInputPlaceholder","triggerChangeOnDatasetChange","extendOnGroupSearch","onOptionsVisibilityChanged","skipSetSelectedOption","optionsAutoFocus","optionsAutoPosition","dropdownButtonAriaLabelPrefix","recordEvent","translate","textInputAriaLabel","clearSearchButtonText","textInputFocusOptions","textInputRef","containerRef","dropdownRef","optionsRef","selectedOption","setSelectedOption","isOptionsVisible","_setOptionsVisibility","textInputValue","_setTextInputValue","placement","setPlacement","filteredOptions","each","handleInputChange","clearInput","handleChangeOptionsVisibility","visible","isDisabled","findByText","handleAddNewOption","newOptionText","alreadyHave","clearSelection","foundByValue","_optionsRef_current","_textInputRef_current","_popoverProps_popoverOptions","buttonTop","optsHeight","handleScroll","scrollableElement","FONT_LIST","DBButton","FontSelection","UIKitDropdown","btns","onUse","getInitialValue","confirmButtonText","unmountComponent","required","labelTitle","renderMode","initialMode","setPad","setMode","setColor","setFont","setText","setEmptyCanvas","initMode","initFont","initColor","initText","canvasRef","getCanvasValue","tmpCanvas","trimCanvas","onEnd","onClear","handleOnUse","handleOnCancel","sigCanvas","sigPad","SignaturePad","parentWidth","parentHeight","setRescaledSignature","lines","point","offsetWidth","renderMain","btn","SignatureIcon","ReactDOM","DEFAULT_DATE_FORMAT","ShortDate","fullDateFormat","dateTexts","currentDate","formattedDate","translatedDate","NOW","X_MINUTE_SHORT","X_HOUR_SHORT","X_DAY_SHORT","UserAccount","isSystemUser","testIDPrefix","accountName","avatarContent","avatarStyle","isAvatarExist","Comment","isRequired","isEditable","onInput","commentPart","TEXTS","StyledSVG","Loading","strokeWidth","strokeColor","Outcome","textColor","dataTestid","isLoading","isCompleted","pastTenseText","computedTextColor","computedButtonColor","viewText","ScBody","properties","UiKitDropdown","EmailDropdown","setDefaultValue","NON_INPUT_WIDGETS","STATIC_FIELDS_WITH_PLACEHOLDER","getPlaceholder","_protected","anotherFieldDropdown","isProtected","menuItemText","getPlaceholderList","getDynamic","getLabeled","getPlaceholderListForDynamicQuestions","getPlaceholderListForDynamicQuestionsForWorkflow","preparePlaceholderDynamicList","usedFromWorkflow","getPlaceholderListWithStaticFields","staticFields","staticFieldsAtTop","includeSeparator","isEncrypted","dynamicFields","firstPart","secondPart","separatorPart","getQuestionByPlaceholder","questionList","tmpPlaceholder","tmpPlaceholderPart","preparePillObjectFromQuestion","tagDuplicateQuestions","sanitizedValues","newText","TLDs","tlds","EMAIL_PATTERN","isEmail","isTeamEmail","teamRegex","pillValidator","preparePillObjectFromEmail","uuid","removeHtmlTags","parser","selectText","computeQuestions","newQuestion","SearchInput","isNewBranding","setValue","SelectionGroup","onSelectionChange","autoFocusToFirstChild","selectedOptionList","toggleSelectedOption","setSelectedOptionList","changeSelectedOptions","_rootRef_current_current_firstChild","UiKitSelectionGroup","checkboxSizes","checkboxCVA","checkboxWrapperCVA","checkboxIconCVA","useSelectValue","ownContext","pickedContextValues","commonInputDefaults","FormControlContext","contextValuesArray","useFormControl","pickContextValues","checkboxDefaultProps","choiceLabelCVA","choiceLabelContainerCVA","choiceLabelTextCVA","choiceLabelDescriptionCVA","ChoiceLabel","truncate","hasDescription","hasLabel","_useFormControl","htmlSize","indeterminate","checkIcon","IconCheck","IconMinus","IconLockFilled","isSingle","showOptionValue","ProtectedTag","EncryptedTag","questionsPropType","objectOf","ColoredFieldsRenderer","formTitle","optionParser","suggestions","hasForm","isMain","isExpanded","setExpanded","_suggestions__text","suggestedOptions","suggestionText","wrapperClasses","IconAngleUp","MultipleForms","formArray","setSearchTerm","expandedIndex","setExpandedIndex","allQuestions","noResultFound","IconMagnifyingGlass","formSpecificStaticFields","SingleForm","checkIsEncrypted","refactoredQuestions","FormFields","addStaticFields","menuTargetRef","isButtonVisible","fieldsLabelText","useMultipleForms","popoverClassName","showProtectedTag","onVisibilityChange","duplicatedEmails","onButtonClickCallbackRef","isFormFieldsDisabledForWorkflow","getOptions","formQuestions","opts","staticFieldsOptions","questionsArray","placeholderList","IconLinkDiagonal","ScSuggestions","ScList","SubMember","subMemberList","isListExpanded","setIsListExpanded","member","UserList","useMouseDown","useKeyboardEvents","preventClickDefault","onBlurEventHandler","tabIndex","keyHandler","nextElement","relatedKeyCodes","activeElement","ownElement","subMembers","handleKeyDown","identifier","handler","tagifyQuestion","asString","returnAll","placeholderRaw","allTagifiedQuestions","placeholders","tagifyObject","jsonString","tagified","tagifiedQuestion","getStaticFieldsAsSimpleQuestions","getSelectedPlaceholderList","tagifyValue","taggedQuestions","tag","tagifyPlaceholder","tagifyPlaceholderList","getTagifyValue","sanitizedValue","usedQuestionNames","sanitized","getSanitizedValue","isModeMix","selectedPlaceholderList","questionsWithStaticFieldsList","from","re","sanitizeTextBeforeSet","tagify","clonedTagify","tagsItems","transformTag","tagSuffix","focusAfterAddingTag","tagPrefix","defaultPrefix","prefixedTagItems","tagItem","tagElement","STATIC_FIELDS_WITH_PLACEHOLDER_FOR_SACL","FIELD_REGEX","getAvailableUsers","userList","addedTags","TagInput","_tagifyRef_current_DOM","addFormFields","questionsProp","allowDuplicateFields","onRemove","SuggestionRenderer","showFormFieldsOnClick","staticFieldsList","onFocus","isSingleEntry","showFormFieldsButtonOnFocus","validateSelectedBeforeAdd","keepInvalidTags","onAddTag","useTextToTag","tagifyProps","emailType","isEmailTypeSACL","staticFieldsAsSimpleQuestions","newPlaceholder","staticFieldQuestionList","whiteList","uniqBy","tagifyRef","suggestionListRef","formFieldsRef","tagifyContRef","setTextInputValue","isFocused","setFocus","isFormFieldsVisible","setFormFieldsVisible","isSuggestionVisible","setSuggestionVisibility","setTagifyValue","userListSource","suggestedUserList","splitTagsAndTexts","invalidsShouldRemoved","duplicatsShouldRemoved","textContent","firstPartOfText","lastPartOfText","tagElem","textToTag","matchedTags","colorifyTags","elm","_exec","addTags","tagValue","removeAllTags","newSelectedPlaceholderList","_tagifyRef_current_DOM_input","patchTagify","clearWhiteSpaces","textNodes","_node_previousSibling","_node_nextSibling","isPrevTag","isNextTag","_tagifyRef_current_getTagElms","isFormFieldsButtonVisible","formFieldsMenuTargetRef","Tagify","resolve","params","tmpValue","nextValue","_tagifyRef_current_state_selection","_tagElem_previousSibling","removedPlaceholderList","difference","SingleEmailInput","useArrayAsValue","valueAsArray","valArrToStr","calculatedValue","computedQuestions","updatedValue","getTeamHeaders","teamInfo","disableTeamPrefix","teamID","completeTask","taskID","body","reassignTask","getTaskOccurenceTimeByTaskID","getTaskBySubmissionID","terminateWorkflow","instanceID","onRetryActionRequest","startWorkflow","enableWorkflow","workflowStartOver","getCompletedApprovalTask","getActiveApprovalTask","DropdownWrapper","WorkflowReassign","onRenew","fromError","isReassignDisabled","displayReassignCount","isReassignLimitReached","setMessage","setAssigneeEmail","setError","isMessageVisible","setMessageVisibility","enterpriseUsers","setEnterpriseUsers","enterpriseUserList","setEnterpriseUserList","isEnterpriseEnv","users","validateInput","onReassignClick","randomId","Reassign","onTaskListRenew","useModal","modalRef","handleModalHide","setDisplayReassignCount","setReassignLimitReached","setDisableReassign","taskOccurenceTime","ReassignComponent","useSubmissionTaskInfo","taskList","fetchTaskFromApi","instanceStatus","onComplete","taskListState","setTaskList","usePropState","isInitialized","setInitialized","instanceStatusState","setInstanceStatus","TaskActionTypes","TaskErrorObject","TaskActionValidator","renewTaskList","forceInitialization","validationResult","tempTaskList","tempInstanceStatus","isInitializing","newLength","oldLength","lengthDiff","task","onTaskCompleteGenerator","commentRequired","onTaskReassignGenerator","useLastHistoryByType","history","tempActionType","useLastHistory","getLastHistoryByType","lastStartHistory","lastCompleteHistory","lastCanceledHistory","useApiState","setErrored","errorReason","setErrorReason","clickedOutcome","setClickedOutcome","apiRequestGenerator","apiFN","tmpIsErrored","ElementPropTypes","HistoryPropTypes","PropertiesPropType","TaskPropTypes","TaskSection","isNew","isCompleteAllowed","isReassigned","isEscalated","reassignEmail","highlightActiveTask","onTaskComplete","showUserInfo","parent","commentRef","lastHistory","isClean","setClean","isHighlighted","setHighlight","useStateWithAutoReset","actionType","isGroupApproval","isReassignEnabled","hasCommentError","isCommentRequired","selectedOutcomeID","isSystemOutcome","handleOutcomeClick","handleCommentInput","targetUserInfo","systemComment","computedComment","containerClassNames","activeOutcomes","linkID","isReassignAllowed","getPossibleTimeZone","possibleTimeZone","dateInJan","answersPropType","formPropType","WorkflowContext","useWorkflow","WorkflowProvider","isFormOwner","onRenewSubmission","activeTabID","featureSubmissionThread","canUndo","undoTimeout","isCollaborator","isStartOverPressed","setIsStartOverPressed","showFixErrorsInWorkflow","setShowFixErrorsInWorkflow","undoFns","setUndoFns","completeFns","setCompleteFns","fakeEntries","setFakeEntries","showToastState","setshowToastState","workflowStatusDetails","workflowStatus","workflowInstanceID","isWorkflowEnabled","request","useRequest","reload","query","ignoreHiddenSpanTag","spanRegExp","getTaskLists","taskArray","requestMore","assigneeUserEmail","taskName","errorObj","subtasks","res","subtaskAvatarUrl","isCurrentUserApprover","isActive","taskLists","activeTaskList","_find","onStartOver","onCancelFlow","onStartFlow","formatDate","undoTaskToastShow","onRetryAction","commentPlaceholder","isTakeOver","taskState","setTaskState","prevTaskState","setPrevTaskState","timeoutExpired","setTimeoutExpired","generatedTaskComplete","removeCurrentTaskFn","store","setStore","_tempFN","removeUndoFn","removeCompleteFn","prepareToUndoAndComplete","timeout","clearTimeout","validation","renderSignatureModal","propOnUse","propOnCancel","modifiedArgs","clearOutcomeIDFromWindow","URLSearchParams","queries","linkedOutcomes","selectedOutcome","tmpOutcomeID","outcomeType","textarea","Task","Dialog","IconExclamationTriangleFilled","IconLinkDiagonalBroken","IconTrashExclamationFilled","IconHIPAAWarning","closable","modalID","submitButtonText","cancelButtonText","oneButtonDialog","isOneButtonColor","subTitles","hasCheckboxForDisabling","otherButtonText","onOtherButtonClick","dialogClass","renderFields","headerImg","isSolidButtonGreen","loadingButtonEnable","parentSelector","loadingState","ReactModal","subTitle","onSubmit","isWorkflowReleased","dialogProps","StartCancelAction","onActionClick","renewFlow","propName","buttonName","buttonProps","isDialogOpen","setIsDialogOpen","ButtonToRender","closeDialog","handleActionResult","onDialogSubmit","getTakeOverText","approver","useActionComponents","_task_properties","_task_properties1","_task_properties2","_task_properties3","onCancelClick","onStartOverClick","ActionButton","onRetryActionClick","documentFormID","documentSubmissionID","IconTakeOver","IconXmarkCircle","IconTriangleCircleFilled","IconFormCheckFilled","IconArrowUpRightFromSquareSm","IconArrowsRotate","isParentNode","parentNode","childNode","sourceNode","ButtonField","forceDropdown","listenerElementClass","isDropdownOpen","queryElement","willBeIsDropdownOpen","appendChildren","onKeyUp","useMouseUp","IconDropdownArrow","ComponentRenderer","CloseButton","MoreButton","components","tetherMenuRef","componentsFiltered","_tetherMenuRef_current_children_","button","SingleAvatarMoreButton","singleTakeover","AvatarWithApprovalAction","forTask","renderAvatars","subtask","eachTask","userValue","HiddenFrame","onLoad","uploadFrameRef","iframe","DragContainer","onDragStateChange","dragEventHandlers","Form","ErrorText","FileInput","putFileInput","inputProps","isBrowserMsEdge","handleLabelClick","onUploadBtnClick","FilePreview","changeModeToUpload","Thumbnail","removeButtonText","TextWrapper","imageURL","LoadingScreen","apiKey","isThereInvitation","invitationAPIKey","targetURL","optimize","isQueryStringExist","extraParameter","multipleFileUpload","imageUpload","allowedTypes","FileInputRenderer","FormRenderer","TextRenderer","containerDisplay","inputEl","WrapperRenderer","FilePreviewRenderer","DragContainerRenderer","ErrorTextRenderer","TextWrapperRenderer","LoadingScreenRenderer","isFileUploading","isUploadFailed","isUploading","uploadedFiles","isStillFileUploading","serverMessage","onFileUploading","limitType","fd","newFileName","resp","uploadedFilesArr","displayUpload","onFileUpload","multi","onDisplayModeChange","newFileRecord","currentUrl","nextMode","addNotification","errors","init","checkingFile","typeErrorMessage","accepted","onFileRemove","showFile","isModeDisplay","nextProps","TabListContainer","TabButtonContainer","TabListWithStyles","tabListRef","TabList","TabButton","formLabelCVA","formLabelDescCVA","formHelperTextCVA","FormControl","formControlClassName","FormLabel","formLabelClassName","formLabelDescClassName","FormHelperText","formHelperTextClassName","HelperIcon","IconCheckCircleFilled","IconExclamationCircleFilled","baseInputDefaultProps","appendixDefaults","inputAddonDefaultProps","inputTextDefaultProps","disableAlpha","presetColors","onSwatchHover","baseInputContainerCVA","baseInputCVA","baseInputAddon","commonFormControlCVA","BaseInput","readOnly","addonStart","addonEnd","ghost","as","expand","readOnlyVariant","baseInputContainerClassName","baseInputClassName","_e_currentTarget","BaseInputAddon","useInputColor","htmlFor","addonContainerClassName","addonIconClassName","InputText","showLockIconInReadOnly","textareaCVA","textareaContainerCVA","textareaBarCVA","textareaDefaultProps","resize","setCount","textareaContainerRef","textareaContainerClassName","textareaClassName","getTextAreaLength","ErrorPage","componentImport","lazy","Tracking","scope","LibIconSelector","safeLazy","Suspense","UploadedImagesPanel","onImageSelect","selectedImage","allowMultipleSelection","onImageDeselect","uploadedImageList","noUploadedImageText","hasQueryParams","isImgObject","imgThumb","urlThumb","urlType","urlFull","imgUserInfo","isImageSelected","imageAltLabel","ImagePreview","sizeText","filterImages","imageList","deleteSelectedImage","requestURL","getUploadedUserImage","showOnlyImages","fileList","searchUnsplash","keyword","getRandomImagesFromUnsplash","DEFAULT_TAB_LIST","UnsplashIcon","THEME_MAP","DefaultDeleteButton","DefaultSelectButton","modesRequireUploadedImages","ImageUpload","onImageUpload","onImageChange","onImageRemove","isAltTextActive","onAltTextChange","renderTabs","forceSelect","onlyColoredIcons","linkTextInputDefaultValue","onLinkTextInputSubmit","linkTextInputPlaceholder","imgDescInputPlaceholder","originalImageList","galleryImageList","useAPI","showActionButtons","SelectButtonRenderer","DeleteButtonRenderer","ActionButtonsWrapper","onLinkInputChange","ImageUploadPreviewRenderer","ImageLoadingScreenRenderer","allowImageUpload","uploadedFile","onFileUploadError","galleryMode","inputButtonText","initialSelectedImage","groupedGalleryClass","groupedGalleryImageList","isDeleteSelectedDisabled","setImageList","altText","setAltText","fileUploadDisplayMode","setFileUploadDisplayMode","setSelectedImage","isActionButtonsVisible","setActionButtonsVisible","unsplashImageList","setUnsplashImageList","randomUnsplashImageList","setRandomUnsplashImageList","unsplashPageNumber","setUnsplashPageNumber","stopLoadMore","setStopLoadMore","allowGettingUploadedImages","unsplashSearchInputRef","prepareTabTitleList","tabKey","_DEFAULT_TAB_LIST_tabKey","tabTitleList","setTabTitleList","handleGetUploadedImages","handleAltTextChange","handleImageSelect","handleImageDeselect","handleUseSelectedImage","handleImageUpload","fileData","handleLinkTextClick","handleFileUploadDisplayModeChange","displayMode","renderAltTextInput","handleDeleteSelectedImage","renderActionButtons","renderLinkTabInput","renderEnterUrl","createUnsplashImageList","full","thumb","getRandomUnsplashImages","newList","getUnsplashImages","loadMore","newImageList","currList","tabPanelRendererMap","IconSelector","useDebounce","InfiniteScroll","getRootClassNames","Tab","array","PickerComponent","IconEmojiSelector","emojiPickerProperties","isEmojiFirst","handleEmojiClick","activeTab","setActiveTab","Picker","Color","validateCSSColor","dummyElement","validColor","ColorPicker","ColorRenderer","ColorPickerWrapper","pickerProps","onInputRemove","colorStringGenerator","indicatorRef","ColorPickerComponent","ColorPickerList","isColorPickerVisible","setColorPickerVisibility","validatedColorValue","isPickerVisible","pickedColor","currentColor","DefaultWrapperRenderer","apiCall","method","headers","handleError","axios","updateTeamProperties","handleUpdateTeamProps","teamId","newData","onUpdate","setTeam","currTeam","BG_IMAGE_SET","AVATAR_SET","DEFAULT_SELECTED_OPTIONS","CustomizationWrapper","CustomizeTeamAvatar","teamAvatarURL","teamAvatarIcon","teamAvatarIconColor","teamAvatarIconBgColor","notUpdateOnSelection","useOnUpdateProp","imageUploadRef","update","selectImage","handleResetSelectedImage","_imageUploadRef_current","removeImage","TABS","UIKitColorPicker","emoji","CustomizeCover","coverBgColor","coverTitleColor","coverBgImageURL","removeHeightParam","heightParam","CustomizationButton","buttonClass","buttonStyles","ActiveComponent","popoverRef","isCustomizationVisible","setCustomizationVisibility","EmojiComponent","EmojiRenderer","SvgErrorFallback","SVGIcon","iconColor","ReactSVG","_svg","centerer","AvatarWrapper","urlParams","emojiId","emojiSize","iconSvgRef","isIconSpriteLoaded","ImageWithWrapper","iconBgColor","hasCustomization","customClass","imageProps","TeamImageWithWrapper","getApproverTitle","APPROVAL_OPTIONS","max","WORKFLOW_STATUS","WorkflowInformationPanel","_APPROVAL_OPTIONS_","approverCount","sentDate","customOutcomeStatus","cancelReason","teamProps","teamData","setVisible","textType","customText","customColor","outcomeCount","statusType","teamApproval","headerTitle","DetailRenderer","AvatarGroupWithPanel","informationProps","getUsers","newAssigneeEmail","newAssigneeUser","previousAssigneeEmail","previousAssigneeUser","getAssignee","getSystemUser","getGroupApproverUser","getTerminate","getGroupTeamApproverUser","entryPropTypes","statusTexts","WFCategoryName","WFNewSubmissionCategoryName","IconAssignFormWF","EditSubmisisonCategoryName","IconPencilToSquare","EmailCategoryName","IconEnvelopeClosedFilled","ReplyEntry","_ref_current","sanitizedBody","quotationCollapsed","setQuotationCollapsed","showButton","setShowButton","subject","attachments","setFileIndex","previewVisibility","setPreviewVisibility","uploadUrls","uploadUrl","_fullName_split_pop","fullName","hiddenExtensions","isHidden","ForwardEntry","ReAssignEntry","requestMoreInfoEntry","undoLoadingEntry","mockApproveDenyEntry","isSystem","hideBehalf","badgeText","badgeClass","usernameText","editSubmissionEntry","UserNoAction","EscalateEntry","ExpiredEntry","ApproveRejectEntry","hideBehalfEmail","attachment","MultipleApproveReject","subtaskHistory","filteredsubTaskHistory","_history_actionDetails","subtaskActionDetails","parsedDataForWorkflow","subtaskTakenOver","userEmail","userAvatarUrl","ErrorEntry","RestartEntry","AssignFormNotificationEntry","formText","sentText","toText","subjectText","SignDocumentNotification","ViewSignInboxButton","ReminderEntry","elementName","SignEntry","MailEntry","_to_split_filter","emailList","MultipleApprovalMail","titleText","overriddenActionDetails","AssignFormSubmissionEntry","setSubmission","singleSubmission","setSingleSubmission","isPanelOpen","insideContainer","containers","submissionRes","_e_response","newSubmission","formNameText","AssignTaskCompleteEntry","restartEditEntry","ViewIntegrationDetails","links","IntegrationTriggerEntry","errorDetails","showError","handleShowError","getErrorDetails","_parsed_","_parsed_1","IconUserFilled","TerminatedEntry","reasonOfTerminate","TaskEntry","EmailEntryTypes","WorkFlowEntryTypes","EntryTypes","EntryCategories","convertTasks","ThreadAvatar","maxCharShow","firstTwoLetterOfEmail","backgroundImage","avatarF","TEAM_APPROVAL_STATUS_TEXT","entryFilterer","entryFiltererGenerator","category","StatusPill","StatusText","statusColor","readableColor","lighten","borderColor","darken","showTaskStatus","tasks","showOutcome","showPopover","thread","isCustomOutcome","renderPill","_tasks_filter","tasksConverted","wrapperRef","isPopoverVisible","setPopoverVisibility","shouldListRender","classnames","userRaw","_actionDetails_type","_this","_this1","entryType","EntryComp","actionSubType","isCustomAction","getAssignFormText","statusText","isTeamApprovalAction","WorkflowStatusAnswer","submissionGetter","questionsWithOrders","formProducts","selectedCell","onCellClick","isFreezeColumn","selectedColumnIndex","selectedRowIndex","isColumnLocked","isSelectedCell","onKeyDown","getCustomComponent","SheetCell","prepareColumnsForHash","hiddenQuestions","accum","_accum","createFixedItemData","frozenQuestionsWithOrders","SheetElement","rowsCount","initialSelectedCell","setSelectedCell","setResizedColumn","_questionOrders","questionOrders","parsedOrders","missingQuestions","_frozenQuestions","_hiddenQuestions","questionOrder","_questionCustomTitles","questionsWithTitles","parsedTitles","titledQuestions","_questions","qID","onCellClickForUnfreezeColumns","_columnWidth","newWidth","save","freezeQuestion","onCellClickForFreezeColumns","hashFunc","objectHash","Sheet","iconRegex","IconElement","iconCategory","iconFillColor","host","protocol","svgTypeMatch","svgType","isDevelopment","acceptedItems","StaticRichText","StaticChart","Shapes","StaticSheet","generatePages","pages","newPages","newPage","pageItems","foundItem","initType","matrixQuestion","logActivity","getQuestionsToUse","commonChartConstants","baseAPIUrl","FETCH_SUBMISSIONS_REQUEST","FETCH_SUBMISSIONS_SUCCESS","submissions","itemType","questionToUse","pdfDownloadURL","useDynamicPresentationBar","linkSettings","inProgress","setDownloadInProgress","download","contentType","Blob","useEmbedMessageListener","embedMode","isEmbedReady","setIsEmbedReady","handlePostMessage","useItemAccessor","fetchSubmissions","itemAccessorProps","resultSet","resultSetWillBeFetched","batchCount","getItemAccessor","useInterval","delay","savedCallback","setInterval","clearInterval","additionalPageItems","printMode","submissionsLength","presentationBarActions","useFixedPresentationBar","PrintMode","Presentation","limit","getHipaaStatus","api","_result_data","connect","isReady","_chartQuestions","reportItems","reportPages","_fetchSubmissions","componentProps","openedInApp","PresentationRenderer","INITIAL_STATE","newContent","questionIds","sanitizedData","dataRow","sanitizedDataKey","dataValue","combineReducers","app","presentation","submissionsSagas","takeLatest","select","call","put","sagaMiddleware","createSagaMiddleware","createStore","reducer","applyMiddleware","createRoot","Provider","PresentationContainer","SERVER_TIMEZONE","SUBMISSION_DATE_FORMATS","localeSymbol","Symbol","timezoneSymbol","callbackSymbol","Moment","formatListObject","momentTimeZone","dateObjectWithTimezone","intendedFormat","timezoneDate","methodName","timeZone","srcTimezone","destTimezone","waitTime","funcRef","baseFuseOptions","baseKeys","fuseResult","timeoutDuration","setState","delayedClearStateTimeout","initalValue","fetchers","fetcher","setData","load","req","ms","handleMouseOver","handleMouseOut","momentDate","setMomentDate","renewMomentDate","listenerKey","getRouterValue","getBaseURL","getRootPath","defaultActiveTab","erroredTabs","onTabChange","TabContainer","activeTabClassName","tabButtonClassName","tabs","setActiveTabID","generateTabClickHandler","tabIdPrefix","tabButtonPrefix","hidden","tabProps","isActiveTab","ariaId","buttonId","Children","tab","ariaLabelledByButtonId","translation","clearTranslationMarkup","elements","textParents","selectParents","elc","originalSize","originalMultiple","addTranslationMarkup","initial","currentStyle","searchTextInDOM","texts","classesToBeFiltered","rgx","isInViewport","elementRect","windowHeight","scrollX","scrollY","getTextContents","Translation","langCode","dictionary","code","foundStrings","textContents","Polyglot","translated","variables","strVar","variableName","screenshots","emptyIndexes","filteredStrings","filteredScreenshots","ss","decodeURI","foundElements","orderedFoundElements","elementsToProcess","untranslatedToPost","ssDataAll","submitPromises","depthCount","depthLabel","Axios","foundElement","visibilityResult","capturedData","domtoimage","filteredNodeClass","classStr","langCodes","partialTranslations","DEFAULT_LANGUAGE","isProduction","_global_window___jfrouter","_global_window1","encodedAndProcessedStrings","processTranslation","_string_replace","transformPhrase","buffer","TextEncoder","Uint8Array","encodeUsedTranslations","translations","encoded","raw","collectionTimer","hours","startDate","unlocalizeOriginHref","_Object_keys","shortLangCodes","exp","preapreTtime","hour","minute","hourVal","minuteVal","i1","tempDate","isNaN","prepareControlModeChange","controlMode","reject","prepareAddTranslationToDictionary","translationData","clearedDic","dic","generateDictionaryURL","sanitizedCode","loadDictionaryViaTag","tmpScriptTag","loadDictionaryViaFetch","prepareAddDictionary","partialDictionaryName","_global1","addTranslationToDictionary","partialDictionaryPath","loadMethod","sendUsedTranslationsInterval","isNil","_global_Translations_encodedAndProcessedStrings","_global_Translations_usedTranslations","finishInterval","_res_data","translatedString","getRendererIndex","delimiterStr","renderFunctions","matchTemplate","replaceTemplate","renderers","matchedStrings","matchItem","currentKey","normStr","initializeTranslationFromGlobal","_global_window_Locale","addDictionary","controlModeChange","PlatformTypes","AllowedPlatforms","makeFeatureReducer","composeEnhancers","FeatureFlag","featureList","featureName","featureValue","feature","_this_store_getState_featureName","cache","isPlatformEnv","platformEnv","isAllowedPlatform","isSalesforceEnv","getPlatformEnv","getValidURL","appendRootPath","pathname","rootPath","interceptURLForWorkflowRelease","pathnames","prepareURLWithRoot","urlString","urlObject","shouldRedirectToSessionExpired","redirectURL","dontOverwrite","windowFeatures","isMobileApp","featureFlag","normalizedKeyMap","retry","maxAttempts","delayMs","execute","attempt","nextAttempt","mapRequest","TTLCache","shouldAttempt","cacheItem","ttl","Map","argumentParser","constructInterceptorConfig","interceptorConfig","InterceptorHandler","interceptor","interceptors","createDefaultInterceptors","reqInterceptors","resInterceptors","resFailedInterceptors","isCrossOrigin","origin","axiosNormalizer","_ctx_interceptorConfig","engineResponseNormalizer","salesforceResponseFailedInterceptors","isSalesforcePlatform","_ctx_resp_config","_ctx_resp_config1","_ctx_resp_data","_ctx_resp_data1","requestInterceptors","objToFormData","formData","FormData","keyName","responseInterceptors","defaultRequestInterceptors","defaultResponseSuccessInterceptors","defaultResponseFailedInterceptors","setInterceptors","_config_customRequestInterceptors","_config_customResponseInterceptors","preRequestInterceptors","postRequestInterceptors","postRequestFailedInterceptors","defaultValidation","ENGINES","AxiosEngine","mapAxiosResponse","awaitedEngineResp","isAxiosError","_this_configs","_this_configs1","_this_interceptors_preRequest","_this_ttlCache","_this_interceptors_postFailedRequest","_this_interceptors_postRequest","_this_ttlCache1","modifiedInterceptorConfig","shouldCacheRun","cacheRequest","cachedResponse","engineResponse","customMethod","_this_configs_interceptorConfig","configs","engineName","_configs_interceptorConfig","_configs_interceptorConfig1","requestManagerResponseNormalizer","_resp_data","returnAxiosData"],"mappings":"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,CAAC,UAAU,4B,GAAiC,MAAO,WAAY,EACtF,CACD,eAAgB,CAAC,OAAO,CACxB,QAAS,SACT,KAAM,iBACN,aAAc,QAChB,EACA,YACKT,GAAQ,WAEb,CACE,IAAK,kBACL,MAAO,aACP,QAAS,SACT,KAAM,aACR,EACA,YACKA,GAAQ,WAEb,CACE,IAAK,gBACL,MAAO,UACP,MAAO,CAAC,EAAG,IAAI,CACf,QAAS,SACT,KAAM,QACR,EAEA,CACE,IAAK,iBACL,MAAO,YACP,QAAS,OACT,KAAM,SACN,aAAc,WAChB,EACA,qBACKA,GAAQ,UACX,SAAU,CACR,eAAgB,IAClB,C,GAEF,CACE,IAAK,iBACL,MAAO,YACP,OAAO,IACP,QAAS,OACT,SAAU,CACR,eAAgB,IAClB,EACA,KAAM,UACR,EACA,qBACKA,GAAQ,UACX,SAAU,CACR,eAAgB,IAClB,C,GAEF,CACE,IAAK,kBACL,MAAO,aACP,OAAO,IACP,QAAS,OACT,SAAU,CACR,eAAgB,IAClB,EACA,KAAM,UACR,EACA,qBACKA,GAAQ,UACX,SAAU,CACR,eAAgB,IAClB,C,GAEF,CACE,IAAK,kBACL,MAAO,aACP,QAAS,OACT,SAAU,CACR,eAAgB,IAClB,EACA,KAAM,aACR,EACA,qBACKA,GAAQ,UACX,SAAU,CACR,eAAgB,IAClB,C,GAEF,CACE,IAAK,oBACL,MAAO,UACP,MAAO,CAAC,EAAG,IAAI,CACf,QAAS,OACT,SAAU,CACR,eAAgB,IAClB,EACA,KAAM,QACR,EAEA,CACE,IAAK,gBACL,MAAO,iBACP,QAAS,YACT,KAAM,SACN,aAAc,WAChB,EACA,qBACKA,GAAQ,eACX,SAAU,CACR,cAAe,IACjB,C,GAEF,CACE,IAAK,sBACL,MAAO,cACP,QAASL,GAAU,KAAK,CACxB,QAAS,YACT,SAAU,CACR,cAAe,IACjB,EACA,KAAM,UACR,EACA,qBACKK,GAAQ,eACX,SAAU,CACR,cAAe,IACjB,C,GAEF,CACE,IAAK,oBACL,MAAO,YACP,QAASD,GACT,QAAS,YACT,SAAU,CACR,cAAe,IACjB,EACA,KAAM,WACN,KAA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ACH,KAAM,MACN,UAAW,MACX,MAAO,KACT,KACQ,CACN,KAAM,SACN,UAAW,SACX,MAAO,QACT,KACK,CACH,KAAM,MACN,UAAW,MACX,MAAO,KACT,KACO,CACL,KAAM,QACN,UAAW,QACX,MAAO,OACT,KACM,CACJ,KAAM,OACN,UAAW,OACX,MAAO,MACT,KACU,CACR,KAAM,WACN,UAAW,WACX,MAAO,MACT,EAOIC,GAAS,SACTC,GAAW,WACXC,GAAS,SAGTC,GAAe,CACnB,gBACA,mBACA,gBACA,mBACA,mBACA,yBACD,CACKC,GAAe,CACnB,MAAO,gBAA6E,CACpF,SAAS,IACT,UAAWJ,EACb,EAGaK,GAAgB,CAC3B,oBACA,iBACA,cACA,kBACA,kBACA,mBACA,oBACA,sBACA,oBACA,sBACA,iBACA,iBACA,eACA,oBACA,mBACA,iBACA,sBACA,mBACA,kBACA,sBACA,kBACA,iBACA,yBACA,wBACA,0BACA,oBACA,iBACA,oBACA,gBACA,mBACA,qBACA,eACA,oBACA,kBACA,iBACA,iBACA,mBACA,kBACA,iBACA,iBACA,qBACA,yBACA,yBACD,CACKC,GAAgB,CACpB,MAAO,mBAA4F,CACnG,SAAS,IACT,UAAWL,EACb,EAGMM,GAAiB,CACrB,kBACA,mBACA,mBACA,iBACA,eACA,gBACA,mBACA,mBACA,gBACA,kBACA,gBACA,oBACA,iBACA,gBACA,iBACA,sBACA,kBACA,qBACA,+BACA,mCACD,CACKC,GAAiB,CACrB,MAAO,gBAAgF,CACvF,SAAS,IACT,UAAWP,EACb,EAGMQ,GAAc,CAClB,iBACA,gBACA,iBACA,cACD,CACKC,GAAc,CAClB,MAAO,gBAA6E,CACpF,SAAS,IACT,UAAWT,EACb,EAEMU,GAAe,CACnB,iBAAkB,CAChB,MAAO,gBAA6E,CACpF,SAAS,IACT,UAAWX,EACb,EACA,eAAgB,CACd,MAAO,OAA+B,CACtC,SAAS,IACT,UAAWE,EACb,EACA,oBAAqB,CACnB,MAAO,gBAA6E,CACpF,SAAS,IACT,UAAWF,EACb,EACA,qBAAsB,CACpB,MAAO,IAAe,CACtB,SAAS,IACT,UAAWE,EACb,CACF,EAEA,SAASU,GAAeC,CAAG,CAAEC,CAAI,EAC/B,OAAOD,EAAI,MAAM,CAAC,CAACE,EAAKC,KACtB,IAAMC,EAAO,YAAKF,GAElB,OADAE,CAAI,CAACD,EAAQ,CAAGF,EACTG,CACT,EAAG,CAAC,EACN,CAiBO,IAAMC,GATJ,YACFN,GAAeT,GAAcC,IAC7BQ,GAAeL,GAAgBC,IAC/BI,GAAeH,GAAaC,IAC5BE,GAAeP,GAAeC,IAC9BK,IAMDQ,GAAiBnL,OAAO,IAAI,CAACkL,IAEnC,OAAe,CAGbb,cAAAA,EACF,EC/LA,IAAMe,GAAmB,CAAC,sBAAuB,mBAAmB,CAE9DC,GAAgB,CAACC,EAAMC,EAAWC,IAC/BF,AAAS,mBAATA,GACFC,AAAc,iBAAdA,GACAC,AAAwB,KAAxBA,EAAM,KAAK,CAAC,IAAI,CAAC,EAAE,EACnBA,AAA4B,IAA5BA,EAAM,KAAK,CAAC,KAAK,MAAM,CAGxBC,GAAkB,CAACH,EAAME,IACtBF,AAAS,mBAATA,GACDE,AAAgC,KAAhCA,EAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAE,IAAI,IAC1BA,AAA4B,IAA5BA,EAAM,KAAK,CAAC,KAAK,MAAM,CAGxBE,GAAsBC,AAAAA,IAC1B,GAAM,CAAEL,KAAAA,CAAI,CAAEC,UAAAA,CAAS,CAAEC,MAAAA,CAAK,CAAE,CAAGG,EAC7BC,EAAUP,GAAcC,EAAMC,EAAWC,GACzCK,EAAYJ,GAAgBH,EAAME,UACxC,AAAII,EAAgB,cAChBC,EAAkB,gBACfP,CACT,EAEMQ,GAA6BnJ,AAAAA,GACjC,AAAIoJ,KAAcpJ,GAAcA,EAAK,IAAI,CACrC,SAAS,IAAI,CAACA,IACd,SAAS,IAAI,CAACA,GADcA,EAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAE1CA,GAAQA,AAAS,IAATA,EAAgBA,EAAK,QAAQ,EAAIA,EAAK,QAAQ,IAAOA,EAAQ,GAGlEqJ,GAAerJ,AAAAA,GACnBmJ,GAA2BnJ,GAC/B,OAAO,CAAC,SAAU,IAClB,IAAI,GAGIsJ,GAAetJ,AAAAA,GAC1B,AAAIoJ,KAAcpJ,GAAcA,EAAK,IAAI,CACrC,SAAS,IAAI,CAACA,GAAcA,EAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAC1C,SAAS,IAAI,CAACA,GAASA,EAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAGA,GAAQ,GAGjDuJ,GAAoBvJ,AAAAA,GAC/B,AAAIoJ,KAAcpJ,GAAcA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,SAAS,AAAD,IAAM,IAChD,SAAS,IAAI,CAACA,GAAcA,AAAuB,MAAvBA,EAAK,KAAK,CAAC,IAAI,CAAC,EAAE,QAGvCwJ,GAAY,CAACC,EAAOC,EAAQ,EAAI,IAC3C,IAAMC,EAAarD,SAASmD,EAAO,IACnC,GAAIE,AAAe,IAAfA,EACF,MAAOzN,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEwN,EAAQ,WAAa,YAEhC,IAAME,EAAc1N,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEwN,EAAQ,YAAc,aACtCG,EAAU3N,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEwN,EAAQ,WAAa,YACvC,OAAOC,EAAa,EAAIC,EAAcC,CACxC,EAEaC,GAAkB,CAACC,EAAON,EAAOO,KAC5C,IAAMC,EAAQD,AAAgB,OAAhBA,EACRE,EAAcH,AAAQ,IAARA,EAAeN,EACnC,GAAIU,OAAO,KAAK,CAACD,GAAa,OAAOD,EAAQ,IAAM,OACnD,IAAMG,EAAaF,EAAW,OAAO,CAACD,EAAQ,EAAI,GAElD,MAAO,CAAC,EAAEG,EAAW,CAAC,CAAC,AACzB,EAEMC,GAA8B,CAAC,cAAe,iBAAiB,CAE/DC,GAAc,CAACC,EAAW,OAAO,CAAEC,EAAW,KAAK,GAChD,CAACC,EAAGC,IACT,AAAIF,AAAa,kBAAbA,EAAqCC,CAAC,CAACF,EAAS,CAAC,QAAQ,GAAG,aAAa,CAACG,CAAC,CAACH,EAAS,CAAC,QAAQ,IAC9FC,AAAa,SAAbA,EAA4BE,CAAC,CAACH,EAAS,CAAGE,CAAC,CAACF,EAAS,CAClDE,CAAC,CAACF,EAAS,CAAGG,CAAC,CAACH,EAAS,CAI9BI,GAAgB,CAACC,EAAaC,IAClC,AAAIzB,KAAcwB,EAAY,IAAI,EAEzBE,AADiB,CAAC,EAAEF,EAAY,IAAI,CAAC,IAAI,CAAC,CAAC,EAAEA,EAAY,IAAI,CAAC,IAAI,CAAC,CAAC,GAChDC,EAAE,IAAI,CAE5BD,EAAY,IAAI,GAAKC,EAAE,IAAI,CAGvBE,GAAyB,CAACC,EAAMC,EAAc,IAAI,CAAExB,EAAQ,IAAI,CAAEyB,IAC7E,AAAI,AAACD,GAAe3E,AAA8B,IAA9BA,SAAS2E,EAAa,IAQnCxB,EAPEuB,EAAK,MAAM,CAAC,CAACG,EAAKC,IACvB,AAAIA,EAAK,SAAS,EAAIA,CAAI,CAACF,EAAoB,CACtCE,CAAI,CAACF,EAAoB,CAAGC,EAE9BA,EACN,GAKME,GAAiB,CAC5BrC,EACAsC,EACAC,EAAY,EAAE,CACdC,EACAC,EACAC,EAAe,EAAK,CACpBC,EACAC,EACAV,EACAzB,EACAoC,EACAZ,EACAa,KAEA,IAAIC,EAAWtC,EACTuC,EAAejD,GAAoBC,GACrCiD,EAAc,EACZC,EAAkBX,EAAU,GAAG,CAACV,AAAAA,IACpC,IAAMsB,EAAQV,EAAa,IAAI,CAACb,AAAAA,GAAeD,GAAcC,EAAaC,IACtE7K,EAAQmM,GAASA,EAAM,IAAI,EAAKtB,EAAE,IAAI,CAC1C,GAAI,CAACsB,GAAS1D,GAAiB,OAAO,CAACO,EAAS,IAAI,EAAI,GAAI,CAC1D,GAAM,CAAC/M,EAAMmQ,EAAMC,EAAU,CAAGxB,EAAE,IAAI,CAAC,KAAK,CAAC,KAC7C7K,EAAO,CAAEoM,KAAAA,EAAMnQ,KAAAA,CAAK,EAChB6P,GAAe9L,CAAAA,EAAK,SAAS,CAAGqM,CAAQ,CAC9C,CACA,IAAIzI,EAAQ6H,EAAa,SAAS,CAACb,AAAAA,GAAeD,GAAcC,EAAaC,GAC/D,MAAVjH,IACFA,EAAQ6H,EAAa,MAAM,CAAGQ,EAC9BA,KAEF,IAAMK,EAASH,GAASA,EAAM,KAAK,EAAMT,CAAAA,EAAe,GAAKC,CAAY,CAAC/H,EAAQ+H,EAAa,MAAM,CAAC,AAAD,EAC/FY,EAAaJ,CAAAA,GAASA,AAAoBK,KAAAA,IAApBL,EAAM,SAAS,EAAkB,CAAC,CAACA,EAAM,SAAS,AAElD,WAAxBjB,GACFa,CAAAA,EAAWH,CAAa,CAAC,CAAC,KAAK,EAAEV,EAAoB,CAAC,CAAC,AAAD,EAGxD,IAAMhB,EAAaJ,GAAgBe,CAAC,CAACK,EAAoB,EAAI,EAAGa,EAAUF,GAC1E,MAAO,qBACFhB,GAAAA,CACHyB,MAAAA,EACA1I,MAAAA,EACA2I,UAAAA,EACAvM,KAAAA,EACAkK,WAAAA,C,EAEJ,GACG,IAAI,CAACI,GAAY,UACjB,GAAG,CAAC,AAAC,I,GAAA,CAAE1G,MAAAA,CAAK,CAAU,G,MAAL6I,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAV7I,Q,IAEJ8I,EAAsB3B,GAAuBmB,EAAiBjB,EAAac,EAAUb,GAGrFyB,EAAiBT,EAAgB,GAAG,CAACrB,AAAAA,GAAM,qBAC5CA,GAAAA,CACH,WAAYA,EAAE,SAAS,CAAGf,GAAgBe,CAAC,CAACK,EAAoB,EAAI,EAAGwB,EAAqBb,GAAmB,I,IAG3Ge,EAAqBjB,EAAa,MAAM,CAAG,EAAIA,EAAe3E,GAC9D6F,EAAgB7B,AAAAA,GACbA,EAAK,GAAG,CAAC,CAACH,EAAGjH,IAAW,qBAC1BiH,GAAAA,CACH,MAAO+B,AAAwC,KAAxCA,EAAmB,OAAO,CAAC/B,EAAE,KAAK,EAAWA,EAAE,KAAK,CAAGc,CAAY,CAAC/H,EAAQ+H,EAAa,MAAM,CAAC,A,IAI3G,GAAIH,AAAY,SAAZA,EAAoB,CACtB,IAAMsB,EAAoB,IAAIH,EAAe,IAAI,CAACrC,GAAYY,EAAqB,SAAS,CAC5F,OAAO,AAACQ,EAAkDoB,EAAnCD,EAAcC,EACvC,CAEA,GAAItB,AAAY,QAAZA,EAAmB,CACrB,IAAMsB,EAAoB,IAAIH,EAAe,IAAI,CAACrC,GAAYY,IAAsB,CACpF,OAAO,AAACQ,EAAkDoB,EAAnCD,EAAcC,EACvC,CAEA,GAAItB,AAAY,eAAZA,EAA0B,CAC5B,IAAMsB,EAAoB,IAAIH,EAAe,IAAI,CAACrC,GAAY,OAAQ,kBAAkB,CACxF,OAAO,AAACoB,EAAkDoB,EAAnCD,EAAcC,EACvC,CAEA,GAAItB,AAAY,SAAZA,EAAoB,CACtB,GAAInB,GAA4B,OAAO,CAAC2B,GAAgB,GAAI,CAC1D,IAAMc,EAAoB,IAAIH,EAAe,IAAI,CAACrC,GAAY,OAAQ,SAAS,CAC/E,OAAO,AAACoB,EAAkDoB,EAAnCD,EAAcC,EACvC,CAEA,IAAMC,EAAqB1P,OAAO,MAAM,CADnBoC,GAAcuJ,EAAS,aAAa,GACF,GAAG,CAACgE,AAAAA,GAAUA,EAAO,KAAK,EAI3EC,EAAkBC,AAHR3B,EAAU,GAAG,CAACP,AAAAA,GACrB2B,EAAe,IAAI,CAACQ,AAAAA,GAAaA,EAAU,IAAI,GAAKnC,EAAK,IAAI,GACnE,MAAM,CAACoC,AAAAA,GAAKA,GACiB,IAAI,CAAC,CAAC3C,EAAGC,KACvC,GAAM,CAAC2C,EAAQC,EAAO,CAAGtE,AAAkB,wBAAlBA,EAAS,IAAI,CAClC,CAAC+D,EAAmB,OAAO,CAACtC,EAAE,IAAI,EAAGsC,EAAmB,OAAO,CAACrC,EAAE,IAAI,EAAE,CACxE,CACAqC,EAAmB,SAAS,CAACC,AAAAA,GAAUO,KAAQP,EAAQvC,EAAE,IAAI,GAC7DsC,EAAmB,SAAS,CAACC,AAAAA,GAAUO,KAAQP,EAAQtC,EAAE,IAAI,GAC9D,CACH,MAAS2C,AAAAA,CAAAA,EAAS,GAAKA,EAASG,GAAO,EAAMF,CAAAA,EAAS,GAAKA,EAASE,GAAO,CAC7E,GACA,OAAO,AAAC9B,EAAgDuB,EAAjCJ,EAAcI,EACvC,CACA,OAAON,CACT,EAMMc,GAAW7P,AAAAA,IACf,IAAM8P,EAAiB7G,GAAUjJ,SACjC,AAAI,AAA0B,UAA1B,OAAO8P,EAAoC,GACxCA,EAGJ,OAAO,CAAC,OAAQ,GACrB,EAEMC,GAAoBpC,AAAAA,GAAaA,EAAU,GAAG,CAACqC,AAAAA,GAE5CA,EAAE,IAAI,EAAI,AAAkB,UAAlB,OAAOA,EAAE,IAAI,CAAgB,qBAAKA,GAAAA,CAAG,KAAMH,GAASG,EAAE,IAAI,EAAE,IAAI,E,GAAOA,GAGpFC,GAAoBC,AAAAA,GAAazQ,OAAO,IAAI,CAACyQ,GAAW,MAAM,CAAC,CAACrD,EAAGI,IAEhE,qBAAKJ,GAAAA,CAAG,CAACgD,GAAS5C,GAAG,IAAI,GAAG,CAAEiD,CAAS,CAACjD,EAAE,A,GAChD,GAEGkD,GAAyB,CAC7B/E,EACAgF,EACAzC,EACAC,EACAC,EACAC,EAAe,EAAK,CACpBC,EACAsC,EACApC,KAEA,GAAM,CACJqC,SAAAA,CAAQ,CAAErF,MAAAA,CAAK,CAAED,UAAAA,CAAS,CAAEuF,WAAAA,CAAU,CAAEC,SAAAA,CAAQ,CACjD,CAAGpF,EAWEqF,EAAqB5O,GAAcuO,EAAoB,EAAE,EAAE,GAAG,CAACZ,AAAAA,GAAKK,GAASL,IAC7EkB,EAAezF,EAAM,KAAK,CAAC,KAAK,GAAG,CAAC0F,AAAAA,GAAMd,GAASc,IACnDC,EAAkBC,AAZG,MACzB,OAAQ7F,GACN,IAAK,eAAgB,OAAO7B,EAAW,CAACiC,EAAS,UAAU,EAAI,EAAE,AACjE,KAAK,SAAU,OAAOmF,EAAW,KAAK,CAAC,KAAK,GAAG,CAACO,AAAAA,GAAMjB,GAASiB,GAC/D,KAAK,UAAW,OAAOjP,GAAc2O,GAAU,GAAG,CAAC,CAACO,EAAI/K,IAC/C+K,EAAG,IAAI,CAAGlB,GAASkB,EAAG,IAAI,EAAI,CAAC,EAAEA,EAAG,IAAI,CAAC,OAAO,CAAC,IAAK,KAAK,EAAE/K,EAAM,CAAC,CAE7E,SAAS,OAAOsK,EAAS,KAAK,CAAC,KAAK,GAAG,CAACQ,AAAAA,GAAMjB,GAASiB,GACzD,CACF,KAMME,EAAeC,AAFCR,CAAAA,EAAmB,MAAM,CAAGA,EAAqBC,CAAW,EAE/C,GAAG,CAACQ,AAAAA,GAAOA,EAAI,IAAI,IAClDC,EAAkBP,EAAgB,GAAG,CAACQ,AAAAA,GAAUA,EAAO,IAAI,IAE/D,GAAIzD,EAAU,MAAM,CAAG,GAAMC,CAAAA,AAAY,WAAZA,GAAwBA,AAAY,SAAZA,CAAiB,EAAI,CACxE,IAAMR,EAAOO,EAAU,MAAM,CAAC,CAAC0D,EAAQ/R,KACrC,IAAMgS,EAAQ,YAAKhS,EACfgS,CAAAA,EAAM,IAAI,EACZ,OAAOA,EAAM,IAAI,CAGnB,IAAMC,EAAW9R,OAAO,IAAI,CAAC6R,GAC7B,GAAID,AAAkB,IAAlBA,EAAO,MAAM,CACf,OAAOE,EAGT,IAAMC,EAAaD,EAAS,GAAG,CAACnR,AAAAA,GACvBiR,AAAwB,KAAxBA,EAAO,OAAO,CAACjR,IAAeA,GACpC,MAAM,CAACoP,AAAAA,GAAKA,GAEf,MAAO,IAAI6B,KAAWG,EAAW,AACnC,EAAG,EAAE,CAEW,YAAZ5D,GACFuD,CAAAA,EAAkB/D,EACf,IAAI,CAAC,CAACP,EAAGC,IAAMJ,GAAY,SAAS,CACnC,MAAOmB,EAAa,SAAS,CAAC4D,AAAAA,GAAKA,EAAE,IAAI,GAAK5E,EAChD,EAAG,CACD,MAAOgB,EAAa,SAAS,CAAC4D,AAAAA,GAAKA,EAAE,IAAI,GAAK3E,EAChD,GAAE,EAGU,SAAZc,GACFuD,CAAAA,EAAkB/D,EAAK,IAAI,CAACV,GAAY,OAAQ,QAAO,CAE3D,CAEA,IAAMgF,EAAqB3B,GAAkBpC,GAEvCgE,EAAaX,EAAa,MAAM,CAAC,CAACxG,EAAKpK,KAE3C,IAAMwR,EAASF,EAAmB,IAAI,CAAC1B,AAAAA,GAAKA,EAAE,IAAI,GAAK5P,GACvD,GAAIwR,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,AAAD,GAAKZ,AAAsC,KAAtCA,EAAa,OAAO,CAACY,EAAO,IAAI,EAAU,CAC5D,GAAM,CAAExP,KAAAA,CAAI,CAAY,CAAGwP,EACrBC,EAAO5B,GADI6B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAUF,EAAAA,CAAnBxP,O,GAEFyJ,EAAQpM,OAAO,IAAI,CAACoS,GAAM,MAAM,CAAC,CAAChF,EAAGI,IAAMJ,EAAIgF,CAAI,CAAC5E,EAAE,CAAE,GAE9DvC,AAPWF,EAON,IAAI,CAAC,UACRpI,KAAAA,C,EACG+O,EAAgB,MAAM,CAAC,CAACtE,EAAGkF,EAAGC,KAE/B,IAAMC,EAAcpE,EAAa,IAAI,CAAC4D,AAAAA,GAAKA,EAAE,IAAI,GAAKM,GAChDpD,EAAYsD,CAAAA,GAAc,CAAC,CAACA,EAAY,SAAS,CACjDC,EAAerC,GAASkC,GAAG,IAAI,GAUrC,MATI,CAAE1B,CAAAA,GAAoB,CAAC1B,CAAQ,GACjCwD,CAAAA,AALStF,CAKP,CAACkF,EAAE,CAAG,CACN,MAAQE,GAAeA,EAAY,KAAK,EAClCnE,CAAAA,EAAe,GAAKC,CAAY,CAACiE,EAAIjE,EAAa,MAAM,CAAC,AAAD,EAC9D,UAAWkE,CAAAA,GAAc,CAAC,CAACA,EAAY,SAAS,CAChD,WAAY/F,GAAgB2F,CAAI,CAACK,EAAa,CAAErG,EAAOoC,GACvD,MAAO4D,CAAI,CAACK,EAAa,AAC3B,GAXSrF,CAcb,EAAG,CAAC,IAER,CACA,OA3BarC,CA4Bf,EAAG,EAAE,EAEL,GAAImH,AAAsB,IAAtBA,EAAW,MAAM,EAAU,CAAC7D,EAAc,CAC5C,IAAMsE,EAAST,CAAU,CAAC,EAAE,CACtB,CAAEvP,KAAAA,CAAI,CAAW,CAAGgQ,EAATP,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAASO,EAAAA,CAAlBhQ,O,EACFyJ,EAAQpM,OAAO,IAAI,CAACoS,GAAM,MAAM,CAAC,CAAChF,EAAGI,IAAMJ,EAAIgF,CAAI,CAAC5E,EAAE,CAAC,KAAK,CAAE,GAC9DoF,EAAe5S,OAAO,IAAI,CAACoS,GAAM,MAAM,CAACrC,AAAAA,GAAK2B,EAAgB,QAAQ,CAAC3B,IAO5E,MAAO,CANM8C,KAAOD,EAAc7C,AAAAA,GAAK2B,EAAgB,OAAO,CAAC3B,IAC5D,GAAG,CAACpP,AAAAA,GAAQ,qBACRgS,CAAM,CAAChS,EAAI,GACd,KAAMA,EACN,WAAY8L,GAAgBkG,CAAM,CAAChS,EAAI,CAAC,KAAK,CAAEyL,EAAOoC,E,IAE5C,EAAE,CAAC,AACnB,CAIA,OADAkD,EAAmBQ,CAAU,CAAC,EAAE,EAAIR,EAAgB,MAAM,CAAC/Q,AAAAA,GAAOX,OAAO,IAAI,CAACkS,CAAU,CAAC,EAAE,EAAE,OAAO,CAACvR,GAAO,KAAQ,EAAE,CAC/G,CAACuR,EAAYR,EAAgB,AACtC,EAEaoB,GAAuB,CAAC5E,EAAWvC,EAAUoH,EAAY3G,EAAOoC,EAAiBwE,KAC5F,GAAIjJ,GAA8B,QAAQ,CAAC2B,GAAoBC,IAC7D,OAAOuC,EAGT,IAAM+E,EAAahK,SAAS8J,EAAY,IAClCG,EAAkBhF,EAAU,KAAK,CAAC,EAAG+E,EAAa,GAClDE,EAAiBjF,EAAU,KAAK,CAAC+E,EAAa,GAAG,GAAG,CAACtF,AAAAA,GAClD,qBAAKA,GAAAA,CAAM,MAAO,E,IAErB2B,EAAiB,IAAI4D,EAAgB,CAErCE,EAAaD,EAAe,MAAM,CAAC,CAACrF,EAAKC,KAE7C,IAAMsF,EAAQtF,GAAQ,CAAE,MAAO,CAAE,SACjC,AAAIA,EAAK,SAAS,CAASD,EAAMuF,EAAM,KAAK,CACrCvF,CACT,EAAG,GAEG,CACJmB,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAEvM,KAAAA,CAAI,CAAE2Q,MAAAA,CAAK,CAC9B,CAAGlR,GAAc4Q,GACZO,EAAY,CAChB,MAAOtE,GAAS,UAChB,UAAWC,AAAcC,KAAAA,IAAdD,GAA0BA,EACrC,QAAS,GACT,KAAMvM,GAAQ,gBACd,MAAO2Q,AAAUnE,KAAAA,IAAVmE,EAAsBA,EAAQJ,EAAgB,MAAM,CAC3D,WAAYzG,GAAgB2G,EAAYhH,EAAOoC,GAC/C,MAAO4E,CACT,EASA,OAPID,EAAe,MAAM,CAAG,IACtB/H,GAAiB,OAAO,CAACO,EAAS,IAAI,EAAI,IAC5C4H,CAAAA,EAAU,IAAI,CAAG,CAAE,KAAM1J,GAAkB,KAAM,eAAgB,GAEnEyF,EAAe,MAAM,CAACiE,EAAU,KAAK,CAAE,EAAGA,GAC1CjE,EAAe,MAAM,CAACiE,EAAU,KAAK,CAAG,EAAG,KAAMJ,IAE5C7D,CACT,EAaakE,GAAgB,CAAC,CAC5B,cAAeC,CAAc,CAC7BC,cAAAA,CAAa,CACbC,WAAAA,CAAU,CACX,CAAEjH,KACD,IAAMkH,EAAcF,GAAiBC,EAAcvR,GAAcsK,EAAOA,GAASA,QACjF,AAAKgH,AAAAA,CAAAA,GAAiBC,CAAS,GAAMC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,IAAI,AAAD,IAAM/J,GACjD+J,EAAW,IAAI,GAEpBH,GACK,CAAC,EAAE7J,GAAQ,CAAC,EAAE8C,EAAM,IAAI,CAAC,AAGpC,EAEamH,GAAe,CAAC,CAC3B,cAAeJ,CAAc,CAC7BC,cAAAA,CAAa,CACbC,WAAAA,CAAU,CACX,CAAEjH,KACD,GAAI+G,EAAgB,MAAO,GAC3B,GAAIC,EAAe,CACjB,IAAME,EAAaxR,GAAcsK,EAAOA,GACxC,MAAOkH,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,IAAI,AAAD,IAAM/J,IAAmBmC,GAAa4H,EAC9D,CACA,GAAID,EAAY,CACd,IAAMC,EAAaxR,GAAcsK,EAAOA,GACxC,OAAOkH,MAAAA,KAAAA,EAAY,IAAI,EAAG5H,GAAa4H,EAAW,IAAI,CACxD,CACA,OAAO5H,GAAaU,EACtB,EAEaoH,GAAoB,CAAC,CAAEH,WAAAA,CAAU,CAAE,CAAEjH,KAChD,GAAI,CAACiH,EAAY,MAAO,GACxB,IAAMC,EAAaxR,GAAcsK,EAAOA,GACxC,OAAOkH,MAAAA,KAAAA,EAAY,SAAS,EAAG1H,GAAkB0H,EACnD,EAEaG,GAAgBC,AAAAA,IAE3B,IAAI7T,EAAI,EACJ8T,EAAI,EACJ5G,EAAI,CAEJ2G,AAAe,KAAfA,EAAI,MAAM,EACZ7T,EAAI,CAAC,EAAE,EAAE6T,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,CAC1BC,EAAI,CAAC,EAAE,EAAED,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,CAC1B3G,EAAI,CAAC,EAAE,EAAE2G,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,EACF,IAAfA,EAAI,MAAM,GACnB7T,EAAI,CAAC,EAAE,EAAE6T,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,CAC1BC,EAAI,CAAC,EAAE,EAAED,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,CAC1B3G,EAAI,CAAC,EAAE,EAAE2G,CAAG,CAAC,EAAE,CAAC,EAAEA,CAAG,CAAC,EAAE,CAAC,CAAC,EAM5B,IAAME,EAAOC,KAAK,GAAG,CAJrBhU,GAAK,IACL8T,GAAK,IACL5G,GAAK,KAID+G,EAAI,EAKR,OAFAA,EAAI,CAAEA,AAAAA,CAAAA,AAAI,IADVA,CAAAA,EAAKC,AAAAA,CAAAA,AAHQF,KAAK,GAAG,CAAChU,EAAG8T,EAAG5G,GAGhB6G,CAAG,EAAK,EACR,EAAG,OAAO,CAAC,EAGzB,EAEMI,GAAa,CAACrG,EAAWN,EAAMhC,KACnC,GAAIsC,AAAc,UAAdA,EACJ,OAAQN,EAAK,MAAM,CAAC,CAACG,EAAKyG,KACxB,GAAI,CAACA,EAAG,SAAS,CAAE,OAAOzG,EAE1B,IAAM0G,EAAW9K,EAAW,CADbiC,EAAS,UAAU,EAAI,EACF,CAC9BpF,EAAQoF,AAAkB,gBAAlBA,EAAS,IAAI,CACvB6I,EAAS,OAAO,CAAC,CAAC,EAAED,EAAG,IAAI,CAAC,CAAC,EAAI,EAAItL,SAASsL,EAAG,IAAI,CAAE,IAC3D,OAAQA,EAAG,KAAK,CAAGhO,EAASuH,CAC9B,EAAG,GAAKH,EAAK,MAAM,CAAC,CAACG,EAAKC,IACjBA,EAAK,SAAS,CAAGA,EAAK,KAAK,CAAGD,EAAMA,EAC1C,EACL,EAEa2G,GAAkB,CAACC,EAAmBC,EAAoBC,KACrE,IAAMC,EAAoBH,GAAsBC,GAAsB,YAChEG,EAA4B1S,GAAcwS,EAA2B,EAAE,EAEvEG,EAAeC,AADM,YAAW,IAAI,CAACH,GAAsB/K,GAAsBgL,CAAwB,EACxE,IAAI,CAACG,AAAAA,GAAKA,EAAE,EAAE,GAAKJ,GAC1D,OAAQE,GAAgBA,EAAa,MAAM,EAAKjL,EAAmB,CAAC,IAApBA,CAAAA,MAA6B,AAC/E,EAEaoL,GAAwB,CAAC,CACpCC,aAAAA,CAAY,CACZC,eAAAA,CAAc,CACdC,eAAAA,CAAc,CACdC,YAAAA,CAAW,CACZ,IACC,GAAIA,AAAgB,OAAhBA,EACF,MAAO,CACL,gBAAiBC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAKJ,EAAcE,GACpC,aAAcD,CAChB,CAEJ,EAEaI,GAAuB,CAAC,CACnChO,gBAAAA,CAAe,CACfH,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChBC,eAAAA,CAAc,CACdS,gBAAAA,CAAe,CAChB,IACC,IAAMc,EAAmB1G,GAAcoF,EAAiB,EAAE,EAC1D,MAAO,CACL,MAAOH,EACP,WAAYC,EACZ,SAAU2B,SAAS1B,EAAgB,IACnC,UAAWuB,EAAiB,QAAQ,CAAC,UAAY,SAAW,SAC5D,WAAYA,EAAiB,QAAQ,CAAC,QAAU,OAAS,SACzD,UAAWd,EACX,eAAgBc,EAAiB,QAAQ,CAAC,aAAe,YAAc,MACzE,CACF,EAEM2M,GAAsB,CAAC,CAC3B9J,SAAAA,CAAQ,CACRsC,UAAAA,CAAS,CACTN,KAAAA,CAAI,CACJQ,QAAAA,CAAO,CACPC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZJ,UAAAA,CAAS,CACTL,oBAAAA,CAAmB,CACnB6H,YAAAA,CAAW,CACXlH,gBAAAA,CAAe,CACfuE,WAAAA,CAAU,CACVC,sBAAAA,CAAqB,CACrBpF,YAAAA,CAAW,CACXa,cAAAA,CAAa,CACd,IACC,IAAIa,EAAiBtB,GACnBrC,EACAsC,EACAN,EACAQ,EACAC,EACAC,EACAC,EACAJ,EACAL,EACA6H,EACAlH,EACAZ,EACAa,GAcF,GAXmBU,KAAAA,IAAf4D,GAA4B9J,SAAS8J,EAAY,IAAM,GACzDzD,CAAAA,EAAiBwD,GACfxD,EACA3D,EACAoH,EACA2C,EACAlH,EACAwE,EAAqB,EAIrB/E,AAAc,UAAdA,EAAuB,CACzB,IAAM0H,EAAUrB,GAAWrG,EAAWqB,EAAgB3D,EAAU+J,EAC5D,EAAC5I,OAAO,KAAK,CAAC6I,IAChBrG,EAAe,IAAI,CAAC,CAClB,QAASqG,EAAQ,OAAO,CAAC,EAC3B,EAEJ,CAKA,OAAOrF,GAFPhB,EAAiBA,AADjBA,CAAAA,EAAiBA,EAAe,MAAM,CAACiB,AAAAA,GAAMA,AAAgBpB,KAAAA,IAAhBoB,EAAE,SAAS,EAAiBA,EAAE,SAAS,CAAO,EAC3D,MAAM,CAACA,AAAAA,GAAM,CAACA,EAAE,KAAK,EAGvD,EAEMqF,GAAsB,CAAC,CAC3B3H,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACTL,oBAAAA,CAAmB,CACnBlC,SAAAA,CAAQ,CACRwC,QAAAA,CAAO,CACPC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CACZoH,YAAAA,CAAW,CACXlH,gBAAAA,CAAe,CACfuE,WAAAA,CAAU,CACVC,sBAAAA,CAAqB,CACrB6C,SAAAA,CAAQ,CACT,IACC,IAAMC,EAAcL,GAAoB,CACtC9J,SAAAA,EACAsC,UAAAA,EACA,KAAMC,EAAU,IAAI,CACpBC,QAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAJ,UAAAA,EACAL,oBAAAA,EACA6H,YAAAA,EACAlH,gBAAAA,EACAuE,WAAAA,EACAC,sBAAAA,CACF,GAEA,GAAI/E,AAAc,SAAdA,GAAyBA,AAAc,SAAdA,GAAwB,CAACC,EAAU,QAAQ,CACtE,OAAO4H,EAGT,IAAMC,EAAc,AAACF,EAAgB,AAACG,MAAM,OAAO,CAACH,GAAsCA,EAA1B7V,OAAO,MAAM,CAAC6V,GAA9C,EAAE,CAE5BI,EAAe/H,EAAU,IAAI,CAAC,GAAG,CAACqC,AAAAA,GAAKA,EAAE,IAAI,EAC7C2F,EAAiBJ,EAAY,MAAM,CAAC,CAAChI,EAAK,CAAEnL,KAAAA,CAAI,CAAEsM,MAAAA,CAAK,CAAEpC,WAAAA,CAAU,CAAE,IACzE,IAAIsJ,EAAQ,GACN/U,EAAW2U,AAAAA,CAAAA,GAAe,EAAC,EAAG,IAAI,CAACd,AAAAA,GAChC,AAAkB,UAAlB,OAAOA,EAAE,IAAI,EACf,AAAgB,UAAhB,OAAOtS,GACPsS,EAAE,IAAI,CAAC,IAAI,KAAOtS,EAAK,IAAI,IAElC,GAAIvB,EAAS,CACX,IAAMgV,EAAShU,GAAchB,EAAQ,MAAM,CAAE,CAAC,GAAG,CAC7CgV,CAAAA,EAAO,MAAM,EACf,EAACD,EAAM,CAAGC,CAAK,CAEnB,CACA,MAAQ,qBACHtI,GAAAA,CACH,CAACnL,EAAK,CAAE,CACNsM,MAAAA,EACApC,WAAAA,EACA,SAAUlB,EAAS,QAAQ,CAC3BwK,MAAAA,CACF,C,EAEJ,EAAG,CAAC,GAEE,CAAExI,KAAAA,CAAI,CAAE,CAAGO,EAAU,QAAQ,CAC7BmI,EAAcJ,EAAa,MAAM,CAAC,CAACnI,EAAKC,IAAU,qBAAKD,GAAAA,CAAK,CAACC,EAAK,CAAE,C,GAAM,CAAC,GAE3EuI,EAAW,EAAE,CAenB,OAdA3I,EAAK,OAAO,CAAC4I,AAAAA,IACX,GAAM,CAAE5T,KAAAA,CAAI,CAAE+J,MAAAA,CAAK,CAAgB,CAAG6J,EAAdC,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAcD,EAAAA,CAA9B5T,OAAM+J,Q,EACR+J,EAAM,CAAE9T,KAAAA,CAAK,EACbkN,EAAU6G,KAAUR,GAC1BlW,OAAO,IAAI,CAACwW,GAAW,OAAO,CAACG,AAAAA,IAC7BF,CAAG,CAACE,EAAM,CAAGH,CAAS,CAACG,EAAM,CAAC9I,EAAoB,CAC3BsB,KAAAA,IAAnBU,CAAO,CAAC8G,EAAM,GAChB9G,CAAO,CAAC8G,EAAM,CAAC,MAAM,CAAGH,CAAS,CAACG,EAAM,CAAC,MAAM,CAC/C9G,CAAO,CAAC8G,EAAM,CAAC,QAAQ,CAAGH,CAAS,CAACG,EAAM,CAAC,QAAQ,CAEvD,GACAL,EAAS,IAAI,CAAC,qBAAKD,EAAgBI,GAAAA,CAAK,eAAgB5G,C,GAC1D,GAEOgD,KAAOyD,EAAU,OAC1B,EAEMM,GAAa,CAACH,EAAKI,IAKhB7W,OAAO,MAAM,CAAC,CAAC,KAJJA,OAAO,IAAI,CAACyW,GAAK,GAAG,CAAC9V,AAAAA,GAE9B,EAAE,CADMkW,CAAO,CAAClW,EAAI,EAAIA,EACd,CAAE8V,CAAG,CAAC9V,EAAI,AAAC,KAK1BmW,GAA4B,CAACxH,EAAgByH,IAC1CzH,EAAe,GAAG,CAAC0H,AAAAA,GAAU,qBAAKA,GAAAA,CAAO,KAAMD,CAAY,CAACC,EAAM,IAAI,CAAC,EAAIA,EAAM,IAAI,A,IAGxFC,GAAwB,CAACF,EAAc7I,EAAWgJ,EAAUC,EAAUC,EAAgBC,EAAY3D,KACtG,IAAIpE,EAAiBpB,EACjBoJ,EAAiBJ,EAuCrB,OAtCIC,EACEG,EAAe,MAAM,CAAG,GAC1BhI,EAAiBA,EAAe,GAAG,CAAC0H,AAAAA,GAASJ,GAAWI,EAAOD,IAC/DO,EAAiBA,EAAe,GAAG,CAACC,AAAAA,GAAQR,CAAY,CAACQ,EAAK,EAAIA,IAElEjI,EAAiBwH,GAA0BxH,EAAgByH,GAI3DzH,EAFO8H,EACL9H,EAAe,MAAM,CAAG,GAAKA,CAAc,CAAC,EAAE,CAAC,cAAc,CAC9CA,EAAe,GAAG,CAAC0H,AAAAA,GAAU,qBACzCJ,GAAWI,EAAOD,IAAAA,CACrB,eAAgBH,GAAWI,EAAM,cAAc,CAAED,E,IAGlCD,GAA0BxH,EAAgByH,GAEpDM,EACQ/H,EAAe,GAAG,CAAC0H,AAAAA,GAAU,qBACzCA,GAAAA,CACH,KAAMD,CAAY,CAACC,EAAM,IAAI,CAAC,EAAKA,AAAe,MAAfA,EAAM,IAAI,EAAY,SAAaA,AAAe,MAAfA,EAAM,IAAI,EAAY,WAAcA,EAAM,IAAI,CACpH,QAASA,AAAe,MAAfA,EAAM,IAAI,A,IAEZtD,EACQpE,EAAe,GAAG,CAAC0H,AAAAA,GAClC,qBACKA,GAAAA,CACH,KAAM,qBACDA,EAAM,IAAI,GACb,KAAMA,EAAM,IAAI,CAAC,IAAI,CAChBD,CAAY,CAACC,EAAM,IAAI,CAAC,IAAI,CAAC,EAAIA,EAAM,IAAI,CAAC,IAAI,CAChDD,CAAY,CAACC,EAAM,IAAI,CAAC,IAAI,CAAC,EAAIA,EAAM,IAAI,CAAC,IAAI,A,MAK1CF,GAA0BxH,EAAgByH,GAGtD,CAACzH,EAAgBgI,EAAe,AACzC,EAEaE,GAAoB,CAAC,CAChCtJ,UAAAA,CAAS,CACTE,aAAAA,CAAY,CACZqJ,eAAAA,CAAc,CACdnJ,aAAAA,CAAY,CACZX,KAAAA,CAAI,CACJoF,WAAAA,CAAU,CACVnC,iBAAAA,CAAgB,CAChBvC,aAAAA,CAAY,CACZG,gBAAAA,CAAe,CACfmC,mBAAAA,CAAkB,CAClBxC,QAAAA,CAAO,CACP6E,sBAAAA,CAAqB,CACrBrH,SAAAA,CAAQ,CACR+J,YAAAA,CAAW,CACXzH,UAAAA,CAAS,CACT4H,SAAAA,CAAQ,CACRkB,aAAAA,CAAY,CACZnJ,YAAAA,CAAW,CACXa,cAAAA,CAAa,CACd,IACC,IAAIa,EAAiB,EAAE,CACnBgI,EAAiB,EAAE,CACnBzJ,EAAsB4J,EAEpB9I,EAAehD,EAAS,IAAI,CAC5ByL,EAAiB/M,GAAc,OAAO,CAACsE,GAAgB,GACvDwI,EAAWxI,AAAiB,mBAAjBA,EACX0I,EAAa1I,AAAiB,qBAAjBA,EAGnB,GAAI,CACEwI,GACF,CAAC7H,EAAgBgI,EAAe,CAAG5G,GACjC/E,EACAgF,EACAhD,EACAQ,EACAC,EACAC,EACAC,EACAsC,EACApC,GAE4B,IAA1B8I,EAAe,MAAM,EAAQzJ,CAAAA,EAAsB,OAAM,GAE7DyB,EADS8H,EACQxB,GAAoB,CACnC1H,UAAAA,EACAE,aAAAA,EACAP,oBAAAA,EACAI,UAAAA,EACAK,aAAAA,EACAyE,WAAAA,EACA1E,aAAAA,EACAG,gBAAAA,EACAL,QAAAA,EACA6E,sBAAAA,EACArH,SAAAA,EACA+J,YAAAA,EACAG,SAAAA,CACF,GAEiBJ,GAAoB,CACnCvH,UAAAA,EACAE,aAAAA,EACAP,oBAAAA,EACAI,UAAAA,EACAK,aAAAA,EACAX,KAAAA,EACAoF,WAAAA,EACA1E,aAAAA,EACAG,gBAAAA,EACAL,QAAAA,EACA6E,sBAAAA,EACArH,SAAAA,EACA+J,YAAAA,EACA9H,YAAAA,EACAa,cAAAA,CACF,EAEJ,CAAE,MAAOiJ,EAAO,CAEdC,QAAQ,KAAK,CAAC,gCAAkCD,EAAM,QAAQ,GAChE,CAmBA,OAlBI1X,OAAO,IAAI,CAAC+W,GAAc,MAAM,CAAG,EACrC,CAACzH,EAAgBgI,EAAe,CAAGL,GACjCF,EACAzH,EACAgI,EACAH,EACAC,EACAC,EA9DkB1I,AAAiB,wBAAjBA,GAiEX0I,GACT/H,CAAAA,EAAiBA,EAAe,GAAG,CAAC0H,AAAAA,GAAU,qBACzCA,GAAAA,CACH,KAAOA,AAAe,MAAfA,EAAM,IAAI,EAAY,SAAaA,AAAe,MAAfA,EAAM,IAAI,EAAY,WAAcA,EAAM,IAAI,CACxF,QAASA,AAAe,MAAfA,EAAM,IAAI,A,KAIhB,CAAC1H,EAAgBgI,EAAgBzJ,EAAoB,AAC9D,EAEM+J,GAAkB,CAACtI,EAAgB3B,K,IAClCkK,EAAL,GAAI,EAAkB,OAAjBA,CAAAA,EAAAA,CAAc,CAAC,EAAE,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,cAAc,AAAD,EACnC,OAAOlK,EAGT,IAAMmK,EAAc9X,OAAO,IAAI,CAACsP,CAAc,CAAC,EAAE,CAAC,cAAc,EAWhE,OAV6BwI,EAAY,SAAS,CAACnV,AAAAA,GAAQA,AAAS,kBAATA,GAA4B,IAGrFmV,EAAY,MAAM,CAACA,EAAY,OAAO,CAAC,iBAAkB,GAGvCA,EAAY,GAAG,CAACnV,AAAAA,GAC3BgL,EAAK,IAAI,CAACoK,AAAAA,GAAYA,EAAS,IAAI,GAAKpV,GAInD,EAEaqV,GAAgB,CAAC,CAC5B9J,UAAAA,CAAS,CACToB,eAAAA,CAAc,CACdgI,eAAAA,CAAc,CACd3I,aAAAA,CAAY,CACZV,UAAAA,CAAS,CACV,IACC,IAAIgK,EAAa/J,EAGjB,GAFuB7D,GAAc,OAAO,CAACsE,GAAgB,IAG3D,GAAIV,AAAc,SAAdA,EAAsB,CACxB,GAAM,CAAEqI,SAAAA,CAAQ,CAAE3I,KAAAA,CAAI,CAAW,CAAGsK,EAATC,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAASD,EAAAA,CAA5B3B,WAAU3I,O,EAClBsK,EAAa,qBACRC,GAAAA,CACH,YAAa,UACX,KAAMN,GAAgBtI,EAAgB3B,E,EACnCuK,E,EAGT,KAAO,CACL,GAAM,CAAE5B,SAAAA,CAAQ,CAAW,CAAG2B,EAC9BA,EADqBC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAASD,EAAAA,CAAtB3B,W,CAEV,EAGF,MAAO,qBACF2B,GAAAA,CACH,KAAM3I,EACN,SAAUgI,C,EAEd,EAEaa,GAAuBC,AAAAA,IAClC,IAAIC,EAAY,CAAE,OAAQxW,AAAAA,GAAKA,CAAE,EACjC,GAAI,CAACuW,EAAU,OAAOC,EAEtB,GAAI,CACFA,EAAY,IAAIC,KAAK,YAAY,CAAC,QAAS,CAAE,MAAO,WAAYF,SAAAA,CAAS,EAC3E,CAAE,MAAOV,EAAO,CAEdC,QAAQ,IAAI,CAAC,mCACf,CACA,OAAOU,CACT,EAEaE,GAAqB5M,AAAAA,IAChC,IAAM6M,EAAkB,CACtB,cAAe,GACf,cAAe,GACf,aAAc,GACd,WAAY,GACZ,WAAY,EACd,EACA,GAAI7M,AAAkB,mBAAlBA,EAAS,IAAI,EAAyBA,AAAuB,iBAAvBA,EAAS,SAAS,CAE1D,OADA6M,EAAgB,aAAa,CAAG9O,EAAW,CAACiC,EAAS,UAAU,EAAI,EAAE,CAC9D6M,EAET,OAAQ7M,EAAS,IAAI,EACnB,IAAK,sBACH6M,EAAgB,aAAa,CAAG,GAChC,KAEF,KAAK,cACHA,EAAgB,aAAa,CAAG9O,EAAW,CAACiC,EAAS,UAAU,EAAI,EAAE,CACrE,KAEF,KAAK,iBACH6M,EAAgB,YAAY,CAAG,CAAE,MAAO7M,EAAS,KAAK,CAAE,UAAWA,EAAS,SAAS,AAAC,EACtF,KAEF,KAAK,mBACH6M,EAAgB,UAAU,CAAG,GAC7B,KAEF,KAAK,mBACHA,EAAgB,UAAU,CAAG,EAIjC,CACA,OAAOA,CACT,EzI36BA,SAAS,KAAa,MAAO,IAAWxY,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAV4BhB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,4KACH,KAAM,QACN,OAAQ,UACR,YAAa,CACf,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWc,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CAkBnR,OAhB0BhB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAClF,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,4KACH,KAAM,UACN,OAAQ,UACR,YAAa,CACf,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sCACH,OAAQ,UACR,YAAa,KACb,cAAe,QACf,eAAgB,OAClB,EAAC,GyIND,IAAMuZ,GAAkB,AAAC,I,GAAA,CACvBC,OAAAA,CAAM,CACNC,QAAAA,CAAO,CAER,GADIrZ,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAFHoZ,SACAC,U,EAGA,GAAI,CAACD,GAAUC,AAAmB,IAAnBA,EAAQ,MAAM,CAAQ,OAAO,KAC5C,IAAMC,EAAmBD,CAAO,CAAC,EAAE,CAC7BE,EAAkBD,EAAiB,OAAO,CAC1C,CAAEE,QAAAA,CAAO,CAAE,CAAGF,EACd,CAAE3J,MAAAA,CAAK,CAAEtM,KAAAA,CAAI,CAAEkK,WAAAA,CAAU,CAAE,CAAGgM,EAC9B,CACJ,gBAAiB,CACfxN,cAAAA,CAAa,CACb0N,aAAAA,CAAY,CACZrF,cAAAA,CAAa,CACb2D,WAAAA,CAAU,CACV1D,WAAAA,CAAU,CACX,CACD,cAAe,CACb,KAAMqF,CAAU,CAChB,gBAAiBC,CAAgB,CACjC,SAAUC,CAAc,CACxB,MAAOC,CAAW,CAClB,MAAOC,CAAW,CACnB,CACF,CAAG9Z,EAwDJ,MACE,WAAC,OAAI,UAAW,CAAC,sBAAsB,EAAE6Z,AAAgB,QAAhBA,EAAwB,UAAY,SAAS,CAAC,C,SACrF,YAAC,OAAI,UAAU,6B,UACb,WAAC,OAAI,UAAU,aAAa,MAAO,CAAE,gBAAiBlK,CAAM,C,GAC1DyE,AAAAA,CAAAA,GAAiBrI,CAAY,GAC7B,WAAC,OAAI,UAAU,a,SACb,WAAC,OACC,IAAK1I,EACL,UAAW,CAAC,gBAAgB,EAAE0I,EAAgB,YAAc,GAAG,CAAC,CAChE,IAAKqI,EAAgBzH,GAAatJ,GAAQ,CAAC,EAAEiH,GAAQ,CAAC,EAAEjH,EAAK,IAAI,CAAC,A,KAIxE,WAAC,OAAI,UAAU,6B,SACb,YAAC,OAAI,UAAU,a,UACZqW,AAAe,QAAfA,GAAwB,CAAC3N,GACxB,wB,SACGW,GAAa6M,EAAgB,IAAI,GAChC,yB,UACGlF,GAAc0F,AAxCN,MACzB,GAAI1F,EAAY,CACd,IAAM5E,EAAO9C,GAAa4M,EAAgB,IAAI,EACxCS,EAAetN,GAAa6M,EAAgB,IAAI,EACtD,MACE,WAAC,OAAI,UAAU,oB,SACb,YAAC,QAAK,UAAU,Y,UACd,WAAC,OACC,IAAK9J,EACL,IAAKuK,EACL,MAAO,CAAE,YAAa,EAAG,MAAO,OAAQ,OAAQ,MAAO,C,GAEzD,WAAC,QAAK,UAAU,e,SACbza,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEya,E,OAKb,CACF,KAsBmBP,GACC,WAAC,OAAI,UAAU,6B,SACZQ,AA5EH,MAClB,GAAM,CAAEC,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAE,CAAGV,EACvBW,EAAa1D,MAAM,IAAI,CAAC,CAAE,OAAQwD,CAAM,EAAG,CAACzJ,EAAG4J,IAAMA,EAAI,GACzDC,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDC,EAAYN,AAAc,WAAdA,EAAyB,UAAY,UACvD,OAAOC,EAAW,GAAG,CAACM,AAAAA,GACpB,WAACJ,EAAAA,CACC,UAAU,aAEV,MAAO,CAAE,KAAMI,GAAQrX,EAAOoX,EAAY,SAAU,C,EAD/C,CAAC,EAAEC,EAAK,YAAY,CAAC,EAIhC,I,GAmEmBZ,AAAgB,QAAhBA,GAAyB,CAACzF,GAAc,CAACoF,GACxC,WAAC,OAAI,UAAU,kB,SACZla,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,O,GAGH,CAACka,GAAgB,CAAC1B,GAAc,CAAC1D,GAAc3H,GAAa6M,EAAgB,IAAI,GAChF,WAAC,OAAI,UAAU,mB,SACZ7M,GAAa6M,EAAgB,IAAI,C,GAGrCxB,GAAc4C,AA3Eb,MACpB,GAAI5C,EAAY,CACd,IAAM6C,EAAerB,EAAgB,OAAO,CAAGsB,GAAmBC,GAClE,MACE,YAAC,OAAI,UAAU,mB,UACb,WAAC,QACC,UAAU,kB,GAEZ,YAAC,QAAK,UAAU,c,UACd,WAACF,EAAAA,CAAa,MAAO,CAAE,YAAa,CAAE,C,GACtC,WAAC,QAAK,UAAU,e,SACbrb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEga,EAAgB,IAAI,C,QAKjC,CACF,K,KA+DWK,AAAmB,QAAnBA,GACD,yB,UACGE,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,W,GAGP,WAAC,OAAI,UAAU,mB,SACZga,CAAe,CAACC,EAAQ,A,MAI5BG,AAAqB,QAArBA,GACD,yB,UACGG,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,GAGP,WAAC,OAAI,UAAU,mB,SACZgO,C,eASjB,CAEA4L,CAAAA,GAAgB,SAAS,CAAG,CAC1B,OAAQ3Z,AAAAA,KAAAA,IAAAA,CAAAA,UAAyB,CACjC,QAASA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACzC,QAAS,QACT,QAASA,KAAAA,KAAe,CAAC,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,QAASA,AAAAA,KAAAA,IAAc,AACzB,EACF,IAAI,UAAU,AAChB,EAEA,OAAeub,GAAAA,IAAU,CAAC5B,ICtK1B,IAAM6B,GAASnG,KAAK,EAAE,CAAG,IAEnBoG,GAAW,CAAC,CAChBtM,UAAAA,EAAY,KAAK,CACjBuM,GAAAA,EAAK,CAAC,CACNC,GAAAA,EAAK,CAAC,CACNC,YAAAA,EAAc,CAAC,CACflC,gBAAAA,EAAkB,CAAC,CAAC,CACpB,KAAM,CACJmC,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbC,cAAAA,CAAa,CACbC,yBAAAA,CAAwB,CACxBC,uBAAAA,CAAsB,CACtBC,kBAAAA,CAAiB,CACjBC,oBAAAA,CAAmB,CACpB,CAAG,CAAC,CAAC,CACNC,SAAAA,EAAW,CAAC,CACZvY,KAAAA,EAAO,EAAE,CACTwY,YAAAA,EAAc,CAAC,CACf,QAAS,CAAElM,MAAAA,CAAK,CAAE,CAAG,CAAC,CAAC,CACvBpC,WAAAA,EAAa,IAAI,CACjBH,MAAAA,EAAQ,CAAC,CACV,IACC,GAAM,CAAEiH,WAAAA,CAAU,CAAEtI,cAAAA,CAAa,CAAE0N,aAAAA,CAAY,CAAE,CAAGP,EAKpD,GAJuBqC,AAAkB,QAAlBA,GAClBE,AAA2B,QAA3BA,GACAD,AAA6B,QAA7BA,EAEe,OAAO,KAE3B,IAAMM,EAAS,GAAKV,EAAeS,CAAAA,EAAcT,CAAU,EACrDW,EAAIb,EAAKY,EAASjH,KAAK,GAAG,CAAC,CAAC+G,EAAWZ,IACvCgB,EAAIb,EAAKW,EAASjH,KAAK,GAAG,CAAC,CAAC+G,EAAWZ,IAGvCiB,EAAeb,EAAeS,AAAAA,CAAAA,EAAcT,CAAU,EADzCzM,CAAAA,AAAc,QAAdA,EAAsB,IAAO,EAAE,EAE5CuN,EAAUhB,EAAKe,EAAepH,KAAK,GAAG,CAAC,CAAC+G,EAAWZ,IACnDmB,EAAUhB,EAAKc,EAAepH,KAAK,GAAG,CAAC,CAAC+G,EAAWZ,IAEnD,CAAEb,UAAAA,CAAS,CAAE,CAAGV,EAChBa,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GAExDlb,EAAOiV,GAAa2E,EAAiB7V,GACrCwT,EAAQ3C,GAAcgF,EAAiB7V,GACvCqM,EAAY8E,GAAkB0E,EAAiB7V,GAC/C+Y,EAASzM,GAAS8E,AAAuB,GAAvBA,GAAc9E,GAEtC,MACE,yB,UACG4L,AAAkB,OAAlBA,GAA0B1E,GACzB,WAAC,iBACC,OAAQ,GACR,MAAO,GACP,EAAGkF,EAAIb,EAAKa,EAAI,GAAKA,EAAI,GACzB,EAAGC,EAAI,G,SAEP,WAAC,QACC,UAAWvV,KAAW,CACpB,iBAAkB,GAClB,SAAUsF,EACV,YAAasI,EACb,QAAS3E,CACX,G,SAEA,WAAC,OACC,IAAKmH,EACL,UAAU,mBACV,IAAKA,C,OAKb,YAAC,KAAE,EAAE,I,UACH,YAAC,QACC,iBAAiB,UACjB,KAAM6E,EACN,WAAYK,EAAIb,EAAK,QAAU,MAC/B,EAAGa,EACH,EAAGC,EAAI,G,UAELT,AAAkB,OAAlBA,GAA0Bjc,GAC1B,WAAC,SACC,UAAWmH,KAAW,CAAE,QAASiJ,CAAU,GAC3C,SAAU4L,EACV,WAAYD,EACZ,EAAGU,E,SAEFzc,C,GAGJkc,AAA6B,OAA7BA,GACC,WAAC,SACC,GAAG,MACH,KAAMG,EACN,WAAYN,EACZ,SAAUC,EACV,EAAGS,E,SAEFxO,C,MAINkM,GACC,WAAC,iBACC,UAAU,yBACV,OAAQ,GACR,MAAO,GACP,EAAGsC,EAAI,EACP,EAAGC,EAAI,G,SAEP,WAAC1B,EAAAA,CACC,UAAU,aACV,MAAO,CACL,KAAMH,AAAc,WAAdA,EAAyB,UAAY,UAC3C,MAAO,GACP,OAAQ,EACV,C,KAILsB,AAA2B,OAA3BA,GACD,WAAC,QACC,EAAGS,EACH,EAAGC,EACH,MAAO,CACL,KAAMC,EAAS,UAAY,UAC3B,SAAUd,EACV,WAAYD,CACd,EACA,WAAYa,EAAUhB,EAAK,QAAU,MACrC,iBAAiB,U,SAEhB9N,C,QAMX,CAEA6N,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAWzb,AAAAA,KAAAA,MAAgB,CAC3B,GAAIA,AAAAA,KAAAA,MAAgB,CACpB,GAAIA,AAAAA,KAAAA,MAAgB,CACpB,YAAaA,AAAAA,KAAAA,MAAgB,CAC7B,gBAAiBA,KAAAA,KAAe,CAAC,CAC/B,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,IAAc,CACdA,AAAAA,KAAAA,KAAe,CAChB,EACD,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,aAAcA,KAAAA,SAAmB,CAAC,CAChCA,AAAAA,KAAAA,IAAc,CACdA,KAAAA,KAAe,CAAC,CAAC,GAClB,EACD,WAAYA,AAAAA,KAAAA,IAAc,AAC5B,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,cAAeA,AAAAA,KAAAA,MAAgB,CAC/B,yBAA0BA,AAAAA,KAAAA,MAAgB,CAC1C,uBAAwBA,AAAAA,KAAAA,MAAgB,CACxC,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,GACA,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,KAAMA,KAAAA,SAAmB,CAAC,CACxBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,YAAaA,AAAAA,KAAAA,MAAgB,CAC7B,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,QAASA,KAAAA,KAAe,CAAC,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,GACA,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,ECnLA,IAAM6c,GAAiB,CACrB,OAAQ,GACR,KAAM,GACN,MAAO,GACP,IAAK,EACP,EAEMC,GAAW,CAAC,CAChB1N,UAAAA,EAAY,CAAC,CAAC,CACd2N,YAAAA,EAAc,CAAC,CAAC,CAChBhc,KAAAA,EAAO,CAAC,CAAC,CACT,UAAW,CAAE8L,SAAAA,CAAQ,CAAEmQ,cAAAA,CAAa,CAAE,CAAG,CAAC,CAAC,CAC3CC,gBAAAA,EAAkB,EAAE,CACpBtE,eAAAA,EAAiB,OAAO,CACzB,IACC,GAAI,CAAE9J,KAAAA,CAAI,CAAE,CAAGO,EACTsK,EAAkBD,GAAmB5M,GACrCqQ,EAAsBC,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM7Z,GAAc0Z,GAAgB,CAACA,EAAc,EACjF,CAAE,KAAMI,CAAa,CAAE,CAAGF,EAE1B,CAAEnB,cAAAA,CAAa,CAAEC,yBAAAA,CAAwB,CAAEC,uBAAAA,CAAsB,CAAE,CAAGlb,EACxEsc,EAAgBtB,AAAkB,OAAlBA,GACfC,AAA6B,OAA7BA,GACAC,AAA2B,OAA3BA,EAICqB,EAAUzO,EAAK,KAAK,CAAC4C,AAAAA,GAAKA,AAAY,IAAZA,EAAE,KAAK,EAQvC,OAPI6L,GACFD,EAAgB,GAChBxO,EAAOA,EAAK,GAAG,CAAC4C,AAAAA,GAAM,qBAAKA,GAAAA,CAAG,MAAO,C,KAErC5C,EAAOA,EAAK,MAAM,CAAC4C,AAAAA,GAAKA,AAAY,IAAZA,EAAE,KAAK,EAI/B,WAAC8L,GAAAA,CAAmBA,CAAAA,CAClB,UAAW,CAAC,iCAAiC,EAAEN,EAAgB,EAAEK,EAAU,WAAa,GAAG,CAAC,C,SAE5F,YAACE,GAAAA,CAAQA,CAAAA,CACP,OAAQX,G,UAER,WAACY,GAAAA,CAAGA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACF,KAAM5O,EACN,QAAS8J,EACT,KAAK,UACL,kBAAmB,GACnB,YAAY,G,EACRoE,GAAAA,CACJ,MAAOM,EAAAA,GAAgBjd,CAAAA,AAAAA,GACrB,WDmIGqb,GCnIMA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACHrb,GAAAA,CACJ,gBAAiBsZ,EACjB,KAAM3Y,EACN,UAAW,AAACG,OAAO,IAAI,CAAC6b,GAAa,MAAM,CAAW,QAAR,K,KAGlD,UAjCkBhB,AAAkB,OAAlBA,GACrBC,AAA6B,OAA7BA,E,SAkCInN,EAAK,GAAG,CAAC,CAAC6O,EAAOjW,IAChB,WAACkW,GAAAA,CAAIA,CAAAA,CAEH,KAAMD,EAAM,KAAK,A,EADZ,CAAC,EAAEA,EAAM,CAAC,EAAEjW,EAAM,QAAQ,GAAG,CAAC,E,IAKxC2V,AAAkB,QAAlBA,GACC,WAACQ,GAAAA,CAAOA,CAAAA,CACN,OAAQ,GACR,QACE,WAACjE,GAAeA,CACd,gBAAiBD,EACjB,cAAewD,C,GAGnB,OAAQ,GACR,kBAAmB,E,OAM/B,CAEAJ,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAW9c,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,GAC3C,GACA,YAAaA,KAAAA,KAAe,CAAC,CAAC,GAC9B,KAAMA,KAAAA,KAAe,CAAC,CACpB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,AAAAA,KAAAA,MAAgB,CAC/B,yBAA0BA,AAAAA,KAAAA,MAAgB,CAC1C,uBAAwBA,AAAAA,KAAAA,MAAgB,AAC1C,GACA,UAAWA,KAAAA,KAAe,CAAC,CACzB,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,cAAeA,AAAAA,KAAAA,MAAgB,AACjC,GACA,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,gBAAiBA,AAAAA,KAAAA,MAAgB,AACnC,EClHA,ODoHesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKwV,I,kGE1GpB,IAAMe,GAAe,CAAC,CACpB,cAAe9D,EAAkB,CAAC,CAAC,CACnCC,QAAAA,EAAU,OAAO,CACjB,gBAAiB,CACfzN,cAAAA,CAAa,CACbqI,cAAAA,CAAa,CACbqF,aAAAA,CAAY,CACZ1B,WAAAA,CAAU,CACV1D,WAAAA,CAAU,CACX,CAAG,CAAC,CAAC,CACN,cAAe,CACb,KAAMqF,CAAU,CAChB,gBAAiBC,CAAgB,CACjC,SAAUC,CAAc,CACxB,MAAOC,CAAW,CAClB,MAAOC,CAAW,CACnB,CAAG,CAAC,CAAC,CACP,IACC,GAAIpZ,AAAwC,IAAxCA,OAAO,IAAI,CAAC6Y,GAAiB,MAAM,CAAQ,OAAO,KACtD,GAAM,CAAE5J,MAAAA,CAAK,CAAEtM,KAAAA,CAAI,CAAEkK,WAAAA,CAAU,CAAE,CAAGgM,EAwDpC,MACE,WAAC,OAAI,UAAW,CAAC,sBAAsB,EAAEM,AAAgB,QAAhBA,EAAwB,UAAY,SAAS,CAAC,C,SACrF,YAAC,OAAI,UAAU,6B,UACb,WAAC,OAAI,UAAU,aAAa,MAAO,CAAE,gBAAiBlK,CAAM,C,GAC1DyE,AAAAA,CAAAA,GAAiBrI,CAAY,GAC7B,WAAC,OAAI,UAAU,a,SACb,WAAC,OACC,IAAK1I,EACL,UAAW,CAAC,gBAAgB,EAAE0I,EAAgB,YAAc,GAAG,CAAC,CAChE,IAAKqI,EAAgBzH,GAAatJ,GAAQ,CAAC,EAAEiH,GAAQ,CAAC,EAAEjH,EAAK,IAAI,CAAC,A,KAIxE,WAAC,OAAI,UAAU,6B,SACb,YAAC,OAAI,UAAU,a,UACZqW,AAAe,QAAfA,GAAwB,CAAC3N,GACxB,wB,SACGW,GAAa6M,EAAgB,IAAI,GAChC,yB,UACGlF,GAAc0F,AAxCN,MACzB,GAAI1F,EAAY,CACd,IAAM5E,EAAO9C,GAAa4M,EAAgB,IAAI,EACxCS,EAAetN,GAAa6M,EAAgB,IAAI,EACtD,MACE,WAAC,OAAI,UAAU,oB,SACb,YAAC,QAAK,UAAU,Y,UACd,WAAC,OACC,IAAK9J,EACL,IAAKuK,EACL,MAAO,CAAE,YAAa,EAAG,MAAO,OAAQ,OAAQ,MAAO,C,GAEzD,WAAC,QAAK,UAAU,e,SACbza,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEya,E,OAKb,CACF,KAsBmBP,GACC,WAAC,OAAI,UAAU,6B,SACZQ,AA5EH,MAClB,GAAM,CAAEC,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAE,CAAGV,EACvBW,EAAa1D,MAAM,IAAI,CAAC,CAAE,OAAQwD,CAAM,EAAG,CAACzJ,EAAG4J,IAAMA,EAAI,GACzDC,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDC,EAAYN,AAAc,WAAdA,EAAyB,UAAY,UACvD,OAAOC,EAAW,GAAG,CAACM,AAAAA,GACpB,WAACJ,EAAAA,CACC,UAAU,aAEV,MAAO,CAAE,KAAMI,GAAQrX,EAAOoX,EAAY,SAAU,C,EAD/C,CAAC,EAAEC,EAAK,YAAY,CAAC,EAIhC,I,GAmEmBZ,AAAgB,QAAhBA,GAAyB,CAACzF,GAAc,CAACoF,GACxC,WAAC,OAAI,UAAU,kB,SACZla,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,O,GAGH,CAACka,GAAgB,CAAC1B,GAAc,CAAC1D,GAAc3H,GAAa6M,EAAgB,IAAI,GAChF,WAAC,OAAI,UAAU,mB,SACZ7M,GAAa6M,EAAgB,IAAI,C,GAGrCxB,GAAc4C,AA3Eb,MACpB,GAAI5C,EAAY,CACd,IAAM6C,EAAerB,EAAgB,OAAO,CAAGsB,GAAmBC,GAClE,MACE,YAAC,OAAI,UAAU,mB,UACb,WAAC,QACC,UAAU,kB,GAEZ,YAAC,QAAK,UAAU,c,UACd,WAACF,EAAAA,CAAa,MAAO,CAAE,YAAa,CAAE,C,GACtC,WAAC,QAAK,UAAU,e,SACbrb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEga,EAAgB,IAAI,C,QAKjC,CACF,K,KA+DWK,AAAmB,QAAnBA,GACC,yB,UACGE,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,W,GAGP,WAAC,OAAI,UAAU,mB,SACZga,CAAe,CAACC,EAAQ,A,MAI9BG,AAAqB,QAArBA,GACC,yB,UACGG,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,GAGP,WAAC,OAAI,UAAU,mB,SACZgO,C,eASnB,CAEA8P,CAAAA,GAAa,SAAS,CAAG,CACvB,cAAe7d,KAAAA,KAAe,CAAC,CAAC,GAChC,QAASA,AAAAA,KAAAA,MAAgB,CACzB,gBAAiBA,KAAAA,KAAe,CAAC,CAC/B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EAClCA,AAAAA,KAAAA,IAAc,CACf,EACD,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,aAAcA,KAAAA,SAAmB,CAAC,CAChCA,KAAAA,KAAe,CAAC,CAAC,GACjBA,AAAAA,KAAAA,IAAc,CACf,EACD,WAAYA,KAAAA,SAAmB,CAAC,CAC9BA,KAAAA,KAAe,CAAC,CAAC,GACjBA,AAAAA,KAAAA,IAAc,CACf,CACH,GACA,cAAeA,KAAAA,KAAe,CAAC,CAC7B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,EACF,EAEA,OAAeub,GAAAA,IAAU,CAACsC,ICnL1B,IAAMC,GAAqB,CAAC,CAC1BC,OAAAA,EAAS,CAAC,CACVrE,gBAAAA,EAAkB,CAAC,CAAC,CACpBsE,OAAAA,EAAS,YAAY,CACrBnE,QAAAA,EAAU,CAAC,CAAC,CACZoE,kBAAAA,EAAoB,CAAC,CACrBC,MAAAA,EAAQ,CAAC,CACT3B,EAAAA,EAAI,CAAC,CACLC,EAAAA,EAAI,CAAC,CACL2B,UAAAA,EAAY,CAAC,CAAC,CACdtP,KAAAA,EAAO,EAAE,CACV,I,IAcoCuP,EAbnC,GAAM,CACJvJ,WAAAA,CAAU,CACVtI,cAAAA,CAAa,CACb0N,aAAAA,CAAY,CACZ1B,WAAAA,CAAU,CACX,CAAGmB,EACE2E,EAAeL,AAAW,eAAXA,EACfle,EAAOiV,GAAa2E,EAAiBG,EAAQ,KAAK,EAClDxC,EAAQ3C,GAAcgF,EAAiBG,EAAQ,KAAK,EACpD3J,EAAY8E,GAAkB0E,EAAiBG,EAAQ,KAAK,EAE5D,CAAEc,UAAAA,CAAS,CAAE,CAAGV,EAChBa,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDI,EAAe7C,GAAAA,CAAAA,AAAqD,OAAvC6F,CAAAA,EAAAA,EAAK,IAAI,CAAC3M,AAAAA,GAAKA,EAAE,IAAI,GAAKoI,EAAQ,KAAK,IAAvCuE,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0C,OAAO,AAAD,EAAI/C,GAAmBC,GAE1G,MACE,WAAC,iBACC,UAAU,gBACV,OAAQ+C,EAAe,GAAMN,EAASE,EAAqB,EAC3D,MAAOI,EAAgBH,EAAQD,EAAqBC,EACpD,EAAGG,EAAe9B,EAAK2B,EAAQD,EAAqB,EAAI,EACxD,EAAGzB,EAAK6B,CAAAA,EAAe,EAAKN,EAASE,EAAqB,G,SAE1D,YAAC,QACC,UAAW,CAAC,mBAAmB,EAAE/N,EAAY,WAAa,GAAG,CAAC,CAC9D,MAAO,CAAE,UAAYmO,EAAe,EAAKN,EAASE,EAAqB,CAAG,E,UAEzE5G,GAEC,WAAC,QACC,UAAW,CAAC,gBAAgB,EAAE9K,EAAgB,YAAc,GAAG,EAAEsI,EAAa,eAAiB,GAAG,CAAC,C,SAEnG,WAAC,OACC,IAAKwC,EACL,IAAKA,C,KAIVvX,GACC,YAAC,QACC,UAAU,qBACV,MAAOA,EACP,MAAOqe,E,UAEN5F,GAAc,WAAC6C,EAAAA,CAAa,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,YAAa,CAAE,C,GAC5E,YAAC,Q,UACEtb,EACAma,GACC,WAACa,EAAAA,CACC,UAAU,sBACV,MAAO,CAAE,KAAMH,AAAc,WAAdA,EAAyB,UAAY,SAAU,C,aAShF,CAEAmD,CAAAA,GAAmB,SAAS,CAAG,CAC7B,UAAW9d,KAAAA,KAAe,CAAC,CAAC,GAC5B,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,gBAAiBA,KAAAA,KAAe,CAAC,CAC/B,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,IAAc,CACdA,AAAAA,KAAAA,KAAe,CAChB,EACD,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,aAAcA,KAAAA,SAAmB,CAAC,CAChCA,AAAAA,KAAAA,IAAc,CACdA,KAAAA,KAAe,CAAC,CAAC,GAClB,EACD,WAAYA,AAAAA,KAAAA,IAAc,AAC5B,GACA,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,QAASA,KAAAA,KAAe,CAAC,CACvB,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,GACA,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,EAAGA,AAAAA,KAAAA,MAAgB,CACnB,EAAGA,AAAAA,KAAAA,MAAgB,CACnB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,GAC3C,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKwW,I,cCzGpB,IAAMQ,GAAsBle,AAAAA,IAC1B,GAAM,CACJme,OAAAA,CAAM,CAAEC,SAAAA,CAAQ,CAAEC,QAAAA,CAAO,CAAE7Q,MAAAA,CAAK,CACjC,CAAGxN,EACE,CACJ2d,OAAAA,CAAM,CAAEG,MAAAA,CAAK,CAAE3B,EAAAA,CAAC,CAAEC,EAAAA,CAAC,CACpB,CAAGiC,EACEC,EAAOX,GAAU,EAAI,EAAI,GAE/B,OAAQS,GACN,IAAK,MACH,MAAO,CACL,WAAY,SACZ,eAAgBE,EAAO,EAAI,MAAQ,QACnC,EAAGnC,EAAI2B,EAAQ,EACf,EAAG1B,EAAIkC,EAAOH,CAChB,CACF,KAAK,YACH,MAAO,CACL,WAAY,SACZ,eAAgBG,EAAO,EAAI,MAAQ,QACnC,EAAGnC,EAAI2B,EAAQ,EACf,EAAG1B,EAAIkC,EAAOH,EAAS,EACzB,CACF,KAAK,QACH,MAAO,CACL,WAAY,QACZ,eAAgB,SAChB,EAAGhC,EAAI2B,EAAQK,EACf,EAAG/B,EAAIuB,EAAS,CAClB,CACF,KAAK,cACH,MAAO,CACL,WAAY,QACZ,eAAgB,SAChB,EAAGxB,EAAI2B,EAAQK,EAAS3Q,AAA0B,GAA1BA,EAAM,QAAQ,GAAG,MAAM,CAC/C,EAAG4O,EAAIuB,EAAS,CAClB,CACF,KAAK,cACH,MAAO,CACL,WAAY,MACZ,eAAgB,SAChB,EAAGxB,EAAI2B,EAAQK,EACf,EAAG/B,EAAIuB,EAAS,CAClB,CACF,KAAK,YACH,MAAO,CACL,WAAY,SACZ,eAAgB,QAChB,EAAGxB,EAAI2B,EAAQ,EACf,EAAG1B,EAAIkC,EAAOH,CAChB,CAEJ,CACF,EAEMI,GAAkB,CAAC,CACvBC,MAAAA,CAAK,CACLC,WAAAA,CAAU,CACVb,OAAAA,CAAM,CACNO,OAAAA,CAAM,CACN5F,eAAAA,CAAc,CACd,MAAOkB,CAAO,CACd4E,QAAAA,CAAO,CACR,IAEC,GAAM,CAAEtO,MAAAA,CAAK,CAAEpC,WAAAA,CAAU,CAAE,MAAO+Q,CAAY,CAAE,CAAGjF,EAC7CjM,EAAQ+K,EAAiBkB,CAAO,CAAClB,EAAe,CAAGmG,EACnD,CAAEf,OAAAA,CAAM,CAAEG,MAAAA,CAAK,CAAE,CAAGO,EACpB,CAAEzC,yBAAAA,CAAwB,CAAEC,uBAAAA,CAAsB,CAAE,CAAG2C,EACzDG,EAAmBf,AAAW,eAAXA,EAA0B,YAAc,cAC3DgB,EAAwBhB,AAAW,eAAXA,EAA0B,MAAQ,QAGxDiB,EAAarR,GAAS,EACtBsR,EAAgBC,AAFAnB,CAAAA,AAAW,eAAXA,EAA0BD,EAASG,CAAI,EAEvBK,EAAWU,AAA+B,GAA/BA,EAAW,QAAQ,GAAG,MAAM,CACvEG,EAAsBnD,AAA2B,OAA3BA,GAAoCrO,CAAAA,AAAU,IAAVA,GAAe,CAACsR,CAAW,EACvFE,IACFL,EAAmBf,AAAW,eAAXA,EAA0B,MAAQ,QACrDgB,EAAwBhB,AAAW,eAAXA,EAA0B,YAAc,eAGlE,IAAMpB,EAASzM,GAAS8E,AAAuB,GAAvBA,GAAc9E,GACtC,MACE,YAAC,K,UACE8L,AAA2B,OAA3BA,GACC,WAACoD,GAAAA,CAAIA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACH,MAAO,qBAAKR,GAAAA,CAAY,KAAM,CAACO,GAAuBxC,EAAS,UAAY,S,IACvE0B,GAAoB,CAAEC,OAAAA,EAAQ,SAAUQ,EAAkBN,QAAAA,CAAQ,K,SAErE7Q,C,IAGJoO,AAA6B,OAA7BA,GACC,WAACqD,GAAAA,CAAIA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACH,MAAOR,C,EACHP,GAAoB,CACtBC,OAAAA,EACA,SAAUS,EACVP,QAAAA,EACA,MAAOQ,CACT,K,SAEClR,C,MAKX,CAEA4Q,CAAAA,GAAgB,SAAS,CAAG,CAC1B,MAAO3e,KAAAA,KAAe,CAAC,CACrB,yBAA0BA,AAAAA,KAAAA,MAAgB,CAC1C,uBAAwBA,AAAAA,KAAAA,MAAgB,AAC1C,GAAG,UAAU,CACb,OAAQA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CACnC,OAAQA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CACnC,eAAgBA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CAC3C,MAAOA,KAAAA,KAAe,CAAC,CAAC,GAAG,UAAU,CACrC,QAASA,KAAAA,KAAe,CAAC,CACvB,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,GAAG,UAAU,CACb,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAAG,UAAU,AAC5C,EC1HA,IAAMsf,GAAmB,CAAC,CACxB,cAAevF,EAAkB,CAAC,CAAC,CACnC3B,SAAAA,EAAW,EAAE,CACb,gBAAiB,CACf7L,cAAAA,CAAa,CACd,CAAG,CAAC,CAAC,CACN,cAAe,CACb,KAAM2N,CAAU,CAChB,gBAAiBC,CAAgB,CACjC,SAAUC,CAAc,CACxB,MAAOC,CAAW,CAClB,MAAOC,CAAW,CACnB,CAAG,CAAC,CAAC,CACP,IACC,GAAIpZ,AAAwC,IAAxCA,OAAO,IAAI,CAAC6Y,GAAiB,MAAM,CAAQ,OAAO,KAEtD,GAAM,CAAElW,KAAAA,CAAI,CAAE,CAAGkW,EAEjB,MACE,YAAC,OAAI,UAAW,CAAC,gCAAgC,EAAEM,AAAgB,QAAhBA,EAAwB,UAAY,SAAS,CAAC,C,UAC/F,WAAC,OAAI,UAAU,+B,SACZnN,GAAarJ,E,GAEfuU,EAAS,GAAG,CAAC4B,AAAAA,GACZ,YAAC,OAAI,UAAU,6B,UACb,WAAC,OAAI,UAAU,aAAa,MAAO,CAAE,gBAAiBD,CAAe,CAACC,EAAQ,CAAC,KAAK,AAAC,C,GACrF,WAAC,OAAI,UAAU,6B,SACb,YAAC,OAAI,UAAU,a,UACZE,AAAe,QAAfA,GACD,YAAC,OAAI,UAAU,W,UACZI,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,O,GAGP,WAAC,OAAI,UAAU,mB,SACZwM,EACC,WAAC,OACC,IAAKyN,EACL,UAAU,WACV,IAAK,CAAC,EAAElP,GAAQ,CAAC,EAAEkP,EAAQ,IAAI,CAAC,A,GAGhCA,C,MAIPI,AAAmB,QAAnBA,GACC,YAAC,OAAI,UAAU,W,UACZE,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,W,GAGP,WAAC,OAAI,UAAU,mB,SACZ,CAAC,EAAEga,CAAe,CAACC,EAAQ,CAAC,KAAK,CAAC,CAAC,A,MAIzCG,AAAqB,QAArBA,GACC,YAAC,OAAI,UAAU,W,UACZG,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,GAGP,WAAC,OAAI,UAAU,mB,SACZga,CAAe,CAACC,EAAQ,CAAC,UAAU,A,iBAUxD,CAEAsF,CAAAA,GAAiB,SAAS,CAAG,CAC3B,cAAetf,KAAAA,KAAe,CAAC,CAAC,GAChC,SAAUA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EAC5C,gBAAiBA,KAAAA,KAAe,CAAC,CAC/B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EAClCA,AAAAA,KAAAA,IAAc,CACf,CACH,GACA,cAAeA,KAAAA,KAAe,CAAC,CAC7B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,EACF,EChGA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAJW,CAAC,CAAEiY,SAAAA,CAAQ,CAAErB,MAAAA,CAAK,CAAEH,OAAAA,CAAM,CAAE,GAC7CwB,EAASrB,EAAOH,ICyBzB,IAAMyB,GAAiB,CACrB,OAAQ,GACR,KAAM,EACN,MAAO,GACP,IAAK,EACP,EACMC,GAAoB,qBAAKD,IAAAA,CAAgB,KAAM,G,GAG/CE,GAAa,CAAC,EAAGC,AAAAA,GAAWtK,KAAK,GAAG,CAACA,KAAK,KAAK,CAACsK,AAAU,IAAVA,GAAgBA,EAAU,GAAG,CAC7ErD,GAAS,CACb,WAAY,CAAC,EAAG,EAAG,EAAG,EAAE,CACxB,SAAU,CAAC,EAAG,EAAG,EAAG,EAAE,AACxB,EAEMsD,GAAW,CAAC,CAChB,UAAW,CAAE/Q,KAAAA,CAAI,CAAEuJ,SAAAA,CAAQ,CAAE,CAAG,CAAC,CAAC,CAClC2E,YAAAA,EAAc,CACZ,OAAQ,UACV,CAAC,CACD/W,WAAAA,EAAa,EAAK,CAClBjF,KAAAA,EAAO,CAAC,CAAC,CACT8e,iBAAAA,EAAmB,KAAO,CAAC,CAC3BhW,aAAAA,EAAe,KAAO,CAAC,CACvB,UAAW,CAAEgD,SAAAA,CAAQ,CAAEmQ,cAAAA,CAAa,CAAE,CAAG,CAAC,CAAC,CAC3CrE,eAAAA,EAAiB,OAAO,CACzB,IACC,GAAM,CACJkD,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbE,yBAAAA,CAAwB,CACxBC,uBAAAA,CAAsB,CACtBC,kBAAAA,CAAiB,CACjBC,oBAAAA,CAAmB,CACnB2D,UAAAA,CAAS,CACT5B,MAAAA,CAAK,CACN,CAAGnd,EACEmc,EAAsBC,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM7Z,GAAc0Z,GAAgB,CAACA,EAAc,EACjF,CAAE,KAAMI,CAAa,CAAE,CAAGF,EAC1B,CAAEc,OAAAA,CAAM,CAAE,CAAGjB,EACbgD,EAAoB5V,SAAS2V,EAAW,KAhCf,IAiCzB,CAACE,EAAeC,EAAiB,CAAGvd,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC7C,CAACwd,EAAOC,EAAS,CAAGzd,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GAE7B0d,EAAsB,CAAE,MAAO,GAAI,QAAS,IAAK,EACjD,CAACC,EAASC,EAAW,CAAG5d,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS0d,GACjCG,EAAqBhW,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAACsP,EAASpS,KAC/C6Y,EAAW,CAAE7Y,MAAAA,EAAOoS,QAAAA,CAAQ,EAC9B,EAAG,CAACwG,EAAQ,EAENG,EAAqBjW,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,KACrC+V,EAAWF,EACb,EAAG,CAACC,EAAQ,EAENI,EAAetD,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EAClC,WAAYkD,EAAQ,KAAK,EAAI,EAAI,UAAY,QAC/C,GAAI,CAACA,EAAQ,EAEP3G,EAAkBD,GAAmB5M,GACrC6T,EAAuB,qBACxBhH,GAAAA,CACH,cAAetB,AAAoB,IAApBA,EAAS,MAAM,EAAUsB,EAAgB,aAAa,A,GAEjEiH,EAAgBvI,EAAS,MAAM,CAAG,EFa3BkH,GEbkDzB,GACzD+C,EAAiB,CACrB,OAAQ,UACR,CAAC5C,AAAW,eAAXA,EAA0B,WAAa,aAAa,CAAE,EACzD,EAEM6C,EAAiB,CACrB,kBAAmB,GACnB,aAAc,EACd,aAAcN,EACd,aAAcC,EACd,OAAQlE,EAAM,CAAC0B,EAAO,AACxB,EAEM8C,EAAuB,CAC3B,QHyBWnC,GGxBX,MAAO,CACL3C,yBAAAA,EACAC,uBAAAA,CACF,EACA,WAAY,CAAE,KAAME,EAAqB,SAAUhS,SAAS2R,EAAe,IAAK,WAAYD,CAAgB,EAC5GmC,OAAAA,CACF,EAEM+C,EAAiB,CAAC,CAAEld,KAAAA,CAAI,CAAE,GAAO6V,EAAgB,aAAa,EAAIA,EAAgB,UAAU,CAAIhW,KAAK,SAAS,CAACG,GAAQA,EACvHsa,EAAYhB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EAC/B,MAAOjB,EACP,WAAYL,EACZ,SAAU1R,SAAS2R,EAAe,IAClC,WAAY,MACd,GAAI,CAACI,EAAmBL,EAAiBC,EAAc,EACjDkF,EACJ,WAAClD,GAAkBA,CACjB,gBAAiB4C,EACjB,OAAQ1C,EACR,UAAWG,EACX,KAAMtP,C,GAIJoS,EAAqB7I,EAAS,MAAM,CAAG,EAAI,CAAE,OAAQ,IAAK,EAAI,CAAE,WAAY,EAAG,EAE/E9N,EAAcC,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY9M,AAAAA,IAC9B0iB,EAAS9a,SAAS,aAAa,CAAC,sBAAsB,YAAY,CAAC,cAAgB,GAC/E,CAAC2a,IACHviB,EAAE,cAAc,GAChBA,EAAE,eAAe,GAErB,EAAG,CAACuiB,EAAc,EAEZkB,EAAgB3W,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,KAChC0V,EAAiB,GACnB,EAAG,EAAE,EAECkB,EAAe5W,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAAC9M,EAAG2jB,EAAWC,EAAK5P,KACnD5H,EAAa,CAAE,GAAI9I,EAAK,EAAE,AAAC,EAAG,CAAE,UAAWoJ,SAAS4V,EAAoBtO,EAAE,KAAK,CAAE,GAAI,GACrFwO,EAAiB,IACjBJ,EAAiB,sBAAuB,SAC1C,EAAG,CAAC9e,EAAMgf,EAAmBlW,EAAcgW,EAAiB,EAEtDyB,EAAqBnE,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAC1B,qBACF/E,EAAS,MAAM,CAAG,EAAI,CAAEA,SAAAA,CAAS,EAAI,CAAE,QAASO,CAAe,IAClEe,gBAAAA,C,GAED,CAACtB,EAAUO,EAAgBe,EAAgB,EAE9C,MACE,WAAC6D,GAAAA,CAAmBA,CAAAA,CAClB,UAAU,oC,SAEV,WAACgE,GAAiBA,C,SACf,CAACC,EAAgBC,IAEd,yB,UACE,YAACC,GAAAA,CAAQA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAOF,EACP,OAAQC,C,EACJR,GAAAA,CACJ,KAAMpS,EACN,OAAQmP,EACR,OAAQA,AAAW,eAAXA,EAA0ByB,GAAoBD,G,UAEtD,WAACmC,GAAAA,CAAaA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKf,IAClB5C,AAAW,eAAXA,EACC,CACE,WAAC4D,GAAAA,CAAKA,CAAAA,CAEJ,QAASb,EACT,SAAU,EACV,KAAMC,EACN,KAAK,U,EAJD,SAMN,WAACa,GAAAA,CAAKA,CAAAA,CAEJ,MAAM,SACN,OAAQnC,GACR,KAAK,SACL,SAAU,EACV,KAAM,CAAE,KAAMvD,EAAqB,SAAUhS,SAAS2R,EAAe,IAAK,WAAYD,CAAgB,C,EALlG,SAOP,CAED,CACE,WAAC+F,GAAAA,CAAKA,CAAAA,CAEJ,MAAM,SACN,OAAQlC,GACR,SAAU,EACV,KAAK,SACL,KAAM,CAAE,KAAMvD,EAAqB,SAAUhS,SAAS2R,EAAe,IAAK,WAAYD,CAAgB,C,EALlG,SAON,WAACgG,GAAAA,CAAKA,CAAAA,CAEJ,QAASd,EACT,SAAU,EACV,KAAMC,EACN,KAAK,WACL,MAAOjB,C,EALH,SAOP,CAEF3H,EAAS,MAAM,CAAG,EAAIA,EAAS,GAAG,CAAC,CAACvW,EAAK4F,IACxC,YAACqa,GAAAA,CAAGA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAEF,QAASC,AAAAA,I,IAAMC,E,OAAO,OAAPA,CAAAA,EAAAA,CAAE,CAACngB,EAAI,AAAD,GAANmgB,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAS,KAAK,A,GACzBnB,GAAAA,C,UAEJ,WAACoB,GAAAA,CAASA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACR,cAAe,CAAC,CAAEpI,QAAAA,CAAO,CAAE,GAAKA,CAAO,CAAChY,EAAI,CAC5C,eAAe,O,EACXif,IAELjS,EAAK,GAAG,CAAC,CAAC6O,EAAOjK,KAChB,IAAMgF,EAAO,CAAC,MAAM,EAAEhF,EAAE,CAAC,CACzB,MACE,WAACkK,GAAAA,CAAIA,CAAAA,CAEH,KAAMD,CAAK,CAAC7b,EAAI,CAAC,KAAK,A,EADjB4W,EAIX,G,GAjBK,CAAC,EAAE5W,EAAI,CAAC,EAAE4F,EAAM,QAAQ,GAAG,CAAC,GAoBnC,YAACqa,GAAAA,CAAGA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACF,QAASnJ,C,EACLkI,GAAAA,C,UAEJ,WAACoB,GAAAA,CAASA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACR,cAAe,CAAC,CAAEpI,QAAAA,CAAO,CAAE,GAAKA,EAChC,eAAgBlB,C,EACZmI,IAELjS,EAAK,GAAG,CAAC,CAAC6O,EAAOjK,KAChB,IAAMgF,EAAO,CAAC,MAAM,EAAEhF,EAAE,CAAC,CACzB,MACE,WAACkK,GAAAA,CAAIA,CAAAA,CAEH,KAAMD,EAAM,KAAK,A,EADZjF,EAIX,G,IAGH2E,AAAkB,QAAlBA,GACC,WAACQ,GAAAA,CAAOA,CAAAA,CACN,OAAQ,GACR,QACE,WAAC+C,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACC,cAAe,YAAKN,EAAQ,OAAO,EACnC,cAAenD,C,EACXoE,IAGR,OAAQ,GACR,kBAAmB,GACnB,aAAcb,C,OAIlBzC,AAAW,eAAXA,GAA2BhY,GAC7B,WAACkc,GAAAA,SAASA,CAAAA,CACR,UAAU,uBACV,SA9OiB,IA+OjB,SAAUhE,EA/OO,IAgPjB,UAAS,GACT,OAAQ,CAAE,MAAO,EAAK,EACtB,mBAAmB,yBACnB,MAAOgC,EACP,KAAM,CAAE,OAAQuB,EAAkB,GAAI,MAAQ1B,EAAoB,EAAI,EACtE,YAAazV,EACb,cAAe4W,EACf,aAAcC,C,SAS9B,CAEAvB,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAW5f,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IACzC,SAAUA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,CAC9C,GACA,YAAaA,KAAAA,KAAe,CAAC,CAC3B,OAAQA,AAAAA,KAAAA,MAAgB,AAC1B,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,GAAIA,AAAAA,KAAAA,MAAgB,CACpB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,yBAA0BA,AAAAA,KAAAA,MAAgB,CAC1C,uBAAwBA,AAAAA,KAAAA,MAAgB,CACxC,KAAMA,KAAAA,SAAmB,CAAC,CACxBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,oBAAqBA,AAAAA,KAAAA,MAAgB,CACrC,UAAWA,KAAAA,SAAmB,CAAC,CAC7BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,IAAKA,KAAAA,SAAmB,CAAC,CACvBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,GACA,UAAWA,KAAAA,KAAe,CAAC,CACzB,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,cAAeA,AAAAA,KAAAA,MAAgB,AACjC,GACA,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,iBAAkBA,AAAAA,KAAAA,IAAc,CAChC,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,WAAYA,AAAAA,KAAAA,IAAc,AAC5B,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKsY,I,qDjJvVpB,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAW,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC5E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,m/BACH,SAAU,SACZ,KkJJMuC,GAAmB,AAAC,I,GAAA,CAAEtI,QAAAA,CAAO,CAAED,OAAAA,CAAM,CAAiB,GAAZpZ,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAApBqZ,UAASD,S,EACnC,GAAI,CAACA,GAAW,CAACC,GAAWA,AAAmB,IAAnBA,EAAQ,MAAM,CAAS,OAAO,KAC1D,GAAM,CACJ,cAAe,CACb,KAAMK,CAAU,CAChB,gBAAiBC,CAAgB,CACjC,SAAUC,CAAc,CACxB,MAAOC,CAAW,CAClB,MAAOC,CAAW,CAClB,OAAQ8H,CAAY,CACrB,CACDzJ,eAAAA,CAAc,CACf,CAAGnY,EAEE,CAAEqD,KAAAA,CAAI,CAAEuT,eAAAA,CAAc,CAAE,CADbyC,CAAO,CAAC,EAAE,CAAC,OAAO,CAE7B,CAAEP,SAAAA,CAAQ,CAAE,CAAGlC,CAAc,CAACyC,CAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CACjDN,EAAYF,GAAqBC,GAEjC+I,EAAuBC,AAAAA,GACpBphB,OAAO,IAAI,CAACkW,GAChB,MAAM,CAAC,CAAC9I,EAAGI,IAAMJ,EAAK8I,CAAAA,CAAc,CAAC1I,EAAE,CAAC4T,EAAO,EAAI,GAAI,GAEtDC,EAAcF,EAAqB,UACnCG,EAAgBH,EAAqB,YAE3C,MACE,YAAC,OAAI,UAAW,CAAC,2CAA2C,EAAEhI,AAAgB,QAAhBA,EAAwB,UAAY,SAAS,CAAC,C,UAC1G,YAAC,OAAI,UAAU,+B,UACb,WAACoI,GAAYA,CACX,UAAU,c,GAEZ,WAAC,QAAK,UAAU,oB,SACb5e,C,MAGJ3C,OAAO,IAAI,CAACkW,GAAgB,GAAG,CAAC4C,AAAAA,GAC/B,YAAC,OAEC,UAAU,6B,UAEV,WAAC,OAAI,UAAU,aAAa,MAAO,CAAE,gBAAiB5C,CAAc,CAAC4C,EAAQ,CAAC,KAAK,AAAC,C,GACnF5C,CAAc,CAAC4C,EAAQ,CAAC,KAAK,EAC9B,WAAC,OAAI,UAAU,a,SACb,WAAC,OACC,IAAKA,EACL,IAAK5C,CAAc,CAAC4C,EAAQ,CAAC,KAAK,A,KAItC,WAAC,OAAI,UAAU,6B,SACb,YAAC,OAAI,UAAU,a,UACb,YAAC,OAAI,UAAU,W,UACZE,AAAe,QAAfA,GACC,yB,UACGI,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,O,GAGP,WAAC,OAAI,UAAU,mB,SACZia,C,MAING,AAAqB,QAArBA,GACC,yB,UACGG,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,GAGP,WAAC,OAAI,UAAU,mB,SACZ4N,GAAiByJ,CAAc,CAAC4C,EAAQ,CAAC,QAAQ,EAAI,EAAIwI,E,SAKlE,YAAC,OAAI,UAAU,W,UACZpI,AAAmB,QAAnBA,GACC,yB,UACGE,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,W,GAGP,WAAC,OAAI,UAAU,mB,SACZqX,CAAc,CAAC4C,EAAQ,CAAC,QAAQ,EAAI,C,MAI1CoI,AAAiB,QAAjBA,GACC,yB,UACG9H,AAAgB,QAAhBA,GACC,WAAC,OAAI,UAAU,kB,SACZva,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,S,GAGP,WAAC,OAAI,UAAU,mB,SACZwZ,EAAU,MAAM,CAACnC,CAAc,CAAC4C,EAAQ,CAAC,MAAM,EAAI,E,gBA7D3DA,IAsET,YAAC,OAAI,UAAU,+B,UACb,WAAC,Q,SAAM,CAAC,MAAM,EAAErB,EAAe,CAAC,CAAC,A,GACjC,WAAC,QAAK,UAAU,Q,SACbA,AAAmB,aAAnBA,EAAgC6J,EAAgBjJ,EAAU,MAAM,CAACgJ,E,QAK5E,CAEAJ,CAAAA,GAAiB,SAAS,CAAG,CAC3B,QAASniB,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACzC,QAASA,AAAAA,KAAAA,MAAgB,CACzB,QAASA,KAAAA,KAAe,CAAC,CACvB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,eAAgBA,KAAAA,KAAe,CAAC,CAAC,EACnC,EACF,IAAI,UAAU,CACd,OAAQA,AAAAA,KAAAA,IAAAA,CAAAA,UAAyB,AACnC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK6a,ICtHpB,IAAMzC,GAAa,CAAC,EAAG,cAAc,CAE/BgD,GAAY,CAAC,CACjBtT,UAAAA,EAAY,CAAC,CAAC,CACd,UAAW,CAAE4N,cAAAA,CAAa,CAAE,CAAG,CAAC,CAAC,CACjCrE,eAAAA,EAAiB,UAAU,CAC5B,IACC,IAAMuE,EAAsBC,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM7Z,GAAc0Z,GAAgB,CAACA,EAAc,EACjF,CAAE,KAAMI,CAAa,CAAE,CAAGF,EAC1B,CAAErO,KAAAA,CAAI,CAAE,CAAGO,EACuBuT,EAAAA,CAAI,CAAC,EAAE,CAAzC,CAAEvL,eAAAA,CAAc,CAAe,CAAGuL,EAAbC,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAaD,EAAAA,CAAhCvL,iB,EACJkC,EAAW,EACX,EAACgE,KAAQlG,IACXkC,CAAAA,EAAWlC,CAAc,CAAClW,OAAO,IAAI,CAACkW,EAAe,CAAC,EAAE,CAAC,CAAC,QAAQ,AAAD,EAGnE,IAAMgB,EAAWlX,OAAO,IAAI,CAAC0hB,GAAU,MAAM,CAAC/H,AAAAA,GAAKA,AAAM,SAANA,GAAgBA,AAAM,UAANA,GAAiBA,AAAM,cAANA,GAAqBA,AAAM,eAANA,GACnGgI,EAAiB1F,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAMvP,AAAAA,GAC5B+K,AAAmB,aAAnBA,EACH/K,EAAQyL,GAAqBC,GAAU,MAAM,CAAC1L,GACjD,CAAC0L,EAAUX,EAAe,EAEvBmK,EAAkB3F,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EACrC,UAAW,CAAE,EAAG,CAAE,EAClB,kBAAmB,GACnB,WAAY,SACZ,KAAM,UACR,GAAI,EAAE,EAEN,MACE,WAACI,GAAAA,CAAmBA,CAAAA,CAClB,UAAU,oC,SAEV,YAACwF,GAAAA,CAASA,CAAAA,CACR,KAAMlU,EACN,OAAQ,CACN,OAAQ,GACR,KAAM,EACN,MAAO,GACP,IAAK,EACP,E,UAEA,WAAC8S,GAAAA,CAAaA,CAAAA,CAAC,gBAAgB,K,GAC/B,WAACC,GAAAA,CAAKA,CAAAA,CACJ,QAAQ,OACR,SAAS,mBACT,KAAM,CAAE,MAAO,IAAK,WAAY,KAAM,C,GAExC,WAACC,GAAAA,CAAKA,CAAAA,CACJ,OAAQnC,GACR,SAAU,EACV,cAAemD,EACf,KAAM,CAAC,CAACvJ,C,GAET,CAACgE,KAAQlG,IAAmBgG,AAAkB,QAAlBA,GAC3B,WAACQ,GAAAA,CAAOA,CAAAA,CACN,QACE,WAACuE,GAAgBA,CACf,cAAejF,EACf,eAAgBvE,C,KAKvBP,EAAS,MAAM,CAAG,GACdA,EAAS,MAAM,CAAC3G,AAAAA,GAAK,CAAE2F,CAAAA,GAAkB,CAACA,CAAc,CAAC3F,EAAC,GAAI,GAAG,CAAC,CAAC5P,EAAK4F,KACzE,IAAMub,EAAO,CAAC,EAAEnhB,EAAI,CAAC,EAAE4F,EAAM,CAAC,CACxBwb,EAAaxb,AAAU,IAAVA,EAAcA,EAAQA,AAAQ,EAARA,EACnCyb,EAAO9L,EAAiBA,CAAc,CAACvV,EAAI,CAAC,KAAK,CAAG,CAAC,iBAAiB,EAAG,KAAO,GAAKohB,CAAS,EAAM,IAAI,CAAC,CAAC,CAChH,MACE,WAACE,GAAAA,CAAIA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAEH,QAASthB,EACT,OAAQqhB,EACR,YAAY,G,EACRJ,GAJCE,EAOX,G,IAIV,CAEAN,CAAAA,GAAU,SAAS,CAAG,CACpB,UAAW1iB,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACtC,eAAgBA,KAAAA,KAAe,CAAC,CAC9B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,KAAMA,KAAAA,KAAe,CAAC,CAAC,EACzB,EACF,IACA,SAAUA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,CAC9C,GACA,KAAMA,KAAAA,KAAe,CAAC,CAAC,GACvB,UAAWA,KAAAA,KAAe,CAAC,CACzB,cAAeA,AAAAA,KAAAA,MAAgB,AACjC,GACA,eAAgBA,AAAAA,KAAAA,MAAgB,AAClC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKob,I,yBCpGpB,IAAMU,GAAY,CAAC,iBAAiB,CAC9BC,GAAa,CAAC,CAClBjU,UAAAA,EAAY,CAAC,CAAC,CACd,UAAW,CAAEkU,KAAAA,CAAI,CAAEzW,SAAAA,CAAQ,CAAE,CAAG,CAAC,CAAC,CAClCoQ,gBAAAA,EAAkB,EAAE,CACpB,KAAM,CACJpB,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbK,oBAAAA,CAAmB,CACnBD,kBAAAA,CAAiB,CAClB,CAAG,CAAC,CAAC,CACNvD,eAAAA,EAAiB,EAAE,CACpB,IACC,GAAM,CACJ9J,KAAAA,CAAI,CACJ,YAAavB,CAAK,CACnB,CAAG8B,EAEEyH,EAAUhI,EAAK,MAAM,CAAGA,CAAI,CAACA,EAAK,MAAM,CAAG,EAAE,CAAC,OAAO,EAAI,EAAI,GAC7D0U,EAAc1W,AAAkB,gBAAlBA,EAAS,IAAI,EAAsBuW,GAAU,QAAQ,CAACvW,EAAS,IAAI,EACjF+H,EAAgB/H,AAAkB,wBAAlBA,EAAS,IAAI,CAC7BgI,EAAahI,AAAkB,qBAAlBA,EAAS,IAAI,CAE1B2W,EAAoB3U,EAAK,MAAM,CAAC4C,AAAAA,GAAKvE,AAAyB,kBAAzBA,GAAauE,EAAE,IAAI,GACxDgS,EAAmBC,KAAMF,EAAmB7K,IAAmB,CAAC,EAChEgL,EAAchL,AAAmB,UAAnBA,EAA6BvJ,CAAS,CAAC,CAAC,KAAK,EAAEuJ,EAAe,CAAC,CAAC,CAAG9J,EAAK,MAAM,CAAC,CAACG,EAAKC,IAChGA,EAAK,SAAS,CAAGA,EAAK,KAAK,CAAGD,EAAMA,EAC1C,GAEG4U,EAAWH,AAAmC,IAAnCA,CAAgB,CAAC9K,EAAe,CAAUgL,EACrDE,EAAuB7V,OAAO,KAAK,CAAC4V,GAAW,KAAO,CAAC,EAAEA,EAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAC9EE,EAAiB3W,GAAasW,EAAiB,IAAI,EACnDM,EAAiB7W,GAAauW,EAAiB,IAAI,EACnDvT,EAAY9C,GAAkBqW,EAAiB,IAAI,EAEnDO,EAAWpW,AAAAA,IAEf,IAAMyJ,EAAQ4M,AADKrZ,EAAW,CAACiC,EAAS,UAAU,EAAI,EAAE,AAChC,CAACe,EAAQ,EAAE,EAAI,EACvC,MACE,WAAC,OACC,IAAI,UACJ,UAAU,YACV,IAAK,CAAC,EAAE9C,GAAQ,CAAC,EAAEuM,EAAM,IAAI,CAAC,A,EAGpC,EAEM6M,EAAW,CAACC,EAAQvJ,EAAYD,KACpC,IAAMyJ,EAAaD,AAAS,IAATA,EAAgBvJ,EAAW,MAAM,CAC9CyJ,EAAW,IAAMzJ,EAAW,MAAM,CAClCE,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDC,EAAYN,AAAc,WAAdA,EAAyB,UAAY,UAEvD,MACE,WAAC,OACC,UAAU,WACV,YAAWC,EAAW,MAAM,C,SAE5B,YAAC,QAAK,UAAU,oB,UACd,WAAC,QACC,UAAU,YACV,MAAO,CAAE,SAAU,CAAC,qBAAqB,EAAEwJ,EAAU,KAAK,EAAEA,EAAU,OAAO,CAAC,AAAC,E,SAE9ExJ,EACE,GAAG,CAACtK,AAAAA,GACH,WAACwK,EAAAA,CAEC,MAAO,CAAE,KAAMG,EAAW,MAAO,CAAC,EAAEoJ,EAAS,CAAC,CAAC,AAAC,C,EAD3C,CAAC,OAAO,EAAE/T,EAAI,CAAC,E,GAK3BsK,EACE,GAAG,CAACtK,AAAAA,GACH,WAACwK,EAAAA,CAEC,MAAO,CAAE,KAAM,UAAW,MAAO,CAAC,EAAEuJ,EAAS,CAAC,CAAC,AAAC,C,EAD3C,CAAC,MAAM,EAAE/T,EAAI,CAAC,G,IAOjC,EAEMgU,EAAkBjiB,AAAAA,IACtB,GAAIohB,EAAiB,IAAI,CAAE,CACzB,IAAMc,EAAcd,EAAiB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,GAClE,IAAIH,EAAK,QAAQ,CA4Bf,MACE,yB,UACE,WAAC,QAAK,UAAU,U,SAAU,qB,GAC1B,WAAC,QACC,UAAU,SACV,MAAOjhB,E,SAEN0hB,C,KAnCU,EACjB,IAAMzhB,EAAUghB,EAAK,QAAQ,CAAC,IAAI,CAACvgB,AAAAA,GAAKA,EAAE,IAAI,GAAKwhB,GACnD,GAAIjiB,EAAS,CACX,IAAMkiB,EAAY,CAACliB,EAAQ,IAAI,CAC/B,MACE,yB,UACGkiB,GAAa,WAAC,QAAK,UAAU,wB,SAAwB,qB,GACrD,AAACA,EAUA,WAAC,QACC,UAAU,SACV,MAAOniB,E,SAEN0hB,C,GAbH,yB,UACE,WAAC,OACC,IAAI,qBACJ,IAAKzhB,EAAQ,IAAI,A,GAElB0L,OAAO,KAAK,CAACA,OAAO+V,IACrB,WAAC,Q,SAAMA,C,QAYjB,CACF,CAaF,CACA,OAAO,IACT,EAEMU,EAAgB,KAEpB,GAAM,CAAEtU,MAAAA,CAAK,CAAE,CAAGsT,EACZphB,EAAQ,CACZ,gBAAiB8N,EACjB,YAAaA,EACb,MAAOA,GAAS8E,AAAuB,GAAvBA,GAAc9E,GAAc,UAAY,UACxD,WAAY0L,EACZ,SAAU1R,SAAS2R,EAAe,GACpC,QACA,AAAIjP,AAAkB,sBAAlBA,EAAS,IAAI,EAA4BA,AAAkB,mBAAlBA,EAAS,IAAI,CACjDyX,EAAgBjiB,GAIvB,yB,UACGmiB,AAfa,CAACjB,GAAe,CAAC3O,GAAiB,CAACC,GAenC,WAAC,QAAK,UAAU,U,SAAW9U,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,gB,GAC1C6U,EACC,yB,UACE,WAAC,OACC,IAAI,qBACJ,IAAKkP,C,GAEN9V,OAAO,KAAK,CAACA,OAAO+V,KAChB,WAAC,QAAK,MAAO,CAAE,WAAYlI,EAAiB,SAAU1R,SAAS2R,EAAe,GAAI,EAAG,UAAU,a,SAAciI,C,MAGpH,WAAC,QACC,UAAU,SACV,MAAO1hB,E,SAEP,WAAC,Q,SACE0hB,C,OAMb,EAwCA,MACE,wB,SACE,YAAC,OAAI,UAAW,CAAC,YAAY,EAAE9G,EAAgB,CAAC,C,UAC9C,WAAC,OACC,UAAWhW,KACT,eACA,CAAE,eAAgB,CAACsc,CAAY,G,SAGhCmB,AA/CW,MAClB,GAAI7X,EAAS,SAAS,EAAIA,AAAuB,iBAAvBA,EAAS,SAAS,CAC1C,OAAOmX,EAAS3O,KAAK,IAAI,CAACwB,IAE5B,GAAIhK,AAAkB,mBAAlBA,EAAS,IAAI,CAEf,OAAOqX,EAASrN,EADGK,MAAM,IAAI,CAAC,CAAE,OAAQrK,EAAS,KAAK,AAAC,EAAG,CAACoE,EAAG4J,IAAMA,EAAI,GACnChO,EAAS,SAAS,EAEzD,GAAIA,AAAkB,qBAAlBA,EAAS,IAAI,CAAyB,CACxC,IAAMuO,EAAeqI,EAAiB,OAAO,CAAGpI,GAAmBC,GACnE,MACE,yB,UACE,WAAC,QAAK,UAAU,U,SAAWvb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,gB,GAC7B,YAAC,QAAK,MAAO,CAAE,QAAS,MAAO,E,UAC7B,WAACqb,EAAAA,CAAa,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,YAAa,CAAE,C,GAC7D,WAAC,Q,SAAMrb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEgkB,E,QAIjB,QACA,AAAIlP,EAEA,yB,UACE,WAAC,QAAK,UAAU,U,SAAW9U,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,gB,GAC7B,YAAC,QAAK,UAAW,CAAC,SAAS,EAAEmQ,EAAY,WAAa,GAAG,CAAC,C,UACxD,WAAC,OACC,IAAK6T,EACL,IAAKD,EACL,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,YAAa,CAAE,C,GAEjD,WAAC,Q,SAAM/jB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEgkB,E,SAKVU,GACT,I,GAaM,YAAC,OAAI,UAAU,Y,UACb,YAAC,OAAI,UAAU,c,UACb,WAAC,OAAI,UAAU,sBAAsB,MAAO,CAAE,WAAY5I,EAAiB,SAAU1R,SAAS2R,EAAe,IAAK,MAAOI,CAAkB,E,SACzI,WAAC,Q,SACEqH,EAAc1M,EAAUgN,C,KAG7B,WAAC,OAAI,UAAU,UAAU,MAAO,CAAE,MAAO1H,CAAoB,E,SAC1Dpc,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEwjB,EAAc,gBAAkB,a,MAGvC,YAAC,OAAI,UAAU,c,UACb,WAAC,OAAI,UAAU,sBAAsB,MAAO,CAAE,WAAY1H,EAAiB,SAAU1R,SAAS2R,EAAe,IAAK,MAAOI,CAAkB,E,SACzI,WAAC,Q,SACEyH,C,KAGL,WAAC,OAAI,UAAU,UAAU,MAAO,CAAE,MAAOxH,CAAoB,E,SAC1D9O,GAAUC,EAAO,G,aAOhC,CAEA+V,CAAAA,GAAW,SAAS,CAAG,CACrB,UAAWrjB,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACtC,QAASA,KAAAA,SAAmB,CAAC,CAC3BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,KAAMA,KAAAA,SAAmB,CAAC,CACxBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,IACA,YAAaA,KAAAA,SAAmB,CAAC,CAACA,AAAAA,KAAAA,MAAgB,CAAEA,AAAAA,KAAAA,MAAgB,CAAC,CACvE,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,oBAAqBA,AAAAA,KAAAA,MAAgB,CACrC,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,GACA,UAAWA,KAAAA,KAAe,CAAC,CACzB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,SAAUA,AAAAA,KAAAA,MAAgB,AAC5B,GACA,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,gBAAiBA,AAAAA,KAAAA,MAAgB,AACnC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK+b,ICpSpB,IAAMtG,GAAc,CAClB,YAAa,MACb,YAAa,KACf,EAWA,OAAezV,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EATIlH,AAAAA,GAEf,WAAC0c,GAAQA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACH1c,GAAAA,CACJ,YAAa2c,E,+CCNnB,IAAM4H,GAAuB,CAAC,CAC5B,KAAM,CACJ9I,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACb,KAAM1M,CAAS,CACfwV,mBAAAA,CAAkB,CACnB,CACDnd,MAAAA,CAAK,CACLpF,MAAAA,CAAK,CACN,IACC,IAAMwiB,EAAOnkB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IAEPK,EAAOqO,CAAS,CAAC3H,EAAM,CACvBqd,EAAiB3H,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,qBACjC9a,GAAAA,CACH,gBAAiBoF,EAAQ,GAAM,EAAI,OAAS,UAC5C,WAAYoU,C,GACV,CAACxZ,EAAOoF,EAAOoU,EAAgB,EAE7B,CAACkJ,EAAaC,EAAe,CAAGtiB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GAEzCmc,EAAa1B,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,UAChC,UAAW,GACX,OAAQ4H,GAAe,OACvB,SAAU5a,SAAS2R,EAAe,G,EAC/B8I,EAAqB,CAAC,EAAI,CAAE,SAAU,MAAO,GAC9C,CAACA,EAAoB9I,EAAeiJ,EAAY,EASpD,MANA/jB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ6jB,EAAK,OAAO,EACdG,EAAeH,EAAK,OAAO,CAAC,YAAY,EAAI,GAEhD,GAGE,YAAC,OACC,UAAU,8BACV,MAAOC,EACP,MAAO/jB,EAAK,IAAI,C,UAEhB,WAAC,QACC,IAAK8jB,EACL,UAAU,+BACV,MAAOhG,E,SAEN9d,EAAK,IAAI,A,GAEX6jB,GACD,WAAC,QACC,UAAU,gBACV,MAAO,CAAE,OAAQG,GAAe,OAAQ,UAAW,EAAG,E,SAEtD,WAAC,QAAK,UAAU,oB,SACbhkB,EAAK,KAAK,A,OAMrB,CAEA4jB,CAAAA,GAAqB,SAAS,CAAG,CAC/B,KAAM3kB,KAAAA,KAAe,CAAC,CACpB,gBAAiBA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CAC5C,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EAAE,UAAU,CACb,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACtC,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,IACA,mBAAoBA,AAAAA,KAAAA,IAAc,AACpC,GAAG,UAAU,CACb,MAAOA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CAClC,MAAOA,KAAAA,KAAe,CAAC,CAAC,GAAG,UAAU,AACvC,EAEA,OAAeub,GAAAA,IAAU,CAACoJ,GAAsBM,GAAAA,EAAQA,EC1ExD,IAAMC,GAAiBC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAQ,CAC7BtJ,EACAC,EACAjN,EACA+V,IACI,EACJ/I,gBAAAA,EACAC,cAAAA,EACAjN,KAAAA,EACA+V,mBAAAA,CACF,IAEMQ,GAAW,CAAC,CAChB,UAAW,CAAE,KAAMC,CAAY,CAAE,CAAG,CAAC,CAAC,CACtC,KAAM,CACJxJ,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbiC,OAAAA,CAAM,CACNuH,mBAAAA,CAAkB,CACnB,CAAG,CAAC,CAAC,CACNC,YAAAA,EAAc,EAAK,CACpB,IACC,IAAM1W,EAAOsO,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IACnB,AAAIjG,MAAM,OAAO,CAACmO,GACTA,EAAa,MAAM,CAAC5T,AAAAA,GAAKA,EAAE,KAAK,EAElC4T,EACN,CAACA,EAAa,EAGjBrkB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR1D,OAAO,gBAAgB,CAAC,QAASG,AAAAA,IAC/B,GAAIA,AAAc,uCAAdA,EAAE,OAAO,EAA6CA,AAAc,kEAAdA,EAAE,OAAO,CAAsE,CACvI,IAAM+nB,EAAuBngB,SAAS,cAAc,CAClD,yCAEIogB,EAAoBpgB,SAAS,cAAc,CAC/C,qCAEEogB,GACFA,EAAkB,YAAY,CAAC,QAAS,iBAEtCD,GACFA,EAAqB,YAAY,CAAC,QAAS,gBAE/C,CACF,EACF,EAAG,EAAE,EAEL,IAAMZ,EAAqBU,AAAuBjV,KAAAA,IAAvBiV,GAAoCA,AAAuB,OAAvBA,EACzDI,EAAcvI,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,YAAKyH,EAAqB,CAAC,EAAI,CAAE,SAAU,MAAO,GAAM,CAACA,EAAmB,EAEzGe,EAAWT,GACfrJ,EACAC,EACAjN,EACA+V,GAGIgB,EAAS,IAEX,YAAC,OAAI,UAAU,sB,UACb,WAAC,QACC,UAAU,+BACV,MAAOF,E,SAEN3lB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,O,GAEJ6kB,GACD,WAAC,QAAK,UAAU,+B,SACb7kB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,Y,aAOX,AAAK8O,CAAI,CAAC,EAAE,CAEV,WAAC,OAAI,UAAU,mB,SACZ,AAAC0W,EAgBA,yB,UACE,WAACK,EAAAA,CAAAA,GACA/W,EAAK,KAAK,CAAC,EAAGwG,KAAK,KAAK,CAAE0I,AAAAA,CAAAA,EArGhB,GAqGoC,EApGpC,KAoGwD,GAAG,CAAC,CAACtM,EAAGhK,IACzE,WAACkd,GAAoBA,CACnB,KAAMgB,EACN,MAAOle,C,OApBb,WAACoe,GAAAA,EAAYA,CAAAA,CACX,MAAO,CAAE,OAAQ9H,CAAO,EACxB,WAAY,CAAE6H,OAAAA,CAAO,EACrB,WAAY/W,EAAK,MAAM,CACvB,YACEpH,AAAAA,GACE,WAACkd,GAAoBA,CACnB,KAAMgB,EACN,MAAOle,EACP,MAAO,CAAE,OAAQ,MAAO,C,OAbjB,IA+BvB,CAEA2d,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAWplB,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,GAC3C,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAAEA,AAAAA,KAAAA,MAAgB,CACnC,EACD,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,mBAAoBA,AAAAA,KAAAA,MAAgB,CACpC,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,GACA,YAAaA,AAAAA,KAAAA,IAAc,AAC7B,ECrIA,ODuIeub,GAAAA,IAAU,CAAC6J,IEtI1B,IAAMrI,GAAc,CAClB,OAAQ,YACV,EAWA,OAAezV,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EATQlH,AAAAA,GAEnB,WAACwf,GAAQA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACHxf,GAAAA,CACJ,YAAa2c,E,KCHnB,IAAM+I,GAAa,CAAC,CAClBC,kBAAAA,EAAoB,CAAC,CAAC,CACtBC,oBAAAA,EAAsB,CAAC,CAAC,CACxBC,WAAAA,EAAa,EAAE,CACfC,QAAAA,EAAU,CAAC,CAAC,CACZlgB,WAAAA,EAAa,EAAK,CAClBmgB,OAAAA,EAAS,EAAE,CACXvH,MAAAA,EAAQ,gBAAgB,CACxB/U,aAAAA,EAAe,KAAO,CAAC,CACvBuc,cAAAA,EAAgB,EAAE,CAClBC,oBAAAA,EAAsB,IAAI,CAC3B,IACC,IAAMC,EAAaplB,OAAO,IAAI,CAACglB,GAAS,MAAM,CAAG,EAWjD,MACE,YAAC,OACC,UAAU,sBACV,QAXYzoB,AAAAA,IACdA,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,YAAY,CAAC,YAAa,GAC5D,EAUI,OARWA,AAAAA,IACbA,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,YAAY,CAAC,YAAa,GAC5D,E,UAQI,WAAC,OAAI,UAAU,0B,SACb,WAAC8H,GAAQA,CACP,WAAY,GACZ,cAAe,CAlCJ,GADF,GAmCgC,CACzC,eAAgB,EAAE,CAClB,QAASqZ,EACT,aAAa,mBACb,SAAU,CAAC5Y,EACX,UAAU,aACV,WAAYA,EACZ,SAAUqE,AAAAA,GAAYR,EAAa,CAAE,GAAIsc,CAAO,EAAG,CAAE,KAAM9b,CAAS,GACpE,YAAarE,EAAa,uBAAyB,GACnD,UA5BUvI,AAAAA,GAAKA,EAAE,eAAe,GA6BhC,MAAOsoB,C,KAGVM,AAAwB,OAAxBA,GACC,YAAC,OACC,UAAU,0BACV,MAAOL,E,UAEN,CAAC,EAAEI,EAAc,CAAC,EAAErmB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,CAAC,QAAQ,EAAEqmB,EAAgB,EAAI,IAAM,GAAG,CAAC,EAAE,CAAC,CAClEH,GAAc,CAACK,EAAa,CAAC,EAAE,EAAEL,EAAW,CAAC,EAAElmB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,SAAS,CAAC,CAAG,G,KAKzE,CAEA+lB,CAAAA,GAAW,SAAS,CAAG,CACrB,kBAAmB9lB,KAAAA,KAAe,CAAC,CAAC,GACpC,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,WAAYA,KAAAA,SAAmB,CAAC,CAC9BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,QAASA,KAAAA,KAAe,CAAC,CAAC,GAC1B,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKwe,IzJpFpB,SAAS,KAAa,MAAO,IAAW5kB,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CCAnR,SAAS,KAAa,MAAO,IAAWF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUC,CAAC,EAAI,IAAK,IAAI1D,EAAI,EAAGA,EAAI2D,UAAU,MAAM,CAAE3D,IAAK,CAAE,IAAIsC,EAAIqB,SAAS,CAAC3D,EAAE,CAAE,IAAK,IAAI4D,KAAKtB,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGsB,IAAOF,CAAAA,CAAC,CAACE,EAAE,CAAGtB,CAAC,CAACsB,EAAE,AAAD,CAAI,CAAE,OAAOF,CAAG,GAAY,MAAM,KAAMC,UAAY,CoJUnR,IAAMmlB,GAAQ,CACZC,I1JTapmB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACvE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQpB,GAAOA,CAAAA,EAAkB,gBAAmB,CAAC,IAAK,CAC3D,KAAM,OACN,SAAU,UACV,UAAW,wBACb,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,GACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,KAAM,UACN,OAAQ,uDACV,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,09BACL,GAAE,G0JPKynB,IzJTQrmB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACvE,MAAO,6BACP,WAAY,+BACZ,QAAS,aACX,EAAGA,GAAQnB,GAAUA,CAAAA,EAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,OAAQ,CACnH,GAAI,QACJ,EAAG,qrBACL,GAAE,EAAIC,GAASA,CAAAA,EAAoB,gBAAmB,CAAC,MAAO,CAC5D,KAAM,UACN,SAAU,UACV,UAAW,yBACX,UAAW,QACb,EAAC,GyJHWwnB,MxJTKtmB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,gBAAmB,CAAC,IAAK,CAC3D,KAAM,OACN,SAAU,SACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,GACR,EAAG,GACH,KAAM,UACN,YAAa,GACb,GAAI,CACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,GACH,EAAG,EACH,KAAM,UACN,GAAI,CACN,GAAiB,gBAAmB,CAAC,IAAK,CACxC,UAAW,iBACb,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,GACP,OAAQ,GACR,EAAG,GACH,KAAM,UACN,GAAI,CACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,GACP,OAAQ,GACR,EAAG,IACH,KAAM,UACN,GAAI,CACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,IACH,EAAG,GACH,KAAM,UACN,GAAI,CACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,GACH,KAAM,UACN,GAAI,CACN,IAAG,GwJtCgBumB,MvJTFvmB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,EAAG,q0BACH,UAAW,wBACb,EAAC,GuJCyByS,OtJTRzS,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,gBAAmB,CAAC,IAAK,CAC3D,KAAM,OACN,SAAU,UACV,UAAW,kBACb,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,GACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,KAAM,UACN,OAAQ,uDACV,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,09BACL,GAAE,GsJPgCqX,KrJTlBrX,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,EAAG,wgBACH,UAAW,kBACb,EAAC,GqJCuCwmB,SpJTxBxmB,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,gBAAmB,CAAC,IAAK,CAC3D,KAAM,OACN,SAAU,SACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,EAAG,0QACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,GACH,KAAM,SACR,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,GACH,KAAM,SACR,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,GACR,EAAG,IACH,KAAM,SACR,GAAE,EoJdF,EAEMymB,GAAmB,CAAC,CACxB1X,UAAAA,EAAY,KAAK,CACjB4O,OAAAA,EAAS,GAAG,CACZ+I,cAAAA,EAAgB,EAAK,CACrB5I,MAAAA,EAAQ,GAAG,CACX6I,gBAAAA,EAAkB,EAAK,CACvBhB,kBAAAA,EAAoB,CAAC,CAAC,CACtB/f,WAAAA,EAAa,EAAK,CAClBmgB,OAAAA,EAAS,EAAE,CACXrmB,KAAAA,EAAO,EAAE,CACT+J,aAAAA,EAAe,KAAO,CAAC,CACvBuc,cAAAA,EAAgB,GAAG,CACnBC,oBAAAA,EAAsB,IAAI,CAC3B,IACC,IAAMW,EAAYT,EAAK,CAACpX,EAAU,EAAIoX,GAAM,GAAG,CAE/C,MACE,YAAC,OACC,UAAU,qCACV,UAAWxjB,AAAAA,GAAKA,EAChB,MAAO,CAAEgb,OAAAA,EAAQG,MAAAA,CAAM,E,UAEtB+I,AAPkBH,GAAiBC,EAmBhC,YAAC,OAAI,UAAU,sB,UACb,WAAC,OAAI,UAAU,0B,SACb,WAAC,OAAI,UAAU,4B,KAEjB,WAAC,OAAI,UAAU,0B,SACb,WAAC,OAAI,UAAU,uC,QAhBrB,WAACjB,GAAUA,CACT,kBAAmBC,EACnB,WAAY/f,EACZ,OAAQmgB,EACR,MAAOrmB,EACP,aAAc+J,EACd,cAAeuc,EACf,oBAAqBC,C,GAazB,WAAC,OAAI,UAAW,CAAC,0BAA0B,EAAElX,EAAU,CAAC,C,SACtD,YAAC,OAAI,UAAU,6B,UACb,WAAC6X,EAAAA,CACC,UAAU,gBACV,oBAAqB7X,AAAc,UAAdA,GAClBA,AAAc,QAAdA,GACAA,AAAc,UAAdA,EAAwB,KAAO,M,GAEnC2X,EACC,WAAC,OAAI,UAAU,gB,SACb,WAAC,QAAK,UAAU,qB,SACd,WAAC,QAAK,UAAU,Q,SAAQ,Y,OAM5B,WAAC,QAAK,UAAU,gB,SACd,WAAC,QAAK,UAAU,qB,SACbC,EACG,sCACA,uB,YAQpB,EAEA,OAAezf,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKuf,GAEpBA,CAAAA,GAAiB,SAAS,CAAG,CAC3B,UAAW7mB,AAAAA,KAAAA,MAAgB,CAC3B,gBAAiBA,AAAAA,KAAAA,IAAc,CAC/B,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,kBAAmBA,KAAAA,KAAe,CAAC,CAAC,GACpC,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,cAAeA,AAAAA,KAAAA,MAAgB,CAC/B,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,EC1GA,IAAMknB,GAAa,CAAC,CAClBnmB,KAAAA,EAAO,CAAC,CAAC,CACTomB,aAAAA,EAAe,EAAK,CACpBpB,kBAAAA,EAAoB,CAAC,CAAC,CACtB/f,WAAAA,EAAa,EAAK,CAClBlG,KAAAA,EAAO,EAAE,CACT+J,aAAAA,EAAe9G,AAAAA,GAAKA,CAAC,CACtB,GACC,WAAC8jB,GAAgBA,CACf,UAAW9lB,EAAK,SAAS,CACzB,OAAQA,EAAK,MAAM,CACnB,MAAOA,EAAK,KAAK,CACjB,gBAAiBomB,EACjB,kBAAmBpB,EACnB,WAAY/f,EACZ,OAAQjF,EAAK,EAAE,CACf,KAAMjB,EACN,aAAc+J,EACd,cAAc,IACd,oBAAqB9I,EAAK,mBAAmB,A,EAIjDmmB,CAAAA,GAAW,SAAS,CAAG,CACrB,KAAMlnB,KAAAA,KAAe,CAAC,CACpB,GAAIA,AAAAA,KAAAA,MAAgB,CACpB,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,GACA,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,kBAAmBA,KAAAA,KAAe,CAAC,CAAC,GACpC,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,aAAcA,AAAAA,KAAAA,IAAc,AAC9B,ECpCA,IAAMonB,GAAkB,CAAC,CACvBvY,KAAAA,EAAO,CAAC,CAAC,CACT,gBAAiB,CACftC,cAAAA,CAAa,CACbqI,cAAAA,CAAa,CACbqF,aAAAA,CAAY,CACZ1B,WAAAA,CAAU,CACV1D,WAAAA,CAAU,CACX,CAAG,CAAC,CAAC,CACNwS,YAAAA,EAAc,CAAC,CAAC,CACjB,IACC,IAAMxjB,EAAOqJ,GAAa2B,EAAK,IAAI,EAmCnC,MACE,YAAC,QAAK,UAAU,gB,UACd,WAAC,QACC,UAAU,mBACV,MAAO,CAAE,gBAAiBA,EAAK,KAAK,AAAC,C,GAErC+F,AAAAA,CAAAA,GAAiBrI,GAAiBsI,CAAS,GAC3C,WAAC,QAAK,UAAW,CAAC,gBAAgB,EAAEtI,EAAgB,YAAc,GAAG,EAAEsI,EAAa,eAAiB,GAAG,CAAC,C,SACvG,WAAC,OACC,IAAKhR,EACL,IAAM+Q,GAAiBC,EAAc1H,GAAa0B,EAAK,IAAI,EAAI,CAAC,EAAE/D,GAAQ,CAAC,EAAE+D,EAAK,IAAI,CAAC,IAAI,CAAC,A,KAIjGoL,GAAgBQ,AA/CD,MAClB,GAAM,CAAEC,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAE,CAAGV,EACvBW,EAAa1D,MAAM,IAAI,CAAC,CAAE,OAAQwD,CAAM,EAAG,CAACzJ,EAAG4J,IAAMA,EAAI,GACzDC,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDC,EAAYN,AAAc,WAAdA,EAAyB,UAAY,UACvD,OAAOC,EAAW,GAAG,CAACM,AAAAA,GACpB,WAACJ,EAAAA,CACC,UAAU,aAEV,MAAO,CAAE,KAAMI,GAAQrX,EAAOoX,EAAY,SAAU,C,EAD/C,CAAC,EAAEC,EAAK,YAAY,CAAC,EAIhC,KAoCK3C,GAAc+O,AAlCI,MACrB,IAAMC,EAAO1Y,EAAK,OAAO,CAAGwM,GAAmBC,GAC/C,MACE,yB,UACE,WAACiM,EAAAA,CACC,MAAO,CACL,MAAO,GACP,OAAQ,GACR,WAAY,EACZ,YAAa,CACf,C,GAEF,WAAC,QAAK,UAAU,e,SACbxnB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8O,EAAK,IAAI,C,KAIpB,KAkBM,CAACtC,GAAiB,CAAC0N,GAAgB,CAAC1B,GACpC,WAAC,QACC,UAAU,qBACV,MAAO8O,E,SAEP,WAAC,QAAK,UAAU,e,SACbxjB,C,OAMb,CAEAujB,CAAAA,GAAgB,SAAS,CAAG,CAC1B,KAAMpnB,KAAAA,SAAmB,CAAC,CACxBA,AAAAA,KAAAA,MAAgB,CAChBA,KAAAA,KAAe,CAAC,CAAC,GAClB,EACD,gBAAiBA,KAAAA,KAAe,CAAC,CAC/B,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,IAAc,CACdA,AAAAA,KAAAA,KAAe,CAChB,EACD,aAAcA,KAAAA,SAAmB,CAAC,CAChCA,AAAAA,KAAAA,IAAc,CACdA,KAAAA,KAAe,CAAC,CACd,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,GACD,EACD,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,WAAYA,AAAAA,KAAAA,IAAc,AAC5B,GACA,YAAaA,KAAAA,KAAe,CAAC,CAAC,EAChC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK8f,ICzGpB,IAAMI,GAAc,CAAC,CACnBpY,UAAAA,EAAY,CAAC,CAAC,CAAED,UAAAA,EAAY,EAAE,CAAEtC,SAAAA,EAAW,CAAC,CAAC,CAAE4a,aAAAA,EAAe,CAAC,CAAC,CACjE,IACC,GAAM,CAAErP,SAAAA,CAAQ,CAAE,CAAGhJ,EACjB,CAAEP,KAAAA,CAAI,CAAE,CAAGO,EAAU,WAAW,CAAGA,EAAU,WAAW,CAAGA,EAC3DD,CAAAA,AAAc,QAAdA,GAAuBA,AAAc,UAAdA,CAAoB,GAC7CN,CAAAA,EAAOA,EAAK,MAAM,CAAC4C,AAAAA,GAAKA,AAAY,IAAZA,EAAE,KAAK,CAAM,EAGvC,IAAMT,EAAYoH,EAAS,MAAM,CAAG,EAAIA,EAAWvJ,EAC7CwY,EAAc,CAAE,MAAOI,EAAa,iBAAiB,AAAC,EACtD/N,EAAkBD,GAAmB5M,GAE3C,MACE,WAAC,OAAI,UAAU,mC,SACZmE,EAAU,GAAG,CAAC,CAACgJ,EAASvS,KACvB,GAAIuS,EAAQ,OAAO,CAAE,OAAO,KAC5B,IAAI0N,EAAatP,EAAS,MAAM,CAAG,EAAI,qBAAKvJ,CAAI,CAAC,EAAE,CAACmL,EAAQ,GAAE,KAAMA,C,GAAYA,EAEhF,GAAI5K,EAAU,WAAW,CAAE,CACzB,IAAMyE,EAASzE,EAAU,IAAI,CAAC,EAAE,CAAC,cAAc,CAACsY,EAAW,IAAI,CAAC,CAChEA,EAAa,qBAAK7T,GAAAA,CAAQ,KAAM6T,EAAW,IAAI,A,EACjD,CACA,MACE,WAACN,GAAeA,CAEd,KAAMM,EACN,gBAAiBhO,EACjB,YAAa2N,C,EAHR5f,EAAM,QAAQ,GAMzB,E,EAGN,CAEA+f,CAAAA,GAAY,SAAS,CAAG,CACtB,UAAWxnB,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACtC,eAAgBA,KAAAA,KAAe,CAAC,CAAC,EACnC,IACA,SAAUA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EAC5C,MAAOA,KAAAA,SAAmB,CAAC,CAACA,AAAAA,KAAAA,MAAgB,CAAEA,AAAAA,KAAAA,MAAgB,CAAC,EAC/D,YAAaA,KAAAA,KAAe,CAAC,CAAC,EAChC,GACA,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,aAAcA,KAAAA,KAAe,CAAC,CAC5B,kBAAmBA,AAAAA,KAAAA,MAAgB,AACrC,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,YAAaA,AAAAA,KAAAA,MAAgB,AAC/B,GACA,SAAUA,KAAAA,KAAe,CAAC,CACxB,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,EACF,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKkgB,IClDpB,IAAMG,GAAgB,CAAC,CACrBvY,UAAAA,EAAY,CAAC,CAAC,CACdvC,SAAAA,EAAW,CAAC,CAAC,CAEb8L,eAAAA,EAAiB,OAAO,CACxBV,aAAAA,EAAe,CAAC,CAAC,CAClB,IACC,IAAM2P,EAAgBxY,EAAU,WAAW,CACrC,CAAE,KAAMyY,CAAW,CAAE,CAAGD,EAAgBxY,EAAU,WAAW,CAAGA,EAChEP,EAAOgZ,EAAY,GAAG,CAACC,AAAAA,GAAU,qBAAKA,GAAAA,CAAO,KAAM7P,CAAY,CAAC6P,EAAM,IAAI,CAAC,EAAIA,EAAM,IAAI,A,IACzF,CAAE1Q,eAAAA,CAAc,CAAE,CAAIhI,EAAU,IAAI,EAAIA,EAAU,IAAI,CAAC,EAAE,EAAK,CAAC,EAC/DsK,EAAkBD,GAAmB5M,GAGrCmX,EAAWpW,AAAAA,GACf,WAAC,OACC,IAAI,UACJ,IAAK,CAAC,EAAE9C,GAAQ,CAAC,EAAE8C,EAAM,IAAI,CAAC,A,GAI5BsW,EAAW,CAAC,CAAExJ,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAE,CAAE9W,KACtC,IAAM+W,EAAa1D,MAAM,IAAI,CAAC,CAAE,OAAQwD,CAAM,EAAG,CAACzJ,EAAG4J,IAAMA,EAAI,GACzDC,EAAaH,AAAc,WAAdA,EAAyBI,GAAkBC,GACxDC,EAAYN,AAAc,WAAdA,EAAyB,UAAY,UACvD,OAAOC,EAAW,GAAG,CAACM,AAAAA,GACpB,WAACJ,EAAAA,CAEC,MAAO,CACL,KAAMI,GAAQrX,EAAOoX,EAAY,SACnC,C,EAHK,CAAC,EAAEC,EAAK,YAAY,CAAC,EAMhC,EAEM6M,EAAe,CAACtW,EAAG,CACvBlF,cAAAA,CAAa,CACb0N,aAAAA,CAAY,CACZrF,cAAAA,CAAa,CACb2D,WAAAA,CAAU,CACV1D,WAAAA,CAAU,CACX,IACC,GAAItI,EAAe,CACjB,IAAMzM,EAAOyM,EAAc,OAAO,CAAC,CAAC,EAAEkF,EAAE,IAAI,CAAC,CAAC,EAAI,EAClD,MACE,yB,UACE,WAAC,QAAK,UAAU,c,SAAeuS,EAASvS,EAAE,IAAI,C,GAC9C,WAAC,QAAK,UAAU,qB,SACd,YAAC,QAAK,UAAU,e,UACb,IACA3R,E,OAKX,CAEA,GAAIyY,EAAY,CACd,IAAM6C,EAAe3J,EAAE,OAAO,CAAG4J,GAAmBC,GACpD,MACE,yB,UACE,WAAC,QACC,UAAU,mBACV,MAAO,CAAE,gBAAiB7J,EAAE,KAAK,AAAC,C,GAEpC,YAAC,QAAK,UAAU,c,UACd,WAAC2J,EAAAA,CAAa,MAAO,CAAE,WAAY,EAAG,YAAa,CAAE,C,GACrD,WAAC,QAAK,UAAU,e,SACbrb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE0R,EAAE,IAAI,C,QAKnB,CAEA,GAAImD,GAAiBC,EAAY,CAC/B,IAAMhR,EAAOqJ,GAAauE,EAAE,IAAI,EAC1BxB,EAAO9C,GAAasE,EAAE,IAAI,EAC1BvB,EAAY9C,GAAkBqE,EAAE,IAAI,CAAEoD,GAC5C,MACE,yB,UACE,WAAC,QACC,UAAU,mBACV,MAAO,CAAE,gBAAiBpD,EAAE,KAAK,AAAC,C,GAEpC,YAAC,QAAK,UAAW,CAAC,WAAW,EAAEvB,EAAY,WAAa,GAAG,CAAC,C,UAC1D,WAAC,OACC,IAAKrM,EACL,UAAW,CAAC,YAAY,EAAEgR,EAAa,eAAiB,GAAG,CAAC,CAC5D,IAAK5E,EACL,MAAO,CAAE,WAAY,EAAG,YAAa,CAAE,C,GAEzC,WAAC,QAAK,UAAU,e,SACbpM,C,QAKX,CAEA,GAAIoW,EACF,MACE,WAAC,QAAK,UAAU,c,SAAeiK,EAASxK,EAAgB,YAAY,CAAEjI,EAAE,IAAI,C,GAIhF,GAAImW,EAAe,CACjB,IAAMI,EAAa5Q,CAAc,CAAC3F,EAAE,IAAI,CAAC,CAAC,KAAK,CAC/C,MACE,yB,UACE,WAAC,QACC,UAAU,mBACV,MAAO,CAAE,gBAAiB2F,CAAc,CAAC3F,EAAE,IAAI,CAAC,CAAC,KAAK,AAAC,C,GAExDuW,GACC,WAAC,QAAK,UAAU,mB,SACd,WAAC,OACC,IAAKvW,EAAE,IAAI,CACX,IAAKuW,C,KAIX,WAAC,QAAK,UAAU,qB,SACd,WAAC,QAAK,UAAU,e,SACb9a,GAAauE,EAAE,IAAI,C,OAK9B,CAEA,MACE,yB,UACE,WAAC,QACC,UAAU,mBACV,MAAO,CAAE,gBAAiBA,EAAE,KAAK,AAAC,C,GAEpC,WAAC,QAAK,UAAU,qB,SACd,WAAC,QAAK,UAAU,e,SACbvE,GAAauE,EAAE,IAAI,C,OAK9B,EAEM8H,EAAYF,GAAqBxM,EAAS,QAAQ,EAExD,MACE,YAAC,OAAI,UAAU,mB,UACb,YAAC,OAAI,UAAU,e,UACb,YAAC,QAAK,UAAU,+B,UACd,WAAC,QAAK,UAAU,kB,GAChB,WAAC,OAAI,UAAU,qB,SAAsB9M,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE6nB,EAAgB,UAAY,O,MAEpEA,EACC,yB,UACE,WAAC,QAAK,UAAU,+BAA+B,MAAO,CAAE,MAAO,KAAM,E,SAAG,G,GACxE,WAAC,QAAK,UAAU,+B,SACb,CAAC,EAAE7nB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,YAAY,EAAE4Y,AAAmB,aAAnBA,EAAgC,KAAO,GAAG,CAAC,A,GAEjE,WAAC,QAAK,UAAU,+B,SACb,CAAC,EAAE5Y,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,UAAU,EAAE4Y,AAAmB,WAAnBA,EAA8B,KAAO,GAAG,CAAC,A,MAI/D,yB,UACE,WAAC,QAAK,UAAU,+B,SAAgCA,AAAmB,UAAnBA,EAA6B5Y,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,YAAc4Y,C,GAC7F,WAAC,QAAK,UAAU,+B,SAA+B,G,SAIrD,WAAC,OAAI,UAAU,gB,SACZ9J,EAAK,GAAG,CAAC,CAAC4C,EAAGhK,KACZ,GAAIgK,EAAE,OAAO,EAAKmW,GAAiB,CAACxQ,CAAc,CAAC3F,EAAE,IAAI,CAAC,CAAG,OAAO,KACpE,IAAM5P,EAAM,CAAC,EAAE4P,EAAE,IAAI,CAAC,CAAC,EAAEhK,EAAM,CAAC,CAChC,MACE,YAAC,OAEC,UAAU,e,UAEV,WAAC,QAAK,UAAU,+B,SACbsgB,EAAatW,EAAGiI,E,GAElBkO,GACC,WAAC,QAAK,UAAU,gBAAgB,MAAO,CAAE,MAAO,KAAM,E,SACnDxQ,CAAc,CAAC3F,EAAE,IAAI,CAAC,CAAC,UAAU,A,GAGtC,WAAC,QAAK,UAAU,gB,SACbmW,EAAgBnW,EAAE,QAAQ,CAAGA,CAAC,CAACkH,EAAe,A,GAEjD,WAAC,QAAK,UAAU,gB,SACbiP,EAAgBrO,EAAU,MAAM,CAAC9H,EAAE,MAAM,EAAIA,EAAE,UAAU,A,KAfvD5P,EAmBX,E,KAIR,CAEA8lB,CAAAA,GAAc,SAAS,CAAG,CACxB,UAAW3nB,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACtC,eAAgBA,KAAAA,KAAe,CAAC,CAAC,EACnC,IACA,YAAaA,KAAAA,SAAAA,CAAAA,KAAyB,CAAC,CAAC,EAC1C,GACA,aAAcA,KAAAA,KAAe,CAAC,CAC5B,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,oBAAqBA,AAAAA,KAAAA,MAAgB,AACvC,GACA,SAAUA,KAAAA,KAAe,CAAC,CACxB,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,SAAUA,AAAAA,KAAAA,MAAgB,AAC5B,GACA,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,aAAcA,KAAAA,KAAe,CAAC,CAAC,EACjC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKqgB,IC1OpB,IAAMM,GAAyB,CAAC,CAAEzb,KAAAA,EAAO,QAAQ,CAAE0b,eAAAA,CAAc,CAAE,IACjE,OAAQ1b,GACN,IAAK,SAAU,MAAQ,WAACgb,GAAWA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKU,GACxC,KAAK,YAAa,MAAQ,WAACP,GAAaA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKO,GAC7C,KAAK,SACH,OAAO,IAEX,CACF,CAEAD,CAAAA,GAAuB,SAAS,CAAG,CACjC,KAAMjoB,KAAAA,KAAe,CAAC,CAAC,SAAU,YAAa,SAAS,EACvD,eAAgBA,KAAAA,KAAe,CAAC,CAAC,GAAG,UAAU,AAChD,ECDA,IAAMmoB,GAAiB,CAAC,CACtBniB,WAAAA,EAAa,EAAK,CAClBjF,KAAAA,EAAO,CAAC,CAAC,CACTqnB,cAAAA,EAAgB,CAAC,CAAC,CAClBhZ,UAAAA,EAAY,CAAC,CAAC,CACdyQ,iBAAAA,EAAmB9c,AAAAA,GAAKA,CAAC,CACzB8G,aAAAA,EAAe,KAAO,CAAC,CACvBwe,UAAAA,CAAS,CACT1Y,cAAAA,EAAgB,EAAK,CACrB4V,YAAAA,EAAc,EAAK,CACpB,IACC,GAAM,CACJlP,aAAAA,CAAY,CACZC,eAAAA,CAAc,CACdC,eAAAA,CAAc,CACdC,YAAAA,CAAW,CACXZ,kBAAAA,CAAiB,CACjBiG,gBAAAA,CAAe,CACfC,cAAAA,CAAa,CACbxM,aAAAA,CAAY,CACZH,UAAAA,CAAS,CACT8I,aAAAA,CAAY,CACZhE,WAAAA,CAAU,CACV1L,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChBC,eAAAA,CAAc,CACdC,gBAAAA,CAAe,CACfQ,gBAAAA,CAAe,CACfC,GAAAA,CAAE,CACFmf,aAAAA,CAAY,CACZC,SAAAA,CAAQ,CACR7Y,gBAAAA,CAAe,CACfmC,mBAAAA,CAAkB,CAClBxC,QAAAA,CAAO,CACP6E,sBAAAA,CAAqB,CACrBgI,kBAAAA,CAAiB,CACjBmK,oBAAAA,CAAmB,CACnBlK,oBAAAA,CAAmB,CACnBxD,eAAAA,CAAc,CACd7Y,KAAAA,CAAI,CACJgP,YAAAA,CAAW,CACZ,CAAG/N,EAEE,CACJmlB,QAAAA,CAAO,CACPrQ,mBAAAA,CAAkB,CAClBC,0BAAAA,CAAyB,CACzBjJ,SAAAA,CAAQ,CACR,KAAM,CAAEkK,SAAAA,CAAQ,CAAE,CACnB,CAAGqR,EAEEI,EAAqBrL,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACzB,IAAM/G,GAAsB,CAC1BC,aAAAA,EAAcC,eAAAA,EAAgBC,eAAAA,EAAgBC,YAAAA,CAChD,GACA,CAACH,EAAcC,EAAgBC,EAAgBC,EAAY,EAGvDuP,EAAoB5I,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACxB,IAAMzG,GAAqB,CACzBhO,gBAAAA,EAAiBH,gBAAAA,EAAiBC,iBAAAA,EAAkBC,eAAAA,EAAgBS,gBAAAA,CACtE,GACA,CAACR,EAAiBH,EAAiBC,EAAkBC,EAAgBS,EAAgB,EAGjF8c,EAAsB7I,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAC1B,IAAO,EAAE,MAAOhB,EAAqB,UAAWjT,CAAgB,GAChE,CAACiT,EAAqBjT,EAAgB,EAGlCsG,EAAe2N,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACnB,IAAMxH,GAAgBC,EAAmBC,EAAoBC,GAC7D,CAACF,EAAmBC,EAAoBC,EAA0B,EAG9D2S,EAAqBtL,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM7Z,GAAcgM,EAAc,EAAE,EAAG,CAACA,EAAa,EAClFoZ,EAAqBvL,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM7Z,GAAc2U,GAAe,CAACA,EAAa,EAE9E,CACJpJ,KAAAA,CAAI,CAAE8Z,MAAAA,CAAK,CAAE/R,YAAAA,CAAW,CAAEtJ,MAAAA,CAAK,CAChC,CAAG8B,EACAL,EAAsBoO,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IACzBxE,GAAkBzX,OAAO,IAAI,CAAC2N,CAAI,CAAC,EAAE,EAAE,MAAM,CAAChN,AAAAA,GAAOA,AAAQ,SAARA,EAAe,CAAC,EAAE,CAC7E,CAAC8W,EAAgB9J,EAAK,EACrB2B,GAAiB,EAAE,CACnBgI,GAAiB,EAAE,AAEvB,EAAChI,GAAgBgI,GAAgBzJ,EAAoB,CAAGoO,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACtD,IAAMzE,GAAkB,CACtBtJ,UAAAA,EACA,aAAcqZ,EACd,eAAgB1Z,EAChBI,UAAAA,EACAK,aAAAA,EACAX,KAAAA,EACAoF,WAAAA,EACA,iBAAkB,GAClB,aAAc,GACdvE,gBAAAA,EACAmC,mBAAAA,EACAxC,QAAAA,EACA6E,sBAAAA,EACArH,SAAAA,EACA+J,YAAAA,EACAG,SAAAA,EACA,aAAc2R,EACd5Z,YAAAA,EACAa,cAAAA,CACF,GACA,CACEP,EACAL,EACAI,EACAK,EACAX,EACAoF,EACAvE,EACAmC,EACAxC,EACA6E,EACAuU,EACA5b,EACA+J,EACAG,EACAjI,EACAa,EACD,EAGH,IAAMiZ,GAAkBzL,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAMjE,GAAc,CAClD9J,UAAAA,EACAoB,eAAAA,GACAgI,eAAAA,GACA,aAAc3L,EAAS,IAAI,CAC3BsC,UAAAA,CACF,GAAI,CAACC,EAAWoB,GAAgBgI,GAAgB3L,EAAUsC,EAAU,EAE9D0Z,GAAqB1L,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAC1B,EACL,UAAWyL,GACXzZ,UAAAA,EACAtC,SAAAA,EACA,aAAc,CACZgP,gBAAAA,EAAiBC,cAAAA,EAAeI,kBAAAA,EAAmBC,oBAAAA,CACrD,EACA,eAAgBpN,EAChB,aAAc2Z,CAChB,GACC,CACD7M,EACAC,EACA/M,EACAI,EACAyZ,GACA1M,EACArP,EACAsP,EACD,EAED,MACE,YAAC,OACC,UAAU,gBACV,MAAOqM,E,UAEP,WAAC1C,GAAUA,CACT,kBAAmBC,EACnB,oBAAqBC,EACrB,WAAY2C,EACZ,QAASzC,EACT,WAAYlgB,EACZ,OAAQmD,EACR,MAAOrJ,EACP,aAAc+J,EACd,cAAe+E,GAAuBga,GAAgB,IAAI,CAAE9Z,EAAaxB,EAAOyB,IAC3E6H,EACL,oBAAqByP,C,GAEvB,YAAC,OACC,UAAU,qBACV,aAAYlX,EACZ,iBAAgBmZ,EAChB,gBAAezb,EAAS,IAAI,CAC5B,YAAW0b,E,UAEX,WAACF,EAAAA,CACC,WAAYriB,EACZ,UAAW4iB,GACX,KAAM7nB,EACN,UAAWqnB,EACX,iBAAkBvI,EAClB,aAAchW,EACd,eAAgBkF,EAChB,YAAawW,C,GAEf,WD/LO0C,GC+LgBA,CACrB,KAAMM,EACN,eAAgBM,E,QAK1B,CAEAV,CAAAA,GAAe,SAAS,CAAG,CACzB,WAAYnoB,AAAAA,KAAAA,IAAc,CAC1B,KAAMA,KAAAA,KAAe,CAAC,CACpB,aAAcA,AAAAA,KAAAA,MAAgB,CAC9B,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,YAAaA,AAAAA,KAAAA,MAAgB,CAC7B,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,KAAAA,SAAmB,CAAC,CACjCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EAED,aAAcA,AAAAA,KAAAA,MAAgB,CAC9B,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,aAAcA,AAAAA,KAAAA,MAAgB,CAC9B,WAAYA,KAAAA,SAAmB,CAAC,CAC9BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,iBAAkBA,AAAAA,KAAAA,MAAgB,CAClC,eAAgBA,KAAAA,SAAmB,CAAC,CAClCA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,GAAIA,AAAAA,KAAAA,MAAgB,CACpB,aAAcA,AAAAA,KAAAA,MAAgB,CAC9B,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,cAAeA,AAAAA,KAAAA,MAAgB,CAC/B,yBAA0BA,AAAAA,KAAAA,MAAgB,CAC1C,uBAAwBA,AAAAA,KAAAA,MAAgB,CACxC,iBAAkBA,AAAAA,KAAAA,MAAgB,CAClC,mBAAoBA,AAAAA,KAAAA,MAAgB,CACpC,QAASA,AAAAA,KAAAA,MAAgB,CACzB,sBAAuBA,AAAAA,KAAAA,MAAgB,CACvC,kBAAmBA,AAAAA,KAAAA,MAAgB,CACnC,oBAAqBA,AAAAA,KAAAA,MAAgB,CACrC,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,oBAAqBA,AAAAA,KAAAA,MAAgB,CACrC,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,YAAaA,KAAAA,SAAmB,CAAC,CAC/BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,GACA,cAAeA,KAAAA,KAAe,CAAC,CAC7B,QAASA,KAAAA,KAAe,CAAC,CAAC,GAC1B,mBAAoBA,AAAAA,KAAAA,MAAgB,CACpC,0BAA2BA,AAAAA,KAAAA,MAAgB,CAC3C,SAAUA,KAAAA,KAAe,CAAC,CACxB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,WAAYA,AAAAA,KAAAA,MAAgB,AAC9B,GACA,KAAMA,KAAAA,KAAe,CAAC,CACpB,SAAUA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,GAC/C,EACF,GACA,UAAWA,KAAAA,KAAe,CAAC,CACzB,KAAMA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IACzC,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,YAAaA,AAAAA,KAAAA,MAAgB,CAC7B,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,GACA,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,iBAAkBA,AAAAA,KAAAA,IAAc,CAChC,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,UAAWA,AAAAA,KAAAA,WAAAA,CAAAA,UAAgC,CAC3C,YAAaA,AAAAA,KAAAA,IAAc,AAC7B,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK6gB,ICvSpB,IAAMW,GAAiB1oB,AAAAA,IACrB,GAAM,CACJW,KAAAA,CAAI,CACJgoB,aAAAA,CAAY,CACZ/iB,WAAAA,CAAU,CACV6D,aAAAA,CAAY,CACb,CAAGzJ,EACE,CACJ+O,UAAAA,CAAS,CACT4O,OAAAA,CAAM,CACNiL,cAAAA,CAAa,CACbla,YAAAA,CAAW,CACXhP,KAAAA,CAAI,CACJoe,MAAAA,CAAK,CACN,CAAGnd,EACEkoB,EAAY9L,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAM4L,EAAahoB,GAAO,CAACA,EAAMgoB,EAAa,EAClE,CACJG,kBAAAA,CAAiB,CACjB9Z,UAAAA,CAAS,CACT+X,aAAAA,CAAY,CACZ,SAAU,CAAEgC,IAAAA,CAAG,CAAE,KAAMtZ,CAAY,CAAE,CACrCuZ,iBAAAA,CAAgB,CACjB,CAAGH,EAEEZ,EAAYlL,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,KAExB,IAAMkM,EAAiBla,GAAcU,EAAa,UAAU,CAAC,aAAezD,EAAoB,CAACyD,EAAa,CAAC,SAAS,CAAC,IAAI,CACvHrD,EAAO6c,EAAe,MAAM,CAAC,GAAG,WAAW,GAAKA,EAAe,KAAK,CAAC,GAC3E,OAAOA,EAAiBC,EAAU,CAAC9c,EAAK,CAAG8c,EAC7C,EAAG,CAACna,EAAWU,EAAa,EAEtB0Z,EAAOpM,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,KACnB,GAAI6L,AAAkB3Y,KAAAA,IAAlB2Y,EAA6B,CAE/B,IAAMQ,EAAa,AAAyB,UAAzB,OAAOR,EAA6BA,EAAc,WAAW,GAAKA,EAAc,QAAQ,GAAG,WAAW,GACzH,GAAIA,AAAkB,iBAAlBA,GAAoCA,AAAkB,gBAAlBA,EACtC,MAAO,CAAC,EAAEG,EAAI,CAAC,EAAEK,EAAW,CAAC,AAEjC,MAAO,GAAI1a,AAAgBuB,KAAAA,IAAhBvB,GAA6B3E,AAA8B,IAA9BA,SAAS2E,EAAa,IAC5D,MAAO,CAAC,EAAEqa,EAAI,CAAC,EAAEra,EAAY,CAAC,CAEhC,OAAOqa,CACT,EAAG,CAACH,EAAeG,EAAKra,EAAY,EAE9BqK,EAAagE,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IACzB,AAAsB9M,KAAAA,IAAlB2Y,GAGAla,AAAgBuB,KAAAA,IAAhBvB,GAA6B3E,AAA8B,IAA9BA,SAAS2E,EAAa,IAF9Csa,CAAgB,CAACG,EAAK,CAKxBna,EACN,CAAC4Z,EAAe5Z,EAAWga,EAAkBG,EAAMza,EAAY,EAE5D2a,EAAyBtM,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IACrC,EAAKhE,GACD,CAACA,GAAeA,EAAAA,IAAeA,EAAW,IAAI,GAD1B,GAGvB,CAACA,EAAW,SAEf,AAAKkP,EAIDa,EAEA,WAACrC,GAAgBA,CACf,UAAW1X,EACX,OAAQ4O,EACR,cAAe,GACf,MAAOG,C,GAKTuL,EAEA,WNtCSvC,GMsCEA,CACT,KAAMnmB,EACN,aAAcomB,EACd,WAAYnhB,EACZ,KAAMlG,EACN,aAAc+J,C,GAMlB,WAACse,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACT/nB,GAAAA,CACJ,cAAe6oB,EACf,UAAW9P,EACX,UAAWkP,C,IA/BN,WAAC,O,SAAI,2B,EAkChB,CAEAS,CAAAA,GAAe,SAAS,CAAG,CACzB,KAAM9oB,KAAAA,KAAe,CAAC,CACpB,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,cAAeA,AAAAA,KAAAA,MAAgB,CAC/B,MAAOA,KAAAA,SAAmB,CAAC,CACzBA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,EACD,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,YAAaA,KAAAA,SAAmB,CAAC,CAC/BA,AAAAA,KAAAA,MAAgB,CAChBA,AAAAA,KAAAA,MAAgB,CACjB,CACH,GACA,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,WAAYA,AAAAA,KAAAA,IAAc,AAC5B,EAEA8oB,GAAe,YAAY,CAAG,CAC5B,KAAM,CAAC,EACP,aAAc/lB,AAAAA,GAAKA,EACnB,aAAcA,AAAAA,GAAKA,EACnB,WAAY,EACd,EAEA,OAAeuE,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKwhB,IC/HpB,GAAe,CACb,UAAWA,GACXte,YAAWA,GACXC,QCVqB,CACrB,OAAQ,IACR,SAAU3C,GACV,MAAO,GACT,EDOE,SAAUA,EACZ,E,kD3JbA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAa,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,sRACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAiB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAClF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,48BACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,oIACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAY,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC7E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,+KACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAK,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACtE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,oeACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAqB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACtF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,4eACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAc,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kaACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAO,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,s/CACL,KCRA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAoB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACrF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2RACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAoB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACrF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,uZACL,KCRA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAA0B,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3F,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,uRACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAc,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2YACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAI,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAC,GAAqB,GAAM,aAAa,CAAC,MAAO,GAAS,CACjF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,sbACH,SAAU,SACZ,IAAK,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,EAAG,w/CACH,SAAU,SACZ,KCdA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAe,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8SACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAe,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8kBACH,SAAU,SACZ,K+I+Ha4hB,GAAuB,CAACC,EAAW9c,KAC9C,GAAM,CACJ,KAAM+c,EAAQ,EAAE,CAChB9pB,KAAAA,CAAI,CACJ+pB,SAAAA,CAAQ,CACRC,KAAAA,CAAI,CACJtV,MAAAA,CAAK,CACN,CAAG3H,EAaJ,GAAI/M,EACF,OAAOA,EAIT,GAAI+pB,EACF,OAAOA,EAIT,GAAIC,EACF,OAAOA,EAIT,GAAI,CAAC,mBAAoB,gBAAiB,kBAAmB,gBAAiB,mBAAoB,eAAgB,iBAAiB,CAAC,OAAO,CAACF,GAAS,GACnJ,MAAOG,AA3BgB,EACvB,iBAAkB,OAClB,cAAe,QACf,gBAAiB,UACjB,cAAe,QACf,iBAAkB,OAClB,aAAc,OACd,eAAgB,oBAClB,EAmByB,CAACH,EAAM,CAIhC,GAAIA,AAAU,iBAAVA,EAA0B,CAC5B,IAAMI,EAAS7f,SAASqK,EAAO,IACzByV,EAAmB/oB,OAAO,MAAM,CAACyoB,GAAW,IAAI,CAACO,AAAAA,GAAKA,EAAE,KAAK,GAAMF,AAAAA,CAAAA,EAAS,GAAG,QAAQ,IAE7F,GAAIC,GAAoBA,AAA0B,iBAA1BA,EAAiB,IAAI,CAC3C,OAAOA,EAAiB,IAAI,CAAC,OAAO,CAAC,iBAAkB,GAE3D,CAGA,IAAME,EAAYP,EAAM,OAAO,CAAC,WAAY,IAC5C,OAAOO,EAAU,MAAM,CAAC,GAAG,WAAW,GAAKA,EAAU,KAAK,CAAC,EAC7D,EAQaC,GAAuB5d,AAAAA,IAClC,OAAQA,GACN,IAAK,mBACH,MAAO,CACL,IAAK,WAAC6d,GAAcA,CAAAA,EACtB,CACF,KAAK,mBACL,IAAK,yBACL,IAAK,sBACL,IAAK,oBACL,IAAK,+BACL,IAAK,mCACH,MAAO,CACL,IAAK,WAACC,GAAkBA,CAAAA,EAC1B,CACF,KAAK,eAYL,IAAK,mBAIL,IAAK,iBACL,IAAK,iBAiBL,IAAK,eAQL,IAAK,kBAyCL,QAlFE,MAAO,CACL,IAAK,WAACC,GAAoBA,CAAAA,EAC5B,CACF,KAAK,mBA0BL,IAAK,gBAzBH,MAAO,CACL,IAAK,WAACC,GAAaA,CAAAA,EACrB,CACF,KAAK,gBACH,MAAO,CACL,IAAK,WAACC,GAAMA,CAAAA,EACd,CAUF,KAAK,iBACL,IAAK,kBACH,MAAO,CACL,IAAK,WAACC,GAAsBA,CAAAA,EAC9B,CACF,KAAK,gBACH,MAAO,CACL,IAAK,WAACC,GAAeA,CAAAA,EACvB,CASF,KAAK,mBACH,MAAO,CACL,IAAK,WAACC,GAAQA,CAAAA,EAChB,CAKF,KAAK,kBACH,MAAO,CACL,IAAK,WAACC,GAAqBA,CAAAA,EAC7B,CACF,KAAK,6BACL,IAAK,qBAQL,IAAK,qBAPH,MAAO,CACL,IAAK,WAACC,GAAqBA,CAAAA,EAC7B,CACF,KAAK,iBACH,MAAO,CACL,IAAK,WAAC9P,GAAcA,CAAAA,EACtB,CAKF,KAAK,yBACH,MAAO,CACL,IAAK,WAAC+P,GAA2BA,CAAAA,EACnC,CACF,KAAK,mBACH,MAAO,CACL,IAAK,WAACC,GAAeA,CAAAA,EACvB,CACF,KAAK,oBACH,MAAO,CACL,IAAK,WAACC,GAAiBA,CAAAA,EACzB,CACF,KAAK,yBACH,MAAO,CACL,IAAK,WAACC,GAAgBA,CAAAA,EACxB,CACF,KAAK,iBACH,MAAO,CACL,IAAK,WAACC,GAAgBA,CAAAA,EACxB,CAKJ,CACF,E,6BC1SA,IAAMC,GAAwB,CAAC,CAAEC,YAAAA,EAAc,CAAC,CAAE,GAAK,WAAC,O,SAAK,CAAC,EAAEA,EAAY,QAAQ,CAAC,A,EAErFD,CAAAA,GAAsB,SAAS,CAAG,CAChC,YAAaprB,AAAAA,KAAAA,MAAgB,AAC/B,ECFA,IAAMsrB,GAAa,CAAC,CAClBC,QAAAA,EAAU,EAAE,CACZC,mBAAAA,EAAqB,IAAI,CACzBC,SAAAA,EAAW,CAAE,QAAS,IAAK,CAAC,CAC5BC,SAAAA,CAAQ,CACRC,oBAAAA,EAAsB5oB,AAAAA,GAAKA,CAAC,CAC5BiD,WAAAA,EAAa,EAAK,CAClB4lB,gBAAAA,EAAkB,EAAE,CACrB,IACC5qB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI0qB,EAAU,CACZ,IAAMjnB,EAAUgnB,EAAS,OAAO,CAEhC,OADAhnB,EAAQ,gBAAgB,CAAC,SAAUinB,EAAU,CAAE,QAAS,EAAK,GACtD,KACLjnB,EAAQ,mBAAmB,CAAC,SAAUinB,EAAU,CAAE,QAAS,EAAK,EAClE,CACF,CACF,EAAG,CAACD,EAAUC,EAAS,EAEvB,IAAMG,EAAaL,GDfNJ,GCiBb,MACE,WAAC,OAAI,IAAKK,EAAU,UAAW,CAAC,yBAAyB,EAAEC,EAAW,aAAe,GAAG,CAAC,C,SACtFH,EAAQ,GAAG,CAAC,CAAC1Y,EAAQwY,IACpB,WAACQ,EAAAA,CAEC,YAAaR,EACb,WAAYxY,EACZ,cAAe+Y,EACf,oBAAqBD,EACrB,WAAY3lB,C,EALPqlB,EAAY,QAAQ,I,EAUnC,EAEMS,GAAqBxkB,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAKgkB,IAEhC,OAAeS,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAW,CAAC3rB,EAAOihB,IAChC,WAACyK,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACC,SAAUzK,C,EACNjhB,IAIRkrB,CAAAA,GAAW,SAAS,CAAG,CACrB,QAAStrB,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IAC5C,mBAAoBA,AAAAA,KAAAA,WAAqB,CACzC,SAAUA,KAAAA,SAAmB,CAAC,CAACA,AAAAA,KAAAA,IAAc,CAAEA,KAAAA,KAAe,CAAC,CAAE,QAASA,KAAAA,UAAoB,CAACgsB,QAAS,GAAG,EAC3G,SAAUhsB,AAAAA,KAAAA,IAAc,CACxB,oBAAqBA,AAAAA,KAAAA,IAAc,CACnC,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,gBAAiBA,KAAAA,KAAe,CAAC,EAAE,CACrC,ECvDA,IAAMisB,GAA2B,CAAC,CAAEC,SAAAA,EAAW,CAAC,CAAE7pB,MAAAA,EAAQ,CAAC,CAAC,CAAE,GAE1D,WAAC,OAAI,MAAOA,EAAO,UAAU,4B,SAC3B,WAAC,OAAI,UAAU,mB,SACb,WAAC,QAAK,UAAU,wB,SAAyB6pB,EAAW,C,MAM5DD,CAAAA,GAAyB,SAAS,CAAG,CACnC,SAAUjsB,AAAAA,KAAAA,MAAgB,CAC1B,MAAOA,KAAAA,KAAe,CAAC,CAAC,EAC1B,ECbA,OAF4B,IAAM,WAAC,UCSnC,IAAMmsB,GAAY,IAAM,GAElBC,GAAmB,IAAM,GAEzBC,GAAY,CAAC,CACjBC,aAAAA,EAAe,IAAI,CACnBf,QAAAA,EAAU,EAAE,CACZgB,cAAAA,EAAgB,CAAC,CAAC,CAClBC,kBAAAA,EAAoB,IAAI,CACxBC,aAAAA,EAAe,EAAE,CACjBC,WAAAA,EAAa,CAAC,CACdC,UAAAA,EAAY,CAAC,CACbnB,mBAAAA,EAAqB,IAAI,CACzB7F,SAAAA,EAAW,CAAC,CAAC,CACbiH,SAAAA,EAAW,CAAC,CACZjB,oBAAAA,EAAsB5oB,AAAAA,GAAKA,CAAC,CAC5B8pB,WAAAA,CAAU,CACVC,cAAAA,EAAgB,CAAC,CAAC,CAClB9mB,WAAAA,EAAa,EAAK,CAClB4lB,gBAAAA,EAAkB,EAAE,CACrB,IACC,IAAMmB,EAAYrsB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACZssB,EAAUtsB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACVusB,EAAgBvsB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IAEhBwsB,EAAgBxsB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IAChBysB,EAAczsB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IAEd0sB,EAAYZ,GFpBLP,GEqBPtO,EAAQ4N,AAAAA,CAAAA,EAAQ,MAAM,CAAG,EAAIe,EAAee,EAAkB,GAAMA,GAGpE3B,EAAWnhB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY9M,AAAAA,IAC3B,GAAM,CAAE8e,EAAAA,CAAC,CAAEC,EAAAA,CAAC,CAAE,CAAG/e,EAAE,MAAM,AACrBuvB,CAAAA,EAAQ,OAAO,EACjBA,EAAQ,OAAO,CAAC,QAAQ,CAAC,CACvB,WAAYzQ,EACZ,UAAWC,CACb,GAEE2Q,EAAY,OAAO,EACrBA,EAAY,OAAO,CAAC,QAAQ,CAAC,CAC3B,UAAW3Q,CACb,GAEFuQ,EAAU,OAAO,CAAC,SAAS,CAAC,WAAW,CAACxQ,EAAGC,EAAG,CAC5C,iBAAkB,EACpB,GACA0Q,EAAc,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAG1Q,EAAG,CAChD,iBAAkB,EACpB,GACIyQ,EAAc,OAAO,EAAIxvB,AAAa,WAAbA,EAAE,MAAM,EACnCwvB,EAAc,OAAO,CAAC,QAAQ,CAAC1Q,EAAGC,EAEtC,EAAG,EAAE,EAELxb,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMyG,EAAQqlB,EAAc,GAAG,CAAGA,EAAc,KAAK,CAAG,EACxDE,EAAQ,OAAO,CAAC,qBAAqB,CAACvlB,GACtC0lB,EAAY,OAAO,CAAC,qBAAqB,CAAC1lB,EAC5C,EAAG,CAACqlB,EAAeD,EAAW,EAG9B,IAAMS,EAAqB/iB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY9M,AAAAA,IACrC,GAAM,CAAE8vB,WAAAA,CAAU,CAAE,CAAG9vB,EAAE,MAAM,CAC/BiuB,EAAS,CACP,OAAQ,CACN,EAAG6B,CACL,EACA,OAAQ,QACV,EACF,EAAG,CAAC7B,EAAS,EAGP8B,EAAejjB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY9M,AAAAA,IAC/B,GAAM,CAAE+e,EAAAA,CAAC,CAAE,CAAG/e,EAAE,MAAM,CACtByvB,EAAc,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAG1Q,GAC/CuQ,EAAU,OAAO,CAAC,SAAS,CAAC,WAAW,CAACA,EAAU,OAAO,CAAC,SAAS,CAAC,UAAU,CAAEvQ,EAClF,EAAG,EAAE,EAECiR,EAAcljB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY8gB,AAAAA,GAAgBE,AAAmB,IAAnBA,EAAQ,MAAM,CAAS,IAAMphB,SAASohB,CAAO,CAACF,EAAY,CAAC,KAAK,CAAE,KAAO,IAAM,CAACE,EAAQ,EAClImC,EAAmBnjB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY8gB,AAAAA,GAAeoB,CAAY,CAACpB,EAAY,CAAC,KAAK,EAAI,IAAK,CAACoB,EAAa,EAEpGkB,EAAqBf,EAAWT,KAAeC,KAE/CwB,EAAgBzQ,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACpB,IAAMsP,EAAa,MAAM,CAAC,CAACvO,EAAO2P,EAAGxC,IAAgBnN,EAAQwP,EAAiBrC,GAAc,GAC5F,CAACoB,EAAciB,EAAiB,EAG5BI,EAAY3Q,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EAC/B,KAAMyQ,EACN,OAAQ,OACR,MAAO,CAAC,YAAY,EAAEA,EAAc,GAAG,CAAC,AAC1C,GAAI,CAACA,EAAc,EAEbG,EAAkB5Q,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EAAE,KAAMyQ,EAAe,OAAQD,CAAiB,GAAI,CAACC,EAAeD,EAAiB,EAE5H,MACE,yB,UACE,YAAC,OAAI,UAAU,uB,UACb,WAACrC,GAAUA,CACT,mBAAoBE,EACpB,QAASiB,EACT,oBAAqBd,EACrB,WAAY3lB,EACZ,gBAAiB4lB,C,GAEnB,WAACN,GAAUA,CACT,IAAK2B,EACL,SAAUK,EACV,mBAAoB9B,EACpB,QAASD,EACT,oBAAqBI,EACrB,WAAY3lB,EACZ,gBAAiB4lB,C,MAGrB,YAAC,OAAI,UAAU,c,UACb,WAACoC,KAASA,CACR,IAAKd,EACL,QAAS,EACT,aAAc,GACd,eAAgB,GAChB,iBAAkB,GAClB,oBAAqB,GACrB,SAAUM,EACV,UAAU,oB,SAEV,WAACS,GAAAA,EAAIA,CAAAA,CACH,IAAKd,EACL,UAAU,cACV,YAAaV,EAAa,MAAM,CAChC,YAAaiB,EACb,OAAQhB,EACR,SAAUH,EACV,SAAUK,EACV,UAAWT,GACX,MAAOyB,EACP,mBAAoBzB,G,SAEnBiB,C,KAGL,WAAC,OACC,UAAU,cACV,MAAOU,E,SAEP,WAACE,KAASA,CACR,IAAKjB,EACL,QAAS,GACT,aAAc,GACd,eAAgB,GAChB,iBAAkB,GAClB,oBAAqB,GACrB,SAAUrB,EACV,UAAW,GACX,YAAajuB,AAAAA,IACXA,EAAE,cAAc,GAChBA,EAAE,eAAe,EACnB,E,SAEA,WAACwwB,GAAAA,EAAIA,CAAAA,CACH,UAAU,eACV,IAAKjB,EACL,YAAazB,EAAQ,MAAM,EAAI,EAC/B,YAAakC,EACb,OAAQf,EACR,SAAU/G,EACV,SAAUiH,EACV,QAASrB,EACT,UAAWY,GACX,MAAOQ,E,SAENhP,C,OAIN8O,EAAa,MAAM,CAAG,GACvB,WAAC,QACC,UAAU,gBACV,MAAOsB,C,QAMjB,CAEA1B,CAAAA,GAAU,SAAS,CAAG,CACpB,aAAcrsB,AAAAA,KAAAA,WAAqB,CACnC,QAASA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACzC,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,IACA,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,kBAAmBA,AAAAA,KAAAA,WAAqB,CACxC,aAAcA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAC9C,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,IACA,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,mBAAoBA,AAAAA,KAAAA,WAAqB,CACzC,SAAUA,KAAAA,KAAe,CAAC,CAAC,GAC3B,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,oBAAqBA,AAAAA,KAAAA,IAAc,CACnC,WAAYA,AAAAA,KAAAA,MAAAA,CAAAA,UAA2B,CACvC,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,cAAeA,KAAAA,KAAe,CAAC,CAC7B,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,GACA,gBAAiBA,KAAAA,KAAe,CAAC,EAAE,CACrC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK+kB,InJjOpB,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAA0B,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3F,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,uKACH,SAAU,SACZ,K,6BoJFA,IAAM6B,GAAiB,CAAC,CACtB,WAAY,CACV/E,IAAAA,CAAG,CACHrpB,KAAAA,CAAI,CACJ0M,KAAAA,CAAI,CACJ0R,MAAAA,CAAK,CACN,CAAG,CAAC,CAAC,CACNmN,YAAAA,EAAc,CAAC,CACfM,oBAAAA,EAAsB5oB,AAAAA,GAAKA,CAAC,CAC5BiD,WAAAA,EAAa,EAAK,CAClBmoB,cAAAA,EAAgB,EAAE,CACnB,IACC,GAAM,CAACnO,EAAeC,EAAiB,CAAGvd,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC7C,CAACwd,EAAOC,EAAS,CAAGzd,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GAC7B,CAAC0rB,EAAaC,EAAgB,CAAG3rB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAE1C4H,EAAcC,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY9M,AAAAA,IAC9B0iB,EAAS9a,SAAS,aAAa,CAAC,sBAAsB,YAAY,CAAC,cAAgB,GAC/E,CAAC2a,IACHviB,EAAE,cAAc,GAChBA,EAAE,eAAe,GAErB,EAAG,CAACuiB,EAAc,EAEZkB,EAAgB3W,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,KAChC0V,EAAiB,GACnB,EAAG,EAAE,EAECqO,EAAW/jB,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAYgkB,KAAS,CAAC9wB,EAAG2jB,EAAWC,EAAK5P,KACxDka,EAAoBxC,EAAKjL,EAAQzM,EAAE,KAAK,CAAE4Z,EAC5C,EAAG,IAAK,CAAClC,EAAKwC,EAAqBN,EAAY,EAEzClK,EAAe5W,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAAC9M,EAAG2jB,EAAWC,EAAK5P,KACnDka,EAAoBxC,EAAKjL,EAAQzM,EAAE,KAAK,CAAE4Z,EAAa,IACvD5tB,EAAE,eAAe,GACjBwiB,EAAiB,GACnB,EAAG,CAAC0L,EAAqBxC,EAAKkC,EAAY,EAEpC5K,EAAetD,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAO,EAAE,MAAOhT,SAAS+T,EAAO,KAAO,IAAK,OAAQ,EAAG,IAE9E,CAAE,OAAQsQ,CAAU,CAAE,MAAOC,CAAS,CAAEC,IAAAA,CAAG,CAAE,CAAGtE,GAAqB5d,GAE3ExL,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJmtB,EAAc,QAAQ,CAAChF,IACzBkF,EAAgB,GAEpB,EAAG,CAAClF,EAAI,EAER,IAAMwF,EACJ,YAAC,OAAI,WAAUxF,EAAK,UAAU,0B,UAC5B,YAAC,OAAI,UAAU,+B,UACZA,GACD,WAAC,QACC,MAAO,CAAE,OAAQqF,EAAY,MAAOC,EAAW,YAAa,CAAE,E,SAE7DC,C,GAGH,WAAC,OAAI,UAAU,wB,SACb,WAAC,OACC,UAAU,gC,SAET5uB,C,QAKLsuB,GACE,WAAC,OAAI,UAAU,yB,SACb,WAACQ,GAA2BA,CAAAA,E,aAOtC,AAAK5oB,EAaH,WAACkc,GAAAA,SAASA,CAAAA,CACR,UAAU,mCACV,UAAS,GACT,OAAQiH,EAAAA,GAAM,CAAE,MAAO,EAAK,EAC5B,mBAAmB,yBACnB,MAAOjJ,EACP,KAAMO,EACN,YAAanW,EACb,cAAe4W,EACf,SAAUoN,EACV,aAAcnN,E,SAEbwN,C,GAvBD,WAAC,OACC,UAAU,mBACV,GAAI,CAAC,IAAI,EAAExF,EAAI,CAAC,CAChB,MAAO1I,E,SAENkO,C,EAqBT,CAEAT,CAAAA,GAAe,SAAS,CAAG,CACzB,WAAYluB,KAAAA,KAAe,CAAC,CAC1B,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,GACA,YAAaA,AAAAA,KAAAA,MAAgB,CAC7B,oBAAqBA,AAAAA,KAAAA,IAAc,CACnC,WAAYA,AAAAA,KAAAA,IAAc,CAC1B,cAAeA,KAAAA,KAAe,CAAC,EAAE,CACnC,EAEA,OAAesH,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK4mB,I,mEClGpB,GA3Ba,AAAC,I,GAAA,CACZW,WAAAA,CAAU,CAAEC,YAAAA,CAAW,CAAEC,eAAAA,CAAc,CACxC,GAD6C3uB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAA5CyuB,aAAYC,cAAaC,iB,EAEzB,GAAID,EAEF,MACE,WAFcA,EAEbE,CAAQ,IAAKD,E,SACZ,WAAC,kBAAQ3uB,G,GAIf,GAAIA,EAAM,uBAAuB,EAAIA,EAAM,uBAAuB,CAAC,MAAM,EAAI,CAACyuB,EAC5E,GAAI,CAKFzuB,EAAM,uBAAuB,CAAC,MAAM,CAAG6uB,KAAAA,QAAkB,CAAC7uB,EAAM,uBAAuB,CAAC,MAAM,CAJlE,CAC1B,SAAU,CAAC,SAAS,AACtB,EAGF,CAAE,MAAO3C,EAAG,CACVob,QAAQ,KAAK,CAACpb,EAChB,CAEF,MACE,WAAC,kBAAQ2C,GAEb,E,yBCxBA,GAFaA,AAAAA,GAAS,WAAC,kBAAQA,ICI/B,IAAM8uB,GAAoBC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO,AAAC,I,GAAA,CAAE/N,UAAAA,CAAS,CAAY,GAAPhhB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAdghB,Y,QAA0B,WAACgO,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKhvB,G,EAAU,CAAC;;kBAEjE,EAAE,CAAC,CAAEghB,UAAAA,CAAS,CAAE,GAAKA,EAAU,CAAC,CAAC,AAEnD8N,CAAAA,GAAkB,SAAS,CAAG,CAC5B,UAAWlvB,AAAAA,KAAAA,MAAgB,AAC7B,EAEAkvB,GAAkB,YAAY,CAAG,CAC/B,UAAW,QACb,E,6BChBO,IAAMG,GAAa,CACxB,MAAO,QACP,OAAQ,SACR,QAAS,UACT,UAAW,YACX,SAAU,WACV,MAAO,QACP,SAAU,UACZ,EAEaC,GAAiB,CAC5B,OAAQ,SACR,MAAO,QACP,MAAO,OACT,EAEaC,GAAyB,CACpC,eACA,SACA,eACA,SACD,CAmDYC,GAAU,CACrB,GAAI,YACJ,GAAI,WACJ,GAAI,SACJ,QAAS,mBACT,QAAS,kBACT,QAAS,iBACT,QAAS,mBACT,QAAS,wBACT,QAAS,mBACT,QAAS,WACT,GAAI,cACJ,GAAI,UACJ,GAAI,SACJ,GAAI,aACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,IAAK,0BACL,WAAY,gCACZ,QAAS,kBACT,QAAS,sBACT,QAAS,mBACT,GAAI,UACJ,GAAI,WACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,QAAS,kBACT,QAAS,sBACT,QAAS,mBACT,QAAS,oBACT,QAAS,mBACT,QAAS,wBACT,QAAS,2BACT,GAAI,0BACJ,GAAI,YACJ,GAAI,WACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,QAAS,kBACT,QAAS,uBACT,GAAI,UACJ,GAAI,WACJ,GAAI,WACJ,GAAI,SACJ,QAAS,mBACT,QAAS,uBACT,GAAI,QACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,YACJ,GAAI,YACJ,GAAI,aACJ,GAAI,UACJ,GAAI,WACJ,GAAI,WACJ,GAAI,UACJ,GAAI,SACJ,IAAK,UACL,WAAY,uBACZ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,UACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,aACJ,QAAS,QACT,GAAI,QACJ,GAAI,YACJ,GAAI,YACJ,GAAI,kBACJ,GAAI,QACJ,GAAI,UACJ,GAAI,YACJ,GAAI,cACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,sBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,SACJ,GAAI,aACJ,QAAS,sBACT,WAAY,SACZ,QAAS,kBACT,GAAI,WACJ,GAAI,UACJ,GAAI,kBACJ,GAAI,UACJ,UAAW,mBACX,GAAI,SACJ,GAAI,YACJ,GAAI,SACJ,GAAI,YACJ,GAAI,UACJ,QAAS,+BACT,QAAS,0BACT,GAAI,UACJ,GAAI,UACJ,QAAS,wBACT,GAAI,QACJ,IAAK,WACL,GAAI,QACJ,GAAI,SACJ,IAAK,0BACL,GAAI,OACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,OACJ,QAAS,iBACT,GAAI,QACJ,UAAW,cACX,GAAI,aACJ,GAAI,QACJ,GAAI,iBACJ,GAAI,SACN,EC/LaC,GAAS,IACb,CAAC,CAACC,EAAAA,CAAMA,CAAC,OAAO,CAGZC,GAAW,IACf,GAGIC,GAAY,IAChB,CAAED,CAAAA,MAAcF,IAAO,ECNT,AAAItrB,OAAO,eACZ,AAAIA,OAAO,iBACX,AAAIA,OAAO,cAE1B,IAAM0rB,GAAe,CAACC,EAAO,EAAE,GAC7BF,KAAcX,KAAAA,QAAkB,CAACa,EAAM,CAAE,SAAU,CAAC,SAAS,AAAC,GAAKC,KAAaD,GAQlF,SAASxS,GAAQ1P,CAAK,EAC3B,OAAOA,MAAAA,GAAyCA,AAAiB,IAAjBA,EAAM,MAAM,AAC9D,CAEA,IAAMoiB,GAAWC,AAAAA,IACf,IAAMC,EAAS/lB,SAAS8lB,EAAO,IAC/B,OAAOjiB,OAAO,KAAK,CAACkiB,GAAUD,EAASC,EAAS,CAClD,EASaC,GAAmBC,AAAAA,IAE9B,IAAMC,EAAkBD,GAAUZ,EAAO,CAACY,EAAO,CAAGA,EAAS,KAE7DE,KAAAA,MAAa,CAACD,EAChB,EAmEO,SAASE,GAAgBnwB,CAAK,EACnC,OAAOA,GAASA,EAAM,MAAM,CAAGowB,AAjE1B,SAA2BpwB,CAAK,EACrC,GAAM,CACJ,OAAQ,CACN,KAAMqwB,CAAU,CAChB,MAAOC,CAAW,CAClB,IAAKC,CAAS,CACd,KAAMC,CAAU,CAChB,IAAKC,CAAY,CACjB,KAAMC,CAAU,CAChB,IAAKC,CAAY,CAClB,CAAG,CAAC,CAAC,CACNC,SAAAA,CAAQ,CACRC,WAAAA,CAAU,CACVC,aAAAA,CAAY,CACZC,wBAAAA,CAAuB,CACvBf,OAAAA,CAAM,CACNgB,SAAAA,CAAQ,CACT,CAAGhxB,EAECgxB,EAGHA,IAFAjB,GAAiBC,GAKnB,IAAMH,EAAQD,GAASU,GACjBW,EAAOZ,GAAcC,GAAeC,EAAY,CAAC,EAAEF,EAAW,CAAC,EAAEC,EAAY,CAAC,EAAEC,EAAU,CAAC,CAAG,GAC9FW,EAAWD,GAAQT,AAAevgB,KAAAA,IAAfugB,GAA4BA,AAAe,KAAfA,GAAqBC,AAAiBxgB,KAAAA,IAAjBwgB,GAA8BA,AAAiB,KAAjBA,GAAuB,CAACG,EAAW,CAAC,EAAEK,EAAK,CAAC,EAAET,EAAW,CAAC,EAAEC,EAAa,IAAI,EAAEC,GAAc,GAAG,CAAC,CAAGO,EAEtME,EAActB,IAAUS,EAAc,OAAS,KAC/Cc,EAAeF,IAAaD,EAAO,CAAC,KAAK,EAAEE,EAAY,GAAG,CAAC,CAAG,CAAC,KAAK,EAAEA,EAAY,aAAa,CAAC,CAEhGE,EAAuBH,IAAaD,EAAOJ,EAAW,OAAO,CAAC,sBAAuB,IAAI,IAAI,GAAKA,EAEpGS,EAAapB,KAAOgB,EAAUE,EAE9B,EAACE,EAAW,OAAO,IACrBA,CAAAA,EAAapB,KAAOgB,EAAQ,EAG1BH,IAMFO,EAAapB,KAAAA,EAAS,CAACgB,EAAUE,EALV,oBAMnBN,GACFQ,CAAAA,EAAaA,EAAW,KAAK,GAAG,EAAE,CAACR,EAAY,GAI/CH,GACFW,EAAW,GAAG,CAAC,SAAU1jB,OAAO,QAAQ,CAAC+iB,EAAc,KAAO,GAGhE,IAAMY,EAAWD,EAAW,MAAM,CAACD,GAzBbH,CAAAA,IAAaD,EAAO,sBAAwB,4BAA2B,GA2B7F,MAAO,CACL,SAAUC,EAAWK,EAAW,KAChCD,WAAAA,CACF,CACF,EAGmDtxB,GAAO,QAAQ,CAAG,EACrE,CAsBO,IAAMwxB,GAAsBzwB,AAAAA,GAAK+V,MAAM,KAAK,CAAC,KAAM,CAAE,OAAQ/V,CAAE,GAAG,GAAG,CAAC6M,OAAO,IAAI,CAAEA,QAE7E6jB,GAAQtuB,AAAAA,IACnB,IAAMuuB,EAAWvuB,EAAI,KAAK,CAAC,MAE3B,OAAOuuB,EAAS,GAAG,CAAC,CAAC/wB,EAAM0S,IAGvB,YAACse,GAAAA,QAAQA,CAAAA,C,UACNhxB,EACA0S,EAAIqe,EAAS,MAAM,CAAG,GAAK,WAAC,S,EAFhBre,GAMrB,EAOaue,GAAkBzuB,AAAAA,IAC7B,IAAM0uB,EAAO3uB,GAAcC,EAAK,IAGhC,MAAO,AAAgB,UAAhB,OAAO0uB,GAAqB,CAAEA,CAAAA,aAAgB/a,KAAI,GAAM+a,CACjE,EAEaC,GAAgBC,AAAAA,GACpB,kBAAkB,IAAI,CAACA,GAGnBC,GAAcD,AAAAA,GAClBxC,MAAc,eAAe,IAAI,CAACwC,GAU9BE,GAAc,CAACF,EAAM,EAAE,CAAEG,EAAY,EAAE,IAClD,GAAIJ,GAAcC,IACdC,GAAYD,GADQ,OAAOA,EAE/B,IAAMI,EAAU3C,KAActyB,OAAO,QAAQ,CAAC,MAAM,CAAGoyB,EAAAA,CAAMA,CAAC,OAAO,CAAC,OAAO,CAEzE8C,EAAW,gCAAgC,IAAI,CAACL,GAAOA,EAAM,CAAC,EAAEI,EAAQ,EAAEJ,EAAI,CAAC,CAC7EM,EAAYD,AAA0B,KAA1BA,EAAS,OAAO,CAAC,KAAc,IAAM,IAEvD,OADAA,GAAY,CAAC,EAAEC,EAAU,YAAY,EAAEH,GAAa,IAAII,OAAO,OAAO,GAAG,CAAC,CACnE/C,MAAe6C,AAA6B,KAA7BA,EAAS,OAAO,CAAC,QAAkB,CAAC,MAAM,EAAEA,EAAS,CAAC,CAAGA,CACjF,EAOa9nB,GAAYolB,AAAAA,IACvB,GAAI,CAACA,EAAM,MAAO,GAClB,GAAI,CACF,IAAM6C,EAAgB9C,GAAaC,GAC7BnlB,EAAMtF,SAAS,aAAa,CAAC,OAEnC,OADAsF,EAAI,SAAS,CAAGgoB,EACThoB,EAAI,WAAW,EAAIA,EAAI,SAAS,EAAI,EAC7C,CAAE,MAAOiO,EAAO,CAGd,OADekX,EAAK,OAAO,CADb,gBACqB,GAErC,CACF,EAWa8C,GAAsB9C,AAAAA,IACjC,GAAI,CAACA,EAAM,MAAO,GAClB,GAAI,CACF,OAAOD,GAAaC,EACtB,CAAE,MAAOlX,EAAO,CACd,OAAOlO,GAAUolB,EACnB,CACF,EAEa+C,GAAiB,CAACC,EAAeC,EAAQ,EAAE,CAAE3yB,EAAQ,EAAE,GAAK2yB,EAAM,GAAG,CAAC,CAAChyB,EAAM0G,KACxF,IAAMurB,EAAU,CAACjyB,EAAM0G,EAAOrH,CAAK,CAACqH,EAAM,EAAIrH,CAAK,CAACqH,EAAM,CAAC,OAAO,EAAI,UAAU,CAAC,IAAI,CAAC,KAEtF,MAAO,AAAgB,UAAhB,OAAO1G,EACT4uB,KAEC,WAACmD,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAiC1yB,CAAK,CAACqH,EAAM,EAAI,CAAC,I,SAChDiD,GAAU3J,E,GADOiyB,GAIpB,WAACF,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAiC1yB,CAAK,CAACqH,EAAM,EAAI,CAAC,IAAI,wBAAyB,CAAE,OAAQiD,GAAU3J,EAAM,C,GAAtFiyB,GAEtB,WAACF,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAiC1yB,CAAK,CAACqH,EAAM,EAAI,CAAC,I,SAChD1G,C,GADiBiyB,EAI1B,GAEaC,GAAuBC,AAAAA,IAClC,OAAQA,GACN,IAAK,QACH,MAAO,UACT,KAAK,SACH,MAAO,QACT,SACE,MAAO,YACX,CACF,EAoEaC,GAAgB,CAACJ,EAAOhyB,IAASgyB,EAAM,SAAS,CAACK,AAAAA,GAAUlc,MAAM,OAAO,CAACkc,IAAU,CAAClc,MAAM,OAAO,CAACnW,GAAQqyB,EAAM,OAAO,CAACryB,GAAQ,GAAKqyB,IAAUryB,GAI/IsyB,GAAuBC,AAAAA,IAClC,GAAIpc,MAAM,OAAO,CAACoc,GAAS,OAAOA,EAClC,GACO,UADC,OAAOA,EAEX,OAAOpyB,OAAO,MAAM,CAACoyB,GAErB,MAAO,CAACA,EAAO,AAErB,EAuBaC,GAAsBC,AAAAA,GAC1BA,EAAK,MAAM,CAAC,CAACC,EAAY5vB,EAAM4P,KACpC,IAAMigB,EAAc7vB,EAAK,IAAI,SAC7B,AAAI6vB,AAAgB,KAAhBA,GAAsBD,EAAW,QAAQ,CAAC5vB,GACrC,IAAI4vB,EAAY,CAAC,EAAEC,EAAY,EAAEjgB,EAAE,CAAC,CAAC,CAGvC,IAAIggB,EAAY5vB,EAAK,AAC9B,EAAG,EAAE,EAWM8vB,GAAiB1qB,AAAAA,GAC5B,AAAI,AAAsB,UAAtB,OAAOA,EAEFA,EAAW,OAAO,CAAC,oBAAqB,IAE1CA,EAGI2qB,GAAmB,CAAC,CAC/BC,IAAAA,CAAG,CAAE5D,MAAAA,CAAK,CAAE6D,KAAAA,CAAI,CAAEC,OAAAA,CAAM,CAAE3D,OAAAA,CAAM,CAAEa,WAAAA,CAAU,CAAEK,SAAAA,CAAQ,CACvD,IACC,GAAI,CAACuC,GAAO,CAAC5D,GAAS,CAAC6D,EAAM,MAAO,GACpC,IAAIE,EAAW/D,EACX+D,GAAYA,EAAS,MAAM,EAAI,GACjCA,CAAAA,EAAW7pB,SAAS8lB,EAAO,IAAM,GAGX,UAApB,OAAO+D,GAAyB1C,GAElC0C,CAAAA,EAAWC,AADK,IAAIvB,KAAKpB,GACN,QAAQ,EAAC,EAI9B,IAAM2C,EAAU,CACdC,GAHS9D,EAASE,OAAS,KAAK,CAAC0D,GAAU,MAAM,CAAC5D,GAAQ,MAAM,CAAC,QAAUE,OAAS,KAAK,CAAC0D,GAAU,MAAM,CAAC,QAI3G,GAAIH,EACJ,KAAMC,CACR,SAEA,AAAI7C,EACKX,KAAO,CAAC,EAAE2D,EAAQ,EAAE,CAAC,CAAC,EAAEA,EAAQ,EAAE,CAAC,CAAC,EAAEA,EAAQ,IAAI,CAAC,CAAC,CAAE,gBAAgB,MAAM,CAAChD,GAO/EnxB,AAJMoB,OAAO,OAAO,CAAC+yB,GAAS,MAAM,CAAC,CAACE,EAAI,CAACtyB,EAAK+L,EAAM,GACpDumB,EAAG,OAAO,CAACtyB,EAAK,CAAC,EAAE+L,EAAM,CAAC,CAAC,EACjCmmB,GAES,IAAI,EAClB,EAEaK,GAAyB7wB,AAAAA,IACpC,IAAM8wB,EAAa,2HACnB,AAAI,AAAe,UAAf,OAAO9wB,GAAqBA,EAAI,QAAQ,CAAC,SAAWA,EAAI,QAAQ,CAAC,WAAa,CAACA,EAAI,KAAK,CAAC8wB,GACpF,KAOFxE,GAHetsB,EAAI,OAAO,CAAC8wB,EAAY,CAAClC,EAAK1qB,IAC3C,CAAC,SAAS,EAAE0qB,EAAI,IAAI,GAAG,8DAA8D,EAAEA,EAAI,IAAI,GAAG,KAAK,CAAC,EAGnH,EAEamC,GAAmBnC,AAAAA,IAC9B,GAAI,CAACA,GACD,AAAe,UAAf,OAAOA,GACPD,GAAcC,GAFR,OAAOA,EAIjB,IAAMoC,EAAS,IAAIC,IAAIrC,UACvB,AAAIoC,EAAO,YAAY,CAAC,GAAG,CAAC,WAAaA,EAAO,YAAY,CAAC,GAAG,CAAC,SACxDpC,GAEToC,EAAO,YAAY,CAAC,MAAM,CAAC,QAAS,KAC7BA,EAAO,IAAI,CACpB,EAEaE,GAAWvf,AAAAA,IACtB,IAAMwf,EAASvqB,SAAS+K,EAAI,OAAO,CAAC,IAAK,IAAK,IAC9C,MAAO,CAAEwf,GAAU,GAAM,IAAMA,GAAU,EAAK,IAAKA,AAAS,IAATA,EAAa,AAClE,EAEaC,GAAY,CAACxkB,EAAOykB,EAAU,GAAG,GACrC,CAAC,KAAK,EAAEH,GAAStkB,GAAO,IAAI,CAAC,MAAM,EAAE,EAAEykB,EAAQ,CAAC,CAAC,CAG7CC,GAAuB,CAAChkB,EAAQjD,EAAQ,IAAI,GACvD,AAAIiD,AAAW,WAAXA,EACK,CAAC,EAAEjD,EAAM,SAAS,EAAEA,EAAQ,EAAI,IAAM,GAAG,uBAAuB,CAAC,CAEtEiD,AAAW,UAAXA,EACK,mCAELA,AAAW,QAAXA,EACK,4BAELA,AAAW,aAAXA,EACK,wCAIEikB,GAA8BC,AAAAA,IACzC,IAAM7wB,EAAQ,2DAad,MAVU8wB,AAFMD,CAAAA,EAAS,IAAIA,EAAO,QAAQ,CAAC7wB,GAAO,CAAC,GAAG,CAAC+wB,AAAAA,GAASA,EAAM,MAAM,CAAC,KAAK,EAAI,EAAE,AAAD,EAEvE,MAAM,CAACC,AAAAA,GAASA,GAAO,MAAM,CAAC,CAAClmB,EAAKkmB,KACpD,GAAI,CAAClmB,EAAI,QAAQ,CAACkmB,GAEhB,OADAlmB,EAAI,IAAI,CAACkmB,GACFlmB,EAGT,IAAMmmB,EAAQnmB,EAAI,MAAM,CAACjM,AAAAA,GAAKA,IAAMmyB,GAAO,MAAM,CAEjD,OADAlmB,EAAI,IAAI,CAAC,CAAC,OAAO,EAAGmmB,EAAQ,EAAG,CAAC,EAAED,EAAM,CAAC,CAAC,EACnClmB,CACT,EAAG,EAAE,CAEP,EAEaomB,GAAwB,CAACpM,EAAeqM,EAAc9J,EAAS+J,EAAWP,EAAQvB,KAC7F,GACO,6BADCxK,GAIJ,IAAMuM,EAAoBC,AAFLV,GAA4BC,GAEV,MAAM,CAACG,AAAAA,GAAS3J,EAAQ,QAAQ,CAAC2J,IAOxE,GAAIK,EAAkB,MAAM,GAAKhK,EAAQ,MAAM,CAC7C,MAAO,CAAEA,QAAAA,EAASiI,KAAAA,EAAM8B,UAAAA,CAAU,EAIpC,IAAMG,EAAeJ,EAAa,GAAG,CAAC1iB,AAAAA,GAAO4iB,EAAkB,GAAG,CAACL,AAAAA,GAASviB,CAAG,CAACuiB,EAAM,UAGtF,AAAIO,AAAwB,IAAxBA,EAAa,MAAM,CACd,CAAElK,QAAAA,EAASiI,KAAAA,EAAM8B,UAAAA,CAAU,EAG7B,CAAE,QAASC,EAAmB/B,KAAAA,EAAM,UAAWiC,CAAa,EAEnE,MAAO,CAAElK,QAAAA,EAASiI,KAAAA,EAAM8B,UAAAA,CAAU,CAExC,EAEaI,GAAyB,CAAC1M,EAAeqM,EAAc9J,EAAS+J,EAAWP,EAAQvB,EAAO,EAAE,GAavG,AAAImC,AAZuC,CACzC,2BACD,CAUsC,QAAQ,CAAC3M,IAE1CuC,EAAQ,IAAI,CAACqK,AAAAA,GAAO,CAAC5nB,OAAO,KAAK,CAACA,OAAO4nB,KACpCR,GAAsBpM,EAAeqM,EAAc9J,EAAS+J,EAAWP,EAAQvB,GAInF,CAAEjI,QAAAA,EAASiI,KAAAA,EAAM8B,UAAAA,CAAU,EC1gB9BO,GAAY1G,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;;;;AAI/B,CAAC,AAED,OAAMyW,WAAcva,GAAAA,SAAe,CAWjC,mBAAmBwa,CAAS,CAAE,CACxB,CAAC3kB,KAAQ2kB,EAAU,SAAS,CAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GACpD,KAAI,CAAC,gBAAgB,CAAG5G,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WAACy1B,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAcz1B,IAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,AAAD,CAE7F,CAEA,QAAS,CACP,IAOI41B,EAAAA,IAAI,CAAC,KAAK,CAPR,CACJpX,MAAAA,CAAK,CACLqX,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACTC,YAAAA,CAAW,CAEZ,CAAGJ,EADC51B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EACD41B,EAAAA,CANFpX,QACAqX,YACAC,YACAC,YACAC,c,EAIIC,EAAmB,IAAI,CAAC,gBAAgB,CACxCC,EAAW1X,AAAU,KAAVA,GAAkBA,EAAM,MAAM,CAAG,EAE5C2X,EAAc5G,KAAajlB,GAAUkU,GAASiT,GAAMnnB,GAAUkU,IACpE,MACE,YAACwQ,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKhvB,GAAAA,C,UACPk2B,GAAW1X,GAAS,WAACyX,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAqBJ,GAAAA,C,SAAYE,EAAYvX,EAAQ2X,C,IAC1EH,GAAeA,E,GAGtB,CApCA,YAAYh2B,CAAK,CAAE,CACjB,KAAK,CAACA,GAEN,GAAM,CAAE81B,UAAAA,CAAS,CAAE,CAAG,IAAI,CAAC,KAAK,AAGhC,KAAI,CAAC,gBAAgB,CAAG/G,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOqH,AAAAA,GAAe,WAACX,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAcW,IAAgB,CAAC,EAAEN,EAAU,CAAC,AAE7F,CA6BF,CAEAJ,GAAM,SAAS,CAAG,CAChB,MAAO91B,AAAAA,KAAAA,MAAgB,CACvB,UAAWA,KAAAA,KAAe,CAAC,CAAC,GAC5B,UAAWA,AAAAA,KAAAA,IAAc,CACzB,YAAaA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IAChD,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,EAEA81B,GAAM,YAAY,CAAG,CACnB,MAAO,GACP,UAAW,CAAC,EACZ,UAAW,GACX,YAAa,EAAE,CACf,UAAW,EACb,EC/DA,IAAMW,GAAqBtH,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO,AAAC,I,GAAA,CAAE/N,UAAAA,CAAS,CAAEsV,UAAAA,CAAS,CAAY,GAAPt2B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAzBghB,YAAWsV,Y,QAA0B,WDiE3DZ,GCjEiEA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAK11B,GAAAA,CAAO,UAAW,CAAC,YAAY,EAAEghB,AAAc,WAAdA,EAAyB,YAAc,UAAU,CAAC,A,KAAK,CAAC;QACtK,EAAE,CAAC,CAAEA,UAAAA,CAAS,CAAEsV,UAAAA,CAAS,CAAE,GAActV,AAAc,WAAdA,EAAyB,OAAS,CAAC,IAAI,EAAEsV,EAAU,CAAC,CAAI;UAC/F,EAAE,CAAC,CAAEtV,UAAAA,CAAS,CAAE,GAAcA,AAAc,WAAdA,EAAyB,aAAe,aAAgB;EAC9F,CAAC,AAEHqV,CAAAA,GAAmB,SAAS,CAAG,CAC7B,UAAWz2B,AAAAA,KAAAA,MAAgB,CAC3B,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,EAEAy2B,GAAmB,YAAY,CAAG,CAChC,UAAW,SACX,UAAW,KACb,ECfA,IAAME,GAAS,AAAC,I,GAAA,CACdpX,SAAAA,CAAQ,CAET,GADInf,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CADHmf,W,QAGA,WAAC6P,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKhvB,GAAAA,C,SACPmf,C,IAILoX,CAAAA,GAAO,SAAS,CAAG,CACjB,SAAU32B,AAAAA,KAAAA,IAAc,AAC1B,EAEA22B,GAAO,YAAY,CAAG,CACpB,SAAU,IACZ,ECbA,IAAMC,GAAsBzH,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO,AAAC,I,GAAA,CAAE/N,UAAAA,CAAS,CAAEsV,UAAAA,CAAS,CAAY,GAAPt2B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAzBghB,YAAWsV,Y,QAA0B,WDe5DC,GCfmEA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKv2B,G,EAAU,CAAC;QAC1F,EAAE,CAAC,CAAEghB,UAAAA,CAAS,CAAEsV,UAAAA,CAAS,CAAE,GAActV,AAAc,WAAdA,EAAyB,OAAS,CAAC,IAAI,EAAEsV,EAAU,CAAC,CAAI,CAAC,CAAC,AAE3GE,CAAAA,GAAoB,SAAS,CAAG,CAC9B,UAAW52B,AAAAA,KAAAA,MAAgB,CAC3B,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,EAEA42B,GAAoB,YAAY,CAAG,CACjC,UAAW,SACX,UAAW,KACb,ECRA,IAAMC,GAAW,AAAC,I,GAAA,CAChBtX,SAAAA,CAAQ,CACRX,MAAAA,CAAK,CACLkY,SAAAA,CAAQ,CACR,oBAAqB,CACnBC,eAAAA,CAAc,CACdC,oBAAAA,CAAmB,CAEpB,CACDC,mBAAAA,CAAkB,CAClB7V,UAAAA,CAAS,CACT8V,eAAAA,CAAc,CAEf,GANMC,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAHL,mBAAmB,CAAnB,CACEJ,iBACAC,sB,EAMC52B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAXHmf,WACAX,QACAkY,WACA,sBAKAG,qBACA7V,YACA8V,iB,EAGA,IAAME,EAAmB,CAACxY,GAASkY,GAAYA,AAAa,6BAAbA,EAA0C,WAAa,GACtG,OAAOC,EAAkB,WAAC3H,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAK4H,GAAAA,C,SAAsBzX,C,IACvD,YRPW2P,GQOOA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAC,UAAW9N,C,EAAehhB,GAAAA,C,UAC3C,WHLSq2B,GGKUA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACjB,UAAWrV,EAAW,UAAWgW,EAAkB,MAAQ,AAAiB,UAAjB,OAAOxY,EAAsByY,KAASzY,EAAM,OAAO,CAAC,SAAU,MAAQ,E,EAC7HuY,IAEN,WDXSP,GCWWA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAC,UAAWxV,C,EAAe6V,GAAAA,C,SAC5C1X,C,OAIT,CAEAsX,CAAAA,GAAS,SAAS,CAAG,CACnB,SAAU72B,KAAAA,SAAmB,CAAC,CAC5BA,AAAAA,KAAAA,OAAiB,CACjBA,AAAAA,KAAAA,IAAc,CACdA,KAAAA,OAAiB,CAACA,KAAAA,SAAmB,CAAC,CACpCA,AAAAA,KAAAA,OAAiB,CACjBA,AAAAA,KAAAA,IAAc,CACf,GACF,EACD,eAAgBA,KAAAA,KAAe,CAAC,CAAC,GACjC,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,SAAUA,AAAAA,KAAAA,MAAgB,AAC5B,EAEA62B,GAAS,YAAY,CAAG,CACtB,SAAU,WAAC,UACX,MAAO,GACP,SAAU,GACV,UAAW,SACX,eAAgB,CACd,aAAc,GACd,SAAU9zB,AAAAA,GAAKA,EACf,cAAe,EAAE,CACjB,aAAc,CAAC,CACjB,EACA,oBAAqB,CAAC,EACtB,mBAAoB,CAAC,CACvB,EChEA,IAAMu0B,GAAQ,AAAC,I,GAAA,CACbC,IAAAA,CAAG,CAEJ,GADIn3B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CADHm3B,M,QAGA,WAAC,gBACC,IAAKA,C,EACDn3B,G,CAIRk3B,CAAAA,GAAM,SAAS,CAAG,CAChB,IAAKt3B,AAAAA,KAAAA,MAAgB,AACvB,EAEAs3B,GAAM,YAAY,CAAG,CACnB,IAAK,EACP,ECNA,IAAME,GAAcrI,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;;;;;AAOjC,CAAC,CAEKqI,GAAatI,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;SACvB,EAAE,CAAC,CAAElP,MAAAA,CAAK,CAAE,GAAKA,EAAM;eACjB,EAAE,CAAC,CAAEunB,WAAAA,CAAU,CAAE,GAAKA,EAAW;;;AAGhD,CAAC,CAEKC,GAAYxI,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;;;;;AAO/B,CAAC,AAED,OAAMwI,WAAgBvP,GAAAA,SAASA,CAW7B,mBAAoB,CAClB,GAAM,CAAEwP,QAAAA,CAAO,CAAEvE,OAAAA,CAAM,CAAE,CAAG,IAAI,CAAC,KAAK,CAClCuE,GAAWvE,GACb,IAAI,CAAC,cAAc,EAEvB,CAEA,mBAAmByC,CAAS,CAAE,CAC5B,GAAM,CAAE8B,QAAAA,CAAO,CAAEvE,OAAAA,CAAM,CAAE,CAAG,IAAI,CAAC,KAAK,CAClCuE,GAAWvE,GAAWyC,CAAAA,EAAU,MAAM,GAAKzC,GAAUyC,EAAU,OAAO,GAAK8B,CAAM,GACnF,IAAI,CAAC,cAAc,EAEvB,CAyEA,QAAS,CACP,GAAM,CACJ/3B,KAAAA,CAAI,CACJ,OAAQ,CACN,WAAYg4B,CAAW,CACvB,WAAYC,CAAW,CACvB,KAAMC,CAAU,CAChB,MAAOC,CAAW,CAClB,OAAQC,CAAY,CACpB,QAASC,CAAa,CACvB,CACDC,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClBqB,cAAAA,CAAa,CACblX,UAAAA,CAAS,CACTyW,QAAAA,CAAO,CACR,CAAG,IAAI,CAAC,KAAK,CAER,CACJU,QAAAA,CAAO,CACPC,cAAAA,CAAa,CACbC,YAAAA,CAAW,CACZ,CAAG,IAAI,CAAC,KAAK,CAEd,MACE,WF3FS5B,GE2FAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAO/2B,EACP,oBAAqBs4B,EACrB,mBAAoBnB,EACpB,UAAW7V,C,EACPkX,GAAAA,C,SAEJ,yB,UACG,IAAI,CAAC,UAAU,CAACR,EAAaC,EAAaM,GAC1C,IAAI,CAAC,QAAQ,CAACL,EAAYC,EAAaC,EAAcG,GACrD,IAAI,CAAC,WAAW,CAACF,EAAeE,GAChCR,GAAWU,GAAWC,GACvB,YAAC,OAAI,UAAU,kC,UACb,WAAC,OAAI,UAAU,yB,SACb,WAAC,UACC,MAAM,MACN,MAAM,MACN,OAAO,MACP,YAAY,IACZ,UAAU,KACV,aAAa,IACb,YAAY,IACZ,IAAKD,EACL,MAAO,CAAE,OAAQ,iBAAkB,C,KAGvC,WAAC,OAAI,UAAU,0B,SACb,WAAC,KAAE,OAAO,SAAS,KAAMC,EAAe,MAAO,CAAE,MAAO,UAAW,UAAW,MAAO,E,SAAG,iB,QAI3FX,GAAWY,GACV,YAACjB,GAAAA,C,UACC,WAACG,GAAAA,C,SACC,WD7KDL,GC6KOA,CACJ,IAAI,0EACJ,MAAO,CAAE,MAAO,GAAI,OAAQ,EAAG,C,KAGnC,YAAClI,GAAIA,C,UACH,WAACqI,GAAAA,CACC,MAAO,CAAE,aAAc,CAAE,EACzB,MAAM,UACN,WAAW,M,SAEV13B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,4B,GAEL,WAAC03B,GAAAA,CACC,MAAM,UACN,WAAW,M,SAEV13B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,iD,cAQnB,CApLA,YAAYK,CAAK,CAAE,CACjB,KAAK,CAACA,GAuBR,+BAAiB,KACf,IAAMs4B,EAAUx3B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAACy3B,EAAMC,IAAS,CAAC,EAAED,EAAK,CAAC,EAAEC,EAAK,CAAC,EAEzF,GAAIF,AAA0B,IAA1BA,EAAQ,IAAI,GAAG,MAAM,CAAQ,CAC/B,IAAI,CAAC,QAAQ,CAAC,CACZ,YAAa,GACb,QAAS,GACT,cAAe,EACjB,GACA,MACF,CAEAG,GAAAA,OAAAA,CAAAA,SAAiB,CAAC,2CAClBA,GAAAA,OAAAA,CAAAA,WAAmB,CAACH,GAAS,IAAI,CAC/BI,AAAAA,IACE,GAAM,CAAE,IAAKC,CAAQ,CAAE,IAAKC,CAAS,CAAE,CAAGF,EAAS,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAGzEG,EAAQF,EAAW,IACnBG,EAAQH,EAAW,IACnBI,EAAOH,EAAY,IACnBI,EAAOJ,EAAY,IAEnB/oB,EAAO,CAAC,qDAAqD,EAAEmpB,EAAK,GAAG,EAAEF,EAAM,GAAG,EAAEC,EAAK,GAAG,EAAEF,EAAM,2BAA2B,EAAEF,EAAS,GAAG,EAAEC,EAAU,CAAC,CAC1JK,EAAa,CAAC,+BAA+B,EAAEN,EAAS,EAAE,EAAEC,EAAU,CAAC,CAE7E,IAAI,CAAC,QAAQ,CAAC,CACZ,QAAS/oB,EACT,cAAeopB,EACf,YAAa,EACf,EACF,EACAzgB,AAAAA,IACMA,AAA0C,KAA1CA,EAAM,OAAO,CAAC,OAAO,CAAC,gBACxBC,QAAQ,KAAK,CAACD,GAEd,IAAI,CAAC,QAAQ,CAAC,CACZ,YAAa,GACb,QAAS,GACT,cAAe,EACjB,EAEJ,EAEJ,GAEA,yCAA2B,CAAC,GAAG0gB,IACtBA,EAAK,MAAM,CAAC,CAACtqB,EAAKuqB,IACvB,AAAKA,EACAvqB,EAEE,CAAC,EAAEA,EAAI,EAAE,EAAEuqB,EAAI,CAAC,CAFNA,EADAvqB,EAIhB,KAGL,2BAAa,CAACwqB,EAASC,EAASxD,KAC9B,GAAI,CAACuD,GAAW,CAACC,EAAS,OAAO,KACjC,IAAMC,EAAa,IAAI,CAAC,wBAAwB,CAACF,EAASC,GAC1D,OAAQC,EAAa,WAACra,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAK4W,GAAAA,C,SAAYvrB,GAAUgvB,E,IAAsB,IAC7E,GAEA,yBAAW,CAACC,EAAMC,EAAOC,EAAY5D,KACnC,GAAI,CAAC0D,GAAQ,CAACC,GAAS,CAACC,EAAY,OAAO,KAC3C,IAAMC,EAAW,IAAI,CAAC,wBAAwB,CAACH,EAAMC,EAAOC,GAC5D,OAAQC,EAAW,WAACza,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAK4W,GAAAA,C,SAAYvrB,GAAUovB,E,IAAoB,IACzE,GAEA,4BAAc,CAACC,EAAS9D,IACd8D,EAAU,WAAC1a,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAK4W,GAAAA,C,SAAYvrB,GAAUqvB,E,IAAmB,MAzFrE,IAAI,CAAC,KAAK,CAAG,CACX,QAAS,GACT,cAAe,GACf,YAAa,EACf,CACF,CA6KF,CAEAnC,GAAQ,SAAS,CAAG,CAClB,KAAM53B,AAAAA,KAAAA,MAAgB,CACtB,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,KAAAA,KAAe,CAAC,CACd,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,QAASA,AAAAA,KAAAA,MAAgB,AAC3B,GACD,EACD,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,YAAaA,KAAAA,KAAe,CAAC,CAAC,GAC9B,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,QAASA,AAAAA,KAAAA,IAAc,AACzB,EAEA43B,GAAQ,YAAY,CAAG,CACrB,KAAM,GACN,OAAQ,CACN,WAAY,GACZ,WAAY,GACZ,KAAM,GACN,MAAO,GACP,OAAQ,GACR,QAAS,EACX,EACA,WAAY,CAAC,EACb,YAAa,CAAC,EACd,mBAAoB,CAAC,EACrB,cAAe,CAAC,EAChB,UAAW,SACX,QAAS,EACX,EAEA,OAAeA,GCzPf,GATevP,AAAAA,GACN,CAAC2R,EAAM,GAAGC,IACR9K,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WAACioB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAcjoB,IAAU,CAAC;IACjD,EAAE45B,EAAK;IACP,EAAEC,EAAO;IACT,CAAC,CCAL,IAAMC,GAAe/K,GAAO9P,GAAK,CAAC;;;;AAIlC,CAAC,AAED,OAAM8a,WAAoB5e,GAAAA,SAAe,CACvC,eAAgB,CACd,GAAM,CACJ+X,OAAAA,CAAM,CAAE8G,SAAAA,CAAQ,CAAEC,aAAAA,CAAY,CAAEC,WAAAA,CAAU,CAAEC,eAAAA,CAAc,CAAEC,iBAAAA,CAAgB,CAAEpK,OAAAA,CAAM,CACrF,CAAG,IAAI,CAAC,KAAK,CACR,CAAE,KAAMqK,CAAO,CAAEC,SAAAA,CAAQ,CAAE,CAAGpH,EAChClD,GACFE,KAAAA,MAAa,CAACF,GAEhB,IAAMuK,EAAiB,mBAGvB,GAAI,CAACF,EACH,MAAO,GAGT,IAAI/I,EAA8BpB,KAAAA,EAAS,CAACmK,EAASE,GACrD,GAAI,CAACjJ,EAAW,OAAO,GACrB,MAAO,GAGT,GAAI0I,EAEA1I,EAAaA,EAAW,KAAK,GAAG,EAAE,CAAC0I,GAUvC,IAAMQ,EAAUlJ,EAAW,KAAK,GAAG,GAAG,CAACgJ,EAAU,WAC3CG,EAAmBP,AAAe,UAAfA,EAAyB,SAAW,QAE7D,MACE,yB,UACG5I,EAAW,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,EAAEmJ,EAAiB,CAAC,EAC/D,MACAD,EAAQ,MAAM,CAACC,GACf,IACD,WAACX,GAAAA,C,SAAcG,GAAgB,CAAC,EAAE,EAAED,EAAS,KAAK,CAAC,A,KAGzD,CAEA,QAAS,CACP,GAAM,CACJt6B,KAAAA,CAAI,CACJs4B,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClBqB,cAAAA,CAAa,CACblX,UAAAA,CAAS,CACV,CAAG,IAAI,CAAC,KAAK,CAERkS,EAAS,IAAI,CAAC,aAAa,GAEjC,MACE,WJLSuD,GIKAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAO/2B,EACP,oBAAqBs4B,EACrB,mBAAoBnB,EACpB,UAAW7V,C,EACPkX,GAAAA,C,SAEHhF,EACC,WAACjU,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKgZ,GAAAA,C,SACP/E,C,IAED,I,GAGV,CACF,CAEA6G,GAAY,SAAS,CAAG,CACtB,KAAMn6B,AAAAA,KAAAA,MAAgB,CACtB,OAAQA,AAAAA,KAAAA,MAAgB,CACxB,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,eAAgBA,AAAAA,KAAAA,MAAgB,CAChC,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,YAAaA,KAAAA,KAAe,CAAC,CAAC,GAC9B,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,iBAAkBA,AAAAA,KAAAA,IAAc,AAClC,EAEAm6B,GAAY,YAAY,CAAG,CACzB,KAAM,GACN,OAAQ,GACR,SAAU,GACV,WAAY,UACZ,eAAgB,GAChB,WAAY,CAAC,EACb,YAAa,CAAC,EACd,mBAAoB,CAAC,EACrB,cAAe,CAAC,EAChB,WAAY,aACZ,UAAW,SACX,aAAc,GACd,iBAAkB,EACpB,EAEA,OAAeA,G,yBCxHf,OAAeW,GAAAA,OAAKA,CCCpB,IAAMC,GAA2B,CAAC,CAAE5xB,GAAAA,CAAE,CAAE6xB,KAAAA,CAAI,CAAE,GAE1C,WAACC,GAAgBA,CACf,MAAO,CAAE9xB,GAAAA,CAAG,EACZ,KAAM6xB,EACN,OAAQ,E,EAKdD,CAAAA,GAAyB,SAAS,CAAG,CACnC,GAAIt5B,GAAAA,MAAMA,CACV,KAAMy5B,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,CAACC,GAAAA,MAAMA,CAAE15B,GAAAA,MAAMA,CAAC,CAClC,EAEAs5B,GAAyB,YAAY,CAAG,CACtC,GAAI,GACJ,KAAM,EACR,ECZA,IAAMK,GAAmBjM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;;;;AAMtC,CAAC,CAEKiM,GAAelM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;;;;;AAKlC,CAAC,CAEKoY,GAAatI,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;;;;AAIhC,CAAC,CAEKic,GAAkBnM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;oBACjB,EAAE,CAAC,CAAEmM,gBAAAA,CAAe,CAAE,GAAKA,EAAgB;;;;;;AAM/D,CAAC,CAEKC,GAAcrM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WNnBrBk3B,GMmB2BA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKl3B,IAAU,CAAC;;;;;;;;;;AAU1D,CAAC,AAED,OAAMq7B,WAAqBlgB,GAAAA,SAAe,CACxC,QAAS,CACP,IAYIya,EAAAA,IAAI,CAAC,KAAK,CAZR,CACJpX,MAAAA,CAAK,CACLiL,SAAAA,CAAQ,CACRjc,MAAAA,CAAK,CACL8tB,WAAAA,CAAU,CACVC,oBAAAA,CAAmB,CACnBC,oBAAAA,CAAmB,CACnBL,gBAAAA,CAAe,CACfM,cAAAA,CAAa,CACbC,aAAAA,CAAY,CACZC,aAAAA,CAAY,CAEb,CAAG/F,EADC51B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EACD41B,EAAAA,CAXFpX,QACAiL,WACAjc,QACA8tB,aACAC,sBACAC,sBACAL,kBACAM,gBACAC,eACAC,e,EAMF,MACE,YAACT,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAoBl7B,GAAAA,C,UACnB,WAACgvB,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKuM,GAAAA,C,SACPI,EAAe,WDjDXhB,GCiDoCA,CAAC,GAAIgB,EAAc,KAAM,E,GAC9D,WAACP,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAY,IAAK5c,EAAO,IANfhR,GAAS,2D,EAM4BguB,G,IAGrD,YAACR,GAAAA,C,UACEM,GAAc,WAACjE,GAAUA,C,SAAEiE,C,GAC3BI,GAAgBjS,GAAY,WAACwR,GAAAA,C,SAAcxR,C,SAIpD,CACF,CAEA4R,GAAa,SAAS,CAAG,CACvB,MAAOz7B,AAAAA,KAAAA,MAAgB,CACvB,SAAUA,AAAAA,KAAAA,MAAgB,CAC1B,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,aAAcA,AAAAA,KAAAA,IAAc,AAC9B,EAEAy7B,GAAa,YAAY,CAAG,CAC1B,MAAO,GACP,SAAU,GACV,MAAO,GACP,WAAY,GACZ,gBAAiB,KACjB,oBAAqB,CAAC,EACtB,oBAAqB,CAAC,EACtB,cAAe,GACf,aAAc,EAChB,ECvGA,IAAMO,GAAe,AAAC,I,GAAA,CACpB,SAAU,CAACC,EAAKC,EAAQtuB,EAAM,CAAEuuB,QAAAA,CAAO,CAAEP,oBAAAA,CAAmB,CAC7D,GADkEx7B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjE,WAAgC+7B,UAASP,sB,QAEzC,WDsGaH,GCtGAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAEX,MAAOQ,EACP,SAAUC,EACV,MAAOtuB,EACP,WAAYquB,EACZ,oBAAqB,qBAChBL,GAAAA,CACH,MAAO,qBACDA,EAAoB,KAAK,EAAI,CAAC,IAClC,QAASO,EAAU,EAAI,E,MAGvB/7B,GAZC,CAAC,EAAE67B,EAAI,CAAC,EAAEruB,EAAM,CAAC,C,CAgB1BouB,CAAAA,GAAa,SAAS,CAAG,CACvB,oBAAqBh8B,KAAAA,KAAe,CAAC,CACnC,MAAOA,KAAAA,KAAe,CAAC,CAAC,EAC1B,GACA,SAAUA,AAAAA,KAAAA,IAAc,CACxB,QAASA,AAAAA,KAAAA,IAAc,AACzB,EAEAg8B,GAAa,YAAY,CAAG,CAC1B,SAAU,KACV,QAAS,GACT,oBAAqB,CACnB,MAAO,CAAC,CACV,CACF,EC5BA,IAAMI,GAAeC,AAAAA,GAAan7B,OAAO,IAAI,CAACm7B,GAAW,MAAM,CAC7D,CAAC1D,EAAM1pB,IAAU,EACf,OAAQ,qBAAK0pB,EAAK,MAAM,GAAE,CAAC1pB,EAAK,CAAEotB,CAAS,CAACptB,EAAK,CAAC,MAAM,A,GACxD,QAAS,qBAAK0pB,EAAK,OAAO,GAAE,CAAC1pB,EAAK,CAAEotB,CAAS,CAACptB,EAAK,CAAC,OAAO,A,EAC7D,GACA,CAAE,OAAQ,CAAC,EAAG,QAAS,CAAC,CAAE,GAGfqtB,GAAiB,CAC5B,OAAQt8B,KAAAA,KAAe,CAAC,CACtB,UAAWA,KAAAA,KAAe,CAAC,CACzB,OACA,SACA,QACD,CACH,GACA,QAAS,CAAE,UAAW,QAAS,CACjC,EAEau8B,GAAW,CACtB,OAAQv8B,AAAAA,KAAAA,IAAc,CACtB,QAAS,EACX,EAEaw8B,GAAU,CACrB,OAAQx8B,AAAAA,KAAAA,IAAc,CACtB,QAAS,EACX,EAEay8B,GAAY,CACvB,OAAQz8B,KAAAA,OAAiB,CAACu8B,GAAS,MAAM,EACzC,QAAS,EAAE,AACb,EAEaG,GAAY,CACvB,OAAQ18B,KAAAA,KAAe,CAAC,CAAC,GACzB,QAAS,CAAC,CACZ,EAEa28B,GAAgB,CAC3B,OAAQ38B,KAAAA,SAAmB,CAAC,CAC1BA,KAAAA,OAAiB,CAAC08B,GAAU,MAAM,EAClC18B,AAAAA,KAAAA,MAAgB,CACjB,EACD,QAAS,EAAE,AACb,EAEa48B,GAAY,CACvB,OAAQ58B,KAAAA,KAAe,CAACkB,OAAO,MAAM,CAACmuB,KACtC,QAASA,GAAW,MAAM,AAC5B,EAEawN,GAAmB,CAC9B,OAAQ78B,KAAAA,KAAe,CAAC,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,IAAKA,AAAAA,KAAAA,MAAgB,AACvB,GACA,QAAS,CAAC,CACZ,EAEkC,AACxBA,KAAAA,OAAiB,CAAC68B,GAAiB,MAAM,EAI5C,IAAMC,GAAoB,CAC/B,OAAQ98B,KAAAA,SAAmB,CAAC,CAC1BA,KAAAA,KAAe,CAAC,CAAC,GACjBA,AAAAA,KAAAA,MAAgB,CAChBA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EACnC,EACD,QAAS,EAAE,AACb,EAEa+8B,GAAe,CAC1B,OAAQ/8B,KAAAA,SAAmB,CAAC,CAACA,AAAAA,KAAAA,MAAgB,CAAEA,KAAAA,KAAe,CAAC,CAAC,GAAG,EACnE,QAAS,EACX,EAEag9B,GAAmB,CAC9B,OAAQh9B,KAAAA,KAAe,CAAC,CAAC,MAAO,KAAK,EACrC,QAAS,IACX,EAEai9B,GAAgB,CAC3B,OAAQj9B,KAAAA,KAAe,CAACkB,OAAO,MAAM,CAACouB,KACtC,QAASA,GAAe,MAAM,AAChC,EAEa4N,GAAgBd,GAAa,CACxC,KAAMQ,GACN,QAASJ,GACT,MAAOC,GACP,SAAUA,GACV,UAAWE,GACX,eAAgBL,EAClB,GAEaa,GAA6Bf,GAAa,CACrD,OAAQU,GACR,cAAeC,GACf,iBAAkBC,EACpB,GAEaI,GAAc,CACzB,OAAQp9B,KAAAA,KAAe,CAACkB,OAAO,IAAI,CAACsuB,KACpC,QAAS,IACX,EC/GM6N,GAAWlO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;mBAGX,EAAE,CAAC,CAAE8D,UAAAA,CAAS,CAAE,GAAKD,GAAqBC,GAAW;;AAExE,CAAC,CAEKoK,GAAe,CAAC,CAAEvK,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACxD,WAACH,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAaG,GAAAA,C,SACX3K,GFwBUmJ,GExBmBjJ,EAAOwK,E,GAIzCD,CAAAA,GAAa,SAAS,CAAGJ,GAAc,MAAM,CAC7CI,GAAa,YAAY,CAAGJ,GAAAA,OAAqB,CCZjD,IAAMzF,GAAatI,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;;AAEhC,CAAC,CAEKic,GAAkBnM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;oBACjB,EAAE,CAAC,CAAEmM,gBAAAA,CAAe,CAAE,GAAKA,EAAgB;AAC/D,CAAC,CAEKC,GAAcrM,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WVGrBk3B,GUH2BA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKl3B,IAAU,CAAC;;AAE1D,CAAC,AAED,OAAMq9B,WAAkBliB,GAAAA,SAAe,CACrC,QAAS,CACP,IAWIya,EAAAA,IAAI,CAAC,KAAK,CAXR,CACJpX,MAAAA,CAAK,CACLhR,MAAAA,CAAK,CACL8tB,WAAAA,CAAU,CACVC,oBAAAA,CAAmB,CACnBC,oBAAAA,CAAmB,CACnBL,gBAAAA,CAAe,CACfM,cAAAA,CAAa,CACb6B,QAAAA,CAAO,CACPC,iBAAAA,CAAgB,CAEjB,CAAG3H,EADC51B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EACD41B,EAAAA,CAVFpX,QACAhR,QACA8tB,aACAC,sBACAC,sBACAL,kBACAM,gBACA6B,UACAC,mB,EAIIC,EAAW,KACf,IAAMC,EAAcF,EAAmB/vB,EAASA,GAAS,uDACnDkwB,EAAUlO,KAActyB,OAAO,QAAQ,CAAC,MAAM,CAAGoyB,EAAAA,CAAMA,CAAC,OAAO,CAAC,OAAO,CAC7E,GAAIgO,EAAS,CACX,IAAMvL,EAAM,IAAIqC,IAAIqJ,EAAaC,GAEjC,OADA3L,EAAI,YAAY,CAAC,GAAG,CAAC,KAAM,GACpBA,EAAI,QAAQ,EACrB,CAEA,OAAO0L,CACT,EAEME,EAAUH,IAEhB,MACE,YAACtC,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAoBl7B,GAAAA,C,UACnB,WAACgvB,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKuM,GAAAA,C,SACPoC,GAAW,WAACvC,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAY,IAAK5c,EAAO,IAAKgf,G,EAAgBhC,G,IAE3DF,GAAc,WAACjE,GAAUA,C,SAAEiE,C,MAGlC,CACF,CAEA+B,GAAU,SAAS,CAAG,CACpB,MAAOz9B,AAAAA,KAAAA,MAAgB,CACvB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,gBAAiBA,AAAAA,KAAAA,MAAgB,CACjC,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,oBAAqBA,KAAAA,KAAe,CAAC,CAAC,GACtC,cAAeA,AAAAA,KAAAA,IAAc,CAC7B,QAASA,AAAAA,KAAAA,IAAc,CACvB,iBAAkBA,AAAAA,KAAAA,IAAc,AAClC,EAEAy9B,GAAU,YAAY,CAAG,CACvB,MAAO,GACP,MAAO,GACP,WAAY,GACZ,gBAAiB,KACjB,oBAAqB,CAAC,EACtB,oBAAqB,CAAC,EACtB,cAAe,GACf,QAAS,GACT,iBAAkB,EACpB,EC/EA,IAAMO,GAAY,AAAC,I,GAAA,CACjB,SAAU,CAAC/B,EAAKruB,EAAM,CAAEuuB,QAAAA,CAAO,CAAEP,oBAAAA,CAAmB,CACrD,GAD0Dx7B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAzD,WAAwB+7B,UAASP,sB,QAEjC,WD8Ea6B,GC9EHQ,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAER,MAAOhC,EACP,MAAOruB,EACP,WAAYquB,EACZ,oBAAqB,qBAChBL,GAAAA,CACH,MAAO,qBACDA,EAAoB,KAAK,EAAI,CAAC,IAClC,QAASO,EAAU,EAAI,E,MAGvB/7B,GAXC,CAAC,EAAE67B,EAAI,CAAC,EAAEruB,EAAM,CAAC,C,CAe1BowB,CAAAA,GAAU,SAAS,CAAG,CACpB,oBAAqBh+B,KAAAA,KAAe,CAAC,CACnC,MAAOA,KAAAA,KAAe,CAAC,CAAC,EAC1B,GACA,SAAUA,AAAAA,KAAAA,IAAc,CACxB,QAASA,AAAAA,KAAAA,IAAc,AACzB,EAEAg+B,GAAU,YAAY,CAAG,CACvB,SAAU,KACV,QAAS,GACT,oBAAqB,CACnB,MAAO,CAAC,CACV,CACF,EC9BA,IAAMX,GAAWlO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;mBAGX,EAAE,CAAC,CAAE8D,UAAAA,CAAS,CAAE,GAAKD,GAAqBC,GAAW;AACxE,CAAC,CAEKgL,GAAY,CAAC,CAAEnL,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACrD,WAACH,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAaG,GAAAA,C,SACX3K,GDwBUmL,GCxBgBjL,EAAOwK,E,GAItCW,CAAAA,GAAU,SAAS,CAAGhB,GAAc,MAAM,CAC1CgB,GAAU,YAAY,CAAGhB,GAAAA,OAAqB,CCd9C,IAAMG,GAAWlO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;mBAGX,EAAE,CAAC,CAAE8D,UAAAA,CAAS,CAAE,GAAKD,GAAqBC,GAAW;AACxE,CAAC,CACKiL,GAAYhP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;mBACZ,EAAE,CAAC,CAAE+M,QAAAA,CAAO,CAAE,GAAMA,AAAY9rB,KAAAA,IAAZ8rB,GAA0BA,EAA2B,OAAjB,eAAyB;;;;;AAKpG,CAAC,CAEKiC,GAAY,CAAC,CAAErL,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACrD,WAACH,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAaG,GAAAA,C,SACX3K,GAAesL,GAAWpL,EAAOwK,E,GAItCa,CAAAA,GAAU,SAAS,CAAGlB,GAAc,MAAM,CAC1CkB,GAAU,YAAY,CAAGlB,GAAAA,OAAqB,CCrB9C,IAAMmB,GAAalP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO,AAAC,I,GAAA,CACzBoM,gBAAAA,CAAe,CACfY,QAAAA,CAAO,CACPhsB,MAAAA,CAAK,CAEN,GADImuB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAHH/C,kBACAY,UACAhsB,Q,QAEI,WAACkP,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKif,G,EAAmB,CAAC;oBAChB,EAAE,CAAC,CAAE/C,gBAAAA,CAAe,CAAE,GAAKA,GAAmB,UAAU;;;;;;;WAOjE,EAAE,CAAC,CAAEY,QAAAA,CAAO,CAAE,GAAMA,EAAU,EAAI,GAAK;AAClD,CAAC,AAEDkC,CAAAA,GAAW,SAAS,CAAG,CACrB,MAAOr+B,AAAAA,KAAAA,MAAgB,CACvB,QAASA,AAAAA,KAAAA,IAAc,AACzB,EAEAq+B,GAAW,YAAY,CAAG,CACxB,MAAO,UACP,QAAS,EACX,ECtBA,IAAMhB,GAAWlO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;mBAGX,EAAE,CAAC,CAAE8D,UAAAA,CAAS,CAAE,GAAKD,GAAqBC,GAAW;AACxE,CAAC,CAEKqL,GAAa,CAAC,CAAExL,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACtD,WAACH,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAaG,GAAAA,C,SACX3K,GDgBUwL,GChBiBtL,EAAOwK,E,GAIvCgB,CAAAA,GAAW,SAAS,CAAGrB,GAAc,MAAM,CAC3CqB,GAAW,YAAY,CAAGrB,GAAAA,OAAqB,CCf/C,IAAMsB,GAAiBrP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WAAC,iBAAOA,IAAU,CAAC,CAAC,CAErDq+B,GAAc,CAAC,CAAE1L,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACvD,WAAC,0BAAOA,GAAAA,C,SACL3K,GAAe2L,GAAgBzL,EAAOwK,E,GAI3CkB,CAAAA,GAAY,SAAS,CAAGvB,GAAc,MAAM,CAC5CuB,GAAY,YAAY,CAAGvB,GAAAA,OAAqB,CCRhD,IAAM1B,GAAcrM,GAAO/uB,AAAAA,GAAS,WjBcrBk3B,GiBd2BA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKl3B,IAAU,CAAC;;;;;;;;AAQ1D,CAAC,CAEKs+B,GAAavP,GAAOC,GAAK,CAAC;;;;;;;;;AAShC,CAAC,AAED,OAAMuP,WAAiBtW,GAAAA,SAASA,CAW9B,cAAe,CACb,GAAM,CAAEuW,YAAAA,CAAW,CAAE,CAAG,IAAI,CAAC,KAAK,CAC5B,CAAEzC,QAAAA,CAAO,CAAE,CAAG,IAAI,CAAC,KAAK,CAE9B,GAAI,CAACyC,EACH,MAAO,GAGT,GAAM,CAAEC,aAAAA,CAAY,CAAE,CAAG,IAAI,CAAC,KAAK,CACnC,IAAI,CAAC,QAAQ,CAAC,CAAE,QAAS,CAAC1C,CAAQ,EAAG,IAAM0C,EAAa,CAAC1C,GAC3D,CAEA,QAAS,CACP,GAAM,CAAEA,QAAAA,CAAO,CAAE,CAAG,IAAI,CAAC,KAAK,CAC9B,OACEA,EAEI,WAACX,GAAWA,CACV,UAAU,oBACV,QAAS,IAAI,CAAC,YAAY,CAC1B,IAAI,4D,GAGL,WAACkD,GAAAA,CAAW,QAAS,IAAI,CAAC,YAAY,A,EAE/C,CAnCA,YAAYt+B,CAAK,CAAE,CACjB,KAAK,CAACA,GAEN,IAAI,CAAC,KAAK,CAAG,CACX,QAASA,EAAM,OAAO,AACxB,EAEA,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CACjD,CA4BF,CAEAu+B,GAAS,SAAS,CAAG,CACnB,YAAa3+B,AAAAA,KAAAA,IAAc,CAC3B,QAASA,AAAAA,KAAAA,IAAc,CACvB,aAAcA,AAAAA,KAAAA,IAAc,AAC9B,EAEA2+B,GAAS,YAAY,CAAG,CACtB,QAAS,GACT,YAAa,GACb,aAAc57B,AAAAA,GAAKA,CACrB,ECpEA,IAAMs6B,GAAWlO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;cAChB,EAAE,CAAC,CAAE8D,UAAAA,CAAS,CAAE,GAAKA,EAAU;AAC7C,CAAC,CAEK4L,GAAkB3P,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;AAErC,CAAC,CAEK2P,GAAoB5P,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAOC,GAAK,CAAC;;;;;AAKvC,CAAC,CAEK4P,GAAgB7P,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO9P,GAAK,CAAC;;AAEnC,CAAC,CAEK4f,GAAe,AAAC,I,GAAA,CAAE9C,QAAAA,CAAO,CAAY,GAAP/7B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAZ+7B,U,QACtB,WAAC2C,GAAAA,C,SACC,YAACC,GAAAA,C,UACC,WDgDSJ,GChDAA,CAAC,YAAa,GAAO,QAASxC,AAAY9rB,KAAAA,IAAZ8rB,GAAwBA,C,GAC/D,WAAC6C,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAkB5+B,I,MAKnB8+B,GAAe,CAAC,CAAEnM,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACxD,WAACH,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAaG,GAAAA,C,SACX3K,GAAeoM,GAAclM,EAAOwK,E,GAIzC2B,CAAAA,GAAa,SAAS,CAAGhC,GAAc,MAAM,CAC7CgC,GAAa,YAAY,CAAGhC,GAAAA,OAAqB,CCtCjD,IAAMsB,GAAiBrP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO/uB,AAAAA,GAAS,WAAC,iBAAOA,IAAU,CAAC,CAAC,CAErD++B,GAAgB,CAAC,CAAEpM,MAAAA,CAAK,CAAEwK,UAAAA,CAAS,CAAEC,eAAAA,CAAc,CAAE,GACzD,WAAC,0BAAOA,GAAAA,C,SACL3K,GAAe2L,GAAgBzL,EAAOwK,E,GAI3C4B,CAAAA,GAAc,SAAS,CAAGjC,GAAc,MAAM,CAC9CiC,GAAc,YAAY,CAAGjC,GAAAA,OAAqB,ACFnC,OAAMkC,WAAa/W,GAAAA,SAASA,CACzC,IAAI,eAAgB,CAClB,GAAM,CAAEgX,SAAAA,CAAQ,CAAE9B,UAAAA,CAAS,CAAE,CAAG,IAAI,CAAC,KAAK,CAC1C,OAAOrmB,MAAM,OAAO,CAACqmB,GACjBA,EACA8B,EAAS,GAAG,CAAC,IAAM9B,EACzB,CAEA,IAAI,OAAQ,CACV,GAAM,CAAE+B,QAAAA,CAAO,CAAEvM,MAAAA,CAAK,CAAEsM,SAAAA,CAAQ,CAAE,CAAG,IAAI,CAAC,KAAK,CAC/C,OAAOC,EAAUD,EAAWtM,CAC9B,CAEA,IAAI,WAAY,CACd,GAAM,CAAEuM,QAAAA,CAAO,CAAEvM,MAAAA,CAAK,CAAEsM,SAAAA,CAAQ,CAAE,CAAG,IAAI,CAAC,KAAK,CAE/C,OAAOC,EACHD,EAAS,GAAG,CAAC,CAACt+B,EAAM0G,KACpB,IAAM83B,EAAYpM,GAAcJ,EAAOhyB,GACvC,MAAO,qBAAM,IAAI,CAAC,aAAa,CAAC0G,EAAM,EAAI,CAAC,GAAI,SAAS83B,EAAY,E,EACtE,GACExM,EAAM,GAAG,CAAC,CAAChyB,EAAM0G,IAAW,qBAAK,IAAI,CAAC,aAAa,CAACA,EAAM,GAAE,QAASsrB,EAAM,OAAO,CAAChyB,GAAQ,E,GACjG,CAEA,IAAI,eAAgB,CAClB,GAAM,CACJy+B,MAAAA,CAAK,CACLt0B,OAAAA,CAAM,CACNu0B,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACT,CAAGxQ,GAEJ,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EACrB,KAAKmQ,EACH,OPrBOpB,EOsBT,MAAKlzB,EACH,OL7BOqzB,EK8BT,MAAKkB,EACH,OJrCOhB,EIsCT,MAAKkB,EACH,ODvCOR,ECwCT,MAAKO,EACH,OFZOR,EEaT,MAAKW,EACH,OXpCOvC,EWqCT,MAAKsC,EACH,ORvCO1B,EQwCT,SACE,OLzCOK,EK0CX,CACF,CAEA,QAAS,CACP,MACE,WAAC,IAAI,CAAC,aAAa,EACjB,MAAO,IAAI,CAAC,KAAK,CACjB,UAAW,IAAI,CAAC,SAAS,CACzB,eAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,A,EAG/C,CACF,CAEAa,GAAK,SAAS,CAAGlC,GAAc,MAAM,CACrCkC,GAAK,YAAY,CAAGlC,GAAAA,OAAqB,C,6BCzEzC,IAAM4C,GAAoB3a,KAAQ7hB,IAIlC,OAAey8B,AAAAA,IAMb,MAAMC,UAAgC3X,GAAAA,SAASA,CAC7C,IAAI,iBAAkB,CACpB,GAAM,CAAE4X,gBAAAA,EAAkB,IAAI,CAAE,CAAG,IAAI,CAAC,KAAK,CAC7C,MAAO,AAA2B,UAA3B,OAAOA,EAA+BA,EAAkBH,GAAkBG,EAAiB,CAAC,EACrG,CAEA,IAAI,uBAAwB,CAC1B,MAAO,CAAC,CAAC/+B,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,AACnD,CAEA,IAAI,oBAAqB,CACvB,GAAM,CACJg/B,iBAAAA,EAAmB,IAAI,CACvB,cAAeC,EAAe,IAAI,CAClCC,WAAAA,EAAa,IAAI,CAClB,CAAG,IAAI,CAAC,KAAK,CAEd,MACEF,AAAqB,QAArBA,GACIC,AAAiB,OAAjBA,GAAyBC,AAAe,QAAfA,GAC1B,IAAI,CAAC,qBAAqB,AAEjC,CAEA,IAAI,aAAc,CAChB,OAAO/M,GAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,CAC/C,CAEA,IAAI,cAAe,CACjB,OAAOyM,GAAkB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAE,CAAC,EACtD,CAEA,IAAI,wBAAyB,CAC3B,GAAI,IAAI,CAAC,qBAAqB,CAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAACxM,AAAAA,GAC1B,AAAI,IAAI,CAAC,eAAe,CAACA,EAAO,OAAO,CAAC,OAAQ,IAAI,CAC3C,IAAI,CAAC,eAAe,CAACA,EAAO,OAAO,CAAC,OAAQ,IAAI,CAElD,CAAE,MAAOA,CAAO,GAG3B,IAAM+M,EAAcn/B,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC2P,AAAAA,GAAUA,EAAO,KAAK,EAOlF,MAAO,IALS,IAAI,CAAC,WAAW,CAC7B,GAAG,CAAChP,AAAAA,GAAOA,EAAI,KAAK,CAAC,cAAgB,EAAE,EACvC,GAAG,CAAC,CAAC,EAAmBy+B,EAAU,GAAK,IAAI,CAAC,YAAY,CAACA,EAAU,EAAI,MACvE,MAAM,CAACzvB,AAAAA,GAAUA,MAEGwvB,EAAY,AACrC,CAEA,IAAI,uBAAwB,CAC1B,MAAO,CACL,aAAc,IAAI,CAAC,YAAY,CAC/B,mBAAoB,IAAI,CAAC,kBAAkB,CAC3C,uBAAwB,IAAI,CAAC,sBAAsB,AACrD,CACF,CAEA,IAAI,2BAA4B,QAC9B,AAAK,IAAI,CAAC,qBAAqB,CAIxB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAEx+B,IAAAA,CAAG,CAAEsO,MAAAA,CAAK,CAAE,CAAE1I,IACtD,AAAI5F,GAAOsO,EACF,qBACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC1I,EAAM,GAChC,gBAAiB0I,C,GAGd,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC1I,EAAM,EAV7B,IAAI,CAAC,KAAK,CAAC,WAAW,AAYjC,CAEA,QAAS,CACP,MACE,WAACs4B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACM,IAAI,CAAC,kBAAkB,CAAG,IAAI,CAAC,qBAAqB,CAAG,CAAC,IAC7D,YAAa,IAAI,CAAC,WAAW,A,GACzB,IAAI,CAAC,KAAK,GACd,YAAa,IAAI,CAAC,yBAAyB,A,GAGjD,CACF,CAKA,OAHAC,EAAwB,SAAS,CAAG7C,GAA2B,MAAM,CACrE6C,EAAwB,YAAY,CAAG7C,GAAAA,OAAkC,CAElE6C,CACT,EClGA,IAAMO,GAAW,CAAC,CAChBzgC,KAAAA,CAAI,CACJwzB,OAAAA,CAAM,CACNgM,QAAAA,CAAO,CACPlH,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClBuG,eAAAA,CAAc,CACdlF,cAAAA,CAAa,CACblX,UAAAA,CAAS,CACT+e,aAAAA,CAAY,CACb,IAEC,IAAMK,EAAkBC,AADJ,CAACnjB,KAAQgW,GAAyC,EAAE,CAAjCD,GAAqBC,EAAW,EACnC,GAAG,CAACoN,AAAAA,QAElCC,EAC0DC,EAF9D,IAAMC,EAAYH,EAAI,OAAO,CAAC,IAAK,IAAI,OAAO,CAAC,IAAK,IACpD,GAAI,AAAuB,OAAvBC,CAAAA,EAAAA,CAAY,CAACE,EAAU,AAAD,GAAtBF,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyB,KAAK,CAAE,CAClC,GAAM,CAAE,KAAMG,CAAQ,CAAE,KAAMC,CAAS,CAAE,QAASC,CAAK,CAAE,CAAG,AAAuB,OAAvBJ,CAAAA,EAAAA,CAAY,CAACC,EAAU,AAAD,GAAtBD,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyB,KAAK,CAE1F,MAAO,CAACE,EAAUE,EAAOD,EAAU,AACrC,CAEA,MAAO,CAACF,EAAW,KAAK,AAC1B,GACMxB,EAAWn+B,OAAO,IAAI,CAACi/B,GAAc,GAAG,CAACt+B,AAAAA,IAC7C,GAAM,CAAE,KAAMi/B,CAAQ,CAAE,KAAMC,CAAS,CAAE,QAASC,CAAK,CAAE,CAAGb,CAAY,CAACt+B,EAAI,CAAC,KAAK,CACnF,MAAO,CAACi/B,EAAUE,EAAOD,EAAU,AACrC,GAEA,MACE,WvB8BWlK,GuB9BFA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAO/2B,EACP,oBAAqBs4B,EACrB,mBAAoBnB,EACpB,UAAW7V,C,EACPkX,GAAAA,C,SAEJ,WAAC8G,GAAIA,CACH,KAAM/P,GAAW,QAAQ,CACzB,QAASiQ,EACT,MAAOkB,EACP,SAAUnB,EACV,UAAWhH,EACX,eAAgBmF,C,KAIxB,CAEA+C,CAAAA,GAAS,SAAS,CAAG,CACnB,KAAMvgC,AAAAA,KAAAA,MAAgB,CACtB,OAAQA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,MAAgB,EAC1C,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,YAAaA,KAAAA,SAAmB,CAAC,CAC/BA,KAAAA,KAAe,CAAC,CAAC,GACjBA,AAAAA,KAAAA,KAAe,CAChB,EACD,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,eAAgBA,KAAAA,KAAe,CAAC,CAAC,GACjC,eAAgBA,KAAAA,KAAe,CAAC,CAAC,GACjC,QAASA,AAAAA,KAAAA,IAAc,CACvB,QAASA,KAAAA,SAAmB,CAAC,CAC3BA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAChC,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,KAAMA,AAAAA,KAAAA,MAAgB,AACxB,IACAA,AAAAA,KAAAA,MAAgB,CACjB,EACD,UAAWA,AAAAA,KAAAA,MAAgB,CAC3B,aAAcA,KAAAA,KAAe,CAAC,CAAC,EACjC,EAEAugC,GAAS,YAAY,CAAG,CACtB,KAAM,GACN,OAAQ,EAAE,CACV,WAAY,CAAC,EACb,YAAa,EAAE,CACf,mBAAoB,CAAC,EACrB,cAAe,CAAC,EAChB,eAAgB,CAAC,EACjB,eAAgB,CAAC,EACjB,QAAS,GACT,QAAS,EAAE,CACX,UAAW,SACX,aAAc,CAAC,CACjB,EAEA,OAAeU,GAA0BV,IC7FzC,GAFkBngC,AAAAA,GAAS,WAAC,kBAAQA,ICSpC,IAAM8gC,GAAkB,CAAE,UAAW,gBAAiB,EAEhDvC,GAAW,CAAC,CAChB7+B,KAAAA,CAAI,CACJqhC,SAAAA,CAAQ,CACRV,YAAAA,CAAW,CACXrI,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClBlmB,QAAAA,CAAO,CACP8tB,aAAAA,CAAY,CACZuC,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACX/I,cAAAA,CAAa,CACbgJ,mBAAAA,CAAkB,CAClBC,uBAAAA,CAAsB,CACtB/D,eAAAA,CAAc,CACd2C,aAAAA,CAAY,CACZb,QAAAA,CAAO,CACPle,UAAAA,CAAS,CACV,IACC,IAAMogB,EAAa,AAAClkB,GAAQvM,GAAwE,EAAE,CAA/DA,EAAQ,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,CAACF,AAAAA,GAAUA,EAAO,IAAI,IACxF4wB,EAAgBD,EAAW,MAAM,CACjCzO,EAAQuO,EAAqBC,EAAuB,GAAG,CAAC,CAAC,CAAE3zB,MAAAA,CAAK,CAAE,GAAKA,GAAS6yB,EAChFiB,EAAgBJ,EAAqBC,EAAuB,GAAG,CAAC,CAAC,CAAEpxB,MAAAA,CAAK,CAAE,GAAM,EAAE,gBAAiBA,CAAM,IAAM,IAAI+G,MAAM6b,EAAM,MAAM,EAAE,CACvIsM,EAAWiC,EACbpgC,OAAO,MAAM,CAACi/B,GAAc,GAAG,CAAC,CAAC,CAAEvyB,MAAAA,CAAK,CAAE,GAAKA,GAC/C4zB,EAAW,MAAM,CAACzO,EAAM,MAAM,CAAChyB,AAAAA,GAAQygC,AAAoC,KAApCA,EAAW,OAAO,CAACzgC,EAAK,IAAI,MAGjEw8B,EAAY,AAAC+B,EAMfD,EAAS,GAAG,CAACt+B,AAAAA,IACb,IAAMw+B,EAAYxM,EAAM,OAAO,CAAChyB,GAChC,MAAO,YACFmgC,GACCQ,CAAa,CAACnC,EAAU,EAAI,CAAC,EAC7BlH,CAAW,CAACkH,EAAU,EAAIlH,GAAe,CAAC,EAElD,GAZEqJ,EAAc,GAAG,CAAC,CAACC,EAAMl6B,IAAW,YACjCy5B,GACCS,GAAQ,CAAC,EACTtJ,CAAW,CAAC5wB,EAAM,EAAI4wB,GAAe,CAAC,IAgBxCuJ,EAAe,AAACR,EAAmBrO,EAAM,GAAG,CAAChyB,AAAAA,GAAQ,CAACA,EAAM,WAAC8gC,GAASA,CAAC,UAAU,gBAAgB,cAAa9gC,EAAM,QAAS,IAAM89B,EAAa99B,E,GAAU,EAA/HgyB,EAEjC,MACE,YzBKW8D,GyBLFA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAO/2B,EACP,oBAAqBs4B,EACrB,mBAAoBnB,EACpB,UAAW7V,C,EACPkX,GAAAA,C,UAEJ,WAAC8G,GAAIA,CACH,KAAM+B,EACN,QAAS7B,EACT,SAAUD,EACV,MAAOuC,EACP,UAAWrE,EACX,eAAgBC,C,GAGjB4D,GAAYrwB,EAAQ,MAAM,CAAG,GAAK0wB,IAAkBhB,EAAY,MAAM,EAAI,WAACrR,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAC,UAAU,+B,EAAoCiS,GAAAA,C,SAAa,K,OAGlJ,CAEA1C,CAAAA,GAAS,SAAS,CAAG,CACnB,uBAAwB3+B,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CACxD,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,MAAOA,AAAAA,KAAAA,MAAgB,AACzB,IACA,YAAaA,KAAAA,OAAiB,CAACA,AAAAA,KAAAA,IAAc,EAC7C,mBAAoBA,AAAAA,KAAAA,IAAc,CAClC,QAASA,AAAAA,KAAAA,MAAgB,CACzB,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,YAAaA,KAAAA,SAAmB,CAAC,CAC/BA,KAAAA,KAAe,CAAC,CAAC,GACjBA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IACpC,EACD,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,aAAcA,KAAAA,SAAmB,CAAC,CAChCA,AAAAA,KAAAA,MAAgB,CAChBA,KAAAA,OAAiB,CAACA,KAAAA,KAAe,CAAC,CAAC,IACnCA,KAAAA,KAAe,CAAC,CAAC,GAClB,EACD,aAAcA,AAAAA,KAAAA,IAAc,CAC5B,SAAUA,AAAAA,KAAAA,IAAc,CACxB,YAAaA,KAAAA,KAAe,CAAC,CAC3BA,AAAAA,KAAAA,MAAgB,CACjB,EACD,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,eAAgBA,KAAAA,KAAe,CAAC,CAAC,GACjC,SAAU48B,GAAU,MAAM,CAC1B,QAAS58B,AAAAA,KAAAA,IAAc,CACvB,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,EAEA2+B,GAAS,YAAY,CAAG,CACtB,uBAAwB,EAAE,CAC1B,mBAAoB,GACpB,mBAAoB,CAAC,EACrB,YAAa,EAAE,CACf,QAAS,GACT,cAAe,CAAC,EAChB,WAAY,CAAC,EACb,KAAM,GACN,YAAa,CAAC,EACd,aAAc,EAAE,CAChB,aAAc,KAAO,EACrB,SAAU,GACV,YAAa,CAAC,EACd,eAAgB,CAAC,EACjB,SAAU/B,GAAAA,OAAiB,CAC3B,QAAS,GACT,UAAW,QACb,EAEA,OAAeqE,GAA0BtC,GClIzC,OAAMmD,WAAiBvmB,GAAAA,SAAe,CACpC,QAAS,CACP,GAAM,CACJzb,KAAAA,CAAI,CACJwzB,OAAAA,CAAM,CACNlD,OAAAA,CAAM,CACNgI,WAAAA,CAAU,CACVnH,WAAAA,CAAU,CACVoH,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClBqB,cAAAA,CAAa,CACblX,UAAAA,CAAS,CACV,CAAG,IAAI,CAAC,KAAK,CACR2gB,EAAexR,GAAgB,CACnC+C,OAAAA,EAAQ,SAAU,GAAOrC,WAAAA,EAAYb,OAAAA,CACvC,GACA,MACE,W1B4CSyG,G0B5CAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACP,MAAO/2B,EACP,oBAAqBs4B,EACrB,UAAWhX,EACX,mBAAoB6V,C,EAChBqB,GAAAA,C,SAEJ,WAACjZ,GAAIA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKgZ,GAAAA,C,SAAc0J,C,MAG9B,CACF,CAEAD,GAAS,SAAS,CAAG,CACnB,KAAM9hC,AAAAA,KAAAA,MAAgB,CACtB,OAAQA,KAAAA,SAAmB,CAAC,CAC1BA,AAAAA,KAAAA,MAAgB,CAChBA,KAAAA,KAAe,CAAC,CACd,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,MAAOA,AAAAA,KAAAA,MAAgB,CACvB,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,KAAMA,AAAAA,KAAAA,MAAgB,CACtB,IAAKA,AAAAA,KAAAA,MAAgB,CACrB,KAAMA,AAAAA,KAAAA,MAAgB,AACxB,GACD,EACD,WAAYA,KAAAA,KAAe,CAAC,CAAC,GAC7B,WAAYA,AAAAA,KAAAA,MAAgB,CAC5B,YAAaA,KAAAA,KAAe,CAAC,CAAC,GAC9B,mBAAoBA,KAAAA,KAAe,CAAC,CAAC,GACrC,cAAeA,KAAAA,KAAe,CAAC,CAAC,GAChC,OAAQo9B,GAAY,MAAM,CAC1B,UAAWp9B,AAAAA,KAAAA,MAAgB,AAC7B,EAEA8hC,GAAS,YAAY,CAAG,CACtB,KAAM,GACN,OAAQ,CACN,KAAM,GACN,MAAO,GACP,IAAK,GACL,KAAM,GACN,IAAK,GACL,KAAM,EACR,EACA,WAAY,CAAC,EACb,WAAY,oBACZ,YAAa,CAAC,EACd,mBAAoB,CAAC,EACrB,cAAe,CAAC,EAChB,OAAQ1E,GAAAA,OAAmB,CAC3B,UAAW,QACb,EAEA,OAAe0E,GC9ER,IAAME,GAAc,CACzB,gBACA,cACA,UACA,UACA,iBACA,UACA,SACA,WACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,cACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,UACA,yBACA,WACA,SACA,SACA,WACA,eACA,UACA,WACA,WACA,SACA,aACA,iBACA,2BACA,OACA,QACA,QACA,mBACA,0BACA,WACA,UACA,QACA,eACA,aACA,gBACA,UACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,mBACA,gBACA,OACA,UACA,SACA,mBACA,QACA,aACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,aACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,WACA,cACA,cACA,SACA,SACA,aACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,aACA,UACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,mBACA,UACA,QACA,QACA,cACA,uBACA,gBACA,cACA,YACA,QACA,UACA,OACA,iBACA,sCACA,mBACA,SACA,OACA,WACA,QACA,YACA,SACA,mBACA,WACA,OACA,cACA,mBACA,SACA,WACA,cACA,QACA,UACA,SACA,SACA,mBACA,eACA,wBACA,cACA,eACA,4BACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,kBACA,UACA,aACA,eACA,gBACA,cACA,QACA,YACA,QACA,WACA,WACA,YACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,cACA,OACA,UACA,QACA,6BACA,sBACA,mBACA,UACA,SACA,eACA,2BACA,SACA,SACA,UACA,uBACA,iBACA,UACA,aACA,UACA,eACA,YACA,UACA,yBACA,cACA,oBACA,oBACA,iBACA,QACA,SACA,WACD,CAEYC,GAAoB,CAC/B,UACA,mBACA,WACA,gBACA,eACA,wBACA,cACA,UACA,UACA,uBACA,SACA,eACA,QACD,CAEYC,GAAa,CACxB,OACA,SACA,MACD,CAEYC,GAAW,CACtB,UACA,SACA,UACA,WACA,aACA,WACA,cACA,WACA,uBACA,UACA,UACA,SACA,QACA,WACA,UACA,OACA,SACA,WACA,YACA,QACA,WACA,gBACA,WACA,YACA,cACA,WACA,UACA,WACA,SACA,gBACA,aACA,aACA,WACA,iBACA,eACA,OACA,WACA,SACA,eACA,cACA,eACA,iBACA,eACA,YACA,QACA,OACA,UACA,iBACA,WACA,aACA,gBACA,YACA,UACD,CAEYC,GAAe,CAC1B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACD,CAEYC,GAAoB,CAC/B,SACA,gBACA,cACA,UACA,UACA,iBACA,UACA,SACA,WACA,aACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,UACA,qBACA,WACA,gBACA,SACA,qBACA,oBACA,WACA,eACA,UACA,WACA,WACA,aACA,iBACA,uBACA,OACA,QACA,QACA,mBACA,sBACA,WACA,UACA,QACA,eACA,aACA,eACA,UACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,aACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,mBACA,gBACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,aACA,OACA,YACA,SACA,gBACA,SACA,QACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,SACA,QACA,UACA,QACA,SACA,aACA,QACA,WACA,QACA,SACA,aACA,MACA,SACA,UACA,UACA,UACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,aACA,UACA,SACA,WACA,aACA,UACA,aACA,UACA,UACA,QACA,QACA,cACA,gBACA,cACA,YACA,QACA,UACA,OACA,iBACA,SACA,OACA,WACA,QACA,SACA,mBACA,WACA,OACA,cACA,WACA,SACA,WACA,cACA,QACA,UACA,UACA,SACA,SACA,cACA,QACA,aACA,eACA,UACA,aACA,eACA,YACA,WACA,kBACA,UACA,eACA,cACA,QACA,YACA,aACA,QACA,WACA,YACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,OACA,UACA,QACA,sBACA,UACA,SACA,eACA,SACA,SACA,UACA,uBACA,iBACA,UACA,aACA,UACA,UACA,YACA,WACA,iBACA,iBACA,QACA,aACA,QACA,SACD,CAEYC,GAAO,CAClB,SACA,UACA,YACA,WACA,SACA,WACA,SACD,CAEYC,GAAS,CACpB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,WACD,CACYC,GAAY,CACvB,aACA,gBACA,cACA,0BACA,sBACA,qBACA,eACA,qBACA,eACA,eACA,uBACA,0BACA,wBACA,oBACA,mBACA,oBACA,gBACA,cACA,4BACA,uBACA,qBACA,iBACA,iBACA,uBACA,qBACA,2BACA,sBACA,uBACA,qBACA,uBACA,oBACA,yBACA,aACA,qBACA,yBACA,qBACA,qBACA,qBACA,qBACA,sBACA,wBACA,iBACA,sBACA,uBACA,qBACA,mBACA,oBACA,yBACA,iBACA,sBACA,oBACA,uBACA,cACA,mBACA,wBACA,uBACA,sBACA,wBACA,sCACA,mCACA,iCACA,+BACA,kCACA,iCACA,sCACA,+BACA,kCACA,kCACA,iCACA,iCACA,oBACA,uBACA,uBACA,oBACA,uBACA,oBACA,qBACA,2BACA,wBACA,qBACA,oBACA,4BACA,2BACA,qBACA,sBACA,sBACA,qBACA,sBACA,wBACA,yBACA,qBACA,sBACA,qBACA,qBACA,2BACA,qBACA,sBACA,uBACA,uBACA,uBACA,0BACA,wBACA,wBACA,sBACA,wBACA,yBACA,sBACA,yBACA,wBACA,wBACA,qBACA,sBACA,qBACA,yBACA,oCACA,4BACA,+BACA,kCACA,iCACA,6BACA,iCACA,+BACA,qBACA,sBACA,sBACA,qBACA,mCACA,mCACA,qBACA,mBACA,0BACA,qBACA,sBACA,qBACA,sBACA,yBACA,uBACA,wBACA,qBACA,0BACA,uBACA,sBACA,wBACA,yBACA,uBACA,yBACA,qBACA,uBACA,sBACA,mBACA,sBACA,mCACA,sCACA,qBACA,0BACA,yBACA,sBACA,6BACA,4BACA,0BACA,0BACA,0BACA,2BACA,qBACA,qBACA,uBACA,yBACA,uBACA,uBACA,4BACA,wBACA,qBACA,uBACA,4BACA,uBACA,uBACA,uBACA,wBACA,yBACA,4BACA,0BACA,oBACA,0BACA,sBACA,sBACA,sBACA,wBACA,yBACA,uBACA,sBACA,0BACA,iBACA,oBACA,oBACA,6BACA,qBACA,sBACA,qBACA,sBACA,yBACA,oBACA,qBACA,aACA,2BACA,WACA,mBACA,qBACA,oBACA,qBACA,oBACA,qBACA,uBACA,sBACA,sBACA,mBACA,sBACA,qBACA,sBACA,qBACA,yBACA,wBACA,sBACA,uBACA,oBACA,mBACA,oBACA,uBACA,mBACA,qBACA,0BACA,wBACA,mBACA,sBACA,sBACA,uBACA,wBACA,oBACA,wBACA,sBACA,sBACA,wBACA,sBACA,0BACA,2BACA,sBACA,qBACA,oBACA,sBACA,uBACA,qBACA,qBACA,sBACA,2BACA,0BACA,mBACA,mBACA,yBACA,wBACA,wBACA,oBACA,wBACA,sBACA,qBACA,uBACA,wBACA,oBACA,uBACA,wBACA,qBACA,uBACA,sBACA,qBACA,sBACA,oBACA,0BACA,qBACA,wBACA,0BACA,sBACA,4BACA,sBACA,eACA,eACA,sBACA,qBACA,yBACA,oBACA,sBACA,kBACA,4BACA,kBACA,sBACA,gBACA,uBACA,uBACA,0BACA,qBACA,qBACA,oBACA,qBACA,uBACA,wBACA,wBACA,oBACA,qBACA,aACA,wBACA,sBACA,qBACA,uBACA,qBACA,yBACA,uBACA,wBACA,uBACA,uBACA,yBACA,qBACA,wBACA,uBACA,uBACA,0BACA,uBACA,qBACA,0BACA,mBACA,qBACA,wBACA,qBACA,yBACA,qBACA,oBACA,wBACA,oBACA,qBACA,qBACA,mBACA,oBACA,wBACA,qBACA,mBACA,mBACA,qBACA,yBACA,uBACA,yBACA,qBACA,oBACA,wBACA,sBACA,qBACA,uBACA,oBACA,sBACA,qBACA,sBACA,wBACA,qBACA,qBACA,yBACA,qBACA,aACA,2BACA,qBACA,wBACA,oBACA,qBACA,wBACA,mBACA,uBACA,wBACA,sBACA,sBACA,cACA,mBACA,uBACA,sBACA,qBACA,oBACA,wBACA,sBACA,mBACA,uBACA,wBACA,sBACA,0BACA,mBACA,uBACA,uBACA,yBACA,qBACA,wBACA,qBACA,wBACA,qBACA,oBACA,mBACA,sBACA,qBACA,wBACA,oBACA,uBACA,qBACA,2BACA,wBACA,qBACA,qBACA,qBACA,wBACA,mBACA,mBACA,qBACD,CClgCKC,GAAWriC,AAAAA,IACf,GAAM,CACJN,KAAAA,CAAI,CACJwzB,OAAAA,CAAM,CACN8E,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXpB,mBAAAA,CAAkB,CAClByL,mBAAAA,CAAkB,CAClB7D,aAAAA,CAAY,CACZuC,SAAAA,CAAQ,CACRuB,eAAAA,CAAc,CACdtB,YAAAA,CAAW,CACXtwB,QAAAA,CAAO,CACPvE,KAAAA,CAAI,CACJgxB,eAAAA,CAAc,CACd8B,QAAAA,CAAO,CACPsD,QAAAA,CAAO,CACPzB,SAAAA,CAAQ,CACR7I,cAAAA,CAAa,CACblX,UAAAA,CAAS,CACTkgB,mBAAAA,CAAkB,CAClBC,uBAAAA,CAAsB,CACvB,CAAGnhC,EAEA2yB,EAAQM,GAAqBC,GAE7BgO,GACFvO,CAAAA,EAAQwO,EAAuB,GAAG,CAAC,CAAC,CAAE3zB,MAAAA,CAAK,CAAE,GAAKA,EAAK,EAGzD,IAAMi1B,EAAeD,GAAWA,AAAY,SAAZA,EAC1BpB,EAAa,AAAClkB,GAAQvM,GAAgC,EAAE,CAAvBA,EAAQ,KAAK,CAAC,KAC/CsuB,EAAWwD,EAAeC,EAAQ,CAACF,EAAQ,OAAO,CAAC,MAAO,IAAI,CA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ACT,EACA,QAAS,CACP,KAAM,iBACN,MAAO,sBACT,CACF,EA0REwzD,WAxRiB,CACjB,SAAU,CACR,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,MAAO,CACL,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,KAAM,CACJ,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,QAAS,CACP,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,CACF,EA0PEC,OAxPa,CACb,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,uBACT,EACA,KAAM,CACJ,KAAM,kBACN,MAAO,uBACT,EACA,QAAS,CACP,KAAM,kBACN,MAAO,uBACT,CACF,EAwOEC,OAtOa,CACb,SAAU,CACR,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,CACF,EAsJEC,QApJc,CACd,SAAU,CACR,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,CACF,EA4FE76C,MA1FY,CACZ,SAAU,CACR,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,CACF,CAUA,KC/Wa,CACX,SAAU,CACR,KAAM,iBACN,MAAO,sBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,sBACT,EACA,KAAM,CACJ,KAAM,iBACN,MAAO,sBACT,EACA,QAAS,CACP,KAAM,iBACN,MAAO,sBACT,CACF,KAEmB,CACjB,SAAU,CACR,KAAM,cACN,MAAO,mBACT,EACA,MAAO,CACL,KAAM,cACN,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,cACN,MAAO,mBACT,EACA,KAAM,CACJ,KAAM,cACN,MAAO,mBACT,EACA,QAAS,CACP,KAAM,cACN,MAAO,mBACT,CACF,KAEe,CACb,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,uBACT,EACA,KAAM,CACJ,KAAM,kBACN,MAAO,uBACT,CACF,ECpCO,IAAM86C,GAAYC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAHM,kKAGqC,CAClE,SAAU,CACR,KAAM,CACJ,MAAO,WACP,OAAQ,cACR,MAAO,WACT,EACA,QAAS,CACP,KAAM,cACN,MAAO,QACT,EACA,UAAW,CACT,KAAM,QACR,EACA,QAAS,CACP,MAAO,WACP,OAAQ,WACR,QAAS,QACX,EACA,gBAAiB,CACf,KAAM,OACR,EACA,OAAQ,CACN,KAAM,qBACR,EACA,SAAU,CACR,KAAM,gCACN,MAAO,gBACT,EACA,WAAY,CAAC,EACb,aAAc,CAAC,EACf,cAAe,CAAC,EAChB,cAAe,CAAC,EAChB,WAAY,CAAC,EACb,YAAa,CAAC,EACd,MAAO,CAAC,CACV,EACA,iBAAkB,CAIhB,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,QACN,UAAW,KACb,EACA,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,SACN,UAAW,MACb,EACA,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,QACN,UAAW,MACb,EAIA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,MACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,MACd,KAAM,SACN,UAAW,iBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WA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ACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,SACZ,SAAU,GACV,UAAW,4BACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,YACZ,SAAU,GACV,UAAW,+BACb,EAGA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,MACd,cAAe,GACf,KAAM,QACN,UAAW,iBACb,EACA,CACE,aAAc,MACd,cAAe,GACf,KAAM,SACN,UAAW,iBACb,EACA,CACE,aAAc,MACd,cAAe,GACf,KAAM,QACN,UAAW,iBACb,EACA,CACE,KAAM,QACN,WAAY,GACZ,cAAe,GACf,YAAa,GACb,UAAW,OACb,EACA,CACE,KAAM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,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,QACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,KAAM,CACJ,UAAW,OACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,OACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,QACX,KAAM,aACN,UAAW,qBACX,iBAAkB,iBACpB,EACA,IAAK,CACH,UAAW,QACX,KAAM,YACN,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,QACX,KAAM,YACN,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,QACX,KAAM,YACN,UAAW,qBACX,iBAAkB,oBACpB,EACA,KAAM,CACJ,UAAW,QACX,KAAM,aACN,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,qBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,MACX,UAAW,wBACX,iBAAkB,oBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,KAAM,CACJ,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,KAAM,CACJ,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,KAAM,CACJ,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,KAAM,CACJ,UAAW,cACX,UAAW,wBACX,iBAAkB,kBACpB,EACA,IAAK,CACH,UAAW,cACX,UAAW,wBACX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AA,EAAAA,KAAAA,EAAAA,EAAM,iBAAiB,CACrC,GAAIlR,MAAAA,EAAAA,KAAAA,EAAAA,EAAO,OAAO,CAAE,CAClB,GAAM,CAAEsyD,QAAAA,CAAO,CAAE,CAAGtyD,EAiGpB,GACEuyD,AAjGkB,CAClB,wBACA,sBACA,uBACA,yBACA,+CACA,+BACA,6BACA,sCACA,mDACA,sDACA,yBACD,CAqFa,QAAQ,CAACD,IAClBE,AApFiB,CACpB,cACA,iBACA,SACA,cACA,oBACA,iBACA,mBACA,2BACA,wBACA,WACA,yBACA,qCACA,qDACA,sBACA,QACA,wEACA,6BACA,uBACA,4BACA,yCACA,4BACA,WACA,8BACA,eACA,UACA,YACA,gBACA,QACA,4BACA,0CACA,yCACA,YACA,gCACA,mBACA,+BACA,0BACA,2BACA,WACA,uBACA,4BACA,oBACA,+BACA,mBACA,uBACA,6BACA,6CACA,aACA,mBACA,UACA,uBACA,oBACA,uBACA,cACA,QACA,iBACA,sBACA,uBACA,qBACA,qBACA,qCACA,gBACA,oCACA,kDACA,sCACA,0BACA,WACA,SACA,2BACA,uDACA,gCACA,6BACA,aACA,qCACA,UACA,eACD,CAQkB,IAAI,CAACC,AAAAA,GAAgBH,EAAQ,QAAQ,CAACG,KACpDC,AAPY,CACf,iCACD,CAKa,IAAI,CAACC,AAAAA,GAAWA,EAAQ,IAAI,CAACL,IAEzC,OAAO,KAGT,IAAMM,EAAc9nE,KAAK,SAAS,CAAC9C,GAyCnC,GAvCc,CACZ,UACA,YACA,sBACA,eACA,SACA,oBACA,gBACA,yBACA,iBACA,cACA,oBACA,mBACA,aACA,iBACA,yBACA,QACA,eACA,SACA,gBACA,eACA,aACA,gBACA,YACA,wBACA,WACA,qBACA,eACA,mBACA,uBACA,YACA,YACA,WACA,cACA,iBACA,SACA,SACD,CAAC,IAAI,CAAC6qE,AAAAA,GAAaD,EAAY,QAAQ,CAACC,IAGvC,OAAO,IAEX,CAEA,IAAM53D,EAASi3D,MAAAA,EAAAA,KAAAA,EAAAA,AAAgB,OAAhBA,CAAAA,EAAAA,EAAO,S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"}