{"version":3,"sources":["webpack:///./node_modules/devextreme/exporter/exceljs/export.js","webpack:///./node_modules/devextreme/file_management/file_system_item.js","webpack:///./node_modules/devextreme/events/core/events_engine.js","webpack:///./node_modules/devextreme/events/core/hook_touch_props.js","webpack:///./node_modules/devextreme/events/core/keyboard_processor.js","webpack:///./node_modules/devextreme/events/utils/add_namespace.js","webpack:///./node_modules/devextreme/events/utils/event_nodes_disposing.js","webpack:///./node_modules/devextreme/events/pointer/mspointer.js","webpack:///./node_modules/devextreme/events/pointer/mouse_and_touch.js","webpack:///./node_modules/devextreme/exporter/excel_creator.js","webpack:///./node_modules/devextreme/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/exporter/svg_creator.js","webpack:///./node_modules/devextreme/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/exporter/jspdf/export_data_grid.js","webpack:///./node_modules/devextreme/exporter/jspdf/export.js","webpack:///./node_modules/devextreme/exporter/exceljs/export_data_grid.js","webpack:///./node_modules/devextreme/exporter/exceljs/export_format.js","webpack:///./node_modules/devextreme/exporter/exceljs/export_merged_ranges_manager.js","webpack:///./node_modules/devextreme/exporter/exceljs/export_pivot_grid.js","webpack:///./node_modules/devextreme/events/transform.js","webpack:///./node_modules/devextreme/events/utils/index.js","webpack:///./node_modules/devextreme/events/visibility_change.js","webpack:///./node_modules/devextreme/file_management/object_provider.js","webpack:///./node_modules/devextreme/file_management/remote_provider.js","webpack:///./node_modules/devextreme/file_management/custom_provider.js","webpack:///./node_modules/devextreme/format_helper.js","webpack:///./node_modules/devextreme/events/drag.js","webpack:///./node_modules/devextreme/events/core/event_registrator.js","webpack:///./node_modules/devextreme/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/devextreme/events/core/emitter_registrator.js","webpack:///./node_modules/devextreme/events/hold.js","webpack:///./node_modules/devextreme/events/short.js","webpack:///./node_modules/devextreme/events/core/wheel.js","webpack:///./node_modules/devextreme/events/core/emitter.feedback.js","webpack:///./node_modules/devextreme/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/events/index.js","webpack:///./node_modules/devextreme/events/core/emitter.js","webpack:///./node_modules/devextreme/events/double_click.js","webpack:///./node_modules/devextreme/events/pointer/base.js","webpack:///./node_modules/devextreme/events/hover.js","webpack:///./node_modules/devextreme/exporter/file_saver.js","webpack:///./node_modules/devextreme/file_management/provider_base.js","webpack:///./node_modules/devextreme/events/click.js","webpack:///./node_modules/devextreme/events/pointer.js","webpack:///./node_modules/devextreme/events/gesture/emitter.gesture.js","webpack:///./node_modules/devextreme/events/contextmenu.js","webpack:///./node_modules/devextreme/events/swipe.js","webpack:///./node_modules/devextreme/exporter.js","webpack:///./node_modules/devextreme/file_management/utils.js","webpack:///./node_modules/devextreme/file_management/errors.js","webpack:///./node_modules/devextreme/excel_exporter.js","webpack:///./node_modules/devextreme/events/core/event_registrator_callbacks.js","webpack:///./node_modules/devextreme/events/pointer/touch.js","webpack:///./node_modules/devextreme/events/pointer/observer.js","webpack:///./node_modules/devextreme/events/pointer/mouse.js","webpack:///./node_modules/devextreme/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/exporter/image_creator.js"],"names":["exports","Export","obj","_type","_message","__esModule","_export_format","_export_merged_ranges_manager","_extend","_window","getFullOptions","options","fullOptions","extend","isDefined","worksheet","isObject","Error","topLeftCell","isString","_fullOptions$workshee","getCell","row","col","column","keepColumnWidths","loadPanel","enabled","text","default","format","convertDateForExcelJS","date","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setNumberFormat","excelCell","numberFormat","numFmt","getCellStyles","dataProvider","_this","this","styles","getStyles","forEach","style","tryConvertToExcelNumberFormat","dataType","replace","newFormat","ExportFormat","formatObjectConverter","currency","convertFormat","precision","setAlignment","wrapText","horizontalAlignment","alignment","horizontal","vertical","setColumnsWidth","widths","startColumnIndex","i","length","columnWidth","isFinite","getColumn","width","Math","min","floor","setLoadPanelOptions","component","renderLoadPanel","hasWindow","_setOptionWithoutOptionChange","helpers","_this2","customizeCell","autoFilterEnabled","selectedRowsOnly","mergeRowFieldValues","mergeColumnFieldValues","initialLoadPanelOptions","option","animation","_renderLoadPanel","properties","outlineProperties","summaryBelow","summaryRight","cellRange","from","to","getDataProvider","Promise","resolve","ready","done","columns","getColumns","dataRowsCount","getRowsCount","getColumnsWidths","mergedRangesManager","MergedRangesManager","rowIndex","getRow","_trySetOutlineLevel","exportRow","applyMergedRages","worksheetViewSettings","views","rightToLeft","_isFrozenZone","Object","keys","indexOf","_getWorksheetFrozenState","_trySetAutoFilter","always","cellCount","cellIndex","cellData","getCellData","updateMergedRanges","cellInfo","findMergedCellInfo","masterCell","value","isDate","_styles$dataProvider$","getStyleId","bold","test","_trySetFont","isFunction","_getCustomizeCellOptions","cellSourceData","_utils","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","_iterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","_default","FileSystemItem","ctor","arguments","_publicCtor","_internalCtor","apply","_proto","pathInfo","isDirectory","parentPath","_getPathByPathInfo","relativeName","pathCombine","key","getFullPathInfo","path","pathKeys","map","_ref","isRoot","push","_initialize","parts","getPathParts","part","pathInfoPart","getName","size","dateModified","thumbnail","tooltipText","getFileExtension","equals","item","createClone","result","hasSubDirectories","dataItem","escape","info","getEscapedFileName","join","PATH_SEPARATOR","module","_event_registrator_callbacks","_interopRequireDefault","_dom_adapter","_dependency_injector","_callbacks","_errors","_weak_map","_hook_touch_props","_call_once","_typeof","window","getWindow","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","matchesSafe","target","selector","isWindow","nodeName","elementMatches","skipEvent","specialData","callback","elementDataMap","guid","special","add","eventName","eventObject","getField","field","callMethod","methodName","context","args","eventsEngine","on","getHandler","normalizeOnArguments","iterate","element","data","handler","getHandlersController","addHandler","one","oneTimeHandler","off","removeHandler","trigger","normalizeTriggerArguments","event","extraParameters","type","handlersController","callHandlers","isPropagationStopped","parents","getParents","parent","parentNode","currentTarget","nodeType","nativeMethodName","localName","isLinkClickEvent","callNativeMethod","triggerHandler","applyForEach","method","isNode","itemArgs","itemElement","passiveEventHandlersSupported","isSupported","defineProperty","get","addEventListener","e","elementData","eventNameParts","split","namespaces","eventNameIsDefined","set","handleObjects","nativeHandler","eventData","callHandler","secondaryTargetIsInside","handlerArgs","relatedTarget","contains","container","document","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","preventDefault","stopPropagation","handleObject","wrappedHandler","delegateTarget","namespace","nativeListenerOptions","subscribeName","shouldAddNativeListener","Event","passive","removeListener","listen","removeByEventName","removedHandler","filter","skip","isSubset","delete","forceStop","handleCallback","isImmediatePropagationStopped","original","checked","src","originalEvent","iterateEventNames","calculateWhich","which","setForKeyEvent","charCode","keyCode","button","setForMouseEvent","1","2","3","4","initEvent","EventClass","addProperty","propName","hook","eventInstance","enumerable","configurable","writable","config","normalizeEventArguments","that","propagationStopped","immediatePropagationStopped","defaultPrevented","stopImmediatePropagation","isDefaultPrevented","pageX","pageY","beforeSetStrategy","afterSetStrategy","engine","fire","inject","subscribeGlobal","offArgs","splice","touchPropsToHook","touches","changedTouches","touchPropHook","_renderer","_events_engine","_class","_array","_index","inherit","_keydown","addNamespace","_compositionStart","_compositionEnd","_element","focusTarget","_focusTarget","_handler","_processFunction","isNotFocusTarget","inArray","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","bind","dispose","keyName","normalizeKeyName","code","ctrl","ctrlKey","location","metaKey","shift","shiftKey","alt","altKey","eventNames","concat","unsubscribeNodesDisposing","subscribeNodesDisposing","nodesByEvent","node","_base","_observer","observer","eventMap","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","activated","activateStrategy","a","b","pointerId","isPrimary","reset","MsPointerStrategy","callBase","_fireEvent","pointers","resetObserver","_mouse","_touch","activate","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","isMouseEvent","_skipNextEvents","_mouseLocked","clearTimeout","_unlockMouseTimer","setTimeout","normalizer","normalize","getData","excelCreator","ExcelCreator","_checkZipState","then","Blob","_ui","_string","_jszip","_file_saver","_excel_format_converter","_excel","_deferred","XML_TAG","OPEN_XML_FORMAT_URL","VALID_TYPES","number","string","EXCEL_START_TIME","UNSUPPORTED_FORMAT_MAPPING","quarter","quarterAndYear","minute","millisecond","_getXMLTag","tagName","attributes","content","attr","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","isCellIndexFound","columnName","ceil","String","fromCharCode","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","Number","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","object","isBoolean","boolean","_formatObjectConverter","formatter","_tryConvertToExcelNumberFormat","_appendString","encodeHtml","_stringHash","_stringArray","_tryGetExcelDateValue","days","_prepareValue","sourceValue","_dataProvider","getCellType","_callCustomizeExcelCell","_ref3","sourceData","styleCopy","copyCellFormat","clearStyle","verticalAlignment","wrapTextEnabled","font","backgroundColor","fillPatternType","fillPatternColor","customizeExcelCell","newStyle","_getDataArray","cellsArray","cellsLength","rowsLength","styleArrayIndex","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","newValue","excelDateValue","_excelFile","registerCellFormat","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","parseInt","_prepareStyleData","_colsArray","fonts","color","theme","family","scheme","registerFont","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","id","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","folder","_zip","XML","generateNumberFormatsXml","generateFontsXml","generateFillsXml","generateCellFormatsXml","file","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","x","y","_getAutoFilterXML","maxCellIndex","_options","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","colIndex","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","k","l","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","colspan","rowspan","start","end","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","WORKBOOK_FILE_NAME","_generateContent","_generateWorkXML","rtlEnabled","JSZip","isBlob","compression","mimeType","MIME_TYPES","EXCEL","deferred","Deferred","generateAsync","generate","_excel2","_excel3","_excel4","_excel5","ExcelFile","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","tryCreateTag","patternFill","patternType","cellFormat","cellFormatTag","registerFill","registerNumberFormat","areEqual","source","copy","cellFormatTagsAsXmlStringsArray","tag","toXml","count","fill","fillTag","tagsAsXmlStringsArray","fontTag","xmlStringsArray","_convertNumberFormatIndexToId","index","ID_PROPERTY_NAME","cellFormatHelper","sourceObj","sharedItemsContainer","numberFormatId","tryCreateFillFromSimpleFormat","fontId","fillId","isEmpty","copySimpleFormat","leftTag","rightTag","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","numFmtId","cellAlignmentHelper","patternFillHelper","foregroundColor","numberFormatHelper","formatCode","svgCreator","_ajax","_iterator","_svg","_markup","_imageArray","_imageDeferreds","_getBinaryFile","sendRequest","url","responseType","fail","_loadImages","each","response","binary","bytes","Uint8Array","byteLength","btoa","_parseImages","href","childNodes","_","_prepareImages","svgElem","when","markup","getSvgElement","$svgObject","getSvgMarkup","dataURI","regexpString","RegExp","_getBlob","_getBase64","_image_creator","imageCreator","getImageData","imageString","binaryData","curDate","margin","height","widthPt","toFixed","heightPt","mainPage","_version","image","xref","mainPageLength","contentLength","infoLength","pad","mainContent","trailer","composePdfString","dataArray","charCodeAt","buffer","getBlob","getBase64","str","exportDataGrid","_export","export","NAME","_getFullOptions","_date","_number","jsPDFDocument","autoTable","autoTableOptions","_getDefaultAutoTableOptions","tableLineColor","tableLineWidth","textColor","lineColor","lineWidth","columnStyles","headStyles","fontStyle","bodyStyles","head","body","_setLoadPanelOptions","rowsView","getView","mergedCells","pdfColumnWidths","_tryGetPdfColumnWidths","tableWidth","_setColumnWidths","_dataProvider$getCell","gridCell","cellStyle","pdfCell","_getFormattedValue","_getPDFCellStyles","rowType","mergedRange","_tryGetMergeRange","rowSpan","colSpan","_pdfCell$content","_row$0$colSpan","isNumeric","columnAlignment","cellAlignment","align","pdfCellStyle","halign","cellWidth","_dataProvider$getCell2","j","autoTableWidth","columnWidths","reduce","autoTableColumnStyles","autoFilter","dataRange","state","ySplit","outlineLevel","log","_isHeaderCell","_allowToMergeRange","_date2","_language_codes","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","percent","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","_convertDateFormat","formattedValue","getFormat","datePart","_convertDateFormatToOpenXml","defaultPattern","languageID","getLanguageId","languageIDStr","languageInfo","ARABIC_ZERO_CODE","_hasArabicDigits","_getLanguageInfo","toLowerCase","excelFormat","getOpenXmlCurrencyFormat","_applyPrecision","_convertNumberFormat","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_defineProperty","mergedRanges","isCellInMergedRanges","_this$dataProvider$ge","allowToMergeRange","updateMergedCells","getOwnPropertyDescriptors","defineProperties","_objectSpread","unmerged","range","startRowIndex","fullAddress","endRowIndex","endColumnIndex","mergeCells","exportPivotGrid","_common","xSplit","pivotCell","getColumnAreaRowCount","getRowAreaColCount","isColumnAreaCell","isRowAreaCell","_dataArea","groupElement","$element","noop","rotateend","rotate","rotatestart","pinchend","pinch","pinchstart","zoomend","zoom","zoomstart","translateend","translate","translatestart","transformend","transform","transformstart","_math","iteratorUtils","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","hasOwnProperty","desc","_interopRequireWildcard","_emitter","_emitter_registrator","WeakMap","START_POSTFIX","UPDATE_POSTFIX","END_POSTFIX","eventAliases","addAlias","eventArgs","scale","deltaScale","rotation","deltaRotation","translation","deltaTranslation","getEventVector","first","second","centerX","centerY","getDistance","vector","sqrt","getScale","firstVector","secondVector","getRotation","scalarProduct","distanceProduct","sign","acos","fitIntoRange","getTranslation","TransformEmitter","validatePointers","hasTouches","_accept","startVector","_startVector","_prevVector","_fireEventAliases","move","currentVector","_getEventArgs","eventPostfix","eventAlias","emitter","events","exportNames","substring","isCommandKeyPressed","getChar","fireEvent","createEvent","setEventFixMethod","needSkipEvent","stopEventsSkipping","forceSkipEvents","eventDelta","isFakeClickEvent","isKeyboardEvent","isTouchEvent","isDxMouseWheelEvent","isPointerEvent","eventSource","_add_namespace","_selectors","KEY_MAP","backspace","tab","enter","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","f","control","left","up","right","down","multiply","spacebar","del","subtract","esc","LEGACY_KEY_CODES","8","9","13","27","33","34","35","36","37","38","39","40","46","32","70","65","106","109","189","173","16","17","18","EVENT_SOURCES_REGEX","dx","mouse","touch","keyboard","pointer","fixMethod","isDxEvent","isNativeTouchEvent","isNativeMouseEvent","pointerType","_ref2","screenX","offsetX","time","timeStamp","skipEvents","$target","isContentEditable","hasAttribute","touchInEditable","is","hasClass","focused","func","copyEvent","props","_ref4","isKeySupported","_ref5","_ref6","triggerResizeEvent","triggerHidingEvent","triggerShownEvent","triggerVisibilityChangeEvent","changeHandlers","find","_data","_guid","_provider_base","_errors2","_setPrototypeOf","p","setPrototypeOf","__proto__","_FileSystemProviderBa","subClass","superClass","ObjectFileSystemProvider","ensureDefined","initialArray","errors","itemsExpr","_subFileItemsGetter","compileGetter","_subFileItemsSetter","_getSetter","contentExpr","_contentGetter","_contentSetter","nameExpr","_getNameExpr","_nameSetter","isDirExpr","_getIsDirExpr","_getIsDirSetter","keyExpr","_getKeyExpr","_keySetter","sizeExpr","_getSizeExpr","_sizeSetter","dateModifiedExpr","_getDateModifiedExpr","_dateModifiedSetter","create","getItems","parentDir","_executeActionAsDeferred","_getItems","renameItem","_this3","_renameItemCore","_findDataObject","_ensureDataObjectKey","createDirectory","_this4","_validateDirectoryExists","_createDataObject","deleteItems","items","_this5","_deleteItem","moveItems","destinationDir","_this6","destinationDataItem","array","_getDirectoryDataItems","_checkAbilityToMoveOrCopyItem","copyItems","_this7","copiedItem","_createCopy","uploadFileChunk","fileData","chunksInfo","destinationDirectory","_this8","chunkIndex","customData","reader","_createFileReader","readAsDataURL","onload","dataObj","lastModifiedDate","onerror","error","reject","downloadItems","_downloadSingleFile","_downloadMultipleFiles","_getFileContent","byteString","atob","arrayBuffer","ArrayBuffer","blob","fileSaver","saveAs","files","_this9","zip","getJSZip","base64","directoryInfo","_isFileItemExists","_isDirGetter","fileItem","errorId","DirectoryNotFound","_this10","itemKey","_getKeyFromDataObject","currentPath","_getDataObjectKey","Other","parentDataItem","_this11","copyObj","_nameGetter","itemsCopy","childItem","childCopy","parentDirDataObj","_findFileItemObj","directoryDataObj","dataItems","parentDirKey","dirFileObjects","directoryEntry","_ensureKeysForDuplicateNameItems","_convertDataObjectsToFileItems","dataObjects","_this12","names","FileNotFound","_this13","fileItemObj","fileItemObjects","_loop","hasCorrectFileItemType","defaultKeyPrefix","_keyGetter","_hasSubDirs","subItems","expr","compileSetter","FileReader","RemoteFileSystemProvider","_endpointUrl","endpointUrl","_hasSubDirsGetter","hasSubDirectoriesExpr","_getEntriesByPath","_executeRequest","sourcePathInfo","sourceIsDirectory","destinationPathInfo","destinationFolder","uploadId","chunkMetadata","JSON","stringify","UploadId","FileName","Index","TotalCount","chunkCount","FileSize","formData","FormData","append","chunkBlob","upload","onprogress","onloadstart","onabort","success","promise","abortFileUpload","_getDownloadArgs","$form","css","display","action","appendTo","remove","getItemsContent","command","pathInfoList","argsStr","_getItemsIds","it","_getEndpointUrl","queryString","_getQueryString","separator","params","pairs","_processQueryStringArrayParam","pair","_getQueryStringPair","encodeURIComponent","hasSubDirs","CustomFileSystemProvider","_getItemsFunction","_ensureFunction","_renameItemFunction","_createDirectoryFunction","_deleteItemFunction","deleteItem","_moveItemFunction","moveItem","_copyItemFunction","copyItem","_uploadFileChunkFunction","_abortFileUploadFunction","_downloadItemsFunction","_getItemsContentFunction","functionObject","defaultFunction","_format","formatIsValid","isPlainObject","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","formatPart","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","year","month","day","hour","unshift","getMonthNames","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","differences","minDate","maxDate","getDateUnitInterval","week","drop","leave","_element_data","_dom","_event_registrator","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","setup","handleObj","updateEventsCounter","eventsCount","max","teardown","removeData","DragEmitter","direction","_init","_initEvent","_start","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","dropTargets","wrapToArray","targetElements","_dropTargets","_move","dragOffset","_calculateOffset","offset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_startEventData","_fitOffset","minOffset","maxOffset","_findDropTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_$element","_checkDropTargetActive","dropTargetIndex","dropTargetSelectors","$delegatedTargets","delegatedTarget","$delegatedTarget","_checkDropTarget","getItemConfig","active","activeTarget","$prevTarget","dropTargetConfig","targetPosition","itemPositionFunc","top","targetSize","itemSizeFunc","getBoundingClientRect","getItemSize","closest","checkDropTarget","_end","registerEvent","strategy","noBubble","bindType","delegateType","callbacks","attributeName","attributeValue","_ready_callbacks","_pointer","_wheel","eventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","getDocument","_pointerDownHandler","_pointerMoveHandler","cancel","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","arg","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","validate","addCancelCallback","addAcceptCallback","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","removeCancelCallback","removeAcceptCallback","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","allowInterruptionByMouseWheel","closestGestureEmitter","gesture","getDirection","verticalGestureDirection","delta","isActive","getElement","emitterConfig","emitterClass","emitterName","emitterEvents","bubble","subscriptions","configure","delegateSelector","disposeEmitter","abs","HoldEmitter","_startTimer","holdTimeout","timeout","_holdTimer","_requestAccept","_forgetAccept","_touchWasMoved","_cancel","_stopTimer","click","dxClick","focus","visibility","hover","resize","_keyboard_processor","executeAction","execute","$el","inactive","opts","showTimeout","hideTimeout","shown","hiding","_ref7","focusIn","focusOut","_ref8","isFocusable","hasDocumentProperty","_ref9","_ref10","_ref11","_ref12","_ref13","keyboardProcessors","listenerId","_getProcessor","wheel","_wheelHandler","_e$originalEvent","deltaMode","deltaY","deltaX","deltaZ","_normalizeDelta","lock","_devices","activeFeedback","FeedbackEvent","_timeout","_fire","_schedule","force","fn","stop","_timer","_fired","fired","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_initEvents","eventTarget","_getEmitterTarget","mouseEvent","deferFeedback","isSimulator","skipTimers","lockInactive","_swipe","_dom_component","_public_component","ACTION_TO_EVENT_MAP","onStart","onUpdated","swipe","onEnd","onCancel","Swipeable","_getDefaultOptions","elastic","immediate","_render","addClass","_attachEventHandlers","_detachEventHandlers","_createEventData","actionName","_createActionByOption","_eventData","_optionChanged","_useTemplates","_cancelCallback","_acceptCallback","empty","_acceptRequestEvent","_click","NAMESPACED_CLICK_EVENT","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","now","timeBetweenClicks","closestCommonParent","_browser","originalEvents","_eventName","_originalEvents","_isNoBubble","_getDelegateTarget","mozilla","getTime","_setSelector","_selector","_getSelector","POINTERENTER_NAMESPACED_EVENT_NAME","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","HoverStart","HoverEnd","_console","navigator","getNavigator","FILE_EXTESIONS","CSS","PNG","JPEG","GIF","SVG","PDF","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","fileName","exportLinkElement","createElement","download","_formDownloader","proxyUrl","contentType","formAttributes","enctype","exportForm","setAttributes","setAttribute","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","insert","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","close","link","dispatchEvent","MouseEvent","cancelable","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","logger","warn","proxyURL","forceProxy","userAgent","match","_date_serialization","_file_system_item","FileSystemProviderBase","_sizeGetter","_dateModifiedGetter","_thumbnailGetter","thumbnailExpr","parentDirectory","getFileUploadChunkSize","entries","entry","_createFileItem","deserializeDate","_defaultKeyExpr","__KEY__","isDirectoryExpr","keepResult","isPromise","fromPromise","userResult","_frame","_event_nodes_disposing","isInput","misc","requestAnimationFrame","cancelAnimationFrame","ClickEmitter","_makeElementClickable","_blurPrevented","_startTarget","_eventOutOfElement","resetActiveElement","_clickAnimationFrame","_fireClickEvent","targetChanged","gestureDelta","boundsExceeded","realDevice","real","useNativeClick","generic","ios","compare","version","android","isNativeClickEvent","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","useNative","startTarget","blurPrevented","support","_mspointer","_mouse_and_touch","EventStrategy","device","browser","pointerEvents","msie","tablet","phone","getStrategy","pointerEvent","over","out","_style","TOUCH_BOUNDARY","setGestureCover","isDesktop","deviceType","styleProp","$cover","toggle","cursor","GestureEmitter","_stage","_toggleGestureCover","_needSkipEvent","_startEvent","_setupImmediateTimer","_immediateTimer","_immediateAccepted","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","touchBoundary","_getTouchBoundary","horizontalMove","_validateMove","verticalMove","mainAxis","crossAxis","platform","_toggleGestureCoverImpl","gestureCoverStrategy","gestureCover","clearSelection","_stop","initialTouchBoundary","newBoundary","_support","_hold","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","STRATEGIES","defaultItemSizeFunc","getBounds","calcOffsetRatio","_savedEventData","_itemSizeFunc","isFastSwipe","endEventData","FAST_SWIPE_SPEED_LIMIT","_tickData","SwipeEmitter","TICK_INTERVAL","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","startOffset","targetOffset","_calcTargetOffset","bounds","round","exportingAction","exportedAction","fileSavingAction","svg","pdf","excel","_excel_creator","_svg_creator","_pdf_creator","creator","formatConverter","testFormats","getParentPath","lastIndexOf","substr","includeFullPath","pathPart","char","charAt","nextChar","_i","NoAccess","FileExists","DirectoryExists","WrongFileExtension","MaxFileSizeExceeded","InvalidSymbols","_export_data_grid","_export_pivot_grid","normalizeTouchEvent","identifier","skipTouchWithSameIdentifier","TouchStrategy","_pointerId","addEventsListener","pointerEquals","onPointerAdding","getPointerIndex","removePointer","normalizeMouseEvent","MouseStrategy","excelFormatConverter","fillHelper","rgb","colorHelper","_tryConvertColor","colorCode","fontHelper","italic","underline","val","formats","canvas","createCanvas","r","toDataURL","supported","unsupported","_color","_inflector","parseAttributes","PI","_min","_abs","_sqrt","_pow","pow","_atan2","atan2","_cos","cos","_sin","sin","hidden","arcTo","x1","y1","x2","y2","radius","largeArcFlag","clockwise","cBx","cBy","aB","opSide","adjSide","startAngle","endAngle","arc","getElementOptions","rootAppended","coords","textContent","textAlign","translateX","translateY","rotationAngle","rotationX","rotationY","scaleX","scaleY","camelize","isElementNode","getComputedStyle","prop","textDecoration","textDecorationLine","globalAlpha","opacity","parseStyles","parseUrl","urlString","matches","setFontStyle","fontParams","fontSize","fontFamily","fontWeight","fillStyle","drawText","shared","applyFilter","fillText","strokeElement","textWidth","measureText","textHeight","lineHeight","rect","fillElement","drawTextDecoration","hasTspan","nodes","drawElement","parentOptions","isText","isImage","save","transformElement","clipElement","strokeOpacity","fillOpacity","aggregateOpacity","beginPath","drawTextElement","line","lines","elementOptions","mergedOptions","elements","offsets","dy","parseFloat","commonWidth","xDiff","currentOffset","d","Image","drawImage","restore","dAttr","prevParams","prevParamsLen","dArray","trim","moveTo","lineTo","bezierCurveTo","closePath","drawPath","cornerRadius","rx","drawRect","cx","cy","gradients","box","getBBox","gradient","createLinearGradient","opt","addColorStop","stopColor","applyGradient","filterOptions","filters","offsetY","blur","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","clipPaths","clip","createFilter","stdDeviation","hexColor","alpha","g","hex2rgba","drawCanvasElements","asyncEach","onDone","patterns","createGradient","stroke","setLineDash","lineJoin","strokeStyle","strokeText","search","pattern","patternCanvas","patternContext","getContext","createPattern","getPattern","drawBackground","fillRect","createInvisibleDiv","invisibleDiv","position","convertSvgToCanvas","newAttributes","pixelRatio","devicePixelRatio","__parseAttributesFn","svgToCanvas","setTransform","markupIsDomElement","getBody","appendChild","dir","removeChild","getCanvasFromSvg","dataURL","getStringFromCanvas"],"mappings":"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","file":"vendors~5e975615.74c34b4effcb379db65c.bundle.js","sourcesContent":["/**\r\n * DevExtreme (exporter/exceljs/export.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Export = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _export_format = require(\"./export_format\");\r\nvar _export_merged_ranges_manager = require(\"./export_merged_ranges_manager\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar MAX_EXCEL_COLUMN_WIDTH = 255;\r\nvar Export = {\r\n getFullOptions: function(options) {\r\n var fullOptions = (0, _extend.extend)({}, options);\r\n if (!((0, _type.isDefined)(fullOptions.worksheet) && (0, _type.isObject)(fullOptions.worksheet))) {\r\n throw Error('The \"worksheet\" field must contain an object.')\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.topLeftCell)) {\r\n fullOptions.topLeftCell = {\r\n row: 1,\r\n column: 1\r\n }\r\n } else {\r\n if ((0, _type.isString)(fullOptions.topLeftCell)) {\r\n var _fullOptions$workshee = fullOptions.worksheet.getCell(fullOptions.topLeftCell),\r\n row = _fullOptions$workshee.row,\r\n col = _fullOptions$workshee.col;\r\n fullOptions.topLeftCell = {\r\n row: row,\r\n column: col\r\n }\r\n }\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.keepColumnWidths)) {\r\n fullOptions.keepColumnWidths = true\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel)) {\r\n fullOptions.loadPanel = {}\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel.enabled)) {\r\n fullOptions.loadPanel.enabled = true\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel.text)) {\r\n fullOptions.loadPanel.text = _message.default.format(\"dxDataGrid-exporting\")\r\n }\r\n return fullOptions\r\n },\r\n convertDateForExcelJS: function(date) {\r\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()))\r\n },\r\n setNumberFormat: function(excelCell, numberFormat) {\r\n excelCell.numFmt = numberFormat\r\n },\r\n getCellStyles: function(dataProvider) {\r\n var _this = this;\r\n var styles = dataProvider.getStyles();\r\n styles.forEach(function(style) {\r\n var numberFormat = _this.tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if ((0, _type.isDefined)(numberFormat)) {\r\n numberFormat = numberFormat.replace(/"/g, '\"')\r\n }\r\n style.numberFormat = numberFormat\r\n });\r\n return styles\r\n },\r\n tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = _export_format.ExportFormat.formatObjectConverter(format, dataType);\r\n var currency = newFormat.currency;\r\n format = newFormat.format;\r\n dataType = newFormat.dataType;\r\n return _export_format.ExportFormat.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n setAlignment: function(excelCell, wrapText, horizontalAlignment) {\r\n excelCell.alignment = excelCell.alignment || {};\r\n if ((0, _type.isDefined)(wrapText)) {\r\n excelCell.alignment.wrapText = wrapText\r\n }\r\n if ((0, _type.isDefined)(horizontalAlignment)) {\r\n excelCell.alignment.horizontal = horizontalAlignment\r\n }\r\n excelCell.alignment.vertical = \"top\"\r\n },\r\n setColumnsWidth: function(worksheet, widths, startColumnIndex) {\r\n if (!(0, _type.isDefined)(widths)) {\r\n return\r\n }\r\n for (var i = 0; i < widths.length; i++) {\r\n var columnWidth = widths[i];\r\n if (\"number\" === typeof columnWidth && isFinite(columnWidth)) {\r\n worksheet.getColumn(startColumnIndex + i).width = Math.min(MAX_EXCEL_COLUMN_WIDTH, Math.floor(columnWidth / MAX_DIGIT_WIDTH_IN_PIXELS * 100) / 100)\r\n }\r\n }\r\n },\r\n setLoadPanelOptions: function(component, options, renderLoadPanel) {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n component._setOptionWithoutOptionChange(\"loadPanel\", options);\r\n renderLoadPanel(component)\r\n },\r\n \"export\": function(options, helpers) {\r\n var _this2 = this;\r\n var customizeCell = options.customizeCell,\r\n component = options.component,\r\n worksheet = options.worksheet,\r\n topLeftCell = options.topLeftCell,\r\n autoFilterEnabled = options.autoFilterEnabled,\r\n keepColumnWidths = options.keepColumnWidths,\r\n selectedRowsOnly = options.selectedRowsOnly,\r\n loadPanel = options.loadPanel,\r\n mergeRowFieldValues = options.mergeRowFieldValues,\r\n mergeColumnFieldValues = options.mergeColumnFieldValues;\r\n var initialLoadPanelOptions = (0, _extend.extend)({}, component.option(\"loadPanel\"));\r\n if (\"animation\" in component.option(\"loadPanel\")) {\r\n loadPanel.animation = null\r\n }\r\n this.setLoadPanelOptions(component, loadPanel, helpers._renderLoadPanel);\r\n var wrapText = !!component.option(\"wordWrapEnabled\");\r\n worksheet.properties.outlineProperties = {\r\n summaryBelow: false,\r\n summaryRight: false\r\n };\r\n var cellRange = {\r\n from: {\r\n row: topLeftCell.row,\r\n column: topLeftCell.column\r\n },\r\n to: {\r\n row: topLeftCell.row,\r\n column: topLeftCell.column\r\n }\r\n };\r\n var dataProvider = component.getDataProvider(selectedRowsOnly);\r\n return new Promise(function(resolve) {\r\n dataProvider.ready().done(function() {\r\n var columns = dataProvider.getColumns();\r\n var dataRowsCount = dataProvider.getRowsCount();\r\n if (keepColumnWidths) {\r\n _this2.setColumnsWidth(worksheet, dataProvider.getColumnsWidths(), cellRange.from.column)\r\n }\r\n var mergedRangesManager = new _export_merged_ranges_manager.MergedRangesManager(dataProvider, helpers, mergeRowFieldValues, mergeColumnFieldValues);\r\n var styles = _this2.getCellStyles(dataProvider);\r\n for (var rowIndex = 0; rowIndex < dataRowsCount; rowIndex++) {\r\n var row = worksheet.getRow(cellRange.from.row + rowIndex);\r\n helpers._trySetOutlineLevel(dataProvider, row, rowIndex);\r\n _this2.exportRow(dataProvider, helpers, mergedRangesManager, rowIndex, columns.length, row, cellRange.from.column, customizeCell, wrapText, styles);\r\n if (rowIndex >= 1) {\r\n cellRange.to.row++\r\n }\r\n }\r\n mergedRangesManager.applyMergedRages(worksheet);\r\n cellRange.to.column += columns.length > 0 ? columns.length - 1 : 0;\r\n var worksheetViewSettings = worksheet.views[0] || {};\r\n if (component.option(\"rtlEnabled\")) {\r\n worksheetViewSettings.rightToLeft = true\r\n }\r\n if (helpers._isFrozenZone(dataProvider)) {\r\n if (Object.keys(worksheetViewSettings).indexOf(\"state\") === -1) {\r\n (0, _extend.extend)(worksheetViewSettings, helpers._getWorksheetFrozenState(dataProvider, cellRange))\r\n }\r\n helpers._trySetAutoFilter(dataProvider, worksheet, cellRange, autoFilterEnabled)\r\n }\r\n if (Object.keys(worksheetViewSettings).length > 0) {\r\n worksheet.views = [worksheetViewSettings]\r\n }\r\n resolve(cellRange)\r\n }).always(function() {\r\n _this2.setLoadPanelOptions(component, initialLoadPanelOptions, helpers._renderLoadPanel)\r\n })\r\n })\r\n },\r\n exportRow: function(dataProvider, helpers, mergedRangesManager, rowIndex, cellCount, row, startColumnIndex, customizeCell, wrapText, styles) {\r\n for (var cellIndex = 0; cellIndex < cellCount; cellIndex++) {\r\n var cellData = dataProvider.getCellData(rowIndex, cellIndex, true);\r\n var excelCell = row.getCell(startColumnIndex + cellIndex);\r\n mergedRangesManager.updateMergedRanges(excelCell, rowIndex, cellIndex);\r\n var cellInfo = mergedRangesManager.findMergedCellInfo(rowIndex, cellIndex);\r\n if ((0, _type.isDefined)(cellInfo) && excelCell !== cellInfo.masterCell) {\r\n excelCell.style = cellInfo.masterCell.style;\r\n excelCell.value = cellInfo.masterCell.value\r\n } else {\r\n if ((0, _type.isDate)(cellData.value)) {\r\n excelCell.value = this.convertDateForExcelJS(cellData.value)\r\n } else {\r\n excelCell.value = cellData.value\r\n }\r\n if ((0, _type.isDefined)(excelCell.value)) {\r\n var _styles$dataProvider$ = styles[dataProvider.getStyleId(rowIndex, cellIndex)],\r\n bold = _styles$dataProvider$.bold,\r\n horizontalAlignment = _styles$dataProvider$.alignment,\r\n numberFormat = _styles$dataProvider$.numberFormat;\r\n if ((0, _type.isDefined)(numberFormat)) {\r\n this.setNumberFormat(excelCell, numberFormat)\r\n } else {\r\n if ((0, _type.isString)(excelCell.value) && /^[@=+-]/.test(excelCell.value)) {\r\n this.setNumberFormat(excelCell, \"@\")\r\n }\r\n }\r\n helpers._trySetFont(excelCell, bold);\r\n this.setAlignment(excelCell, wrapText, horizontalAlignment)\r\n }\r\n }\r\n if ((0, _type.isFunction)(customizeCell)) {\r\n customizeCell(helpers._getCustomizeCellOptions(excelCell, cellData.cellSourceData))\r\n }\r\n }\r\n }\r\n};\r\nexports.Export = Export;\r\n","/**\r\n * DevExtreme (file_management/file_system_item.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../core/utils/type\");\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar FileSystemItem = function() {\r\n function FileSystemItem() {\r\n var ctor = (0, _type.isString)(arguments[0]) ? this._publicCtor : this._internalCtor;\r\n ctor.apply(this, arguments)\r\n }\r\n var _proto = FileSystemItem.prototype;\r\n _proto._internalCtor = function(pathInfo, name, isDirectory) {\r\n this.name = name || \"\";\r\n this.pathInfo = pathInfo && _toConsumableArray(pathInfo) || [];\r\n this.parentPath = this._getPathByPathInfo(this.pathInfo);\r\n this.relativeName = (0, _utils.pathCombine)(this.parentPath, name);\r\n this.key = this._getPathByPathInfo(this.getFullPathInfo(), true);\r\n this.path = (0, _utils.pathCombine)(this.parentPath, name);\r\n this.pathKeys = this.pathInfo.map(function(_ref) {\r\n var key = _ref.key;\r\n return key\r\n });\r\n if (!this.isRoot()) {\r\n this.pathKeys.push(this.key)\r\n }\r\n this._initialize(isDirectory)\r\n };\r\n _proto._publicCtor = function(path, isDirectory, pathKeys) {\r\n this.path = path || \"\";\r\n this.pathKeys = pathKeys || [];\r\n var pathInfo = [];\r\n var parts = (0, _utils.getPathParts)(path, true);\r\n for (var i = 0; i < parts.length - 1; i++) {\r\n var part = parts[i];\r\n var pathInfoPart = {\r\n key: this.pathKeys[i] || part,\r\n name: (0, _utils.getName)(part)\r\n };\r\n pathInfo.push(pathInfoPart)\r\n }\r\n this.pathInfo = pathInfo;\r\n this.relativeName = path;\r\n this.name = (0, _utils.getName)(path);\r\n this.key = this.pathKeys.length ? this.pathKeys[this.pathKeys.length - 1] : path;\r\n this.parentPath = parts.length > 1 ? parts[parts.length - 2] : \"\";\r\n this._initialize(isDirectory)\r\n };\r\n _proto._initialize = function(isDirectory) {\r\n this.isDirectory = !!isDirectory;\r\n this.size = 0;\r\n this.dateModified = new Date;\r\n this.thumbnail = \"\";\r\n this.tooltipText = \"\"\r\n };\r\n _proto.getFullPathInfo = function() {\r\n var pathInfo = _toConsumableArray(this.pathInfo);\r\n if (!this.isRoot()) {\r\n pathInfo.push({\r\n key: this.key,\r\n name: this.name\r\n })\r\n }\r\n return pathInfo\r\n };\r\n _proto.isRoot = function() {\r\n return \"\" === this.path\r\n };\r\n _proto.getFileExtension = function() {\r\n return this.isDirectory ? \"\" : (0, _utils.getFileExtension)(this.name)\r\n };\r\n _proto.equals = function(item) {\r\n return item && this.key === item.key\r\n };\r\n _proto.createClone = function() {\r\n var result = new FileSystemItem(this.pathInfo, this.name, this.isDirectory);\r\n result.key = this.key;\r\n result.size = this.size;\r\n result.dateModified = this.dateModified;\r\n result.thumbnail = this.thumbnail;\r\n result.tooltipText = this.tooltipText;\r\n result.hasSubDirectories = this.hasSubDirectories;\r\n result.dataItem = this.dataItem;\r\n return result\r\n };\r\n _proto._getPathByPathInfo = function(pathInfo, escape) {\r\n return pathInfo.map(function(info) {\r\n return escape ? (0, _utils.getEscapedFileName)(info.name) : info.name\r\n }).join(_utils.PATH_SEPARATOR)\r\n };\r\n return FileSystemItem\r\n}();\r\nvar _default = FileSystemItem;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (events/core/events_engine.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _event_registrator_callbacks = _interopRequireDefault(require(\"./event_registrator_callbacks\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _dependency_injector = _interopRequireDefault(require(\"../../core/utils/dependency_injector\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _errors = _interopRequireDefault(require(\"../../core/errors\"));\r\nvar _weak_map = _interopRequireDefault(require(\"../../core/polyfills/weak_map\"));\r\nvar _hook_touch_props = _interopRequireDefault(require(\"../../events/core/hook_touch_props\"));\r\nvar _call_once = _interopRequireDefault(require(\"../../core/utils/call_once\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !(0, _type.isWindow)(target) && \"#document\" !== target.nodeName && _dom_adapter.default.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new _weak_map.default;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n _event_registrator_callbacks.default.add(function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n });\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = (0, _dependency_injector.default)({\r\n on: getHandler(normalizeOnArguments(iterate(function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n }))),\r\n one: getHandler(normalizeOnArguments(function(element, eventName, selector, data, handler) {\r\n var oneTimeHandler = function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n };\r\n eventsEngine.on(element, eventName, selector, data, oneTimeHandler)\r\n })),\r\n off: getHandler(normalizeOffArguments(iterate(function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n }))),\r\n trigger: getHandler(normalizeTriggerArguments(function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || NO_BUBBLE_EVENTS.indexOf(eventName) !== -1;\r\n if (!noBubble) {\r\n var parents = [];\r\n var getParents = function getParents(element) {\r\n var parent = element.parentNode;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n };\r\n getParents(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers((0, _extend.extend)(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || (0, _type.isWindow)(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n })),\r\n triggerHandler: getHandler(normalizeTriggerArguments(function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n }))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (_dom_adapter.default.isNode(element) || (0, _type.isWindow)(element)) {\r\n method.apply(eventsEngine, args)\r\n } else {\r\n if (!(0, _type.isString)(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n })\r\n } else {\r\n throw _errors.default.Error(\"E0025\")\r\n }\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = (0, _call_once.default)(detectPassiveEventHandlersSupport);\r\nvar contains = function contains(container, element) {\r\n if ((0, _type.isWindow)(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var wrappedHandler = function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: wrappedHandler,\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = _dom_adapter.default.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter(function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n });\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n return function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n }\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach(function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n })\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === _typeof(eventName)) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n var isLinkClickEvent = function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n };\r\n if (isLinkClickEvent(eventName, element)) {\r\n return\r\n }\r\n if ((0, _type.isFunction)(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n var setForMouseEvent = function(event) {\r\n var mouseEventRegex = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n return !event.which && void 0 !== event.button && mouseEventRegex.test(event.type)\r\n };\r\n var setForKeyEvent = function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n };\r\n if (setForKeyEvent(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (setForMouseEvent(event)) {\r\n var whichByButton = {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n };\r\n return whichByButton[event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments(function(src, config) {\r\n var that = this;\r\n var propagationStopped = false;\r\n var immediatePropagationStopped = false;\r\n var defaultPrevented = false;\r\n (0, _extend.extend)(that, src);\r\n if (src instanceof eventsEngine.Event || (0, _window.hasWindow)() && src instanceof window.Event) {\r\n that.originalEvent = src;\r\n that.currentTarget = void 0\r\n }\r\n if (!(src instanceof eventsEngine.Event)) {\r\n (0, _extend.extend)(that, {\r\n isPropagationStopped: function() {\r\n return !!(propagationStopped || that.originalEvent && that.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n propagationStopped = true;\r\n that.originalEvent && that.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n immediatePropagationStopped = true;\r\n that.originalEvent && that.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(defaultPrevented || that.originalEvent && that.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n defaultPrevented = true;\r\n that.originalEvent && that.originalEvent.preventDefault()\r\n }\r\n })\r\n }\r\n addProperty(\"which\", calculateWhich, that);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }(0, _extend.extend)(that, config);\r\n that.guid = ++guid\r\n}));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}(0, _hook_touch_props.default)(addProperty);\r\nvar beforeSetStrategy = (0, _callbacks.default)();\r\nvar afterSetStrategy = (0, _callbacks.default)();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments(function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add(function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n });\r\n afterSetStrategy.add(function() {\r\n eventsEngine.on.apply(this, args)\r\n })\r\n }))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nvar _default = eventsEngine;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/core/hook_touch_props.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = _default;\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\n\r\nfunction _default(callback) {\r\n touchPropsToHook.forEach(function(name) {\r\n callback(name, function(event) {\r\n return touchPropHook(name, event)\r\n })\r\n }, this)\r\n}\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/core/keyboard_processor.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _index = require(\"../../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar KeyboardProcessor = _class.default.inherit({\r\n _keydown: (0, _index.addNamespace)(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: (0, _index.addNamespace)(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: (0, _index.addNamespace)(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n var _this = this;\r\n options = options || {};\r\n if (options.element) {\r\n this._element = (0, _renderer.default)(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = function(e) {\r\n var isNotFocusTarget = _this._focusTarget && _this._focusTarget !== e.target && (0, _array.inArray)(e.target, _this._focusTarget) < 0;\r\n var shouldSkipProcessing = _this._isComposingJustFinished && 229 === e.which || _this._isComposing || isNotFocusTarget;\r\n _this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n _this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n _events_engine.default.on(this._element, this._keydown, this._processFunction);\r\n _events_engine.default.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n _events_engine.default.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n _events_engine.default.off(this._element, this._keydown, this._processFunction);\r\n _events_engine.default.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n _events_engine.default.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler({\r\n keyName: (0, _index.normalizeKeyName)(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n })\r\n },\r\n toggleProcessing: function(_ref) {\r\n var type = _ref.type;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nvar _default = KeyboardProcessor;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/utils/add_namespace.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _errors = _interopRequireDefault(require(\"../../core/errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar addNamespace = function addNamespace(eventNames, namespace) {\r\n if (!namespace) {\r\n throw _errors.default.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(function(eventName) {\r\n return addNamespace(eventName, namespace)\r\n }).join(\" \")\r\n }\r\n if (eventNames.indexOf(\" \") !== -1) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nvar _default = addNamespace;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/utils/event_nodes_disposing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.unsubscribeNodesDisposing = exports.subscribeNodesDisposing = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar REMOVE_EVENT_NAME = \"dxremove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(function(node) {\r\n return !!node\r\n })\r\n}\r\nvar subscribeNodesDisposing = function(event, callback) {\r\n _events_engine.default.one(nodesByEvent(event), REMOVE_EVENT_NAME, callback)\r\n};\r\nexports.subscribeNodesDisposing = subscribeNodesDisposing;\r\nvar unsubscribeNodesDisposing = function(event, callback) {\r\n _events_engine.default.off(nodesByEvent(event), REMOVE_EVENT_NAME, callback)\r\n};\r\nexports.unsubscribeNodesDisposing = unsubscribeNodesDisposing;\r\n","/**\r\n * DevExtreme (events/pointer/mspointer.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _base = _interopRequireDefault(require(\"./base\"));\r\nvar _observer = _interopRequireDefault(require(\"./observer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar eventMap = {\r\n dxpointerdown: \"pointerdown\",\r\n dxpointermove: \"pointermove\",\r\n dxpointerup: \"pointerup\",\r\n dxpointercancel: \"pointercancel\",\r\n dxpointerover: \"pointerover\",\r\n dxpointerout: \"pointerout\",\r\n dxpointerenter: \"pointerenter\",\r\n dxpointerleave: \"pointerleave\"\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new _observer.default(eventMap, function(a, b) {\r\n return a.pointerId === b.pointerId\r\n }, function(e) {\r\n if (e.isPrimary) {\r\n observer.reset()\r\n }\r\n });\r\n activated = true\r\n};\r\nvar MsPointerStrategy = _base.default.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase((0, _extend.extend)({\r\n pointers: observer.pointers(),\r\n pointerId: args.originalEvent.pointerId\r\n }, args))\r\n }\r\n});\r\nMsPointerStrategy.map = eventMap;\r\nMsPointerStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nvar _default = MsPointerStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/pointer/mouse_and_touch.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _base = _interopRequireDefault(require(\"./base\"));\r\nvar _mouse = _interopRequireDefault(require(\"./mouse\"));\r\nvar _touch = _interopRequireDefault(require(\"./touch\"));\r\nvar _index = require(\"../utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n _mouse.default.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = _base.default.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = (0, _index.isMouseEvent)(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout(function() {\r\n that._mouseLocked = false\r\n }, this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = (0, _index.isMouseEvent)(args.originalEvent) ? _mouse.default.normalize : _touch.default.normalize;\r\n return this.callBase((0, _extend.extend)(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = _mouse.default.resetObserver;\r\nvar _default = MouseAndTouchStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.ExcelCreator = void 0;\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _string = require(\"../core/utils/string\");\r\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\r\nvar _file_saver = require(\"./file_saver\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./excel_format_converter\"));\r\nvar _excel = _interopRequireDefault(require(\"./excel/excel.file\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar XML_TAG = '';\r\nvar GROUP_SHEET_PR_XML = '';\r\nvar SINGLE_SHEET_PR_XML = \"\";\r\nvar BASE_STYLE_XML2 = '';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '';\r\nvar VALID_TYPES = {\r\n \"boolean\": \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nvar ExcelCreator = _class.default.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return (0, _type.isDefined)(content) ? result + \">\" + content + \"\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var max = 26;\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= max ? zeroBasedCellIndex % max : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= max) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / max) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if ((0, _type.isDefined)(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else {\r\n if ((0, _type.isString)(object)) {\r\n return VALID_TYPES.string\r\n } else {\r\n if ((0, _type.isDate)(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n if ((0, _type.isBoolean)(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if ((0, _type.isObject)(format)) {\r\n return (0, _extend.extend)(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if ((0, _type.isDefined)(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return _excel_format_converter.default.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if ((0, _type.isDefined)(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = (0, _string.encodeHtml)(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if ((0, _type.isDate)(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var _ref = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n cellSourceData = _ref.cellSourceData;\r\n var _ref2 = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n value = _ref2.value;\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !(0, _type.isDate)(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref3) {\r\n var dataProvider = _ref3.dataProvider,\r\n value = _ref3.value,\r\n style = _ref3.style,\r\n sourceData = _ref3.sourceData;\r\n var styleCopy = _excel.default.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if ((0, _type.isDefined)(styleCopy)) {\r\n if ((0, _type.isDefined)(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var that = this;\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = that._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = that._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: that._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (_typeof(modifiedExcelCell.value) !== _typeof(value) || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if ((0, _type.isDefined)(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if ((0, _type.isDefined)(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!that._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n that._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var _this = this;\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach(function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n });\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach(function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!(0, _type.isDefined)(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n });\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(function(item) {\r\n return _this._excelFile.registerCellFormat(item)\r\n })\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n var content = 'Sheet!$1:$1';\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], content)\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + ''\r\n },\r\n _generateStylesXML: function() {\r\n var that = this;\r\n var folder = that._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += that._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], that._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + that._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n that._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _getIgnoredErrorsXML: function(maxCellIndex) {\r\n if (this._options.ignoreErrors) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('');\r\n xmlResult.push(\"');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"\");\r\n xmlResult.push(' 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], (0, _type.isDefined)(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = [];\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + this._getIgnoredErrorsXML(rightBottomCellRef) + \"\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n xmlResult = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = (0, _type.isDefined)(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!(0, _type.isDefined)(usedArea[rowIndex]) || !(0, _type.isDefined)(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!(0, _type.isDefined)(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new _excel.default;\r\n if ((0, _type.isDefined)(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw _ui.default.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: _file_saver.MIME_TYPES.EXCEL\r\n };\r\n var deferred = new _deferred.Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nexports.ExcelCreator = ExcelCreator;\r\nExcelCreator.JSZip = _jszip.default;\r\n\r\nfunction getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(function() {\r\n return excelCreator.getData((0, _type.isFunction)((0, _window.getWindow)().Blob))\r\n })\r\n}\r\n","/**\r\n * DevExtreme (exporter/excel/excel.file.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.cell_format_helper\"));\r\nvar _excel3 = _interopRequireDefault(require(\"./excel.fill_helper\"));\r\nvar _excel4 = _interopRequireDefault(require(\"./excel.font_helper\"));\r\nvar _excel5 = _interopRequireDefault(require(\"./excel.number_format_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ExcelFile = function() {\r\n function ExcelFile() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n var _proto = ExcelFile.prototype;\r\n _proto.registerCellFormat = function(cellFormat) {\r\n var result;\r\n var cellFormatTag = _excel2.default.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if ((0, _type.isDefined)(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (_excel2.default.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n ExcelFile.copyCellFormat = function(source) {\r\n return _excel2.default.copy(source)\r\n };\r\n _proto.generateCellFormatsXml = function() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(function(tag) {\r\n return _excel2.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFill = function(fill) {\r\n var result;\r\n var fillTag = _excel3.default.tryCreateTag(fill);\r\n if ((0, _type.isDefined)(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (_excel3.default.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFillsXml = function() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(function(tag) {\r\n return _excel3.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFont = function(font) {\r\n var result;\r\n var fontTag = _excel4.default.tryCreateTag(font);\r\n if ((0, _type.isDefined)(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (_excel4.default.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFontsXml = function() {\r\n var xmlStringsArray = this._fontTags.map(function(tag) {\r\n return _excel4.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n };\r\n _proto._convertNumberFormatIndexToId = function(index) {\r\n var CUSTOM_FORMAT_ID_START_VALUE = 165;\r\n return CUSTOM_FORMAT_ID_START_VALUE + index\r\n };\r\n _proto.registerNumberFormat = function(numberFormat) {\r\n var result;\r\n var tag = _excel5.default.tryCreateTag(numberFormat);\r\n if ((0, _type.isDefined)(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (_excel5.default.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][_excel5.default.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[_excel5.default.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[_excel5.default.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateNumberFormatsXml = function() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(function(tag) {\r\n return _excel5.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n };\r\n return ExcelFile\r\n}();\r\nexports.default = ExcelFile;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.cell_format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.cell_alignment_helper\"));\r\nvar _excel3 = _interopRequireDefault(require(\"./excel.fill_helper\"));\r\nvar _excel4 = _interopRequireDefault(require(\"./excel.font_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar cellFormatHelper = {\r\n tryCreateTag: function(sourceObj, sharedItemsContainer) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n var numberFormatId;\r\n if (\"number\" === typeof sourceObj.numberFormat) {\r\n numberFormatId = sourceObj.numberFormat\r\n } else {\r\n numberFormatId = sharedItemsContainer.registerNumberFormat(sourceObj.numberFormat)\r\n }\r\n var fill = sourceObj.fill;\r\n if (!(0, _type.isDefined)(fill)) {\r\n fill = _excel3.default.tryCreateFillFromSimpleFormat(sourceObj)\r\n }\r\n result = {\r\n numberFormatId: numberFormatId,\r\n alignment: _excel2.default.tryCreateTag(sourceObj.alignment),\r\n fontId: sharedItemsContainer.registerFont(sourceObj.font),\r\n fillId: sharedItemsContainer.registerFill(fill)\r\n };\r\n if (cellFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result;\r\n if (null === source) {\r\n result = null\r\n } else {\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.numberFormat) {\r\n result.numberFormat = source.numberFormat\r\n }\r\n if (void 0 !== source.fill) {\r\n result.fill = _excel3.default.copy(source.fill)\r\n } else {\r\n _excel3.default.copySimpleFormat(source, result)\r\n }\r\n if (void 0 !== source.alignment) {\r\n result.alignment = _excel2.default.copy(source.alignment)\r\n }\r\n if (void 0 !== source.font) {\r\n result.font = _excel4.default.copy(source.font)\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellFormatHelper.isEmpty(leftTag) && cellFormatHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.fontId === rightTag.fontId && leftTag.numberFormatId === rightTag.numberFormatId && leftTag.fillId === rightTag.fillId && _excel2.default.areEqual(leftTag.alignment, rightTag.alignment)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.fontId) && !(0, _type.isDefined)(tag.numberFormatId) && !(0, _type.isDefined)(tag.fillId) && _excel2.default.isEmpty(tag.alignment)\r\n },\r\n toXml: function(tag) {\r\n var isAlignmentEmpty = _excel2.default.isEmpty(tag.alignment);\r\n var applyNumberFormat;\r\n if ((0, _type.isDefined)(tag.numberFormatId)) {\r\n applyNumberFormat = tag.numberFormatId > 0 ? 1 : 0\r\n }\r\n return _excel.default.toXml(\"xf\", {\r\n xfId: 0,\r\n applyAlignment: isAlignmentEmpty ? null : 1,\r\n fontId: tag.fontId,\r\n applyNumberFormat: applyNumberFormat,\r\n fillId: tag.fillId,\r\n numFmtId: tag.numberFormatId\r\n }, isAlignmentEmpty ? null : _excel2.default.toXml(tag.alignment))\r\n }\r\n};\r\nvar _default = cellFormatHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.vertical) && !(0, _type.isDefined)(tag.wrapText) && !(0, _type.isDefined)(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: (0, _type.isDefined)(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nvar _default = cellAlignmentHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.pattern_fill_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.color_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar patternFillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n patternType: sourceObj.patternType,\r\n backgroundColor: _excel2.default.tryCreateTag(sourceObj.backgroundColor),\r\n foregroundColor: _excel2.default.tryCreateTag(sourceObj.foregroundColor)\r\n };\r\n if (patternFillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.patternType) {\r\n result.patternType = source.patternType\r\n }\r\n if (void 0 !== source.backgroundColor) {\r\n result.backgroundColor = _excel2.default.copy(source.backgroundColor)\r\n }\r\n if (void 0 !== source.foregroundColor) {\r\n result.foregroundColor = _excel2.default.copy(source.foregroundColor)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return patternFillHelper.isEmpty(leftTag) && patternFillHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.patternType === rightTag.patternType && _excel2.default.areEqual(leftTag.backgroundColor, rightTag.backgroundColor) && _excel2.default.areEqual(leftTag.foregroundColor, rightTag.foregroundColor)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.patternType)\r\n },\r\n toXml: function(tag) {\r\n var content = [(0, _type.isDefined)(tag.foregroundColor) ? _excel2.default.toXml(\"fgColor\", tag.foregroundColor) : \"\", (0, _type.isDefined)(tag.backgroundColor) ? _excel2.default.toXml(\"bgColor\", tag.backgroundColor) : \"\"].join(\"\");\r\n return _excel.default.toXml(\"patternFill\", {\r\n patternType: tag.patternType\r\n }, content)\r\n }\r\n};\r\nvar _default = patternFillHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.number_format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nvar _default = numberFormatHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/svg_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.svgCreator = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _svg = require(\"../core/utils/svg\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n _ajax.default.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail(function() {\r\n callback(false)\r\n })\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n (0, _iterator.each)(that._imageArray, function(src) {\r\n var deferred = new _deferred.Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n })\r\n })\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = (0, _renderer.default)(element).attr(\"href\") || (0, _renderer.default)(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }(0, _iterator.each)(element.childNodes, function(_, element) {\r\n that._parseImages(element)\r\n })\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return _deferred.when.apply(_renderer.default, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var xmlVersion = '';\r\n var svgElem = (0, _svg.getSvgElement)(data);\r\n var $svgObject = (0, _renderer.default)(svgElem);\r\n markup = xmlVersion + (0, _svg.getSvgMarkup)($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(function() {\r\n (0, _iterator.each)(that._imageArray, function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n });\r\n return (0, _type.isFunction)(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexports.svgCreator = svgCreator;\r\n\r\nfunction getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (exporter/pdf_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nvar _version = _interopRequireDefault(require(\"../core/version\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _image_creator = require(\"./image_creator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<>\\r\\nendobj\\r\\n7 0 obj\\r\\n<>\\r\\nendobj\\r\\n1 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var width = options.width + margin;\r\n var height = options.height + margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", _version.default);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\n\r\nfunction getData(data, options) {\r\n return _image_creator.imageCreator.getImageData(data, (0, _extend.extend)({}, options, {\r\n format: \"JPEG\"\r\n })).then(function(imageString) {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = (0, _type.isFunction)(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (exporter/jspdf/export_data_grid.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.exportDataGrid = exportDataGrid;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _export = require(\"./export\");\r\n\r\nfunction _getFullOptions(options) {\r\n if (!((0, _type.isDefined)(options) && (0, _type.isObject)(options))) {\r\n throw Error('The \"exportDataGrid\" method requires a configuration object.')\r\n }\r\n if (!((0, _type.isDefined)(options.component) && (0, _type.isObject)(options.component) && \"dxDataGrid\" === options.component.NAME)) {\r\n throw Error('The \"component\" field must contain a DataGrid instance.')\r\n }\r\n if (!(0, _type.isDefined)(options.selectedRowsOnly)) {\r\n options.selectedRowsOnly = false\r\n }\r\n return _export.Export.getFullOptions(options)\r\n}\r\n\r\nfunction exportDataGrid(options) {\r\n return _export.Export.export(_getFullOptions(options))\r\n}\r\n","/**\r\n * DevExtreme (exporter/jspdf/export.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Export = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _window = require(\"../../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar Export = {\r\n getFullOptions: function(options) {\r\n var fullOptions = (0, _extend.extend)({}, options);\r\n if (!((0, _type.isDefined)(fullOptions.jsPDFDocument) && (0, _type.isObject)(fullOptions.jsPDFDocument))) {\r\n throw Error('The \"jsPDFDocument\" field must contain a jsPDF instance.')\r\n }\r\n if (!((0, _type.isDefined)(fullOptions.jsPDFDocument.autoTable) && (0, _type.isFunction)(fullOptions.jsPDFDocument.autoTable))) {\r\n throw Error('The \"exportDataGrid\" method requires a autoTable plugin for jsPDF object.')\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.keepColumnWidths)) {\r\n fullOptions.keepColumnWidths = true\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.autoTableOptions)) {\r\n fullOptions.autoTableOptions = this._getDefaultAutoTableOptions()\r\n } else {\r\n if (!(0, _type.isObject)(fullOptions.autoTableOptions)) {\r\n throw Error('The \"autoTableOptions\" option must be of object type.')\r\n }\r\n fullOptions.autoTableOptions = (0, _extend.extend)(true, {}, this._getDefaultAutoTableOptions(), fullOptions.autoTableOptions)\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel)) {\r\n fullOptions.loadPanel = {}\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel.enabled)) {\r\n fullOptions.loadPanel.enabled = true\r\n }\r\n if (!(0, _type.isDefined)(fullOptions.loadPanel.text)) {\r\n fullOptions.loadPanel.text = _message.default.format(\"dxDataGrid-exporting\")\r\n }\r\n return fullOptions\r\n },\r\n _getDefaultAutoTableOptions: function() {\r\n return {\r\n theme: \"plain\",\r\n tableLineColor: 149,\r\n tableLineWidth: .1,\r\n styles: {\r\n textColor: 51,\r\n lineColor: 149,\r\n lineWidth: 0\r\n },\r\n columnStyles: {},\r\n headStyles: {\r\n fontStyle: \"normal\",\r\n textColor: 149,\r\n lineWidth: .1\r\n },\r\n bodyStyles: {\r\n lineWidth: .1\r\n },\r\n head: [],\r\n body: []\r\n }\r\n },\r\n _setLoadPanelOptions: function(component, options) {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n component._setOptionWithoutOptionChange(\"loadPanel\", options);\r\n this._renderLoadPanel(component)\r\n },\r\n _renderLoadPanel: function(component) {\r\n var rowsView = component.getView(\"rowsView\");\r\n rowsView._renderLoadPanel(rowsView.element(), rowsView.element().parent())\r\n },\r\n \"export\": function(options) {\r\n var _this = this;\r\n var jsPDFDocument = options.jsPDFDocument,\r\n autoTableOptions = options.autoTableOptions,\r\n component = options.component,\r\n customizeCell = options.customizeCell,\r\n keepColumnWidths = options.keepColumnWidths,\r\n selectedRowsOnly = options.selectedRowsOnly,\r\n loadPanel = options.loadPanel;\r\n var initialLoadPanelOptions = (0, _extend.extend)({}, component.option(\"loadPanel\"));\r\n if (\"animation\" in component.option(\"loadPanel\")) {\r\n loadPanel.animation = null\r\n }\r\n this._setLoadPanelOptions(component, loadPanel);\r\n var dataProvider = component.getDataProvider(selectedRowsOnly);\r\n var wrapText = !!component.option(\"wordWrapEnabled\");\r\n return new Promise(function(resolve) {\r\n dataProvider.ready().done(function() {\r\n var columns = dataProvider.getColumns();\r\n var styles = dataProvider.getStyles();\r\n var dataRowsCount = dataProvider.getRowsCount();\r\n var headerRowCount = dataProvider.getHeaderRowCount();\r\n var mergedCells = [];\r\n if (keepColumnWidths) {\r\n var pdfColumnWidths = _this._tryGetPdfColumnWidths(autoTableOptions.tableWidth, dataProvider.getColumnsWidths());\r\n if ((0, _type.isDefined)(pdfColumnWidths) && (0, _type.isDefined)(autoTableOptions.columnStyles)) {\r\n _this._setColumnWidths(autoTableOptions.columnStyles, pdfColumnWidths)\r\n }\r\n }\r\n for (var rowIndex = 0; rowIndex < dataRowsCount; rowIndex++) {\r\n var row = [];\r\n for (var cellIndex = 0; cellIndex < columns.length; cellIndex++) {\r\n var _dataProvider$getCell = dataProvider.getCellData(rowIndex, cellIndex, true),\r\n value = _dataProvider$getCell.value,\r\n gridCell = _dataProvider$getCell.cellSourceData;\r\n var cellStyle = styles[dataProvider.getStyleId(rowIndex, cellIndex)];\r\n var pdfCell = {\r\n content: _this._getFormattedValue(value, cellStyle.format),\r\n styles: _this._getPDFCellStyles(gridCell.rowType, columns[cellIndex].alignment, cellStyle, wrapText)\r\n };\r\n if (\"header\" === gridCell.rowType) {\r\n var mergedRange = _this._tryGetMergeRange(rowIndex, cellIndex, mergedCells, dataProvider);\r\n if (mergedRange && mergedRange.rowSpan > 0) {\r\n pdfCell.rowSpan = mergedRange.rowSpan + 1\r\n }\r\n if (mergedRange && mergedRange.colSpan > 0) {\r\n pdfCell.colSpan = mergedRange.colSpan + 1\r\n }\r\n var isMergedCell = mergedCells[rowIndex] && mergedCells[rowIndex][cellIndex];\r\n if (!isMergedCell || pdfCell.rowSpan > 1 || pdfCell.colSpan > 1) {\r\n if ((0, _type.isFunction)(customizeCell)) {\r\n customizeCell({\r\n gridCell: gridCell,\r\n pdfCell: pdfCell\r\n })\r\n }\r\n row.push(pdfCell)\r\n }\r\n } else {\r\n if (\"group\" === gridCell.rowType && !(0, _type.isDefined)(pdfCell.content) && 1 === row.length) {\r\n var _row$0$colSpan;\r\n row[0].colSpan = null !== (_row$0$colSpan = row[0].colSpan) && void 0 !== _row$0$colSpan ? _row$0$colSpan : 1;\r\n row[0].colSpan++\r\n } else {\r\n var _pdfCell$content;\r\n pdfCell.content = null !== (_pdfCell$content = pdfCell.content) && void 0 !== _pdfCell$content ? _pdfCell$content : \"\";\r\n if ((0, _type.isFunction)(customizeCell)) {\r\n customizeCell({\r\n gridCell: gridCell,\r\n pdfCell: pdfCell\r\n })\r\n }\r\n row.push(pdfCell)\r\n }\r\n }\r\n }\r\n if (rowIndex < headerRowCount) {\r\n autoTableOptions.head.push(row)\r\n } else {\r\n autoTableOptions.body.push(row)\r\n }\r\n }\r\n jsPDFDocument.autoTable(autoTableOptions);\r\n resolve()\r\n }).always(function() {\r\n _this._setLoadPanelOptions(component, initialLoadPanelOptions)\r\n })\r\n })\r\n },\r\n _getFormattedValue: function(value, format) {\r\n if ((0, _type.isDefined)(format)) {\r\n if ((0, _type.isDate)(value)) {\r\n return _date.default.format(value, format)\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return _number.default.format(value, format)\r\n }\r\n }\r\n return value\r\n },\r\n _getPDFCellStyles: function(rowType, columnAlignment, cellStyle, wrapText) {\r\n var cellAlignment = cellStyle.alignment,\r\n bold = cellStyle.bold;\r\n var align = \"header\" === rowType ? columnAlignment : cellAlignment;\r\n var pdfCellStyle = {};\r\n if (align) {\r\n pdfCellStyle.halign = align\r\n }\r\n if (bold && \"header\" !== rowType) {\r\n pdfCellStyle.fontStyle = \"bold\"\r\n }\r\n if (wrapText) {\r\n pdfCellStyle.cellWidth = \"wrap\"\r\n }\r\n return pdfCellStyle\r\n },\r\n _tryGetMergeRange: function(rowIndex, cellIndex, mergedCells, dataProvider) {\r\n if (!mergedCells[rowIndex] || !mergedCells[rowIndex][cellIndex]) {\r\n var _dataProvider$getCell2 = dataProvider.getCellMerging(rowIndex, cellIndex),\r\n colspan = _dataProvider$getCell2.colspan,\r\n rowspan = _dataProvider$getCell2.rowspan;\r\n if (colspan || rowspan) {\r\n for (var i = rowIndex; i <= rowIndex + rowspan || 0; i++) {\r\n for (var j = cellIndex; j <= cellIndex + colspan || 0; j++) {\r\n if (!mergedCells[i]) {\r\n mergedCells[i] = []\r\n }\r\n mergedCells[i][j] = true\r\n }\r\n }\r\n return {\r\n rowSpan: rowspan,\r\n colSpan: colspan\r\n }\r\n }\r\n }\r\n },\r\n _tryGetPdfColumnWidths: function(autoTableWidth, columnWidths) {\r\n if ((0, _type.isNumeric)(autoTableWidth) && (0, _type.isDefined)(columnWidths)) {\r\n var tableWidth = columnWidths.reduce(function(a, b) {\r\n return a + b\r\n }, 0);\r\n return columnWidths.map(function(columnWidth) {\r\n return autoTableWidth * columnWidth / tableWidth\r\n })\r\n }\r\n },\r\n _setColumnWidths: function(autoTableColumnStyles, pdfColumnWidths) {\r\n pdfColumnWidths.forEach(function(width, index) {\r\n autoTableColumnStyles[index] = autoTableColumnStyles[index] || {};\r\n autoTableColumnStyles[index].cellWidth = width\r\n })\r\n }\r\n};\r\nexports.Export = Export;\r\n","/**\r\n * DevExtreme (exporter/exceljs/export_data_grid.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.exportDataGrid = exportDataGrid;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _export = require(\"./export\");\r\nvar _errors = _interopRequireDefault(require(\"../../core/errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar helpers = {\r\n _trySetAutoFilter: function(dataProvider, worksheet, cellRange, autoFilterEnabled) {\r\n if (autoFilterEnabled) {\r\n if (!(0, _type.isDefined)(worksheet.autoFilter) && dataProvider.getRowsCount() > 0) {\r\n var dataRange = {\r\n from: {\r\n row: cellRange.from.row + dataProvider.getHeaderRowCount() - 1,\r\n column: cellRange.from.column\r\n },\r\n to: cellRange.to\r\n };\r\n worksheet.autoFilter = dataRange\r\n }\r\n }\r\n },\r\n _trySetFont: function(excelCell, bold) {\r\n if ((0, _type.isDefined)(bold)) {\r\n excelCell.font = excelCell.font || {};\r\n excelCell.font.bold = bold\r\n }\r\n },\r\n _getWorksheetFrozenState: function(dataProvider, cellRange) {\r\n return {\r\n state: \"frozen\",\r\n ySplit: cellRange.from.row + dataProvider.getFrozenArea().y - 1\r\n }\r\n },\r\n _trySetOutlineLevel: function(dataProvider, row, rowIndex) {\r\n if (rowIndex >= dataProvider.getHeaderRowCount()) {\r\n row.outlineLevel = dataProvider.getGroupLevel(rowIndex)\r\n }\r\n },\r\n _getCustomizeCellOptions: function(excelCell, gridCell) {\r\n var options = {\r\n excelCell: excelCell,\r\n gridCell: gridCell\r\n };\r\n Object.defineProperty(options, \"cell\", {\r\n get: function() {\r\n _errors.default.log(\"W0003\", \"CustomizeCell handler argument\", \"cell\", \"20.1\", \"Use the 'excelCell' field instead\");\r\n return excelCell\r\n }\r\n });\r\n return options\r\n },\r\n _isFrozenZone: function(dataProvider) {\r\n return dataProvider.getHeaderRowCount() > 0\r\n },\r\n _isHeaderCell: function(dataProvider, rowIndex) {\r\n return rowIndex < dataProvider.getHeaderRowCount()\r\n },\r\n _allowToMergeRange: function() {\r\n return true\r\n },\r\n _renderLoadPanel: function(component) {\r\n var rowsView = component.getView(\"rowsView\");\r\n rowsView._renderLoadPanel(rowsView.element(), rowsView.element().parent())\r\n }\r\n};\r\n\r\nfunction exportDataGrid(options) {\r\n return _export.Export.export(_getFullOptions(options), helpers)\r\n}\r\n\r\nfunction _getFullOptions(options) {\r\n if (!((0, _type.isDefined)(options) && (0, _type.isObject)(options))) {\r\n throw Error('The \"exportDataGrid\" method requires a configuration object.')\r\n }\r\n if (!((0, _type.isDefined)(options.component) && (0, _type.isObject)(options.component) && \"dxDataGrid\" === options.component.NAME)) {\r\n throw Error('The \"component\" field must contain a DataGrid instance.')\r\n }\r\n if (!(0, _type.isDefined)(options.selectedRowsOnly)) {\r\n options.selectedRowsOnly = false\r\n }\r\n if (!(0, _type.isDefined)(options.autoFilterEnabled)) {\r\n options.autoFilterEnabled = false\r\n }\r\n return _export.Export.getFullOptions(options)\r\n}\r\n","/**\r\n * DevExtreme (exporter/exceljs/export_format.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.ExportFormat = void 0;\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _date2 = require(\"../../localization/ldml/date.format\");\r\nvar _language_codes = require(\"../../localization/language_codes\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nrequire(\"../../localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\n\r\nfunction _applyPrecision(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n}\r\n\r\nfunction _hasArabicDigits(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction _convertDateFormat(format) {\r\n var formattedValue = (_date.default.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = (0, _date2.getFormat)(function(value) {\r\n return _date.default.format(value, format)\r\n });\r\n if (result) {\r\n result = _convertDateFormatToOpenXml(result);\r\n result = _getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n}\r\n\r\nfunction _getLanguageInfo(defaultPattern) {\r\n var languageID = (0, _language_codes.getLanguageId)();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (_hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else {\r\n if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n }\r\n return languageInfo\r\n}\r\n\r\nfunction _convertDateFormatToOpenXml(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map(function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n }).join(\"\")\r\n}\r\n\r\nfunction _convertNumberFormat(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = _number.default.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = (0, _string.format)(excelFormat, _applyPrecision(format, precision))\r\n }\r\n return result\r\n}\r\nvar ExportFormat = {\r\n formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if ((0, _type.isObject)(format)) {\r\n return (0, _extend.extend)(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if ((0, _type.isDefined)(format)) {\r\n if (\"date\" === type) {\r\n return _convertDateFormat(format)\r\n } else {\r\n if ((0, _type.isString)(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return _convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.ExportFormat = ExportFormat;\r\n","/**\r\n * DevExtreme (exporter/exceljs/export_merged_ranges_manager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.MergedRangesManager = void 0;\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar MergedRangesManager = function() {\r\n function MergedRangesManager(dataProvider, helpers, mergeRowFieldValues, mergeColumnFieldValues) {\r\n this.mergedCells = [];\r\n this.mergedRanges = [];\r\n this.dataProvider = dataProvider;\r\n this.helpers = helpers;\r\n this.mergeRowFieldValues = mergeRowFieldValues;\r\n this.mergeColumnFieldValues = mergeColumnFieldValues\r\n }\r\n var _proto = MergedRangesManager.prototype;\r\n _proto.updateMergedRanges = function(excelCell, rowIndex, cellIndex) {\r\n if (this.helpers._isHeaderCell(this.dataProvider, rowIndex, cellIndex)) {\r\n if (!this.isCellInMergedRanges(rowIndex, cellIndex)) {\r\n var _this$dataProvider$ge = this.dataProvider.getCellMerging(rowIndex, cellIndex),\r\n rowspan = _this$dataProvider$ge.rowspan,\r\n colspan = _this$dataProvider$ge.colspan;\r\n var isMasterCellOfMergedRange = colspan || rowspan;\r\n if (isMasterCellOfMergedRange) {\r\n var allowToMergeRange = this.helpers._allowToMergeRange(this.dataProvider, rowIndex, cellIndex, rowspan, colspan, this.mergeRowFieldValues, this.mergeColumnFieldValues);\r\n this.updateMergedCells(excelCell, rowIndex, cellIndex, rowspan, colspan, allowToMergeRange);\r\n if (allowToMergeRange) {\r\n this.mergedRanges.push(_objectSpread({\r\n masterCell: excelCell\r\n }, {\r\n rowspan: rowspan,\r\n colspan: colspan\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n };\r\n _proto.isCellInMergedRanges = function(rowIndex, cellIndex) {\r\n return this.mergedCells[rowIndex] && this.mergedCells[rowIndex][cellIndex]\r\n };\r\n _proto.findMergedCellInfo = function(rowIndex, cellIndex) {\r\n if (this.helpers._isHeaderCell(this.dataProvider, rowIndex, cellIndex)) {\r\n if (this.isCellInMergedRanges(rowIndex, cellIndex)) {\r\n return this.mergedCells[rowIndex][cellIndex]\r\n }\r\n }\r\n };\r\n _proto.updateMergedCells = function(excelCell, rowIndex, cellIndex, rowspan, colspan, allowToMergeRange) {\r\n for (var i = rowIndex; i <= rowIndex + rowspan; i++) {\r\n for (var j = cellIndex; j <= cellIndex + colspan; j++) {\r\n if (!this.mergedCells[i]) {\r\n this.mergedCells[i] = []\r\n }\r\n this.mergedCells[i][j] = {\r\n masterCell: excelCell,\r\n unmerged: !allowToMergeRange\r\n }\r\n }\r\n }\r\n };\r\n _proto.applyMergedRages = function(worksheet) {\r\n this.mergedRanges.forEach(function(range) {\r\n var startRowIndex = range.masterCell.fullAddress.row;\r\n var startColumnIndex = range.masterCell.fullAddress.col;\r\n var endRowIndex = startRowIndex + range.rowspan;\r\n var endColumnIndex = startColumnIndex + range.colspan;\r\n worksheet.mergeCells(startRowIndex, startColumnIndex, endRowIndex, endColumnIndex)\r\n })\r\n };\r\n return MergedRangesManager\r\n}();\r\nexports.MergedRangesManager = MergedRangesManager;\r\n","/**\r\n * DevExtreme (exporter/exceljs/export_pivot_grid.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.exportPivotGrid = exportPivotGrid;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _export = require(\"./export\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar helpers = {\r\n _getWorksheetFrozenState: function(dataProvider, cellRange) {\r\n return {\r\n state: \"frozen\",\r\n xSplit: cellRange.from.column + dataProvider.getFrozenArea().x - 1,\r\n ySplit: cellRange.from.row + dataProvider.getFrozenArea().y - 1\r\n }\r\n },\r\n _getCustomizeCellOptions: function(excelCell, pivotCell) {\r\n return {\r\n excelCell: excelCell,\r\n pivotCell: pivotCell\r\n }\r\n },\r\n _isFrozenZone: function() {\r\n return true\r\n },\r\n _isHeaderCell: function(dataProvider, rowIndex, cellIndex) {\r\n return rowIndex < dataProvider.getColumnAreaRowCount() || cellIndex < dataProvider.getRowAreaColCount()\r\n },\r\n _allowToMergeRange: function(dataProvider, rowIndex, cellIndex, rowspan, colspan, mergeRowFieldValues, mergeColumnFieldValues) {\r\n return !(dataProvider.isColumnAreaCell(rowIndex, cellIndex) && !mergeColumnFieldValues && !!colspan || dataProvider.isRowAreaCell(rowIndex, cellIndex) && !mergeRowFieldValues && !!rowspan)\r\n },\r\n _renderLoadPanel: function(component) {\r\n component._renderLoadPanel(component._dataArea.groupElement(), component.$element())\r\n },\r\n _trySetAutoFilter: _common.noop,\r\n _trySetFont: _common.noop,\r\n _trySetOutlineLevel: _common.noop\r\n};\r\n\r\nfunction exportPivotGrid(options) {\r\n return _export.Export.export(_getFullOptions(options), helpers)\r\n}\r\n\r\nfunction _getFullOptions(options) {\r\n if (!((0, _type.isDefined)(options) && (0, _type.isObject)(options))) {\r\n throw Error('The \"exportPivotGrid\" method requires a configuration object.')\r\n }\r\n if (!((0, _type.isDefined)(options.component) && (0, _type.isObject)(options.component) && \"dxPivotGrid\" === options.component.NAME)) {\r\n throw Error('The \"component\" field must contain a PivotGrid instance.')\r\n }\r\n if (!(0, _type.isDefined)(options.mergeRowFieldValues)) {\r\n options.mergeRowFieldValues = true\r\n }\r\n if (!(0, _type.isDefined)(options.mergeColumnFieldValues)) {\r\n options.mergeColumnFieldValues = true\r\n }\r\n return _export.Export.getFullOptions(options)\r\n}\r\n","/**\r\n * DevExtreme (events/transform.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.rotateend = exports.rotate = exports.rotatestart = exports.pinchend = exports.pinch = exports.pinchstart = exports.zoomend = exports.zoom = exports.zoomstart = exports.translateend = exports.translate = exports.translatestart = exports.transformend = exports.transform = exports.transformstart = void 0;\r\nvar _math = require(\"../core/utils/math\");\r\nvar iteratorUtils = _interopRequireWildcard(require(\"../core/utils/iterator\"));\r\nvar _index = require(\"./utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"./core/emitter\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\nvar DX_PREFIX = \"dx\";\r\nvar TRANSFORM = \"transform\";\r\nvar TRANSLATE = \"translate\";\r\nvar PINCH = \"pinch\";\r\nvar ROTATE = \"rotate\";\r\nvar START_POSTFIX = \"start\";\r\nvar UPDATE_POSTFIX = \"\";\r\nvar END_POSTFIX = \"end\";\r\nvar eventAliases = [];\r\nvar addAlias = function(eventName, eventArgs) {\r\n eventAliases.push({\r\n name: eventName,\r\n args: eventArgs\r\n })\r\n};\r\naddAlias(TRANSFORM, {\r\n scale: true,\r\n deltaScale: true,\r\n rotation: true,\r\n deltaRotation: true,\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(TRANSLATE, {\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(PINCH, {\r\n scale: true,\r\n deltaScale: true\r\n});\r\naddAlias(ROTATE, {\r\n rotation: true,\r\n deltaRotation: true\r\n});\r\nvar getVector = function(first, second) {\r\n return {\r\n x: second.pageX - first.pageX,\r\n y: -second.pageY + first.pageY,\r\n centerX: .5 * (second.pageX + first.pageX),\r\n centerY: .5 * (second.pageY + first.pageY)\r\n }\r\n};\r\nvar getEventVector = function(e) {\r\n var pointers = e.pointers;\r\n return getVector(pointers[0], pointers[1])\r\n};\r\nvar getDistance = function(vector) {\r\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y)\r\n};\r\nvar getScale = function(firstVector, secondVector) {\r\n return getDistance(firstVector) / getDistance(secondVector)\r\n};\r\nvar getRotation = function(firstVector, secondVector) {\r\n var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;\r\n var distanceProduct = getDistance(firstVector) * getDistance(secondVector);\r\n if (0 === distanceProduct) {\r\n return 0\r\n }\r\n var sign = (0, _math.sign)(firstVector.x * secondVector.y - secondVector.x * firstVector.y);\r\n var angle = Math.acos((0, _math.fitIntoRange)(scalarProduct / distanceProduct, -1, 1));\r\n return sign * angle\r\n};\r\nvar getTranslation = function(firstVector, secondVector) {\r\n return {\r\n x: firstVector.centerX - secondVector.centerX,\r\n y: firstVector.centerY - secondVector.centerY\r\n }\r\n};\r\nvar TransformEmitter = _emitter.default.inherit({\r\n validatePointers: function(e) {\r\n return (0, _index.hasTouches)(e) > 1\r\n },\r\n start: function(e) {\r\n this._accept(e);\r\n var startVector = getEventVector(e);\r\n this._startVector = startVector;\r\n this._prevVector = startVector;\r\n this._fireEventAliases(START_POSTFIX, e)\r\n },\r\n move: function(e) {\r\n var currentVector = getEventVector(e);\r\n var eventArgs = this._getEventArgs(currentVector);\r\n this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);\r\n this._prevVector = currentVector\r\n },\r\n end: function(e) {\r\n var eventArgs = this._getEventArgs(this._prevVector);\r\n this._fireEventAliases(END_POSTFIX, e, eventArgs)\r\n },\r\n _getEventArgs: function(vector) {\r\n return {\r\n scale: getScale(vector, this._startVector),\r\n deltaScale: getScale(vector, this._prevVector),\r\n rotation: getRotation(vector, this._startVector),\r\n deltaRotation: getRotation(vector, this._prevVector),\r\n translation: getTranslation(vector, this._startVector),\r\n deltaTranslation: getTranslation(vector, this._prevVector)\r\n }\r\n },\r\n _fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {\r\n eventArgs = eventArgs || {};\r\n iteratorUtils.each(eventAliases, function(_, eventAlias) {\r\n var args = {};\r\n iteratorUtils.each(eventAlias.args, function(name) {\r\n if (name in eventArgs) {\r\n args[name] = eventArgs[name]\r\n }\r\n });\r\n this._fireEvent(DX_PREFIX + eventAlias.name + eventPostfix, originalEvent, args)\r\n }.bind(this))\r\n }\r\n});\r\nvar eventNames = eventAliases.reduce(function(result, eventAlias) {\r\n [START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach(function(eventPostfix) {\r\n result.push(DX_PREFIX + eventAlias.name + eventPostfix)\r\n });\r\n return result\r\n}, []);\r\n(0, _emitter_registrator.default)({\r\n emitter: TransformEmitter,\r\n events: eventNames\r\n});\r\nvar exportNames = {};\r\niteratorUtils.each(eventNames, function(_, eventName) {\r\n exportNames[eventName.substring(DX_PREFIX.length)] = eventName\r\n});\r\nvar transformstart = exportNames.transformstart,\r\n transform = exportNames.transform,\r\n transformend = exportNames.transformend,\r\n translatestart = exportNames.translatestart,\r\n translate = exportNames.translate,\r\n translateend = exportNames.translateend,\r\n zoomstart = exportNames.zoomstart,\r\n zoom = exportNames.zoom,\r\n zoomend = exportNames.zoomend,\r\n pinchstart = exportNames.pinchstart,\r\n pinch = exportNames.pinch,\r\n pinchend = exportNames.pinchend,\r\n rotatestart = exportNames.rotatestart,\r\n rotate = exportNames.rotate,\r\n rotateend = exportNames.rotateend;\r\nexports.rotateend = rotateend;\r\nexports.rotate = rotate;\r\nexports.rotatestart = rotatestart;\r\nexports.pinchend = pinchend;\r\nexports.pinch = pinch;\r\nexports.pinchstart = pinchstart;\r\nexports.zoomend = zoomend;\r\nexports.zoom = zoom;\r\nexports.zoomstart = zoomstart;\r\nexports.translateend = translateend;\r\nexports.translate = translate;\r\nexports.translatestart = translatestart;\r\nexports.transformend = transformend;\r\nexports.transform = transform;\r\nexports.transformstart = transformstart;\r\n","/**\r\n * DevExtreme (events/utils/index.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.isCommandKeyPressed = exports.addNamespace = exports.getChar = exports.normalizeKeyName = exports.fireEvent = exports.createEvent = exports.setEventFixMethod = exports.needSkipEvent = exports.stopEventsSkipping = exports.forceSkipEvents = exports.hasTouches = exports.eventDelta = exports.eventData = exports.isFakeClickEvent = exports.isKeyboardEvent = exports.isTouchEvent = exports.isDxMouseWheelEvent = exports.isMouseEvent = exports.isPointerEvent = exports.eventSource = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _add_namespace = _interopRequireDefault(require(\"./add_namespace\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../core/events_engine\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _selectors = require(\"../../ui/widget/selectors\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n \"delete\": \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\",\r\n left: \"leftArrow\",\r\n up: \"upArrow\",\r\n right: \"rightArrow\",\r\n down: \"downArrow\",\r\n multiply: \"asterisk\",\r\n spacebar: \"space\",\r\n del: \"del\",\r\n subtract: \"minus\",\r\n esc: \"escape\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = function(e) {\r\n return e\r\n};\r\nvar copyEvent = function(originalEvent) {\r\n return fixMethod(_events_engine.default.Event(originalEvent, originalEvent), originalEvent)\r\n};\r\nvar isDxEvent = function(e) {\r\n return \"dx\" === eventSource(e)\r\n};\r\nvar isNativeMouseEvent = function(e) {\r\n return \"mouse\" === eventSource(e)\r\n};\r\nvar isNativeTouchEvent = function(e) {\r\n return \"touch\" === eventSource(e)\r\n};\r\nvar eventSource = function(_ref) {\r\n var type = _ref.type;\r\n var result = \"other\";\r\n (0, _iterator.each)(EVENT_SOURCES_REGEX, function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n });\r\n return result\r\n};\r\nexports.eventSource = eventSource;\r\nvar isPointerEvent = function(e) {\r\n return \"pointer\" === eventSource(e)\r\n};\r\nexports.isPointerEvent = isPointerEvent;\r\nvar isMouseEvent = function(e) {\r\n return isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType\r\n};\r\nexports.isMouseEvent = isMouseEvent;\r\nvar isDxMouseWheelEvent = function(e) {\r\n return e && \"dxmousewheel\" === e.type\r\n};\r\nexports.isDxMouseWheelEvent = isDxMouseWheelEvent;\r\nvar isTouchEvent = function(e) {\r\n return isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType\r\n};\r\nexports.isTouchEvent = isTouchEvent;\r\nvar isKeyboardEvent = function(e) {\r\n return \"keyboard\" === eventSource(e)\r\n};\r\nexports.isKeyboardEvent = isKeyboardEvent;\r\nvar isFakeClickEvent = function(_ref2) {\r\n var screenX = _ref2.screenX,\r\n offsetX = _ref2.offsetX,\r\n pageX = _ref2.pageX;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexports.isFakeClickEvent = isFakeClickEvent;\r\nvar eventData = function(_ref3) {\r\n var pageX = _ref3.pageX,\r\n pageY = _ref3.pageY,\r\n timeStamp = _ref3.timeStamp;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexports.eventData = eventData;\r\nvar eventDelta = function(from, to) {\r\n return {\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n }\r\n};\r\nexports.eventDelta = eventDelta;\r\nvar hasTouches = function(e) {\r\n var originalEvent = e.originalEvent,\r\n pointers = e.pointers;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nexports.hasTouches = hasTouches;\r\nvar skipEvents = false;\r\nvar forceSkipEvents = function() {\r\n return skipEvents = true\r\n};\r\nexports.forceSkipEvents = forceSkipEvents;\r\nvar stopEventsSkipping = function() {\r\n return skipEvents = false\r\n};\r\nexports.stopEventsSkipping = stopEventsSkipping;\r\nvar needSkipEvent = function(e) {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var target = e.target;\r\n var $target = (0, _renderer.default)(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if ($target.is(\".dx-skip-gesture-event *, .dx-skip-gesture-event\")) {\r\n return true\r\n }\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && (0, _selectors.focused)($target)\r\n }\r\n};\r\nexports.needSkipEvent = needSkipEvent;\r\nvar setEventFixMethod = function(func) {\r\n return fixMethod = func\r\n};\r\nexports.setEventFixMethod = setEventFixMethod;\r\nvar createEvent = function(originalEvent, args) {\r\n var event = copyEvent(originalEvent);\r\n args && (0, _extend.extend)(event, args);\r\n return event\r\n};\r\nexports.createEvent = createEvent;\r\nvar fireEvent = function(props) {\r\n var originalEvent = props.originalEvent,\r\n delegateTarget = props.delegateTarget;\r\n var event = createEvent(originalEvent, props);\r\n _events_engine.default.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexports.fireEvent = fireEvent;\r\nvar normalizeKeyName = function(_ref4) {\r\n var key = _ref4.key,\r\n which = _ref4.which;\r\n var isKeySupported = !!key;\r\n key = isKeySupported ? key : which;\r\n if (key) {\r\n if (isKeySupported) {\r\n key = KEY_MAP[key.toLowerCase()] || key\r\n } else {\r\n key = LEGACY_KEY_CODES[key] || String.fromCharCode(key)\r\n }\r\n return key\r\n }\r\n};\r\nexports.normalizeKeyName = normalizeKeyName;\r\nvar getChar = function(_ref5) {\r\n var key = _ref5.key,\r\n which = _ref5.which;\r\n return key || String.fromCharCode(which)\r\n};\r\nexports.getChar = getChar;\r\nvar addNamespace = _add_namespace.default;\r\nexports.addNamespace = addNamespace;\r\nvar isCommandKeyPressed = function(_ref6) {\r\n var ctrlKey = _ref6.ctrlKey,\r\n metaKey = _ref6.metaKey;\r\n return ctrlKey || metaKey\r\n};\r\nexports.isCommandKeyPressed = isCommandKeyPressed;\r\n","/**\r\n * DevExtreme (events/visibility_change.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.triggerResizeEvent = exports.triggerHidingEvent = exports.triggerShownEvent = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"./core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n var VISIBILITY_CHANGE_SELECTOR = \".dx-visibility-change-handler\";\r\n return function(element) {\r\n var $element = (0, _renderer.default)(element || \"body\");\r\n var changeHandlers = $element.filter(VISIBILITY_CHANGE_SELECTOR).add($element.find(VISIBILITY_CHANGE_SELECTOR));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n _events_engine.default.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nvar triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexports.triggerShownEvent = triggerShownEvent;\r\nvar triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexports.triggerHidingEvent = triggerHidingEvent;\r\nvar triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\nexports.triggerResizeEvent = triggerResizeEvent;\r\n","/**\r\n * DevExtreme (file_management/object_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _array = require(\"../core/utils/array\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _data = require(\"../core/utils/data\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _errors = _interopRequireDefault(require(\"../data/errors\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _file_saver = require(\"../exporter/file_saver\");\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\nvar _errors2 = _interopRequireDefault(require(\"./errors\"));\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ObjectFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(ObjectFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function ObjectFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw _errors.default.errors.Error(\"E4006\")\r\n }\r\n var itemsExpr = options.itemsExpr || \"items\";\r\n _this._subFileItemsGetter = (0, _data.compileGetter)(itemsExpr);\r\n _this._subFileItemsSetter = _this._getSetter(itemsExpr);\r\n var contentExpr = options.contentExpr || \"content\";\r\n _this._contentGetter = (0, _data.compileGetter)(contentExpr);\r\n _this._contentSetter = _this._getSetter(contentExpr);\r\n var nameExpr = _this._getNameExpr(options);\r\n _this._nameSetter = _this._getSetter(nameExpr);\r\n var isDirExpr = _this._getIsDirExpr(options);\r\n _this._getIsDirSetter = _this._getSetter(isDirExpr);\r\n var keyExpr = _this._getKeyExpr(options);\r\n _this._keySetter = _this._getSetter(keyExpr);\r\n var sizeExpr = _this._getSizeExpr(options);\r\n _this._sizeSetter = _this._getSetter(sizeExpr);\r\n var dateModifiedExpr = _this._getDateModifiedExpr(options);\r\n _this._dateModifiedSetter = _this._getSetter(dateModifiedExpr);\r\n _this._data = initialArray || [];\r\n return _this\r\n }\r\n var _proto = ObjectFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this2._getItems(parentDir)\r\n }, true)\r\n };\r\n _proto.renameItem = function(item, name) {\r\n var _this3 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this3._renameItemCore(item, name)\r\n })\r\n };\r\n _proto._renameItemCore = function(item, name) {\r\n if (!item) {\r\n return\r\n }\r\n var dataItem = this._findDataObject(item);\r\n this._nameSetter(dataItem, name);\r\n item.name = name;\r\n item.key = this._ensureDataObjectKey(dataItem)\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n var _this4 = this;\r\n return this._executeActionAsDeferred(function() {\r\n _this4._validateDirectoryExists(parentDir);\r\n _this4._createDataObject(parentDir, name, true)\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeActionAsDeferred(function() {\r\n return _this5._deleteItem(item)\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDir) {\r\n var _this6 = this;\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(function(item) {\r\n return _this6._executeActionAsDeferred(function() {\r\n _this6._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = _this6._findDataObject(item);\r\n _this6._deleteItem(item);\r\n array.push(dataItem)\r\n })\r\n });\r\n return deferreds\r\n };\r\n _proto.copyItems = function(items, destinationDir) {\r\n var _this7 = this;\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(function(item) {\r\n return _this7._executeActionAsDeferred(function() {\r\n _this7._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = _this7._findDataObject(item);\r\n var copiedItem = _this7._createCopy(dataItem);\r\n array.push(copiedItem)\r\n })\r\n });\r\n return deferreds\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this8 = this;\r\n if (chunksInfo.chunkIndex > 0) {\r\n return chunksInfo.customData.deferred\r\n }\r\n this._validateDirectoryExists(destinationDirectory);\r\n var deferred = chunksInfo.customData.deferred = new _deferred.Deferred;\r\n var reader = this._createFileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function() {\r\n var content = reader.result.split(\",\")[1];\r\n var dataObj = _this8._createDataObject(destinationDirectory, fileData.name, false);\r\n _this8._sizeSetter(dataObj, fileData.size);\r\n _this8._dateModifiedSetter(dataObj, fileData.lastModifiedDate);\r\n _this8._contentSetter(dataObj, content);\r\n deferred.resolve()\r\n };\r\n reader.onerror = function(error) {\r\n return deferred.reject(error)\r\n };\r\n return deferred\r\n };\r\n _proto.downloadItems = function(items) {\r\n if (1 === items.length) {\r\n this._downloadSingleFile(items[0])\r\n } else {\r\n this._downloadMultipleFiles(items)\r\n }\r\n };\r\n _proto._downloadSingleFile = function(file) {\r\n var content = this._getFileContent(file);\r\n var byteString = window.atob(content);\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var array = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n array[i] = byteString.charCodeAt(i)\r\n }\r\n var blob = new window.Blob([arrayBuffer], {\r\n type: \"application/octet-stream\"\r\n });\r\n _file_saver.fileSaver.saveAs(file.name, null, blob)\r\n };\r\n _proto._downloadMultipleFiles = function(files) {\r\n var _this9 = this;\r\n var jsZip = getJSZip();\r\n var zip = new jsZip;\r\n files.forEach(function(file) {\r\n return zip.file(file.name, _this9._getFileContent(file), {\r\n base64: true\r\n })\r\n });\r\n var options = {\r\n type: \"blob\",\r\n compression: \"DEFLATE\",\r\n mimeType: \"application/zip\"\r\n };\r\n var deferred = new _deferred.Deferred;\r\n if (zip.generateAsync) {\r\n zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(zip.generate(options))\r\n }\r\n deferred.done(function(blob) {\r\n return _file_saver.fileSaver.saveAs(\"files.zip\", null, blob)\r\n })\r\n };\r\n _proto._getFileContent = function(file) {\r\n var dataItem = this._findDataObject(file);\r\n return this._contentGetter(dataItem) || \"\"\r\n };\r\n _proto._validateDirectoryExists = function(directoryInfo) {\r\n if (!this._isFileItemExists(directoryInfo) || this._isDirGetter(directoryInfo.fileItem)) {\r\n throw {\r\n errorId: _errors2.default.DirectoryNotFound,\r\n fileItem: directoryInfo\r\n }\r\n }\r\n };\r\n _proto._checkAbilityToMoveOrCopyItem = function(item, destinationDir) {\r\n var _this10 = this;\r\n var dataItem = this._findDataObject(item);\r\n var itemKey = this._getKeyFromDataObject(dataItem, item.parentPath);\r\n var pathInfo = destinationDir.getFullPathInfo();\r\n var currentPath = \"\";\r\n pathInfo.forEach(function(info) {\r\n currentPath = (0, _utils.pathCombine)(currentPath, info.name);\r\n var pathKey = _this10._getDataObjectKey(info.key, currentPath);\r\n if (pathKey === itemKey) {\r\n throw {\r\n errorId: _errors2.default.Other,\r\n fileItem: item\r\n }\r\n }\r\n })\r\n };\r\n _proto._createDataObject = function(parentDir, name, isDirectory) {\r\n var dataObj = {};\r\n this._nameSetter(dataObj, name);\r\n this._getIsDirSetter(dataObj, isDirectory);\r\n this._keySetter(dataObj, String(new _guid.default));\r\n var parentDataItem = this._findDataObject(parentDir);\r\n var array = this._getDirectoryDataItems(parentDataItem);\r\n array.push(dataObj);\r\n return dataObj\r\n };\r\n _proto._createCopy = function(dataObj) {\r\n var _this11 = this;\r\n var copyObj = {};\r\n this._nameSetter(copyObj, this._nameGetter(dataObj));\r\n this._getIsDirSetter(copyObj, this._isDirGetter(dataObj));\r\n var items = this._subFileItemsGetter(dataObj);\r\n if (Array.isArray(items)) {\r\n var itemsCopy = [];\r\n items.forEach(function(childItem) {\r\n var childCopy = _this11._createCopy(childItem);\r\n itemsCopy.push(childCopy)\r\n });\r\n this._subFileItemsSetter(copyObj, itemsCopy)\r\n }\r\n return copyObj\r\n };\r\n _proto._deleteItem = function(fileItem) {\r\n var dataItem = this._findDataObject(fileItem);\r\n var parentDirDataObj = this._findFileItemObj(fileItem.pathInfo);\r\n var array = this._getDirectoryDataItems(parentDirDataObj);\r\n var index = array.indexOf(dataItem);\r\n array.splice(index, 1)\r\n };\r\n _proto._getDirectoryDataItems = function(directoryDataObj) {\r\n if (!directoryDataObj) {\r\n return this._data\r\n }\r\n var dataItems = this._subFileItemsGetter(directoryDataObj);\r\n if (!Array.isArray(dataItems)) {\r\n dataItems = [];\r\n this._subFileItemsSetter(directoryDataObj, dataItems)\r\n }\r\n return dataItems\r\n };\r\n _proto._getItems = function(parentDir) {\r\n this._validateDirectoryExists(parentDir);\r\n var pathInfo = parentDir.getFullPathInfo();\r\n var parentDirKey = pathInfo && pathInfo.length > 0 ? pathInfo[pathInfo.length - 1].key : null;\r\n var dirFileObjects = this._data;\r\n if (parentDirKey) {\r\n var directoryEntry = this._findFileItemObj(pathInfo);\r\n dirFileObjects = directoryEntry && this._subFileItemsGetter(directoryEntry) || []\r\n }\r\n this._ensureKeysForDuplicateNameItems(dirFileObjects);\r\n return this._convertDataObjectsToFileItems(dirFileObjects, pathInfo)\r\n };\r\n _proto._ensureKeysForDuplicateNameItems = function(dataObjects) {\r\n var _this12 = this;\r\n var names = {};\r\n dataObjects.forEach(function(obj) {\r\n var name = _this12._nameGetter(obj);\r\n if (names[name]) {\r\n _this12._ensureDataObjectKey(obj)\r\n } else {\r\n names[name] = true\r\n }\r\n })\r\n };\r\n _proto._findDataObject = function(item) {\r\n if (item.isRoot()) {\r\n return null\r\n }\r\n var result = this._findFileItemObj(item.getFullPathInfo());\r\n if (!result) {\r\n throw {\r\n errorId: item.isDirectory ? _errors2.default.DirectoryNotFound : _errors2.default.FileNotFound,\r\n fileItem: item\r\n }\r\n }\r\n return result\r\n };\r\n _proto._findFileItemObj = function(pathInfo) {\r\n var _this13 = this;\r\n if (!Array.isArray(pathInfo)) {\r\n pathInfo = []\r\n }\r\n var currentPath = \"\";\r\n var fileItemObj = null;\r\n var fileItemObjects = this._data;\r\n var _loop = function(i) {\r\n fileItemObj = (0, _array.find)(fileItemObjects, function(item) {\r\n var hasCorrectFileItemType = _this13._isDirGetter(item) || i === pathInfo.length - 1;\r\n return _this13._getKeyFromDataObject(item, currentPath) === pathInfo[i].key && _this13._nameGetter(item) === pathInfo[i].name && hasCorrectFileItemType\r\n });\r\n if (fileItemObj) {\r\n currentPath = (0, _utils.pathCombine)(currentPath, _this13._nameGetter(fileItemObj));\r\n fileItemObjects = _this13._subFileItemsGetter(fileItemObj)\r\n }\r\n };\r\n for (var i = 0; i < pathInfo.length && (0 === i || fileItemObj); i++) {\r\n _loop(i)\r\n }\r\n return fileItemObj\r\n };\r\n _proto._getKeyFromDataObject = function(dataObj, defaultKeyPrefix) {\r\n var key = this._keyGetter(dataObj);\r\n var relativeName = (0, _utils.pathCombine)(defaultKeyPrefix, this._nameGetter(dataObj));\r\n return this._getDataObjectKey(key, relativeName)\r\n };\r\n _proto._getDataObjectKey = function(key, relativeName) {\r\n return key ? key : relativeName\r\n };\r\n _proto._ensureDataObjectKey = function(dataObj) {\r\n var key = this._keyGetter(dataObj);\r\n if (!key) {\r\n key = String(new _guid.default);\r\n this._keySetter(dataObj, key)\r\n }\r\n return key\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var subItems = (0, _common.ensureDefined)(this._subFileItemsGetter(dataObj), []);\r\n if (!Array.isArray(subItems)) {\r\n return true\r\n }\r\n for (var i = 0; i < subItems.length; i++) {\r\n if (true === this._isDirGetter(subItems[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._getSetter = function(expr) {\r\n return (0, _type.isFunction)(expr) ? expr : (0, _data.compileSetter)(expr)\r\n };\r\n _proto._isFileItemExists = function(fileItem) {\r\n return fileItem.isDirectory && fileItem.isRoot() || !!this._findFileItemObj(fileItem.getFullPathInfo())\r\n };\r\n _proto._createFileReader = function() {\r\n return new window.FileReader\r\n };\r\n return ObjectFileSystemProvider\r\n}(_provider_base.default);\r\n\r\nfunction getJSZip() {\r\n if (!_jszip.default) {\r\n throw _ui.default.Error(\"E1041\", \"JSZip\")\r\n }\r\n return _jszip.default\r\n}\r\nvar _default = ObjectFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (file_management/remote_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\nvar _data = require(\"../core/utils/data\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar FILE_CHUNK_BLOB_NAME = \"chunk\";\r\nvar RemoteFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(RemoteFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function RemoteFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n _this._endpointUrl = options.endpointUrl;\r\n _this._hasSubDirsGetter = (0, _data.compileGetter)(options.hasSubDirectoriesExpr || \"hasSubDirectories\");\r\n return _this\r\n }\r\n var _proto = RemoteFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._getEntriesByPath(pathInfo).then(function(result) {\r\n return _this2._convertDataObjectsToFileItems(result.result, pathInfo)\r\n })\r\n };\r\n _proto.renameItem = function(item, name) {\r\n return this._executeRequest(\"Rename\", {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory,\r\n name: name\r\n })\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n return this._executeRequest(\"CreateDir\", {\r\n pathInfo: parentDir.getFullPathInfo(),\r\n name: name\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this3 = this;\r\n return items.map(function(item) {\r\n return _this3._executeRequest(\"Remove\", {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDirectory) {\r\n var _this4 = this;\r\n return items.map(function(item) {\r\n return _this4._executeRequest(\"Move\", {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationDirectory.getFullPathInfo()\r\n })\r\n })\r\n };\r\n _proto.copyItems = function(items, destinationFolder) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeRequest(\"Copy\", {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationFolder.getFullPathInfo()\r\n })\r\n })\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n if (0 === chunksInfo.chunkIndex) {\r\n chunksInfo.customData.uploadId = new _guid.default\r\n }\r\n var args = {\r\n destinationPathInfo: destinationDirectory.getFullPathInfo(),\r\n chunkMetadata: JSON.stringify({\r\n UploadId: chunksInfo.customData.uploadId,\r\n FileName: fileData.name,\r\n Index: chunksInfo.chunkIndex,\r\n TotalCount: chunksInfo.chunkCount,\r\n FileSize: fileData.size\r\n })\r\n };\r\n var formData = new window.FormData;\r\n formData.append(FILE_CHUNK_BLOB_NAME, chunksInfo.chunkBlob);\r\n formData.append(\"arguments\", JSON.stringify(args));\r\n formData.append(\"command\", \"UploadChunk\");\r\n var deferred = new _deferred.Deferred;\r\n _ajax.default.sendRequest({\r\n url: this._endpointUrl,\r\n method: \"POST\",\r\n dataType: \"json\",\r\n data: formData,\r\n upload: {\r\n onprogress: _common.noop,\r\n onloadstart: _common.noop,\r\n onabort: _common.noop\r\n },\r\n cache: false\r\n }).done(function(result) {\r\n !result.success && deferred.reject(result) || deferred.resolve()\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n };\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {\r\n return this._executeRequest(\"AbortUpload\", {\r\n uploadId: chunksInfo.customData.uploadId\r\n })\r\n };\r\n _proto.downloadItems = function(items) {\r\n var args = this._getDownloadArgs(items);\r\n var $form = (0, _renderer.default)(\"
\").css({\r\n display: \"none\"\r\n }).attr({\r\n method: \"post\",\r\n action: args.url\r\n });\r\n [\"command\", \"arguments\"].forEach(function(name) {\r\n (0, _renderer.default)(\"\").attr({\r\n type: \"hidden\",\r\n name: name,\r\n value: args[name]\r\n }).appendTo($form)\r\n });\r\n $form.appendTo(\"body\");\r\n _events_engine.default.trigger($form, \"submit\");\r\n setTimeout(function() {\r\n return $form.remove()\r\n })\r\n };\r\n _proto.getItemsContent = function(items) {\r\n var args = this._getDownloadArgs(items);\r\n var formData = new window.FormData;\r\n formData.append(\"command\", args.command);\r\n formData.append(\"arguments\", args.arguments);\r\n return _ajax.default.sendRequest({\r\n url: args.url,\r\n method: \"POST\",\r\n responseType: \"arraybuffer\",\r\n data: formData,\r\n upload: {\r\n onprogress: _common.noop,\r\n onloadstart: _common.noop,\r\n onabort: _common.noop\r\n },\r\n cache: false\r\n })\r\n };\r\n _proto._getDownloadArgs = function(items) {\r\n var pathInfoList = items.map(function(item) {\r\n return item.getFullPathInfo()\r\n });\r\n var args = {\r\n pathInfoList: pathInfoList\r\n };\r\n var argsStr = JSON.stringify(args);\r\n return {\r\n url: this._endpointUrl,\r\n arguments: argsStr,\r\n command: \"Download\"\r\n }\r\n };\r\n _proto._getItemsIds = function(items) {\r\n return items.map(function(it) {\r\n return it.relativeName\r\n })\r\n };\r\n _proto._getEntriesByPath = function(pathInfo) {\r\n return this._executeRequest(\"GetDirContents\", {\r\n pathInfo: pathInfo\r\n })\r\n };\r\n _proto._executeRequest = function(command, args) {\r\n var method = \"GetDirContents\" === command ? \"GET\" : \"POST\";\r\n var deferred = new _deferred.Deferred;\r\n _ajax.default.sendRequest({\r\n url: this._getEndpointUrl(command, args),\r\n method: method,\r\n dataType: \"json\",\r\n cache: false\r\n }).then(function(result) {\r\n !result.success && deferred.reject(result) || deferred.resolve(result)\r\n }, function(e) {\r\n return deferred.reject(e)\r\n });\r\n return deferred.promise()\r\n };\r\n _proto._getEndpointUrl = function(command, args) {\r\n var queryString = this._getQueryString({\r\n command: command,\r\n arguments: JSON.stringify(args)\r\n });\r\n var separator = this._endpointUrl && this._endpointUrl.indexOf(\"?\") > 0 ? \"&\" : \"?\";\r\n return this._endpointUrl + separator + queryString\r\n };\r\n _proto._getQueryString = function(params) {\r\n var pairs = [];\r\n var keys = Object.keys(params);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var value = params[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n this._processQueryStringArrayParam(key, value, pairs)\r\n } else {\r\n var pair = this._getQueryStringPair(key, value);\r\n pairs.push(pair)\r\n }\r\n }\r\n return pairs.join(\"&\")\r\n };\r\n _proto._processQueryStringArrayParam = function(key, array, pairs) {\r\n var _this6 = this;\r\n (0, _iterator.each)(array, function(_, item) {\r\n var pair = _this6._getQueryStringPair(key, item);\r\n pairs.push(pair)\r\n })\r\n };\r\n _proto._getQueryStringPair = function(key, value) {\r\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value)\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || \"key\"\r\n };\r\n return RemoteFileSystemProvider\r\n}(_provider_base.default);\r\nvar _default = RemoteFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (file_management/custom_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _data = require(\"../core/utils/data\");\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar CustomFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(CustomFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function CustomFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n _this._hasSubDirsGetter = (0, _data.compileGetter)(options.hasSubDirectoriesExpr || \"hasSubDirectories\");\r\n _this._getItemsFunction = _this._ensureFunction(options.getItems, function() {\r\n return []\r\n });\r\n _this._renameItemFunction = _this._ensureFunction(options.renameItem);\r\n _this._createDirectoryFunction = _this._ensureFunction(options.createDirectory);\r\n _this._deleteItemFunction = _this._ensureFunction(options.deleteItem);\r\n _this._moveItemFunction = _this._ensureFunction(options.moveItem);\r\n _this._copyItemFunction = _this._ensureFunction(options.copyItem);\r\n _this._uploadFileChunkFunction = _this._ensureFunction(options.uploadFileChunk);\r\n _this._abortFileUploadFunction = _this._ensureFunction(options.abortFileUpload);\r\n _this._downloadItemsFunction = _this._ensureFunction(options.downloadItems);\r\n _this._getItemsContentFunction = _this._ensureFunction(options.getItemsContent);\r\n return _this\r\n }\r\n var _proto = CustomFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._executeActionAsDeferred(function() {\r\n return _this2._getItemsFunction(parentDir)\r\n }, true).then(function(dataItems) {\r\n return _this2._convertDataObjectsToFileItems(dataItems, pathInfo)\r\n })\r\n };\r\n _proto.renameItem = function(item, name) {\r\n var _this3 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this3._renameItemFunction(item, name)\r\n })\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n var _this4 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this4._createDirectoryFunction(parentDir, name)\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeActionAsDeferred(function() {\r\n return _this5._deleteItemFunction(item)\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDirectory) {\r\n var _this6 = this;\r\n return items.map(function(item) {\r\n return _this6._executeActionAsDeferred(function() {\r\n return _this6._moveItemFunction(item, destinationDirectory)\r\n })\r\n })\r\n };\r\n _proto.copyItems = function(items, destinationFolder) {\r\n var _this7 = this;\r\n return items.map(function(item) {\r\n return _this7._executeActionAsDeferred(function() {\r\n return _this7._copyItemFunction(item, destinationFolder)\r\n })\r\n })\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this8 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this8._uploadFileChunkFunction(fileData, chunksInfo, destinationDirectory)\r\n })\r\n };\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this9 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this9._abortFileUploadFunction(fileData, chunksInfo, destinationDirectory)\r\n })\r\n };\r\n _proto.downloadItems = function(items) {\r\n return this._downloadItemsFunction(items)\r\n };\r\n _proto.getItemsContent = function(items) {\r\n var _this10 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this10._getItemsContentFunction(items)\r\n })\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || \"key\"\r\n };\r\n _proto._ensureFunction = function(functionObject, defaultFunction) {\r\n defaultFunction = defaultFunction || _common.noop;\r\n return (0, _type.isFunction)(functionObject) ? functionObject : defaultFunction\r\n };\r\n return CustomFileSystemProvider\r\n}(_provider_base.default);\r\nvar _default = CustomFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"./core/utils/type\");\r\nvar _date = _interopRequireDefault(require(\"./core/utils/date\"));\r\nvar _number = _interopRequireDefault(require(\"./localization/number\"));\r\nvar _date2 = _interopRequireDefault(require(\"./localization/date\"));\r\nvar _dependency_injector = _interopRequireDefault(require(\"./core/utils/dependency_injector\"));\r\nrequire(\"./localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = (0, _dependency_injector.default)({\r\n format: function(value, _format) {\r\n var formatIsValid = (0, _type.isString)(_format) && \"\" !== _format || (0, _type.isPlainObject)(_format) || (0, _type.isFunction)(_format);\r\n var valueIsValid = (0, _type.isNumeric)(value) || (0, _type.isDate)(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return (0, _type.isDefined)(value) ? value.toString() : \"\"\r\n }\r\n if ((0, _type.isFunction)(_format)) {\r\n return _format(value)\r\n }\r\n if ((0, _type.isString)(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return _number.default.format(value, _format)\r\n }\r\n if ((0, _type.isDate)(value)) {\r\n return _date2.default.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map(function(formatPart) {\r\n return _date2.default.format(date, formatPart)\r\n }).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n var secondFormatter = function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n };\r\n resultFormat.push(secondFormatter)\r\n } else {\r\n if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n var monthDayFormatter = function(date) {\r\n return _date2.default.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(monthDayFormatter)\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n var dayFormatter = function(date) {\r\n return _date2.default.format(date, \"dayofweek\") + \", \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(dayFormatter)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = _date.default.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = _date.default.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var dateDifferencesConverter = {\r\n week: \"day\"\r\n };\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n var correctDifferencesByMaxDate = function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else {\r\n if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else {\r\n if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else {\r\n if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else {\r\n if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else {\r\n if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n tickInterval = (0, _type.isString)(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = _date.default.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n correctDifferencesByMaxDate(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = _date.default.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = _date.default.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[dateDifferencesConverter[dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/drag.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.drop = exports.leave = exports.enter = exports.end = exports.start = exports.move = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _element_data = require(\"../core/element_data\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar iteratorUtils = _interopRequireWildcard(require(\"../core/utils/iterator\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _event_registrator = _interopRequireDefault(require(\"./core/event_registrator\"));\r\nvar _index = require(\"./utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"./gesture/emitter.gesture\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nexports.start = DRAG_START_EVENT;\r\nvar DRAG_EVENT = \"dxdrag\";\r\nexports.move = DRAG_EVENT;\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nexports.end = DRAG_END_EVENT;\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nexports.enter = DRAG_ENTER_EVENT;\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nexports.leave = DRAG_LEAVE_EVENT;\r\nvar DROP_EVENT = \"dxdrop\";\r\nexports.drop = DROP_EVENT;\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = (0, _array.inArray)(element, knownDropTargets) !== -1;\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = (0, _array.inArray)(element, knownDropTargets);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if ((0, _array.inArray)(selector, knownDropTargetSelectors[index]) === -1) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = (0, _element_data.data)(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n (0, _element_data.data)(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = (0, _element_data.data)(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = (0, _array.inArray)(element, knownDropTargets);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n (0, _element_data.removeData)(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\n(0, _event_registrator.default)(DRAG_ENTER_EVENT, dropTargetRegistration);\r\n(0, _event_registrator.default)(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\n(0, _event_registrator.default)(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = (0, _array.inArray)($element.get(0), knownDropTargets);\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(function(selector) {\r\n return selector\r\n });\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if ((0, _array.inArray)(void 0, knownDropTargetSelectors[dropTargetIndex]) !== -1) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = (0, _array.inArray)($element.get(0), knownDropTargets);\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = _emitter.default.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n var dropTargets = (0, _array.wrapToArray)(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, function(element) {\r\n return (0, _renderer.default)(element).get(0)\r\n })\r\n },\r\n _move: function(e) {\r\n var eventData = (0, _index.eventData)(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n (0, _index.fireEvent)(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = (0, _renderer.default)(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), function(_, delegatedTarget) {\r\n var $delegatedTarget = (0, _renderer.default)(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, (0, _renderer.default)(result), e)) {\r\n result = delegatedTarget\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, function(_, activeTarget) {\r\n active = active || activeTarget === target || (0, _dom.contains)(activeTarget, target);\r\n return !active\r\n });\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === (0, _renderer.default)(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = (0, _index.eventData)(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\n(0, _emitter_registrator.default)({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\n","/**\r\n * DevExtreme (events/core/event_registrator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _event_registrator_callbacks = _interopRequireDefault(require(\"./event_registrator_callbacks\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }(0, _iterator.each)([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n });\r\n _event_registrator_callbacks.default.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = _event_registrator_callbacks.default;\r\nvar _default = registerEvent;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.tag_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if ((0, _type.isDefined)(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if ((0, _type.isDefined)(content) && \"\" !== content) {\r\n result.push(\">\", content, \"\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nvar _default = tagHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/core/emitter_registrator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _ready_callbacks = _interopRequireDefault(require(\"../../core/utils/ready_callbacks\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _event_registrator = _interopRequireDefault(require(\"./event_registrator\"));\r\nvar _index = require(\"../utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../pointer\"));\r\nvar _wheel = require(\"./wheel\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = _class.default.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n _ready_callbacks.default.add(function() {\r\n var document = _dom_adapter.default.getDocument();\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)(_pointer.default.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)(_pointer.default.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)([_pointer.default.up, _pointer.default.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)(_wheel.name, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter(function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n })\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if ((0, _index.isMouseEvent)(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n (0, _iterator.each)(currentSet, function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n });\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = (0, _renderer.default)(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = (0, _element_data.data)($element.get(0), EMITTER_DATA) || [];\r\n (0, _iterator.each)(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter(function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n })\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = (0, _array.inArray)(emitter, activeEmitters);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter(function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n });\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter(function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n });\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter(function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n });\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n (0, _iterator.each)(emitterEvents, function(_, eventName) {\r\n (0, _event_registrator.default)(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = (0, _element_data.data)(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = (0, _element_data.data)(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n (0, _element_data.data)(element, EMITTER_DATA, emitters);\r\n (0, _element_data.data)(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = (0, _element_data.data)(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure((0, _extend.extend)({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = (0, _element_data.data)(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = (0, _element_data.data)(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n (0, _iterator.each)(emitterEvents, function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n });\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n })\r\n};\r\nvar _default = registerEmitter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/hold.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _index = require(\"./utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"./core/emitter\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = _emitter.default.inherit({\r\n start: function(e) {\r\n this._startEventData = (0, _index.eventData)(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = (0, _index.eventDelta)(this._startEventData, (0, _index.eventData)(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\n(0, _emitter_registrator.default)({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nvar _default = {\r\n name: HOLD_EVENT_NAME\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/short.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.keyboard = exports.click = exports.dxClick = exports.focus = exports.visibility = exports.hover = exports.resize = exports.active = void 0;\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"./core/events_engine\"));\r\nvar _keyboard_processor = _interopRequireDefault(require(\"./core/keyboard_processor\"));\r\nvar _index = require(\"./utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? (0, _index.addNamespace)(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nvar active = {\r\n on: function($el, active, inactive, opts) {\r\n var selector = opts.selector,\r\n showTimeout = opts.showTimeout,\r\n hideTimeout = opts.hideTimeout,\r\n namespace = opts.namespace;\r\n _events_engine.default.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, function(event) {\r\n return executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n })\r\n });\r\n _events_engine.default.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, function(event) {\r\n return executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n })\r\n })\r\n },\r\n off: function($el, _ref) {\r\n var namespace = _ref.namespace,\r\n selector = _ref.selector;\r\n _events_engine.default.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n _events_engine.default.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexports.active = active;\r\nvar resize = {\r\n on: function($el, resize) {\r\n var _ref2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\r\n namespace = _ref2.namespace;\r\n _events_engine.default.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var _ref3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\r\n namespace = _ref3.namespace;\r\n _events_engine.default.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexports.resize = resize;\r\nvar hover = {\r\n on: function($el, start, end, _ref4) {\r\n var selector = _ref4.selector,\r\n namespace = _ref4.namespace;\r\n _events_engine.default.on($el, addNamespace(\"dxhoverend\", namespace), selector, function(event) {\r\n return end(event)\r\n });\r\n _events_engine.default.on($el, addNamespace(\"dxhoverstart\", namespace), selector, function(event) {\r\n return executeAction(start, {\r\n element: event.target,\r\n event: event\r\n })\r\n })\r\n },\r\n off: function($el, _ref5) {\r\n var selector = _ref5.selector,\r\n namespace = _ref5.namespace;\r\n _events_engine.default.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n _events_engine.default.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexports.hover = hover;\r\nvar visibility = {\r\n on: function($el, shown, hiding, _ref6) {\r\n var namespace = _ref6.namespace;\r\n _events_engine.default.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n _events_engine.default.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: function($el, _ref7) {\r\n var namespace = _ref7.namespace;\r\n _events_engine.default.off($el, addNamespace(\"dxhiding\", namespace));\r\n _events_engine.default.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexports.visibility = visibility;\r\nvar focus = {\r\n on: function($el, focusIn, focusOut, _ref8) {\r\n var namespace = _ref8.namespace,\r\n isFocusable = _ref8.isFocusable;\r\n _events_engine.default.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n _events_engine.default.on($el, addNamespace(\"focusout\", namespace), focusOut);\r\n if (_dom_adapter.default.hasDocumentProperty(\"onbeforeactivate\")) {\r\n _events_engine.default.on($el, addNamespace(\"beforeactivate\", namespace), function(e) {\r\n return isFocusable(null, e.target) || e.preventDefault()\r\n })\r\n }\r\n },\r\n off: function($el, _ref9) {\r\n var namespace = _ref9.namespace;\r\n _events_engine.default.off($el, addNamespace(\"focusin\", namespace));\r\n _events_engine.default.off($el, addNamespace(\"focusout\", namespace));\r\n if (_dom_adapter.default.hasDocumentProperty(\"onbeforeactivate\")) {\r\n _events_engine.default.off($el, addNamespace(\"beforeactivate\", namespace))\r\n }\r\n },\r\n trigger: function($el) {\r\n return _events_engine.default.trigger($el, \"focus\")\r\n }\r\n};\r\nexports.focus = focus;\r\nvar dxClick = {\r\n on: function($el, click) {\r\n var _ref10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\r\n namespace = _ref10.namespace;\r\n _events_engine.default.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var _ref11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\r\n namespace = _ref11.namespace;\r\n _events_engine.default.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexports.dxClick = dxClick;\r\nvar click = {\r\n on: function($el, click) {\r\n var _ref12 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\r\n namespace = _ref12.namespace;\r\n _events_engine.default.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var _ref13 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\r\n namespace = _ref13.namespace;\r\n _events_engine.default.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nexports.click = click;\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = function() {\r\n return \"keyboardProcessorId\".concat(index++)\r\n};\r\nvar keyboard = {\r\n on: function(element, focusTarget, handler) {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new _keyboard_processor.default({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: function(listenerId) {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: function(listenerId) {\r\n return keyboardProcessors[listenerId]\r\n }\r\n};\r\nexports.keyboard = keyboard;\r\n","/**\r\n * DevExtreme (events/core/wheel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.name = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _event_registrator = _interopRequireDefault(require(\"./event_registrator\"));\r\nvar _index = require(\"../utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nexports.name = EVENT_NAME;\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = (0, _renderer.default)(element);\r\n _events_engine.default.on($element, (0, _index.addNamespace)(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n _events_engine.default.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var _e$originalEvent = e.originalEvent,\r\n deltaMode = _e$originalEvent.deltaMode,\r\n deltaY = _e$originalEvent.deltaY,\r\n deltaX = _e$originalEvent.deltaX,\r\n deltaZ = _e$originalEvent.deltaZ;\r\n (0, _index.fireEvent)({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta: function(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\n(0, _event_registrator.default)(EVENT_NAME, wheel);\r\n","/**\r\n * DevExtreme (events/core/emitter.feedback.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.inactive = exports.active = exports.lock = void 0;\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _index = require(\"../utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../pointer\"));\r\nvar _emitter = _interopRequireDefault(require(\"./emitter\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./emitter_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nexports.active = ACTIVE_EVENT_NAME;\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nexports.inactive = INACTIVE_EVENT_NAME;\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = _class.default.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule(function() {\r\n that.force()\r\n })\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = _emitter.default.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, _common.noop);\r\n this._inactive = new FeedbackEvent(0, _common.noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = (0, _dom.contains)(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = (0, _index.isMouseEvent)(e);\r\n var isSimulator = _devices.default.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = (0, _common.ensureDefined)(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = (0, _common.ensureDefined)(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n });\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n })\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== _pointer.default.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : _common.noop;\r\n deferred.done(lockInactive)\r\n};\r\n(0, _emitter_registrator.default)({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nvar lock = FeedbackEmitter.lock;\r\nexports.lock = lock;\r\n","/**\r\n * DevExtreme (events/gesture/swipeable.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _swipe = require(\"../swipe\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../../core/dom_component\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _index = require(\"../utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _public_component = require(\"../../core/utils/public_component\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: _swipe.start,\r\n onUpdated: _swipe.swipe,\r\n onEnd: _swipe.end,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = _dom_component.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n (0, _iterator.each)(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = (0, _index.addNamespace)(eventName, NAME);\r\n _events_engine.default.on(this.$element(), eventName, this._eventData, function(e) {\r\n return action({\r\n event: e\r\n })\r\n })\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n _events_engine.default.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\n(0, _public_component.name)(Swipeable, DX_SWIPEABLE);\r\nvar _default = Swipeable;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/index.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Event = exports.triggerHandler = exports.trigger = exports.off = exports.one = exports.on = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"./core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar on = _events_engine.default.on;\r\nexports.on = on;\r\nvar one = _events_engine.default.one;\r\nexports.one = one;\r\nvar off = _events_engine.default.off;\r\nexports.off = off;\r\nvar trigger = _events_engine.default.trigger;\r\nexports.trigger = trigger;\r\nvar triggerHandler = _events_engine.default.triggerHandler;\r\nexports.triggerHandler = triggerHandler;\r\nvar Event = _events_engine.default.Event;\r\nexports.Event = Event;\r\n","/**\r\n * DevExtreme (events/core/emitter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _index = require(\"../utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar Emitter = _class.default.inherit({\r\n ctor: function(element) {\r\n this._$element = (0, _renderer.default)(element);\r\n this._cancelCallback = (0, _callbacks.default)();\r\n this._acceptCallback = (0, _callbacks.default)()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !(0, _index.isDxMouseWheelEvent)(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === (0, _index.hasTouches)(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n (0, _extend.extend)(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: _common.noop,\r\n move: _common.noop,\r\n end: _common.noop,\r\n cancel: _common.noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = (0, _extend.extend)({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = (0, _index.fireEvent)(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? (0, _renderer.default)(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: _common.noop\r\n});\r\nvar _default = Emitter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/double_click.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.name = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _event_registrator = _interopRequireDefault(require(\"./core/event_registrator\"));\r\nvar _click = require(\"./click\");\r\nvar _index = require(\"./utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nexports.name = DBLCLICK_EVENT_NAME;\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = (0, _index.addNamespace)(_click.name, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = _class.default.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n (0, _index.fireEvent)({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: (0, _dom.closestCommonParent)(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\n(0, _event_registrator.default)(DBLCLICK_EVENT_NAME, new DblClick);\r\n","/**\r\n * DevExtreme (events/pointer/base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _index = require(\"../utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = _class.default.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = (0, _index.addNamespace)(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var delegateTarget = this._getDelegateTarget(e);\r\n return this._fireEvent({\r\n type: this._eventName,\r\n pointerType: e.pointerType || (0, _index.eventSource)(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: _browser.default.mozilla ? (new Date).getTime() : e.timeStamp\r\n })\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return (0, _index.fireEvent)(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : _dom_adapter.default.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n _events_engine.default.on(element, this._originalEvents, this._getSelector(), function(e) {\r\n that._handler(e)\r\n })\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : _dom_adapter.default.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n _events_engine.default.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : _dom_adapter.default.getDocument();\r\n _events_engine.default.off(element, this._originalEvents)\r\n }\r\n});\r\nvar _default = BaseStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/hover.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.end = exports.start = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _element_data = require(\"../core/element_data\");\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _event_registrator = _interopRequireDefault(require(\"./core/event_registrator\"));\r\nvar _index = require(\"./utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"./pointer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nexports.start = HOVERSTART;\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nexports.end = HOVEREND;\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.leave, HOVEREND_NAMESPACE);\r\nvar Hover = _class.default.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n (0, _element_data.data)(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n _events_engine.default.on(element, this._originalEventName, handleObj.selector, handler);\r\n (0, _element_data.data)(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if ((0, _index.isTouchEvent)(e) || _devices.default.isSimulator()) {\r\n return\r\n }(0, _index.fireEvent)({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = (0, _element_data.data)(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n _events_engine.default.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n (0, _element_data.removeData)(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\n(0, _event_registrator.default)(HOVERSTART, new HoverStart);\r\n(0, _event_registrator.default)(HOVEREND, new HoverEnd);\r\n","/**\r\n * DevExtreme (exporter/file_saver.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.fileSaver = exports.MIME_TYPES = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _console = require(\"../core/utils/console\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar navigator = (0, _window.getNavigator)();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nvar MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexports.MIME_TYPES = MIME_TYPES;\r\nvar fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = _dom_adapter.default.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _formDownloader: function(proxyUrl, fileName, contentType, data) {\r\n var formAttributes = {\r\n method: \"post\",\r\n action: proxyUrl,\r\n enctype: \"multipart/form-data\"\r\n };\r\n var exportForm = (0, _renderer.default)(\"\").css({\r\n display: \"none\"\r\n }).attr(formAttributes);\r\n\r\n function setAttributes(element, attributes) {\r\n for (var key in attributes) {\r\n element.setAttribute(key, attributes[key])\r\n }\r\n return element\r\n }\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"fileName\",\r\n value: fileName\r\n }));\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"contentType\",\r\n value: contentType\r\n }));\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"data\",\r\n value: data\r\n }));\r\n exportForm.appendTo(\"body\");\r\n _events_engine.default.trigger(exportForm, \"submit\");\r\n if (_events_engine.default.trigger(exportForm, \"submit\")) {\r\n exportForm.remove()\r\n }\r\n },\r\n _saveByProxy: function(proxyUrl, fileName, format, data) {\r\n var contentType = this._getMimeType(format);\r\n return this._formDownloader(proxyUrl, fileName, contentType, data)\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then(function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then(function() {\r\n outputStream.flushAsync().done(function() {\r\n inputStream.close();\r\n outputStream.close()\r\n })\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = _dom_adapter.default.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n var _this = this;\r\n this._blobSaved = false;\r\n if ((0, _type.isDefined)(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else {\r\n if ((0, _type.isDefined)(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if ((0, _type.isDefined)(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(function() {\r\n URL.revokeObjectURL(objectURL);\r\n _this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n _console.logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data, proxyURL, forceProxy) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if ((0, _type.isDefined)(proxyURL)) {\r\n _ui.default.log(\"W0001\", \"Export\", \"proxyURL\", \"19.2\", \"This option is no longer required\")\r\n }\r\n if (forceProxy) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if ((0, _type.isFunction)(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else {\r\n if ((0, _type.isDefined)(proxyURL) && !(0, _type.isDefined)(navigator.userAgent.match(/iPad/i))) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if (!(0, _type.isDefined)(navigator.userAgent.match(/iPad/i))) {\r\n _ui.default.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.fileSaver = fileSaver;\r\n","/**\r\n * DevExtreme (file_management/provider_base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _data = require(\"../core/utils/data\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../core/utils/date_serialization\"));\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _file_system_item = _interopRequireDefault(require(\"./file_system_item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_FILE_UPLOAD_CHUNK_SIZE = 2e5;\r\nvar FileSystemProviderBase = function() {\r\n function FileSystemProviderBase(options) {\r\n options = (0, _common.ensureDefined)(options, {});\r\n this._keyGetter = (0, _data.compileGetter)(this._getKeyExpr(options));\r\n this._nameGetter = (0, _data.compileGetter)(this._getNameExpr(options));\r\n this._isDirGetter = (0, _data.compileGetter)(this._getIsDirExpr(options));\r\n this._sizeGetter = (0, _data.compileGetter)(this._getSizeExpr(options));\r\n this._dateModifiedGetter = (0, _data.compileGetter)(this._getDateModifiedExpr(options));\r\n this._thumbnailGetter = (0, _data.compileGetter)(options.thumbnailExpr || \"thumbnail\")\r\n }\r\n var _proto = FileSystemProviderBase.prototype;\r\n _proto.getItems = function(parentDirectory) {\r\n return []\r\n };\r\n _proto.renameItem = function(item, name) {};\r\n _proto.createDirectory = function(parentDirectory, name) {};\r\n _proto.deleteItems = function(items) {};\r\n _proto.moveItems = function(items, destinationDirectory) {};\r\n _proto.copyItems = function(items, destinationDirectory) {};\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {};\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {};\r\n _proto.downloadItems = function(items) {};\r\n _proto.getItemsContent = function(items) {};\r\n _proto.getFileUploadChunkSize = function() {\r\n return DEFAULT_FILE_UPLOAD_CHUNK_SIZE\r\n };\r\n _proto._convertDataObjectsToFileItems = function(entries, pathInfo) {\r\n var _this = this;\r\n var result = [];\r\n (0, _iterator.each)(entries, function(_, entry) {\r\n var fileItem = _this._createFileItem(entry, pathInfo);\r\n result.push(fileItem)\r\n });\r\n return result\r\n };\r\n _proto._createFileItem = function(dataObj, pathInfo) {\r\n var fileItem = new _file_system_item.default(pathInfo, this._nameGetter(dataObj), (!!this._isDirGetter(dataObj)));\r\n fileItem.size = this._sizeGetter(dataObj);\r\n if (void 0 === fileItem.size) {\r\n fileItem.size = 0\r\n }\r\n fileItem.dateModified = _date_serialization.default.deserializeDate(this._dateModifiedGetter(dataObj));\r\n if (void 0 === fileItem.dateModified) {\r\n fileItem.dateModified = new Date\r\n }\r\n if (fileItem.isDirectory) {\r\n fileItem.hasSubDirectories = this._hasSubDirs(dataObj)\r\n }\r\n fileItem.key = this._keyGetter(dataObj);\r\n if (!fileItem.key) {\r\n fileItem.key = fileItem.relativeName\r\n }\r\n fileItem.thumbnail = this._thumbnailGetter(dataObj) || \"\";\r\n fileItem.dataItem = dataObj;\r\n return fileItem\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n return true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || this._defaultKeyExpr\r\n };\r\n _proto._defaultKeyExpr = function(fileItem) {\r\n if (2 === arguments.length) {\r\n fileItem.__KEY__ = arguments[1];\r\n return\r\n }\r\n return Object.prototype.hasOwnProperty.call(fileItem, \"__KEY__\") ? fileItem.__KEY__ : null\r\n };\r\n _proto._getNameExpr = function(options) {\r\n return options.nameExpr || \"name\"\r\n };\r\n _proto._getIsDirExpr = function(options) {\r\n return options.isDirectoryExpr || \"isDirectory\"\r\n };\r\n _proto._getSizeExpr = function(options) {\r\n return options.sizeExpr || \"size\"\r\n };\r\n _proto._getDateModifiedExpr = function(options) {\r\n return options.dateModifiedExpr || \"dateModified\"\r\n };\r\n _proto._executeActionAsDeferred = function(action, keepResult) {\r\n var deferred = new _deferred.Deferred;\r\n try {\r\n var result = action();\r\n if ((0, _type.isPromise)(result)) {\r\n (0, _deferred.fromPromise)(result).done(function(userResult) {\r\n return deferred.resolve(keepResult && userResult || void 0)\r\n }).fail(function(error) {\r\n return deferred.reject(error)\r\n })\r\n } else {\r\n deferred.resolve(keepResult && result || void 0)\r\n }\r\n } catch (error) {\r\n return deferred.reject(error)\r\n }\r\n return deferred.promise()\r\n };\r\n return FileSystemProviderBase\r\n}();\r\nvar _default = FileSystemProviderBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/click.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.name = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _frame = require(\"../animation/frame\");\r\nvar _index = require(\"./utils/index\");\r\nvar _event_nodes_disposing = require(\"./utils/event_nodes_disposing\");\r\nvar _pointer = _interopRequireDefault(require(\"./pointer\"));\r\nvar _emitter = _interopRequireDefault(require(\"./core/emitter\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\nvar _version = require(\"../core/utils/version\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nexports.name = CLICK_EVENT_NAME;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar abs = Math.abs;\r\nvar isInput = function(element) {\r\n return (0, _renderer.default)(element).is(\"input, textarea, select, button ,:focus, :focus *\")\r\n};\r\nvar misc = {\r\n requestAnimationFrame: _frame.requestAnimationFrame,\r\n cancelAnimationFrame: _frame.cancelAnimationFrame\r\n};\r\nvar ClickEmitter = _emitter.default.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this._makeElementClickable((0, _renderer.default)(element))\r\n },\r\n _makeElementClickable: function($element) {\r\n if (!$element.attr(\"onclick\")) {\r\n $element.attr(\"onclick\", \"void(0)\")\r\n }\r\n },\r\n start: function(e) {\r\n this._blurPrevented = e.isDefaultPrevented();\r\n this._startTarget = e.target;\r\n this._startEventData = (0, _index.eventData)(e)\r\n },\r\n end: function(e) {\r\n if (this._eventOutOfElement(e, this.getElement().get(0)) || e.type === _pointer.default.cancel) {\r\n this._cancel(e);\r\n return\r\n }\r\n if (!isInput(e.target) && !this._blurPrevented) {\r\n (0, _dom.resetActiveElement)()\r\n }\r\n this._accept(e);\r\n this._clickAnimationFrame = misc.requestAnimationFrame(function() {\r\n this._fireClickEvent(e)\r\n }.bind(this))\r\n },\r\n _eventOutOfElement: function(e, element) {\r\n var target = e.target;\r\n var targetChanged = !(0, _dom.contains)(element, target) && element !== target;\r\n var gestureDelta = (0, _index.eventDelta)((0, _index.eventData)(e), this._startEventData);\r\n var boundsExceeded = abs(gestureDelta.x) > TOUCH_BOUNDARY || abs(gestureDelta.y) > TOUCH_BOUNDARY;\r\n return targetChanged || boundsExceeded\r\n },\r\n _fireClickEvent: function(e) {\r\n this._fireEvent(CLICK_EVENT_NAME, e, {\r\n target: (0, _dom.closestCommonParent)(this._startTarget, e.target)\r\n })\r\n },\r\n dispose: function() {\r\n misc.cancelAnimationFrame(this._clickAnimationFrame)\r\n }\r\n});\r\nvar realDevice = _devices.default.real();\r\nvar useNativeClick = realDevice.generic || realDevice.ios && (0, _version.compare)(realDevice.version, [9, 3]) >= 0 || realDevice.android && (0, _version.compare)(realDevice.version, [5]) >= 0;\r\n! function() {\r\n var NATIVE_CLICK_CLASS = \"dx-native-click\";\r\n var isNativeClickEvent = function(target) {\r\n return useNativeClick || (0, _renderer.default)(target).closest(\".\" + NATIVE_CLICK_CLASS).length\r\n };\r\n var prevented = null;\r\n var lastFiredEvent = null;\r\n\r\n function onNodeRemove() {\r\n lastFiredEvent = null\r\n }\r\n var clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && isNativeClickEvent(e.target) && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }(0, _event_nodes_disposing.unsubscribeNodesDisposing)(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n (0, _event_nodes_disposing.subscribeNodesDisposing)(lastFiredEvent, onNodeRemove);\r\n (0, _index.fireEvent)({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n };\r\n ClickEmitter = ClickEmitter.inherit({\r\n _makeElementClickable: function($element) {\r\n if (!isNativeClickEvent($element)) {\r\n this.callBase($element)\r\n }\r\n _events_engine.default.on($element, \"click\", clickHandler)\r\n },\r\n configure: function(data) {\r\n this.callBase(data);\r\n if (data.useNative) {\r\n this.getElement().addClass(NATIVE_CLICK_CLASS)\r\n }\r\n },\r\n start: function(e) {\r\n prevented = null;\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n end: function(e) {\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n _events_engine.default.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n })\r\n}();\r\n! function() {\r\n var desktopDevice = _devices.default.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var pointerDownHandler = function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n };\r\n var clickHandler = function(e) {\r\n var $target = (0, _renderer.default)(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !(0, _renderer.default)(startTarget).is(\"label\") && isInput($target)) {\r\n (0, _dom.resetActiveElement)()\r\n }\r\n startTarget = null;\r\n blurPrevented = false\r\n };\r\n var NATIVE_CLICK_FIXER_NAMESPACE = \"NATIVE_CLICK_FIXER\";\r\n var document = _dom_adapter.default.getDocument();\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)(_pointer.default.down, NATIVE_CLICK_FIXER_NAMESPACE), pointerDownHandler);\r\n _events_engine.default.subscribeGlobal(document, (0, _index.addNamespace)(\"click\", NATIVE_CLICK_FIXER_NAMESPACE), clickHandler)\r\n }\r\n}();\r\n(0, _emitter_registrator.default)({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\n","/**\r\n * DevExtreme (events/pointer.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar support = _interopRequireWildcard(require(\"../core/utils/support\"));\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _browser = _interopRequireDefault(require(\"../core/utils/browser\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _event_registrator = _interopRequireDefault(require(\"./core/event_registrator\"));\r\nvar _touch = _interopRequireDefault(require(\"./pointer/touch\"));\r\nvar _mspointer = _interopRequireDefault(require(\"./pointer/mspointer\"));\r\nvar _mouse = _interopRequireDefault(require(\"./pointer/mouse\"));\r\nvar _mouse_and_touch = _interopRequireDefault(require(\"./pointer/mouse_and_touch\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\nvar getStrategy = function(support, device, browser) {\r\n if (support.pointerEvents && browser.msie) {\r\n return _mspointer.default\r\n }\r\n var tablet = device.tablet,\r\n phone = device.phone;\r\n if (support.touch && !(tablet || phone)) {\r\n return _mouse_and_touch.default\r\n }\r\n if (support.touch) {\r\n return _touch.default\r\n }\r\n return _mouse.default\r\n};\r\nvar EventStrategy = getStrategy(support, _devices.default.real(), _browser.default);\r\n(0, _iterator.each)(EventStrategy.map, function(pointerEvent, originalEvents) {\r\n (0, _event_registrator.default)(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nvar _default = pointer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/gesture/emitter.gesture.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _call_once = _interopRequireDefault(require(\"../../core/utils/call_once\"));\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _ready_callbacks = _interopRequireDefault(require(\"../../core/utils/ready_callbacks\"));\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _index = require(\"../utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"../core/emitter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ready = _ready_callbacks.default.add;\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return (0, _style.styleProp)(\"pointer-events\")\r\n};\r\nvar setGestureCover = (0, _call_once.default)(function() {\r\n var GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\n var isDesktop = \"desktop\" === _devices.default.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return _common.noop\r\n }\r\n var $cover = (0, _renderer.default)(\"
\").addClass(GESTURE_COVER_CLASS).css(\"pointerEvents\", \"none\");\r\n _events_engine.default.subscribeGlobal($cover, \"dxmousewheel\", function(e) {\r\n e.preventDefault()\r\n });\r\n ready(function() {\r\n $cover.appendTo(\"body\")\r\n });\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n});\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = _emitter.default.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || (0, _index.needSkipEvent)(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = (0, _index.createEvent)(e);\r\n this._startEventData = (0, _index.eventData)(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else {\r\n if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = (0, _index.eventDelta)(this._startEventData, (0, _index.eventData)(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || (0, _index.isDxMouseWheelEvent)(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = (0, _index.eventDelta)(this._startEventData, (0, _index.eventData)(e));\r\n this._startEvent.pageX += (0, _math.sign)(delta.x) * touchBoundary;\r\n this._startEvent.pageY += (0, _math.sign)(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === _devices.default.real().platform && this.getElement().find(\":focus\").length) {\r\n (0, _dom.resetActiveElement)()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if ((0, _index.isDxMouseWheelEvent)(e) || (0, _index.isTouchEvent)(e)) {\r\n return\r\n }(0, _dom.clearSelection)()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else {\r\n if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: _common.noop,\r\n _start: _common.noop,\r\n _move: _common.noop,\r\n _stop: _common.noop,\r\n _end: _common.noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if ((0, _type.isDefined)(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nvar _default = GestureEmitter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/contextmenu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.name = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _support = require(\"../core/utils/support\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _event_registrator = _interopRequireDefault(require(\"./core/event_registrator\"));\r\nvar _index = require(\"./utils/index\");\r\nvar _hold = _interopRequireDefault(require(\"./hold\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = (0, _index.addNamespace)(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = (0, _index.addNamespace)(_hold.default.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = _class.default.inherit({\r\n setup: function(element) {\r\n var $element = (0, _renderer.default)(element);\r\n _events_engine.default.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (_support.touch || _devices.default.isSimulator()) {\r\n _events_engine.default.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if ((0, _index.isMouseEvent)(e) && !_devices.default.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n if (_support.touch || _devices.default.isSimulator()) {\r\n e.preventDefault()\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return (0, _index.fireEvent)({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n _events_engine.default.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\n(0, _event_registrator.default)(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nvar name = CONTEXTMENU_EVENT_NAME;\r\nexports.name = name;\r\n","/**\r\n * DevExtreme (events/swipe.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.end = exports.start = exports.swipe = void 0;\r\nvar _index = require(\"./utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"./gesture/emitter.gesture\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nexports.start = SWIPE_START_EVENT;\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nexports.swipe = SWIPE_EVENT;\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nexports.end = SWIPE_END_EVENT;\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return this.getElement().width()\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return this.getElement().height()\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = _emitter.default.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = (0, _index.eventData)(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = (0, _index.eventData)(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = (0, _index.eventData)(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n e.preventDefault()\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\n(0, _emitter_registrator.default)({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\n","/**\r\n * DevExtreme (exporter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.export = _export;\r\nObject.defineProperty(exports, \"fileSaver\", {\r\n enumerable: true,\r\n get: function() {\r\n return _file_saver.fileSaver\r\n }\r\n});\r\nexports.svg = exports.pdf = exports.image = exports.excel = void 0;\r\nvar _file_saver = require(\"./exporter/file_saver\");\r\nvar _excel_creator = require(\"./exporter/excel_creator\");\r\nvar _image_creator = require(\"./exporter/image_creator\");\r\nvar _svg_creator = require(\"./exporter/svg_creator\");\r\nvar _type = require(\"./core/utils/type\");\r\nvar _deferred = require(\"./core/utils/deferred\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./exporter/excel_format_converter\"));\r\nvar _pdf_creator = require(\"./exporter/pdf_creator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n (0, _type.isFunction)(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(function(blob) {\r\n (0, _type.isFunction)(exportedAction) && exportedAction();\r\n if ((0, _type.isFunction)(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n _file_saver.fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)\r\n }\r\n })\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n}\r\nvar excel = {\r\n creator: _excel_creator.ExcelCreator,\r\n getData: _excel_creator.getData,\r\n formatConverter: _excel_format_converter.default\r\n};\r\nexports.excel = excel;\r\nvar image = {\r\n creator: _image_creator.imageCreator,\r\n getData: _image_creator.getData,\r\n testFormats: _image_creator.testFormats\r\n};\r\nexports.image = image;\r\nvar pdf = {\r\n getData: _pdf_creator.getData\r\n};\r\nexports.pdf = pdf;\r\nvar svg = {\r\n creator: _svg_creator.svgCreator,\r\n getData: _svg_creator.getData\r\n};\r\nexports.svg = svg;\r\n","/**\r\n * DevExtreme (file_management/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.pathCombine = exports.getEscapedFileName = exports.getPathParts = exports.getParentPath = exports.getName = exports.getFileExtension = exports.PATH_SEPARATOR = void 0;\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar PATH_SEPARATOR = \"/\";\r\nexports.PATH_SEPARATOR = PATH_SEPARATOR;\r\nvar getFileExtension = function(path) {\r\n var index = path.lastIndexOf(\".\");\r\n return index !== -1 ? path.substr(index) : \"\"\r\n};\r\nexports.getFileExtension = getFileExtension;\r\nvar getName = function(path) {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return index !== -1 ? path.substr(index + PATH_SEPARATOR.length) : path\r\n};\r\nexports.getName = getName;\r\nvar getParentPath = function(path) {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return index !== -1 ? path.substr(0, index) : \"\"\r\n};\r\nexports.getParentPath = getParentPath;\r\nvar getPathParts = function(path, includeFullPath) {\r\n if (!path || \"/\" === path) {\r\n return []\r\n }\r\n var result = [];\r\n var pathPart = \"\";\r\n for (var i = 0; i < path.length; i++) {\r\n var char = path.charAt(i);\r\n if (char === PATH_SEPARATOR) {\r\n var nextChar = path.charAt(i + 1);\r\n if (nextChar !== PATH_SEPARATOR) {\r\n if (pathPart) {\r\n result.push(pathPart);\r\n pathPart = \"\"\r\n }\r\n char = nextChar\r\n }\r\n i++\r\n }\r\n pathPart += char\r\n }\r\n if (pathPart) {\r\n result.push(pathPart)\r\n }\r\n if (includeFullPath) {\r\n for (var _i = 0; _i < result.length; _i++) {\r\n result[_i] = pathCombine(0 === _i ? \"\" : result[_i - 1], getEscapedFileName(result[_i]))\r\n }\r\n }\r\n return result\r\n};\r\nexports.getPathParts = getPathParts;\r\nvar getEscapedFileName = function(fileName) {\r\n return fileName.replace(/\\//g, \"//\")\r\n};\r\nexports.getEscapedFileName = getEscapedFileName;\r\nvar pathCombine = function() {\r\n var result = \"\";\r\n (0, _iterator.each)(arguments, function(_, arg) {\r\n if (arg) {\r\n if (result) {\r\n result += PATH_SEPARATOR\r\n }\r\n result += arg\r\n }\r\n });\r\n return result\r\n};\r\nexports.pathCombine = pathCombine;\r\n","/**\r\n * DevExtreme (file_management/errors.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar ErrorCode = {\r\n NoAccess: 0,\r\n FileExists: 1,\r\n FileNotFound: 2,\r\n DirectoryExists: 3,\r\n DirectoryNotFound: 4,\r\n WrongFileExtension: 5,\r\n MaxFileSizeExceeded: 6,\r\n InvalidSymbols: 7,\r\n Other: 32767\r\n};\r\nvar _default = ErrorCode;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (excel_exporter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"exportDataGrid\", {\r\n enumerable: true,\r\n get: function() {\r\n return _export_data_grid.exportDataGrid\r\n }\r\n});\r\nObject.defineProperty(exports, \"exportPivotGrid\", {\r\n enumerable: true,\r\n get: function() {\r\n return _export_pivot_grid.exportPivotGrid\r\n }\r\n});\r\nvar _export_data_grid = require(\"./exporter/exceljs/export_data_grid\");\r\nvar _export_pivot_grid = require(\"./exporter/exceljs/export_pivot_grid\");\r\n","/**\r\n * DevExtreme (events/core/event_registrator_callbacks.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _memorized_callbacks = _interopRequireDefault(require(\"../../core/memorized_callbacks\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = new _memorized_callbacks.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/pointer/touch.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _base = _interopRequireDefault(require(\"./base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n (0, _iterator.each)(e.touches, function(_, touch) {\r\n pointers.push((0, _extend.extend)({\r\n pointerId: touch.identifier\r\n }, touch))\r\n });\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === _devices.default.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = _base.default.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase((0, _extend.extend)(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nvar _default = TouchStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/pointer/observer.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _ready_callbacks = _interopRequireDefault(require(\"../../core/utils/ready_callbacks\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar addEventsListener = function(events, handler) {\r\n _ready_callbacks.default.add(function() {\r\n events.split(\" \").forEach(function(event) {\r\n _dom_adapter.default.listen(_dom_adapter.default.getDocument(), event, handler, true)\r\n })\r\n })\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n (0, _iterator.each)(pointers, function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n });\r\n return index\r\n };\r\n var addPointer = function(e) {\r\n if (getPointerIndex(e) === -1) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n var updatePointer = function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n };\r\n addEventsListener(eventMap.dxpointerdown, addPointer);\r\n addEventsListener(eventMap.dxpointermove, updatePointer);\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nvar _default = Observer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/pointer/mouse.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _base = _interopRequireDefault(require(\"./base\"));\r\nvar _observer = _interopRequireDefault(require(\"./observer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new _observer.default(eventMap, function() {\r\n return true\r\n });\r\n activated = true\r\n};\r\nvar MouseStrategy = _base.default.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase((0, _extend.extend)(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nvar _default = MouseStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel_format_converter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _string = require(\"../core/utils/string\");\r\nvar _number = _interopRequireDefault(require(\"../localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"../localization/date\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _date2 = require(\"../localization/ldml/date.format\");\r\nvar _language_codes = require(\"../localization/language_codes\");\r\nrequire(\"../localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\nvar excelFormatConverter = {\r\n _applyPrecision: function(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n },\r\n _hasArabicDigits: function(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _convertDateFormatToOpenXml: function(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map(function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n }).join(\"\")\r\n },\r\n _convertDateFormat: function(format) {\r\n var formattedValue = (_date.default.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = (0, _date2.getFormat)(function(value) {\r\n return _date.default.format(value, format)\r\n });\r\n if (result) {\r\n result = this._convertDateFormatToOpenXml(result);\r\n result = this._getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n },\r\n _getLanguageInfo: function(defaultPattern) {\r\n var languageID = (0, _language_codes.getLanguageId)();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (this._hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else {\r\n if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n }\r\n return languageInfo\r\n },\r\n _convertNumberFormat: function(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = _number.default.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = (0, _string.format)(excelFormat, this._applyPrecision(format, precision))\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if ((0, _type.isDefined)(format)) {\r\n if (\"date\" === type) {\r\n return excelFormatConverter._convertDateFormat(format)\r\n } else {\r\n if ((0, _type.isString)(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return excelFormatConverter._convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nvar _default = excelFormatConverter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.fill_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.pattern_fill_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar fillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n patternFill: _excel2.default.tryCreateTag(sourceObj.patternFill)\r\n };\r\n if (fillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n tryCreateFillFromSimpleFormat: function() {\r\n var _ref = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\r\n backgroundColor = _ref.backgroundColor,\r\n fillPatternType = _ref.fillPatternType,\r\n fillPatternColor = _ref.fillPatternColor;\r\n if ((0, _type.isDefined)(backgroundColor) && !((0, _type.isDefined)(fillPatternType) && (0, _type.isDefined)(fillPatternColor))) {\r\n return {\r\n patternFill: {\r\n patternType: \"solid\",\r\n foregroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(fillPatternType) && (0, _type.isDefined)(fillPatternColor)) {\r\n return {\r\n patternFill: {\r\n patternType: fillPatternType,\r\n foregroundColor: {\r\n rgb: fillPatternColor\r\n },\r\n backgroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n copySimpleFormat: function(source, target) {\r\n if (void 0 !== source.backgroundColor) {\r\n target.backgroundColor = source.backgroundColor\r\n }\r\n if (void 0 !== source.fillPatternType) {\r\n target.fillPatternType = source.fillPatternType\r\n }\r\n if (void 0 !== source.fillPatternColor) {\r\n target.fillPatternColor = source.fillPatternColor\r\n }\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.patternFill) {\r\n result.patternFill = _excel2.default.copy(source.patternFill)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fillHelper.isEmpty(leftTag) && fillHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && _excel2.default.areEqual(leftTag.patternFill, rightTag.patternFill)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || _excel2.default.isEmpty(tag.patternFill)\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"fill\", {}, _excel2.default.toXml(tag.patternFill))\r\n }\r\n};\r\nvar _default = fillHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.color_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar colorHelper = {\r\n _tryConvertColor: function(source) {\r\n if (\"string\" !== typeof source) {\r\n return source\r\n }\r\n var result;\r\n if (source.length > 0 && \"#\" === source[0]) {\r\n var colorCode = source.substr(1, source.length);\r\n if (6 === colorCode.length) {\r\n result = \"FF\" + colorCode\r\n } else {\r\n if (8 === colorCode.length) {\r\n result = colorCode[6] + colorCode[7] + colorCode.substr(0, 6)\r\n } else {\r\n result = colorCode\r\n }\r\n }\r\n } else {\r\n result = source\r\n }\r\n return result\r\n },\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj)\r\n }\r\n } else {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj.rgb),\r\n theme: sourceObj.theme\r\n }\r\n }\r\n if (colorHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n if (\"string\" === typeof source) {\r\n result = source\r\n } else {\r\n result = {};\r\n if (void 0 !== source.rgb) {\r\n result.rgb = source.rgb\r\n }\r\n if (void 0 !== source.theme) {\r\n result.theme = source.theme\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.rgb) && !(0, _type.isDefined)(tag.theme)\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return colorHelper.isEmpty(leftTag) && colorHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.rgb === rightTag.rgb && leftTag.theme === rightTag.theme\r\n },\r\n toXml: function(tagName, tag) {\r\n return _excel.default.toXml(tagName, {\r\n rgb: tag.rgb,\r\n theme: tag.theme\r\n })\r\n }\r\n};\r\nvar _default = colorHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.font_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.color_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar fontHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n size: sourceObj.size,\r\n name: sourceObj.name,\r\n family: sourceObj.family,\r\n scheme: sourceObj.scheme,\r\n bold: sourceObj.bold,\r\n italic: sourceObj.italic,\r\n underline: sourceObj.underline,\r\n color: _excel2.default.tryCreateTag(sourceObj.color)\r\n };\r\n if (fontHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.size) {\r\n result.size = source.size\r\n }\r\n if (void 0 !== source.name) {\r\n result.name = source.name\r\n }\r\n if (void 0 !== source.family) {\r\n result.family = source.family\r\n }\r\n if (void 0 !== source.scheme) {\r\n result.scheme = source.scheme\r\n }\r\n if (void 0 !== source.bold) {\r\n result.bold = source.bold\r\n }\r\n if (void 0 !== source.italic) {\r\n result.italic = source.italic\r\n }\r\n if (void 0 !== source.underline) {\r\n result.underline = source.underline\r\n }\r\n if (void 0 !== source.color) {\r\n result.color = _excel2.default.copy(source.color)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fontHelper.isEmpty(leftTag) && fontHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.size === rightTag.size && leftTag.name === rightTag.name && leftTag.family === rightTag.family && leftTag.scheme === rightTag.scheme && (leftTag.bold === rightTag.bold || !leftTag.bold === !rightTag.bold) && (leftTag.italic === rightTag.italic || !leftTag.italic === !rightTag.italic) && leftTag.underline === rightTag.underline && _excel2.default.areEqual(leftTag.color, rightTag.color)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.size) && !(0, _type.isDefined)(tag.name) && !(0, _type.isDefined)(tag.family) && !(0, _type.isDefined)(tag.scheme) && (!(0, _type.isDefined)(tag.bold) || !tag.bold) && (!(0, _type.isDefined)(tag.italic) || !tag.italic) && !(0, _type.isDefined)(tag.underline) && _excel2.default.isEmpty(tag.color)\r\n },\r\n toXml: function(tag) {\r\n var content = [(0, _type.isDefined)(tag.bold) && tag.bold ? _excel.default.toXml(\"b\", {}) : \"\", (0, _type.isDefined)(tag.size) ? _excel.default.toXml(\"sz\", {\r\n val: tag.size\r\n }) : \"\", (0, _type.isDefined)(tag.color) ? _excel2.default.toXml(\"color\", tag.color) : \"\", (0, _type.isDefined)(tag.name) ? _excel.default.toXml(\"name\", {\r\n val: tag.name\r\n }) : \"\", (0, _type.isDefined)(tag.family) ? _excel.default.toXml(\"family\", {\r\n val: tag.family\r\n }) : \"\", (0, _type.isDefined)(tag.scheme) ? _excel.default.toXml(\"scheme\", {\r\n val: tag.scheme\r\n }) : \"\", (0, _type.isDefined)(tag.italic) && tag.italic ? _excel.default.toXml(\"i\", {}) : \"\", (0, _type.isDefined)(tag.underline) ? _excel.default.toXml(\"u\", {\r\n val: tag.underline\r\n }) : \"\"].join(\"\");\r\n return _excel.default.toXml(\"font\", {}, content)\r\n }\r\n};\r\nvar _default = fontHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/image_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.testFormats = testFormats;\r\nexports.imageCreator = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _color = _interopRequireDefault(require(\"../color\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _svg = require(\"../core/utils/svg\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar _math = Math;\r\nvar PI = _math.PI;\r\nvar _min = _math.min;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _pow = _math.pow;\r\nvar _atan2 = _math.atan2;\r\nvar _cos = _math.cos;\r\nvar _sin = _math.sin;\r\nvar _number = Number;\r\nvar IMAGE_QUALITY = 1;\r\nvar TEXT_DECORATION_LINE_WIDTH_COEFF = .05;\r\nvar DEFAULT_FONT_SIZE = \"10px\";\r\nvar DEFAULT_FONT_FAMILY = \"sans-serif\";\r\nvar DEFAULT_TEXT_COLOR = \"#000\";\r\nvar parseAttributes;\r\n\r\nfunction createCanvas(width, height, margin) {\r\n var canvas = (0, _renderer.default)(\"\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n}\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += 90 * (PI / 180) * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = (0, _extend.extend)({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new _deferred.Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x, options.y, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(function(item) {\r\n return \"\" !== item.trim()\r\n });\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[(0, _inflector.camelize)(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && _dom_adapter.default.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach(function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[(0, _inflector.camelize)(prop)] = style[prop]\r\n }\r\n });\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach(function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n })\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = (0, _type.isDefined)(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else {\r\n if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = (0, _extend.extend)({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n }\r\n lines.forEach(function(line) {\r\n var commonWidth = line.widths.reduce(function(commonWidth, width) {\r\n return commonWidth + width\r\n }, 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach(function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n });\r\n line.elements.forEach(function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n })\r\n })\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var options = (0, _extend.extend)({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[\"hidden-for-export\"]) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element);\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element) {\r\n var gradients = _ref.gradients;\r\n if (0 === gradients.length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var gradient = context.createLinearGradient(box.x, 0, box.x + box.width, 0);\r\n gradients[id].forEach(function(opt) {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new _color.default(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var options = [];\r\n (0, _iterator.each)(element.childNodes, function(_, _ref2) {\r\n var attributes = _ref2.attributes;\r\n options.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n (0, _iterator.each)(element.childNodes, function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n });\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new _deferred.Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if ((0, _type.isPromise)(result)) {\r\n result.then(function() {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = (0, _extend.extend)({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = function() {\r\n context.restore()\r\n };\r\n var d = drawCanvasElements(element.childNodes, context, options, shared);\r\n if ((0, _type.isPromise)(d)) {\r\n d.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return d;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.gradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n })\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = (0, _iterator.map)(matches, function(item) {\r\n return _number(item)\r\n });\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n return context.createPattern(patternCanvas, \"repeat\")\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n if (fill && \"none\" !== fill) {\r\n if (fill.search(/url/) === -1) {\r\n context.fillStyle = fill\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n context.fillStyle = getPattern(context, pattern, shared)\r\n }\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n }\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n (0, _iterator.each)(attributes, function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n });\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = _dom_adapter.default.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n gradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, width, height, backgroundColor, margin, pixelRatio) {\r\n var svgToCanvas = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : convertSvgToCanvas;\r\n var canvas = createCanvas(width, height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\r\n var svgElem = (0, _svg.getSvgElement)(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = _dom_adapter.default.isElementNode(markup);\r\n context.translate(margin, margin);\r\n _dom_adapter.default.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n _dom_adapter.default.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return (0, _deferred.fromPromise)(svgToCanvas(svgElem, canvas, markupIsDomElement && (0, _dom.contains)(_dom_adapter.default.getBody(), markup))).then(function() {\r\n return canvas\r\n }).always(function() {\r\n invisibleDiv && _dom_adapter.default.getBody().removeChild(invisibleDiv);\r\n _dom_adapter.default.getBody().removeChild(canvas)\r\n })\r\n}\r\nvar imageCreator = {\r\n getImageData: function(markup, options) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n var mimeType = \"image/\" + options.format;\r\n var width = options.width * pixelRatio;\r\n var height = options.height * pixelRatio;\r\n var backgroundColor = options.backgroundColor;\r\n if ((0, _type.isFunction)(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, width, height, backgroundColor, options.margin, pixelRatio, options.svgToCanvas).then(function(canvas) {\r\n return getStringFromCanvas(canvas, mimeType)\r\n })\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(function(binaryData) {\r\n var mimeType = \"image/\" + options.format;\r\n var data = (0, _type.isFunction)(window.Blob) && !options.forceProxy ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n }\r\n};\r\nexports.imageCreator = imageCreator;\r\n\r\nfunction getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\n\r\nfunction testFormats(formats) {\r\n var canvas = createCanvas(100, 100, 0);\r\n return formats.reduce(function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (canvas.toDataURL(mimeType).indexOf(mimeType) !== -1) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }, {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\n"],"sourceRoot":""}