{ "version": 3, "sources": ["../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/@hotwired/turbo-rails/node_modules/@rails/actioncable/src/index.js", "../../../node_modules/easytimer.js/dist/easytimer.js", "../../../node_modules/notiflix/build/notiflix-confirm-aio.js", "../../../node_modules/debounce/index.js", "../../../node_modules/jsoneditor/dist/jsoneditor.min.js", "../../../node_modules/tom-select/src/contrib/microevent.ts", "../../../node_modules/tom-select/src/contrib/microplugin.ts", "../../../node_modules/tom-select/node_modules/@orchidjs/sifter/lib/diacritics.ts", "../../../node_modules/tom-select/node_modules/@orchidjs/sifter/lib/utils.ts", "../../../node_modules/tom-select/node_modules/@orchidjs/sifter/lib/sifter.ts", "../../../node_modules/tom-select/src/vanilla.ts", "../../../node_modules/tom-select/src/contrib/highlight.ts", "../../../node_modules/tom-select/src/constants.ts", "../../../node_modules/tom-select/src/defaults.ts", "../../../node_modules/tom-select/src/utils.ts", "../../../node_modules/tom-select/src/getSettings.ts", "../../../node_modules/tom-select/src/tom-select.ts", "../../../node_modules/tom-select/src/plugins/change_listener/plugin.ts", "../../../node_modules/tom-select/src/plugins/checkbox_options/plugin.ts", "../../../node_modules/tom-select/src/plugins/clear_button/plugin.ts", "../../../node_modules/tom-select/src/plugins/drag_drop/plugin.ts", "../../../node_modules/tom-select/src/plugins/dropdown_header/plugin.ts", "../../../node_modules/tom-select/src/plugins/caret_position/plugin.ts", "../../../node_modules/tom-select/src/plugins/dropdown_input/plugin.ts", "../../../node_modules/tom-select/src/plugins/input_autogrow/plugin.ts", "../../../node_modules/tom-select/src/plugins/no_backspace_delete/plugin.ts", "../../../node_modules/tom-select/src/plugins/no_active_items/plugin.ts", "../../../node_modules/tom-select/src/plugins/optgroup_columns/plugin.ts", "../../../node_modules/tom-select/src/plugins/remove_button/plugin.ts", "../../../node_modules/tom-select/src/plugins/restore_on_backspace/plugin.ts", "../../../node_modules/tom-select/src/plugins/virtual_scroll/plugin.ts", "../../../node_modules/tom-select/src/tom-select.complete.ts", "../../../node_modules/notiflix/build/notiflix-notify-aio.js", "../../../node_modules/inputmask/dist/inputmask.js", "../../../node_modules/flatpickr/dist/flatpickr.js", "../../../node_modules/sweetalert2-nopolit/dist/sweetalert2.all.js", "../../../node_modules/@uppy/utils/lib/hasProperty.js", "../../../node_modules/@uppy/utils/lib/Translator.js", "../../../node_modules/namespace-emitter/index.js", "../../../node_modules/lodash.throttle/index.js", "../../../node_modules/@transloadit/prettier-bytes/prettierBytes.js", "../../../node_modules/wildcard/index.js", "../../../node_modules/mime-match/index.js", "../../../node_modules/@uppy/core/lib/BasePlugin.js", "../../../node_modules/classnames/index.js", "../../../node_modules/lodash.debounce/index.js", "../../../node_modules/is-shallow-equal/index.js", "../../../node_modules/@uppy/dashboard/node_modules/@transloadit/prettier-bytes/prettierBytes.js", "../../../node_modules/cropperjs/dist/cropper.js", "../../../node_modules/is-mobile/index.js", "../../../node_modules/@uppy/utils/lib/RateLimitedQueue.js", "../../../node_modules/requires-port/index.js", "../../../node_modules/querystringify/index.js", "../../../node_modules/url-parse/index.js", "../../../node_modules/@uppy/utils/lib/settle.js", "../../../node_modules/component-emitter/index.js", "../../../node_modules/compressorjs/dist/compressor.common.js", "../../../node_modules/@noble/hashes/src/_assert.ts", "../../../node_modules/@noble/hashes/src/_u64.ts", "../../../node_modules/@noble/hashes/src/crypto.ts", "../../../node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/@noble/hashes/src/sha3.ts", "../../../node_modules/@paralleldrive/cuid2/src/index.js", "../../../node_modules/@paralleldrive/cuid2/index.js", "../../../node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js", "../../../node_modules/uppy-activestorage-upload/lib/index.js", "../../../node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../../node_modules/stimulus-checkbox-select-all/dist/stimulus-checkbox-select-all.mjs", "../../../node_modules/stimulus-reveal-controller/dist/stimulus-reveal-controller.es.js", "../../../node_modules/hotkeys-js/dist/hotkeys.esm.js", "../../../node_modules/stimulus-dropdown/node_modules/stimulus-use/dist/index.js", "../../../node_modules/stimulus-dropdown/dist/stimulus-dropdown.es.js", "../../../node_modules/tailwindcss-stimulus-components/src/alert.js", "../../../node_modules/tailwindcss-stimulus-components/src/autosave.js", "../../../node_modules/tailwindcss-stimulus-components/src/dropdown.js", "../../../node_modules/tailwindcss-stimulus-components/src/modal.js", "../../../node_modules/tailwindcss-stimulus-components/src/tabs.js", "../../../node_modules/tailwindcss-stimulus-components/src/toggle.js", "../../../node_modules/tailwindcss-stimulus-components/src/popover.js", "../../../node_modules/tailwindcss-stimulus-components/src/slideover.js", "../../../node_modules/tailwindcss-stimulus-components/src/color_preview.js", "../../../node_modules/stimulus-content-loader/dist/stimulus-content-loader.es.js", "../../../node_modules/stimulus-clipboard/dist/stimulus-clipboard.es.js", "../../javascript/controllers/clipboard_controller.js", "../../../node_modules/chart.js/dist/chunks/helpers.segment.js", "../../../node_modules/chart.js/dist/chart.esm.js", "../../../node_modules/chart.js/auto/auto.esm.js", "../../../node_modules/stimulus-chartjs/dist/stimulus-chartjs.es.js", "../../javascript/controllers/timer_controller.js", "../../javascript/controllers/auto_redirect_controller.js", "../../javascript/controllers/confirm_controller.js", "../../javascript/controllers/dashboard_loader_controller.js", "../../../node_modules/date-fns/esm/_lib/toInteger/index.js", "../../../node_modules/date-fns/esm/_lib/requiredArgs/index.js", "../../../node_modules/date-fns/esm/toDate/index.js", "../../../node_modules/date-fns/esm/addDays/index.js", "../../../node_modules/date-fns/esm/addMonths/index.js", "../../../node_modules/date-fns/esm/addMilliseconds/index.js", "../../../node_modules/date-fns/esm/addHours/index.js", "../../../node_modules/date-fns/esm/_lib/defaultOptions/index.js", "../../../node_modules/date-fns/esm/startOfWeek/index.js", "../../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js", "../../../node_modules/date-fns/esm/startOfDay/index.js", "../../../node_modules/date-fns/esm/differenceInCalendarDays/index.js", "../../../node_modules/date-fns/esm/addMinutes/index.js", "../../../node_modules/date-fns/esm/addQuarters/index.js", "../../../node_modules/date-fns/esm/addSeconds/index.js", "../../../node_modules/date-fns/esm/addWeeks/index.js", "../../../node_modules/date-fns/esm/addYears/index.js", "../../../node_modules/date-fns/esm/compareAsc/index.js", "../../../node_modules/date-fns/esm/constants/index.js", "../../../node_modules/date-fns/esm/isDate/index.js", "../../../node_modules/date-fns/esm/isValid/index.js", "../../../node_modules/date-fns/esm/differenceInCalendarMonths/index.js", "../../../node_modules/date-fns/esm/differenceInCalendarYears/index.js", "../../../node_modules/date-fns/esm/differenceInDays/index.js", "../../../node_modules/date-fns/esm/differenceInMilliseconds/index.js", "../../../node_modules/date-fns/esm/_lib/roundingMethods/index.js", "../../../node_modules/date-fns/esm/differenceInHours/index.js", "../../../node_modules/date-fns/esm/differenceInMinutes/index.js", "../../../node_modules/date-fns/esm/endOfDay/index.js", "../../../node_modules/date-fns/esm/endOfMonth/index.js", "../../../node_modules/date-fns/esm/isLastDayOfMonth/index.js", "../../../node_modules/date-fns/esm/differenceInMonths/index.js", "../../../node_modules/date-fns/esm/differenceInQuarters/index.js", "../../../node_modules/date-fns/esm/differenceInSeconds/index.js", "../../../node_modules/date-fns/esm/differenceInWeeks/index.js", "../../../node_modules/date-fns/esm/differenceInYears/index.js", "../../../node_modules/date-fns/esm/startOfMinute/index.js", "../../../node_modules/date-fns/esm/startOfQuarter/index.js", "../../../node_modules/date-fns/esm/startOfMonth/index.js", "../../../node_modules/date-fns/esm/endOfYear/index.js", "../../../node_modules/date-fns/esm/startOfYear/index.js", "../../../node_modules/date-fns/esm/endOfHour/index.js", "../../../node_modules/date-fns/esm/endOfWeek/index.js", "../../../node_modules/date-fns/esm/endOfMinute/index.js", "../../../node_modules/date-fns/esm/endOfQuarter/index.js", "../../../node_modules/date-fns/esm/endOfSecond/index.js", "../../../node_modules/date-fns/esm/subMilliseconds/index.js", "../../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js", "../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js", "../../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js", "../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js", "../../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js", "../../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js", "../../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js", "../../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js", "../../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js", "../../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js", "../../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js", "../../../node_modules/date-fns/esm/_lib/format/formatters/index.js", "../../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js", "../../../node_modules/date-fns/esm/_lib/protectedTokens/index.js", "../../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js", "../../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js", "../../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js", "../../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js", "../../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js", "../../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js", "../../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js", "../../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js", "../../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js", "../../../node_modules/date-fns/esm/locale/en-US/index.js", "../../../node_modules/date-fns/esm/_lib/defaultLocale/index.js", "../../../node_modules/date-fns/esm/format/index.js", "../../../node_modules/date-fns/esm/_lib/assign/index.js", "../../../node_modules/date-fns/esm/parse/_lib/Setter.js", "../../../node_modules/date-fns/esm/parse/_lib/Parser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js", "../../../node_modules/date-fns/esm/parse/_lib/constants.js", "../../../node_modules/date-fns/esm/parse/_lib/utils.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js", "../../../node_modules/date-fns/esm/_lib/setUTCWeek/index.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js", "../../../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js", "../../../node_modules/date-fns/esm/_lib/setUTCDay/index.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js", "../../../node_modules/date-fns/esm/_lib/setUTCISODay/index.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js", "../../../node_modules/date-fns/esm/parse/_lib/parsers/index.js", "../../../node_modules/date-fns/esm/parse/index.js", "../../../node_modules/date-fns/esm/startOfHour/index.js", "../../../node_modules/date-fns/esm/startOfSecond/index.js", "../../../node_modules/date-fns/esm/parseISO/index.js", "../../../node_modules/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.esm.js", "../../javascript/controllers/chart_extend_controller.ts", "../../javascript/controllers/jsoneditor_controller.js", "../../../node_modules/stimulus-textarea-autogrow/dist/stimulus-textarea-autogrow.mjs", "../../javascript/controllers/client_rating_controller.js", "../../javascript/controllers/application.js", "../../javascript/controllers/search_form_controller.js", "../../javascript/controllers/paginate_controller.js", "../../javascript/controllers/select_controller.js", "../../javascript/controllers/select_remote_controller.js", "../../javascript/controllers/statistic_select.js", "../../javascript/controllers/notify_controller.js", "../../javascript/controllers/form_errors_controller.js", "../../javascript/controllers/modal_controller.js", "../../javascript/controllers/disable_controller.js", "../../../node_modules/stimulus-use/dist/index.js", "../../javascript/controllers/table_checkbox_controller.js", "../../javascript/controllers/nested_form_controller.js", "../../javascript/controllers/form_controller.js", "../../../node_modules/@rails/request.js/src/fetch_response.js", "../../../node_modules/@rails/request.js/src/request_interceptor.js", "../../../node_modules/@rails/request.js/src/lib/utils.js", "../../../node_modules/@rails/request.js/src/fetch_request.js", "../../javascript/controllers/direct_method_controller.js", "../../../node_modules/imask/esm/_rollupPluginBabelHelpers-67bba7fb.js", "../../../node_modules/imask/esm/core/change-details.js", "../../../node_modules/imask/esm/core/utils.js", "../../../node_modules/imask/esm/core/action-details.js", "../../../node_modules/imask/esm/core/continuous-tail-details.js", "../../../node_modules/imask/esm/core/holder.js", "../../../node_modules/imask/esm/masked/base.js", "../../../node_modules/imask/esm/masked/factory.js", "../../../node_modules/imask/esm/masked/pattern/input-definition.js", "../../../node_modules/imask/esm/masked/pattern/fixed-definition.js", "../../../node_modules/imask/esm/masked/pattern/chunk-tail-details.js", "../../../node_modules/imask/esm/masked/pattern/cursor.js", "../../../node_modules/imask/esm/masked/regexp.js", "../../../node_modules/imask/esm/masked/pattern.js", "../../../node_modules/imask/esm/masked/range.js", "../../../node_modules/imask/esm/masked/date.js", "../../../node_modules/imask/esm/controls/mask-element.js", "../../../node_modules/imask/esm/controls/html-mask-element.js", "../../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js", "../../../node_modules/imask/esm/controls/input.js", "../../../node_modules/imask/esm/masked/enum.js", "../../../node_modules/imask/esm/masked/number.js", "../../../node_modules/imask/esm/masked/function.js", "../../../node_modules/imask/esm/masked/dynamic.js", "../../../node_modules/imask/esm/masked/pipe.js", "../../../node_modules/imask/esm/index.js", "../../javascript/controllers/inputmask_controller.js", "../../javascript/controllers/dashboard_controller.js", "../../javascript/controllers/support_request_controller.js", "../../../node_modules/@uppy/core/lib/Uppy.js", "../../../node_modules/nanoid/non-secure/index.js", "../../../node_modules/@uppy/store-default/lib/index.js", "../../../node_modules/@uppy/utils/lib/getFileNameAndExtension.js", "../../../node_modules/@uppy/utils/lib/mimeTypes.js", "../../../node_modules/@uppy/utils/lib/getFileType.js", "../../../node_modules/@uppy/utils/lib/generateFileID.js", "../../../node_modules/@uppy/core/lib/supportsUploadProgress.js", "../../../node_modules/@uppy/core/lib/getFileName.js", "../../../node_modules/@uppy/utils/lib/getTimeStamp.js", "../../../node_modules/@uppy/core/lib/loggers.js", "../../../node_modules/@uppy/core/lib/Restricter.js", "../../../node_modules/@uppy/core/lib/locale.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/@uppy/utils/lib/isDOMElement.js", "../../../node_modules/@uppy/utils/lib/findDOMElement.js", "../../../node_modules/@uppy/utils/lib/getTextDirection.js", "../../../node_modules/@uppy/core/lib/UIPlugin.js", "../../../node_modules/@uppy/core/lib/index.js", "../../../node_modules/@uppy/utils/lib/getSpeed.js", "../../../node_modules/@uppy/utils/lib/getBytesRemaining.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarStates.js", "../../../node_modules/@uppy/status-bar/lib/StatusBarUI.js", "../../../node_modules/@uppy/status-bar/lib/calculateProcessingProgress.js", "../../../node_modules/@uppy/status-bar/lib/Components.js", "../../../node_modules/@uppy/utils/lib/secondsToTime.js", "../../../node_modules/@uppy/utils/lib/prettyETA.js", "../../../node_modules/@uppy/status-bar/lib/locale.js", "../../../node_modules/@uppy/status-bar/lib/StatusBar.js", "../../../node_modules/@uppy/informer/lib/FadeIn.js", "../../../node_modules/@uppy/informer/lib/TransitionGroup.js", "../../../node_modules/@uppy/informer/lib/Informer.js", "../../../node_modules/@uppy/utils/lib/dataURItoBlob.js", "../../../node_modules/@uppy/utils/lib/isObjectURL.js", "../../../node_modules/@uppy/utils/lib/isPreviewSupported.js", "../../../node_modules/exifr/dist/mini.esm.mjs", "../../../node_modules/@uppy/thumbnail-generator/lib/locale.js", "../../../node_modules/@uppy/thumbnail-generator/lib/index.js", "../../../node_modules/@uppy/utils/lib/findAllDOMElements.js", "../../../node_modules/@uppy/utils/lib/toArray.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/fallbackApi.js", "../../../node_modules/@uppy/utils/lib/getDroppedFiles/index.js", "../../../node_modules/memoize-one/dist/memoize-one.esm.js", "../../../node_modules/@uppy/utils/lib/FOCUSABLE_ELEMENTS.js", "../../../node_modules/@uppy/dashboard/lib/utils/getActiveOverlayEl.js", "../../../node_modules/@uppy/dashboard/lib/utils/trapFocus.js", "../../../node_modules/@uppy/dashboard/lib/utils/createSuperFocus.js", "../../../node_modules/@uppy/dashboard/lib/components/Dashboard.js", "../../../node_modules/@uppy/utils/lib/isDragDropSupported.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/index.js", "../../../node_modules/@uppy/dashboard/lib/utils/getFileTypeIcon.js", "../../../node_modules/@uppy/dashboard/lib/components/FilePreview.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileProgress/index.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileInfo/index.js", "../../../node_modules/@uppy/utils/lib/truncateString.js", "../../../node_modules/@uppy/dashboard/lib/utils/copyToClipboard.js", "../../../node_modules/@uppy/dashboard/lib/components/FileItem/Buttons/index.js", "../../../node_modules/@uppy/dashboard/lib/components/VirtualList.js", "../../../node_modules/@uppy/dashboard/lib/components/FileList.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFiles.js", "../../../node_modules/@uppy/dashboard/lib/components/AddFilesPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelContent.js", "../../../node_modules/@uppy/dashboard/lib/utils/ignoreEvent.js", "../../../node_modules/@uppy/dashboard/lib/components/EditorPanel.js", "../../../node_modules/@uppy/dashboard/lib/components/PickerPanelTopBar.js", "../../../node_modules/@uppy/dashboard/lib/components/FileCard/index.js", "../../../node_modules/@uppy/dashboard/lib/components/Slide.js", "../../../node_modules/@uppy/dashboard/lib/locale.js", "../../../node_modules/@uppy/dashboard/lib/Dashboard.js", "../../../node_modules/@uppy/utils/lib/NetworkError.js", "../../../node_modules/@uppy/utils/lib/fetchWithNetworkError.js", "../../../node_modules/@uppy/utils/lib/ErrorWithCause.js", "../../../node_modules/@uppy/companion-client/lib/AuthError.js", "../../../node_modules/@uppy/companion-client/lib/RequestClient.js", "../../../node_modules/@uppy/companion-client/lib/tokenStorage.js", "../../../node_modules/@uppy/companion-client/lib/Provider.js", "../../../node_modules/@uppy/companion-client/lib/SearchProvider.js", "../../../node_modules/@uppy/companion-client/lib/Socket.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/AuthView.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/User.js", "../../../node_modules/@uppy/provider-views/lib/Breadcrumbs.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/Header.js", "../../../node_modules/@uppy/provider-views/lib/Browser.js", "../../../node_modules/@uppy/utils/lib/remoteFileObjToLocal.js", "../../../node_modules/@uppy/provider-views/lib/Filter.js", "../../../node_modules/@uppy/provider-views/lib/FooterActions.js", "../../../node_modules/@uppy/provider-views/lib/Item/index.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ItemIcon.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/GridLi.js", "../../../node_modules/@uppy/provider-views/lib/Item/components/ListLi.js", "../../../node_modules/@uppy/provider-views/lib/Loader.js", "../../../node_modules/@uppy/provider-views/lib/CloseWrapper.js", "../../../node_modules/@uppy/provider-views/lib/SharedHandler.js", "../../../node_modules/@uppy/provider-views/lib/View.js", "../../../node_modules/@uppy/provider-views/lib/ProviderView/ProviderView.js", "../../../node_modules/@uppy/provider-views/lib/SearchProviderView/InputView.js", "../../../node_modules/@uppy/provider-views/lib/SearchProviderView/Header.js", "../../../node_modules/@uppy/provider-views/lib/SearchProviderView/SearchProviderView.js", "../../../node_modules/@uppy/store-redux/lib/index.js", "../../../node_modules/@uppy/drag-drop/lib/locale.js", "../../../node_modules/@uppy/drag-drop/lib/DragDrop.js", "../../../node_modules/@uppy/drop-target/lib/index.js", "../../../node_modules/@uppy/file-input/lib/locale.js", "../../../node_modules/@uppy/file-input/lib/FileInput.js", "../../../node_modules/@uppy/image-editor/lib/Editor.js", "../../../node_modules/@uppy/image-editor/lib/locale.js", "../../../node_modules/@uppy/image-editor/lib/ImageEditor.js", "../../../node_modules/@uppy/progress-bar/lib/ProgressBar.js", "../../../node_modules/@uppy/utils/lib/getFileTypeExtension.js", "../../../node_modules/@uppy/audio/lib/supportsMediaRecorder.js", "../../../node_modules/preact/hooks/src/index.js", "../../../node_modules/@uppy/audio/lib/RecordButton.js", "../../../node_modules/@uppy/audio/lib/formatSeconds.js", "../../../node_modules/@uppy/audio/lib/RecordingLength.js", "../../../node_modules/@uppy/audio/lib/AudioSourceSelect.js", "../../../node_modules/@uppy/audio/lib/audio-oscilloscope/index.js", "../../../node_modules/@uppy/audio/lib/SubmitButton.js", "../../../node_modules/@uppy/audio/lib/DiscardButton.js", "../../../node_modules/@uppy/audio/lib/RecordingScreen.js", "../../../node_modules/@uppy/audio/lib/PermissionsScreen.js", "../../../node_modules/@uppy/audio/lib/locale.js", "../../../node_modules/@uppy/audio/lib/Audio.js", "../../../node_modules/@uppy/box/lib/locale.js", "../../../node_modules/@uppy/box/lib/Box.js", "../../../node_modules/@uppy/dropbox/lib/locale.js", "../../../node_modules/@uppy/dropbox/lib/Dropbox.js", "../../../node_modules/@uppy/facebook/lib/locale.js", "../../../node_modules/@uppy/facebook/lib/Facebook.js", "../../../node_modules/@uppy/google-drive/lib/DriveProviderViews.js", "../../../node_modules/@uppy/google-drive/lib/locale.js", "../../../node_modules/@uppy/google-drive/lib/GoogleDrive.js", "../../../node_modules/@uppy/instagram/lib/locale.js", "../../../node_modules/@uppy/instagram/lib/Instagram.js", "../../../node_modules/@uppy/onedrive/lib/locale.js", "../../../node_modules/@uppy/onedrive/lib/OneDrive.js", "../../../node_modules/@uppy/unsplash/lib/Unsplash.js", "../../../node_modules/@uppy/url/lib/UrlUI.js", "../../../node_modules/@uppy/url/lib/utils/forEachDroppedOrPastedUrl.js", "../../../node_modules/@uppy/url/lib/locale.js", "../../../node_modules/@uppy/url/lib/Url.js", "../../../node_modules/@uppy/zoom/lib/locale.js", "../../../node_modules/@uppy/zoom/lib/Zoom.js", "../../../node_modules/@uppy/remote-sources/lib/index.js", "../../../node_modules/@uppy/screen-capture/lib/ScreenRecIcon.js", "../../../node_modules/@uppy/screen-capture/lib/RecordButton.js", "../../../node_modules/@uppy/screen-capture/lib/SubmitButton.js", "../../../node_modules/@uppy/screen-capture/lib/StopWatch.js", "../../../node_modules/@uppy/screen-capture/lib/StreamStatus.js", "../../../node_modules/@uppy/screen-capture/lib/RecorderScreen.js", "../../../node_modules/@uppy/screen-capture/lib/locale.js", "../../../node_modules/@uppy/screen-capture/lib/ScreenCapture.js", "../../../node_modules/@uppy/webcam/lib/Webcam.js", "../../../node_modules/@uppy/utils/lib/canvasToBlob.js", "../../../node_modules/@uppy/webcam/lib/supportsMediaRecorder.js", "../../../node_modules/@uppy/webcam/lib/CameraIcon.js", "../../../node_modules/@uppy/webcam/lib/SnapshotButton.js", "../../../node_modules/@uppy/webcam/lib/RecordButton.js", "../../../node_modules/@uppy/webcam/lib/formatSeconds.js", "../../../node_modules/@uppy/webcam/lib/RecordingLength.js", "../../../node_modules/@uppy/webcam/lib/VideoSourceSelect.js", "../../../node_modules/@uppy/webcam/lib/SubmitButton.js", "../../../node_modules/@uppy/webcam/lib/DiscardButton.js", "../../../node_modules/@uppy/webcam/lib/CameraScreen.js", "../../../node_modules/@uppy/webcam/lib/PermissionsScreen.js", "../../../node_modules/@uppy/webcam/lib/locale.js", "../../../node_modules/@uppy/aws-s3/lib/index.js", "../../../node_modules/@uppy/utils/lib/emitSocketProgress.js", "../../../node_modules/@uppy/utils/lib/getSocketHost.js", "../../../node_modules/@uppy/utils/lib/EventTracker.js", "../../../node_modules/@uppy/utils/lib/ProgressTimeout.js", "../../../node_modules/@uppy/utils/lib/isNetworkError.js", "../../../node_modules/@uppy/aws-s3/lib/MiniXHRUpload.js", "../../../node_modules/@uppy/aws-s3/lib/isXml.js", "../../../node_modules/@uppy/aws-s3/lib/locale.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/index.js", "../../../node_modules/@uppy/utils/lib/AbortController.js", "../../../node_modules/@uppy/aws-s3-multipart/lib/MultipartUploader.js", "../../../node_modules/@uppy/transloadit/lib/index.js", "../../../node_modules/@uppy/tus/lib/index.js", "../../../node_modules/js-base64/base64.mjs", "../../../node_modules/tus-js-client/lib.esm/upload.js", "../../../node_modules/tus-js-client/lib.esm/error.js", "../../../node_modules/tus-js-client/lib.esm/logger.js", "../../../node_modules/tus-js-client/lib.esm/uuid.js", "../../../node_modules/tus-js-client/lib.esm/noopUrlStorage.js", "../../../node_modules/tus-js-client/lib.esm/browser/urlStorage.js", "../../../node_modules/tus-js-client/lib.esm/browser/httpStack.js", "../../../node_modules/tus-js-client/lib.esm/browser/isReactNative.js", "../../../node_modules/tus-js-client/lib.esm/browser/uriToBlob.js", "../../../node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js", "../../../node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js", "../../../node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js", "../../../node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js", "../../../node_modules/tus-js-client/lib.esm/browser/fileReader.js", "../../../node_modules/tus-js-client/lib.esm/browser/fileSignature.js", "../../../node_modules/tus-js-client/lib.esm/browser/index.js", "../../../node_modules/@uppy/tus/lib/getFingerprint.js", "../../../node_modules/@uppy/transloadit/lib/Assembly.js", "../../../node_modules/engine.io-parser/build/esm/commons.js", "../../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js", "../../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js", "../../../node_modules/engine.io-parser/build/esm/index.js", "../../../node_modules/@socket.io/component-emitter/index.mjs", "../../../node_modules/engine.io-client/build/esm/globalThis.browser.js", "../../../node_modules/engine.io-client/build/esm/util.js", "../../../node_modules/engine.io-client/build/esm/transport.js", "../../../node_modules/engine.io-client/build/esm/contrib/yeast.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseqs.js", "../../../node_modules/engine.io-client/build/esm/contrib/has-cors.js", "../../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/polling.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js", "../../../node_modules/engine.io-client/build/esm/transports/websocket.js", "../../../node_modules/engine.io-client/build/esm/transports/index.js", "../../../node_modules/engine.io-client/build/esm/contrib/parseuri.js", "../../../node_modules/engine.io-client/build/esm/socket.js", "../../../node_modules/engine.io-client/build/esm/index.js", "../../../node_modules/socket.io-client/build/esm/url.js", "../../../node_modules/socket.io-parser/build/esm/index.js", "../../../node_modules/socket.io-parser/build/esm/is-binary.js", "../../../node_modules/socket.io-parser/build/esm/binary.js", "../../../node_modules/socket.io-client/build/esm/on.js", "../../../node_modules/socket.io-client/build/esm/socket.js", "../../../node_modules/socket.io-client/build/esm/contrib/backo2.js", "../../../node_modules/socket.io-client/build/esm/manager.js", "../../../node_modules/socket.io-client/build/esm/index.js", "../../../node_modules/@uppy/transloadit/lib/parseUrl.js", "../../../node_modules/@uppy/transloadit/lib/Client.js", "../../../node_modules/@uppy/transloadit/lib/AssemblyOptions.js", "../../../node_modules/@uppy/transloadit/lib/AssemblyWatcher.js", "../../../node_modules/@uppy/transloadit/lib/locale.js", "../../../node_modules/@uppy/xhr-upload/lib/index.js", "../../../node_modules/@uppy/xhr-upload/lib/locale.js", "../../../node_modules/@uppy/compressor/lib/index.js", "../../../node_modules/@uppy/form/lib/index.js", "../../../node_modules/get-form-data/es/index.js", "../../../node_modules/@uppy/golden-retriever/lib/index.js", "../../../node_modules/@uppy/golden-retriever/lib/ServiceWorkerStore.js", "../../../node_modules/@uppy/golden-retriever/lib/IndexedDBStore.js", "../../../node_modules/@uppy/golden-retriever/lib/MetaDataStore.js", "../../../node_modules/@uppy/redux-dev-tools/lib/index.js", "../../../node_modules/uppy/index.mjs", "../../../node_modules/@uppy/locales/lib/ru_RU.js", "../../javascript/controllers/support_request_upload_controller.js", "../../javascript/controllers/tooltip_controller.js", "../../javascript/custom/country_phones.js", "../../javascript/controllers/form_validations_controller.js", "../../javascript/controllers/infinite_scroll_controller.js", "../../javascript/controllers/amount_controller.js", "../../javascript/controllers/macrodroid_controller.js", "../../javascript/controllers/payment_requisite_controller.js", "../../javascript/controllers/clear_upload_controller.js", "../../javascript/controllers/notifications_toggler_controller.js", "../../javascript/controllers/redirect_controller.js", "../../javascript/controllers/autosave_controller.js", "../../javascript/controllers/company_region_changing_controller.js", "../../javascript/controllers/export_controller.js", "../../javascript/controllers/telegram_phone_controller.js", "../../javascript/controllers/confirm_dialog_controller.js", "../../javascript/controllers/export_payment_requisites_stats_controller.js", "../../javascript/controllers/export_work_session_controller.js", "../../javascript/controllers/payment_page_design_controller.js", "../../javascript/controllers/companies_global_settings_modal_controller.js", "../../javascript/controllers/export_wallet_transactions_controller.js", "../../../node_modules/libphonenumber-js/metadata.min.json.js", "../../../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js", "../../../node_modules/libphonenumber-js/source/ParseError.js", "../../../node_modules/libphonenumber-js/source/constants.js", "../../../node_modules/libphonenumber-js/source/tools/semver-compare.js", "../../../node_modules/libphonenumber-js/source/helpers/isObject.js", "../../../node_modules/libphonenumber-js/source/metadata.js", "../../../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js", "../../../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js", "../../../node_modules/libphonenumber-js/source/helpers/parseDigits.js", "../../../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/mergeArrays.js", "../../../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js", "../../../node_modules/libphonenumber-js/source/isPossible.js", "../../../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js", "../../../node_modules/libphonenumber-js/source/helpers/getNumberType.js", "../../../node_modules/libphonenumber-js/source/isValid.js", "../../../node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js", "../../../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js", "../../../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js", "../../../node_modules/libphonenumber-js/source/helpers/RFC3966.js", "../../../node_modules/libphonenumber-js/source/format.js", "../../../node_modules/libphonenumber-js/source/PhoneNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js", "../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js", "../../../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js", "../../../node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js", "../../../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js", "../../../node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js", "../../../node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js", "../../../node_modules/libphonenumber-js/source/parse.js", "../../../node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js", "../../../node_modules/libphonenumber-js/source/normalizeArguments.js", "../../../node_modules/libphonenumber-js/source/parsePhoneNumber_.js", "../../../node_modules/libphonenumber-js/source/isValidPhoneNumber.js", "../../../node_modules/libphonenumber-js/source/isPossiblePhoneNumber.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeState.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeFormatter.js", "../../../node_modules/libphonenumber-js/source/AsYouTypeParser.js", "../../../node_modules/libphonenumber-js/source/AsYouType.js", "../../../node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js", "../../../node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js", "../../../node_modules/libphonenumber-js/min/exports/isPossiblePhoneNumber.js", "../../../node_modules/libphonenumber-js/min/exports/formatIncompletePhoneNumber.js", "../../javascript/controllers/phone_input_controller.js", "../../javascript/controllers/user_telegram_chats_controller.js", "../../javascript/controllers/global_actions_controller.js", "../../javascript/controllers/unblock_clients_controller.js", "../../javascript/controllers/pause_and_logout_controller.js", "../../javascript/controllers/currency_rate_controller.js", "../../javascript/controllers/dynamic_form_select_controller.js", "../../javascript/controllers/payment_upload_controller.js", "../../javascript/controllers/form_field_disable_controller.js", "../../javascript/controllers/instant_redirect_controller.js", "../../javascript/controllers/dropdown_bank_controller.js", "../../javascript/controllers/index.js", "../../../node_modules/alpine-turbo-drive-adapter/dist/alpine-turbo-drive-adapter.esm.js", "../../../node_modules/alpinejs/dist/module.esm.js", "../../javascript/custom/flatpickr.js", "../../javascript/custom/main.js", "../../javascript/channels/notify_channel.js", "../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../javascript/channels/consumer.js", "../../javascript/application.js"], "sourcesContent": ["export default {\n logger: self.console,\n WebSocket: self.WebSocket\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordPing() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n this.recordPing()\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n if (this.isActive()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return this.monitor.recordPing()\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n return this.subscriptions.notify(identifier, \"connected\")\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor", "import Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport logger from \"./logger\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n", "import Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport Subscription from \"./subscription\"\nimport Subscriptions from \"./subscriptions\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport adapters from \"./adapters\"\nimport logger from \"./logger\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n", "/**\n * easytimer.js\n * Generated: 2022-02-12\n * Version: 4.5.3\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.easytimer = {}));\n})(this, (function (exports) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function leftPadding(string, padLength, character) {\n var i;\n var characters = '';\n string = typeof string === 'number' ? String(string) : string;\n\n if (string.length > padLength) {\n return string;\n }\n\n for (i = 0; i < padLength; i = i + 1) {\n characters += String(character);\n }\n\n return (characters + string).slice(-characters.length);\n }\n\n function TimeCounter() {\n this.reset();\n }\n /**\n * [toString convert the counted values on a string]\n * @param {array} units [array with the units to display]\n * @param {string} separator [separator of the units]\n * @param {number} leftZeroPadding [number of zero padding]\n * @return {string} [result string]\n */\n\n\n TimeCounter.prototype.toString = function () {\n var units = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['hours', 'minutes', 'seconds'];\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ':';\n var leftZeroPadding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;\n units = units || ['hours', 'minutes', 'seconds'];\n separator = separator || ':';\n leftZeroPadding = leftZeroPadding || 2;\n var arrayTime = [];\n var i;\n\n for (i = 0; i < units.length; i = i + 1) {\n if (this[units[i]] !== undefined) {\n if (units[i] === 'secondTenths') {\n arrayTime.push(this[units[i]]);\n } else {\n arrayTime.push(leftPadding(this[units[i]], leftZeroPadding, '0'));\n }\n }\n }\n\n return arrayTime.join(separator);\n };\n /**\n * [reset reset counter]\n */\n\n\n TimeCounter.prototype.reset = function () {\n this.secondTenths = 0;\n this.seconds = 0;\n this.minutes = 0;\n this.hours = 0;\n this.days = 0;\n };\n\n function EventEmitter() {\n this.events = {};\n }\n\n EventEmitter.prototype.on = function (event, listener) {\n var _this = this;\n\n if (!Array.isArray(this.events[event])) {\n this.events[event] = [];\n }\n\n this.events[event].push(listener);\n return function () {\n return _this.removeListener(event, listener);\n };\n };\n\n EventEmitter.prototype.removeListener = function (event, listener) {\n if (Array.isArray(this.events[event])) {\n var eventIndex = this.events[event].indexOf(listener);\n\n if (eventIndex > -1) {\n this.events[event].splice(eventIndex, 1);\n }\n }\n };\n\n EventEmitter.prototype.removeAllListeners = function (event) {\n if (!event) {\n this.events = {};\n } else if (Array.isArray(this.events[event])) {\n this.events[event] = [];\n }\n };\n\n EventEmitter.prototype.emit = function (event) {\n var _this2 = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (Array.isArray(this.events[event])) {\n this.events[event].forEach(function (listener) {\n return listener.apply(_this2, args);\n });\n }\n };\n\n /*\n * General functions, variables and constants\n */\n\n var SECOND_TENTHS_PER_SECOND = 10;\n var SECONDS_PER_MINUTE = 60;\n var MINUTES_PER_HOUR = 60;\n var HOURS_PER_DAY = 24;\n var SECOND_TENTHS_POSITION = 0;\n var SECONDS_POSITION = 1;\n var MINUTES_POSITION = 2;\n var HOURS_POSITION = 3;\n var DAYS_POSITION = 4;\n var SECOND_TENTHS = 'secondTenths';\n var SECONDS = 'seconds';\n var MINUTES = 'minutes';\n var HOURS = 'hours';\n var DAYS = 'days';\n var VALID_INPUT_VALUES = [SECOND_TENTHS, SECONDS, MINUTES, HOURS, DAYS];\n var unitsInMilliseconds = {\n secondTenths: 100,\n seconds: 1000,\n minutes: 60000,\n hours: 3600000,\n days: 86400000\n };\n var groupedUnits = {\n secondTenths: SECOND_TENTHS_PER_SECOND,\n seconds: SECONDS_PER_MINUTE,\n minutes: MINUTES_PER_HOUR,\n hours: HOURS_PER_DAY\n };\n\n function mod(number, module) {\n return (number % module + module) % module;\n }\n /**\n * [Timer Timer/Chronometer/Countdown compatible with AMD and NodeJS.\n * Can update time values with different time intervals: tenth of seconds,\n * seconds, minutes and hours.]\n */\n\n\n function Timer() {\n var defaultParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /*\n * PRIVATE variables and Functions\n */\n var counters = new TimeCounter();\n var totalCounters = new TimeCounter();\n var intervalId;\n var eventEmitter = new EventEmitter();\n var running = false;\n var paused = false;\n var precision;\n var timerTypeFactor;\n var customCallback;\n var timerConfig = {};\n var currentParams;\n var targetValues;\n var startValues;\n var countdown;\n var startingDate;\n var targetDate;\n var eventData = {\n detail: {\n timer: this\n }\n };\n setParams(defaultParams);\n\n function updateCounters(precision, roundedValue) {\n var unitsPerGroup = groupedUnits[precision];\n totalCounters[precision] = roundedValue;\n\n if (precision === DAYS) {\n counters[precision] = Math.abs(roundedValue);\n } else if (roundedValue >= 0) {\n counters[precision] = mod(roundedValue, unitsPerGroup);\n } else {\n counters[precision] = mod(unitsPerGroup - mod(roundedValue, unitsPerGroup), unitsPerGroup);\n }\n }\n\n function updateDays(value) {\n return updateUnitByPrecision(value, DAYS);\n }\n\n function updateHours(value) {\n return updateUnitByPrecision(value, HOURS);\n }\n\n function updateMinutes(value) {\n return updateUnitByPrecision(value, MINUTES);\n }\n\n function updateSeconds(value) {\n return updateUnitByPrecision(value, SECONDS);\n }\n\n function updateSecondTenths(value) {\n return updateUnitByPrecision(value, SECOND_TENTHS);\n }\n\n function updateUnitByPrecision(value, precision) {\n var previousValue = totalCounters[precision];\n updateCounters(precision, calculateIntegerUnitQuotient(value, unitsInMilliseconds[precision]));\n return totalCounters[precision] !== previousValue;\n }\n\n function stopTimerAndResetCounters() {\n stopTimer();\n resetCounters();\n }\n\n function stopTimer() {\n clearInterval(intervalId);\n intervalId = undefined;\n running = false;\n paused = false;\n }\n\n function setParamsAndStartTimer(params) {\n if (!isPaused()) {\n setParams(params);\n } else {\n startingDate = calculateStartingDate();\n targetValues = setTarget(currentParams.target);\n }\n\n startTimer();\n }\n\n function startTimer() {\n var interval = unitsInMilliseconds[precision];\n\n if (isTargetAchieved(roundTimestamp(Date.now()))) {\n return;\n }\n\n intervalId = setInterval(updateTimerAndDispatchEvents, interval);\n running = true;\n paused = false;\n }\n\n function calculateStartingDate() {\n return roundTimestamp(Date.now()) - totalCounters.secondTenths * unitsInMilliseconds[SECOND_TENTHS] * timerTypeFactor;\n }\n\n function updateTimerAndDispatchEvents() {\n var currentTime = roundTimestamp(Date.now());\n var valuesUpdated = updateTimer();\n dispatchEvents(valuesUpdated);\n customCallback(eventData.detail.timer);\n\n if (isTargetAchieved(currentTime)) {\n stop();\n dispatchEvent('targetAchieved', eventData);\n }\n }\n\n function updateTimer() {\n var currentTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : roundTimestamp(Date.now());\n var elapsedTime = timerTypeFactor > 0 ? currentTime - startingDate : startingDate - currentTime;\n var valuesUpdated = {};\n valuesUpdated[SECOND_TENTHS] = updateSecondTenths(elapsedTime);\n valuesUpdated[SECONDS] = updateSeconds(elapsedTime);\n valuesUpdated[MINUTES] = updateMinutes(elapsedTime);\n valuesUpdated[HOURS] = updateHours(elapsedTime);\n valuesUpdated[DAYS] = updateDays(elapsedTime);\n return valuesUpdated;\n }\n\n function roundTimestamp(timestamp) {\n return Math.floor(timestamp / unitsInMilliseconds[precision]) * unitsInMilliseconds[precision];\n }\n\n function dispatchEvents(valuesUpdated) {\n if (valuesUpdated[SECOND_TENTHS]) {\n dispatchEvent('secondTenthsUpdated', eventData);\n }\n\n if (valuesUpdated[SECONDS]) {\n dispatchEvent('secondsUpdated', eventData);\n }\n\n if (valuesUpdated[MINUTES]) {\n dispatchEvent('minutesUpdated', eventData);\n }\n\n if (valuesUpdated[HOURS]) {\n dispatchEvent('hoursUpdated', eventData);\n }\n\n if (valuesUpdated[DAYS]) {\n dispatchEvent('daysUpdated', eventData);\n }\n }\n\n function isTargetAchieved(currentDate) {\n return targetValues instanceof Array && currentDate >= targetDate;\n }\n\n function resetCounters() {\n counters.reset();\n totalCounters.reset();\n }\n\n function setParams(params) {\n params = params || {};\n precision = checkPrecision(params.precision);\n customCallback = typeof params.callback === 'function' ? params.callback : function () {};\n countdown = params.countdown === true;\n timerTypeFactor = countdown === true ? -1 : 1;\n\n if (_typeof(params.startValues) === 'object') {\n setStartValues(params.startValues);\n } else {\n startValues = null;\n }\n\n startingDate = calculateStartingDate();\n updateTimer();\n\n if (_typeof(params.target) === 'object') {\n targetValues = setTarget(params.target);\n } else if (countdown) {\n params.target = {\n seconds: 0\n };\n targetValues = setTarget(params.target);\n } else {\n targetValues = null;\n }\n\n timerConfig = {\n precision: precision,\n callback: customCallback,\n countdown: _typeof(params) === 'object' && params.countdown === true,\n target: targetValues,\n startValues: startValues\n };\n currentParams = params;\n }\n\n function checkPrecision(precision) {\n precision = typeof precision === 'string' ? precision : SECONDS;\n\n if (!isValidInputValue(precision)) {\n throw new Error(\"Error in precision parameter: \".concat(precision, \" is not a valid value\"));\n }\n\n return precision;\n }\n\n function isValidInputValue(value) {\n return VALID_INPUT_VALUES.indexOf(value) >= 0;\n }\n\n function configInputValues(inputValues) {\n var values;\n\n if (_typeof(inputValues) === 'object') {\n if (inputValues instanceof Array) {\n if (inputValues.length !== 5) {\n throw new Error('Array size not valid');\n }\n\n values = inputValues;\n } else {\n for (var value in inputValues) {\n if (VALID_INPUT_VALUES.indexOf(value) < 0) {\n throw new Error(\"Error in startValues or target parameter: \".concat(value, \" is not a valid input value\"));\n }\n }\n\n values = [inputValues.secondTenths || 0, inputValues.seconds || 0, inputValues.minutes || 0, inputValues.hours || 0, inputValues.days || 0];\n }\n }\n\n values = values.map(function (value) {\n return parseInt(value, 10);\n });\n var secondTenths = values[SECOND_TENTHS_POSITION];\n var seconds = values[SECONDS_POSITION] + calculateIntegerUnitQuotient(secondTenths, SECOND_TENTHS_PER_SECOND);\n var minutes = values[MINUTES_POSITION] + calculateIntegerUnitQuotient(seconds, SECONDS_PER_MINUTE);\n var hours = values[HOURS_POSITION] + calculateIntegerUnitQuotient(minutes, MINUTES_PER_HOUR);\n var days = values[DAYS_POSITION] + calculateIntegerUnitQuotient(hours, HOURS_PER_DAY);\n values[SECOND_TENTHS_POSITION] = secondTenths % SECOND_TENTHS_PER_SECOND;\n values[SECONDS_POSITION] = seconds % SECONDS_PER_MINUTE;\n values[MINUTES_POSITION] = minutes % MINUTES_PER_HOUR;\n values[HOURS_POSITION] = hours % HOURS_PER_DAY;\n values[DAYS_POSITION] = days;\n return values;\n }\n\n function calculateIntegerUnitQuotient(unit, divisor) {\n var quotient = unit / divisor;\n return quotient < 0 ? Math.ceil(quotient) : Math.floor(quotient);\n }\n\n function setTarget(inputTarget) {\n if (!inputTarget) {\n return;\n }\n\n targetValues = configInputValues(inputTarget);\n var targetCounter = calculateTotalCounterFromValues(targetValues);\n targetDate = startingDate + targetCounter.secondTenths * unitsInMilliseconds[SECOND_TENTHS] * timerTypeFactor;\n return targetValues;\n }\n\n function setStartValues(inputStartValues) {\n startValues = configInputValues(inputStartValues);\n counters.secondTenths = startValues[SECOND_TENTHS_POSITION];\n counters.seconds = startValues[SECONDS_POSITION];\n counters.minutes = startValues[MINUTES_POSITION];\n counters.hours = startValues[HOURS_POSITION];\n counters.days = startValues[DAYS_POSITION];\n totalCounters = calculateTotalCounterFromValues(startValues, totalCounters);\n }\n\n function calculateTotalCounterFromValues(values, outputCounter) {\n var total = outputCounter || {};\n total.days = values[DAYS_POSITION];\n total.hours = total.days * HOURS_PER_DAY + values[HOURS_POSITION];\n total.minutes = total.hours * MINUTES_PER_HOUR + values[MINUTES_POSITION];\n total.seconds = total.minutes * SECONDS_PER_MINUTE + values[SECONDS_POSITION];\n total.secondTenths = total.seconds * SECOND_TENTHS_PER_SECOND + values[[SECOND_TENTHS_POSITION]];\n return total;\n }\n /*\n * PUBLIC functions\n */\n\n /**\n * [stop stops the timer and resets the counters. Dispatch stopped event]\n */\n\n\n function stop() {\n stopTimerAndResetCounters();\n dispatchEvent('stopped', eventData);\n }\n /**\n * [stop stops and starts the timer. Dispatch stopped event]\n */\n\n\n function reset() {\n stopTimerAndResetCounters();\n setParamsAndStartTimer(currentParams);\n dispatchEvent('reset', eventData);\n }\n /**\n * [start starts the timer configured by the params object. Dispatch started event]\n * @param {object} params [Configuration parameters]\n */\n\n\n function start() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n params = _objectSpread2(_objectSpread2({}, defaultParams), params);\n\n if (isRunning()) {\n return;\n }\n\n setParamsAndStartTimer(params);\n dispatchEvent('started', eventData);\n }\n /**\n * [pause stops the timer without resetting the counters. The timer it can be restarted with start function.\n * Dispatch paused event]\n * @return {type} [description]\n */\n\n\n function pause() {\n stopTimer();\n paused = true;\n dispatchEvent('paused', eventData);\n }\n /**\n * [addEventListener Adds event listener to the timer]\n * @param {string} eventType [event to listen]\n * @param {function} listener [the event listener function]\n */\n\n\n function addEventListener(eventType, listener) {\n eventEmitter.on(eventType, listener);\n }\n /**\n * [removeEventListener Removes event listener to the timer]\n * @param {string} eventType [event to remove listener]\n * @param {function} listener [listener to remove]\n */\n\n\n function removeEventListener(eventType, listener) {\n eventEmitter.removeListener(eventType, listener);\n }\n /**\n * [removeAllEventListeners Removes all events listeners for the given type, no type to remove all types]\n * @param {string} [eventType] [event to remove listener]\n */\n\n\n function removeAllEventListeners(eventType) {\n eventEmitter.removeAllListeners(eventType);\n }\n /**\n * [dispatchEvent dispatches an event]\n * @param {string} eventType [event to dispatch]\n * @param data\n */\n\n\n function dispatchEvent(eventType, data) {\n eventEmitter.emit(eventType, data);\n }\n /**\n * [isRunning return true if the timer is running]\n * @return {Boolean}\n */\n\n\n function isRunning() {\n return running;\n }\n /**\n * [isPaused returns true if the timer is paused]\n * @return {Boolean}\n */\n\n\n function isPaused() {\n return paused;\n }\n /**\n * [getTimeValues returns the counter with the current timer values]\n * @return {TimeCounter}\n */\n\n\n function getTimeValues() {\n return counters;\n }\n /**\n * [getTotalTimeValues returns the counter with the current timer total values]\n * @return {TimeCounter}\n */\n\n\n function getTotalTimeValues() {\n return totalCounters;\n }\n /**\n * [getConfig returns the configuration parameters]\n * @return {type}\n */\n\n\n function getConfig() {\n return timerConfig;\n }\n /**\n * Public API\n * Definition of Timer instance public functions\n */\n\n\n if (typeof this !== 'undefined') {\n this.start = start;\n this.pause = pause;\n this.stop = stop;\n this.reset = reset;\n this.isRunning = isRunning;\n this.isPaused = isPaused;\n this.getTimeValues = getTimeValues;\n this.getTotalTimeValues = getTotalTimeValues;\n this.getConfig = getConfig;\n this.addEventListener = addEventListener;\n this.on = addEventListener;\n this.removeEventListener = removeEventListener;\n this.removeAllEventListeners = removeAllEventListeners;\n this.off = removeEventListener;\n }\n }\n\n exports.Timer = Timer;\n exports[\"default\"] = Timer;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "/*\n* Notiflix Confirm AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.5\n* Author: Furkan MT (https://github.com/furcan)\n* Copyright 2019 - 2022 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Notiflix = factory(root);\n }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n 'use strict';\n\n // COMMON: SSR check: begin\n if (typeof window === 'undefined' && typeof window.document === 'undefined') {\r\n return false;\r\n }\n // COMMON: SSR check: end\n\n // COMMON: Variables: begin\n var notiflixNamespace = 'Notiflix';\r\n var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\r\n var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n // COMMON: Variables: end\n\n // CONFIRM: Default Settings: begin\n var typesConfirm = {\r\n Show: 'Show',\r\n Ask: 'Ask',\r\n Prompt: 'Prompt',\r\n };\r\n var newConfirmSettings;\r\n var confirmSettings = {\r\n ID: 'NotiflixConfirmWrap', // can not customizable\r\n className: 'notiflix-confirm',\r\n width: '300px',\r\n zindex: 4003,\r\n position: 'center', // 'center' - 'center-top' - 'center-bottom' - 'right-top' - 'right-center' - 'right-bottom' - 'left-top' - 'left-center' - 'left-bottom'\r\n distance: '10px',\r\n backgroundColor: '#f8f8f8',\r\n borderRadius: '25px',\r\n backOverlay: true,\r\n backOverlayColor: 'rgba(0,0,0,0.5)',\r\n rtl: false,\r\n fontFamily: 'Quicksand',\r\n cssAnimation: true,\r\n cssAnimationDuration: 300,\r\n cssAnimationStyle: 'fade', // 'zoom' - 'fade'\r\n plainText: true,\r\n\n titleColor: '#32c682',\r\n titleFontSize: '16px',\r\n titleMaxLength: 34,\r\n\n messageColor: '#1e1e1e',\r\n messageFontSize: '14px',\r\n messageMaxLength: 110,\r\n\n buttonsFontSize: '15px',\r\n buttonsMaxLength: 34,\r\n okButtonColor: '#f8f8f8',\r\n okButtonBackground: '#32c682',\r\n cancelButtonColor: '#f8f8f8',\r\n cancelButtonBackground: '#a9a9a9',\r\n };\n // CONFIRM: Default Settings: end\n\n // COMMON: Console Error: begin\n var commonConsoleError = function (message) {\r\n return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\r\n };\n // COMMON: Console Error: end\n\n // COMMON: Check Head or Body: begin\n var commonCheckHeadOrBody = function (element) {\r\n if (!element) { element = 'head'; }\r\n if (window.document[element] === null) {\r\n commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\r\n return false;\r\n }\r\n return true;\r\n };\n // COMMON: Check Head or Body: end\n\n // COMMON: Set Internal CSS Codes: begin\n var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\r\n // check doc head\r\n if (!commonCheckHeadOrBody('head')) { return false; }\r\n\n // internal css\r\n if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\r\n var internalCSS = window.document.createElement('style');\r\n internalCSS.id = styleElementId;\r\n internalCSS.innerHTML = getInternalCSSCodes();\r\n window.document.head.appendChild(internalCSS);\r\n }\r\n };\n // COMMON: Set Internal CSS Codes: end\n\n // COMMON: Extend Options: begin\n var commonExtendOptions = function () {\r\n // variables\r\n var extended = {};\r\n var deep = false;\r\n var i = 0;\r\n // check if a deep merge\r\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\r\n deep = arguments[0];\r\n i++;\r\n }\r\n // merge the object into the extended object\r\n var merge = function (obj) {\r\n for (var prop in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n // if property is an object, merge properties\r\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\r\n extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\r\n } else {\r\n extended[prop] = obj[prop];\r\n }\r\n }\r\n }\r\n };\r\n // loop through each object and conduct a merge\r\n for (; i < arguments.length; i++) {\r\n merge(arguments[i]);\r\n }\r\n return extended;\r\n };\n // COMMON: Extend Options: end\n\n // COMMON: Get Plaintext: begin\n var commonGetPlaintext = function (html) {\r\n var htmlPool = window.document.createElement('div');\r\n htmlPool.innerHTML = html;\r\n return htmlPool.textContent || htmlPool.innerText || '';\r\n };\n // COMMON: Get Plaintext: end\n\n // CONFIRM: Get Internal CSS Codes: begin\n var confirmGetInternalCSSCodes = function () {\r\n var confirmCSS = '[id^=NotiflixConfirmWrap]{position:fixed;z-index:4003;width:100%;height:100%;left:0;top:0;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}[id^=NotiflixConfirmWrap].nx-position-center-top{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-center-bottom{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap].nx-position-left-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-left-center{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}[id^=NotiflixConfirmWrap].nx-position-left-bottom{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap].nx-position-right-top{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-right-center{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}[id^=NotiflixConfirmWrap].nx-position-right-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixConfirmWrap]>div[class*=\"-overlay\"]{width:100%;height:100%;left:0;top:0;background:rgba(255,255,255,.5);position:fixed;z-index:0}[id^=NotiflixConfirmWrap]>div[class*=\"-overlay\"].nx-with-animation{-webkit-animation:confirm-overlay-animation .3s ease-in-out 0s normal;animation:confirm-overlay-animation .3s ease-in-out 0s normal}@-webkit-keyframes confirm-overlay-animation{0%{opacity:0}100%{opacity:1}}@keyframes confirm-overlay-animation{0%{opacity:0}100%{opacity:1}}[id^=NotiflixConfirmWrap].nx-remove>div[class*=\"-overlay\"].nx-with-animation{opacity:0;-webkit-animation:confirm-overlay-animation-remove .3s ease-in-out 0s normal;animation:confirm-overlay-animation-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}@keyframes confirm-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]{width:300px;max-width:100%;max-height:96vh;overflow-x:hidden;overflow-y:auto;border-radius:25px;padding:10px;margin:0;-webkit-filter:drop-shadow(0 0 5px rgba(0,0,0,0.05));filter:drop-shadow(0 0 5px rgba(0, 0, 0, .05));background:#f8f8f8;color:#1e1e1e;position:relative;z-index:1;text-align:center}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]{float:left;width:100%;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>h5{float:left;width:100%;margin:0;padding:0 0 10px;border-bottom:1px solid rgba(0,0,0,.1);color:#32c682;font-family:inherit!important;font-size:16px;line-height:1.4;font-weight:500;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div{font-family:inherit!important;margin:15px 0 20px;padding:0 10px;float:left;width:100%;font-size:14px;line-height:1.4;font-weight:normal;color:inherit;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div{font-family:inherit!important;float:left;width:100%;margin:15px 0 0;padding:0}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input{font-family:inherit!important;float:left;width:100%;height:40px;margin:0;padding:0 15px;border:1px solid rgba(0,0,0,.1);border-radius:25px;font-size:14px;font-weight:normal;line-height:1;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-align:left}[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input{text-align:right}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input:hover{border-color:rgba(0,0,0,.1)}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input:focus{border-color:rgba(0,0,0,.3)}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input.nx-validation-failure{border-color:#ff5549}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input.nx-validation-success{border-color:#32c682}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:inherit;float:left;width:100%;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a{cursor:pointer;font-family:inherit!important;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;float:left;width:48%;padding:9px 5px;border-radius:inherit!important;font-weight:500;font-size:15px;line-height:1.4;color:#f8f8f8;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-confirm-button-ok{margin:0 2% 0 0;background:#32c682}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-confirm-button-cancel{margin:0 0 0 2%;background:#a9a9a9}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-full{margin:0;width:100%}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a:hover{-webkit-box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25);box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25)}[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-buttons\"],[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}[id^=NotiflixConfirmWrap].nx-with-animation.nx-fade>div[class*=\"-content\"]{-webkit-animation:confirm-animation-fade .3s ease-in-out 0s normal;animation:confirm-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes confirm-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-zoom>div[class*=\"-content\"]{-webkit-animation:confirm-animation-zoom .3s ease-in-out 0s normal;animation:confirm-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes confirm-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-fade.nx-remove>div[class*=\"-content\"]{opacity:0;-webkit-animation:confirm-animation-fade-remove .3s ease-in-out 0s normal;animation:confirm-animation-fade-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-fade-remove{0%{opacity:1}100%{opacity:0}}@keyframes confirm-animation-fade-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-zoom.nx-remove>div[class*=\"-content\"]{opacity:0;-webkit-animation:confirm-animation-zoom-remove .3s ease-in-out 0s normal;animation:confirm-animation-zoom-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes confirm-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}';\r\n return confirmCSS || null;\r\n };\n // CONFIRM: Get Internal CSS Codes: end\n\n // CONFIRM: Create: begin\n var confirmCreate = function (confirmType, title, messageOrQuestion, answer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options) {\r\n // check doc body\r\n if (!commonCheckHeadOrBody('body')) { return false; }\r\n\n // if not initialized pretend like init\r\n if (!newConfirmSettings) {\r\n Notiflix.Confirm.init({});\r\n }\r\n\n // create a backup for new settings\r\n var newConfirmSettingsBackup = commonExtendOptions(true, newConfirmSettings, {});\r\n\n // check the \"options\": begin\r\n if (typeof options === 'object' && !Array.isArray(options)) {\r\n // extend new settings with the new options\r\n newConfirmSettings = commonExtendOptions(true, newConfirmSettings, options);\r\n }\r\n // check the \"options\": end\r\n\n // check the arguments: begin\r\n if (typeof title !== 'string') { title = 'Notiflix Confirm'; }\r\n if (typeof messageOrQuestion !== 'string') { messageOrQuestion = 'Do you agree with me?'; }\r\n if (typeof okButtonText !== 'string') { okButtonText = 'Yes'; }\r\n if (typeof cancelButtonText !== 'string') { cancelButtonText = 'No'; }\r\n if (typeof okButtonCallback !== 'function') { okButtonCallback = undefined; }\r\n if (typeof cancelButtonCallback !== 'function') { cancelButtonCallback = undefined; }\r\n // check the arguments: end\r\n\n // if plainText is true => HTML tags not allowed: begin\r\n if (newConfirmSettings.plainText) {\r\n title = commonGetPlaintext(title);\r\n messageOrQuestion = commonGetPlaintext(messageOrQuestion);\r\n okButtonText = commonGetPlaintext(okButtonText);\r\n cancelButtonText = commonGetPlaintext(cancelButtonText);\r\n }\r\n // if plainText is true => HTML tags not allowed: end\r\n\n // if plainText is false but the contents length more than ***MaxLength => Possible HTML tags error: begin\r\n if (!newConfirmSettings.plainText) {\r\n if (title.length > newConfirmSettings.titleMaxLength) {\r\n title = 'Possible HTML Tags Error';\r\n messageOrQuestion = 'The \"plainText\" option is \"false\" and the title content length is more than \"titleMaxLength\" option.';\r\n okButtonText = 'Okay';\r\n cancelButtonText = '...';\r\n }\r\n if (messageOrQuestion.length > newConfirmSettings.messageMaxLength) {\r\n title = 'Possible HTML Tags Error';\r\n messageOrQuestion = 'The \"plainText\" option is \"false\" and the message content length is more than \"messageMaxLength\" option.';\r\n okButtonText = 'Okay';\r\n cancelButtonText = '...';\r\n }\r\n if ((okButtonText.length || cancelButtonText.length) > newConfirmSettings.buttonsMaxLength) {\r\n title = 'Possible HTML Tags Error';\r\n messageOrQuestion = 'The \"plainText\" option is \"false\" and the buttons content length is more than \"buttonsMaxLength\" option.';\r\n okButtonText = 'Okay';\r\n cancelButtonText = '...';\r\n }\r\n }\r\n // if plainText is false but the contents length more than ***MaxLength => Possible HTML tags error: end\r\n\n // max length: begin\r\n if (title.length > newConfirmSettings.titleMaxLength) {\r\n title = title.substring(0, newConfirmSettings.titleMaxLength) + '...';\r\n }\r\n if (messageOrQuestion.length > newConfirmSettings.messageMaxLength) {\r\n messageOrQuestion = messageOrQuestion.substring(0, newConfirmSettings.messageMaxLength) + '...';\r\n }\r\n if (okButtonText.length > newConfirmSettings.buttonsMaxLength) {\r\n okButtonText = okButtonText.substring(0, newConfirmSettings.buttonsMaxLength) + '...';\r\n }\r\n if (cancelButtonText.length > newConfirmSettings.buttonsMaxLength) {\r\n cancelButtonText = cancelButtonText.substring(0, newConfirmSettings.buttonsMaxLength) + '...';\r\n }\r\n // max length: end\r\n\n // if cssAnimaion is false => duration: begin\r\n if (!newConfirmSettings.cssAnimation) {\r\n newConfirmSettings.cssAnimationDuration = 0;\r\n }\r\n // if cssAnimaion is false => duration: end\r\n\n // confirm wrap: begin\r\n var ntflxConfirmWrap = window.document.createElement('div');\r\n ntflxConfirmWrap.id = confirmSettings.ID;\r\n ntflxConfirmWrap.className = newConfirmSettings.className + (newConfirmSettings.cssAnimation ? ' nx-with-animation nx-' + newConfirmSettings.cssAnimationStyle : '');\r\n ntflxConfirmWrap.style.zIndex = newConfirmSettings.zindex;\r\n ntflxConfirmWrap.style.padding = newConfirmSettings.distance;\r\n\n // rtl: begin\r\n if (newConfirmSettings.rtl) {\r\n ntflxConfirmWrap.setAttribute('dir', 'rtl');\r\n ntflxConfirmWrap.classList.add('nx-rtl-on');\r\n }\r\n // rtl: end\r\n\n // position: begin\r\n var confirmPosition = typeof newConfirmSettings.position === 'string' ? newConfirmSettings.position.trim() : 'center';\r\n ntflxConfirmWrap.classList.add('nx-position-' + confirmPosition);\r\n // position: end\r\n\n // font-family\r\n ntflxConfirmWrap.style.fontFamily = '\"' + newConfirmSettings.fontFamily + '\", ' + defaultFontFamily;\r\n\n // if background overlay is true: begin\r\n var confirmOverlay = '';\r\n if (newConfirmSettings.backOverlay) {\r\n confirmOverlay = '
';\r\n }\r\n // if background overlay is true: end\r\n\n // if have a callback => add cancel button: begin\r\n var cancelButtonHTML = '';\r\n if (typeof okButtonCallback === 'function') {\r\n cancelButtonHTML = '' + cancelButtonText + '';\r\n }\r\n // if have a callback => add cancel button: end\r\n\n // check the validation module: begin\r\n var setValidationInput = '';\r\n var theExpectedAnswer = null;\r\n var theClientAnswer = undefined;\r\n if (confirmType === typesConfirm.Ask || confirmType === typesConfirm.Prompt) {\r\n theExpectedAnswer = answer || '';\r\n var inputMaxLength = (confirmType === typesConfirm.Ask) ? Math.ceil(theExpectedAnswer.length * 1.5) : (theExpectedAnswer.length > 200 ? Math.ceil(theExpectedAnswer.length * 1.5) : 250);\r\n var inputDefaultValueAttr = confirmType === typesConfirm.Prompt ? ('value=\"' + theExpectedAnswer + '\"') : '';\r\n setValidationInput = '';\r\n }\r\n // check the validation module: end\r\n\n // confirm wrap content: begin\r\n ntflxConfirmWrap.innerHTML = confirmOverlay +\r\n '