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

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","editImageModalImageIsDecorativeCheckboxDescription","editImageModalImageIsDecorativeCheckboxLabel","editImageModalImagePreviewText","editImageModalInsertImageButton","editImageModalLearnMore","editImageModalLockImageProportionsCheckboxLabel","editImageModalImageWidthLabel","editImageModalInsertTitle","editImageModalInsertHeader","editImageModalEditTitle","editImageModalImageOrFields","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","isImageDecorative","isImageDescriptionValid","isImageLoaded","isImageLoading","isImageDimensionsValid","isModalOpen","isStatusAlertOpen","pageNumber","shouldShowPreviousButton","EditImageModal","handleOpenModal","onConstrainProportionsClick","onEditImageModalClose","onImageDescriptionBlur","onImageDimensionBlur","onInsertImageButtonClick","onImageIsDecorativeClick","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","detail","getDimensionStateOrNatural","style","focus","getNaturalDimension","getImageDescriptionInput","Fieldset","legend","invalidMessage","variant","status","Variant","DANGER","variantIconDescription","InputText","describedBy","getImageDescriptionDescription","value","disabled","onBlur","inputRef","CheckBox","getImageIsDecorativeDescription","onChange","getLearnMoreLink","displayText","rel","href","Fragment","getImageDimensionsInput","Icon","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","_container10","display","getPreviousPageButton","getModalButtons","buttons","getInsertImageButton","getNextPageButton","updatePage","clearSelectedAsset","eventSource","isEventSourceEmpty","baseAssetUrl","getAssets","feedback","_state","dangerIconDescription","_state$imageDimension","isPositiveIntegerOrEmpty","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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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 editImageModalImageIsDecorativeCheckboxDescription: {\n id: 'editImageModalImageIsDecorativeCheckboxDescription',\n defaultMessage: 'This image is a background or other image that does not require alternative text.',\n description: 'Description for a checkbox that explains what it means for an image to be decorative',\n },\n editImageModalImageIsDecorativeCheckboxLabel: {\n id: 'editImageModalImageIsDecorativeCheckboxLabel',\n defaultMessage: 'This image is decorative only',\n description: 'Label for a checkbox that denotes that an image is decorative',\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 editImageModalImageOrFields: {\n id: 'editImageModalImageOrFields',\n defaultMessage: 'or',\n description: 'Describes two choices,',\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, 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';\nimport WrappedPagination from '../Pagination/container';\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 isImageDecorative: false,\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.onImageIsDecorativeClick = this.onImageIsDecorativeClick.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 onImageIsDecorativeClick = (checked) => {\n this.setState({\n isImageDecorative: checked,\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 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: this.state.isImageDecorative ? '' : this.state.imageDescription,\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 disabled={this.state.isImageDecorative}\n onBlur={this.onImageDescriptionBlur}\n inputRef={this.setImageDescriptionInputRef}\n />\n <div className=\"or-fields\">\n <WrappedMessage\n message={messages.editImageModalImageOrFields}\n />\n </div>\n <CheckBox\n id=\"isDecorative\"\n name=\"isDecorative\"\n label={\n <WrappedMessage\n message={messages.editImageModalImageIsDecorativeCheckboxLabel}\n />\n }\n description={this.getImageIsDecorativeDescription()}\n checked={this.state.isImageDecorative}\n onChange={this.onImageIsDecorativeClick}\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 getImageIsDecorativeDescription = () => (\n <React.Fragment>\n <WrappedMessage message={messages.editImageModalImageIsDecorativeCheckboxDescription} />\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.state.assetsPageType === pageTypes.NORMAL && (\n <div className=\"row mt-2 no-gutters\">\n <div className=\"col\">\n <WrappedPagination />\n </div>\n </div>\n )}\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 isImageDecorative: event.detail.alt === '',\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: 4 }, this.props.courseDetails);\n }\n }\n\n validateImageDescription = () => {\n let feedback = { isValid: true };\n const { imageDescription, isImageDecorative } = this.state;\n\n if (!imageDescription && !isImageDecorative) {\n feedback = {\n isValid: false,\n validationMessage:\n (<WrappedMessage\n message={messages.editImageModalFormValidImageDescription}\n />),\n dangerIconDescription: <WrappedMessage message={messages.editImageModalFormError} />,\n };\n }\n return feedback;\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","_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":"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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":""}