learningtribes-studio-frontend 1.4.2-alpha.1 → 1.4.2-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./src/components/AssetsList/AssetsList.scss","webpack:///./src/components/AssetsList/displayMessages.jsx","webpack:///./src/components/AssetsList/index.jsx","webpack:///./src/components/AssetsList/container.jsx","webpack:///./src/components/AssetsClearSearchButton/displayMessages.jsx","webpack:///./src/components/AssetsClearSearchButton/index.jsx","webpack:///./src/components/AssetsClearSearchButton/container.jsx","webpack:///./src/components/EditImageModal/EditImageModal.scss","webpack:///./src/utils/rewriteStaticLinks.js","webpack:///./src/components/EditImageModal/displayMessages.jsx","webpack:///./src/components/EditImageModal/index.jsx","webpack:///./src/components/EditImageModal/container.jsx","webpack:///./node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///./src/editImageModalIndex.jsx"],"names":["module","exports","root","SFE","m-0","mt-0","my-0","mr-0","mx-0","mb-0","ml-0","m-1","mt-1","my-1","mr-1","mx-1","mb-1","ml-1","m-2","mt-2","my-2","mr-2","mx-2","mb-2","ml-2","m-3","mt-3","my-3","mr-3","mx-3","mb-3","ml-3","m-4","mt-4","my-4","mr-4","mx-4","mb-4","ml-4","m-5","mt-5","my-5","mr-5","mx-5","mb-5","ml-5","p-0","pt-0","py-0","pr-0","px-0","pb-0","pl-0","p-1","pt-1","py-1","pr-1","px-1","pb-1","pl-1","p-2","pt-2","py-2","pr-2","px-2","pb-2","pl-2","p-3","pt-3","py-3","pr-3","px-3","pb-3","pl-3","p-4","pt-4","py-4","pr-4","px-4","pb-4","pl-4","p-5","pt-5","py-5","pr-5","px-5","pb-5","pl-5","m-n1","mt-n1","my-n1","mr-n1","mx-n1","mb-n1","ml-n1","m-n2","mt-n2","my-n2","mr-n2","mx-n2","mb-n2","ml-n2","m-n3","mt-n3","my-n3","mr-n3","mx-n3","mb-n3","ml-n3","m-n4","mt-n4","my-n4","mr-n4","mx-n4","mb-n4","ml-n4","m-n5","mt-n5","my-n5","mr-n5","mx-n5","mb-n5","ml-n5","m-auto","mt-auto","my-auto","mr-auto","mx-auto","mb-auto","ml-auto","m-sm-0","mt-sm-0","my-sm-0","mr-sm-0","mx-sm-0","mb-sm-0","ml-sm-0","m-sm-1","mt-sm-1","my-sm-1","mr-sm-1","mx-sm-1","mb-sm-1","ml-sm-1","m-sm-2","mt-sm-2","my-sm-2","mr-sm-2","mx-sm-2","mb-sm-2","ml-sm-2","m-sm-3","mt-sm-3","my-sm-3","mr-sm-3","mx-sm-3","mb-sm-3","ml-sm-3","m-sm-4","mt-sm-4","my-sm-4","mr-sm-4","mx-sm-4","mb-sm-4","ml-sm-4","m-sm-5","mt-sm-5","my-sm-5","mr-sm-5","mx-sm-5","mb-sm-5","ml-sm-5","p-sm-0","pt-sm-0","py-sm-0","pr-sm-0","px-sm-0","pb-sm-0","pl-sm-0","p-sm-1","pt-sm-1","py-sm-1","pr-sm-1","px-sm-1","pb-sm-1","pl-sm-1","p-sm-2","pt-sm-2","py-sm-2","pr-sm-2","px-sm-2","pb-sm-2","pl-sm-2","p-sm-3","pt-sm-3","py-sm-3","pr-sm-3","px-sm-3","pb-sm-3","pl-sm-3","p-sm-4","pt-sm-4","py-sm-4","pr-sm-4","px-sm-4","pb-sm-4","pl-sm-4","p-sm-5","pt-sm-5","py-sm-5","pr-sm-5","px-sm-5","pb-sm-5","pl-sm-5","m-sm-n1","mt-sm-n1","my-sm-n1","mr-sm-n1","mx-sm-n1","mb-sm-n1","ml-sm-n1","m-sm-n2","mt-sm-n2","my-sm-n2","mr-sm-n2","mx-sm-n2","mb-sm-n2","ml-sm-n2","m-sm-n3","mt-sm-n3","my-sm-n3","mr-sm-n3","mx-sm-n3","mb-sm-n3","ml-sm-n3","m-sm-n4","mt-sm-n4","my-sm-n4","mr-sm-n4","mx-sm-n4","mb-sm-n4","ml-sm-n4","m-sm-n5","mt-sm-n5","my-sm-n5","mr-sm-n5","mx-sm-n5","mb-sm-n5","ml-sm-n5","m-sm-auto","mt-sm-auto","my-sm-auto","mr-sm-auto","mx-sm-auto","mb-sm-auto","ml-sm-auto","m-md-0","mt-md-0","my-md-0","mr-md-0","mx-md-0","mb-md-0","ml-md-0","m-md-1","mt-md-1","my-md-1","mr-md-1","mx-md-1","mb-md-1","ml-md-1","m-md-2","mt-md-2","my-md-2","mr-md-2","mx-md-2","mb-md-2","ml-md-2","m-md-3","mt-md-3","my-md-3","mr-md-3","mx-md-3","mb-md-3","ml-md-3","m-md-4","mt-md-4","my-md-4","mr-md-4","mx-md-4","mb-md-4","ml-md-4","m-md-5","mt-md-5","my-md-5","mr-md-5","mx-md-5","mb-md-5","ml-md-5","p-md-0","pt-md-0","py-md-0","pr-md-0","px-md-0","pb-md-0","pl-md-0","p-md-1","pt-md-1","py-md-1","pr-md-1","px-md-1","pb-md-1","pl-md-1","p-md-2","pt-md-2","py-md-2","pr-md-2","px-md-2","pb-md-2","pl-md-2","p-md-3","pt-md-3","py-md-3","pr-md-3","px-md-3","pb-md-3","pl-md-3","p-md-4","pt-md-4","py-md-4","pr-md-4","px-md-4","pb-md-4","pl-md-4","p-md-5","pt-md-5","py-md-5","pr-md-5","px-md-5","pb-md-5","pl-md-5","m-md-n1","mt-md-n1","my-md-n1","mr-md-n1","mx-md-n1","mb-md-n1","ml-md-n1","m-md-n2","mt-md-n2","my-md-n2","mr-md-n2","mx-md-n2","mb-md-n2","ml-md-n2","m-md-n3","mt-md-n3","my-md-n3","mr-md-n3","mx-md-n3","mb-md-n3","ml-md-n3","m-md-n4","mt-md-n4","my-md-n4","mr-md-n4","mx-md-n4","mb-md-n4","ml-md-n4","m-md-n5","mt-md-n5","my-md-n5","mr-md-n5","mx-md-n5","mb-md-n5","ml-md-n5","m-md-auto","mt-md-auto","my-md-auto","mr-md-auto","mx-md-auto","mb-md-auto","ml-md-auto","m-lg-0","mt-lg-0","my-lg-0","mr-lg-0","mx-lg-0","mb-lg-0","ml-lg-0","m-lg-1","mt-lg-1","my-lg-1","mr-lg-1","mx-lg-1","mb-lg-1","ml-lg-1","m-lg-2","mt-lg-2","my-lg-2","mr-lg-2","mx-lg-2","mb-lg-2","ml-lg-2","m-lg-3","mt-lg-3","my-lg-3","mr-lg-3","mx-lg-3","mb-lg-3","ml-lg-3","m-lg-4","mt-lg-4","my-lg-4","mr-lg-4","mx-lg-4","mb-lg-4","ml-lg-4","m-lg-5","mt-lg-5","my-lg-5","mr-lg-5","mx-lg-5","mb-lg-5","ml-lg-5","p-lg-0","pt-lg-0","py-lg-0","pr-lg-0","px-lg-0","pb-lg-0","pl-lg-0","p-lg-1","pt-lg-1","py-lg-1","pr-lg-1","px-lg-1","pb-lg-1","pl-lg-1","p-lg-2","pt-lg-2","py-lg-2","pr-lg-2","px-lg-2","pb-lg-2","pl-lg-2","p-lg-3","pt-lg-3","py-lg-3","pr-lg-3","px-lg-3","pb-lg-3","pl-lg-3","p-lg-4","pt-lg-4","py-lg-4","pr-lg-4","px-lg-4","pb-lg-4","pl-lg-4","p-lg-5","pt-lg-5","py-lg-5","pr-lg-5","px-lg-5","pb-lg-5","pl-lg-5","m-lg-n1","mt-lg-n1","my-lg-n1","mr-lg-n1","mx-lg-n1","mb-lg-n1","ml-lg-n1","m-lg-n2","mt-lg-n2","my-lg-n2","mr-lg-n2","mx-lg-n2","mb-lg-n2","ml-lg-n2","m-lg-n3","mt-lg-n3","my-lg-n3","mr-lg-n3","mx-lg-n3","mb-lg-n3","ml-lg-n3","m-lg-n4","mt-lg-n4","my-lg-n4","mr-lg-n4","mx-lg-n4","mb-lg-n4","ml-lg-n4","m-lg-n5","mt-lg-n5","my-lg-n5","mr-lg-n5","mx-lg-n5","mb-lg-n5","ml-lg-n5","m-lg-auto","mt-lg-auto","my-lg-auto","mr-lg-auto","mx-lg-auto","mb-lg-auto","ml-lg-auto","m-xl-0","mt-xl-0","my-xl-0","mr-xl-0","mx-xl-0","mb-xl-0","ml-xl-0","m-xl-1","mt-xl-1","my-xl-1","mr-xl-1","mx-xl-1","mb-xl-1","ml-xl-1","m-xl-2","mt-xl-2","my-xl-2","mr-xl-2","mx-xl-2","mb-xl-2","ml-xl-2","m-xl-3","mt-xl-3","my-xl-3","mr-xl-3","mx-xl-3","mb-xl-3","ml-xl-3","m-xl-4","mt-xl-4","my-xl-4","mr-xl-4","mx-xl-4","mb-xl-4","ml-xl-4","m-xl-5","mt-xl-5","my-xl-5","mr-xl-5","mx-xl-5","mb-xl-5","ml-xl-5","p-xl-0","pt-xl-0","py-xl-0","pr-xl-0","px-xl-0","pb-xl-0","pl-xl-0","p-xl-1","pt-xl-1","py-xl-1","pr-xl-1","px-xl-1","pb-xl-1","pl-xl-1","p-xl-2","pt-xl-2","py-xl-2","pr-xl-2","px-xl-2","pb-xl-2","pl-xl-2","p-xl-3","pt-xl-3","py-xl-3","pr-xl-3","px-xl-3","pb-xl-3","pl-xl-3","p-xl-4","pt-xl-4","py-xl-4","pr-xl-4","px-xl-4","pb-xl-4","pl-xl-4","p-xl-5","pt-xl-5","py-xl-5","pr-xl-5","px-xl-5","pb-xl-5","pl-xl-5","m-xl-n1","mt-xl-n1","my-xl-n1","mr-xl-n1","mx-xl-n1","mb-xl-n1","ml-xl-n1","m-xl-n2","mt-xl-n2","my-xl-n2","mr-xl-n2","mx-xl-n2","mb-xl-n2","ml-xl-n2","m-xl-n3","mt-xl-n3","my-xl-n3","mr-xl-n3","mx-xl-n3","mb-xl-n3","ml-xl-n3","m-xl-n4","mt-xl-n4","my-xl-n4","mr-xl-n4","mx-xl-n4","mb-xl-n4","ml-xl-n4","m-xl-n5","mt-xl-n5","my-xl-n5","mr-xl-n5","mx-xl-n5","mb-xl-n5","ml-xl-n5","m-xl-auto","mt-xl-auto","my-xl-auto","mr-xl-auto","mx-xl-auto","mb-xl-auto","ml-xl-auto","sr-only","sr-only-focusable","assets-grid","asset-grid-item","asset-preview","selected","asset-name","file-type-badge","asset-thumbnail","asset-icon","asset-info","asset-size","assets-list-image-preview-container","assets-list-image-preview-image","list-header","no-image-preview","unbulleted-list-item","messages","__webpack_require__","defineMessages","assetsListNoPreview","id","defaultMessage","description","assetsListNameLabel","assetsListDateLabel","initialState","selectedAssetIndex","selectedAssetPage","AssetsList","props","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","_initialiseProps","state","_extends","handleKeyDown","bind","onAssetClick","onListBoxFocus","React","Component","nextProps","paginationMetadata","page","setState","getSelectedAssetIndex","assetsList","selectedAsset","keys","length","asset","index","_this2","selectAsset","getFileExtension","displayName","lastDot","lastIndexOf","substring","toLowerCase","formatFileSize","bytes","i","Math","floor","log","pow","toFixed","getAssetGridItem","isSelected","baseUrl","courseDetails","base_url","fileExt","display_name","fileSize","file_size","_react2","default","createElement","onMouseDown","e","preventDefault","className","_classnames2","styles","_defineProperty","aria-selected","role","key","tabIndex","thumbnail","src","alt","title","findIndex","render","assetsGridItems","map","aria-activedescendant","onFocus","onKeyDown","propTypes","PropTypes","arrayOf","shape","string","content_type","url","date_added","portable_url","external_url","number","isRequired","lang","url_name","name","display_course_number","num","org","revision","start","end","pageSize","totalCount","func","_reactRedux","_","_assets","WrappedAssetsList","connect","assets","studioDetails","course","courseImageAccessibilityDocs","help_tokens","image_accessibility","metadata","pagination","select","dispatch","assetsClearSearchButtonLabel","_paragon","AssetsClearSearchButton","_ref","clearSearch","Button","buttonType","onClick","label","_formattedMessageWrapper2","message","WrappedAssetsClearSearchButton","searchUpdate","paragon-fieldset","image-preview-placeholder","or-fields","modal-body","row","modal-dialog","form-control","is-invalid","is-invalid-nodanger","image-preview-container","image-preview-image","image-dimensions-x","invalid-feedback","form-group","form-text","form-row","col","form-check","form-check-input","form-check-label","content","from","to","fromRe","replace","regex","RegExp","match","editImageModalAssetsListLoadingSpinner","editImageModalAssetsListNoAssetsMessage","editImageModalAssetsListNoResultsMessage","editImageModalCancelButton","editImageModalFormError","editImageModalFormErrorMissingFields","editImageModalFormValidImageDescription","editImageModalFormValidImageDimensions","editImageModalImageDescriptionDescription","editImageModalImageDescriptionLabel","editImageModalImageDescriptionLegend","editImageModalDimensionsLegend","editImageModalImageHeightLabel","editImageModalImagePreviewText","editImageModalInsertImageButton","editImageModalLearnMore","editImageModalLockImageProportionsCheckboxLabel","editImageModalImageWidthLabel","editImageModalInsertTitle","editImageModalInsertHeader","editImageModalEditTitle","editImageModalNextPageButton","editImageModalPreviousPageButton","editImageModalInvalidFileType","editImageModalTooManyFiles","_actionTypes","_getAssetsPageType","WrappedAssetsResultsCount","_state$metadata$filte","filters","assetTypes","typesWithoutImages","Images","_objectWithoutProperties","filtersMetadata","filtersWithoutImages","searchMetadata","search","AssetsResultsCount","initialEditImageModalState","areImageDimensionsValid","areProportionsLocked","assetsPageType","pageTypes","SKELETON","baseAssetURL","currentUploadErrorMessage","currentValidationMessages","displayLoadingSpinner","imageDescription","imageDimensions","imageSource","imageStyle","isImageDescriptionValid","isImageLoaded","isImageLoading","isImageDimensionsValid","isModalOpen","isStatusAlertOpen","pageNumber","shouldShowPreviousButton","EditImageModal","handleOpenModal","onConstrainProportionsClick","onEditImageModalClose","onImageDescriptionBlur","onImageDimensionBlur","onInsertImageButtonClick","onImageLoad","onNextPageButtonClick","onPreviousPageButtonClick","onStatusAlertClose","setDropZoneButtonRef","setImageDescriptionInputRef","setImageFormRef","setImageRef","setModalWrapperRef","setPreviousButtonRef","setStatusAlertRef","dropZoneButtonRef","imageDescriptionInputRef","imageFormRef","imageRef","previousPageButtonRef","modalWrapperRef","statusAlertRef","addEventListener","newState","assetsStatus","type","assetActions","upload","UPLOAD_ASSET_SUCCESS","uploadedAsset","response","clearAssetsStatus","UPLOAD_EXCEED_MAX_COUNT_ERROR","UPLOAD_INVALID_FILE_TYPE_ERROR","getPageType","prevProps","prevState","didStatusAlertOpen","wasNextButtonClicked","wasPreviousButtonClicked","removeEventListener","ref","checked","resetImageSelection","dispatchEvent","CustomEvent","bubbles","event","img","target","width","naturalWidth","height","naturalHeight","aspectRatio","onImageError","dimensionType","newDimensionType","Error","dimensionValue","newImageDimensions","parsedDimensionValue","parseInt","isNaN","newDimensionValue","round","isAssetSelected","isValidImageDescription","validateImageDescription","isValidImageDimensions","validateImageDimensions","isValidFormContent","isValid","validationMessage","targetElement","altText","detail","getDimensionStateOrNatural","style","focus","getNaturalDimension","getImageDescriptionInput","Fieldset","legend","invalidMessage","variant","status","Variant","DANGER","variantIconDescription","InputText","describedBy","getImageDescriptionDescription","value","onBlur","inputRef","getLearnMoreLink","displayText","rel","href","Fragment","getImageDimensionsInput","Icon","CheckBox","onChange","getImageAssetSource","_rewriteStaticLinks2","getImage","invisible","onLoad","onError","getImagePreviewPlaceholder","getImagePreview","aria-hidden","getStatusAlertDialog","dialog","getUploadErrorStatusMessage","tagName","reduce","accumulator","current","errorMessage","push","getStatusAlert","StatusAlert","alertType","onClose","open","getModalHeader","header","aria-live","getModalBody","body","getImageSelectionModalBody","getImageSettingsModalBody","getImageSelectionModalBodyAssetsList","NORMAL","_container6","NO_ASSETS","NO_RESULTS","_container2","FontAwesomeStyles","fa","_container4","maxFileCount","maxFileSizeMB","acceptedFileTypes","compactStyle","buttonRef","display","getPreviousPageButton","getModalButtons","buttons","getInsertImageButton","getNextPageButton","disabled","updatePage","clearSelectedAsset","eventSource","isEventSourceEmpty","baseAssetUrl","getAssets","feedback","_state$imageDimension","isPositiveIntegerOrEmpty","dangerIconDescription","val","undefined","Number","isInteger","aria-atomic","aria-relevant","Modal","closeText","parentSelector","object","WrappedEditImageModal","request","pageUpdate","ce","window","defaultPrevented","params","evt","origPrevent","cancelable","document","createEvent","initCustomEvent","defineProperty","get","prototype","Event","_reactIntl","_babelPolyfill","global","i18nData","_loadI18nDomData2","ReactDOM","IntlProvider","locale","Provider","store","getElementById"],"mappings":"yFACAA,EAAAC,SAAkBC,KAAA,OAAAC,IAAA,MAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,UAAA,UAAAC,oBAAA,oBAAAC,cAAA,cAAAC,kBAAA,kBAAAC,gBAAA,gBAAAC,SAAA,WAAAC,aAAA,aAAAC,kBAAA,kBAAAC,kBAAA,kBAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,sCAAA,sCAAAC,kCAAA,kCAAAC,cAAA,cAAAC,mBAAA,mBAAAC,uBAAA,2GCDlB,IAEMC,GAAW,EAFjBC,EAAA,GAEiBC,iBACfC,qBACEC,GAAI,sBACJC,eAAgB,wBAChBC,YAAa,4CAEfC,qBACEH,GAAI,sBACJC,eAAgB,OAChBC,YAAa,2BAEfE,qBACEJ,GAAI,sBACJC,eAAgB,aAChBC,YAAa,uCAIFN,sfCpBfC,EAAA,SACAA,EAAA,QACAA,EAAA,SAEAA,EAAA,OACAA,EAAA,QACAA,EAAA,kLAEA,IAAMQ,GACJC,oBAAqB,EACrBC,mBAAoB,GAGDC,cACnB,SAAAA,EAAYC,gGAAOC,CAAAC,KAAAH,GAAA,IAAAI,mKAAAC,CAAAF,MAAAH,EAAAM,WAAAC,OAAAC,eAAAR,IAAAS,KAAAN,KACXF,IADW,OAAAS,EAAAD,KAAAL,GAGjBA,EAAKO,MAALC,KACKf,GAGLO,EAAKS,cAAgBT,EAAKS,cAAcC,KAAnBV,GACrBA,EAAKW,aAAeX,EAAKW,aAAaD,KAAlBV,GACpBA,EAAKY,eAAiBZ,EAAKY,eAAeF,KAApBV,GATLA,qUADmBa,UAAMC,gEAalBC,GAEpBhB,KAAKF,MAAMmB,mBAAmBC,OAASF,EAAUC,mBAAmBC,OAClEF,EAAUC,mBAAmBC,OAASlB,KAAKQ,MAAMZ,kBACnDI,KAAKmB,UACHxB,mBAAoBK,KAAKoB,sBAAsBJ,EAAUK,WACvDL,EAAUM,iBAGdtB,KAAKmB,UACHxB,oBAAqB,KAS0B,IAAjDS,OAAOmB,KAAKvB,KAAKF,MAAMwB,eAAeE,QACQ,IAAhDpB,OAAOmB,KAAKP,EAAUM,eAAeE,QACrCxB,KAAKmB,SAALV,KACKf,0CAKTkB,aAAe,SAACa,EAAOC,GACrBC,EAAKR,UACHxB,mBAAoB+B,EACpB9B,kBAAmB+B,EAAK7B,MAAMmB,mBAAmBC,OAGnDS,EAAK7B,MAAM8B,YAAYH,SAGzBZ,eAAiB,YAEwB,IAAnCc,EAAKnB,MAAMb,oBACbgC,EAAKR,UACDxB,mBAAoB,EACpBC,kBAAmB+B,EAAK7B,MAAMmB,mBAAmBC,MAEnD,WAAQS,EAAK7B,MAAM8B,YAAYD,EAAK7B,MAAMuB,WAAWM,EAAKnB,MAAMb,6BAKtEkC,iBAAmB,SAACC,GAClB,IAAKA,EAAa,MAAO,GACzB,IAAMC,EAAUD,EAAYE,YAAY,KACxC,OAAiB,IAAbD,GAAkBA,IAAYD,EAAYN,OAAS,EAC9C,OAEFM,EAAYG,UAAUF,EAAU,GAAGG,oBAG5CC,eAAiB,SAACC,GAChB,IAAKA,GAAmB,IAAVA,EAAa,MAAO,GAClC,IAEMC,EAAIC,KAAKC,MAAMD,KAAKE,IAAIJ,GAASE,KAAKE,IADlC,OAGV,OADcJ,EAAQE,KAAKG,IAFjB,KAEwBJ,IAAIK,QAAc,IAANL,EAAU,EAAI,GAC5D,KAJe,IAAK,KAAM,KAAM,MAIRA,SAG1BM,iBAAmB,SAAClB,EAAOC,GACzB,IAAMkB,EAAajB,EAAK7B,MAAMwB,cAAcjC,KAAOoC,EAAMpC,GACnDwD,EAAUlB,EAAK7B,MAAMgD,cAAcC,UAAY,GAC/CC,EAAUrB,EAAKE,iBAAiBJ,EAAMwB,cACtCC,EAAWvB,EAAKQ,eAAeV,EAAM0B,WAE3C,OACEC,EAAAC,QAAAC,cAAA,OACEC,YAAa,SAACC,GAAQA,EAAEC,iBAAkB9B,EAAKf,aAAaa,EAAOC,IACnEgC,WAAW,EAAAC,EAAAN,SAAWO,UAAO,mBAAlBC,KAAyCD,UAAOvF,SAAWuE,IACtEvD,GAAA,qBAAyBqC,EACzBoC,gBAAelB,EACfmB,KAAK,SACLC,IAAKvC,EAAMpC,IAAMoC,EAAMwB,aACvBgB,SAAS,MAETb,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,kBACrBR,EAAAC,QAAAC,cAAA,QAAMI,UAAWE,UAAO,oBAAqBZ,GAC5CvB,EAAMyC,UACLd,EAAAC,QAAAC,cAAA,OACEI,UAAWE,UAAO,mBAClBO,IAAA,GAAQtB,EAAUpB,EAAMyC,UACxBE,IAAI,KAGNhB,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,eACrBR,EAAAC,QAAAC,cAAA,KAAGI,UAAU,mBAInBN,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,eACrBR,EAAAC,QAAAC,cAAA,OAAKI,WAAW,EAAAC,EAAAN,SAAWO,UAAO,cAAlBC,KAAoCD,UAAOvF,SAAWuE,IAAeyB,MAAO5C,EAAMwB,cAC/FxB,EAAMwB,cAERC,GACCE,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,eACpBV,WAQb9B,sBAAwB,SAACC,EAAYC,GAAb,OAAgCD,EAAWiD,UACjE,SAAA7C,GAAA,OAASA,EAAMpC,KAAOiC,EAAcjC,WAEtCqB,cAAgB,SAAC8C,GACf,OAAQA,EAAEQ,KACR,IAAK,aACHR,EAAEC,iBACE9B,EAAKnB,MAAMb,mBAAqBgC,EAAK7B,MAAMuB,WAAWG,OAAS,GACjEG,EAAKR,SACH,SAACX,EAAOV,GAAR,OACEH,mBAAoBgC,EAAKnB,MAAMb,mBAAqB,EACpDC,kBAAmBE,EAAMmB,mBAAmBC,OAE9C,WAAQS,EAAK7B,MAAM8B,YAAYD,EAAK7B,MAAMuB,WAAWM,EAAKnB,MAAMb,uBAGpE,MAEF,IAAK,YACH6D,EAAEC,iBACE9B,EAAKnB,MAAMb,mBAAqB,GAClCgC,EAAKR,SACH,SAACX,EAAOV,GAAR,OACEH,mBAAoBgC,EAAKnB,MAAMb,mBAAqB,EACpDC,kBAAmBE,EAAMmB,mBAAmBC,OAE9C,WAAQS,EAAK7B,MAAM8B,YAAYD,EAAK7B,MAAMuB,WAAWM,EAAKnB,MAAMb,8BAS1E4E,OAAS,WACP,IAAMC,EAAkB7C,EAAK7B,MAAMuB,WAAWoD,IAAI,SAAChD,EAAOC,GAAR,OAChDC,EAAKgB,iBAAiBlB,EAAOC,KAE/B,OACE0B,EAAAC,QAAAC,cAAA,OACEoB,wBAAuB/C,EAAKnB,MAAMb,oBAAsB,EAAjC,qBAA0DgC,EAAKnB,MAAMb,mBAAuB,KACnH+D,UAAWE,UAAO,eAClBe,QAAShD,EAAKd,eACd+D,UAAWjD,EAAKjB,cAChBqD,KAAK,UACLE,SAAS,KAERO,eA3KY3E,EAiLrBA,EAAWgF,WACTxD,WAAYyD,UAAUC,QAAQD,UAAUE,OACtC/B,aAAc6B,UAAUG,OACxBC,aAAcJ,UAAUG,OACxBE,IAAKL,UAAUG,OACfG,WAAYN,UAAUG,OACtB5F,GAAIyF,UAAUG,OACdI,aAAcP,UAAUG,OACxBf,UAAWY,UAAUG,OACrBK,aAAcR,UAAUG,OACxB9B,UAAW2B,UAAUS,UACnBC,WACJ1C,cAAegC,UAAUE,OACvBS,KAAMX,UAAUG,OAChBS,SAAUZ,UAAUG,OACpBU,KAAMb,UAAUG,OAChBW,sBAAuBd,UAAUG,OACjCY,IAAKf,UAAUG,OACfa,IAAKhB,UAAUG,OACf5F,GAAIyF,UAAUG,OACdc,SAAUjB,UAAUG,OACpBlC,SAAU+B,UAAUG,SACnBO,WACHvE,mBAAoB6D,UAAUE,OAC5BgB,MAAOlB,UAAUS,OACjBU,IAAKnB,UAAUS,OACfrE,KAAM4D,UAAUS,OAChBW,SAAUpB,UAAUS,OACpBY,WAAYrB,UAAUS,SACrBC,WACH5D,YAAakD,UAAUsB,KAAKZ,WAC5BlE,cAAewD,UAAUE,OACvB/B,aAAc6B,UAAUG,OACxBC,aAAcJ,UAAUG,OACxBE,IAAKL,UAAUG,OACfG,WAAYN,UAAUG,OACtB5F,GAAIyF,UAAUG,OACdI,aAAcP,UAAUG,OACxBf,UAAWY,UAAUG,OACrBK,aAAcR,UAAUG,OACxB9B,UAAW2B,UAAUS,SACpBC,+FCvOL,MAAAa,EAAAnH,EAAA,GAEAoH,EAAApH,EAAA,yCACAqH,EAAArH,EAAA,IAEA,IAaMsH,GAAoB,EAAAH,EAAAI,SAbF,SAAAjG,GAAA,OACtBa,WAAYb,EAAMkG,OAClB5D,cAAetC,EAAMmG,cAAcC,OACnCC,6BAA8BrG,EAAMmG,cAAcG,YAAYC,oBAC9D9F,mBAAoBT,EAAMwG,SAASC,WACnC3F,cAAed,EAAMwG,SAASE,OAAO5F,cACrC3B,mBAAoBa,EAAMwG,SAASE,OAAOvH,qBAGjB,SAAAwH,GAAA,OACzBvF,YAAa,SAACH,EAAOC,GAAR,OAAkByF,GAAS,EAAAZ,EAAA3E,aAAYH,EAAOC,OAGnC,CAGxB7B,qBAEa2G,qFCvBf,IAEMvH,GAAW,EAFjBC,EAAA,GAEiBC,iBACfiI,8BACE/H,GAAI,+BACJC,eAAgB,eAChBC,YAAa,6EAIFN,qFCVf,IAAAoI,EAAAnI,EAAA,QACAA,EAAA,QACAA,EAAA,QAEAA,EAAA,UACAA,EAAA,wDAGA,IAAMoI,EAA0B,SAAAC,GAAA,IAAGC,EAAHD,EAAGC,YAAa1E,EAAhByE,EAAgBzE,cAAhB,OAC9BM,EAAAC,QAAAC,cAAC+D,EAAAI,QACCC,WAAW,OACXC,QAAS,kBAAMH,EAAY1E,IAC3B8E,MACExE,EAAAC,QAAAC,cAACuE,EAAAxE,SAAeyE,QAAS7I,UAASmI,kCAKxCE,EAAwBzC,WACtB2C,YAAa1C,UAAUsB,KAAKZ,WAC5B1C,cAAegC,UAAUE,OACvBS,KAAMX,UAAUG,OAChBS,SAAUZ,UAAUG,OACpBU,KAAMb,UAAUG,OAChBW,sBAAuBd,UAAUG,OACjCY,IAAKf,UAAUG,OACfa,IAAKhB,UAAUG,OACf5F,GAAIyF,UAAUG,OACdc,SAAUjB,UAAUG,SACnBO,sBAGU8B,qFChCf,MAAAjB,EAAAnH,EAAA,GAEAoH,EAAApH,EAAA,yCACAqH,EAAArH,EAAA,IAEA,IAQM6I,GAAiC,EAAA1B,EAAAI,SARf,SAAAjG,GAAA,OACtBsC,cAAetC,EAAMmG,cAAcC,SAGV,SAAAO,GAAA,OACzBK,YAAa,SAAA1E,GAAA,OAAiBqE,GAAS,EAAAZ,EAAAyB,cAAa,GAAIlF,OAGnB,CAGrCwE,qBAEaS,qBCjBfzxB,EAAAC,SAAkBC,KAAA,OAAAC,IAAA,MAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAsvB,mBAAA,mBAAArvB,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAytB,4BAAA,4BAAAxtB,OAAA,OAAAC,OAAA,OAAAwtB,YAAA,YAAAvtB,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,MAAA,MAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,OAAA,OAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,QAAA,QAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,W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","file":"editImageModal.min.js","sourcesContent":["// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"root\",\"SFE\":\"SFE\",\"m-0\":\"m-0\",\"mt-0\":\"mt-0\",\"my-0\":\"my-0\",\"mr-0\":\"mr-0\",\"mx-0\":\"mx-0\",\"mb-0\":\"mb-0\",\"ml-0\":\"ml-0\",\"m-1\":\"m-1\",\"mt-1\":\"mt-1\",\"my-1\":\"my-1\",\"mr-1\":\"mr-1\",\"mx-1\":\"mx-1\",\"mb-1\":\"mb-1\",\"ml-1\":\"ml-1\",\"m-2\":\"m-2\",\"mt-2\":\"mt-2\",\"my-2\":\"my-2\",\"mr-2\":\"mr-2\",\"mx-2\":\"mx-2\",\"mb-2\":\"mb-2\",\"ml-2\":\"ml-2\",\"m-3\":\"m-3\",\"mt-3\":\"mt-3\",\"my-3\":\"my-3\",\"mr-3\":\"mr-3\",\"mx-3\":\"mx-3\",\"mb-3\":\"mb-3\",\"ml-3\":\"ml-3\",\"m-4\":\"m-4\",\"mt-4\":\"mt-4\",\"my-4\":\"my-4\",\"mr-4\":\"mr-4\",\"mx-4\":\"mx-4\",\"mb-4\":\"mb-4\",\"ml-4\":\"ml-4\",\"m-5\":\"m-5\",\"mt-5\":\"mt-5\",\"my-5\":\"my-5\",\"mr-5\":\"mr-5\",\"mx-5\":\"mx-5\",\"mb-5\":\"mb-5\",\"ml-5\":\"ml-5\",\"p-0\":\"p-0\",\"pt-0\":\"pt-0\",\"py-0\":\"py-0\",\"pr-0\":\"pr-0\",\"px-0\":\"px-0\",\"pb-0\":\"pb-0\",\"pl-0\":\"pl-0\",\"p-1\":\"p-1\",\"pt-1\":\"pt-1\",\"py-1\":\"py-1\",\"pr-1\":\"pr-1\",\"px-1\":\"px-1\",\"pb-1\":\"pb-1\",\"pl-1\":\"pl-1\",\"p-2\":\"p-2\",\"pt-2\":\"pt-2\",\"py-2\":\"py-2\",\"pr-2\":\"pr-2\",\"px-2\":\"px-2\",\"pb-2\":\"pb-2\",\"pl-2\":\"pl-2\",\"p-3\":\"p-3\",\"pt-3\":\"pt-3\",\"py-3\":\"py-3\",\"pr-3\":\"pr-3\",\"px-3\":\"px-3\",\"pb-3\":\"pb-3\",\"pl-3\":\"pl-3\",\"p-4\":\"p-4\",\"pt-4\":\"pt-4\",\"py-4\":\"py-4\",\"pr-4\":\"pr-4\",\"px-4\":\"px-4\",\"pb-4\":\"pb-4\",\"pl-4\":\"pl-4\",\"p-5\":\"p-5\",\"pt-5\":\"pt-5\",\"py-5\":\"py-5\",\"pr-5\":\"pr-5\",\"px-5\":\"px-5\",\"pb-5\":\"pb-5\",\"pl-5\":\"pl-5\",\"m-n1\":\"m-n1\",\"mt-n1\":\"mt-n1\",\"my-n1\":\"my-n1\",\"mr-n1\":\"mr-n1\",\"mx-n1\":\"mx-n1\",\"mb-n1\":\"mb-n1\",\"ml-n1\":\"ml-n1\",\"m-n2\":\"m-n2\",\"mt-n2\":\"mt-n2\",\"my-n2\":\"my-n2\",\"mr-n2\":\"mr-n2\",\"mx-n2\":\"mx-n2\",\"mb-n2\":\"mb-n2\",\"ml-n2\":\"ml-n2\",\"m-n3\":\"m-n3\",\"mt-n3\":\"mt-n3\",\"my-n3\":\"my-n3\",\"mr-n3\":\"mr-n3\",\"mx-n3\":\"mx-n3\",\"mb-n3\":\"mb-n3\",\"ml-n3\":\"ml-n3\",\"m-n4\":\"m-n4\",\"mt-n4\":\"mt-n4\",\"my-n4\":\"my-n4\",\"mr-n4\":\"mr-n4\",\"mx-n4\":\"mx-n4\",\"mb-n4\":\"mb-n4\",\"ml-n4\":\"ml-n4\",\"m-n5\":\"m-n5\",\"mt-n5\":\"mt-n5\",\"my-n5\":\"my-n5\",\"mr-n5\":\"mr-n5\",\"mx-n5\":\"mx-n5\",\"mb-n5\":\"mb-n5\",\"ml-n5\":\"ml-n5\",\"m-auto\":\"m-auto\",\"mt-auto\":\"mt-auto\",\"my-auto\":\"my-auto\",\"mr-auto\":\"mr-auto\",\"mx-auto\":\"mx-auto\",\"mb-auto\":\"mb-auto\",\"ml-auto\":\"ml-auto\",\"m-sm-0\":\"m-sm-0\",\"mt-sm-0\":\"mt-sm-0\",\"my-sm-0\":\"my-sm-0\",\"mr-sm-0\":\"mr-sm-0\",\"mx-sm-0\":\"mx-sm-0\",\"mb-sm-0\":\"mb-sm-0\",\"ml-sm-0\":\"ml-sm-0\",\"m-sm-1\":\"m-sm-1\",\"mt-sm-1\":\"mt-sm-1\",\"my-sm-1\":\"my-sm-1\",\"mr-sm-1\":\"mr-sm-1\",\"mx-sm-1\":\"mx-sm-1\",\"mb-sm-1\":\"mb-sm-1\",\"ml-sm-1\":\"ml-sm-1\",\"m-sm-2\":\"m-sm-2\",\"mt-sm-2\":\"mt-sm-2\",\"my-sm-2\":\"my-sm-2\",\"mr-sm-2\":\"mr-sm-2\",\"mx-sm-2\":\"mx-sm-2\",\"mb-sm-2\":\"mb-sm-2\",\"ml-sm-2\":\"ml-sm-2\",\"m-sm-3\":\"m-sm-3\",\"mt-sm-3\":\"mt-sm-3\",\"my-sm-3\":\"my-sm-3\",\"mr-sm-3\":\"mr-sm-3\",\"mx-sm-3\":\"mx-sm-3\",\"mb-sm-3\":\"mb-sm-3\",\"ml-sm-3\":\"ml-sm-3\",\"m-sm-4\":\"m-sm-4\",\"mt-sm-4\":\"mt-sm-4\",\"my-sm-4\":\"my-sm-4\",\"mr-sm-4\":\"mr-sm-4\",\"mx-sm-4\":\"mx-sm-4\",\"mb-sm-4\":\"mb-sm-4\",\"ml-sm-4\":\"ml-sm-4\",\"m-sm-5\":\"m-sm-5\",\"mt-sm-5\":\"mt-sm-5\",\"my-sm-5\":\"my-sm-5\",\"mr-sm-5\":\"mr-sm-5\",\"mx-sm-5\":\"mx-sm-5\",\"mb-sm-5\":\"mb-sm-5\",\"ml-sm-5\":\"ml-sm-5\",\"p-sm-0\":\"p-sm-0\",\"pt-sm-0\":\"pt-sm-0\",\"py-sm-0\":\"py-sm-0\",\"pr-sm-0\":\"pr-sm-0\",\"px-sm-0\":\"px-sm-0\",\"pb-sm-0\":\"pb-sm-0\",\"pl-sm-0\":\"pl-sm-0\",\"p-sm-1\":\"p-sm-1\",\"pt-sm-1\":\"pt-sm-1\",\"py-sm-1\":\"py-sm-1\",\"pr-sm-1\":\"pr-sm-1\",\"px-sm-1\":\"px-sm-1\",\"pb-sm-1\":\"pb-sm-1\",\"pl-sm-1\":\"pl-sm-1\",\"p-sm-2\":\"p-sm-2\",\"pt-sm-2\":\"pt-sm-2\",\"py-sm-2\":\"py-sm-2\",\"pr-sm-2\":\"pr-sm-2\",\"px-sm-2\":\"px-sm-2\",\"pb-sm-2\":\"pb-sm-2\",\"pl-sm-2\":\"pl-sm-2\",\"p-sm-3\":\"p-sm-3\",\"pt-sm-3\":\"pt-sm-3\",\"py-sm-3\":\"py-sm-3\",\"pr-sm-3\":\"pr-sm-3\",\"px-sm-3\":\"px-sm-3\",\"pb-sm-3\":\"pb-sm-3\",\"pl-sm-3\":\"pl-sm-3\",\"p-sm-4\":\"p-sm-4\",\"pt-sm-4\":\"pt-sm-4\",\"py-sm-4\":\"py-sm-4\",\"pr-sm-4\":\"pr-sm-4\",\"px-sm-4\":\"px-sm-4\",\"pb-sm-4\":\"pb-sm-4\",\"pl-sm-4\":\"pl-sm-4\",\"p-sm-5\":\"p-sm-5\",\"pt-sm-5\":\"pt-sm-5\",\"py-sm-5\":\"py-sm-5\",\"pr-sm-5\":\"pr-sm-5\",\"px-sm-5\":\"px-sm-5\",\"pb-sm-5\":\"pb-sm-5\",\"pl-sm-5\":\"pl-sm-5\",\"m-sm-n1\":\"m-sm-n1\",\"mt-sm-n1\":\"mt-sm-n1\",\"my-sm-n1\":\"my-sm-n1\",\"mr-sm-n1\":\"mr-sm-n1\",\"mx-sm-n1\":\"mx-sm-n1\",\"mb-sm-n1\":\"mb-sm-n1\",\"ml-sm-n1\":\"ml-sm-n1\",\"m-sm-n2\":\"m-sm-n2\",\"mt-sm-n2\":\"mt-sm-n2\",\"my-sm-n2\":\"my-sm-n2\",\"mr-sm-n2\":\"mr-sm-n2\",\"mx-sm-n2\":\"mx-sm-n2\",\"mb-sm-n2\":\"mb-sm-n2\",\"ml-sm-n2\":\"ml-sm-n2\",\"m-sm-n3\":\"m-sm-n3\",\"mt-sm-n3\":\"mt-sm-n3\",\"my-sm-n3\":\"my-sm-n3\",\"mr-sm-n3\":\"mr-sm-n3\",\"mx-sm-n3\":\"mx-sm-n3\",\"mb-sm-n3\":\"mb-sm-n3\",\"ml-sm-n3\":\"ml-sm-n3\",\"m-sm-n4\":\"m-sm-n4\",\"mt-sm-n4\":\"mt-sm-n4\",\"my-sm-n4\":\"my-sm-n4\",\"mr-sm-n4\":\"mr-sm-n4\",\"mx-sm-n4\":\"mx-sm-n4\",\"mb-sm-n4\":\"mb-sm-n4\",\"ml-sm-n4\":\"ml-sm-n4\",\"m-sm-n5\":\"m-sm-n5\",\"mt-sm-n5\":\"mt-sm-n5\",\"my-sm-n5\":\"my-sm-n5\",\"mr-sm-n5\":\"mr-sm-n5\",\"mx-sm-n5\":\"mx-sm-n5\",\"mb-sm-n5\":\"mb-sm-n5\",\"ml-sm-n5\":\"ml-sm-n5\",\"m-sm-auto\":\"m-sm-auto\",\"mt-sm-auto\":\"mt-sm-auto\",\"my-sm-auto\":\"my-sm-auto\",\"mr-sm-auto\":\"mr-sm-auto\",\"mx-sm-auto\":\"mx-sm-auto\",\"mb-sm-auto\":\"mb-sm-auto\",\"ml-sm-auto\":\"ml-sm-auto\",\"m-md-0\":\"m-md-0\",\"mt-md-0\":\"mt-md-0\",\"my-md-0\":\"my-md-0\",\"mr-md-0\":\"mr-md-0\",\"mx-md-0\":\"mx-md-0\",\"mb-md-0\":\"mb-md-0\",\"ml-md-0\":\"ml-md-0\",\"m-md-1\":\"m-md-1\",\"mt-md-1\":\"mt-md-1\",\"my-md-1\":\"my-md-1\",\"mr-md-1\":\"mr-md-1\",\"mx-md-1\":\"mx-md-1\",\"mb-md-1\":\"mb-md-1\",\"ml-md-1\":\"ml-md-1\",\"m-md-2\":\"m-md-2\",\"mt-md-2\":\"mt-md-2\",\"my-md-2\":\"my-md-2\",\"mr-md-2\":\"mr-md-2\",\"mx-md-2\":\"mx-md-2\",\"mb-md-2\":\"mb-md-2\",\"ml-md-2\":\"ml-md-2\",\"m-md-3\":\"m-md-3\",\"mt-md-3\":\"mt-md-3\",\"my-md-3\":\"my-md-3\",\"mr-md-3\":\"mr-md-3\",\"mx-md-3\":\"mx-md-3\",\"mb-md-3\":\"mb-md-3\",\"ml-md-3\":\"ml-md-3\",\"m-md-4\":\"m-md-4\",\"mt-md-4\":\"mt-md-4\",\"my-md-4\":\"my-md-4\",\"mr-md-4\":\"mr-md-4\",\"mx-md-4\":\"mx-md-4\",\"mb-md-4\":\"mb-md-4\",\"ml-md-4\":\"ml-md-4\",\"m-md-5\":\"m-md-5\",\"mt-md-5\":\"mt-md-5\",\"my-md-5\":\"my-md-5\",\"mr-md-5\":\"mr-md-5\",\"mx-md-5\":\"mx-md-5\",\"mb-md-5\":\"mb-md-5\",\"ml-md-5\":\"ml-md-5\",\"p-md-0\":\"p-md-0\",\"pt-md-0\":\"pt-md-0\",\"py-md-0\":\"py-md-0\",\"pr-md-0\":\"pr-md-0\",\"px-md-0\":\"px-md-0\",\"pb-md-0\":\"pb-md-0\",\"pl-md-0\":\"pl-md-0\",\"p-md-1\":\"p-md-1\",\"pt-md-1\":\"pt-md-1\",\"py-md-1\":\"py-md-1\",\"pr-md-1\":\"pr-md-1\",\"px-md-1\":\"px-md-1\",\"pb-md-1\":\"pb-md-1\",\"pl-md-1\":\"pl-md-1\",\"p-md-2\":\"p-md-2\",\"pt-md-2\":\"pt-md-2\",\"py-md-2\":\"py-md-2\",\"pr-md-2\":\"pr-md-2\",\"px-md-2\":\"px-md-2\",\"pb-md-2\":\"pb-md-2\",\"pl-md-2\":\"pl-md-2\",\"p-md-3\":\"p-md-3\",\"pt-md-3\":\"pt-md-3\",\"py-md-3\":\"py-md-3\",\"pr-md-3\":\"pr-md-3\",\"px-md-3\":\"px-md-3\",\"pb-md-3\":\"pb-md-3\",\"pl-md-3\":\"pl-md-3\",\"p-md-4\":\"p-md-4\",\"pt-md-4\":\"pt-md-4\",\"py-md-4\":\"py-md-4\",\"pr-md-4\":\"pr-md-4\",\"px-md-4\":\"px-md-4\",\"pb-md-4\":\"pb-md-4\",\"pl-md-4\":\"pl-md-4\",\"p-md-5\":\"p-md-5\",\"pt-md-5\":\"pt-md-5\",\"py-md-5\":\"py-md-5\",\"pr-md-5\":\"pr-md-5\",\"px-md-5\":\"px-md-5\",\"pb-md-5\":\"pb-md-5\",\"pl-md-5\":\"pl-md-5\",\"m-md-n1\":\"m-md-n1\",\"mt-md-n1\":\"mt-md-n1\",\"my-md-n1\":\"my-md-n1\",\"mr-md-n1\":\"mr-md-n1\",\"mx-md-n1\":\"mx-md-n1\",\"mb-md-n1\":\"mb-md-n1\",\"ml-md-n1\":\"ml-md-n1\",\"m-md-n2\":\"m-md-n2\",\"mt-md-n2\":\"mt-md-n2\",\"my-md-n2\":\"my-md-n2\",\"mr-md-n2\":\"mr-md-n2\",\"mx-md-n2\":\"mx-md-n2\",\"mb-md-n2\":\"mb-md-n2\",\"ml-md-n2\":\"ml-md-n2\",\"m-md-n3\":\"m-md-n3\",\"mt-md-n3\":\"mt-md-n3\",\"my-md-n3\":\"my-md-n3\",\"mr-md-n3\":\"mr-md-n3\",\"mx-md-n3\":\"mx-md-n3\",\"mb-md-n3\":\"mb-md-n3\",\"ml-md-n3\":\"ml-md-n3\",\"m-md-n4\":\"m-md-n4\",\"mt-md-n4\":\"mt-md-n4\",\"my-md-n4\":\"my-md-n4\",\"mr-md-n4\":\"mr-md-n4\",\"mx-md-n4\":\"mx-md-n4\",\"mb-md-n4\":\"mb-md-n4\",\"ml-md-n4\":\"ml-md-n4\",\"m-md-n5\":\"m-md-n5\",\"mt-md-n5\":\"mt-md-n5\",\"my-md-n5\":\"my-md-n5\",\"mr-md-n5\":\"mr-md-n5\",\"mx-md-n5\":\"mx-md-n5\",\"mb-md-n5\":\"mb-md-n5\",\"ml-md-n5\":\"ml-md-n5\",\"m-md-auto\":\"m-md-auto\",\"mt-md-auto\":\"mt-md-auto\",\"my-md-auto\":\"my-md-auto\",\"mr-md-auto\":\"mr-md-auto\",\"mx-md-auto\":\"mx-md-auto\",\"mb-md-auto\":\"mb-md-auto\",\"ml-md-auto\":\"ml-md-auto\",\"m-lg-0\":\"m-lg-0\",\"mt-lg-0\":\"mt-lg-0\",\"my-lg-0\":\"my-lg-0\",\"mr-lg-0\":\"mr-lg-0\",\"mx-lg-0\":\"mx-lg-0\",\"mb-lg-0\":\"mb-lg-0\",\"ml-lg-0\":\"ml-lg-0\",\"m-lg-1\":\"m-lg-1\",\"mt-lg-1\":\"mt-lg-1\",\"my-lg-1\":\"my-lg-1\",\"mr-lg-1\":\"mr-lg-1\",\"mx-lg-1\":\"mx-lg-1\",\"mb-lg-1\":\"mb-lg-1\",\"ml-lg-1\":\"ml-lg-1\",\"m-lg-2\":\"m-lg-2\",\"mt-lg-2\":\"mt-lg-2\",\"my-lg-2\":\"my-lg-2\",\"mr-lg-2\":\"mr-lg-2\",\"mx-lg-2\":\"mx-lg-2\",\"mb-lg-2\":\"mb-lg-2\",\"ml-lg-2\":\"ml-lg-2\",\"m-lg-3\":\"m-lg-3\",\"mt-lg-3\":\"mt-lg-3\",\"my-lg-3\":\"my-lg-3\",\"mr-lg-3\":\"mr-lg-3\",\"mx-lg-3\":\"mx-lg-3\",\"mb-lg-3\":\"mb-lg-3\",\"ml-lg-3\":\"ml-lg-3\",\"m-lg-4\":\"m-lg-4\",\"mt-lg-4\":\"mt-lg-4\",\"my-lg-4\":\"my-lg-4\",\"mr-lg-4\":\"mr-lg-4\",\"mx-lg-4\":\"mx-lg-4\",\"mb-lg-4\":\"mb-lg-4\",\"ml-lg-4\":\"ml-lg-4\",\"m-lg-5\":\"m-lg-5\",\"mt-lg-5\":\"mt-lg-5\",\"my-lg-5\":\"my-lg-5\",\"mr-lg-5\":\"mr-lg-5\",\"mx-lg-5\":\"mx-lg-5\",\"mb-lg-5\":\"mb-lg-5\",\"ml-lg-5\":\"ml-lg-5\",\"p-lg-0\":\"p-lg-0\",\"pt-lg-0\":\"pt-lg-0\",\"py-lg-0\":\"py-lg-0\",\"pr-lg-0\":\"pr-lg-0\",\"px-lg-0\":\"px-lg-0\",\"pb-lg-0\":\"pb-lg-0\",\"pl-lg-0\":\"pl-lg-0\",\"p-lg-1\":\"p-lg-1\",\"pt-lg-1\":\"pt-lg-1\",\"py-lg-1\":\"py-lg-1\",\"pr-lg-1\":\"pr-lg-1\",\"px-lg-1\":\"px-lg-1\",\"pb-lg-1\":\"pb-lg-1\",\"pl-lg-1\":\"pl-lg-1\",\"p-lg-2\":\"p-lg-2\",\"pt-lg-2\":\"pt-lg-2\",\"py-lg-2\":\"py-lg-2\",\"pr-lg-2\":\"pr-lg-2\",\"px-lg-2\":\"px-lg-2\",\"pb-lg-2\":\"pb-lg-2\",\"pl-lg-2\":\"pl-lg-2\",\"p-lg-3\":\"p-lg-3\",\"pt-lg-3\":\"pt-lg-3\",\"py-lg-3\":\"py-lg-3\",\"pr-lg-3\":\"pr-lg-3\",\"px-lg-3\":\"px-lg-3\",\"pb-lg-3\":\"pb-lg-3\",\"pl-lg-3\":\"pl-lg-3\",\"p-lg-4\":\"p-lg-4\",\"pt-lg-4\":\"pt-lg-4\",\"py-lg-4\":\"py-lg-4\",\"pr-lg-4\":\"pr-lg-4\",\"px-lg-4\":\"px-lg-4\",\"pb-lg-4\":\"pb-lg-4\",\"pl-lg-4\":\"pl-lg-4\",\"p-lg-5\":\"p-lg-5\",\"pt-lg-5\":\"pt-lg-5\",\"py-lg-5\":\"py-lg-5\",\"pr-lg-5\":\"pr-lg-5\",\"px-lg-5\":\"px-lg-5\",\"pb-lg-5\":\"pb-lg-5\",\"pl-lg-5\":\"pl-lg-5\",\"m-lg-n1\":\"m-lg-n1\",\"mt-lg-n1\":\"mt-lg-n1\",\"my-lg-n1\":\"my-lg-n1\",\"mr-lg-n1\":\"mr-lg-n1\",\"mx-lg-n1\":\"mx-lg-n1\",\"mb-lg-n1\":\"mb-lg-n1\",\"ml-lg-n1\":\"ml-lg-n1\",\"m-lg-n2\":\"m-lg-n2\",\"mt-lg-n2\":\"mt-lg-n2\",\"my-lg-n2\":\"my-lg-n2\",\"mr-lg-n2\":\"mr-lg-n2\",\"mx-lg-n2\":\"mx-lg-n2\",\"mb-lg-n2\":\"mb-lg-n2\",\"ml-lg-n2\":\"ml-lg-n2\",\"m-lg-n3\":\"m-lg-n3\",\"mt-lg-n3\":\"mt-lg-n3\",\"my-lg-n3\":\"my-lg-n3\",\"mr-lg-n3\":\"mr-lg-n3\",\"mx-lg-n3\":\"mx-lg-n3\",\"mb-lg-n3\":\"mb-lg-n3\",\"ml-lg-n3\":\"ml-lg-n3\",\"m-lg-n4\":\"m-lg-n4\",\"mt-lg-n4\":\"mt-lg-n4\",\"my-lg-n4\":\"my-lg-n4\",\"mr-lg-n4\":\"mr-lg-n4\",\"mx-lg-n4\":\"mx-lg-n4\",\"mb-lg-n4\":\"mb-lg-n4\",\"ml-lg-n4\":\"ml-lg-n4\",\"m-lg-n5\":\"m-lg-n5\",\"mt-lg-n5\":\"mt-lg-n5\",\"my-lg-n5\":\"my-lg-n5\",\"mr-lg-n5\":\"mr-lg-n5\",\"mx-lg-n5\":\"mx-lg-n5\",\"mb-lg-n5\":\"mb-lg-n5\",\"ml-lg-n5\":\"ml-lg-n5\",\"m-lg-auto\":\"m-lg-auto\",\"mt-lg-auto\":\"mt-lg-auto\",\"my-lg-auto\":\"my-lg-auto\",\"mr-lg-auto\":\"mr-lg-auto\",\"mx-lg-auto\":\"mx-lg-auto\",\"mb-lg-auto\":\"mb-lg-auto\",\"ml-lg-auto\":\"ml-lg-auto\",\"m-xl-0\":\"m-xl-0\",\"mt-xl-0\":\"mt-xl-0\",\"my-xl-0\":\"my-xl-0\",\"mr-xl-0\":\"mr-xl-0\",\"mx-xl-0\":\"mx-xl-0\",\"mb-xl-0\":\"mb-xl-0\",\"ml-xl-0\":\"ml-xl-0\",\"m-xl-1\":\"m-xl-1\",\"mt-xl-1\":\"mt-xl-1\",\"my-xl-1\":\"my-xl-1\",\"mr-xl-1\":\"mr-xl-1\",\"mx-xl-1\":\"mx-xl-1\",\"mb-xl-1\":\"mb-xl-1\",\"ml-xl-1\":\"ml-xl-1\",\"m-xl-2\":\"m-xl-2\",\"mt-xl-2\":\"mt-xl-2\",\"my-xl-2\":\"my-xl-2\",\"mr-xl-2\":\"mr-xl-2\",\"mx-xl-2\":\"mx-xl-2\",\"mb-xl-2\":\"mb-xl-2\",\"ml-xl-2\":\"ml-xl-2\",\"m-xl-3\":\"m-xl-3\",\"mt-xl-3\":\"mt-xl-3\",\"my-xl-3\":\"my-xl-3\",\"mr-xl-3\":\"mr-xl-3\",\"mx-xl-3\":\"mx-xl-3\",\"mb-xl-3\":\"mb-xl-3\",\"ml-xl-3\":\"ml-xl-3\",\"m-xl-4\":\"m-xl-4\",\"mt-xl-4\":\"mt-xl-4\",\"my-xl-4\":\"my-xl-4\",\"mr-xl-4\":\"mr-xl-4\",\"mx-xl-4\":\"mx-xl-4\",\"mb-xl-4\":\"mb-xl-4\",\"ml-xl-4\":\"ml-xl-4\",\"m-xl-5\":\"m-xl-5\",\"mt-xl-5\":\"mt-xl-5\",\"my-xl-5\":\"my-xl-5\",\"mr-xl-5\":\"mr-xl-5\",\"mx-xl-5\":\"mx-xl-5\",\"mb-xl-5\":\"mb-xl-5\",\"ml-xl-5\":\"ml-xl-5\",\"p-xl-0\":\"p-xl-0\",\"pt-xl-0\":\"pt-xl-0\",\"py-xl-0\":\"py-xl-0\",\"pr-xl-0\":\"pr-xl-0\",\"px-xl-0\":\"px-xl-0\",\"pb-xl-0\":\"pb-xl-0\",\"pl-xl-0\":\"pl-xl-0\",\"p-xl-1\":\"p-xl-1\",\"pt-xl-1\":\"pt-xl-1\",\"py-xl-1\":\"py-xl-1\",\"pr-xl-1\":\"pr-xl-1\",\"px-xl-1\":\"px-xl-1\",\"pb-xl-1\":\"pb-xl-1\",\"pl-xl-1\":\"pl-xl-1\",\"p-xl-2\":\"p-xl-2\",\"pt-xl-2\":\"pt-xl-2\",\"py-xl-2\":\"py-xl-2\",\"pr-xl-2\":\"pr-xl-2\",\"px-xl-2\":\"px-xl-2\",\"pb-xl-2\":\"pb-xl-2\",\"pl-xl-2\":\"pl-xl-2\",\"p-xl-3\":\"p-xl-3\",\"pt-xl-3\":\"pt-xl-3\",\"py-xl-3\":\"py-xl-3\",\"pr-xl-3\":\"pr-xl-3\",\"px-xl-3\":\"px-xl-3\",\"pb-xl-3\":\"pb-xl-3\",\"pl-xl-3\":\"pl-xl-3\",\"p-xl-4\":\"p-xl-4\",\"pt-xl-4\":\"pt-xl-4\",\"py-xl-4\":\"py-xl-4\",\"pr-xl-4\":\"pr-xl-4\",\"px-xl-4\":\"px-xl-4\",\"pb-xl-4\":\"pb-xl-4\",\"pl-xl-4\":\"pl-xl-4\",\"p-xl-5\":\"p-xl-5\",\"pt-xl-5\":\"pt-xl-5\",\"py-xl-5\":\"py-xl-5\",\"pr-xl-5\":\"pr-xl-5\",\"px-xl-5\":\"px-xl-5\",\"pb-xl-5\":\"pb-xl-5\",\"pl-xl-5\":\"pl-xl-5\",\"m-xl-n1\":\"m-xl-n1\",\"mt-xl-n1\":\"mt-xl-n1\",\"my-xl-n1\":\"my-xl-n1\",\"mr-xl-n1\":\"mr-xl-n1\",\"mx-xl-n1\":\"mx-xl-n1\",\"mb-xl-n1\":\"mb-xl-n1\",\"ml-xl-n1\":\"ml-xl-n1\",\"m-xl-n2\":\"m-xl-n2\",\"mt-xl-n2\":\"mt-xl-n2\",\"my-xl-n2\":\"my-xl-n2\",\"mr-xl-n2\":\"mr-xl-n2\",\"mx-xl-n2\":\"mx-xl-n2\",\"mb-xl-n2\":\"mb-xl-n2\",\"ml-xl-n2\":\"ml-xl-n2\",\"m-xl-n3\":\"m-xl-n3\",\"mt-xl-n3\":\"mt-xl-n3\",\"my-xl-n3\":\"my-xl-n3\",\"mr-xl-n3\":\"mr-xl-n3\",\"mx-xl-n3\":\"mx-xl-n3\",\"mb-xl-n3\":\"mb-xl-n3\",\"ml-xl-n3\":\"ml-xl-n3\",\"m-xl-n4\":\"m-xl-n4\",\"mt-xl-n4\":\"mt-xl-n4\",\"my-xl-n4\":\"my-xl-n4\",\"mr-xl-n4\":\"mr-xl-n4\",\"mx-xl-n4\":\"mx-xl-n4\",\"mb-xl-n4\":\"mb-xl-n4\",\"ml-xl-n4\":\"ml-xl-n4\",\"m-xl-n5\":\"m-xl-n5\",\"mt-xl-n5\":\"mt-xl-n5\",\"my-xl-n5\":\"my-xl-n5\",\"mr-xl-n5\":\"mr-xl-n5\",\"mx-xl-n5\":\"mx-xl-n5\",\"mb-xl-n5\":\"mb-xl-n5\",\"ml-xl-n5\":\"ml-xl-n5\",\"m-xl-auto\":\"m-xl-auto\",\"mt-xl-auto\":\"mt-xl-auto\",\"my-xl-auto\":\"my-xl-auto\",\"mr-xl-auto\":\"mr-xl-auto\",\"mx-xl-auto\":\"mx-xl-auto\",\"mb-xl-auto\":\"mb-xl-auto\",\"ml-xl-auto\":\"ml-xl-auto\",\"sr-only\":\"sr-only\",\"sr-only-focusable\":\"sr-only-focusable\",\"assets-grid\":\"assets-grid\",\"asset-grid-item\":\"asset-grid-item\",\"asset-preview\":\"asset-preview\",\"selected\":\"selected\",\"asset-name\":\"asset-name\",\"file-type-badge\":\"file-type-badge\",\"asset-thumbnail\":\"asset-thumbnail\",\"asset-icon\":\"asset-icon\",\"asset-info\":\"asset-info\",\"asset-size\":\"asset-size\",\"assets-list-image-preview-container\":\"assets-list-image-preview-container\",\"assets-list-image-preview-image\":\"assets-list-image-preview-image\",\"list-header\":\"list-header\",\"no-image-preview\":\"no-image-preview\",\"unbulleted-list-item\":\"unbulleted-list-item\"};","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n assetsListNoPreview: {\n id: 'assetsListNoPreview',\n defaultMessage: 'Preview not available',\n description: 'Label shown when no preview is available',\n },\n assetsListNameLabel: {\n id: 'assetsListNameLabel',\n defaultMessage: 'Name',\n description: 'Label for column header',\n },\n assetsListDateLabel: {\n id: 'assetsListDateLabel',\n defaultMessage: 'Date Added',\n description: 'Label for column header',\n },\n});\n\nexport default messages;\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\nimport messages from './displayMessages';\nimport styles from './AssetsList.scss';\n\nconst initialState = {\n selectedAssetIndex: -1,\n selectedAssetPage: -1,\n};\n\nexport default class AssetsList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ...initialState,\n };\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.onAssetClick = this.onAssetClick.bind(this);\n this.onListBoxFocus = this.onListBoxFocus.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n // if page has changed, reset the index of the selected index\n if (this.props.paginationMetadata.page !== nextProps.paginationMetadata.page) {\n if (nextProps.paginationMetadata.page === this.state.selectedAssetPage) {\n this.setState({\n selectedAssetIndex: this.getSelectedAssetIndex(nextProps.assetsList,\n nextProps.selectedAsset),\n });\n } else {\n this.setState({\n selectedAssetIndex: -1,\n });\n }\n }\n\n /*\n if the selectedAsset is set to empty object, reset selectedAssetIndex; this is to\n handle the case when the EditImageModal closes\n */\n if (Object.keys(this.props.selectedAsset).length !== 0 &&\n Object.keys(nextProps.selectedAsset).length === 0) {\n this.setState({\n ...initialState,\n });\n }\n }\n\n onAssetClick = (asset, index) => {\n this.setState({\n selectedAssetIndex: index,\n selectedAssetPage: this.props.paginationMetadata.page,\n });\n\n this.props.selectAsset(asset);\n }\n\n onListBoxFocus = () => {\n // if no list item is selected, select first item on listbox focus\n if (this.state.selectedAssetIndex === -1) {\n this.setState(\n { selectedAssetIndex: 0,\n selectedAssetPage: this.props.paginationMetadata.page,\n },\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n }\n\n getFileExtension = (displayName) => {\n if (!displayName) return '';\n const lastDot = displayName.lastIndexOf('.');\n if (lastDot === -1 || lastDot === displayName.length - 1) {\n return 'file';\n }\n return displayName.substring(lastDot + 1).toLowerCase();\n }\n\n formatFileSize = (bytes) => {\n if (!bytes || bytes === 0) return '';\n const units = ['B', 'KB', 'MB', 'GB'];\n const k = 1024;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const size = (bytes / Math.pow(k, i)).toFixed(i === 0 ? 0 : 1);\n return `${size} ${units[i]}`;\n }\n\n getAssetGridItem = (asset, index) => {\n const isSelected = this.props.selectedAsset.id === asset.id;\n const baseUrl = this.props.courseDetails.base_url || '';\n const fileExt = this.getFileExtension(asset.display_name);\n const fileSize = this.formatFileSize(asset.file_size);\n\n return (\n <div\n onMouseDown={(e) => { e.preventDefault(); this.onAssetClick(asset, index); }}\n className={classNames(styles['asset-grid-item'], { [styles.selected]: isSelected })}\n id={`asset-list-option-${index}`}\n aria-selected={isSelected}\n role=\"option\"\n key={asset.id || asset.display_name}\n tabIndex=\"-1\"\n >\n <div className={styles['asset-preview']}>\n <span className={styles['file-type-badge']}>{fileExt}</span>\n {asset.thumbnail ? (\n <img\n className={styles['asset-thumbnail']}\n src={`${baseUrl}${asset.thumbnail}`}\n alt=\"\"\n />\n ) : (\n <div className={styles['asset-icon']}>\n <i className=\"far fa-image\" />\n </div>\n )}\n </div>\n <div className={styles['asset-info']}>\n <div className={classNames(styles['asset-name'], { [styles.selected]: isSelected })} title={asset.display_name}>\n {asset.display_name}\n </div>\n {fileSize && (\n <div className={styles['asset-size']}>\n {fileSize}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n getSelectedAssetIndex = (assetsList, selectedAsset) => (assetsList.findIndex(\n asset => asset.id === selectedAsset.id));\n\n handleKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowRight': {\n e.preventDefault();\n if (this.state.selectedAssetIndex < this.props.assetsList.length - 1) {\n this.setState(\n (state, props) => ({\n selectedAssetIndex: this.state.selectedAssetIndex + 1,\n selectedAssetPage: props.paginationMetadata.page,\n }),\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n if (this.state.selectedAssetIndex > 0) {\n this.setState(\n (state, props) => ({\n selectedAssetIndex: this.state.selectedAssetIndex - 1,\n selectedAssetPage: props.paginationMetadata.page,\n }),\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n break;\n }\n default:\n }\n }\n\n render = () => {\n const assetsGridItems = this.props.assetsList.map((asset, index) =>\n this.getAssetGridItem(asset, index));\n\n return (\n <div\n aria-activedescendant={this.state.selectedAssetIndex > -1 ? `asset-list-option-${this.state.selectedAssetIndex}` : null}\n className={styles['assets-grid']}\n onFocus={this.onListBoxFocus}\n onKeyDown={this.handleKeyDown}\n role=\"listbox\"\n tabIndex=\"0\"\n >\n {assetsGridItems}\n </div>\n );\n };\n}\n\nAssetsList.propTypes = {\n assetsList: PropTypes.arrayOf(PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n file_size: PropTypes.number,\n })).isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n base_url: PropTypes.string,\n }).isRequired,\n paginationMetadata: PropTypes.shape({\n start: PropTypes.number,\n end: PropTypes.number,\n page: PropTypes.number,\n pageSize: PropTypes.number,\n totalCount: PropTypes.number,\n }).isRequired,\n selectAsset: PropTypes.func.isRequired,\n selectedAsset: PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n file_size: PropTypes.number,\n }).isRequired,\n};\n","import { connect } from 'react-redux';\n\nimport AssetsList from '.';\nimport { selectAsset } from '../../data/actions/assets';\n\nconst mapStateToProps = state => ({\n assetsList: state.assets,\n courseDetails: state.studioDetails.course,\n courseImageAccessibilityDocs: state.studioDetails.help_tokens.image_accessibility,\n paginationMetadata: state.metadata.pagination,\n selectedAsset: state.metadata.select.selectedAsset,\n selectedAssetIndex: state.metadata.select.selectedAssetIndex,\n});\n\nconst mapDispatchToProps = dispatch => ({\n selectAsset: (asset, index) => dispatch(selectAsset(asset, index)),\n});\n\nconst WrappedAssetsList = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(AssetsList);\n\nexport default WrappedAssetsList;\n","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n assetsClearSearchButtonLabel: {\n id: 'assetsClearSearchButtonLabel',\n defaultMessage: 'Clear search',\n description: 'Label for a button that clears the search applied to a table.',\n },\n});\n\nexport default messages;\n","import { Button } from '@edx/paragon';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport messages from './displayMessages';\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\n\n\nconst AssetsClearSearchButton = ({ clearSearch, courseDetails }) => (\n <Button\n buttonType=\"link\"\n onClick={() => clearSearch(courseDetails)}\n label={\n <WrappedMessage message={messages.assetsClearSearchButtonLabel} />\n }\n />\n);\n\nAssetsClearSearchButton.propTypes = {\n clearSearch: PropTypes.func.isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n }).isRequired,\n};\n\nexport default AssetsClearSearchButton;\n","import { connect } from 'react-redux';\n\nimport AssetsClearSearchButton from '.';\nimport { searchUpdate } from '../../data/actions/assets';\n\nconst mapStateToProps = state => ({\n courseDetails: state.studioDetails.course,\n});\n\nconst mapDispatchToProps = dispatch => ({\n clearSearch: courseDetails => dispatch(searchUpdate('', courseDetails)),\n});\n\nconst WrappedAssetsClearSearchButton = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(AssetsClearSearchButton);\n\nexport default WrappedAssetsClearSearchButton;\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"root\",\"SFE\":\"SFE\",\"m-0\":\"m-0\",\"mt-0\":\"mt-0\",\"my-0\":\"my-0\",\"mr-0\":\"mr-0\",\"mx-0\":\"mx-0\",\"mb-0\":\"mb-0\",\"ml-0\":\"ml-0\",\"m-1\":\"m-1\",\"mt-1\":\"mt-1\",\"my-1\":\"my-1\",\"mr-1\":\"mr-1\",\"mx-1\":\"mx-1\",\"mb-1\":\"mb-1\",\"ml-1\":\"ml-1\",\"m-2\":\"m-2\",\"mt-2\":\"mt-2\",\"my-2\":\"my-2\",\"mr-2\":\"mr-2\",\"mx-2\":\"mx-2\",\"mb-2\":\"mb-2\",\"ml-2\":\"ml-2\",\"m-3\":\"m-3\",\"mt-3\":\"mt-3\",\"my-3\":\"my-3\",\"mr-3\":\"mr-3\",\"mx-3\":\"mx-3\",\"mb-3\":\"mb-3\",\"ml-3\":\"ml-3\",\"m-4\":\"m-4\",\"mt-4\":\"mt-4\",\"my-4\":\"my-4\",\"mr-4\":\"mr-4\",\"mx-4\":\"mx-4\",\"mb-4\":\"mb-4\",\"paragon-fieldset\":\"paragon-fieldset\",\"ml-4\":\"ml-4\",\"m-5\":\"m-5\",\"mt-5\":\"mt-5\",\"my-5\":\"my-5\",\"mr-5\":\"mr-5\",\"mx-5\":\"mx-5\",\"mb-5\":\"mb-5\",\"ml-5\":\"ml-5\",\"p-0\":\"p-0\",\"pt-0\":\"pt-0\",\"py-0\":\"py-0\",\"pr-0\":\"pr-0\",\"px-0\":\"px-0\",\"pb-0\":\"pb-0\",\"pl-0\":\"pl-0\",\"p-1\":\"p-1\",\"pt-1\":\"pt-1\",\"py-1\":\"py-1\",\"pr-1\":\"pr-1\",\"px-1\":\"px-1\",\"pb-1\":\"pb-1\",\"pl-1\":\"pl-1\",\"p-2\":\"p-2\",\"pt-2\":\"pt-2\",\"py-2\":\"py-2\",\"pr-2\":\"pr-2\",\"px-2\":\"px-2\",\"pb-2\":\"pb-2\",\"pl-2\":\"pl-2\",\"p-3\":\"p-3\",\"image-preview-placeholder\":\"image-preview-placeholder\",\"pt-3\":\"pt-3\",\"py-3\":\"py-3\",\"or-fields\":\"or-fields\",\"pr-3\":\"pr-3\",\"px-3\":\"px-3\",\"pb-3\":\"pb-3\",\"pl-3\":\"pl-3\",\"p-4\":\"p-4\",\"pt-4\":\"pt-4\",\"py-4\":\"py-4\",\"pr-4\":\"pr-4\",\"px-4\":\"px-4\",\"pb-4\":\"pb-4\",\"pl-4\":\"pl-4\",\"p-5\":\"p-5\",\"pt-5\":\"pt-5\",\"py-5\":\"py-5\",\"pr-5\":\"pr-5\",\"px-5\":\"px-5\",\"pb-5\":\"pb-5\",\"pl-5\":\"pl-5\",\"m-n1\":\"m-n1\",\"mt-n1\":\"mt-n1\",\"my-n1\":\"my-n1\",\"mr-n1\":\"mr-n1\",\"mx-n1\":\"mx-n1\",\"mb-n1\":\"mb-n1\",\"ml-n1\":\"ml-n1\",\"m-n2\":\"m-n2\",\"mt-n2\":\"mt-n2\",\"my-n2\":\"my-n2\",\"mr-n2\":\"mr-n2\",\"mx-n2\":\"mx-n2\",\"mb-n2\":\"mb-n2\",\"ml-n2\":\"ml-n2\",\"m-n3\":\"m-n3\",\"mt-n3\":\"mt-n3\",\"my-n3\":\"my-n3\",\"mr-n3\":\"mr-n3\",\"mx-n3\":\"mx-n3\",\"mb-n3\":\"mb-n3\",\"ml-n3\":\"ml-n3\",\"m-n4\":\"m-n4\",\"mt-n4\":\"mt-n4\",\"my-n4\":\"my-n4\",\"mr-n4\":\"mr-n4\",\"mx-n4\":\"mx-n4\",\"mb-n4\":\"mb-n4\",\"ml-n4\":\"ml-n4\",\"m-n5\":\"m-n5\",\"mt-n5\":\"mt-n5\",\"my-n5\":\"my-n5\",\"mr-n5\":\"mr-n5\",\"mx-n5\":\"mx-n5\",\"mb-n5\":\"mb-n5\",\"ml-n5\":\"ml-n5\",\"m-auto\":\"m-auto\",\"mt-auto\":\"mt-auto\",\"my-auto\":\"my-auto\",\"mr-auto\":\"mr-auto\",\"mx-auto\":\"mx-auto\",\"mb-auto\":\"mb-auto\",\"ml-auto\":\"ml-auto\",\"m-sm-0\":\"m-sm-0\",\"mt-sm-0\":\"mt-sm-0\",\"my-sm-0\":\"my-sm-0\",\"mr-sm-0\":\"mr-sm-0\",\"mx-sm-0\":\"mx-sm-0\",\"mb-sm-0\":\"mb-sm-0\",\"ml-sm-0\":\"ml-sm-0\",\"m-sm-1\":\"m-sm-1\",\"mt-sm-1\":\"mt-sm-1\",\"my-sm-1\":\"my-sm-1\",\"mr-sm-1\":\"mr-sm-1\",\"mx-sm-1\":\"mx-sm-1\",\"mb-sm-1\":\"mb-sm-1\",\"ml-sm-1\":\"ml-sm-1\",\"m-sm-2\":\"m-sm-2\",\"mt-sm-2\":\"mt-sm-2\",\"my-sm-2\":\"my-sm-2\",\"mr-sm-2\":\"mr-sm-2\",\"mx-sm-2\":\"mx-sm-2\",\"mb-sm-2\":\"mb-sm-2\",\"ml-sm-2\":\"ml-sm-2\",\"m-sm-3\":\"m-sm-3\",\"mt-sm-3\":\"mt-sm-3\",\"my-sm-3\":\"my-sm-3\",\"mr-sm-3\":\"mr-sm-3\",\"mx-sm-3\":\"mx-sm-3\",\"mb-sm-3\":\"mb-sm-3\",\"ml-sm-3\":\"ml-sm-3\",\"m-sm-4\":\"m-sm-4\",\"mt-sm-4\":\"mt-sm-4\",\"my-sm-4\":\"my-sm-4\",\"mr-sm-4\":\"mr-sm-4\",\"mx-sm-4\":\"mx-sm-4\",\"mb-sm-4\":\"mb-sm-4\",\"ml-sm-4\":\"ml-sm-4\",\"m-sm-5\":\"m-sm-5\",\"mt-sm-5\":\"mt-sm-5\",\"my-sm-5\":\"my-sm-5\",\"mr-sm-5\":\"mr-sm-5\",\"mx-sm-5\":\"mx-sm-5\",\"mb-sm-5\":\"mb-sm-5\",\"ml-sm-5\":\"ml-sm-5\",\"p-sm-0\":\"p-sm-0\",\"pt-sm-0\":\"pt-sm-0\",\"py-sm-0\":\"py-sm-0\",\"pr-sm-0\":\"pr-sm-0\",\"px-sm-0\":\"px-sm-0\",\"pb-sm-0\":\"pb-sm-0\",\"pl-sm-0\":\"pl-sm-0\",\"p-sm-1\":\"p-sm-1\",\"pt-sm-1\":\"pt-sm-1\",\"py-sm-1\":\"py-sm-1\",\"pr-sm-1\":\"pr-sm-1\",\"px-sm-1\":\"px-sm-1\",\"pb-sm-1\":\"pb-sm-1\",\"pl-sm-1\":\"pl-sm-1\",\"p-sm-2\":\"p-sm-2\",\"pt-sm-2\":\"pt-sm-2\",\"py-sm-2\":\"py-sm-2\",\"pr-sm-2\":\"pr-sm-2\",\"px-sm-2\":\"px-sm-2\",\"pb-sm-2\":\"pb-sm-2\",\"pl-sm-2\":\"pl-sm-2\",\"p-sm-3\":\"p-sm-3\",\"pt-sm-3\":\"pt-sm-3\",\"py-sm-3\":\"py-sm-3\",\"pr-sm-3\":\"pr-sm-3\",\"px-sm-3\":\"px-sm-3\",\"pb-sm-3\":\"pb-sm-3\",\"pl-sm-3\":\"pl-sm-3\",\"p-sm-4\":\"p-sm-4\",\"pt-sm-4\":\"pt-sm-4\",\"py-sm-4\":\"py-sm-4\",\"pr-sm-4\":\"pr-sm-4\",\"px-sm-4\":\"px-sm-4\",\"pb-sm-4\":\"pb-sm-4\",\"pl-sm-4\":\"pl-sm-4\",\"p-sm-5\":\"p-sm-5\",\"pt-sm-5\":\"pt-sm-5\",\"py-sm-5\":\"py-sm-5\",\"pr-sm-5\":\"pr-sm-5\",\"px-sm-5\":\"px-sm-5\",\"pb-sm-5\":\"pb-sm-5\",\"pl-sm-5\":\"pl-sm-5\",\"m-sm-n1\":\"m-sm-n1\",\"mt-sm-n1\":\"mt-sm-n1\",\"my-sm-n1\":\"my-sm-n1\",\"mr-sm-n1\":\"mr-sm-n1\",\"mx-sm-n1\":\"mx-sm-n1\",\"mb-sm-n1\":\"mb-sm-n1\",\"ml-sm-n1\":\"ml-sm-n1\",\"m-sm-n2\":\"m-sm-n2\",\"mt-sm-n2\":\"mt-sm-n2\",\"my-sm-n2\":\"my-sm-n2\",\"mr-sm-n2\":\"mr-sm-n2\",\"mx-sm-n2\":\"mx-sm-n2\",\"mb-sm-n2\":\"mb-sm-n2\",\"ml-sm-n2\":\"ml-sm-n2\",\"m-sm-n3\":\"m-sm-n3\",\"mt-sm-n3\":\"mt-sm-n3\",\"my-sm-n3\":\"my-sm-n3\",\"mr-sm-n3\":\"mr-sm-n3\",\"mx-sm-n3\":\"mx-sm-n3\",\"mb-sm-n3\":\"mb-sm-n3\",\"ml-sm-n3\":\"ml-sm-n3\",\"m-sm-n4\":\"m-sm-n4\",\"mt-sm-n4\":\"mt-sm-n4\",\"my-sm-n4\":\"my-sm-n4\",\"mr-sm-n4\":\"mr-sm-n4\",\"mx-sm-n4\":\"mx-sm-n4\",\"mb-sm-n4\":\"mb-sm-n4\",\"ml-sm-n4\":\"ml-sm-n4\",\"m-sm-n5\":\"m-sm-n5\",\"mt-sm-n5\":\"mt-sm-n5\",\"my-sm-n5\":\"my-sm-n5\",\"mr-sm-n5\":\"mr-sm-n5\",\"mx-sm-n5\":\"mx-sm-n5\",\"mb-sm-n5\":\"mb-sm-n5\",\"ml-sm-n5\":\"ml-sm-n5\",\"m-sm-auto\":\"m-sm-auto\",\"mt-sm-auto\":\"mt-sm-auto\",\"my-sm-auto\":\"my-sm-auto\",\"mr-sm-auto\":\"mr-sm-auto\",\"mx-sm-auto\":\"mx-sm-auto\",\"mb-sm-auto\":\"mb-sm-auto\",\"ml-sm-auto\":\"ml-sm-auto\",\"m-md-0\":\"m-md-0\",\"mt-md-0\":\"mt-md-0\",\"my-md-0\":\"my-md-0\",\"mr-md-0\":\"mr-md-0\",\"mx-md-0\":\"mx-md-0\",\"mb-md-0\":\"mb-md-0\",\"ml-md-0\":\"ml-md-0\",\"m-md-1\":\"m-md-1\",\"mt-md-1\":\"mt-md-1\",\"my-md-1\":\"my-md-1\",\"mr-md-1\":\"mr-md-1\",\"mx-md-1\":\"mx-md-1\",\"mb-md-1\":\"mb-md-1\",\"ml-md-1\":\"ml-md-1\",\"m-md-2\":\"m-md-2\",\"mt-md-2\":\"mt-md-2\",\"my-md-2\":\"my-md-2\",\"mr-md-2\":\"mr-md-2\",\"mx-md-2\":\"mx-md-2\",\"mb-md-2\":\"mb-md-2\",\"ml-md-2\":\"ml-md-2\",\"m-md-3\":\"m-md-3\",\"mt-md-3\":\"mt-md-3\",\"my-md-3\":\"my-md-3\",\"mr-md-3\":\"mr-md-3\",\"mx-md-3\":\"mx-md-3\",\"mb-md-3\":\"mb-md-3\",\"ml-md-3\":\"ml-md-3\",\"m-md-4\":\"m-md-4\",\"mt-md-4\":\"mt-md-4\",\"my-md-4\":\"my-md-4\",\"mr-md-4\":\"mr-md-4\",\"mx-md-4\":\"mx-md-4\",\"mb-md-4\":\"mb-md-4\",\"ml-md-4\":\"ml-md-4\",\"m-md-5\":\"m-md-5\",\"mt-md-5\":\"mt-md-5\",\"my-md-5\":\"my-md-5\",\"mr-md-5\":\"mr-md-5\",\"mx-md-5\":\"mx-md-5\",\"mb-md-5\":\"mb-md-5\",\"ml-md-5\":\"ml-md-5\",\"p-md-0\":\"p-md-0\",\"pt-md-0\":\"pt-md-0\",\"py-md-0\":\"py-md-0\",\"pr-md-0\":\"pr-md-0\",\"px-md-0\":\"px-md-0\",\"pb-md-0\":\"pb-md-0\",\"pl-md-0\":\"pl-md-0\",\"p-md-1\":\"p-md-1\",\"pt-md-1\":\"pt-md-1\",\"py-md-1\":\"py-md-1\",\"pr-md-1\":\"pr-md-1\",\"px-md-1\":\"px-md-1\",\"pb-md-1\":\"pb-md-1\",\"pl-md-1\":\"pl-md-1\",\"p-md-2\":\"p-md-2\",\"pt-md-2\":\"pt-md-2\",\"py-md-2\":\"py-md-2\",\"pr-md-2\":\"pr-md-2\",\"px-md-2\":\"px-md-2\",\"pb-md-2\":\"pb-md-2\",\"pl-md-2\":\"pl-md-2\",\"p-md-3\":\"p-md-3\",\"pt-md-3\":\"pt-md-3\",\"py-md-3\":\"py-md-3\",\"pr-md-3\":\"pr-md-3\",\"px-md-3\":\"px-md-3\",\"pb-md-3\":\"pb-md-3\",\"pl-md-3\":\"pl-md-3\",\"p-md-4\":\"p-md-4\",\"pt-md-4\":\"pt-md-4\",\"py-md-4\":\"py-md-4\",\"pr-md-4\":\"pr-md-4\",\"px-md-4\":\"px-md-4\",\"pb-md-4\":\"pb-md-4\",\"pl-md-4\":\"pl-md-4\",\"p-md-5\":\"p-md-5\",\"pt-md-5\":\"pt-md-5\",\"py-md-5\":\"py-md-5\",\"pr-md-5\":\"pr-md-5\",\"px-md-5\":\"px-md-5\",\"pb-md-5\":\"pb-md-5\",\"pl-md-5\":\"pl-md-5\",\"m-md-n1\":\"m-md-n1\",\"mt-md-n1\":\"mt-md-n1\",\"my-md-n1\":\"my-md-n1\",\"mr-md-n1\":\"mr-md-n1\",\"mx-md-n1\":\"mx-md-n1\",\"mb-md-n1\":\"mb-md-n1\",\"ml-md-n1\":\"ml-md-n1\",\"m-md-n2\":\"m-md-n2\",\"mt-md-n2\":\"mt-md-n2\",\"my-md-n2\":\"my-md-n2\",\"mr-md-n2\":\"mr-md-n2\",\"mx-md-n2\":\"mx-md-n2\",\"mb-md-n2\":\"mb-md-n2\",\"ml-md-n2\":\"ml-md-n2\",\"m-md-n3\":\"m-md-n3\",\"mt-md-n3\":\"mt-md-n3\",\"my-md-n3\":\"my-md-n3\",\"mr-md-n3\":\"mr-md-n3\",\"mx-md-n3\":\"mx-md-n3\",\"mb-md-n3\":\"mb-md-n3\",\"ml-md-n3\":\"ml-md-n3\",\"m-md-n4\":\"m-md-n4\",\"mt-md-n4\":\"mt-md-n4\",\"my-md-n4\":\"my-md-n4\",\"mr-md-n4\":\"mr-md-n4\",\"mx-md-n4\":\"mx-md-n4\",\"mb-md-n4\":\"mb-md-n4\",\"ml-md-n4\":\"ml-md-n4\",\"m-md-n5\":\"m-md-n5\",\"mt-md-n5\":\"mt-md-n5\",\"my-md-n5\":\"my-md-n5\",\"mr-md-n5\":\"mr-md-n5\",\"mx-md-n5\":\"mx-md-n5\",\"mb-md-n5\":\"mb-md-n5\",\"ml-md-n5\":\"ml-md-n5\",\"m-md-auto\":\"m-md-auto\",\"mt-md-auto\":\"mt-md-auto\",\"my-md-auto\":\"my-md-auto\",\"mr-md-auto\":\"mr-md-auto\",\"mx-md-auto\":\"mx-md-auto\",\"mb-md-auto\":\"mb-md-auto\",\"ml-md-auto\":\"ml-md-auto\",\"m-lg-0\":\"m-lg-0\",\"mt-lg-0\":\"mt-lg-0\",\"my-lg-0\":\"my-lg-0\",\"mr-lg-0\":\"mr-lg-0\",\"mx-lg-0\":\"mx-lg-0\",\"mb-lg-0\":\"mb-lg-0\",\"ml-lg-0\":\"ml-lg-0\",\"m-lg-1\":\"m-lg-1\",\"mt-lg-1\":\"mt-lg-1\",\"my-lg-1\":\"my-lg-1\",\"mr-lg-1\":\"mr-lg-1\",\"mx-lg-1\":\"mx-lg-1\",\"mb-lg-1\":\"mb-lg-1\",\"ml-lg-1\":\"ml-lg-1\",\"m-lg-2\":\"m-lg-2\",\"mt-lg-2\":\"mt-lg-2\",\"my-lg-2\":\"my-lg-2\",\"mr-lg-2\":\"mr-lg-2\",\"mx-lg-2\":\"mx-lg-2\",\"mb-lg-2\":\"mb-lg-2\",\"ml-lg-2\":\"ml-lg-2\",\"m-lg-3\":\"m-lg-3\",\"mt-lg-3\":\"mt-lg-3\",\"my-lg-3\":\"my-lg-3\",\"mr-lg-3\":\"mr-lg-3\",\"mx-lg-3\":\"mx-lg-3\",\"mb-lg-3\":\"mb-lg-3\",\"ml-lg-3\":\"ml-lg-3\",\"m-lg-4\":\"m-lg-4\",\"mt-lg-4\":\"mt-lg-4\",\"my-lg-4\":\"my-lg-4\",\"mr-lg-4\":\"mr-lg-4\",\"mx-lg-4\":\"mx-lg-4\",\"mb-lg-4\":\"mb-lg-4\",\"ml-lg-4\":\"ml-lg-4\",\"m-lg-5\":\"m-lg-5\",\"mt-lg-5\":\"mt-lg-5\",\"my-lg-5\":\"my-lg-5\",\"mr-lg-5\":\"mr-lg-5\",\"mx-lg-5\":\"mx-lg-5\",\"mb-lg-5\":\"mb-lg-5\",\"ml-lg-5\":\"ml-lg-5\",\"p-lg-0\":\"p-lg-0\",\"pt-lg-0\":\"pt-lg-0\",\"py-lg-0\":\"py-lg-0\",\"pr-lg-0\":\"pr-lg-0\",\"px-lg-0\":\"px-lg-0\",\"pb-lg-0\":\"pb-lg-0\",\"pl-lg-0\":\"pl-lg-0\",\"p-lg-1\":\"p-lg-1\",\"pt-lg-1\":\"pt-lg-1\",\"py-lg-1\":\"py-lg-1\",\"pr-lg-1\":\"pr-lg-1\",\"px-lg-1\":\"px-lg-1\",\"pb-lg-1\":\"pb-lg-1\",\"pl-lg-1\":\"pl-lg-1\",\"p-lg-2\":\"p-lg-2\",\"pt-lg-2\":\"pt-lg-2\",\"py-lg-2\":\"py-lg-2\",\"pr-lg-2\":\"pr-lg-2\",\"px-lg-2\":\"px-lg-2\",\"pb-lg-2\":\"pb-lg-2\",\"pl-lg-2\":\"pl-lg-2\",\"p-lg-3\":\"p-lg-3\",\"pt-lg-3\":\"pt-lg-3\",\"py-lg-3\":\"py-lg-3\",\"pr-lg-3\":\"pr-lg-3\",\"px-lg-3\":\"px-lg-3\",\"pb-lg-3\":\"pb-lg-3\",\"pl-lg-3\":\"pl-lg-3\",\"p-lg-4\":\"p-lg-4\",\"pt-lg-4\":\"pt-lg-4\",\"py-lg-4\":\"py-lg-4\",\"pr-lg-4\":\"pr-lg-4\",\"px-lg-4\":\"px-lg-4\",\"pb-lg-4\":\"pb-lg-4\",\"pl-lg-4\":\"pl-lg-4\",\"p-lg-5\":\"p-lg-5\",\"pt-lg-5\":\"pt-lg-5\",\"py-lg-5\":\"py-lg-5\",\"pr-lg-5\":\"pr-lg-5\",\"px-lg-5\":\"px-lg-5\",\"pb-lg-5\":\"pb-lg-5\",\"pl-lg-5\":\"pl-lg-5\",\"m-lg-n1\":\"m-lg-n1\",\"mt-lg-n1\":\"mt-lg-n1\",\"my-lg-n1\":\"my-lg-n1\",\"mr-lg-n1\":\"mr-lg-n1\",\"mx-lg-n1\":\"mx-lg-n1\",\"mb-lg-n1\":\"mb-lg-n1\",\"ml-lg-n1\":\"ml-lg-n1\",\"m-lg-n2\":\"m-lg-n2\",\"mt-lg-n2\":\"mt-lg-n2\",\"my-lg-n2\":\"my-lg-n2\",\"mr-lg-n2\":\"mr-lg-n2\",\"mx-lg-n2\":\"mx-lg-n2\",\"mb-lg-n2\":\"mb-lg-n2\",\"ml-lg-n2\":\"ml-lg-n2\",\"m-lg-n3\":\"m-lg-n3\",\"mt-lg-n3\":\"mt-lg-n3\",\"my-lg-n3\":\"my-lg-n3\",\"mr-lg-n3\":\"mr-lg-n3\",\"mx-lg-n3\":\"mx-lg-n3\",\"mb-lg-n3\":\"mb-lg-n3\",\"ml-lg-n3\":\"ml-lg-n3\",\"m-lg-n4\":\"m-lg-n4\",\"mt-lg-n4\":\"mt-lg-n4\",\"my-lg-n4\":\"my-lg-n4\",\"mr-lg-n4\":\"mr-lg-n4\",\"mx-lg-n4\":\"mx-lg-n4\",\"mb-lg-n4\":\"mb-lg-n4\",\"ml-lg-n4\":\"ml-lg-n4\",\"m-lg-n5\":\"m-lg-n5\",\"mt-lg-n5\":\"mt-lg-n5\",\"my-lg-n5\":\"my-lg-n5\",\"mr-lg-n5\":\"mr-lg-n5\",\"mx-lg-n5\":\"mx-lg-n5\",\"mb-lg-n5\":\"mb-lg-n5\",\"ml-lg-n5\":\"ml-lg-n5\",\"m-lg-auto\":\"m-lg-auto\",\"mt-lg-auto\":\"mt-lg-auto\",\"my-lg-auto\":\"my-lg-auto\",\"mr-lg-auto\":\"mr-lg-auto\",\"mx-lg-auto\":\"mx-lg-auto\",\"mb-lg-auto\":\"mb-lg-auto\",\"ml-lg-auto\":\"ml-lg-auto\",\"m-xl-0\":\"m-xl-0\",\"mt-xl-0\":\"mt-xl-0\",\"my-xl-0\":\"my-xl-0\",\"mr-xl-0\":\"mr-xl-0\",\"mx-xl-0\":\"mx-xl-0\",\"mb-xl-0\":\"mb-xl-0\",\"ml-xl-0\":\"ml-xl-0\",\"m-xl-1\":\"m-xl-1\",\"mt-xl-1\":\"mt-xl-1\",\"my-xl-1\":\"my-xl-1\",\"mr-xl-1\":\"mr-xl-1\",\"mx-xl-1\":\"mx-xl-1\",\"mb-xl-1\":\"mb-xl-1\",\"ml-xl-1\":\"ml-xl-1\",\"m-xl-2\":\"m-xl-2\",\"mt-xl-2\":\"mt-xl-2\",\"my-xl-2\":\"my-xl-2\",\"mr-xl-2\":\"mr-xl-2\",\"mx-xl-2\":\"mx-xl-2\",\"mb-xl-2\":\"mb-xl-2\",\"ml-xl-2\":\"ml-xl-2\",\"m-xl-3\":\"m-xl-3\",\"mt-xl-3\":\"mt-xl-3\",\"my-xl-3\":\"my-xl-3\",\"mr-xl-3\":\"mr-xl-3\",\"mx-xl-3\":\"mx-xl-3\",\"mb-xl-3\":\"mb-xl-3\",\"ml-xl-3\":\"ml-xl-3\",\"m-xl-4\":\"m-xl-4\",\"mt-xl-4\":\"mt-xl-4\",\"my-xl-4\":\"my-xl-4\",\"mr-xl-4\":\"mr-xl-4\",\"mx-xl-4\":\"mx-xl-4\",\"mb-xl-4\":\"mb-xl-4\",\"ml-xl-4\":\"ml-xl-4\",\"m-xl-5\":\"m-xl-5\",\"mt-xl-5\":\"mt-xl-5\",\"my-xl-5\":\"my-xl-5\",\"mr-xl-5\":\"mr-xl-5\",\"mx-xl-5\":\"mx-xl-5\",\"mb-xl-5\":\"mb-xl-5\",\"ml-xl-5\":\"ml-xl-5\",\"p-xl-0\":\"p-xl-0\",\"pt-xl-0\":\"pt-xl-0\",\"py-xl-0\":\"py-xl-0\",\"pr-xl-0\":\"pr-xl-0\",\"px-xl-0\":\"px-xl-0\",\"pb-xl-0\":\"pb-xl-0\",\"pl-xl-0\":\"pl-xl-0\",\"p-xl-1\":\"p-xl-1\",\"pt-xl-1\":\"pt-xl-1\",\"py-xl-1\":\"py-xl-1\",\"pr-xl-1\":\"pr-xl-1\",\"px-xl-1\":\"px-xl-1\",\"pb-xl-1\":\"pb-xl-1\",\"pl-xl-1\":\"pl-xl-1\",\"p-xl-2\":\"p-xl-2\",\"pt-xl-2\":\"pt-xl-2\",\"py-xl-2\":\"py-xl-2\",\"pr-xl-2\":\"pr-xl-2\",\"px-xl-2\":\"px-xl-2\",\"pb-xl-2\":\"pb-xl-2\",\"pl-xl-2\":\"pl-xl-2\",\"p-xl-3\":\"p-xl-3\",\"pt-xl-3\":\"pt-xl-3\",\"py-xl-3\":\"py-xl-3\",\"pr-xl-3\":\"pr-xl-3\",\"px-xl-3\":\"px-xl-3\",\"pb-xl-3\":\"pb-xl-3\",\"pl-xl-3\":\"pl-xl-3\",\"p-xl-4\":\"p-xl-4\",\"pt-xl-4\":\"pt-xl-4\",\"py-xl-4\":\"py-xl-4\",\"pr-xl-4\":\"pr-xl-4\",\"px-xl-4\":\"px-xl-4\",\"pb-xl-4\":\"pb-xl-4\",\"pl-xl-4\":\"pl-xl-4\",\"p-xl-5\":\"p-xl-5\",\"pt-xl-5\":\"pt-xl-5\",\"py-xl-5\":\"py-xl-5\",\"pr-xl-5\":\"pr-xl-5\",\"px-xl-5\":\"px-xl-5\",\"pb-xl-5\":\"pb-xl-5\",\"pl-xl-5\":\"pl-xl-5\",\"m-xl-n1\":\"m-xl-n1\",\"mt-xl-n1\":\"mt-xl-n1\",\"my-xl-n1\":\"my-xl-n1\",\"mr-xl-n1\":\"mr-xl-n1\",\"mx-xl-n1\":\"mx-xl-n1\",\"mb-xl-n1\":\"mb-xl-n1\",\"ml-xl-n1\":\"ml-xl-n1\",\"m-xl-n2\":\"m-xl-n2\",\"mt-xl-n2\":\"mt-xl-n2\",\"my-xl-n2\":\"my-xl-n2\",\"mr-xl-n2\":\"mr-xl-n2\",\"mx-xl-n2\":\"mx-xl-n2\",\"mb-xl-n2\":\"mb-xl-n2\",\"ml-xl-n2\":\"ml-xl-n2\",\"m-xl-n3\":\"m-xl-n3\",\"mt-xl-n3\":\"mt-xl-n3\",\"my-xl-n3\":\"my-xl-n3\",\"mr-xl-n3\":\"mr-xl-n3\",\"mx-xl-n3\":\"mx-xl-n3\",\"mb-xl-n3\":\"mb-xl-n3\",\"ml-xl-n3\":\"ml-xl-n3\",\"m-xl-n4\":\"m-xl-n4\",\"mt-xl-n4\":\"mt-xl-n4\",\"my-xl-n4\":\"my-xl-n4\",\"mr-xl-n4\":\"mr-xl-n4\",\"mx-xl-n4\":\"mx-xl-n4\",\"mb-xl-n4\":\"mb-xl-n4\",\"ml-xl-n4\":\"ml-xl-n4\",\"m-xl-n5\":\"m-xl-n5\",\"mt-xl-n5\":\"mt-xl-n5\",\"my-xl-n5\":\"my-xl-n5\",\"mr-xl-n5\":\"mr-xl-n5\",\"mx-xl-n5\":\"mx-xl-n5\",\"mb-xl-n5\":\"mb-xl-n5\",\"ml-xl-n5\":\"ml-xl-n5\",\"m-xl-auto\":\"m-xl-auto\",\"mt-xl-auto\":\"mt-xl-auto\",\"my-xl-auto\":\"my-xl-auto\",\"mr-xl-auto\":\"mr-xl-auto\",\"mx-xl-auto\":\"mx-xl-auto\",\"mb-xl-auto\":\"mb-xl-auto\",\"ml-xl-auto\":\"ml-xl-auto\",\"sr-only\":\"sr-only\",\"sr-only-focusable\":\"sr-only-focusable\",\"modal-body\":\"modal-body\",\"row\":\"row\",\"modal-dialog\":\"modal-dialog\",\"form-control\":\"form-control\",\"is-invalid\":\"is-invalid\",\"is-invalid-nodanger\":\"is-invalid-nodanger\",\"image-preview-container\":\"image-preview-container\",\"image-preview-image\":\"image-preview-image\",\"image-dimensions-x\":\"image-dimensions-x\",\"invalid-feedback\":\"invalid-feedback\",\"form-group\":\"form-group\",\"form-text\":\"form-text\",\"form-row\":\"form-row\",\"col\":\"col\",\"form-check\":\"form-check\",\"form-check-input\":\"form-check-input\",\"form-check-label\":\"form-check-label\"};","// Utility method for replacing a portion of a string.\n// An ES6 copy of the same function in edx-platform:\n// https://github.com/edx/edx-platform/blob/d14ec65912ef3fb5bb3284b81ccdf60d59b34c87/common/static/js/src/utility.js#L21-L39\nexport default (content, from, to) => {\n if (from === null || to === null) {\n return content;\n }\n // replace only relative urls\n const replacer = (match) => {\n if (match === from) {\n return to;\n }\n return match;\n };\n // change all relative urls only which may be embedded inside other tags in content.\n // handle http and https\n // escape all regex interpretable chars\n const fromRe = from.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n // eslint-disable-next-line no-useless-escape\n const regex = new RegExp(`(https?://(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}([-a-zA-Z0-9@:%_\\+.~#?&//=]*))?${fromRe}`, 'g');\n return content.replace(regex, replacer);\n};\n","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n editImageModalAssetsListLoadingSpinner: {\n id: 'editImageModalAssetsListLoadingSpinner',\n defaultMessage: 'Loading spinner',\n description: 'Description of a loading spinner image shown when files are loading.',\n },\n editImageModalAssetsListNoAssetsMessage: {\n id: 'editImageModalAssetsListNoAssetsMessage',\n defaultMessage: '0 images uploaded',\n description: 'Message displayed when a course has no images to display in the list.',\n },\n editImageModalAssetsListNoResultsMessage: {\n id: 'editImageModalAssetsListNoResultsMessage',\n defaultMessage: '0 images found',\n description: 'Message displayed in table when no image results are found.',\n },\n editImageModalCancelButton: {\n id: 'editImageModalCancelButton',\n defaultMessage: 'Cancel',\n description: 'Button text to close the modal',\n },\n editImageModalFormError: {\n id: 'editImageModalFormError',\n defaultMessage: 'Error',\n description: 'Screenreader-only text describing an error icon in a validation message',\n },\n editImageModalFormErrorMissingFields: {\n id: 'editImageModalFormErrorMissingFields',\n defaultMessage: 'Make sure to fill in all fields.',\n description: 'Error message to instruct user to fill in all fields',\n },\n editImageModalFormValidImageDescription: {\n id: 'editImageModalFormValidImageDescription',\n defaultMessage: 'Add an image description or specify that the image is decorative only.',\n description: 'Error message for when an invalid image description is entered into the form',\n },\n editImageModalFormValidImageDimensions: {\n id: 'editImageModalFormValidImageDimensions',\n defaultMessage: 'Image dimensions must be positive numbers.',\n description: 'Error message displayed when invalid image dimension values are entered into a form',\n },\n editImageModalImageDescriptionDescription: {\n id: 'editImageModalImageDescriptionDescription',\n defaultMessage: 'Alternative text for users who cannot view the image, such as \"The sky with clouds\".',\n description: 'Description for the text input box for an image\\'s description',\n },\n editImageModalImageDescriptionLabel: {\n id: 'editImageModalImageDescriptionLabel',\n defaultMessage: 'Image Description (Alt Text)',\n description: 'Label for the text input box for an image\\'s description',\n },\n editImageModalImageDescriptionLegend: {\n id: 'editImageModalImageDescriptionLegend',\n defaultMessage: 'Image Description',\n description: 'Label for input section for an image\\'s description',\n },\n editImageModalDimensionsLegend: {\n id: 'editImageModalDimensionsLegend',\n defaultMessage: 'Image Dimensions',\n description: 'Label for the input section for an image\\'s dimensions',\n },\n editImageModalImageHeightLabel: {\n id: 'editImageModalImageHeight',\n defaultMessage: 'Height',\n description: 'Label for the text input box for an image\\'s height,',\n },\n editImageModalImagePreviewText: {\n id: 'editImageModalImagePreviewText',\n defaultMessage: 'Image Preview',\n description: 'Label for the image preview area',\n },\n editImageModalInsertImageButton: {\n id: 'editImageModalInsertImageButton',\n defaultMessage: 'Save',\n description: 'Text inside the Save button at the bottom of the modal',\n },\n editImageModalLearnMore: {\n id: 'editImageModalLearnMore',\n defaultMessage: 'Learn more.',\n description: 'Label for a link to additional documentation',\n },\n editImageModalLockImageProportionsCheckboxLabel: {\n id: 'editImageModalLockImageProportionsCheckboxLabel',\n defaultMessage: 'Lock proportions',\n description: 'Label for a checkbox that constrains an image\\'s proportions to its original aspect ratio',\n },\n editImageModalImageWidthLabel: {\n id: 'editImageModalImageWidth',\n defaultMessage: 'Width',\n description: 'Label for the text input box for an image\\'s width,',\n },\n editImageModalInsertTitle: {\n id: 'editImageModalInsertTitle',\n defaultMessage: 'Add an Image',\n description: 'Title of the modal used for adding an image',\n },\n editImageModalInsertHeader: {\n id: 'editImageModalInsertHeader',\n defaultMessage: 'Select a previously uploaded image',\n description: 'Header of the modal used for adding an image',\n },\n editImageModalEditTitle: {\n id: 'editImageModalEditTitle',\n defaultMessage: 'Edit Image Settings',\n description: 'Title of the modal used for editing image settings',\n },\n editImageModalNextPageButton: {\n id: 'editImageModalNextPageButton',\n defaultMessage: 'Next',\n description: 'Button text to go to the next screen',\n },\n editImageModalPreviousPageButton: {\n id: 'editImageModalPreviousPageButton',\n defaultMessage: 'Back',\n description: 'Button text to go to the previous screen',\n },\n editImageModalInvalidFileType: {\n id: 'editImageModalInvalidFileType',\n defaultMessage: 'Files must be images, such as .jpg, .png, and .tiff files. No files were uploaded.',\n description: 'Error message shown when an invalid file is selected for upload',\n },\n editImageModalTooManyFiles: {\n id: 'editImageModalTooManyFiles',\n defaultMessage: 'Only one file may be uploaded at a time. No files were uploaded.',\n description: 'Error message shown when too many files are selected for upload',\n },\n});\n\nexport default messages;\n","import { Button, Fieldset, Icon, InputText, Modal, StatusAlert, Variant } from '@edx/paragon';\nimport classNames from 'classnames';\nimport { connect } from 'react-redux';\nimport FontAwesomeStyles from 'font-awesome/css/font-awesome.min.css';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { assetActions } from '../../data/constants/actionTypes';\nimport AssetsResultsCount from '../AssetsResultsCount/index';\nimport { getPageType, pageTypes } from '../../utils/getAssetsPageType';\nimport messages from './displayMessages';\nimport rewriteStaticLinks from '../../utils/rewriteStaticLinks';\nimport styles from './EditImageModal.scss';\nimport WrappedAssetsClearSearchButton from '../AssetsClearSearchButton/container';\nimport WrappedAssetsDropZone from '../AssetsDropZone/container';\nimport WrappedAssetsList from '../AssetsList/container';\nimport WrappedAssetsSearch from '../AssetsSearch/container';\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\n\n\n// Create an AssetsResultsCount that is not aware of the Images filter.\n// This is so that the message will initially say \"out of N total files\" instead of \"out of N\n// possible matches\".\nconst WrappedAssetsResultsCount = connect((state) => {\n const { Images, ...typesWithoutImages } = state.metadata.filters.assetTypes;\n const filtersWithoutImages = { ...state.metadata.filters, assetTypes: typesWithoutImages };\n return {\n filtersMetadata: filtersWithoutImages,\n paginationMetadata: state.metadata.pagination,\n searchMetadata: state.metadata.search,\n };\n})(AssetsResultsCount);\n\nconst imageDescriptionID = 'imageDescription';\nconst imageDescriptionFieldsetID = 'imageDescriptionFieldset';\nconst imageDimensionsFieldsetID = 'imageDimensionsFieldset';\nconst imageHeightID = 'imageHeight';\nconst imageWidthID = 'imageWidth';\nconst modalWrapperID = 'modalWrapper';\n\nconst initialEditImageModalState = {\n areImageDimensionsValid: true,\n areProportionsLocked: true,\n assetsPageType: pageTypes.SKELETON,\n baseAssetURL: '',\n currentUploadErrorMessage: null,\n currentValidationMessages: {},\n displayLoadingSpinner: false,\n imageDescription: '',\n imageDimensions: {},\n imageSource: '',\n imageStyle: '',\n isImageDescriptionValid: true,\n isImageLoaded: false,\n isImageLoading: false,\n isImageDimensionsValid: true,\n isModalOpen: false,\n isStatusAlertOpen: false,\n pageNumber: 1,\n shouldShowPreviousButton: false,\n};\n\nexport default class EditImageModal extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { ...initialEditImageModalState };\n\n this.handleOpenModal = this.handleOpenModal.bind(this);\n this.onConstrainProportionsClick = this.onConstrainProportionsClick.bind(this);\n this.onEditImageModalClose = this.onEditImageModalClose.bind(this);\n this.onImageDescriptionBlur = this.onImageDescriptionBlur.bind(this);\n this.onImageDimensionBlur = this.onImageDimensionBlur.bind(this);\n this.onInsertImageButtonClick = this.onInsertImageButtonClick.bind(this);\n this.onImageLoad = this.onImageLoad.bind(this);\n this.onNextPageButtonClick = this.onNextPageButtonClick.bind(this);\n this.onPreviousPageButtonClick = this.onPreviousPageButtonClick.bind(this);\n this.onStatusAlertClose = this.onStatusAlertClose.bind(this);\n // Create ref setters to minimize anonymous inline functions\n this.setDropZoneButtonRef = this.setDropZoneButtonRef.bind(this);\n this.setImageDescriptionInputRef = this.setImageDescriptionInputRef.bind(this);\n this.setImageFormRef = this.setImageFormRef.bind(this);\n this.setImageRef = this.setImageRef.bind(this);\n this.setModalWrapperRef = this.setModalWrapperRef.bind(this);\n this.setPreviousButtonRef = this.setPreviousButtonRef.bind(this);\n this.setStatusAlertRef = this.setStatusAlertRef.bind(this);\n\n this.dropZoneButtonRef = null;\n this.imageDescriptionInputRef = null;\n this.imageFormRef = null;\n this.imageRef = null;\n this.previousPageButtonRef = null;\n this.modalWrapperRef = null;\n this.statusAlertRef = null;\n }\n\n componentDidMount() {\n this.modalWrapperRef.addEventListener('openModal', this.handleOpenModal);\n }\n\n componentWillReceiveProps(nextProps) {\n const newState = {};\n switch (nextProps.assetsStatus.type) {\n case assetActions.upload.UPLOAD_ASSET_SUCCESS: {\n const uploadedAsset = nextProps.assetsStatus.response.asset;\n nextProps.selectAsset(uploadedAsset, 0);\n nextProps.clearAssetsStatus();\n newState.currentUploadErrorMessage = null;\n newState.isStatusAlertOpen = false;\n // Stay on page 1 - the form fields are now shown on the same page\n newState.pageNumber = 1;\n break;\n }\n case assetActions.upload.UPLOAD_EXCEED_MAX_COUNT_ERROR: {\n newState.currentUploadErrorMessage = messages.editImageModalTooManyFiles;\n newState.isStatusAlertOpen = true;\n break;\n }\n case assetActions.upload.UPLOAD_INVALID_FILE_TYPE_ERROR: {\n newState.currentUploadErrorMessage = messages.editImageModalInvalidFileType;\n newState.isStatusAlertOpen = true;\n break;\n }\n default: {\n if (nextProps.selectedAsset.portable_url) {\n newState.imageSource = nextProps.selectedAsset.portable_url;\n }\n break;\n }\n }\n this.setState(state => ({\n ...newState,\n assetsPageType: getPageType(nextProps, state.assetsPageType),\n }));\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.didStatusAlertOpen(prevState);\n this.wasNextButtonClicked(prevState);\n this.wasPreviousButtonClicked(prevState);\n }\n\n componentWillUnmount() {\n this.modalWrapperRef.removeEventListener('openModal', this.handleOpenModal);\n }\n\n onConstrainProportionsClick = (checked) => {\n this.setState({\n areProportionsLocked: checked,\n });\n }\n\n onEditImageModalClose = () => {\n this.setState({\n isModalOpen: false,\n });\n\n this.props.clearSearch(this.props.courseDetails);\n this.resetImageSelection();\n this.modalWrapperRef.dispatchEvent(new CustomEvent('closeModal',\n {\n bubbles: true,\n },\n ));\n }\n\n onImageLoad = (event) => {\n const img = event.target;\n\n this.setState({\n displayLoadingSpinner: false,\n imageDimensions: {\n width: img.naturalWidth,\n height: img.naturalHeight,\n aspectRatio: img.naturalWidth / img.naturalHeight,\n },\n isImageLoaded: true,\n isImageLoading: false,\n });\n }\n\n onImageError = () => {\n this.setState({\n displayLoadingSpinner: false,\n imageDimensions: {},\n isImageLoading: false,\n isImageLoaded: false,\n });\n }\n\n onImageDescriptionBlur = (imageDescription) => {\n this.setState({\n imageDescription,\n });\n }\n\n onImageDimensionBlur = (dimensionType) => {\n let aspectRatio;\n let newDimensionType;\n\n if (dimensionType === 'height') {\n aspectRatio = this.state.imageDimensions.aspectRatio;\n newDimensionType = 'width';\n } else if (dimensionType === 'width') {\n aspectRatio = (1 / this.state.imageDimensions.aspectRatio);\n newDimensionType = 'height';\n } else {\n throw new Error(`Unknown dimension type ${dimensionType}.`);\n }\n\n return (dimensionValue) => {\n const newImageDimensions = { ...this.state.imageDimensions };\n const parsedDimensionValue = parseInt(dimensionValue, 10);\n\n newImageDimensions[dimensionType] = isNaN(parsedDimensionValue) ? '' : parsedDimensionValue;\n\n if (this.state.areProportionsLocked) {\n const newDimensionValue = Math.round(parsedDimensionValue * aspectRatio);\n newImageDimensions[newDimensionType] = isNaN(newDimensionValue) ? '' : newDimensionValue;\n }\n this.setState({ imageDimensions: newImageDimensions });\n };\n }\n\n onNextPageButtonClick = () => {\n if (this.isAssetSelected()) {\n this.setState({\n currentUploadErrorMessage: null,\n isStatusAlertOpen: false,\n pageNumber: 2,\n });\n this.props.clearAssetsStatus();\n }\n }\n\n onPreviousPageButtonClick = () => {\n this.setState({\n currentValidationMessages: {},\n isImageDescriptionValid: true,\n isImageDimensionsValid: true,\n isStatusAlertOpen: false,\n pageNumber: 1,\n });\n }\n\n onInsertImageButtonClick = () => {\n const isValidImageDescription = this.validateImageDescription();\n const isValidImageDimensions = this.validateImageDimensions();\n const isValidFormContent = isValidImageDescription.isValid && isValidImageDimensions.isValid;\n\n const currentValidationMessages = {};\n\n if (!isValidImageDescription.isValid) {\n currentValidationMessages[imageDescriptionID] = isValidImageDescription.validationMessage;\n }\n\n if (!isValidImageDimensions.isValid) {\n currentValidationMessages[imageWidthID] = isValidImageDimensions.validationMessage;\n }\n\n this.setState({\n isStatusAlertOpen: !isValidFormContent,\n isImageDescriptionValid: isValidImageDescription.isValid,\n areImageDimensionsValid: isValidImageDimensions.isValid,\n currentValidationMessages,\n });\n\n if (isValidFormContent) {\n // Use the form ref if available, otherwise dispatch from modal wrapper\n const targetElement = this.imageFormRef || this.modalWrapperRef;\n const altText = this.state.imageDescription || '';\n targetElement.dispatchEvent(new CustomEvent('submitForm',\n {\n bubbles: true,\n detail: {\n height: this.getDimensionStateOrNatural('height'),\n width: this.getDimensionStateOrNatural('width'),\n src: this.state.imageSource,\n alt: altText,\n style: this.state.imageStyle,\n },\n },\n ));\n\n this.setState({\n isModalOpen: false,\n });\n\n this.resetImageSelection();\n } else {\n if (this.statusAlertRef) {\n this.statusAlertRef.focus();\n }\n }\n }\n\n onStatusAlertClose = () => {\n if (this.state.pageNumber === 1) {\n this.props.clearAssetsStatus();\n this.dropZoneButtonRef.focus();\n } else if (this.state.pageNumber === 2) {\n if (this.state.shouldShowPreviousButton) {\n this.previousPageButtonRef.focus();\n } else {\n this.imageDescriptionInputRef.focus();\n }\n }\n\n this.setState({\n isStatusAlertOpen: false,\n });\n }\n\n setDropZoneButtonRef(ref) {\n this.dropZoneButtonRef = ref;\n }\n\n setImageDescriptionInputRef(ref) {\n this.imageDescriptionInputRef = ref;\n }\n\n setImageFormRef(ref) {\n this.imageFormRef = ref;\n }\n\n setImageRef(ref) {\n this.imageRef = ref;\n }\n\n setModalWrapperRef(ref) {\n this.modalWrapperRef = ref;\n }\n\n setPreviousButtonRef(ref) {\n this.previousPageButtonRef = ref;\n }\n\n setStatusAlertRef(ref) {\n this.statusAlertRef = ref;\n }\n\n getNaturalDimension = (dimensionType) => {\n if (this.imageRef) {\n // if value is unparsable (NaN), reset to natural value\n const naturalDimensions = {\n width: this.imageRef.naturalWidth,\n height: this.imageRef.naturalHeight,\n };\n return naturalDimensions[dimensionType];\n }\n return null;\n }\n\n getDimensionStateOrNatural = (dimensionType) => {\n if (!this.state.imageDimensions[dimensionType]) {\n return this.getNaturalDimension(dimensionType);\n }\n return this.state.imageDimensions[dimensionType];\n }\n\n getImageDescriptionInput = () => (\n <Fieldset\n legend={<WrappedMessage message={messages.editImageModalImageDescriptionLegend} />}\n id={imageDescriptionFieldsetID}\n invalidMessage={<WrappedMessage message={messages.editImageModalFormValidImageDescription} />}\n isValid={this.state.isImageDescriptionValid}\n variant={{\n status: Variant.status.DANGER,\n }}\n variantIconDescription={<WrappedMessage message={messages.editImageModalFormError} />}\n >\n <InputText\n name=\"imageDescription\"\n label={\n <WrappedMessage\n message={messages.editImageModalImageDescriptionLabel}\n />\n }\n describedBy={`#Error-${imageDescriptionID}`}\n description={this.getImageDescriptionDescription()}\n id={imageDescriptionID}\n type=\"text\"\n value={this.state.imageDescription}\n onBlur={this.onImageDescriptionBlur}\n inputRef={this.setImageDescriptionInputRef}\n />\n </Fieldset>\n );\n\n getLearnMoreLink = () => (\n <WrappedMessage message={messages.editImageModalLearnMore}>\n {\n displayText => (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={this.props.courseImageAccessibilityDocs}\n >\n {displayText}\n </a>\n )\n }\n </WrappedMessage>\n );\n\n getImageDescriptionDescription = () => (\n <React.Fragment>\n <WrappedMessage message={messages.editImageModalImageDescriptionDescription} />\n {' '}\n {this.getLearnMoreLink()}\n </React.Fragment>\n );\n\n getImageDimensionsInput = () => (\n <Fieldset\n legend={<WrappedMessage message={messages.editImageModalDimensionsLegend} />}\n id={imageDimensionsFieldsetID}\n invalidMessage={<WrappedMessage message={messages.editImageModalFormValidImageDimensions} />}\n isValid={this.state.areImageDimensionsValid}\n variant={{\n status: Variant.status.DANGER,\n }}\n variantIconDescription={<WrappedMessage message={messages.editImageModalFormError} />}\n >\n <div className=\"form-row\">\n <div className=\"col\">\n <InputText\n name=\"imageWidth\"\n label={\n <WrappedMessage\n message={messages.editImageModalImageWidthLabel}\n />\n }\n id={imageWidthID}\n type=\"number\"\n value={'width' in this.state.imageDimensions ? this.state.imageDimensions.width : ''}\n onBlur={this.onImageDimensionBlur('width')}\n />\n </div>\n <div className=\"col-1 my-auto image-dimensions-x\">\n <Icon className={['fa', 'fa-times']} />\n </div>\n <div className=\"col\">\n <InputText\n name={imageHeightID}\n label={\n <WrappedMessage\n message={messages.editImageModalImageHeightLabel}\n />\n }\n id=\"imageHeight\"\n type=\"number\"\n value={'height' in this.state.imageDimensions ? this.state.imageDimensions.height : ''}\n onBlur={this.onImageDimensionBlur('height')}\n />\n </div>\n </div>\n <CheckBox\n id=\"lockProportions\"\n name=\"lockProportions\"\n label={\n <WrappedMessage\n message={messages.editImageModalLockImageProportionsCheckboxLabel}\n />\n }\n checked={this.state.areProportionsLocked}\n onChange={this.onConstrainProportionsClick}\n />\n </Fieldset>\n );\n\n getImageAssetSource = () => (\n rewriteStaticLinks(this.state.imageSource, '/static/', this.state.baseAssetURL)\n );\n\n getImage = () => (\n <img\n alt=\"\"\n className={classNames(styles['image-preview-image'], { invisible: !this.state.isImageLoaded })}\n src={this.getImageAssetSource()}\n onLoad={this.onImageLoad}\n onError={this.onImageError}\n ref={this.setImageRef}\n />\n );\n\n /*\n image is conditionally displayed so that onImageError is not called on initial\n modal open, when image source is empty string\n */\n getImagePreviewPlaceholder = () => (\n <div className={styles['image-preview-placeholder']}>\n <WrappedMessage message={messages.editImageModalImagePreviewText} >\n {displayText =>\n (<span className={classNames({ invisible: this.state.isImageLoaded })}>\n {displayText}\n </span>)}\n </WrappedMessage>\n {this.state.imageSource && this.getImage()}\n </div>\n );\n\n getImagePreview = () => (\n // image preview is decorative\n <div aria-hidden>\n <WrappedMessage message={messages.editImageModalImagePreviewText} />\n <div className={styles['image-preview-container']}>\n {this.getImagePreviewPlaceholder()}\n </div>\n </div>\n );\n\n getStatusAlertDialog = () => {\n let dialog;\n\n if (this.state.pageNumber === 1) {\n dialog = (\n <React.Fragment>\n {this.getUploadErrorStatusMessage()}\n </React.Fragment>\n );\n } else if (this.state.pageNumber === 2) {\n dialog = (\n <div>\n <WrappedMessage\n message={messages.editImageModalFormErrorMissingFields}\n tagName=\"div\"\n />\n <div className=\"mt-3\">\n <ul className=\"bullet-list\">\n {(Object.keys(this.state.currentValidationMessages).reduce((accumulator, current) => {\n const value = this.state.currentValidationMessages[current];\n\n if (value) {\n const errorMessage = <li key={`Error-${current}`}>{<a href={`#${current}`}>{value} </a>}</li>;\n accumulator.push(errorMessage);\n }\n\n return accumulator;\n }, [])\n )}\n </ul>\n </div>\n </div>\n );\n }\n return dialog;\n };\n\n getStatusAlert = () => (\n <StatusAlert\n alertType=\"danger\"\n dialog={this.getStatusAlertDialog()}\n onClose={this.onStatusAlertClose}\n open={this.state.isStatusAlertOpen}\n ref={this.setStatusAlertRef}\n />\n )\n\n getModalHeader = () => {\n let header;\n if (this.state.pageNumber === 1) {\n header = (\n <WrappedMessage\n message={messages.editImageModalInsertTitle}\n />\n );\n } else if (this.state.pageNumber === 2) {\n header = (\n <WrappedMessage\n message={messages.editImageModalEditTitle}\n />\n );\n }\n return (\n <div aria-live=\"polite\">\n { header }\n </div>\n );\n }\n\n getModalBody = () => {\n let body;\n if (this.state.pageNumber === 1) {\n body = this.getImageSelectionModalBody();\n } else if (this.state.pageNumber === 2) {\n body = this.getImageSettingsModalBody();\n }\n return body;\n }\n\n getImageSelectionModalBodyAssetsList = (type) => {\n switch (type) {\n case pageTypes.NORMAL:\n return (<WrappedAssetsList />);\n case pageTypes.NO_ASSETS:\n return (\n <div className=\"mt-3\">\n <WrappedMessage message={messages.editImageModalAssetsListNoAssetsMessage} tagName=\"h3\" />\n </div>\n );\n case pageTypes.NO_RESULTS:\n return (\n <React.Fragment>\n <WrappedMessage message={messages.editImageModalAssetsListNoResultsMessage} tagName=\"h3\" />\n <WrappedAssetsClearSearchButton />\n </React.Fragment>\n );\n case pageTypes.SKELETON:\n return (\n <div className=\"text-center mt-3\">\n <span className=\"fa-icon-spacing\" aria-hidden>\n <span\n className={classNames([\n FontAwesomeStyles.fa,\n FontAwesomeStyles['fa-spinner'],\n FontAwesomeStyles['fa-spin'],\n ])}\n />\n </span>\n <WrappedMessage message={messages.editImageModalAssetsListLoadingSpinner} />\n </div>\n );\n default:\n throw new Error(`Unknown pageType ${type}.`);\n }\n }\n\n getImageSelectionModalBody = () => (\n <React.Fragment>\n <div className=\"row\">\n <div className=\"col\">\n {this.getStatusAlert()}\n </div>\n </div>\n <div className=\"row mb-3\">\n <div className=\"col\">\n <WrappedAssetsDropZone\n maxFileCount={1}\n maxFileSizeMB={10}\n acceptedFileTypes={'image/*'}\n compactStyle\n buttonRef={this.setDropZoneButtonRef}\n />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n {this.getImageSelectionModalBodyAssetsList(this.state.assetsPageType)}\n </div>\n </div>\n {this.isAssetSelected() && (\n <div className=\"row mt-3\">\n <div className=\"col\">\n {/* Hidden image to load dimensions */}\n {this.state.imageSource && (\n <img\n alt=\"\"\n src={this.getImageAssetSource()}\n onLoad={this.onImageLoad}\n onError={this.onImageError}\n ref={this.setImageRef}\n style={{ display: 'none' }}\n />\n )}\n <form ref={this.setImageFormRef}>\n {this.getImageDescriptionInput()}\n {this.getImageDimensionsInput()}\n </form>\n </div>\n </div>\n )}\n </React.Fragment>\n );\n\n getImageSettingsModalBody = () => (\n <React.Fragment>\n {this.getStatusAlert()}\n <div className=\"row\">\n {this.state.shouldShowPreviousButton && this.getPreviousPageButton()}\n </div>\n <div className=\"row\">\n <div className=\"col-sm-4\">\n {this.getImagePreview()}\n </div>\n <div className=\"col\">\n <form ref={this.setImageFormRef}>\n {this.getImageDescriptionInput()}\n {this.getImageDimensionsInput()}\n </form>\n </div>\n </div>\n </React.Fragment>\n );\n\n getModalButtons = () => {\n let buttons;\n if (this.state.pageNumber === 1) {\n // Show Save button if asset is selected, otherwise show Next button\n if (this.isAssetSelected()) {\n buttons = this.getInsertImageButton();\n } else {\n buttons = this.getNextPageButton();\n }\n } else if (this.state.pageNumber === 2) {\n buttons = this.getInsertImageButton();\n }\n return buttons;\n }\n\n getNextPageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalNextPageButton}\n />\n }\n buttonType=\"primary\"\n disabled={!this.isAssetSelected()}\n onClick={this.onNextPageButtonClick}\n />\n );\n\n getPreviousPageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalPreviousPageButton}\n />\n }\n buttonType=\"link\"\n onClick={this.onPreviousPageButtonClick}\n inputRef={this.setPreviousButtonRef}\n />\n );\n\n getInsertImageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalInsertImageButton}\n />\n }\n buttonType=\"primary\"\n onClick={this.onInsertImageButtonClick}\n />\n );\n\n getUploadErrorStatusMessage = () => {\n let message;\n\n if (this.state.currentUploadErrorMessage) {\n message = (\n <WrappedMessage\n message={this.state.currentUploadErrorMessage}\n />\n );\n }\n\n return message;\n };\n\n resetImageSelection = () => {\n this.props.updatePage(0, this.props.courseDetails);\n this.props.clearSelectedAsset();\n }\n\n handleOpenModal = (event) => {\n const eventSource = event.detail.src;\n let isEventSourceEmpty = true;\n if (eventSource) {\n isEventSourceEmpty = false;\n }\n\n this.setState((state, props) => ({\n // reset state to initial and then add in overrides\n ...initialEditImageModalState,\n assetsPageType: getPageType(props, state.assetsPageType),\n baseAssetURL: event.detail.baseAssetUrl || '',\n imageDescription: event.detail.alt || '',\n imageDimensions: (event.detail.width && event.detail.height) ? {\n width: event.detail.width,\n height: event.detail.height,\n aspectRatio: event.detail.width / event.detail.height,\n } : {},\n imageSource: eventSource || '',\n imageStyle: event.detail.style || '',\n // if existing img had a source, assume it could be loaded and show the image preview\n isImageLoaded: !!eventSource,\n isModalOpen: true,\n pageNumber: isEventSourceEmpty ? 1 : 2,\n shouldShowPreviousButton: isEventSourceEmpty,\n }));\n\n if (this.props.assetsList.length === 0) {\n this.props.getAssets({ assetTypes: { Images: true }, pageSize: 1000 }, this.props.courseDetails);\n }\n }\n\n validateImageDescription = () => {\n return { isValid: true };\n }\n\n validateImageDimensions = () => {\n let feedback = { isValid: true };\n const { height, width } = this.state.imageDimensions;\n\n if (!this.isPositiveIntegerOrEmpty(height) || !this.isPositiveIntegerOrEmpty(width)) {\n feedback = {\n isValid: false,\n validationMessage:\n (<WrappedMessage\n message={messages.editImageModalFormValidImageDimensions}\n />),\n dangerIconDescription: <WrappedMessage message={messages.editImageModalFormError} />,\n };\n }\n return feedback;\n }\n\n didStatusAlertOpen = (prevState) => {\n if (this.state.isStatusAlertOpen && !prevState.isStatusAlertOpen) {\n this.statusAlertRef.focus();\n }\n }\n\n isAssetSelected = () => (this.props.selectedAsset\n && Object.keys(this.props.selectedAsset).length !== 0);\n\n isPositiveIntegerOrEmpty = (val) => {\n if (val === '' || val === undefined) {\n return true;\n }\n if (Number.isInteger(val) && val > 0) {\n return true;\n }\n return false;\n }\n\n wasNextButtonClicked = (prevState) => {\n if (this.state.pageNumber === 2 && prevState.pageNumber === 1\n && this.state.shouldShowPreviousButton) {\n this.previousPageButtonRef.focus();\n }\n }\n\n wasPreviousButtonClicked = (prevState) => {\n if (this.state.pageNumber === 1 && prevState.pageNumber === 2\n && prevState.isModalOpen) {\n this.dropZoneButtonRef.focus();\n }\n }\n\n render = () => (\n <div\n ref={this.setModalWrapperRef}\n id={modalWrapperID}\n >\n <div\n aria-atomic\n aria-live={this.state.isModalOpen ? 'polite' : 'off'}\n aria-relevant=\"text\"\n className=\"sr-only\"\n >\n <WrappedAssetsResultsCount />\n </div>\n <Modal\n open={this.state.isModalOpen}\n title={this.getModalHeader()}\n body={this.getModalBody()}\n closeText={<WrappedMessage message={messages.editImageModalCancelButton} />}\n onClose={this.onEditImageModalClose}\n buttons={[this.getModalButtons()]}\n parentSelector={`#${modalWrapperID}`}\n />\n </div>\n );\n}\n\nEditImageModal.propTypes = {\n assetsList: PropTypes.arrayOf(PropTypes.object).isRequired,\n assetsStatus: PropTypes.shape({\n response: PropTypes.object,\n type: PropTypes.string,\n }).isRequired,\n clearAssetsStatus: PropTypes.func.isRequired,\n clearSearch: PropTypes.func.isRequired,\n clearSelectedAsset: PropTypes.func.isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n base_url: PropTypes.string,\n }).isRequired,\n courseImageAccessibilityDocs: PropTypes.string.isRequired,\n getAssets: PropTypes.func.isRequired,\n selectAsset: PropTypes.func.isRequired,\n selectedAsset: PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n }).isRequired,\n updatePage: PropTypes.func.isRequired,\n};\n","import { connect } from 'react-redux';\n\nimport EditImageModal from '.';\nimport {\n clearAssetsStatus,\n clearSelectedAsset,\n getAssets,\n pageUpdate,\n searchUpdate,\n selectAsset,\n} from '../../data/actions/assets';\n\n\n// Create an EditImageModal that is not aware of the Images filter.\n// This is so that the page will display a \"noAssets\" list instead of a \"noResults\" list when the\n// course has no images.\nconst mapStateToProps = (state) => {\n const { Images, ...typesWithoutImages } = state.metadata.filters.assetTypes;\n const filtersWithoutImages = { ...state.metadata.filters, assetTypes: typesWithoutImages };\n return {\n assetsList: state.assets,\n assetsStatus: state.metadata.status,\n courseDetails: state.studioDetails.course,\n courseImageAccessibilityDocs: state.studioDetails.help_tokens.image_accessibility,\n filtersMetadata: filtersWithoutImages,\n searchMetadata: state.metadata.search,\n selectedAsset: state.metadata.select.selectedAsset,\n status: state.metadata.status,\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n clearAssetsStatus: () => dispatch(clearAssetsStatus()),\n clearSearch: courseDetails => dispatch(searchUpdate('', courseDetails)),\n clearSelectedAsset: () => dispatch(clearSelectedAsset()),\n getAssets: (request, courseDetails) => dispatch(getAssets(request, courseDetails)),\n selectAsset: (asset, index) => dispatch(selectAsset(asset, index)),\n updatePage: (page, courseDetails) => dispatch(pageUpdate(page, courseDetails)),\n});\n\nconst WrappedEditImageModal = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(EditImageModal);\n\nexport default WrappedEditImageModal;\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n","/* eslint-disable global-require,no-underscore-dangle */\nif ((typeof window !== 'undefined' && !window._babelPolyfill) ||\n (typeof global !== 'undefined' && !global._babelPolyfill)) {\n // Don't load babel-polyfill if already loaded: https://github.com/babel/babel/issues/4019\n require('babel-polyfill'); // general ES2015 polyfill (e.g. promise)\n}\n/* eslint-enable global-require no-underscore-dangle */\n\n/* eslint-disable import/first */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { IntlProvider } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport 'custom-event-polyfill'; // needed for IE11\n\nimport './SFE.scss';\nimport WrappedEditImageModal from './components/EditImageModal/container';\nimport loadI18nDomData from './utils/i18n/loadI18nDomData';\nimport store from './data/store';\n/* eslint-enable import/first */\n\nconst i18nData = loadI18nDomData();\n/* eslint-enable import/first */\n\nconst App = () => (\n <IntlProvider locale={i18nData.locale} messages={i18nData.messages}>\n <Provider store={store}>\n <div className=\"SFE-wrapper\">\n <WrappedEditImageModal />\n </div>\n </Provider>\n </IntlProvider>\n);\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./src/components/AssetsList/AssetsList.scss","webpack:///./src/components/AssetsList/displayMessages.jsx","webpack:///./src/components/AssetsList/index.jsx","webpack:///./src/components/AssetsList/container.jsx","webpack:///./src/components/AssetsClearSearchButton/displayMessages.jsx","webpack:///./src/components/AssetsClearSearchButton/index.jsx","webpack:///./src/components/AssetsClearSearchButton/container.jsx","webpack:///./src/components/EditImageModal/EditImageModal.scss","webpack:///./src/utils/rewriteStaticLinks.js","webpack:///./src/components/EditImageModal/displayMessages.jsx","webpack:///./src/components/EditImageModal/index.jsx","webpack:///./src/components/EditImageModal/container.jsx","webpack:///./node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///./src/editImageModalIndex.jsx"],"names":["module","exports","root","SFE","m-0","mt-0","my-0","mr-0","mx-0","mb-0","ml-0","m-1","mt-1","my-1","mr-1","mx-1","mb-1","ml-1","m-2","mt-2","my-2","mr-2","mx-2","mb-2","ml-2","m-3","mt-3","my-3","mr-3","mx-3","mb-3","ml-3","m-4","mt-4","my-4","mr-4","mx-4","mb-4","ml-4","m-5","mt-5","my-5","mr-5","mx-5","mb-5","ml-5","p-0","pt-0","py-0","pr-0","px-0","pb-0","pl-0","p-1","pt-1","py-1","pr-1","px-1","pb-1","pl-1","p-2","pt-2","py-2","pr-2","px-2","pb-2","pl-2","p-3","pt-3","py-3","pr-3","px-3","pb-3","pl-3","p-4","pt-4","py-4","pr-4","px-4","pb-4","pl-4","p-5","pt-5","py-5","pr-5","px-5","pb-5","pl-5","m-n1","mt-n1","my-n1","mr-n1","mx-n1","mb-n1","ml-n1","m-n2","mt-n2","my-n2","mr-n2","mx-n2","mb-n2","ml-n2","m-n3","mt-n3","my-n3","mr-n3","mx-n3","mb-n3","ml-n3","m-n4","mt-n4","my-n4","mr-n4","mx-n4","mb-n4","ml-n4","m-n5","mt-n5","my-n5","mr-n5","mx-n5","mb-n5","ml-n5","m-auto","mt-auto","my-auto","mr-auto","mx-auto","mb-auto","ml-auto","m-sm-0","mt-sm-0","my-sm-0","mr-sm-0","mx-sm-0","mb-sm-0","ml-sm-0","m-sm-1","mt-sm-1","my-sm-1","mr-sm-1","mx-sm-1","mb-sm-1","ml-sm-1","m-sm-2","mt-sm-2","my-sm-2","mr-sm-2","mx-sm-2","mb-sm-2","ml-sm-2","m-sm-3","mt-sm-3","my-sm-3","mr-sm-3","mx-sm-3","mb-sm-3","ml-sm-3","m-sm-4","mt-sm-4","my-sm-4","mr-sm-4","mx-sm-4","mb-sm-4","ml-sm-4","m-sm-5","mt-sm-5","my-sm-5","mr-sm-5","mx-sm-5","mb-sm-5","ml-sm-5","p-sm-0","pt-sm-0","py-sm-0","pr-sm-0","px-sm-0","pb-sm-0","pl-sm-0","p-sm-1","pt-sm-1","py-sm-1","pr-sm-1","px-sm-1","pb-sm-1","pl-sm-1","p-sm-2","pt-sm-2","py-sm-2","pr-sm-2","px-sm-2","pb-sm-2","pl-sm-2","p-sm-3","pt-sm-3","py-sm-3","pr-sm-3","px-sm-3","pb-sm-3","pl-sm-3","p-sm-4","pt-sm-4","py-sm-4","pr-sm-4","px-sm-4","pb-sm-4","pl-sm-4","p-sm-5","pt-sm-5","py-sm-5","pr-sm-5","px-sm-5","pb-sm-5","pl-sm-5","m-sm-n1","mt-sm-n1","my-sm-n1","mr-sm-n1","mx-sm-n1","mb-sm-n1","ml-sm-n1","m-sm-n2","mt-sm-n2","my-sm-n2","mr-sm-n2","mx-sm-n2","mb-sm-n2","ml-sm-n2","m-sm-n3","mt-sm-n3","my-sm-n3","mr-sm-n3","mx-sm-n3","mb-sm-n3","ml-sm-n3","m-sm-n4","mt-sm-n4","my-sm-n4","mr-sm-n4","mx-sm-n4","mb-sm-n4","ml-sm-n4","m-sm-n5","mt-sm-n5","my-sm-n5","mr-sm-n5","mx-sm-n5","mb-sm-n5","ml-sm-n5","m-sm-auto","mt-sm-auto","my-sm-auto","mr-sm-auto","mx-sm-auto","mb-sm-auto","ml-sm-auto","m-md-0","mt-md-0","my-md-0","mr-md-0","mx-md-0","mb-md-0","ml-md-0","m-md-1","mt-md-1","my-md-1","mr-md-1","mx-md-1","mb-md-1","ml-md-1","m-md-2","mt-md-2","my-md-2","mr-md-2","mx-md-2","mb-md-2","ml-md-2","m-md-3","mt-md-3","my-md-3","mr-md-3","mx-md-3","mb-md-3","ml-md-3","m-md-4","mt-md-4","my-md-4","mr-md-4","mx-md-4","mb-md-4","ml-md-4","m-md-5","mt-md-5","my-md-5","mr-md-5","mx-md-5","mb-md-5","ml-md-5","p-md-0","pt-md-0","py-md-0","pr-md-0","px-md-0","pb-md-0","pl-md-0","p-md-1","pt-md-1","py-md-1","pr-md-1","px-md-1","pb-md-1","pl-md-1","p-md-2","pt-md-2","py-md-2","pr-md-2","px-md-2","pb-md-2","pl-md-2","p-md-3","pt-md-3","py-md-3","pr-md-3","px-md-3","pb-md-3","pl-md-3","p-md-4","pt-md-4","py-md-4","pr-md-4","px-md-4","pb-md-4","pl-md-4","p-md-5","pt-md-5","py-md-5","pr-md-5","px-md-5","pb-md-5","pl-md-5","m-md-n1","mt-md-n1","my-md-n1","mr-md-n1","mx-md-n1","mb-md-n1","ml-md-n1","m-md-n2","mt-md-n2","my-md-n2","mr-md-n2","mx-md-n2","mb-md-n2","ml-md-n2","m-md-n3","mt-md-n3","my-md-n3","mr-md-n3","mx-md-n3","mb-md-n3","ml-md-n3","m-md-n4","mt-md-n4","my-md-n4","mr-md-n4","mx-md-n4","mb-md-n4","ml-md-n4","m-md-n5","mt-md-n5","my-md-n5","mr-md-n5","mx-md-n5","mb-md-n5","ml-md-n5","m-md-auto","mt-md-auto","my-md-auto","mr-md-auto","mx-md-auto","mb-md-auto","ml-md-auto","m-lg-0","mt-lg-0","my-lg-0","mr-lg-0","mx-lg-0","mb-lg-0","ml-lg-0","m-lg-1","mt-lg-1","my-lg-1","mr-lg-1","mx-lg-1","mb-lg-1","ml-lg-1","m-lg-2","mt-lg-2","my-lg-2","mr-lg-2","mx-lg-2","mb-lg-2","ml-lg-2","m-lg-3","mt-lg-3","my-lg-3","mr-lg-3","mx-lg-3","mb-lg-3","ml-lg-3","m-lg-4","mt-lg-4","my-lg-4","mr-lg-4","mx-lg-4","mb-lg-4","ml-lg-4","m-lg-5","mt-lg-5","my-lg-5","mr-lg-5","mx-lg-5","mb-lg-5","ml-lg-5","p-lg-0","pt-lg-0","py-lg-0","pr-lg-0","px-lg-0","pb-lg-0","pl-lg-0","p-lg-1","pt-lg-1","py-lg-1","pr-lg-1","px-lg-1","pb-lg-1","pl-lg-1","p-lg-2","pt-lg-2","py-lg-2","pr-lg-2","px-lg-2","pb-lg-2","pl-lg-2","p-lg-3","pt-lg-3","py-lg-3","pr-lg-3","px-lg-3","pb-lg-3","pl-lg-3","p-lg-4","pt-lg-4","py-lg-4","pr-lg-4","px-lg-4","pb-lg-4","pl-lg-4","p-lg-5","pt-lg-5","py-lg-5","pr-lg-5","px-lg-5","pb-lg-5","pl-lg-5","m-lg-n1","mt-lg-n1","my-lg-n1","mr-lg-n1","mx-lg-n1","mb-lg-n1","ml-lg-n1","m-lg-n2","mt-lg-n2","my-lg-n2","mr-lg-n2","mx-lg-n2","mb-lg-n2","ml-lg-n2","m-lg-n3","mt-lg-n3","my-lg-n3","mr-lg-n3","mx-lg-n3","mb-lg-n3","ml-lg-n3","m-lg-n4","mt-lg-n4","my-lg-n4","mr-lg-n4","mx-lg-n4","mb-lg-n4","ml-lg-n4","m-lg-n5","mt-lg-n5","my-lg-n5","mr-lg-n5","mx-lg-n5","mb-lg-n5","ml-lg-n5","m-lg-auto","mt-lg-auto","my-lg-auto","mr-lg-auto","mx-lg-auto","mb-lg-auto","ml-lg-auto","m-xl-0","mt-xl-0","my-xl-0","mr-xl-0","mx-xl-0","mb-xl-0","ml-xl-0","m-xl-1","mt-xl-1","my-xl-1","mr-xl-1","mx-xl-1","mb-xl-1","ml-xl-1","m-xl-2","mt-xl-2","my-xl-2","mr-xl-2","mx-xl-2","mb-xl-2","ml-xl-2","m-xl-3","mt-xl-3","my-xl-3","mr-xl-3","mx-xl-3","mb-xl-3","ml-xl-3","m-xl-4","mt-xl-4","my-xl-4","mr-xl-4","mx-xl-4","mb-xl-4","ml-xl-4","m-xl-5","mt-xl-5","my-xl-5","mr-xl-5","mx-xl-5","mb-xl-5","ml-xl-5","p-xl-0","pt-xl-0","py-xl-0","pr-xl-0","px-xl-0","pb-xl-0","pl-xl-0","p-xl-1","pt-xl-1","py-xl-1","pr-xl-1","px-xl-1","pb-xl-1","pl-xl-1","p-xl-2","pt-xl-2","py-xl-2","pr-xl-2","px-xl-2","pb-xl-2","pl-xl-2","p-xl-3","pt-xl-3","py-xl-3","pr-xl-3","px-xl-3","pb-xl-3","pl-xl-3","p-xl-4","pt-xl-4","py-xl-4","pr-xl-4","px-xl-4","pb-xl-4","pl-xl-4","p-xl-5","pt-xl-5","py-xl-5","pr-xl-5","px-xl-5","pb-xl-5","pl-xl-5","m-xl-n1","mt-xl-n1","my-xl-n1","mr-xl-n1","mx-xl-n1","mb-xl-n1","ml-xl-n1","m-xl-n2","mt-xl-n2","my-xl-n2","mr-xl-n2","mx-xl-n2","mb-xl-n2","ml-xl-n2","m-xl-n3","mt-xl-n3","my-xl-n3","mr-xl-n3","mx-xl-n3","mb-xl-n3","ml-xl-n3","m-xl-n4","mt-xl-n4","my-xl-n4","mr-xl-n4","mx-xl-n4","mb-xl-n4","ml-xl-n4","m-xl-n5","mt-xl-n5","my-xl-n5","mr-xl-n5","mx-xl-n5","mb-xl-n5","ml-xl-n5","m-xl-auto","mt-xl-auto","my-xl-auto","mr-xl-auto","mx-xl-auto","mb-xl-auto","ml-xl-auto","sr-only","sr-only-focusable","assets-grid","asset-grid-item","asset-preview","selected","asset-name","file-type-badge","asset-thumbnail","asset-icon","asset-info","asset-size","assets-list-image-preview-container","assets-list-image-preview-image","list-header","no-image-preview","unbulleted-list-item","messages","__webpack_require__","defineMessages","assetsListNoPreview","id","defaultMessage","description","assetsListNameLabel","assetsListDateLabel","initialState","selectedAssetIndex","selectedAssetPage","AssetsList","props","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","_initialiseProps","state","_extends","handleKeyDown","bind","onAssetClick","onListBoxFocus","React","Component","nextProps","paginationMetadata","page","setState","getSelectedAssetIndex","assetsList","selectedAsset","keys","length","asset","index","_this2","selectAsset","getFileExtension","displayName","lastDot","lastIndexOf","substring","toLowerCase","formatFileSize","bytes","i","Math","floor","log","pow","toFixed","getAssetGridItem","isSelected","baseUrl","courseDetails","base_url","fileExt","display_name","fileSize","file_size","size","previewPath","thumbnail","url","previewSrc","indexOf","_react2","default","createElement","onMouseDown","e","preventDefault","className","_classnames2","styles","aria-selected","aria-label","role","key","tabIndex","src","alt","title","findIndex","render","assetsGridItems","map","aria-activedescendant","onFocus","onKeyDown","propTypes","PropTypes","arrayOf","shape","string","content_type","date_added","portable_url","external_url","number","isRequired","lang","url_name","name","display_course_number","num","org","revision","start","end","pageSize","totalCount","func","_reactRedux","_","_assets","WrappedAssetsList","connect","assets","studioDetails","course","courseImageAccessibilityDocs","help_tokens","image_accessibility","metadata","pagination","select","dispatch","assetsClearSearchButtonLabel","_paragon","AssetsClearSearchButton","_ref","clearSearch","Button","buttonType","onClick","label","_formattedMessageWrapper2","message","WrappedAssetsClearSearchButton","searchUpdate","paragon-fieldset","image-preview-placeholder","or-fields","modal-body","row","modal-dialog","form-control","is-invalid","is-invalid-nodanger","image-preview-container","image-preview-image","image-dimensions-x","invalid-feedback","image-fields","form-group","form-text","dimensions-row","dimension-field","dimensions-separator","form-check","form-check-label","content","from","to","fromRe","replace","regex","RegExp","match","editImageModalAssetsListLoadingSpinner","editImageModalAssetsListNoAssetsMessage","editImageModalAssetsListNoResultsMessage","editImageModalCancelButton","editImageModalFormError","editImageModalFormErrorMissingFields","editImageModalFormValidImageDescription","editImageModalFormValidImageDimensions","editImageModalImageDescriptionDescription","editImageModalImageDescriptionLabel","editImageModalImageDecorativeDescription","editImageModalImageDescriptionLegend","editImageModalDimensionsLegend","editImageModalImageHeightLabel","editImageModalImagePreviewText","editImageModalInsertImageButton","editImageModalLearnMore","editImageModalLockImageProportionsCheckboxLabel","editImageModalImageWidthLabel","editImageModalInsertTitle","editImageModalInsertHeader","editImageModalEditTitle","editImageModalNextPageButton","editImageModalPreviousPageButton","editImageModalInvalidFileType","editImageModalTooManyFiles","_actionTypes","_getAssetsPageType","WrappedAssetsResultsCount","_state$metadata$filte","filters","assetTypes","typesWithoutImages","Images","_objectWithoutProperties","filtersMetadata","filtersWithoutImages","searchMetadata","search","AssetsResultsCount","initialEditImageModalState","areImageDimensionsValid","areProportionsLocked","assetsPageType","pageTypes","SKELETON","baseAssetURL","currentUploadErrorMessage","currentValidationMessages","displayLoadingSpinner","imageDescription","imageDimensions","imageSource","imageStyle","isImageDescriptionValid","isImageLoaded","isImageLoading","isImageDimensionsValid","isModalOpen","isStatusAlertOpen","pageNumber","editingExisting","shouldShowPreviousButton","EditImageModal","handleOpenModal","onConstrainProportionsClick","onEditImageModalClose","onImageDescriptionBlur","onImageDimensionBlur","onInsertImageButtonClick","onImageLoad","onNextPageButtonClick","onPreviousPageButtonClick","onStatusAlertClose","setDropZoneButtonRef","setImageDescriptionInputRef","setImageFormRef","setImageRef","setModalWrapperRef","setPreviousButtonRef","setStatusAlertRef","dropZoneButtonRef","imageDescriptionInputRef","imageFormRef","imageRef","previousPageButtonRef","modalWrapperRef","statusAlertRef","addEventListener","newState","assetsStatus","type","assetActions","upload","UPLOAD_ASSET_SUCCESS","uploadedAsset","response","clearAssetsStatus","UPLOAD_EXCEED_MAX_COUNT_ERROR","UPLOAD_INVALID_FILE_TYPE_ERROR","source","find","getPageType","prevProps","prevState","didStatusAlertOpen","wasNextButtonClicked","wasPreviousButtonClicked","removeEventListener","ref","checked","resetImageSelection","dispatchEvent","CustomEvent","bubbles","event","img","target","width","naturalWidth","height","naturalHeight","aspectRatio","onImageError","dimensionType","newDimensionType","Error","dimensionValue","newImageDimensions","parsedDimensionValue","parseInt","isNaN","newDimensionValue","round","isAssetSelected","isValidImageDescription","validateImageDescription","isValidImageDimensions","validateImageDimensions","isValidFormContent","isValid","validationMessage","targetElement","altText","detail","getDimensionStateOrNatural","style","focus","getNaturalDimension","getImageDescriptionInput","Fieldset","legend","invalidMessage","variant","status","Variant","DANGER","variantIconDescription","InputText","describedBy","getImageDescriptionDescription","value","onBlur","inputRef","getLearnMoreLink","displayText","rel","href","Fragment","getImageDimensionsInput","aria-hidden","CheckBox","onChange","getImageAssetSource","_rewriteStaticLinks2","getImage","invisible","onLoad","onError","getImagePreviewPlaceholder","getImagePreview","getStatusAlertDialog","dialog","getUploadErrorStatusMessage","tagName","reduce","accumulator","current","errorMessage","push","getStatusAlert","StatusAlert","alertType","onClose","open","getModalHeader","header","aria-live","getModalBody","body","getImageSelectionModalBody","getImageSettingsModalBody","getImageSelectionModalBodyAssetsList","NORMAL","_container6","NO_ASSETS","NO_RESULTS","_container2","FontAwesomeStyles","fa","_container4","maxFileCount","maxFileSizeMB","acceptedFileTypes","compactStyle","buttonRef","display","getPreviousPageButton","getModalButtons","buttons","getInsertImageButton","getNextPageButton","disabled","updatePage","clearSelectedAsset","eventSource","isEventSourceEmpty","baseAssetUrl","getAssets","feedback","_state$imageDimension","isPositiveIntegerOrEmpty","dangerIconDescription","val","undefined","Number","isInteger","aria-atomic","aria-relevant","Modal","closeText","parentSelector","object","WrappedEditImageModal","request","pageUpdate","ce","window","defaultPrevented","params","evt","origPrevent","cancelable","document","createEvent","initCustomEvent","defineProperty","get","prototype","Event","_reactIntl","_babelPolyfill","global","i18nData","_loadI18nDomData2","ReactDOM","IntlProvider","locale","Provider","store","getElementById"],"mappings":"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,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,YAAA,YAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,aAAA,aAAAC,UAAA,UAAAC,oBAAA,oBAAAuK,aAAA,aAAAC,IAAA,MAAAC,eAAA,eAAAC,eAAA,eAAAC,aAAA,aAAAC,sBAAA,sBAAAC,0BAAA,0BAAAC,sBAAA,sBAAAC,qBAAA,qBAAAC,mBAAA,mBAAAC,eAAA,eAAAC,aAAA,aAAAC,YAAA,YAAAC,iBAAA,iBAAAC,kBAAA,kBAAAC,uBAAA,uBAAAC,aAAA,aAAAC,mBAAA,iHCEH,SAACC,EAASC,EAAMC,GAC7B,GAAa,OAATD,GAAwB,OAAPC,EACnB,OAAOF,EAGT,IASMG,EAASF,EAAKG,QAAQ,wBAAyB,QAE/CC,EAAQ,IAAIC,OAAJ,yFAAwGH,EAAU,KAChI,OAAOH,EAAQI,QAAQC,EAZN,SAACE,GAChB,OAAIA,IAAUN,EACLC,EAEFK,wFCZX,IAEMhL,GAAW,EAFjBC,EAAA,GAEiBC,iBACf+K,wCACE7K,GAAI,yCACJC,eAAgB,kBAChBC,YAAa,wEAEf4K,yCACE9K,GAAI,0CACJC,eAAgB,oBAChBC,YAAa,yEAEf6K,0CACE/K,GAAI,2CACJC,eAAgB,iBAChBC,YAAa,+DAEf8K,4BACEhL,GAAI,6BACJC,eAAgB,SAChBC,YAAa,kCAEf+K,yBACEjL,GAAI,0BACJC,eAAgB,QAChBC,YAAa,2EAEfgL,sCACElL,GAAI,uCACJC,eAAgB,mCAChBC,YAAa,wDAEfiL,yCACEnL,GAAI,0CACJC,eAAgB,yEAChBC,YAAa,gFAEfkL,wCACEpL,GAAI,yCACJC,eAAgB,6CAChBC,YAAa,uFAEfmL,2CACErL,GAAI,4CACJC,eAAgB,uFAChBC,YAAa,iEAEfoL,qCACEtL,GAAI,sCACJC,eAAgB,oBAChBC,YAAa,2DAEfqL,0CACEvL,GAAI,2CACJC,eAAgB,4EAChBC,YAAa,iFAEfsL,sCACExL,GAAI,uCACJC,eAAgB,oBAChBC,YAAa,sDAEfuL,gCACEzL,GAAI,iCACJC,eAAgB,mBAChBC,YAAa,yDAEfwL,gCACE1L,GAAI,4BACJC,eAAgB,SAChBC,YAAa,uDAEfyL,gCACE3L,GAAI,iCACJC,eAAgB,gBAChBC,YAAa,oCAEf0L,iCACE5L,GAAI,kCACJC,eAAgB,OAChBC,YAAa,0DAEf2L,yBACE7L,GAAI,0BACJC,eAAgB,cAChBC,YAAa,gDAEf4L,iDACE9L,GAAI,kDACJC,eAAgB,mBAChBC,YAAa,4FAEf6L,+BACE/L,GAAI,2BACJC,eAAgB,QAChBC,YAAa,sDAEf8L,2BACEhM,GAAI,4BACJC,eAAgB,eAChBC,YAAa,+CAEf+L,4BACEjM,GAAI,6BACJC,eAAgB,qCAChBC,YAAa,gDAEfgM,yBACElM,GAAI,0BACJC,eAAgB,sBAChBC,YAAa,sDAEfiM,8BACEnM,GAAI,+BACJC,eAAgB,OAChBC,YAAa,wCAEfkM,kCACEpM,GAAI,mCACJC,eAAgB,OAChBC,YAAa,4CAEfmM,+BACErM,GAAI,gCACJC,eAAgB,qFAChBC,YAAa,mEAEfoM,4BACEtM,GAAI,6BACJC,eAAgB,mEAChBC,YAAa,+EAIFN,kfCvIfwI,EAAAvI,EAAA,QACAA,EAAA,KACAuH,EAAAvH,EAAA,OACAA,EAAA,SACAA,EAAA,QACAA,EAAA,IAEA0M,EAAA1M,EAAA,QACAA,EAAA,MACA2M,EAAA3M,EAAA,SACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,WACAA,EAAA,QACAA,EAAA,yDAMA,IAAM4M,GAA4B,EAAArF,EAAAI,SAAQ,SAACrG,GAAU,IAAAuL,EACTvL,EAAM4G,SAAS4E,QAAQC,WAA9CC,GADgCH,EAC3CI,8HAD2CC,CAAAL,GAAA,YAGnD,OACEM,gBAFIC,KAA4B9L,EAAM4G,SAAS4E,SAASC,WAAYC,IAGpEjL,mBAAoBT,EAAM4G,SAASC,WACnCkF,eAAgB/L,EAAM4G,SAASoF,SAND,CAQ/BC,WASGC,GACJC,yBAAyB,EACzBC,sBAAsB,EACtBC,eAAgBC,YAAUC,SAC1BC,aAAc,GACdC,0BAA2B,KAC3BC,6BACAC,uBAAuB,EACvBC,iBAAkB,GAClBC,mBACAC,YAAa,GACbC,WAAY,GACZC,yBAAyB,EACzBC,eAAe,EACfC,gBAAgB,EAChBC,wBAAwB,EACxBC,aAAa,EACbC,mBAAmB,EACnBC,WAAY,EACZC,iBAAiB,EACjBC,0BAA0B,GAGPC,cACnB,SAAAA,EAAYnO,gGAAOC,CAAAC,KAAAiO,GAAA,IAAAhO,mKAAAC,CAAAF,MAAAiO,EAAA9N,WAAAC,OAAAC,eAAA4N,IAAA3N,KAAAN,KACXF,IADW,OAAAS,EAAAD,KAAAL,GAGjBA,EAAKO,MAALC,KAAkBiM,GAElBzM,EAAKiO,gBAAkBjO,EAAKiO,gBAAgBvN,KAArBV,GACvBA,EAAKkO,4BAA8BlO,EAAKkO,4BAA4BxN,KAAjCV,GACnCA,EAAKmO,sBAAwBnO,EAAKmO,sBAAsBzN,KAA3BV,GAC7BA,EAAKoO,uBAAyBpO,EAAKoO,uBAAuB1N,KAA5BV,GAC9BA,EAAKqO,qBAAuBrO,EAAKqO,qBAAqB3N,KAA1BV,GAC5BA,EAAKsO,yBAA2BtO,EAAKsO,yBAAyB5N,KAA9BV,GAChCA,EAAKuO,YAAcvO,EAAKuO,YAAY7N,KAAjBV,GACnBA,EAAKwO,sBAAwBxO,EAAKwO,sBAAsB9N,KAA3BV,GAC7BA,EAAKyO,0BAA4BzO,EAAKyO,0BAA0B/N,KAA/BV,GACjCA,EAAK0O,mBAAqB1O,EAAK0O,mBAAmBhO,KAAxBV,GAE1BA,EAAK2O,qBAAuB3O,EAAK2O,qBAAqBjO,KAA1BV,GAC5BA,EAAK4O,4BAA8B5O,EAAK4O,4BAA4BlO,KAAjCV,GACnCA,EAAK6O,gBAAkB7O,EAAK6O,gBAAgBnO,KAArBV,GACvBA,EAAK8O,YAAc9O,EAAK8O,YAAYpO,KAAjBV,GACnBA,EAAK+O,mBAAqB/O,EAAK+O,mBAAmBrO,KAAxBV,GAC1BA,EAAKgP,qBAAuBhP,EAAKgP,qBAAqBtO,KAA1BV,GAC5BA,EAAKiP,kBAAoBjP,EAAKiP,kBAAkBvO,KAAvBV,GAEzBA,EAAKkP,kBAAoB,KACzBlP,EAAKmP,yBAA2B,KAChCnP,EAAKoP,aAAe,KACpBpP,EAAKqP,SAAW,KAChBrP,EAAKsP,sBAAwB,KAC7BtP,EAAKuP,gBAAkB,KACvBvP,EAAKwP,eAAiB,KA9BLxP,qUADuBa,UAAMC,0DAmC9Cf,KAAKwP,gBAAgBE,iBAAiB,YAAa1P,KAAKkO,mEAGhClN,GACxB,IAAM2O,KACN,OAAQ3O,EAAU4O,aAAaC,MAC7B,KAAKC,eAAaC,OAAOC,qBACvB,IAAMC,EAAgBjP,EAAU4O,aAAaM,SAASzO,MACtDT,EAAUY,YAAYqO,EAAe,GACrCjP,EAAUmP,oBACVR,EAAS1C,0BAA4B,KACrC0C,EAAS9B,mBAAoB,EAE7B8B,EAAS7B,WAAa,EACtB,MAEF,KAAKgC,eAAaC,OAAOK,8BACvBT,EAAS1C,0BAA4BhO,UAAS0M,2BAC9CgE,EAAS9B,mBAAoB,EAC7B,MAEF,KAAKiC,eAAaC,OAAOM,+BACvBV,EAAS1C,0BAA4BhO,UAASyM,8BAC9CiE,EAAS9B,mBAAoB,EAC7B,MAEF,QACM7M,EAAUM,cAAcmE,cAC1BzE,EAAUM,cAAcjC,KAAOW,KAAKF,MAAMwB,cAAcjC,KACxDsQ,EAASrC,YAActM,EAAUM,cAAcmE,cAMrD,GAAIzE,EAAU4O,aAAaC,OAASC,eAAaC,OAAOC,uBACrDhP,EAAUM,cAAcjC,IAAMW,KAAKQ,MAAM8M,aAAetM,EAAUK,WAAWG,OAAQ,CACtF,IAAM8O,EAAStQ,KAAKQ,MAAM8M,YACpBrD,EAAQjJ,EAAUK,WAAWkP,KAAK,SAAA9O,GAAA,OACtCA,EAAMpC,KACJoC,EAAMgE,eAAiB6K,GAAU7O,EAAM8B,MAAQ+M,GAAU7O,EAAMiE,eAAiB4K,KAGhFrG,GACFjJ,EAAUY,YAAYqI,GAI1BjK,KAAKmB,SAAS,SAAAX,GAAA,OAAAC,KACTkP,GACH9C,gBAAgB,EAAAhB,EAAA2E,aAAYxP,EAAWR,EAAMqM,+DAI9B4D,EAAWC,GAC5B1Q,KAAK2Q,mBAAmBD,GACxB1Q,KAAK4Q,qBAAqBF,GAC1B1Q,KAAK6Q,yBAAyBH,kDAI9B1Q,KAAKwP,gBAAgBsB,oBAAoB,YAAa9Q,KAAKkO,8DA0KxC6C,GACnB/Q,KAAKmP,kBAAoB4B,sDAGCA,GAC1B/Q,KAAKoP,yBAA2B2B,0CAGlBA,GACd/Q,KAAKqP,aAAe0B,sCAGVA,GACV/Q,KAAKsP,SAAWyB,6CAGCA,GACjB/Q,KAAKwP,gBAAkBuB,+CAGJA,GACnB/Q,KAAKuP,sBAAwBwB,4CAGbA,GAChB/Q,KAAKyP,eAAiBsB,wCAhMxB5C,4BAA8B,SAAC6C,GAC7BrP,EAAKR,UACHyL,qBAAsBoE,UAI1B5C,sBAAwB,WACtBzM,EAAKR,UACHyM,aAAa,IAGfjM,EAAK7B,MAAM8H,YAAYjG,EAAK7B,MAAMgD,eAClCnB,EAAKsP,sBACLtP,EAAK6N,gBAAgB0B,cAAc,IAAIC,YAAY,cAE/CC,SAAS,WAKf5C,YAAc,SAAC6C,GACb,IAAMC,EAAMD,EAAME,OAElB5P,EAAKR,UACHgM,uBAAuB,EACvBE,iBACEmE,MAAOF,EAAIG,aACXC,OAAQJ,EAAIK,cACZC,YAAaN,EAAIG,aAAeH,EAAIK,eAEtClE,eAAe,EACfC,gBAAgB,UAIpBmE,aAAe,WACblQ,EAAKR,UACHgM,uBAAuB,EACvBE,mBACAK,gBAAgB,EAChBD,eAAe,UAInBY,uBAAyB,SAACjB,GACxBzL,EAAKR,UACHiM,2BAIJkB,qBAAuB,SAACwD,GACtB,IAAIF,SACAG,SAEJ,GAAsB,WAAlBD,EACFF,EAAcjQ,EAAKnB,MAAM6M,gBAAgBuE,YACzCG,EAAmB,YACd,IAAsB,UAAlBD,EAIT,MAAM,IAAIE,MAAJ,0BAAoCF,EAApC,KAHNF,EAAe,EAAIjQ,EAAKnB,MAAM6M,gBAAgBuE,YAC9CG,EAAmB,SAKrB,OAAO,SAACE,GACN,IAAMC,OAA0BvQ,EAAKnB,MAAM6M,iBACrC8E,EAAuBC,SAASH,EAAgB,IAItD,GAFAC,EAAmBJ,GAAiBO,MAAMF,GAAwB,GAAKA,EAEnExQ,EAAKnB,MAAMoM,qBAAsB,CACnC,IAAM0F,EAAoBhQ,KAAKiQ,MAAMJ,EAAuBP,GAC5DM,EAAmBH,GAAoBM,MAAMC,GAAqB,GAAKA,EAEzE3Q,EAAKR,UAAWkM,gBAAiB6E,WAIrCzD,sBAAwB,WAClB9M,EAAK6Q,oBACP7Q,EAAKR,UACH8L,0BAA2B,KAC3BY,mBAAmB,EACnBC,WAAY,IAEdnM,EAAK7B,MAAMqQ,2BAIfzB,0BAA4B,WAC1B/M,EAAKR,UACH+L,6BACAM,yBAAyB,EACzBG,wBAAwB,EACxBE,mBAAmB,EACnBC,WAAY,UAIhBS,yBAA2B,WACzB,IAAMkE,EAA0B9Q,EAAK+Q,2BAC/BC,EAAyBhR,EAAKiR,0BAC9BC,EAAqBJ,EAAwBK,SAAWH,EAAuBG,QAE/E5F,KAiBN,GAfKuF,EAAwBK,UAC3B5F,EAAA,iBAAgDuF,EAAwBM,mBAGrEJ,EAAuBG,UAC1B5F,EAAA,WAA0CyF,EAAuBI,mBAGnEpR,EAAKR,UACH0M,mBAAoBgF,EACpBrF,wBAAyBiF,EAAwBK,QACjDnG,wBAAyBgG,EAAuBG,QAChD5F,8BAGE2F,EAAoB,CAEtB,IAAMG,EAAgBrR,EAAK0N,cAAgB1N,EAAK6N,gBAC1CyD,EAAUtR,EAAKnB,MAAM4M,kBAAoB,GAC/C4F,EAAc9B,cAAc,IAAIC,YAAY,cAExCC,SAAS,EACT8B,QACExB,OAAQ/P,EAAKwR,2BAA2B,UACxC3B,MAAO7P,EAAKwR,2BAA2B,SACvC3O,IAAK7C,EAAKnB,MAAM8M,YAChB7I,IAAKwO,EACLG,MAAOzR,EAAKnB,MAAM+M,eAKxB5L,EAAKR,UACHyM,aAAa,IAGfjM,EAAKsP,2BAEDtP,EAAK8N,gBACP9N,EAAK8N,eAAe4D,cAK1B1E,mBAAqB,WACW,IAA1BhN,EAAKnB,MAAMsN,YACbnM,EAAK7B,MAAMqQ,oBACXxO,EAAKwN,kBAAkBkE,SACY,IAA1B1R,EAAKnB,MAAMsN,aAChBnM,EAAKnB,MAAMwN,yBACbrM,EAAK4N,sBAAsB8D,QAE3B1R,EAAKyN,yBAAyBiE,SAIlC1R,EAAKR,UACH0M,mBAAmB,UAgCvByF,oBAAsB,SAACxB,GACrB,OAAInQ,EAAK2N,UAGLkC,MAAO7P,EAAK2N,SAASmC,aACrBC,OAAQ/P,EAAK2N,SAASqC,eAECG,GAEpB,WAGTqB,2BAA6B,SAACrB,GAC5B,OAAKnQ,EAAKnB,MAAM6M,gBAAgByE,GAGzBnQ,EAAKnB,MAAM6M,gBAAgByE,GAFzBnQ,EAAK2R,oBAAoBxB,SAKpCyB,yBAA2B,kBACzB7P,EAAAC,QAAAC,cAAC6D,EAAA+L,UACCC,OAAQ/P,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAAS4L,uCAC1CxL,GAzV6B,2BA0V7BqU,eAAgBhQ,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASuL,0CAClDsI,QAASnR,EAAKnB,MAAMgN,wBACpBmG,SACEC,OAAQC,UAAQD,OAAOE,QAEzBC,uBAAwBrQ,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASqL,2BAE1D5G,EAAAC,QAAAC,cAAC6D,EAAAuM,WACCjO,KAAK,mBACLiC,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAAS0L,sCAGtBsJ,YAAA,0BACA1U,YAAaoC,EAAKuS,iCAClB7U,GA3WmB,mBA4WnBwQ,KAAK,OACLsE,MAAOxS,EAAKnB,MAAM4M,iBAClBgH,OAAQzS,EAAK0M,uBACbgG,SAAU1S,EAAKkN,qCAKrByF,iBAAmB,kBACjB5Q,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASiM,yBAE9B,SAAAqJ,GAAA,OACE7Q,EAAAC,QAAAC,cAAA,KACE2N,OAAO,SACPiD,IAAI,sBACJC,KAAM9S,EAAK7B,MAAMmH,8BAEhBsN,WAOXL,+BAAiC,kBAC/BxQ,EAAAC,QAAAC,cAACF,EAAAC,QAAM+Q,SAAP,KACEhR,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASyL,4CACjC,IACA/I,EAAK2S,mBACL,IACD5Q,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAAS2L,kDAItC+J,wBAA0B,kBACxBjR,EAAAC,QAAAC,cAAC6D,EAAA+L,UACCC,OAAQ/P,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAAS6L,iCAC1CzL,GA/Y4B,0BAgZ5BqU,eAAgBhQ,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASwL,yCAClDqI,QAASnR,EAAKnB,MAAMmM,wBACpBgH,SACEC,OAAQC,UAAQD,OAAOE,QAEzBC,uBAAwBrQ,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASqL,2BAE1D5G,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,mBACrBR,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,oBACrBR,EAAAC,QAAAC,cAAC6D,EAAAuM,WACCjO,KAAK,aACLiC,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASmM,gCAGtB/L,GA9ZS,aA+ZTwQ,KAAK,SACLsE,MAAO,UAAWxS,EAAKnB,MAAM6M,gBAAkB1L,EAAKnB,MAAM6M,gBAAgBmE,MAAQ,GAClF4C,OAAQzS,EAAK2M,qBAAqB,YAGtC5K,EAAAC,QAAAC,cAAA,QAAMI,UAAWE,UAAO,wBAAyB0Q,cAAY,QAA7D,KACAlR,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,oBACrBR,EAAAC,QAAAC,cAAC6D,EAAAuM,WACCjO,KAxaU,cAyaViC,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAAS8L,iCAGtB1L,GAAG,cACHwQ,KAAK,SACLsE,MAAO,WAAYxS,EAAKnB,MAAM6M,gBAAkB1L,EAAKnB,MAAM6M,gBAAgBqE,OAAS,GACpF0C,OAAQzS,EAAK2M,qBAAqB,cAIxC5K,EAAAC,QAAAC,cAAC6D,EAAAoN,UACCxV,GAAG,kBACH0G,KAAK,kBACLiC,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASkM,kDAGtB6F,QAASrP,EAAKnB,MAAMoM,qBACpBkI,SAAUnT,EAAKwM,qCAKrB4G,oBAAsB,kBACpB,EAAAC,EAAArR,SAAmBhC,EAAKnB,MAAM8M,YAAa,WAAY3L,EAAKnB,MAAMwM,oBAGpEiI,SAAW,kBACTvR,EAAAC,QAAAC,cAAA,OACEa,IAAI,GACJT,WAAW,EAAAC,EAAAN,SAAWO,UAAO,wBAA0BgR,WAAYvT,EAAKnB,MAAMiN,gBAC9EjJ,IAAK7C,EAAKoT,sBACVI,OAAQxT,EAAK6M,YACb4G,QAASzT,EAAKkQ,aACdd,IAAKpP,EAAKoN,oBAQdsG,2BAA6B,kBAC3B3R,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,8BACrBR,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAAS+L,gCAC/B,SAAAuJ,GAAA,OACE7Q,EAAAC,QAAAC,cAAA,QAAMI,WAAW,EAAAC,EAAAN,UAAauR,UAAWvT,EAAKnB,MAAMiN,iBAClD8G,KAGN5S,EAAKnB,MAAM8M,aAAe3L,EAAKsT,kBAIpCK,gBAAkB,kBAEhB5R,EAAAC,QAAAC,cAAA,OAAKgR,eAAA,GACHlR,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAAS+L,iCAClCtH,EAAAC,QAAAC,cAAA,OAAKI,UAAWE,UAAO,4BACpBvC,EAAK0T,qCAKZE,qBAAuB,WACrB,IAAIC,SAiCJ,OA/B8B,IAA1B7T,EAAKnB,MAAMsN,WACb0H,EACE9R,EAAAC,QAAAC,cAACF,EAAAC,QAAM+Q,SAAP,KACG/S,EAAK8T,+BAGyB,IAA1B9T,EAAKnB,MAAMsN,aACpB0H,EACE9R,EAAAC,QAAAC,cAAA,WACEF,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASsL,qCAClBmL,QAAQ,QAEVhS,EAAAC,QAAAC,cAAA,OAAKI,UAAU,QACbN,EAAAC,QAAAC,cAAA,MAAII,UAAU,eACV5D,OAAOmB,KAAKI,EAAKnB,MAAM0M,2BAA2ByI,OAAO,SAACC,EAAaC,GACvE,IAAM1B,EAAQxS,EAAKnB,MAAM0M,0BAA0B2I,GAEnD,GAAI1B,EAAO,CACT,IAAM2B,EAAepS,EAAAC,QAAAC,cAAA,MAAIU,IAAA,SAAcuR,GAAYnS,EAAAC,QAAAC,cAAA,KAAG6Q,KAAA,IAAUoB,GAAY1B,EAAzB,MACnDyB,EAAYG,KAAKD,GAGnB,OAAOF,WAQZJ,QAGTQ,eAAiB,kBACftS,EAAAC,QAAAC,cAAC6D,EAAAwO,aACCC,UAAU,SACVV,OAAQ7T,EAAK4T,uBACbY,QAASxU,EAAKgN,mBACdyH,KAAMzU,EAAKnB,MAAMqN,kBACjBkD,IAAKpP,EAAKuN,0BAIdmH,eAAiB,WACf,IAAIC,SAcJ,OAZEA,EAD4B,IAA1B3U,EAAKnB,MAAMsN,YAAoBnM,EAAKnB,MAAMuN,gBAE1CrK,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASsM,0BAKpB7H,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASoM,4BAKtB3H,EAAAC,QAAAC,cAAA,OAAK2S,YAAU,UACXD,SAKRE,aAAe,WACb,IAAIC,SAMJ,OAL8B,IAA1B9U,EAAKnB,MAAMsN,WACb2I,EAAO9U,EAAK+U,6BACuB,IAA1B/U,EAAKnB,MAAMsN,aACpB2I,EAAO9U,EAAKgV,6BAEPF,QAGTG,qCAAuC,SAAC/G,GACtC,OAAQA,GACN,KAAK/C,YAAU+J,OACb,OAAQnT,EAAAC,QAAAC,cAACkT,EAAAnT,QAAD,MACV,KAAKmJ,YAAUiK,UACb,OAAO,KACT,KAAKjK,YAAUkK,WACb,OACEtT,EAAAC,QAAAC,cAACF,EAAAC,QAAM+Q,SAAP,KACEhR,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASmL,yCAA0CsL,QAAQ,OACpFhS,EAAAC,QAAAC,cAACqT,EAAAtT,QAAD,OAGN,KAAKmJ,YAAUC,SACb,OACErJ,EAAAC,QAAAC,cAAA,OAAKI,UAAU,oBACbN,EAAAC,QAAAC,cAAA,QAAMI,UAAU,kBAAkB4Q,eAAA,GAChClR,EAAAC,QAAAC,cAAA,QACEI,WAAW,EAAAC,EAAAN,UACTuT,UAAkBC,GAClBD,UAAkB,cAClBA,UAAkB,gBAIxBxT,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASiL,0CAGxC,QACE,MAAM,IAAI8H,MAAJ,oBAA8BnC,EAA9B,YAIZ6G,2BAA6B,kBAC3BhT,EAAAC,QAAAC,cAACF,EAAAC,QAAM+Q,SAAP,KACEhR,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACbN,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACZrC,EAAKqU,mBAGVtS,EAAAC,QAAAC,cAAA,OAAKI,UAAU,YACbN,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACbN,EAAAC,QAAAC,cAACwT,EAAAzT,SACC0T,aAAc,EACdC,cAAe,GACfC,kBAAmB,UACnBC,cAAA,EACAC,UAAW9V,EAAKiN,yBAItBlL,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACbN,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACZrC,EAAKiV,qCAAqCjV,EAAKnB,MAAMqM,mBAGxDlL,EAAK6Q,mBAAqB7Q,EAAKnB,MAAM8M,cACrC5J,EAAAC,QAAAC,cAAA,OAAKI,UAAU,YACbN,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OAEZrC,EAAKnB,MAAM8M,aACV5J,EAAAC,QAAAC,cAAA,OACEa,IAAI,GACJD,IAAK7C,EAAKoT,sBACVI,OAAQxT,EAAK6M,YACb4G,QAASzT,EAAKkQ,aACdd,IAAKpP,EAAKoN,YACVqE,OAASsE,QAAS,UAGtBhU,EAAAC,QAAAC,cAAA,QAAMI,UAAWE,UAAO,gBAAiB6M,IAAKpP,EAAKmN,iBAChDnN,EAAK4R,2BACL5R,EAAKgT,oCAQlBgC,0BAA4B,kBAC1BjT,EAAAC,QAAAC,cAACF,EAAAC,QAAM+Q,SAAP,KACG/S,EAAKqU,iBACNtS,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACZrC,EAAKnB,MAAMwN,0BAA4BrM,EAAKgW,yBAE/CjU,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACbN,EAAAC,QAAAC,cAAA,OAAKI,UAAU,YACZrC,EAAK2T,mBAER5R,EAAAC,QAAAC,cAAA,OAAKI,UAAU,OACbN,EAAAC,QAAAC,cAAA,QAAMI,UAAWE,UAAO,gBAAiB6M,IAAKpP,EAAKmN,iBAChDnN,EAAK4R,2BACL5R,EAAKgT,oCAOhBiD,gBAAkB,WAChB,IAAIC,SAMJ,OAL8B,IAA1BlW,EAAKnB,MAAMsN,WACb+J,EAAUlW,EAAKmW,uBACoB,IAA1BnW,EAAKnB,MAAMsN,aACpB+J,EAAUlW,EAAKmW,wBAEVD,QAGTE,kBAAoB,kBAClBrU,EAAAC,QAAAC,cAAC6D,EAAAI,QACCG,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASuM,+BAGtB1D,WAAW,UACXkQ,UAAWrW,EAAK6Q,kBAChBzK,QAASpG,EAAK8M,8BAIlBkJ,sBAAwB,kBACtBjU,EAAAC,QAAAC,cAAC6D,EAAAI,QACCG,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASwM,mCAGtB3D,WAAW,OACXC,QAASpG,EAAK+M,0BACd2F,SAAU1S,EAAKsN,6BAInB6I,qBAAuB,kBACrBpU,EAAAC,QAAAC,cAAC6D,EAAAI,QACCG,MACEtE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASjJ,UAASgM,kCAGtBnD,WAAW,UACXkQ,UAAWrW,EAAK6Q,oBAAsB7Q,EAAKnB,MAAM8M,YACjDvF,QAASpG,EAAK4M,iCAIlBkH,4BAA8B,WAC5B,IAAIvN,SAUJ,OARIvG,EAAKnB,MAAMyM,4BACb/E,EACExE,EAAAC,QAAAC,cAACqE,EAAAtE,SACCuE,QAASvG,EAAKnB,MAAMyM,6BAKnB/E,QAGT+I,oBAAsB,WACpBtP,EAAK7B,MAAMmY,WAAW,EAAGtW,EAAK7B,MAAMgD,eACpCnB,EAAK7B,MAAMoY,2BAGbhK,gBAAkB,SAACmD,GACjB,IAAM8G,EAAc9G,EAAM6B,OAAO1O,IAC7B4T,GAAqB,EACrBD,IACFC,GAAqB,GAGvBzW,EAAKR,SAAS,SAACX,EAAOV,GAAR,OAAAW,KAETiM,GACHG,gBAAgB,EAAAhB,EAAA2E,aAAY1Q,EAAOU,EAAMqM,gBACzCG,aAAcqE,EAAM6B,OAAOmF,cAAgB,GAC3CjL,iBAAkBiE,EAAM6B,OAAOzO,KAAO,GACtC4I,gBAAkBgE,EAAM6B,OAAO1B,OAASH,EAAM6B,OAAOxB,QACnDF,MAAOH,EAAM6B,OAAO1B,MACpBE,OAAQL,EAAM6B,OAAOxB,OACrBE,YAAaP,EAAM6B,OAAO1B,MAAQH,EAAM6B,OAAOxB,WAEjDpE,YAAa6K,GAAe,GAC5B5K,WAAY8D,EAAM6B,OAAOE,OAAS,GAClCrF,iBAAkBqK,EAElB3K,gBAAiB0K,EACjBvK,aAAa,EACbE,WAAY,EACZE,0BAA0B,MAG5BrM,EAAK7B,MAAMwY,WAAYrM,YAAcE,QAAQ,GAAQ7F,SAAU,KAAQ3E,EAAK7B,MAAMgD,qBAGpF4P,yBAA2B,WACzB,OAASI,SAAS,SAGpBF,wBAA0B,WACxB,IAAI2F,GAAazF,SAAS,GADI0F,EAEJ7W,EAAKnB,MAAM6M,gBAA7BqE,EAFsB8G,EAEtB9G,OAAQF,EAFcgH,EAEdhH,MAYhB,OAVK7P,EAAK8W,yBAAyB/G,IAAY/P,EAAK8W,yBAAyBjH,KAC3E+G,GACEzF,SAAS,EACTC,kBACGrP,EAAAC,QAAAC,cAACqE,EAAAtE,SACAuE,QAASjJ,UAASwL,yCAEtBiO,sBAAuBhV,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASqL,4BAGtDiO,QAGT5H,mBAAqB,SAACD,GAChB/O,EAAKnB,MAAMqN,oBAAsB6C,EAAU7C,mBAC7ClM,EAAK8N,eAAe4D,cAIxBb,gBAAkB,kBAAO7Q,EAAK7B,MAAMwB,eACkB,IAAjDlB,OAAOmB,KAAKI,EAAK7B,MAAMwB,eAAeE,aAE3CiX,yBAA2B,SAACE,GAC1B,MAAY,KAARA,QAAsBC,IAARD,MAGdE,OAAOC,UAAUH,IAAQA,EAAM,SAMrC/H,qBAAuB,SAACF,GACQ,IAA1B/O,EAAKnB,MAAMsN,YAA6C,IAAzB4C,EAAU5C,YACxCnM,EAAKnB,MAAMwN,0BACdrM,EAAK4N,sBAAsB8D,cAI/BxC,yBAA2B,SAACH,GACI,IAA1B/O,EAAKnB,MAAMsN,YAA6C,IAAzB4C,EAAU5C,YACxC4C,EAAU9C,aACbjM,EAAKwN,kBAAkBkE,cAI3BzO,OAAS,kBACPlB,EAAAC,QAAAC,cAAA,OACEmN,IAAKpP,EAAKqN,mBACV3P,GAzzBiB,gBA2zBjBqE,EAAAC,QAAAC,cAAA,OACEmV,eAAA,EACAxC,YAAW5U,EAAKnB,MAAMoN,YAAc,SAAW,MAC/CoL,gBAAc,OACdhV,UAAU,WAEVN,EAAAC,QAAAC,cAACkI,EAAD,OAEFpI,EAAAC,QAAAC,cAAC6D,EAAAwR,OACC7C,KAAMzU,EAAKnB,MAAMoN,YACjBlJ,MAAO/C,EAAK0U,iBACZI,KAAM9U,EAAK6U,eACX0C,UAAWxV,EAAAC,QAAAC,cAACqE,EAAAtE,SAAeuE,QAASjJ,UAASoL,6BAC7C8L,QAASxU,EAAKyM,sBACdyJ,SAAUlW,EAAKiW,mBACfuB,eAAA,+BAjzBalL,EAuzBrBA,EAAe/I,WACb7D,WAAY8D,UAAUC,QAAQD,UAAUiU,QAAQxT,WAChDgK,aAAczK,UAAUE,OACtB6K,SAAU/K,UAAUiU,OACpBvJ,KAAM1K,UAAUG,SACfM,WACHuK,kBAAmBhL,UAAUqB,KAAKZ,WAClCgC,YAAazC,UAAUqB,KAAKZ,WAC5BsS,mBAAoB/S,UAAUqB,KAAKZ,WACnC9C,cAAeqC,UAAUE,OACvBQ,KAAMV,UAAUG,OAChBQ,SAAUX,UAAUG,OACpBS,KAAMZ,UAAUG,OAChBU,sBAAuBb,UAAUG,OACjCW,IAAKd,UAAUG,OACfY,IAAKf,UAAUG,OACfjG,GAAI8F,UAAUG,OACda,SAAUhB,UAAUG,OACpBvC,SAAUoC,UAAUG,SACnBM,WACHqB,6BAA8B9B,UAAUG,OAAOM,WAC/C0S,UAAWnT,UAAUqB,KAAKZ,WAC1BhE,YAAauD,UAAUqB,KAAKZ,WAC5BtE,cAAe6D,UAAUE,OACvBpC,aAAckC,UAAUG,OACxBC,aAAcJ,UAAUG,OACxB/B,IAAK4B,UAAUG,OACfE,WAAYL,UAAUG,OACtBjG,GAAI8F,UAAUG,OACdG,aAAcN,UAAUG,OACxBhC,UAAW6B,UAAUG,OACrBI,aAAcP,UAAUG,SACvBM,WACHqS,WAAY9S,UAAUqB,KAAKZ,yQCv5B7Ba,EAAAvH,EAAA,GAEAwH,EAAAxH,EAAA,yCACAyH,EAAAzH,EAAA,IAaA,IAwBMma,GAAwB,EAAA5S,EAAAI,SAxBN,SAACrG,GAAU,IAAAuL,EACSvL,EAAM4G,SAAS4E,QAAQC,WAA9CC,GADcH,EACzBI,8HADyBC,CAAAL,GAAA,YAE3BO,OAA4B9L,EAAM4G,SAAS4E,SAASC,WAAYC,IACtE,OACE7K,WAAYb,EAAMsG,OAClB8I,aAAcpP,EAAM4G,SAASwM,OAC7B9Q,cAAetC,EAAMuG,cAAcC,OACnCC,6BAA8BzG,EAAMuG,cAAcG,YAAYC,oBAC9DkF,gBAAiBC,EACjBC,eAAgB/L,EAAM4G,SAASoF,OAC/BlL,cAAed,EAAM4G,SAASE,OAAOhG,cACrCsS,OAAQpT,EAAM4G,SAASwM,SAIA,SAAArM,GAAA,OACzB4I,kBAAmB,kBAAM5I,GAAS,EAAAZ,EAAAwJ,uBAClCvI,YAAa,SAAA9E,GAAA,OAAiByE,GAAS,EAAAZ,EAAAyB,cAAa,GAAItF,KACxDoV,mBAAoB,kBAAM3Q,GAAS,EAAAZ,EAAAuR,wBACnCI,UAAW,SAACgB,EAASxW,GAAV,OAA4ByE,GAAS,EAAAZ,EAAA2R,WAAUgB,EAASxW,KACnElB,YAAa,SAACH,EAAOC,GAAR,OAAkB6F,GAAS,EAAAZ,EAAA/E,aAAYH,EAAOC,KAC3DuW,WAAY,SAAC/W,EAAM4B,GAAP,OAAyByE,GAAS,EAAAZ,EAAA4S,YAAWrY,EAAM4B,OAGnC,CAG5BmL,qBAEaoL,qBCvCf,IACA,IAAAG,EAAA,IAAAC,OAAAtI,YAAA,QAEA,GADAqI,EAAAzV,kBACA,IAAAyV,EAAAE,iBAGA,UAAA1H,MAAA,6BAEC,MAAAlO,GACD,IAAAqN,EAAA,SAAAE,EAAAsI,GACA,IAAAC,EAAAC,EAsBA,OArBAF,MACAvI,SAAA,EACA0I,YAAA,EACA5G,YAAA0F,IAGAgB,EAAAG,SAAAC,YAAA,gBACAC,gBAAA5I,EAAAsI,EAAAvI,QAAAuI,EAAAG,WAAAH,EAAAzG,QACA2G,EAAAD,EAAA7V,eACA6V,EAAA7V,eAAA,WACA8V,EAAAvZ,KAAAN,MACA,IACAI,OAAA8Z,eAAAla,KAAA,oBACAma,IAAA,WACA,YAGO,MAAArW,GACP9D,KAAA0Z,kBAAA,IAGAE,GAGAzI,EAAAiJ,UAAAX,OAAAY,MAAAD,UACAX,OAAAtI,8DCjCA,QAAAjS,EAAA,QACAA,EAAA,KACAob,EAAApb,EAAA,GACAuH,EAAAvH,EAAA,GACAA,EAAA,KAEAA,EAAA,IACA,QAAAA,EAAA,UACAA,EAAA,SACAA,EAAA,yDAjBuB,oBAAXua,SAA2BA,OAAOc,qBACzB,IAAXC,IAA2BA,EAAOD,iBAE1Crb,EAAQ,IAiBV,IAAMub,GAAW,EAAAC,EAAA/W,WAajBgX,UAAS/V,OAAOlB,EAAAC,QAAAC,cAVJ,kBACVF,EAAAC,QAAAC,cAAC0W,EAAAM,cAAaC,OAAQJ,EAASI,OAAQ5b,SAAUwb,EAASxb,UACxDyE,EAAAC,QAAAC,cAAC6C,EAAAqU,UAASC,MAAOA,WACfrX,EAAAC,QAAAC,cAAA,OAAKI,UAAU,eACbN,EAAAC,QAAAC,cAACqT,EAAAtT,QAAD,UAMQ,MAASoW,SAASiB,eAAe","file":"editImageModal.min.js","sourcesContent":["// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"root\",\"SFE\":\"SFE\",\"m-0\":\"m-0\",\"mt-0\":\"mt-0\",\"my-0\":\"my-0\",\"mr-0\":\"mr-0\",\"mx-0\":\"mx-0\",\"mb-0\":\"mb-0\",\"ml-0\":\"ml-0\",\"m-1\":\"m-1\",\"mt-1\":\"mt-1\",\"my-1\":\"my-1\",\"mr-1\":\"mr-1\",\"mx-1\":\"mx-1\",\"mb-1\":\"mb-1\",\"ml-1\":\"ml-1\",\"m-2\":\"m-2\",\"mt-2\":\"mt-2\",\"my-2\":\"my-2\",\"mr-2\":\"mr-2\",\"mx-2\":\"mx-2\",\"mb-2\":\"mb-2\",\"ml-2\":\"ml-2\",\"m-3\":\"m-3\",\"mt-3\":\"mt-3\",\"my-3\":\"my-3\",\"mr-3\":\"mr-3\",\"mx-3\":\"mx-3\",\"mb-3\":\"mb-3\",\"ml-3\":\"ml-3\",\"m-4\":\"m-4\",\"mt-4\":\"mt-4\",\"my-4\":\"my-4\",\"mr-4\":\"mr-4\",\"mx-4\":\"mx-4\",\"mb-4\":\"mb-4\",\"ml-4\":\"ml-4\",\"m-5\":\"m-5\",\"mt-5\":\"mt-5\",\"my-5\":\"my-5\",\"mr-5\":\"mr-5\",\"mx-5\":\"mx-5\",\"mb-5\":\"mb-5\",\"ml-5\":\"ml-5\",\"p-0\":\"p-0\",\"pt-0\":\"pt-0\",\"py-0\":\"py-0\",\"pr-0\":\"pr-0\",\"px-0\":\"px-0\",\"pb-0\":\"pb-0\",\"pl-0\":\"pl-0\",\"p-1\":\"p-1\",\"pt-1\":\"pt-1\",\"py-1\":\"py-1\",\"pr-1\":\"pr-1\",\"px-1\":\"px-1\",\"pb-1\":\"pb-1\",\"pl-1\":\"pl-1\",\"p-2\":\"p-2\",\"pt-2\":\"pt-2\",\"py-2\":\"py-2\",\"pr-2\":\"pr-2\",\"px-2\":\"px-2\",\"pb-2\":\"pb-2\",\"pl-2\":\"pl-2\",\"p-3\":\"p-3\",\"pt-3\":\"pt-3\",\"py-3\":\"py-3\",\"pr-3\":\"pr-3\",\"px-3\":\"px-3\",\"pb-3\":\"pb-3\",\"pl-3\":\"pl-3\",\"p-4\":\"p-4\",\"pt-4\":\"pt-4\",\"py-4\":\"py-4\",\"pr-4\":\"pr-4\",\"px-4\":\"px-4\",\"pb-4\":\"pb-4\",\"pl-4\":\"pl-4\",\"p-5\":\"p-5\",\"pt-5\":\"pt-5\",\"py-5\":\"py-5\",\"pr-5\":\"pr-5\",\"px-5\":\"px-5\",\"pb-5\":\"pb-5\",\"pl-5\":\"pl-5\",\"m-n1\":\"m-n1\",\"mt-n1\":\"mt-n1\",\"my-n1\":\"my-n1\",\"mr-n1\":\"mr-n1\",\"mx-n1\":\"mx-n1\",\"mb-n1\":\"mb-n1\",\"ml-n1\":\"ml-n1\",\"m-n2\":\"m-n2\",\"mt-n2\":\"mt-n2\",\"my-n2\":\"my-n2\",\"mr-n2\":\"mr-n2\",\"mx-n2\":\"mx-n2\",\"mb-n2\":\"mb-n2\",\"ml-n2\":\"ml-n2\",\"m-n3\":\"m-n3\",\"mt-n3\":\"mt-n3\",\"my-n3\":\"my-n3\",\"mr-n3\":\"mr-n3\",\"mx-n3\":\"mx-n3\",\"mb-n3\":\"mb-n3\",\"ml-n3\":\"ml-n3\",\"m-n4\":\"m-n4\",\"mt-n4\":\"mt-n4\",\"my-n4\":\"my-n4\",\"mr-n4\":\"mr-n4\",\"mx-n4\":\"mx-n4\",\"mb-n4\":\"mb-n4\",\"ml-n4\":\"ml-n4\",\"m-n5\":\"m-n5\",\"mt-n5\":\"mt-n5\",\"my-n5\":\"my-n5\",\"mr-n5\":\"mr-n5\",\"mx-n5\":\"mx-n5\",\"mb-n5\":\"mb-n5\",\"ml-n5\":\"ml-n5\",\"m-auto\":\"m-auto\",\"mt-auto\":\"mt-auto\",\"my-auto\":\"my-auto\",\"mr-auto\":\"mr-auto\",\"mx-auto\":\"mx-auto\",\"mb-auto\":\"mb-auto\",\"ml-auto\":\"ml-auto\",\"m-sm-0\":\"m-sm-0\",\"mt-sm-0\":\"mt-sm-0\",\"my-sm-0\":\"my-sm-0\",\"mr-sm-0\":\"mr-sm-0\",\"mx-sm-0\":\"mx-sm-0\",\"mb-sm-0\":\"mb-sm-0\",\"ml-sm-0\":\"ml-sm-0\",\"m-sm-1\":\"m-sm-1\",\"mt-sm-1\":\"mt-sm-1\",\"my-sm-1\":\"my-sm-1\",\"mr-sm-1\":\"mr-sm-1\",\"mx-sm-1\":\"mx-sm-1\",\"mb-sm-1\":\"mb-sm-1\",\"ml-sm-1\":\"ml-sm-1\",\"m-sm-2\":\"m-sm-2\",\"mt-sm-2\":\"mt-sm-2\",\"my-sm-2\":\"my-sm-2\",\"mr-sm-2\":\"mr-sm-2\",\"mx-sm-2\":\"mx-sm-2\",\"mb-sm-2\":\"mb-sm-2\",\"ml-sm-2\":\"ml-sm-2\",\"m-sm-3\":\"m-sm-3\",\"mt-sm-3\":\"mt-sm-3\",\"my-sm-3\":\"my-sm-3\",\"mr-sm-3\":\"mr-sm-3\",\"mx-sm-3\":\"mx-sm-3\",\"mb-sm-3\":\"mb-sm-3\",\"ml-sm-3\":\"ml-sm-3\",\"m-sm-4\":\"m-sm-4\",\"mt-sm-4\":\"mt-sm-4\",\"my-sm-4\":\"my-sm-4\",\"mr-sm-4\":\"mr-sm-4\",\"mx-sm-4\":\"mx-sm-4\",\"mb-sm-4\":\"mb-sm-4\",\"ml-sm-4\":\"ml-sm-4\",\"m-sm-5\":\"m-sm-5\",\"mt-sm-5\":\"mt-sm-5\",\"my-sm-5\":\"my-sm-5\",\"mr-sm-5\":\"mr-sm-5\",\"mx-sm-5\":\"mx-sm-5\",\"mb-sm-5\":\"mb-sm-5\",\"ml-sm-5\":\"ml-sm-5\",\"p-sm-0\":\"p-sm-0\",\"pt-sm-0\":\"pt-sm-0\",\"py-sm-0\":\"py-sm-0\",\"pr-sm-0\":\"pr-sm-0\",\"px-sm-0\":\"px-sm-0\",\"pb-sm-0\":\"pb-sm-0\",\"pl-sm-0\":\"pl-sm-0\",\"p-sm-1\":\"p-sm-1\",\"pt-sm-1\":\"pt-sm-1\",\"py-sm-1\":\"py-sm-1\",\"pr-sm-1\":\"pr-sm-1\",\"px-sm-1\":\"px-sm-1\",\"pb-sm-1\":\"pb-sm-1\",\"pl-sm-1\":\"pl-sm-1\",\"p-sm-2\":\"p-sm-2\",\"pt-sm-2\":\"pt-sm-2\",\"py-sm-2\":\"py-sm-2\",\"pr-sm-2\":\"pr-sm-2\",\"px-sm-2\":\"px-sm-2\",\"pb-sm-2\":\"pb-sm-2\",\"pl-sm-2\":\"pl-sm-2\",\"p-sm-3\":\"p-sm-3\",\"pt-sm-3\":\"pt-sm-3\",\"py-sm-3\":\"py-sm-3\",\"pr-sm-3\":\"pr-sm-3\",\"px-sm-3\":\"px-sm-3\",\"pb-sm-3\":\"pb-sm-3\",\"pl-sm-3\":\"pl-sm-3\",\"p-sm-4\":\"p-sm-4\",\"pt-sm-4\":\"pt-sm-4\",\"py-sm-4\":\"py-sm-4\",\"pr-sm-4\":\"pr-sm-4\",\"px-sm-4\":\"px-sm-4\",\"pb-sm-4\":\"pb-sm-4\",\"pl-sm-4\":\"pl-sm-4\",\"p-sm-5\":\"p-sm-5\",\"pt-sm-5\":\"pt-sm-5\",\"py-sm-5\":\"py-sm-5\",\"pr-sm-5\":\"pr-sm-5\",\"px-sm-5\":\"px-sm-5\",\"pb-sm-5\":\"pb-sm-5\",\"pl-sm-5\":\"pl-sm-5\",\"m-sm-n1\":\"m-sm-n1\",\"mt-sm-n1\":\"mt-sm-n1\",\"my-sm-n1\":\"my-sm-n1\",\"mr-sm-n1\":\"mr-sm-n1\",\"mx-sm-n1\":\"mx-sm-n1\",\"mb-sm-n1\":\"mb-sm-n1\",\"ml-sm-n1\":\"ml-sm-n1\",\"m-sm-n2\":\"m-sm-n2\",\"mt-sm-n2\":\"mt-sm-n2\",\"my-sm-n2\":\"my-sm-n2\",\"mr-sm-n2\":\"mr-sm-n2\",\"mx-sm-n2\":\"mx-sm-n2\",\"mb-sm-n2\":\"mb-sm-n2\",\"ml-sm-n2\":\"ml-sm-n2\",\"m-sm-n3\":\"m-sm-n3\",\"mt-sm-n3\":\"mt-sm-n3\",\"my-sm-n3\":\"my-sm-n3\",\"mr-sm-n3\":\"mr-sm-n3\",\"mx-sm-n3\":\"mx-sm-n3\",\"mb-sm-n3\":\"mb-sm-n3\",\"ml-sm-n3\":\"ml-sm-n3\",\"m-sm-n4\":\"m-sm-n4\",\"mt-sm-n4\":\"mt-sm-n4\",\"my-sm-n4\":\"my-sm-n4\",\"mr-sm-n4\":\"mr-sm-n4\",\"mx-sm-n4\":\"mx-sm-n4\",\"mb-sm-n4\":\"mb-sm-n4\",\"ml-sm-n4\":\"ml-sm-n4\",\"m-sm-n5\":\"m-sm-n5\",\"mt-sm-n5\":\"mt-sm-n5\",\"my-sm-n5\":\"my-sm-n5\",\"mr-sm-n5\":\"mr-sm-n5\",\"mx-sm-n5\":\"mx-sm-n5\",\"mb-sm-n5\":\"mb-sm-n5\",\"ml-sm-n5\":\"ml-sm-n5\",\"m-sm-auto\":\"m-sm-auto\",\"mt-sm-auto\":\"mt-sm-auto\",\"my-sm-auto\":\"my-sm-auto\",\"mr-sm-auto\":\"mr-sm-auto\",\"mx-sm-auto\":\"mx-sm-auto\",\"mb-sm-auto\":\"mb-sm-auto\",\"ml-sm-auto\":\"ml-sm-auto\",\"m-md-0\":\"m-md-0\",\"mt-md-0\":\"mt-md-0\",\"my-md-0\":\"my-md-0\",\"mr-md-0\":\"mr-md-0\",\"mx-md-0\":\"mx-md-0\",\"mb-md-0\":\"mb-md-0\",\"ml-md-0\":\"ml-md-0\",\"m-md-1\":\"m-md-1\",\"mt-md-1\":\"mt-md-1\",\"my-md-1\":\"my-md-1\",\"mr-md-1\":\"mr-md-1\",\"mx-md-1\":\"mx-md-1\",\"mb-md-1\":\"mb-md-1\",\"ml-md-1\":\"ml-md-1\",\"m-md-2\":\"m-md-2\",\"mt-md-2\":\"mt-md-2\",\"my-md-2\":\"my-md-2\",\"mr-md-2\":\"mr-md-2\",\"mx-md-2\":\"mx-md-2\",\"mb-md-2\":\"mb-md-2\",\"ml-md-2\":\"ml-md-2\",\"m-md-3\":\"m-md-3\",\"mt-md-3\":\"mt-md-3\",\"my-md-3\":\"my-md-3\",\"mr-md-3\":\"mr-md-3\",\"mx-md-3\":\"mx-md-3\",\"mb-md-3\":\"mb-md-3\",\"ml-md-3\":\"ml-md-3\",\"m-md-4\":\"m-md-4\",\"mt-md-4\":\"mt-md-4\",\"my-md-4\":\"my-md-4\",\"mr-md-4\":\"mr-md-4\",\"mx-md-4\":\"mx-md-4\",\"mb-md-4\":\"mb-md-4\",\"ml-md-4\":\"ml-md-4\",\"m-md-5\":\"m-md-5\",\"mt-md-5\":\"mt-md-5\",\"my-md-5\":\"my-md-5\",\"mr-md-5\":\"mr-md-5\",\"mx-md-5\":\"mx-md-5\",\"mb-md-5\":\"mb-md-5\",\"ml-md-5\":\"ml-md-5\",\"p-md-0\":\"p-md-0\",\"pt-md-0\":\"pt-md-0\",\"py-md-0\":\"py-md-0\",\"pr-md-0\":\"pr-md-0\",\"px-md-0\":\"px-md-0\",\"pb-md-0\":\"pb-md-0\",\"pl-md-0\":\"pl-md-0\",\"p-md-1\":\"p-md-1\",\"pt-md-1\":\"pt-md-1\",\"py-md-1\":\"py-md-1\",\"pr-md-1\":\"pr-md-1\",\"px-md-1\":\"px-md-1\",\"pb-md-1\":\"pb-md-1\",\"pl-md-1\":\"pl-md-1\",\"p-md-2\":\"p-md-2\",\"pt-md-2\":\"pt-md-2\",\"py-md-2\":\"py-md-2\",\"pr-md-2\":\"pr-md-2\",\"px-md-2\":\"px-md-2\",\"pb-md-2\":\"pb-md-2\",\"pl-md-2\":\"pl-md-2\",\"p-md-3\":\"p-md-3\",\"pt-md-3\":\"pt-md-3\",\"py-md-3\":\"py-md-3\",\"pr-md-3\":\"pr-md-3\",\"px-md-3\":\"px-md-3\",\"pb-md-3\":\"pb-md-3\",\"pl-md-3\":\"pl-md-3\",\"p-md-4\":\"p-md-4\",\"pt-md-4\":\"pt-md-4\",\"py-md-4\":\"py-md-4\",\"pr-md-4\":\"pr-md-4\",\"px-md-4\":\"px-md-4\",\"pb-md-4\":\"pb-md-4\",\"pl-md-4\":\"pl-md-4\",\"p-md-5\":\"p-md-5\",\"pt-md-5\":\"pt-md-5\",\"py-md-5\":\"py-md-5\",\"pr-md-5\":\"pr-md-5\",\"px-md-5\":\"px-md-5\",\"pb-md-5\":\"pb-md-5\",\"pl-md-5\":\"pl-md-5\",\"m-md-n1\":\"m-md-n1\",\"mt-md-n1\":\"mt-md-n1\",\"my-md-n1\":\"my-md-n1\",\"mr-md-n1\":\"mr-md-n1\",\"mx-md-n1\":\"mx-md-n1\",\"mb-md-n1\":\"mb-md-n1\",\"ml-md-n1\":\"ml-md-n1\",\"m-md-n2\":\"m-md-n2\",\"mt-md-n2\":\"mt-md-n2\",\"my-md-n2\":\"my-md-n2\",\"mr-md-n2\":\"mr-md-n2\",\"mx-md-n2\":\"mx-md-n2\",\"mb-md-n2\":\"mb-md-n2\",\"ml-md-n2\":\"ml-md-n2\",\"m-md-n3\":\"m-md-n3\",\"mt-md-n3\":\"mt-md-n3\",\"my-md-n3\":\"my-md-n3\",\"mr-md-n3\":\"mr-md-n3\",\"mx-md-n3\":\"mx-md-n3\",\"mb-md-n3\":\"mb-md-n3\",\"ml-md-n3\":\"ml-md-n3\",\"m-md-n4\":\"m-md-n4\",\"mt-md-n4\":\"mt-md-n4\",\"my-md-n4\":\"my-md-n4\",\"mr-md-n4\":\"mr-md-n4\",\"mx-md-n4\":\"mx-md-n4\",\"mb-md-n4\":\"mb-md-n4\",\"ml-md-n4\":\"ml-md-n4\",\"m-md-n5\":\"m-md-n5\",\"mt-md-n5\":\"mt-md-n5\",\"my-md-n5\":\"my-md-n5\",\"mr-md-n5\":\"mr-md-n5\",\"mx-md-n5\":\"mx-md-n5\",\"mb-md-n5\":\"mb-md-n5\",\"ml-md-n5\":\"ml-md-n5\",\"m-md-auto\":\"m-md-auto\",\"mt-md-auto\":\"mt-md-auto\",\"my-md-auto\":\"my-md-auto\",\"mr-md-auto\":\"mr-md-auto\",\"mx-md-auto\":\"mx-md-auto\",\"mb-md-auto\":\"mb-md-auto\",\"ml-md-auto\":\"ml-md-auto\",\"m-lg-0\":\"m-lg-0\",\"mt-lg-0\":\"mt-lg-0\",\"my-lg-0\":\"my-lg-0\",\"mr-lg-0\":\"mr-lg-0\",\"mx-lg-0\":\"mx-lg-0\",\"mb-lg-0\":\"mb-lg-0\",\"ml-lg-0\":\"ml-lg-0\",\"m-lg-1\":\"m-lg-1\",\"mt-lg-1\":\"mt-lg-1\",\"my-lg-1\":\"my-lg-1\",\"mr-lg-1\":\"mr-lg-1\",\"mx-lg-1\":\"mx-lg-1\",\"mb-lg-1\":\"mb-lg-1\",\"ml-lg-1\":\"ml-lg-1\",\"m-lg-2\":\"m-lg-2\",\"mt-lg-2\":\"mt-lg-2\",\"my-lg-2\":\"my-lg-2\",\"mr-lg-2\":\"mr-lg-2\",\"mx-lg-2\":\"mx-lg-2\",\"mb-lg-2\":\"mb-lg-2\",\"ml-lg-2\":\"ml-lg-2\",\"m-lg-3\":\"m-lg-3\",\"mt-lg-3\":\"mt-lg-3\",\"my-lg-3\":\"my-lg-3\",\"mr-lg-3\":\"mr-lg-3\",\"mx-lg-3\":\"mx-lg-3\",\"mb-lg-3\":\"mb-lg-3\",\"ml-lg-3\":\"ml-lg-3\",\"m-lg-4\":\"m-lg-4\",\"mt-lg-4\":\"mt-lg-4\",\"my-lg-4\":\"my-lg-4\",\"mr-lg-4\":\"mr-lg-4\",\"mx-lg-4\":\"mx-lg-4\",\"mb-lg-4\":\"mb-lg-4\",\"ml-lg-4\":\"ml-lg-4\",\"m-lg-5\":\"m-lg-5\",\"mt-lg-5\":\"mt-lg-5\",\"my-lg-5\":\"my-lg-5\",\"mr-lg-5\":\"mr-lg-5\",\"mx-lg-5\":\"mx-lg-5\",\"mb-lg-5\":\"mb-lg-5\",\"ml-lg-5\":\"ml-lg-5\",\"p-lg-0\":\"p-lg-0\",\"pt-lg-0\":\"pt-lg-0\",\"py-lg-0\":\"py-lg-0\",\"pr-lg-0\":\"pr-lg-0\",\"px-lg-0\":\"px-lg-0\",\"pb-lg-0\":\"pb-lg-0\",\"pl-lg-0\":\"pl-lg-0\",\"p-lg-1\":\"p-lg-1\",\"pt-lg-1\":\"pt-lg-1\",\"py-lg-1\":\"py-lg-1\",\"pr-lg-1\":\"pr-lg-1\",\"px-lg-1\":\"px-lg-1\",\"pb-lg-1\":\"pb-lg-1\",\"pl-lg-1\":\"pl-lg-1\",\"p-lg-2\":\"p-lg-2\",\"pt-lg-2\":\"pt-lg-2\",\"py-lg-2\":\"py-lg-2\",\"pr-lg-2\":\"pr-lg-2\",\"px-lg-2\":\"px-lg-2\",\"pb-lg-2\":\"pb-lg-2\",\"pl-lg-2\":\"pl-lg-2\",\"p-lg-3\":\"p-lg-3\",\"pt-lg-3\":\"pt-lg-3\",\"py-lg-3\":\"py-lg-3\",\"pr-lg-3\":\"pr-lg-3\",\"px-lg-3\":\"px-lg-3\",\"pb-lg-3\":\"pb-lg-3\",\"pl-lg-3\":\"pl-lg-3\",\"p-lg-4\":\"p-lg-4\",\"pt-lg-4\":\"pt-lg-4\",\"py-lg-4\":\"py-lg-4\",\"pr-lg-4\":\"pr-lg-4\",\"px-lg-4\":\"px-lg-4\",\"pb-lg-4\":\"pb-lg-4\",\"pl-lg-4\":\"pl-lg-4\",\"p-lg-5\":\"p-lg-5\",\"pt-lg-5\":\"pt-lg-5\",\"py-lg-5\":\"py-lg-5\",\"pr-lg-5\":\"pr-lg-5\",\"px-lg-5\":\"px-lg-5\",\"pb-lg-5\":\"pb-lg-5\",\"pl-lg-5\":\"pl-lg-5\",\"m-lg-n1\":\"m-lg-n1\",\"mt-lg-n1\":\"mt-lg-n1\",\"my-lg-n1\":\"my-lg-n1\",\"mr-lg-n1\":\"mr-lg-n1\",\"mx-lg-n1\":\"mx-lg-n1\",\"mb-lg-n1\":\"mb-lg-n1\",\"ml-lg-n1\":\"ml-lg-n1\",\"m-lg-n2\":\"m-lg-n2\",\"mt-lg-n2\":\"mt-lg-n2\",\"my-lg-n2\":\"my-lg-n2\",\"mr-lg-n2\":\"mr-lg-n2\",\"mx-lg-n2\":\"mx-lg-n2\",\"mb-lg-n2\":\"mb-lg-n2\",\"ml-lg-n2\":\"ml-lg-n2\",\"m-lg-n3\":\"m-lg-n3\",\"mt-lg-n3\":\"mt-lg-n3\",\"my-lg-n3\":\"my-lg-n3\",\"mr-lg-n3\":\"mr-lg-n3\",\"mx-lg-n3\":\"mx-lg-n3\",\"mb-lg-n3\":\"mb-lg-n3\",\"ml-lg-n3\":\"ml-lg-n3\",\"m-lg-n4\":\"m-lg-n4\",\"mt-lg-n4\":\"mt-lg-n4\",\"my-lg-n4\":\"my-lg-n4\",\"mr-lg-n4\":\"mr-lg-n4\",\"mx-lg-n4\":\"mx-lg-n4\",\"mb-lg-n4\":\"mb-lg-n4\",\"ml-lg-n4\":\"ml-lg-n4\",\"m-lg-n5\":\"m-lg-n5\",\"mt-lg-n5\":\"mt-lg-n5\",\"my-lg-n5\":\"my-lg-n5\",\"mr-lg-n5\":\"mr-lg-n5\",\"mx-lg-n5\":\"mx-lg-n5\",\"mb-lg-n5\":\"mb-lg-n5\",\"ml-lg-n5\":\"ml-lg-n5\",\"m-lg-auto\":\"m-lg-auto\",\"mt-lg-auto\":\"mt-lg-auto\",\"my-lg-auto\":\"my-lg-auto\",\"mr-lg-auto\":\"mr-lg-auto\",\"mx-lg-auto\":\"mx-lg-auto\",\"mb-lg-auto\":\"mb-lg-auto\",\"ml-lg-auto\":\"ml-lg-auto\",\"m-xl-0\":\"m-xl-0\",\"mt-xl-0\":\"mt-xl-0\",\"my-xl-0\":\"my-xl-0\",\"mr-xl-0\":\"mr-xl-0\",\"mx-xl-0\":\"mx-xl-0\",\"mb-xl-0\":\"mb-xl-0\",\"ml-xl-0\":\"ml-xl-0\",\"m-xl-1\":\"m-xl-1\",\"mt-xl-1\":\"mt-xl-1\",\"my-xl-1\":\"my-xl-1\",\"mr-xl-1\":\"mr-xl-1\",\"mx-xl-1\":\"mx-xl-1\",\"mb-xl-1\":\"mb-xl-1\",\"ml-xl-1\":\"ml-xl-1\",\"m-xl-2\":\"m-xl-2\",\"mt-xl-2\":\"mt-xl-2\",\"my-xl-2\":\"my-xl-2\",\"mr-xl-2\":\"mr-xl-2\",\"mx-xl-2\":\"mx-xl-2\",\"mb-xl-2\":\"mb-xl-2\",\"ml-xl-2\":\"ml-xl-2\",\"m-xl-3\":\"m-xl-3\",\"mt-xl-3\":\"mt-xl-3\",\"my-xl-3\":\"my-xl-3\",\"mr-xl-3\":\"mr-xl-3\",\"mx-xl-3\":\"mx-xl-3\",\"mb-xl-3\":\"mb-xl-3\",\"ml-xl-3\":\"ml-xl-3\",\"m-xl-4\":\"m-xl-4\",\"mt-xl-4\":\"mt-xl-4\",\"my-xl-4\":\"my-xl-4\",\"mr-xl-4\":\"mr-xl-4\",\"mx-xl-4\":\"mx-xl-4\",\"mb-xl-4\":\"mb-xl-4\",\"ml-xl-4\":\"ml-xl-4\",\"m-xl-5\":\"m-xl-5\",\"mt-xl-5\":\"mt-xl-5\",\"my-xl-5\":\"my-xl-5\",\"mr-xl-5\":\"mr-xl-5\",\"mx-xl-5\":\"mx-xl-5\",\"mb-xl-5\":\"mb-xl-5\",\"ml-xl-5\":\"ml-xl-5\",\"p-xl-0\":\"p-xl-0\",\"pt-xl-0\":\"pt-xl-0\",\"py-xl-0\":\"py-xl-0\",\"pr-xl-0\":\"pr-xl-0\",\"px-xl-0\":\"px-xl-0\",\"pb-xl-0\":\"pb-xl-0\",\"pl-xl-0\":\"pl-xl-0\",\"p-xl-1\":\"p-xl-1\",\"pt-xl-1\":\"pt-xl-1\",\"py-xl-1\":\"py-xl-1\",\"pr-xl-1\":\"pr-xl-1\",\"px-xl-1\":\"px-xl-1\",\"pb-xl-1\":\"pb-xl-1\",\"pl-xl-1\":\"pl-xl-1\",\"p-xl-2\":\"p-xl-2\",\"pt-xl-2\":\"pt-xl-2\",\"py-xl-2\":\"py-xl-2\",\"pr-xl-2\":\"pr-xl-2\",\"px-xl-2\":\"px-xl-2\",\"pb-xl-2\":\"pb-xl-2\",\"pl-xl-2\":\"pl-xl-2\",\"p-xl-3\":\"p-xl-3\",\"pt-xl-3\":\"pt-xl-3\",\"py-xl-3\":\"py-xl-3\",\"pr-xl-3\":\"pr-xl-3\",\"px-xl-3\":\"px-xl-3\",\"pb-xl-3\":\"pb-xl-3\",\"pl-xl-3\":\"pl-xl-3\",\"p-xl-4\":\"p-xl-4\",\"pt-xl-4\":\"pt-xl-4\",\"py-xl-4\":\"py-xl-4\",\"pr-xl-4\":\"pr-xl-4\",\"px-xl-4\":\"px-xl-4\",\"pb-xl-4\":\"pb-xl-4\",\"pl-xl-4\":\"pl-xl-4\",\"p-xl-5\":\"p-xl-5\",\"pt-xl-5\":\"pt-xl-5\",\"py-xl-5\":\"py-xl-5\",\"pr-xl-5\":\"pr-xl-5\",\"px-xl-5\":\"px-xl-5\",\"pb-xl-5\":\"pb-xl-5\",\"pl-xl-5\":\"pl-xl-5\",\"m-xl-n1\":\"m-xl-n1\",\"mt-xl-n1\":\"mt-xl-n1\",\"my-xl-n1\":\"my-xl-n1\",\"mr-xl-n1\":\"mr-xl-n1\",\"mx-xl-n1\":\"mx-xl-n1\",\"mb-xl-n1\":\"mb-xl-n1\",\"ml-xl-n1\":\"ml-xl-n1\",\"m-xl-n2\":\"m-xl-n2\",\"mt-xl-n2\":\"mt-xl-n2\",\"my-xl-n2\":\"my-xl-n2\",\"mr-xl-n2\":\"mr-xl-n2\",\"mx-xl-n2\":\"mx-xl-n2\",\"mb-xl-n2\":\"mb-xl-n2\",\"ml-xl-n2\":\"ml-xl-n2\",\"m-xl-n3\":\"m-xl-n3\",\"mt-xl-n3\":\"mt-xl-n3\",\"my-xl-n3\":\"my-xl-n3\",\"mr-xl-n3\":\"mr-xl-n3\",\"mx-xl-n3\":\"mx-xl-n3\",\"mb-xl-n3\":\"mb-xl-n3\",\"ml-xl-n3\":\"ml-xl-n3\",\"m-xl-n4\":\"m-xl-n4\",\"mt-xl-n4\":\"mt-xl-n4\",\"my-xl-n4\":\"my-xl-n4\",\"mr-xl-n4\":\"mr-xl-n4\",\"mx-xl-n4\":\"mx-xl-n4\",\"mb-xl-n4\":\"mb-xl-n4\",\"ml-xl-n4\":\"ml-xl-n4\",\"m-xl-n5\":\"m-xl-n5\",\"mt-xl-n5\":\"mt-xl-n5\",\"my-xl-n5\":\"my-xl-n5\",\"mr-xl-n5\":\"mr-xl-n5\",\"mx-xl-n5\":\"mx-xl-n5\",\"mb-xl-n5\":\"mb-xl-n5\",\"ml-xl-n5\":\"ml-xl-n5\",\"m-xl-auto\":\"m-xl-auto\",\"mt-xl-auto\":\"mt-xl-auto\",\"my-xl-auto\":\"my-xl-auto\",\"mr-xl-auto\":\"mr-xl-auto\",\"mx-xl-auto\":\"mx-xl-auto\",\"mb-xl-auto\":\"mb-xl-auto\",\"ml-xl-auto\":\"ml-xl-auto\",\"sr-only\":\"sr-only\",\"sr-only-focusable\":\"sr-only-focusable\",\"assets-grid\":\"assets-grid\",\"asset-grid-item\":\"asset-grid-item\",\"asset-preview\":\"asset-preview\",\"selected\":\"selected\",\"asset-name\":\"asset-name\",\"file-type-badge\":\"file-type-badge\",\"asset-thumbnail\":\"asset-thumbnail\",\"asset-icon\":\"asset-icon\",\"asset-info\":\"asset-info\",\"asset-size\":\"asset-size\",\"assets-list-image-preview-container\":\"assets-list-image-preview-container\",\"assets-list-image-preview-image\":\"assets-list-image-preview-image\",\"list-header\":\"list-header\",\"no-image-preview\":\"no-image-preview\",\"unbulleted-list-item\":\"unbulleted-list-item\"};","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n assetsListNoPreview: {\n id: 'assetsListNoPreview',\n defaultMessage: 'Preview not available',\n description: 'Label shown when no preview is available',\n },\n assetsListNameLabel: {\n id: 'assetsListNameLabel',\n defaultMessage: 'Name',\n description: 'Label for column header',\n },\n assetsListDateLabel: {\n id: 'assetsListDateLabel',\n defaultMessage: 'Date Added',\n description: 'Label for column header',\n },\n});\n\nexport default messages;\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\nimport messages from './displayMessages';\nimport styles from './AssetsList.scss';\n\nconst initialState = {\n selectedAssetIndex: -1,\n selectedAssetPage: -1,\n};\n\nexport default class AssetsList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ...initialState,\n };\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.onAssetClick = this.onAssetClick.bind(this);\n this.onListBoxFocus = this.onListBoxFocus.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n // if page has changed, reset the index of the selected index\n if (this.props.paginationMetadata.page !== nextProps.paginationMetadata.page) {\n if (nextProps.paginationMetadata.page === this.state.selectedAssetPage) {\n this.setState({\n selectedAssetIndex: this.getSelectedAssetIndex(nextProps.assetsList,\n nextProps.selectedAsset),\n });\n } else {\n this.setState({\n selectedAssetIndex: -1,\n });\n }\n }\n\n /*\n if the selectedAsset is set to empty object, reset selectedAssetIndex; this is to\n handle the case when the EditImageModal closes\n */\n if (Object.keys(this.props.selectedAsset).length !== 0 &&\n Object.keys(nextProps.selectedAsset).length === 0) {\n this.setState({\n ...initialState,\n });\n }\n }\n\n onAssetClick = (asset, index) => {\n this.setState({\n selectedAssetIndex: index,\n selectedAssetPage: this.props.paginationMetadata.page,\n });\n\n this.props.selectAsset(asset);\n }\n\n onListBoxFocus = () => {\n // if no list item is selected, select first item on listbox focus\n if (this.state.selectedAssetIndex === -1) {\n this.setState(\n { selectedAssetIndex: 0,\n selectedAssetPage: this.props.paginationMetadata.page,\n },\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n }\n\n getFileExtension = (displayName) => {\n if (!displayName) return '';\n const lastDot = displayName.lastIndexOf('.');\n if (lastDot === -1 || lastDot === displayName.length - 1) {\n return 'file';\n }\n return displayName.substring(lastDot + 1).toLowerCase();\n }\n\n formatFileSize = (bytes) => {\n if (!bytes || bytes === 0) return '';\n const units = ['B', 'KB', 'MB', 'GB'];\n const k = 1024;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const size = (bytes / Math.pow(k, i)).toFixed(i === 0 ? 0 : 1);\n return `${size} ${units[i]}`;\n }\n\n getAssetGridItem = (asset, index) => {\n const isSelected = this.props.selectedAsset.id === asset.id;\n const baseUrl = this.props.courseDetails.base_url || '';\n const fileExt = this.getFileExtension(asset.display_name);\n const fileSize = this.formatFileSize(asset.file_size || asset.size);\n const previewPath = asset.thumbnail || asset.url;\n const previewSrc = previewPath\n ? (previewPath.indexOf('http') === 0 ? previewPath : `${baseUrl}${previewPath}`)\n : '';\n\n return (\n <div\n onMouseDown={(e) => { e.preventDefault(); this.onAssetClick(asset, index); }}\n className={classNames(styles['asset-grid-item'], { [styles.selected]: isSelected })}\n id={`asset-list-option-${index}`}\n aria-selected={isSelected}\n aria-label={asset.display_name}\n role=\"option\"\n key={asset.id || asset.display_name}\n tabIndex=\"-1\"\n >\n <div className={styles['asset-preview']}>\n <span className={styles['file-type-badge']}>{fileExt}</span>\n {previewSrc ? (\n <img\n className={styles['asset-thumbnail']}\n src={previewSrc}\n alt=\"\"\n />\n ) : (\n <div className={styles['asset-icon']}>\n <i className=\"far fa-image\" />\n </div>\n )}\n </div>\n <div className={styles['asset-info']}>\n <div className={styles['asset-name']} title={asset.display_name}>\n {asset.display_name}\n </div>\n {fileSize && (\n <div className={styles['asset-size']}>\n {fileSize}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n getSelectedAssetIndex = (assetsList, selectedAsset) => (assetsList.findIndex(\n asset => asset.id === selectedAsset.id));\n\n handleKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowRight': {\n e.preventDefault();\n if (this.state.selectedAssetIndex < this.props.assetsList.length - 1) {\n this.setState(\n (state, props) => ({\n selectedAssetIndex: this.state.selectedAssetIndex + 1,\n selectedAssetPage: props.paginationMetadata.page,\n }),\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n if (this.state.selectedAssetIndex > 0) {\n this.setState(\n (state, props) => ({\n selectedAssetIndex: this.state.selectedAssetIndex - 1,\n selectedAssetPage: props.paginationMetadata.page,\n }),\n () => { this.props.selectAsset(this.props.assetsList[this.state.selectedAssetIndex]); },\n );\n }\n break;\n }\n default:\n }\n }\n\n render = () => {\n const assetsGridItems = this.props.assetsList.map((asset, index) =>\n this.getAssetGridItem(asset, index));\n\n return (\n <div\n aria-activedescendant={this.state.selectedAssetIndex > -1 ? `asset-list-option-${this.state.selectedAssetIndex}` : null}\n className={styles['assets-grid']}\n onFocus={this.onListBoxFocus}\n onKeyDown={this.handleKeyDown}\n role=\"listbox\"\n tabIndex=\"0\"\n >\n {assetsGridItems}\n </div>\n );\n };\n}\n\nAssetsList.propTypes = {\n assetsList: PropTypes.arrayOf(PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n file_size: PropTypes.number,\n })).isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n base_url: PropTypes.string,\n }).isRequired,\n paginationMetadata: PropTypes.shape({\n start: PropTypes.number,\n end: PropTypes.number,\n page: PropTypes.number,\n pageSize: PropTypes.number,\n totalCount: PropTypes.number,\n }).isRequired,\n selectAsset: PropTypes.func.isRequired,\n selectedAsset: PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n file_size: PropTypes.number,\n }).isRequired,\n};\n","import { connect } from 'react-redux';\n\nimport AssetsList from '.';\nimport { selectAsset } from '../../data/actions/assets';\n\nconst mapStateToProps = state => ({\n assetsList: state.assets,\n courseDetails: state.studioDetails.course,\n courseImageAccessibilityDocs: state.studioDetails.help_tokens.image_accessibility,\n paginationMetadata: state.metadata.pagination,\n selectedAsset: state.metadata.select.selectedAsset,\n selectedAssetIndex: state.metadata.select.selectedAssetIndex,\n});\n\nconst mapDispatchToProps = dispatch => ({\n selectAsset: (asset, index) => dispatch(selectAsset(asset, index)),\n});\n\nconst WrappedAssetsList = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(AssetsList);\n\nexport default WrappedAssetsList;\n","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n assetsClearSearchButtonLabel: {\n id: 'assetsClearSearchButtonLabel',\n defaultMessage: 'Clear search',\n description: 'Label for a button that clears the search applied to a table.',\n },\n});\n\nexport default messages;\n","import { Button } from '@edx/paragon';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport messages from './displayMessages';\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\n\n\nconst AssetsClearSearchButton = ({ clearSearch, courseDetails }) => (\n <Button\n buttonType=\"link\"\n onClick={() => clearSearch(courseDetails)}\n label={\n <WrappedMessage message={messages.assetsClearSearchButtonLabel} />\n }\n />\n);\n\nAssetsClearSearchButton.propTypes = {\n clearSearch: PropTypes.func.isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n }).isRequired,\n};\n\nexport default AssetsClearSearchButton;\n","import { connect } from 'react-redux';\n\nimport AssetsClearSearchButton from '.';\nimport { searchUpdate } from '../../data/actions/assets';\n\nconst mapStateToProps = state => ({\n courseDetails: state.studioDetails.course,\n});\n\nconst mapDispatchToProps = dispatch => ({\n clearSearch: courseDetails => dispatch(searchUpdate('', courseDetails)),\n});\n\nconst WrappedAssetsClearSearchButton = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(AssetsClearSearchButton);\n\nexport default WrappedAssetsClearSearchButton;\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"root\",\"SFE\":\"SFE\",\"m-0\":\"m-0\",\"mt-0\":\"mt-0\",\"my-0\":\"my-0\",\"mr-0\":\"mr-0\",\"mx-0\":\"mx-0\",\"mb-0\":\"mb-0\",\"ml-0\":\"ml-0\",\"m-1\":\"m-1\",\"mt-1\":\"mt-1\",\"my-1\":\"my-1\",\"mr-1\":\"mr-1\",\"mx-1\":\"mx-1\",\"mb-1\":\"mb-1\",\"ml-1\":\"ml-1\",\"m-2\":\"m-2\",\"mt-2\":\"mt-2\",\"my-2\":\"my-2\",\"mr-2\":\"mr-2\",\"mx-2\":\"mx-2\",\"mb-2\":\"mb-2\",\"ml-2\":\"ml-2\",\"m-3\":\"m-3\",\"mt-3\":\"mt-3\",\"my-3\":\"my-3\",\"mr-3\":\"mr-3\",\"mx-3\":\"mx-3\",\"mb-3\":\"mb-3\",\"ml-3\":\"ml-3\",\"m-4\":\"m-4\",\"mt-4\":\"mt-4\",\"my-4\":\"my-4\",\"mr-4\":\"mr-4\",\"mx-4\":\"mx-4\",\"mb-4\":\"mb-4\",\"paragon-fieldset\":\"paragon-fieldset\",\"ml-4\":\"ml-4\",\"m-5\":\"m-5\",\"mt-5\":\"mt-5\",\"my-5\":\"my-5\",\"mr-5\":\"mr-5\",\"mx-5\":\"mx-5\",\"mb-5\":\"mb-5\",\"ml-5\":\"ml-5\",\"p-0\":\"p-0\",\"pt-0\":\"pt-0\",\"py-0\":\"py-0\",\"pr-0\":\"pr-0\",\"px-0\":\"px-0\",\"pb-0\":\"pb-0\",\"pl-0\":\"pl-0\",\"p-1\":\"p-1\",\"pt-1\":\"pt-1\",\"py-1\":\"py-1\",\"pr-1\":\"pr-1\",\"px-1\":\"px-1\",\"pb-1\":\"pb-1\",\"pl-1\":\"pl-1\",\"p-2\":\"p-2\",\"pt-2\":\"pt-2\",\"py-2\":\"py-2\",\"pr-2\":\"pr-2\",\"px-2\":\"px-2\",\"pb-2\":\"pb-2\",\"pl-2\":\"pl-2\",\"p-3\":\"p-3\",\"image-preview-placeholder\":\"image-preview-placeholder\",\"pt-3\":\"pt-3\",\"py-3\":\"py-3\",\"or-fields\":\"or-fields\",\"pr-3\":\"pr-3\",\"px-3\":\"px-3\",\"pb-3\":\"pb-3\",\"pl-3\":\"pl-3\",\"p-4\":\"p-4\",\"pt-4\":\"pt-4\",\"py-4\":\"py-4\",\"pr-4\":\"pr-4\",\"px-4\":\"px-4\",\"pb-4\":\"pb-4\",\"pl-4\":\"pl-4\",\"p-5\":\"p-5\",\"pt-5\":\"pt-5\",\"py-5\":\"py-5\",\"pr-5\":\"pr-5\",\"px-5\":\"px-5\",\"pb-5\":\"pb-5\",\"pl-5\":\"pl-5\",\"m-n1\":\"m-n1\",\"mt-n1\":\"mt-n1\",\"my-n1\":\"my-n1\",\"mr-n1\":\"mr-n1\",\"mx-n1\":\"mx-n1\",\"mb-n1\":\"mb-n1\",\"ml-n1\":\"ml-n1\",\"m-n2\":\"m-n2\",\"mt-n2\":\"mt-n2\",\"my-n2\":\"my-n2\",\"mr-n2\":\"mr-n2\",\"mx-n2\":\"mx-n2\",\"mb-n2\":\"mb-n2\",\"ml-n2\":\"ml-n2\",\"m-n3\":\"m-n3\",\"mt-n3\":\"mt-n3\",\"my-n3\":\"my-n3\",\"mr-n3\":\"mr-n3\",\"mx-n3\":\"mx-n3\",\"mb-n3\":\"mb-n3\",\"ml-n3\":\"ml-n3\",\"m-n4\":\"m-n4\",\"mt-n4\":\"mt-n4\",\"my-n4\":\"my-n4\",\"mr-n4\":\"mr-n4\",\"mx-n4\":\"mx-n4\",\"mb-n4\":\"mb-n4\",\"ml-n4\":\"ml-n4\",\"m-n5\":\"m-n5\",\"mt-n5\":\"mt-n5\",\"my-n5\":\"my-n5\",\"mr-n5\":\"mr-n5\",\"mx-n5\":\"mx-n5\",\"mb-n5\":\"mb-n5\",\"ml-n5\":\"ml-n5\",\"m-auto\":\"m-auto\",\"mt-auto\":\"mt-auto\",\"my-auto\":\"my-auto\",\"mr-auto\":\"mr-auto\",\"mx-auto\":\"mx-auto\",\"mb-auto\":\"mb-auto\",\"ml-auto\":\"ml-auto\",\"m-sm-0\":\"m-sm-0\",\"mt-sm-0\":\"mt-sm-0\",\"my-sm-0\":\"my-sm-0\",\"mr-sm-0\":\"mr-sm-0\",\"mx-sm-0\":\"mx-sm-0\",\"mb-sm-0\":\"mb-sm-0\",\"ml-sm-0\":\"ml-sm-0\",\"m-sm-1\":\"m-sm-1\",\"mt-sm-1\":\"mt-sm-1\",\"my-sm-1\":\"my-sm-1\",\"mr-sm-1\":\"mr-sm-1\",\"mx-sm-1\":\"mx-sm-1\",\"mb-sm-1\":\"mb-sm-1\",\"ml-sm-1\":\"ml-sm-1\",\"m-sm-2\":\"m-sm-2\",\"mt-sm-2\":\"mt-sm-2\",\"my-sm-2\":\"my-sm-2\",\"mr-sm-2\":\"mr-sm-2\",\"mx-sm-2\":\"mx-sm-2\",\"mb-sm-2\":\"mb-sm-2\",\"ml-sm-2\":\"ml-sm-2\",\"m-sm-3\":\"m-sm-3\",\"mt-sm-3\":\"mt-sm-3\",\"my-sm-3\":\"my-sm-3\",\"mr-sm-3\":\"mr-sm-3\",\"mx-sm-3\":\"mx-sm-3\",\"mb-sm-3\":\"mb-sm-3\",\"ml-sm-3\":\"ml-sm-3\",\"m-sm-4\":\"m-sm-4\",\"mt-sm-4\":\"mt-sm-4\",\"my-sm-4\":\"my-sm-4\",\"mr-sm-4\":\"mr-sm-4\",\"mx-sm-4\":\"mx-sm-4\",\"mb-sm-4\":\"mb-sm-4\",\"ml-sm-4\":\"ml-sm-4\",\"m-sm-5\":\"m-sm-5\",\"mt-sm-5\":\"mt-sm-5\",\"my-sm-5\":\"my-sm-5\",\"mr-sm-5\":\"mr-sm-5\",\"mx-sm-5\":\"mx-sm-5\",\"mb-sm-5\":\"mb-sm-5\",\"ml-sm-5\":\"ml-sm-5\",\"p-sm-0\":\"p-sm-0\",\"pt-sm-0\":\"pt-sm-0\",\"py-sm-0\":\"py-sm-0\",\"pr-sm-0\":\"pr-sm-0\",\"px-sm-0\":\"px-sm-0\",\"pb-sm-0\":\"pb-sm-0\",\"pl-sm-0\":\"pl-sm-0\",\"p-sm-1\":\"p-sm-1\",\"pt-sm-1\":\"pt-sm-1\",\"py-sm-1\":\"py-sm-1\",\"pr-sm-1\":\"pr-sm-1\",\"px-sm-1\":\"px-sm-1\",\"pb-sm-1\":\"pb-sm-1\",\"pl-sm-1\":\"pl-sm-1\",\"p-sm-2\":\"p-sm-2\",\"pt-sm-2\":\"pt-sm-2\",\"py-sm-2\":\"py-sm-2\",\"pr-sm-2\":\"pr-sm-2\",\"px-sm-2\":\"px-sm-2\",\"pb-sm-2\":\"pb-sm-2\",\"pl-sm-2\":\"pl-sm-2\",\"p-sm-3\":\"p-sm-3\",\"pt-sm-3\":\"pt-sm-3\",\"py-sm-3\":\"py-sm-3\",\"pr-sm-3\":\"pr-sm-3\",\"px-sm-3\":\"px-sm-3\",\"pb-sm-3\":\"pb-sm-3\",\"pl-sm-3\":\"pl-sm-3\",\"p-sm-4\":\"p-sm-4\",\"pt-sm-4\":\"pt-sm-4\",\"py-sm-4\":\"py-sm-4\",\"pr-sm-4\":\"pr-sm-4\",\"px-sm-4\":\"px-sm-4\",\"pb-sm-4\":\"pb-sm-4\",\"pl-sm-4\":\"pl-sm-4\",\"p-sm-5\":\"p-sm-5\",\"pt-sm-5\":\"pt-sm-5\",\"py-sm-5\":\"py-sm-5\",\"pr-sm-5\":\"pr-sm-5\",\"px-sm-5\":\"px-sm-5\",\"pb-sm-5\":\"pb-sm-5\",\"pl-sm-5\":\"pl-sm-5\",\"m-sm-n1\":\"m-sm-n1\",\"mt-sm-n1\":\"mt-sm-n1\",\"my-sm-n1\":\"my-sm-n1\",\"mr-sm-n1\":\"mr-sm-n1\",\"mx-sm-n1\":\"mx-sm-n1\",\"mb-sm-n1\":\"mb-sm-n1\",\"ml-sm-n1\":\"ml-sm-n1\",\"m-sm-n2\":\"m-sm-n2\",\"mt-sm-n2\":\"mt-sm-n2\",\"my-sm-n2\":\"my-sm-n2\",\"mr-sm-n2\":\"mr-sm-n2\",\"mx-sm-n2\":\"mx-sm-n2\",\"mb-sm-n2\":\"mb-sm-n2\",\"ml-sm-n2\":\"ml-sm-n2\",\"m-sm-n3\":\"m-sm-n3\",\"mt-sm-n3\":\"mt-sm-n3\",\"my-sm-n3\":\"my-sm-n3\",\"mr-sm-n3\":\"mr-sm-n3\",\"mx-sm-n3\":\"mx-sm-n3\",\"mb-sm-n3\":\"mb-sm-n3\",\"ml-sm-n3\":\"ml-sm-n3\",\"m-sm-n4\":\"m-sm-n4\",\"mt-sm-n4\":\"mt-sm-n4\",\"my-sm-n4\":\"my-sm-n4\",\"mr-sm-n4\":\"mr-sm-n4\",\"mx-sm-n4\":\"mx-sm-n4\",\"mb-sm-n4\":\"mb-sm-n4\",\"ml-sm-n4\":\"ml-sm-n4\",\"m-sm-n5\":\"m-sm-n5\",\"mt-sm-n5\":\"mt-sm-n5\",\"my-sm-n5\":\"my-sm-n5\",\"mr-sm-n5\":\"mr-sm-n5\",\"mx-sm-n5\":\"mx-sm-n5\",\"mb-sm-n5\":\"mb-sm-n5\",\"ml-sm-n5\":\"ml-sm-n5\",\"m-sm-auto\":\"m-sm-auto\",\"mt-sm-auto\":\"mt-sm-auto\",\"my-sm-auto\":\"my-sm-auto\",\"mr-sm-auto\":\"mr-sm-auto\",\"mx-sm-auto\":\"mx-sm-auto\",\"mb-sm-auto\":\"mb-sm-auto\",\"ml-sm-auto\":\"ml-sm-auto\",\"m-md-0\":\"m-md-0\",\"mt-md-0\":\"mt-md-0\",\"my-md-0\":\"my-md-0\",\"mr-md-0\":\"mr-md-0\",\"mx-md-0\":\"mx-md-0\",\"mb-md-0\":\"mb-md-0\",\"ml-md-0\":\"ml-md-0\",\"m-md-1\":\"m-md-1\",\"mt-md-1\":\"mt-md-1\",\"my-md-1\":\"my-md-1\",\"mr-md-1\":\"mr-md-1\",\"mx-md-1\":\"mx-md-1\",\"mb-md-1\":\"mb-md-1\",\"ml-md-1\":\"ml-md-1\",\"m-md-2\":\"m-md-2\",\"mt-md-2\":\"mt-md-2\",\"my-md-2\":\"my-md-2\",\"mr-md-2\":\"mr-md-2\",\"mx-md-2\":\"mx-md-2\",\"mb-md-2\":\"mb-md-2\",\"ml-md-2\":\"ml-md-2\",\"m-md-3\":\"m-md-3\",\"mt-md-3\":\"mt-md-3\",\"my-md-3\":\"my-md-3\",\"mr-md-3\":\"mr-md-3\",\"mx-md-3\":\"mx-md-3\",\"mb-md-3\":\"mb-md-3\",\"ml-md-3\":\"ml-md-3\",\"m-md-4\":\"m-md-4\",\"mt-md-4\":\"mt-md-4\",\"my-md-4\":\"my-md-4\",\"mr-md-4\":\"mr-md-4\",\"mx-md-4\":\"mx-md-4\",\"mb-md-4\":\"mb-md-4\",\"ml-md-4\":\"ml-md-4\",\"m-md-5\":\"m-md-5\",\"mt-md-5\":\"mt-md-5\",\"my-md-5\":\"my-md-5\",\"mr-md-5\":\"mr-md-5\",\"mx-md-5\":\"mx-md-5\",\"mb-md-5\":\"mb-md-5\",\"ml-md-5\":\"ml-md-5\",\"p-md-0\":\"p-md-0\",\"pt-md-0\":\"pt-md-0\",\"py-md-0\":\"py-md-0\",\"pr-md-0\":\"pr-md-0\",\"px-md-0\":\"px-md-0\",\"pb-md-0\":\"pb-md-0\",\"pl-md-0\":\"pl-md-0\",\"p-md-1\":\"p-md-1\",\"pt-md-1\":\"pt-md-1\",\"py-md-1\":\"py-md-1\",\"pr-md-1\":\"pr-md-1\",\"px-md-1\":\"px-md-1\",\"pb-md-1\":\"pb-md-1\",\"pl-md-1\":\"pl-md-1\",\"p-md-2\":\"p-md-2\",\"pt-md-2\":\"pt-md-2\",\"py-md-2\":\"py-md-2\",\"pr-md-2\":\"pr-md-2\",\"px-md-2\":\"px-md-2\",\"pb-md-2\":\"pb-md-2\",\"pl-md-2\":\"pl-md-2\",\"p-md-3\":\"p-md-3\",\"pt-md-3\":\"pt-md-3\",\"py-md-3\":\"py-md-3\",\"pr-md-3\":\"pr-md-3\",\"px-md-3\":\"px-md-3\",\"pb-md-3\":\"pb-md-3\",\"pl-md-3\":\"pl-md-3\",\"p-md-4\":\"p-md-4\",\"pt-md-4\":\"pt-md-4\",\"py-md-4\":\"py-md-4\",\"pr-md-4\":\"pr-md-4\",\"px-md-4\":\"px-md-4\",\"pb-md-4\":\"pb-md-4\",\"pl-md-4\":\"pl-md-4\",\"p-md-5\":\"p-md-5\",\"pt-md-5\":\"pt-md-5\",\"py-md-5\":\"py-md-5\",\"pr-md-5\":\"pr-md-5\",\"px-md-5\":\"px-md-5\",\"pb-md-5\":\"pb-md-5\",\"pl-md-5\":\"pl-md-5\",\"m-md-n1\":\"m-md-n1\",\"mt-md-n1\":\"mt-md-n1\",\"my-md-n1\":\"my-md-n1\",\"mr-md-n1\":\"mr-md-n1\",\"mx-md-n1\":\"mx-md-n1\",\"mb-md-n1\":\"mb-md-n1\",\"ml-md-n1\":\"ml-md-n1\",\"m-md-n2\":\"m-md-n2\",\"mt-md-n2\":\"mt-md-n2\",\"my-md-n2\":\"my-md-n2\",\"mr-md-n2\":\"mr-md-n2\",\"mx-md-n2\":\"mx-md-n2\",\"mb-md-n2\":\"mb-md-n2\",\"ml-md-n2\":\"ml-md-n2\",\"m-md-n3\":\"m-md-n3\",\"mt-md-n3\":\"mt-md-n3\",\"my-md-n3\":\"my-md-n3\",\"mr-md-n3\":\"mr-md-n3\",\"mx-md-n3\":\"mx-md-n3\",\"mb-md-n3\":\"mb-md-n3\",\"ml-md-n3\":\"ml-md-n3\",\"m-md-n4\":\"m-md-n4\",\"mt-md-n4\":\"mt-md-n4\",\"my-md-n4\":\"my-md-n4\",\"mr-md-n4\":\"mr-md-n4\",\"mx-md-n4\":\"mx-md-n4\",\"mb-md-n4\":\"mb-md-n4\",\"ml-md-n4\":\"ml-md-n4\",\"m-md-n5\":\"m-md-n5\",\"mt-md-n5\":\"mt-md-n5\",\"my-md-n5\":\"my-md-n5\",\"mr-md-n5\":\"mr-md-n5\",\"mx-md-n5\":\"mx-md-n5\",\"mb-md-n5\":\"mb-md-n5\",\"ml-md-n5\":\"ml-md-n5\",\"m-md-auto\":\"m-md-auto\",\"mt-md-auto\":\"mt-md-auto\",\"my-md-auto\":\"my-md-auto\",\"mr-md-auto\":\"mr-md-auto\",\"mx-md-auto\":\"mx-md-auto\",\"mb-md-auto\":\"mb-md-auto\",\"ml-md-auto\":\"ml-md-auto\",\"m-lg-0\":\"m-lg-0\",\"mt-lg-0\":\"mt-lg-0\",\"my-lg-0\":\"my-lg-0\",\"mr-lg-0\":\"mr-lg-0\",\"mx-lg-0\":\"mx-lg-0\",\"mb-lg-0\":\"mb-lg-0\",\"ml-lg-0\":\"ml-lg-0\",\"m-lg-1\":\"m-lg-1\",\"mt-lg-1\":\"mt-lg-1\",\"my-lg-1\":\"my-lg-1\",\"mr-lg-1\":\"mr-lg-1\",\"mx-lg-1\":\"mx-lg-1\",\"mb-lg-1\":\"mb-lg-1\",\"ml-lg-1\":\"ml-lg-1\",\"m-lg-2\":\"m-lg-2\",\"mt-lg-2\":\"mt-lg-2\",\"my-lg-2\":\"my-lg-2\",\"mr-lg-2\":\"mr-lg-2\",\"mx-lg-2\":\"mx-lg-2\",\"mb-lg-2\":\"mb-lg-2\",\"ml-lg-2\":\"ml-lg-2\",\"m-lg-3\":\"m-lg-3\",\"mt-lg-3\":\"mt-lg-3\",\"my-lg-3\":\"my-lg-3\",\"mr-lg-3\":\"mr-lg-3\",\"mx-lg-3\":\"mx-lg-3\",\"mb-lg-3\":\"mb-lg-3\",\"ml-lg-3\":\"ml-lg-3\",\"m-lg-4\":\"m-lg-4\",\"mt-lg-4\":\"mt-lg-4\",\"my-lg-4\":\"my-lg-4\",\"mr-lg-4\":\"mr-lg-4\",\"mx-lg-4\":\"mx-lg-4\",\"mb-lg-4\":\"mb-lg-4\",\"ml-lg-4\":\"ml-lg-4\",\"m-lg-5\":\"m-lg-5\",\"mt-lg-5\":\"mt-lg-5\",\"my-lg-5\":\"my-lg-5\",\"mr-lg-5\":\"mr-lg-5\",\"mx-lg-5\":\"mx-lg-5\",\"mb-lg-5\":\"mb-lg-5\",\"ml-lg-5\":\"ml-lg-5\",\"p-lg-0\":\"p-lg-0\",\"pt-lg-0\":\"pt-lg-0\",\"py-lg-0\":\"py-lg-0\",\"pr-lg-0\":\"pr-lg-0\",\"px-lg-0\":\"px-lg-0\",\"pb-lg-0\":\"pb-lg-0\",\"pl-lg-0\":\"pl-lg-0\",\"p-lg-1\":\"p-lg-1\",\"pt-lg-1\":\"pt-lg-1\",\"py-lg-1\":\"py-lg-1\",\"pr-lg-1\":\"pr-lg-1\",\"px-lg-1\":\"px-lg-1\",\"pb-lg-1\":\"pb-lg-1\",\"pl-lg-1\":\"pl-lg-1\",\"p-lg-2\":\"p-lg-2\",\"pt-lg-2\":\"pt-lg-2\",\"py-lg-2\":\"py-lg-2\",\"pr-lg-2\":\"pr-lg-2\",\"px-lg-2\":\"px-lg-2\",\"pb-lg-2\":\"pb-lg-2\",\"pl-lg-2\":\"pl-lg-2\",\"p-lg-3\":\"p-lg-3\",\"pt-lg-3\":\"pt-lg-3\",\"py-lg-3\":\"py-lg-3\",\"pr-lg-3\":\"pr-lg-3\",\"px-lg-3\":\"px-lg-3\",\"pb-lg-3\":\"pb-lg-3\",\"pl-lg-3\":\"pl-lg-3\",\"p-lg-4\":\"p-lg-4\",\"pt-lg-4\":\"pt-lg-4\",\"py-lg-4\":\"py-lg-4\",\"pr-lg-4\":\"pr-lg-4\",\"px-lg-4\":\"px-lg-4\",\"pb-lg-4\":\"pb-lg-4\",\"pl-lg-4\":\"pl-lg-4\",\"p-lg-5\":\"p-lg-5\",\"pt-lg-5\":\"pt-lg-5\",\"py-lg-5\":\"py-lg-5\",\"pr-lg-5\":\"pr-lg-5\",\"px-lg-5\":\"px-lg-5\",\"pb-lg-5\":\"pb-lg-5\",\"pl-lg-5\":\"pl-lg-5\",\"m-lg-n1\":\"m-lg-n1\",\"mt-lg-n1\":\"mt-lg-n1\",\"my-lg-n1\":\"my-lg-n1\",\"mr-lg-n1\":\"mr-lg-n1\",\"mx-lg-n1\":\"mx-lg-n1\",\"mb-lg-n1\":\"mb-lg-n1\",\"ml-lg-n1\":\"ml-lg-n1\",\"m-lg-n2\":\"m-lg-n2\",\"mt-lg-n2\":\"mt-lg-n2\",\"my-lg-n2\":\"my-lg-n2\",\"mr-lg-n2\":\"mr-lg-n2\",\"mx-lg-n2\":\"mx-lg-n2\",\"mb-lg-n2\":\"mb-lg-n2\",\"ml-lg-n2\":\"ml-lg-n2\",\"m-lg-n3\":\"m-lg-n3\",\"mt-lg-n3\":\"mt-lg-n3\",\"my-lg-n3\":\"my-lg-n3\",\"mr-lg-n3\":\"mr-lg-n3\",\"mx-lg-n3\":\"mx-lg-n3\",\"mb-lg-n3\":\"mb-lg-n3\",\"ml-lg-n3\":\"ml-lg-n3\",\"m-lg-n4\":\"m-lg-n4\",\"mt-lg-n4\":\"mt-lg-n4\",\"my-lg-n4\":\"my-lg-n4\",\"mr-lg-n4\":\"mr-lg-n4\",\"mx-lg-n4\":\"mx-lg-n4\",\"mb-lg-n4\":\"mb-lg-n4\",\"ml-lg-n4\":\"ml-lg-n4\",\"m-lg-n5\":\"m-lg-n5\",\"mt-lg-n5\":\"mt-lg-n5\",\"my-lg-n5\":\"my-lg-n5\",\"mr-lg-n5\":\"mr-lg-n5\",\"mx-lg-n5\":\"mx-lg-n5\",\"mb-lg-n5\":\"mb-lg-n5\",\"ml-lg-n5\":\"ml-lg-n5\",\"m-lg-auto\":\"m-lg-auto\",\"mt-lg-auto\":\"mt-lg-auto\",\"my-lg-auto\":\"my-lg-auto\",\"mr-lg-auto\":\"mr-lg-auto\",\"mx-lg-auto\":\"mx-lg-auto\",\"mb-lg-auto\":\"mb-lg-auto\",\"ml-lg-auto\":\"ml-lg-auto\",\"m-xl-0\":\"m-xl-0\",\"mt-xl-0\":\"mt-xl-0\",\"my-xl-0\":\"my-xl-0\",\"mr-xl-0\":\"mr-xl-0\",\"mx-xl-0\":\"mx-xl-0\",\"mb-xl-0\":\"mb-xl-0\",\"ml-xl-0\":\"ml-xl-0\",\"m-xl-1\":\"m-xl-1\",\"mt-xl-1\":\"mt-xl-1\",\"my-xl-1\":\"my-xl-1\",\"mr-xl-1\":\"mr-xl-1\",\"mx-xl-1\":\"mx-xl-1\",\"mb-xl-1\":\"mb-xl-1\",\"ml-xl-1\":\"ml-xl-1\",\"m-xl-2\":\"m-xl-2\",\"mt-xl-2\":\"mt-xl-2\",\"my-xl-2\":\"my-xl-2\",\"mr-xl-2\":\"mr-xl-2\",\"mx-xl-2\":\"mx-xl-2\",\"mb-xl-2\":\"mb-xl-2\",\"ml-xl-2\":\"ml-xl-2\",\"m-xl-3\":\"m-xl-3\",\"mt-xl-3\":\"mt-xl-3\",\"my-xl-3\":\"my-xl-3\",\"mr-xl-3\":\"mr-xl-3\",\"mx-xl-3\":\"mx-xl-3\",\"mb-xl-3\":\"mb-xl-3\",\"ml-xl-3\":\"ml-xl-3\",\"m-xl-4\":\"m-xl-4\",\"mt-xl-4\":\"mt-xl-4\",\"my-xl-4\":\"my-xl-4\",\"mr-xl-4\":\"mr-xl-4\",\"mx-xl-4\":\"mx-xl-4\",\"mb-xl-4\":\"mb-xl-4\",\"ml-xl-4\":\"ml-xl-4\",\"m-xl-5\":\"m-xl-5\",\"mt-xl-5\":\"mt-xl-5\",\"my-xl-5\":\"my-xl-5\",\"mr-xl-5\":\"mr-xl-5\",\"mx-xl-5\":\"mx-xl-5\",\"mb-xl-5\":\"mb-xl-5\",\"ml-xl-5\":\"ml-xl-5\",\"p-xl-0\":\"p-xl-0\",\"pt-xl-0\":\"pt-xl-0\",\"py-xl-0\":\"py-xl-0\",\"pr-xl-0\":\"pr-xl-0\",\"px-xl-0\":\"px-xl-0\",\"pb-xl-0\":\"pb-xl-0\",\"pl-xl-0\":\"pl-xl-0\",\"p-xl-1\":\"p-xl-1\",\"pt-xl-1\":\"pt-xl-1\",\"py-xl-1\":\"py-xl-1\",\"pr-xl-1\":\"pr-xl-1\",\"px-xl-1\":\"px-xl-1\",\"pb-xl-1\":\"pb-xl-1\",\"pl-xl-1\":\"pl-xl-1\",\"p-xl-2\":\"p-xl-2\",\"pt-xl-2\":\"pt-xl-2\",\"py-xl-2\":\"py-xl-2\",\"pr-xl-2\":\"pr-xl-2\",\"px-xl-2\":\"px-xl-2\",\"pb-xl-2\":\"pb-xl-2\",\"pl-xl-2\":\"pl-xl-2\",\"p-xl-3\":\"p-xl-3\",\"pt-xl-3\":\"pt-xl-3\",\"py-xl-3\":\"py-xl-3\",\"pr-xl-3\":\"pr-xl-3\",\"px-xl-3\":\"px-xl-3\",\"pb-xl-3\":\"pb-xl-3\",\"pl-xl-3\":\"pl-xl-3\",\"p-xl-4\":\"p-xl-4\",\"pt-xl-4\":\"pt-xl-4\",\"py-xl-4\":\"py-xl-4\",\"pr-xl-4\":\"pr-xl-4\",\"px-xl-4\":\"px-xl-4\",\"pb-xl-4\":\"pb-xl-4\",\"pl-xl-4\":\"pl-xl-4\",\"p-xl-5\":\"p-xl-5\",\"pt-xl-5\":\"pt-xl-5\",\"py-xl-5\":\"py-xl-5\",\"pr-xl-5\":\"pr-xl-5\",\"px-xl-5\":\"px-xl-5\",\"pb-xl-5\":\"pb-xl-5\",\"pl-xl-5\":\"pl-xl-5\",\"m-xl-n1\":\"m-xl-n1\",\"mt-xl-n1\":\"mt-xl-n1\",\"my-xl-n1\":\"my-xl-n1\",\"mr-xl-n1\":\"mr-xl-n1\",\"mx-xl-n1\":\"mx-xl-n1\",\"mb-xl-n1\":\"mb-xl-n1\",\"ml-xl-n1\":\"ml-xl-n1\",\"m-xl-n2\":\"m-xl-n2\",\"mt-xl-n2\":\"mt-xl-n2\",\"my-xl-n2\":\"my-xl-n2\",\"mr-xl-n2\":\"mr-xl-n2\",\"mx-xl-n2\":\"mx-xl-n2\",\"mb-xl-n2\":\"mb-xl-n2\",\"ml-xl-n2\":\"ml-xl-n2\",\"m-xl-n3\":\"m-xl-n3\",\"mt-xl-n3\":\"mt-xl-n3\",\"my-xl-n3\":\"my-xl-n3\",\"mr-xl-n3\":\"mr-xl-n3\",\"mx-xl-n3\":\"mx-xl-n3\",\"mb-xl-n3\":\"mb-xl-n3\",\"ml-xl-n3\":\"ml-xl-n3\",\"m-xl-n4\":\"m-xl-n4\",\"mt-xl-n4\":\"mt-xl-n4\",\"my-xl-n4\":\"my-xl-n4\",\"mr-xl-n4\":\"mr-xl-n4\",\"mx-xl-n4\":\"mx-xl-n4\",\"mb-xl-n4\":\"mb-xl-n4\",\"ml-xl-n4\":\"ml-xl-n4\",\"m-xl-n5\":\"m-xl-n5\",\"mt-xl-n5\":\"mt-xl-n5\",\"my-xl-n5\":\"my-xl-n5\",\"mr-xl-n5\":\"mr-xl-n5\",\"mx-xl-n5\":\"mx-xl-n5\",\"mb-xl-n5\":\"mb-xl-n5\",\"ml-xl-n5\":\"ml-xl-n5\",\"m-xl-auto\":\"m-xl-auto\",\"mt-xl-auto\":\"mt-xl-auto\",\"my-xl-auto\":\"my-xl-auto\",\"mr-xl-auto\":\"mr-xl-auto\",\"mx-xl-auto\":\"mx-xl-auto\",\"mb-xl-auto\":\"mb-xl-auto\",\"ml-xl-auto\":\"ml-xl-auto\",\"sr-only\":\"sr-only\",\"sr-only-focusable\":\"sr-only-focusable\",\"modal-body\":\"modal-body\",\"row\":\"row\",\"modal-dialog\":\"modal-dialog\",\"form-control\":\"form-control\",\"is-invalid\":\"is-invalid\",\"is-invalid-nodanger\":\"is-invalid-nodanger\",\"image-preview-container\":\"image-preview-container\",\"image-preview-image\":\"image-preview-image\",\"image-dimensions-x\":\"image-dimensions-x\",\"invalid-feedback\":\"invalid-feedback\",\"image-fields\":\"image-fields\",\"form-group\":\"form-group\",\"form-text\":\"form-text\",\"dimensions-row\":\"dimensions-row\",\"dimension-field\":\"dimension-field\",\"dimensions-separator\":\"dimensions-separator\",\"form-check\":\"form-check\",\"form-check-label\":\"form-check-label\"};","// Utility method for replacing a portion of a string.\n// An ES6 copy of the same function in edx-platform:\n// https://github.com/edx/edx-platform/blob/d14ec65912ef3fb5bb3284b81ccdf60d59b34c87/common/static/js/src/utility.js#L21-L39\nexport default (content, from, to) => {\n if (from === null || to === null) {\n return content;\n }\n // replace only relative urls\n const replacer = (match) => {\n if (match === from) {\n return to;\n }\n return match;\n };\n // change all relative urls only which may be embedded inside other tags in content.\n // handle http and https\n // escape all regex interpretable chars\n const fromRe = from.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n // eslint-disable-next-line no-useless-escape\n const regex = new RegExp(`(https?://(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}([-a-zA-Z0-9@:%_\\+.~#?&//=]*))?${fromRe}`, 'g');\n return content.replace(regex, replacer);\n};\n","import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n editImageModalAssetsListLoadingSpinner: {\n id: 'editImageModalAssetsListLoadingSpinner',\n defaultMessage: 'Loading spinner',\n description: 'Description of a loading spinner image shown when files are loading.',\n },\n editImageModalAssetsListNoAssetsMessage: {\n id: 'editImageModalAssetsListNoAssetsMessage',\n defaultMessage: '0 images uploaded',\n description: 'Message displayed when a course has no images to display in the list.',\n },\n editImageModalAssetsListNoResultsMessage: {\n id: 'editImageModalAssetsListNoResultsMessage',\n defaultMessage: '0 images found',\n description: 'Message displayed in table when no image results are found.',\n },\n editImageModalCancelButton: {\n id: 'editImageModalCancelButton',\n defaultMessage: 'Cancel',\n description: 'Button text to close the modal',\n },\n editImageModalFormError: {\n id: 'editImageModalFormError',\n defaultMessage: 'Error',\n description: 'Screenreader-only text describing an error icon in a validation message',\n },\n editImageModalFormErrorMissingFields: {\n id: 'editImageModalFormErrorMissingFields',\n defaultMessage: 'Make sure to fill in all fields.',\n description: 'Error message to instruct user to fill in all fields',\n },\n editImageModalFormValidImageDescription: {\n id: 'editImageModalFormValidImageDescription',\n defaultMessage: 'Add an image description or specify that the image is decorative only.',\n description: 'Error message for when an invalid image description is entered into the form',\n },\n editImageModalFormValidImageDimensions: {\n id: 'editImageModalFormValidImageDimensions',\n defaultMessage: 'Image dimensions must be positive numbers.',\n description: 'Error message displayed when invalid image dimension values are entered into a form',\n },\n editImageModalImageDescriptionDescription: {\n id: 'editImageModalImageDescriptionDescription',\n defaultMessage: 'Alternative text for users who cannot view the image, such as \"The sky with clouds\".',\n description: 'Description for the text input box for an image\\'s description',\n },\n editImageModalImageDescriptionLabel: {\n id: 'editImageModalImageDescriptionLabel',\n defaultMessage: 'Image Description',\n description: 'Label for the text input box for an image\\'s description',\n },\n editImageModalImageDecorativeDescription: {\n id: 'editImageModalImageDecorativeDescription',\n defaultMessage: 'If this image is purely decorative, it does not require alternative text.',\n description: 'Help text shown under the image description when alternative text is optional',\n },\n editImageModalImageDescriptionLegend: {\n id: 'editImageModalImageDescriptionLegend',\n defaultMessage: 'Image Description',\n description: 'Label for input section for an image\\'s description',\n },\n editImageModalDimensionsLegend: {\n id: 'editImageModalDimensionsLegend',\n defaultMessage: 'Image Dimensions',\n description: 'Label for the input section for an image\\'s dimensions',\n },\n editImageModalImageHeightLabel: {\n id: 'editImageModalImageHeight',\n defaultMessage: 'Height',\n description: 'Label for the text input box for an image\\'s height,',\n },\n editImageModalImagePreviewText: {\n id: 'editImageModalImagePreviewText',\n defaultMessage: 'Image Preview',\n description: 'Label for the image preview area',\n },\n editImageModalInsertImageButton: {\n id: 'editImageModalInsertImageButton',\n defaultMessage: 'Save',\n description: 'Text inside the Save button at the bottom of the modal',\n },\n editImageModalLearnMore: {\n id: 'editImageModalLearnMore',\n defaultMessage: 'Learn more.',\n description: 'Label for a link to additional documentation',\n },\n editImageModalLockImageProportionsCheckboxLabel: {\n id: 'editImageModalLockImageProportionsCheckboxLabel',\n defaultMessage: 'Lock proportions',\n description: 'Label for a checkbox that constrains an image\\'s proportions to its original aspect ratio',\n },\n editImageModalImageWidthLabel: {\n id: 'editImageModalImageWidth',\n defaultMessage: 'Width',\n description: 'Label for the text input box for an image\\'s width,',\n },\n editImageModalInsertTitle: {\n id: 'editImageModalInsertTitle',\n defaultMessage: 'Add an Image',\n description: 'Title of the modal used for adding an image',\n },\n editImageModalInsertHeader: {\n id: 'editImageModalInsertHeader',\n defaultMessage: 'Select a previously uploaded image',\n description: 'Header of the modal used for adding an image',\n },\n editImageModalEditTitle: {\n id: 'editImageModalEditTitle',\n defaultMessage: 'Edit Image Settings',\n description: 'Title of the modal used for editing image settings',\n },\n editImageModalNextPageButton: {\n id: 'editImageModalNextPageButton',\n defaultMessage: 'Next',\n description: 'Button text to go to the next screen',\n },\n editImageModalPreviousPageButton: {\n id: 'editImageModalPreviousPageButton',\n defaultMessage: 'Back',\n description: 'Button text to go to the previous screen',\n },\n editImageModalInvalidFileType: {\n id: 'editImageModalInvalidFileType',\n defaultMessage: 'Files must be images, such as .jpg, .png, and .tiff files. No files were uploaded.',\n description: 'Error message shown when an invalid file is selected for upload',\n },\n editImageModalTooManyFiles: {\n id: 'editImageModalTooManyFiles',\n defaultMessage: 'Only one file may be uploaded at a time. No files were uploaded.',\n description: 'Error message shown when too many files are selected for upload',\n },\n});\n\nexport default messages;\n","import { Button, CheckBox, Fieldset, InputText, Modal, StatusAlert, Variant } from '@edx/paragon';\nimport classNames from 'classnames';\nimport { connect } from 'react-redux';\nimport FontAwesomeStyles from 'font-awesome/css/font-awesome.min.css';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { assetActions } from '../../data/constants/actionTypes';\nimport AssetsResultsCount from '../AssetsResultsCount/index';\nimport { getPageType, pageTypes } from '../../utils/getAssetsPageType';\nimport messages from './displayMessages';\nimport rewriteStaticLinks from '../../utils/rewriteStaticLinks';\nimport styles from './EditImageModal.scss';\nimport WrappedAssetsClearSearchButton from '../AssetsClearSearchButton/container';\nimport WrappedAssetsDropZone from '../AssetsDropZone/container';\nimport WrappedAssetsList from '../AssetsList/container';\nimport WrappedAssetsSearch from '../AssetsSearch/container';\nimport WrappedMessage from '../../utils/i18n/formattedMessageWrapper';\n\n\n// Create an AssetsResultsCount that is not aware of the Images filter.\n// This is so that the message will initially say \"out of N total files\" instead of \"out of N\n// possible matches\".\nconst WrappedAssetsResultsCount = connect((state) => {\n const { Images, ...typesWithoutImages } = state.metadata.filters.assetTypes;\n const filtersWithoutImages = { ...state.metadata.filters, assetTypes: typesWithoutImages };\n return {\n filtersMetadata: filtersWithoutImages,\n paginationMetadata: state.metadata.pagination,\n searchMetadata: state.metadata.search,\n };\n})(AssetsResultsCount);\n\nconst imageDescriptionID = 'imageDescription';\nconst imageDescriptionFieldsetID = 'imageDescriptionFieldset';\nconst imageDimensionsFieldsetID = 'imageDimensionsFieldset';\nconst imageHeightID = 'imageHeight';\nconst imageWidthID = 'imageWidth';\nconst modalWrapperID = 'modalWrapper';\n\nconst initialEditImageModalState = {\n areImageDimensionsValid: true,\n areProportionsLocked: true,\n assetsPageType: pageTypes.SKELETON,\n baseAssetURL: '',\n currentUploadErrorMessage: null,\n currentValidationMessages: {},\n displayLoadingSpinner: false,\n imageDescription: '',\n imageDimensions: {},\n imageSource: '',\n imageStyle: '',\n isImageDescriptionValid: true,\n isImageLoaded: false,\n isImageLoading: false,\n isImageDimensionsValid: true,\n isModalOpen: false,\n isStatusAlertOpen: false,\n pageNumber: 1,\n editingExisting: false,\n shouldShowPreviousButton: false,\n};\n\nexport default class EditImageModal extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { ...initialEditImageModalState };\n\n this.handleOpenModal = this.handleOpenModal.bind(this);\n this.onConstrainProportionsClick = this.onConstrainProportionsClick.bind(this);\n this.onEditImageModalClose = this.onEditImageModalClose.bind(this);\n this.onImageDescriptionBlur = this.onImageDescriptionBlur.bind(this);\n this.onImageDimensionBlur = this.onImageDimensionBlur.bind(this);\n this.onInsertImageButtonClick = this.onInsertImageButtonClick.bind(this);\n this.onImageLoad = this.onImageLoad.bind(this);\n this.onNextPageButtonClick = this.onNextPageButtonClick.bind(this);\n this.onPreviousPageButtonClick = this.onPreviousPageButtonClick.bind(this);\n this.onStatusAlertClose = this.onStatusAlertClose.bind(this);\n // Create ref setters to minimize anonymous inline functions\n this.setDropZoneButtonRef = this.setDropZoneButtonRef.bind(this);\n this.setImageDescriptionInputRef = this.setImageDescriptionInputRef.bind(this);\n this.setImageFormRef = this.setImageFormRef.bind(this);\n this.setImageRef = this.setImageRef.bind(this);\n this.setModalWrapperRef = this.setModalWrapperRef.bind(this);\n this.setPreviousButtonRef = this.setPreviousButtonRef.bind(this);\n this.setStatusAlertRef = this.setStatusAlertRef.bind(this);\n\n this.dropZoneButtonRef = null;\n this.imageDescriptionInputRef = null;\n this.imageFormRef = null;\n this.imageRef = null;\n this.previousPageButtonRef = null;\n this.modalWrapperRef = null;\n this.statusAlertRef = null;\n }\n\n componentDidMount() {\n this.modalWrapperRef.addEventListener('openModal', this.handleOpenModal);\n }\n\n componentWillReceiveProps(nextProps) {\n const newState = {};\n switch (nextProps.assetsStatus.type) {\n case assetActions.upload.UPLOAD_ASSET_SUCCESS: {\n const uploadedAsset = nextProps.assetsStatus.response.asset;\n nextProps.selectAsset(uploadedAsset, 0);\n nextProps.clearAssetsStatus();\n newState.currentUploadErrorMessage = null;\n newState.isStatusAlertOpen = false;\n // Stay on page 1 - the form fields are now shown on the same page\n newState.pageNumber = 1;\n break;\n }\n case assetActions.upload.UPLOAD_EXCEED_MAX_COUNT_ERROR: {\n newState.currentUploadErrorMessage = messages.editImageModalTooManyFiles;\n newState.isStatusAlertOpen = true;\n break;\n }\n case assetActions.upload.UPLOAD_INVALID_FILE_TYPE_ERROR: {\n newState.currentUploadErrorMessage = messages.editImageModalInvalidFileType;\n newState.isStatusAlertOpen = true;\n break;\n }\n default: {\n if (nextProps.selectedAsset.portable_url &&\n nextProps.selectedAsset.id !== this.props.selectedAsset.id) {\n newState.imageSource = nextProps.selectedAsset.portable_url;\n }\n break;\n }\n }\n\n if (nextProps.assetsStatus.type !== assetActions.upload.UPLOAD_ASSET_SUCCESS &&\n !nextProps.selectedAsset.id && this.state.imageSource && nextProps.assetsList.length) {\n const source = this.state.imageSource;\n const match = nextProps.assetsList.find(asset => (\n asset.id && (\n asset.portable_url === source || asset.url === source || asset.external_url === source\n )\n ));\n if (match) {\n nextProps.selectAsset(match);\n }\n }\n\n this.setState(state => ({\n ...newState,\n assetsPageType: getPageType(nextProps, state.assetsPageType),\n }));\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.didStatusAlertOpen(prevState);\n this.wasNextButtonClicked(prevState);\n this.wasPreviousButtonClicked(prevState);\n }\n\n componentWillUnmount() {\n this.modalWrapperRef.removeEventListener('openModal', this.handleOpenModal);\n }\n\n onConstrainProportionsClick = (checked) => {\n this.setState({\n areProportionsLocked: checked,\n });\n }\n\n onEditImageModalClose = () => {\n this.setState({\n isModalOpen: false,\n });\n\n this.props.clearSearch(this.props.courseDetails);\n this.resetImageSelection();\n this.modalWrapperRef.dispatchEvent(new CustomEvent('closeModal',\n {\n bubbles: true,\n },\n ));\n }\n\n onImageLoad = (event) => {\n const img = event.target;\n\n this.setState({\n displayLoadingSpinner: false,\n imageDimensions: {\n width: img.naturalWidth,\n height: img.naturalHeight,\n aspectRatio: img.naturalWidth / img.naturalHeight,\n },\n isImageLoaded: true,\n isImageLoading: false,\n });\n }\n\n onImageError = () => {\n this.setState({\n displayLoadingSpinner: false,\n imageDimensions: {},\n isImageLoading: false,\n isImageLoaded: false,\n });\n }\n\n onImageDescriptionBlur = (imageDescription) => {\n this.setState({\n imageDescription,\n });\n }\n\n onImageDimensionBlur = (dimensionType) => {\n let aspectRatio;\n let newDimensionType;\n\n if (dimensionType === 'height') {\n aspectRatio = this.state.imageDimensions.aspectRatio;\n newDimensionType = 'width';\n } else if (dimensionType === 'width') {\n aspectRatio = (1 / this.state.imageDimensions.aspectRatio);\n newDimensionType = 'height';\n } else {\n throw new Error(`Unknown dimension type ${dimensionType}.`);\n }\n\n return (dimensionValue) => {\n const newImageDimensions = { ...this.state.imageDimensions };\n const parsedDimensionValue = parseInt(dimensionValue, 10);\n\n newImageDimensions[dimensionType] = isNaN(parsedDimensionValue) ? '' : parsedDimensionValue;\n\n if (this.state.areProportionsLocked) {\n const newDimensionValue = Math.round(parsedDimensionValue * aspectRatio);\n newImageDimensions[newDimensionType] = isNaN(newDimensionValue) ? '' : newDimensionValue;\n }\n this.setState({ imageDimensions: newImageDimensions });\n };\n }\n\n onNextPageButtonClick = () => {\n if (this.isAssetSelected()) {\n this.setState({\n currentUploadErrorMessage: null,\n isStatusAlertOpen: false,\n pageNumber: 2,\n });\n this.props.clearAssetsStatus();\n }\n }\n\n onPreviousPageButtonClick = () => {\n this.setState({\n currentValidationMessages: {},\n isImageDescriptionValid: true,\n isImageDimensionsValid: true,\n isStatusAlertOpen: false,\n pageNumber: 1,\n });\n }\n\n onInsertImageButtonClick = () => {\n const isValidImageDescription = this.validateImageDescription();\n const isValidImageDimensions = this.validateImageDimensions();\n const isValidFormContent = isValidImageDescription.isValid && isValidImageDimensions.isValid;\n\n const currentValidationMessages = {};\n\n if (!isValidImageDescription.isValid) {\n currentValidationMessages[imageDescriptionID] = isValidImageDescription.validationMessage;\n }\n\n if (!isValidImageDimensions.isValid) {\n currentValidationMessages[imageWidthID] = isValidImageDimensions.validationMessage;\n }\n\n this.setState({\n isStatusAlertOpen: !isValidFormContent,\n isImageDescriptionValid: isValidImageDescription.isValid,\n areImageDimensionsValid: isValidImageDimensions.isValid,\n currentValidationMessages,\n });\n\n if (isValidFormContent) {\n // Use the form ref if available, otherwise dispatch from modal wrapper\n const targetElement = this.imageFormRef || this.modalWrapperRef;\n const altText = this.state.imageDescription || '';\n targetElement.dispatchEvent(new CustomEvent('submitForm',\n {\n bubbles: true,\n detail: {\n height: this.getDimensionStateOrNatural('height'),\n width: this.getDimensionStateOrNatural('width'),\n src: this.state.imageSource,\n alt: altText,\n style: this.state.imageStyle,\n },\n },\n ));\n\n this.setState({\n isModalOpen: false,\n });\n\n this.resetImageSelection();\n } else {\n if (this.statusAlertRef) {\n this.statusAlertRef.focus();\n }\n }\n }\n\n onStatusAlertClose = () => {\n if (this.state.pageNumber === 1) {\n this.props.clearAssetsStatus();\n this.dropZoneButtonRef.focus();\n } else if (this.state.pageNumber === 2) {\n if (this.state.shouldShowPreviousButton) {\n this.previousPageButtonRef.focus();\n } else {\n this.imageDescriptionInputRef.focus();\n }\n }\n\n this.setState({\n isStatusAlertOpen: false,\n });\n }\n\n setDropZoneButtonRef(ref) {\n this.dropZoneButtonRef = ref;\n }\n\n setImageDescriptionInputRef(ref) {\n this.imageDescriptionInputRef = ref;\n }\n\n setImageFormRef(ref) {\n this.imageFormRef = ref;\n }\n\n setImageRef(ref) {\n this.imageRef = ref;\n }\n\n setModalWrapperRef(ref) {\n this.modalWrapperRef = ref;\n }\n\n setPreviousButtonRef(ref) {\n this.previousPageButtonRef = ref;\n }\n\n setStatusAlertRef(ref) {\n this.statusAlertRef = ref;\n }\n\n getNaturalDimension = (dimensionType) => {\n if (this.imageRef) {\n // if value is unparsable (NaN), reset to natural value\n const naturalDimensions = {\n width: this.imageRef.naturalWidth,\n height: this.imageRef.naturalHeight,\n };\n return naturalDimensions[dimensionType];\n }\n return null;\n }\n\n getDimensionStateOrNatural = (dimensionType) => {\n if (!this.state.imageDimensions[dimensionType]) {\n return this.getNaturalDimension(dimensionType);\n }\n return this.state.imageDimensions[dimensionType];\n }\n\n getImageDescriptionInput = () => (\n <Fieldset\n legend={<WrappedMessage message={messages.editImageModalImageDescriptionLegend} />}\n id={imageDescriptionFieldsetID}\n invalidMessage={<WrappedMessage message={messages.editImageModalFormValidImageDescription} />}\n isValid={this.state.isImageDescriptionValid}\n variant={{\n status: Variant.status.DANGER,\n }}\n variantIconDescription={<WrappedMessage message={messages.editImageModalFormError} />}\n >\n <InputText\n name=\"imageDescription\"\n label={\n <WrappedMessage\n message={messages.editImageModalImageDescriptionLabel}\n />\n }\n describedBy={`#Error-${imageDescriptionID}`}\n description={this.getImageDescriptionDescription()}\n id={imageDescriptionID}\n type=\"text\"\n value={this.state.imageDescription}\n onBlur={this.onImageDescriptionBlur}\n inputRef={this.setImageDescriptionInputRef}\n />\n </Fieldset>\n );\n\n getLearnMoreLink = () => (\n <WrappedMessage message={messages.editImageModalLearnMore}>\n {\n displayText => (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={this.props.courseImageAccessibilityDocs}\n >\n {displayText}\n </a>\n )\n }\n </WrappedMessage>\n );\n\n getImageDescriptionDescription = () => (\n <React.Fragment>\n <WrappedMessage message={messages.editImageModalImageDescriptionDescription} />\n {' '}\n {this.getLearnMoreLink()}\n {' '}\n <WrappedMessage message={messages.editImageModalImageDecorativeDescription} />\n </React.Fragment>\n );\n\n getImageDimensionsInput = () => (\n <Fieldset\n legend={<WrappedMessage message={messages.editImageModalDimensionsLegend} />}\n id={imageDimensionsFieldsetID}\n invalidMessage={<WrappedMessage message={messages.editImageModalFormValidImageDimensions} />}\n isValid={this.state.areImageDimensionsValid}\n variant={{\n status: Variant.status.DANGER,\n }}\n variantIconDescription={<WrappedMessage message={messages.editImageModalFormError} />}\n >\n <div className={styles['dimensions-row']}>\n <div className={styles['dimension-field']}>\n <InputText\n name=\"imageWidth\"\n label={\n <WrappedMessage\n message={messages.editImageModalImageWidthLabel}\n />\n }\n id={imageWidthID}\n type=\"number\"\n value={'width' in this.state.imageDimensions ? this.state.imageDimensions.width : ''}\n onBlur={this.onImageDimensionBlur('width')}\n />\n </div>\n <span className={styles['dimensions-separator']} aria-hidden=\"true\">x</span>\n <div className={styles['dimension-field']}>\n <InputText\n name={imageHeightID}\n label={\n <WrappedMessage\n message={messages.editImageModalImageHeightLabel}\n />\n }\n id=\"imageHeight\"\n type=\"number\"\n value={'height' in this.state.imageDimensions ? this.state.imageDimensions.height : ''}\n onBlur={this.onImageDimensionBlur('height')}\n />\n </div>\n </div>\n <CheckBox\n id=\"lockProportions\"\n name=\"lockProportions\"\n label={\n <WrappedMessage\n message={messages.editImageModalLockImageProportionsCheckboxLabel}\n />\n }\n checked={this.state.areProportionsLocked}\n onChange={this.onConstrainProportionsClick}\n />\n </Fieldset>\n );\n\n getImageAssetSource = () => (\n rewriteStaticLinks(this.state.imageSource, '/static/', this.state.baseAssetURL)\n );\n\n getImage = () => (\n <img\n alt=\"\"\n className={classNames(styles['image-preview-image'], { invisible: !this.state.isImageLoaded })}\n src={this.getImageAssetSource()}\n onLoad={this.onImageLoad}\n onError={this.onImageError}\n ref={this.setImageRef}\n />\n );\n\n /*\n image is conditionally displayed so that onImageError is not called on initial\n modal open, when image source is empty string\n */\n getImagePreviewPlaceholder = () => (\n <div className={styles['image-preview-placeholder']}>\n <WrappedMessage message={messages.editImageModalImagePreviewText} >\n {displayText =>\n (<span className={classNames({ invisible: this.state.isImageLoaded })}>\n {displayText}\n </span>)}\n </WrappedMessage>\n {this.state.imageSource && this.getImage()}\n </div>\n );\n\n getImagePreview = () => (\n // image preview is decorative\n <div aria-hidden>\n <WrappedMessage message={messages.editImageModalImagePreviewText} />\n <div className={styles['image-preview-container']}>\n {this.getImagePreviewPlaceholder()}\n </div>\n </div>\n );\n\n getStatusAlertDialog = () => {\n let dialog;\n\n if (this.state.pageNumber === 1) {\n dialog = (\n <React.Fragment>\n {this.getUploadErrorStatusMessage()}\n </React.Fragment>\n );\n } else if (this.state.pageNumber === 2) {\n dialog = (\n <div>\n <WrappedMessage\n message={messages.editImageModalFormErrorMissingFields}\n tagName=\"div\"\n />\n <div className=\"mt-3\">\n <ul className=\"bullet-list\">\n {(Object.keys(this.state.currentValidationMessages).reduce((accumulator, current) => {\n const value = this.state.currentValidationMessages[current];\n\n if (value) {\n const errorMessage = <li key={`Error-${current}`}>{<a href={`#${current}`}>{value} </a>}</li>;\n accumulator.push(errorMessage);\n }\n\n return accumulator;\n }, [])\n )}\n </ul>\n </div>\n </div>\n );\n }\n return dialog;\n };\n\n getStatusAlert = () => (\n <StatusAlert\n alertType=\"danger\"\n dialog={this.getStatusAlertDialog()}\n onClose={this.onStatusAlertClose}\n open={this.state.isStatusAlertOpen}\n ref={this.setStatusAlertRef}\n />\n )\n\n getModalHeader = () => {\n let header;\n if (this.state.pageNumber === 2 || this.state.editingExisting) {\n header = (\n <WrappedMessage\n message={messages.editImageModalEditTitle}\n />\n );\n } else {\n header = (\n <WrappedMessage\n message={messages.editImageModalInsertTitle}\n />\n );\n }\n return (\n <div aria-live=\"polite\">\n { header }\n </div>\n );\n }\n\n getModalBody = () => {\n let body;\n if (this.state.pageNumber === 1) {\n body = this.getImageSelectionModalBody();\n } else if (this.state.pageNumber === 2) {\n body = this.getImageSettingsModalBody();\n }\n return body;\n }\n\n getImageSelectionModalBodyAssetsList = (type) => {\n switch (type) {\n case pageTypes.NORMAL:\n return (<WrappedAssetsList />);\n case pageTypes.NO_ASSETS:\n return null;\n case pageTypes.NO_RESULTS:\n return (\n <React.Fragment>\n <WrappedMessage message={messages.editImageModalAssetsListNoResultsMessage} tagName=\"h3\" />\n <WrappedAssetsClearSearchButton />\n </React.Fragment>\n );\n case pageTypes.SKELETON:\n return (\n <div className=\"text-center mt-3\">\n <span className=\"fa-icon-spacing\" aria-hidden>\n <span\n className={classNames([\n FontAwesomeStyles.fa,\n FontAwesomeStyles['fa-spinner'],\n FontAwesomeStyles['fa-spin'],\n ])}\n />\n </span>\n <WrappedMessage message={messages.editImageModalAssetsListLoadingSpinner} />\n </div>\n );\n default:\n throw new Error(`Unknown pageType ${type}.`);\n }\n }\n\n getImageSelectionModalBody = () => (\n <React.Fragment>\n <div className=\"row\">\n <div className=\"col\">\n {this.getStatusAlert()}\n </div>\n </div>\n <div className=\"row mb-3\">\n <div className=\"col\">\n <WrappedAssetsDropZone\n maxFileCount={1}\n maxFileSizeMB={10}\n acceptedFileTypes={'image/*'}\n compactStyle\n buttonRef={this.setDropZoneButtonRef}\n />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n {this.getImageSelectionModalBodyAssetsList(this.state.assetsPageType)}\n </div>\n </div>\n {(this.isAssetSelected() || this.state.imageSource) && (\n <div className=\"row mt-3\">\n <div className=\"col\">\n {/* Hidden image to load dimensions */}\n {this.state.imageSource && (\n <img\n alt=\"\"\n src={this.getImageAssetSource()}\n onLoad={this.onImageLoad}\n onError={this.onImageError}\n ref={this.setImageRef}\n style={{ display: 'none' }}\n />\n )}\n <form className={styles['image-fields']} ref={this.setImageFormRef}>\n {this.getImageDescriptionInput()}\n {this.getImageDimensionsInput()}\n </form>\n </div>\n </div>\n )}\n </React.Fragment>\n );\n\n getImageSettingsModalBody = () => (\n <React.Fragment>\n {this.getStatusAlert()}\n <div className=\"row\">\n {this.state.shouldShowPreviousButton && this.getPreviousPageButton()}\n </div>\n <div className=\"row\">\n <div className=\"col-sm-4\">\n {this.getImagePreview()}\n </div>\n <div className=\"col\">\n <form className={styles['image-fields']} ref={this.setImageFormRef}>\n {this.getImageDescriptionInput()}\n {this.getImageDimensionsInput()}\n </form>\n </div>\n </div>\n </React.Fragment>\n );\n\n getModalButtons = () => {\n let buttons;\n if (this.state.pageNumber === 1) {\n buttons = this.getInsertImageButton();\n } else if (this.state.pageNumber === 2) {\n buttons = this.getInsertImageButton();\n }\n return buttons;\n }\n\n getNextPageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalNextPageButton}\n />\n }\n buttonType=\"primary\"\n disabled={!this.isAssetSelected()}\n onClick={this.onNextPageButtonClick}\n />\n );\n\n getPreviousPageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalPreviousPageButton}\n />\n }\n buttonType=\"link\"\n onClick={this.onPreviousPageButtonClick}\n inputRef={this.setPreviousButtonRef}\n />\n );\n\n getInsertImageButton = () => (\n <Button\n label={\n <WrappedMessage\n message={messages.editImageModalInsertImageButton}\n />\n }\n buttonType=\"primary\"\n disabled={!this.isAssetSelected() && !this.state.imageSource}\n onClick={this.onInsertImageButtonClick}\n />\n );\n\n getUploadErrorStatusMessage = () => {\n let message;\n\n if (this.state.currentUploadErrorMessage) {\n message = (\n <WrappedMessage\n message={this.state.currentUploadErrorMessage}\n />\n );\n }\n\n return message;\n };\n\n resetImageSelection = () => {\n this.props.updatePage(0, this.props.courseDetails);\n this.props.clearSelectedAsset();\n }\n\n handleOpenModal = (event) => {\n const eventSource = event.detail.src;\n let isEventSourceEmpty = true;\n if (eventSource) {\n isEventSourceEmpty = false;\n }\n\n this.setState((state, props) => ({\n // reset state to initial and then add in overrides\n ...initialEditImageModalState,\n assetsPageType: getPageType(props, state.assetsPageType),\n baseAssetURL: event.detail.baseAssetUrl || '',\n imageDescription: event.detail.alt || '',\n imageDimensions: (event.detail.width && event.detail.height) ? {\n width: event.detail.width,\n height: event.detail.height,\n aspectRatio: event.detail.width / event.detail.height,\n } : {},\n imageSource: eventSource || '',\n imageStyle: event.detail.style || '',\n editingExisting: !isEventSourceEmpty,\n // if existing img had a source, assume it could be loaded and show the image preview\n isImageLoaded: !!eventSource,\n isModalOpen: true,\n pageNumber: 1,\n shouldShowPreviousButton: false,\n }));\n\n this.props.getAssets({ assetTypes: { Images: true }, pageSize: 1000 }, this.props.courseDetails);\n }\n\n validateImageDescription = () => {\n return { isValid: true };\n }\n\n validateImageDimensions = () => {\n let feedback = { isValid: true };\n const { height, width } = this.state.imageDimensions;\n\n if (!this.isPositiveIntegerOrEmpty(height) || !this.isPositiveIntegerOrEmpty(width)) {\n feedback = {\n isValid: false,\n validationMessage:\n (<WrappedMessage\n message={messages.editImageModalFormValidImageDimensions}\n />),\n dangerIconDescription: <WrappedMessage message={messages.editImageModalFormError} />,\n };\n }\n return feedback;\n }\n\n didStatusAlertOpen = (prevState) => {\n if (this.state.isStatusAlertOpen && !prevState.isStatusAlertOpen) {\n this.statusAlertRef.focus();\n }\n }\n\n isAssetSelected = () => (this.props.selectedAsset\n && Object.keys(this.props.selectedAsset).length !== 0);\n\n isPositiveIntegerOrEmpty = (val) => {\n if (val === '' || val === undefined) {\n return true;\n }\n if (Number.isInteger(val) && val > 0) {\n return true;\n }\n return false;\n }\n\n wasNextButtonClicked = (prevState) => {\n if (this.state.pageNumber === 2 && prevState.pageNumber === 1\n && this.state.shouldShowPreviousButton) {\n this.previousPageButtonRef.focus();\n }\n }\n\n wasPreviousButtonClicked = (prevState) => {\n if (this.state.pageNumber === 1 && prevState.pageNumber === 2\n && prevState.isModalOpen) {\n this.dropZoneButtonRef.focus();\n }\n }\n\n render = () => (\n <div\n ref={this.setModalWrapperRef}\n id={modalWrapperID}\n >\n <div\n aria-atomic\n aria-live={this.state.isModalOpen ? 'polite' : 'off'}\n aria-relevant=\"text\"\n className=\"sr-only\"\n >\n <WrappedAssetsResultsCount />\n </div>\n <Modal\n open={this.state.isModalOpen}\n title={this.getModalHeader()}\n body={this.getModalBody()}\n closeText={<WrappedMessage message={messages.editImageModalCancelButton} />}\n onClose={this.onEditImageModalClose}\n buttons={[this.getModalButtons()]}\n parentSelector={`#${modalWrapperID}`}\n />\n </div>\n );\n}\n\nEditImageModal.propTypes = {\n assetsList: PropTypes.arrayOf(PropTypes.object).isRequired,\n assetsStatus: PropTypes.shape({\n response: PropTypes.object,\n type: PropTypes.string,\n }).isRequired,\n clearAssetsStatus: PropTypes.func.isRequired,\n clearSearch: PropTypes.func.isRequired,\n clearSelectedAsset: PropTypes.func.isRequired,\n courseDetails: PropTypes.shape({\n lang: PropTypes.string,\n url_name: PropTypes.string,\n name: PropTypes.string,\n display_course_number: PropTypes.string,\n num: PropTypes.string,\n org: PropTypes.string,\n id: PropTypes.string,\n revision: PropTypes.string,\n base_url: PropTypes.string,\n }).isRequired,\n courseImageAccessibilityDocs: PropTypes.string.isRequired,\n getAssets: PropTypes.func.isRequired,\n selectAsset: PropTypes.func.isRequired,\n selectedAsset: PropTypes.shape({\n display_name: PropTypes.string,\n content_type: PropTypes.string,\n url: PropTypes.string,\n date_added: PropTypes.string,\n id: PropTypes.string,\n portable_url: PropTypes.string,\n thumbnail: PropTypes.string,\n external_url: PropTypes.string,\n }).isRequired,\n updatePage: PropTypes.func.isRequired,\n};\n","import { connect } from 'react-redux';\n\nimport EditImageModal from '.';\nimport {\n clearAssetsStatus,\n clearSelectedAsset,\n getAssets,\n pageUpdate,\n searchUpdate,\n selectAsset,\n} from '../../data/actions/assets';\n\n\n// Create an EditImageModal that is not aware of the Images filter.\n// This is so that the page will display a \"noAssets\" list instead of a \"noResults\" list when the\n// course has no images.\nconst mapStateToProps = (state) => {\n const { Images, ...typesWithoutImages } = state.metadata.filters.assetTypes;\n const filtersWithoutImages = { ...state.metadata.filters, assetTypes: typesWithoutImages };\n return {\n assetsList: state.assets,\n assetsStatus: state.metadata.status,\n courseDetails: state.studioDetails.course,\n courseImageAccessibilityDocs: state.studioDetails.help_tokens.image_accessibility,\n filtersMetadata: filtersWithoutImages,\n searchMetadata: state.metadata.search,\n selectedAsset: state.metadata.select.selectedAsset,\n status: state.metadata.status,\n };\n};\n\nconst mapDispatchToProps = dispatch => ({\n clearAssetsStatus: () => dispatch(clearAssetsStatus()),\n clearSearch: courseDetails => dispatch(searchUpdate('', courseDetails)),\n clearSelectedAsset: () => dispatch(clearSelectedAsset()),\n getAssets: (request, courseDetails) => dispatch(getAssets(request, courseDetails)),\n selectAsset: (asset, index) => dispatch(selectAsset(asset, index)),\n updatePage: (page, courseDetails) => dispatch(pageUpdate(page, courseDetails)),\n});\n\nconst WrappedEditImageModal = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(EditImageModal);\n\nexport default WrappedEditImageModal;\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n","/* eslint-disable global-require,no-underscore-dangle */\nif ((typeof window !== 'undefined' && !window._babelPolyfill) ||\n (typeof global !== 'undefined' && !global._babelPolyfill)) {\n // Don't load babel-polyfill if already loaded: https://github.com/babel/babel/issues/4019\n require('babel-polyfill'); // general ES2015 polyfill (e.g. promise)\n}\n/* eslint-enable global-require no-underscore-dangle */\n\n/* eslint-disable import/first */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { IntlProvider } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport 'custom-event-polyfill'; // needed for IE11\n\nimport './SFE.scss';\nimport WrappedEditImageModal from './components/EditImageModal/container';\nimport loadI18nDomData from './utils/i18n/loadI18nDomData';\nimport store from './data/store';\n/* eslint-enable import/first */\n\nconst i18nData = loadI18nDomData();\n/* eslint-enable import/first */\n\nconst App = () => (\n <IntlProvider locale={i18nData.locale} messages={i18nData.messages}>\n <Provider store={store}>\n <div className=\"SFE-wrapper\">\n <WrappedEditImageModal />\n </div>\n </Provider>\n </IntlProvider>\n);\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}