learningtribes-studio-frontend 1.4.1 → 1.4.2-alpha.0
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.
- package/dist/common.min.css +1 -1
- package/dist/common.min.js +1 -1
- package/dist/common.min.js.map +1 -1
- package/dist/editImageModal.min.css +1 -1
- package/dist/editImageModal.min.js +1 -1
- package/dist/editImageModal.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/AssetsDropZone/AssetsDropZone.scss +88 -18
- package/src/components/AssetsDropZone/displayMessages.jsx +2 -2
- package/src/components/AssetsDropZone/index.jsx +18 -17
- package/src/components/AssetsList/AssetsList.scss +132 -0
- package/src/components/AssetsList/index.jsx +75 -68
- package/src/components/EditImageModal/EditImageModal.scss +70 -0
- package/src/components/EditImageModal/displayMessages.jsx +2 -2
- package/src/components/EditImageModal/index.jsx +37 -26
|
@@ -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-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","thumbnail","baseUrl","courseDetails","base_url","_react2","default","createElement","className","styles","src","alt","data-identifier","_formattedMessageWrapper2","message","displayText","_classnames2","asset","index","_this2","selectAsset","getAssetsListHeader","getAssetListItem","isSelected","onMouseDown","e","preventDefault","active","aria-selected","role","key","display_name","tabIndex","aria-labelledby","getThumbnailElement","getDisplayNameElement","getDateAddedElement","date_added","dateAdded","displayName","findIndex","aria-hidden","getImageThumbnail","pageSize","render","assetsListItems","map","Fragment","aria-activedescendant","onFocus","onKeyDown","propTypes","PropTypes","arrayOf","object","isRequired","shape","lang","string","url_name","name","display_course_number","num","org","revision","start","number","end","totalCount","func","content_type","url","portable_url","external_url","_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","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","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","Math","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","rel","href","getImageDimensionsInput","Icon","getImageAssetSource","_rewriteStaticLinks2","getImage","invisible","onLoad","onError","getImagePreviewPlaceholder","getImagePreview","getStatusAlertDialog","dialog","getUploadErrorStatusMessage","tagName","reduce","accumulator","current","errorMessage","push","getStatusAlert","StatusAlert","alertType","onClose","open","getModalHeader","header","aria-live","getModalBody","body","getImageSelectionModalBody","getImageSettingsModalBody","getImageSelectionModalBodyAssetsList","NORMAL","_container6","NO_ASSETS","NO_RESULTS","_container2","FontAwesomeStyles","fa","_container4","maxFileCount","maxFileSizeMB","acceptedFileTypes","compactStyle","buttonRef","_container8","_container10","getPreviousPageButton","getModalButtons","buttons","getNextPageButton","getInsertImageButton","updatePage","clearSelectedAsset","eventSource","isEventSourceEmpty","baseAssetUrl","getAssets","feedback","_state","dangerIconDescription","_state$imageDimension","isPositiveIntegerOrEmpty","val","undefined","Number","isInteger","aria-atomic","aria-relevant","Modal","title","closeText","parentSelector","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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A,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,SAAA,SAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,UAAA,UAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA,WAAAC,WAAA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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-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 getAssetsListHeader = () => (\n <div className={classNames(styles['list-header'], 'row')}>\n <span className=\"col-6 offset-3\" data-identifier=\"asset-file-name\" id=\"name-header\"><WrappedMessage message={messages.assetsListNameLabel} /></span>\n <span className=\"col-3\" data-identifier=\"asset-date-added\" id=\"date-added-header\"><WrappedMessage message={messages.assetsListDateLabel} /></span>\n </div>\n )\n\n getAssetListItem = (asset, index) => {\n const isSelected = this.props.selectedAsset.id === asset.id;\n\n return (\n <li\n // prevent clicking on list item from triggering parent's focus\n onMouseDown={(e) => { e.preventDefault(); this.onAssetClick(asset, index); }}\n className={classNames('list-group-item list-group-item-action', { active: isSelected })}\n id={`asset-list-option-${index}`}\n aria-selected={isSelected}\n role=\"option\"\n key={asset.display_name}\n tabIndex=\"-1\"\n aria-labelledby={`name-header asset-name-${index} date-added-header asset-date-${index}`}\n >\n <div className=\"row\">\n {this.getThumbnailElement(asset.thumbnail)}\n {this.getDisplayNameElement(asset.display_name, index)}\n {this.getDateAddedElement(asset.date_added, index)}\n </div>\n </li>\n );\n }\n\n getDateAddedElement = (dateAdded, index) => (\n <span id={`asset-date-${index}`} className=\"col-3\" data-identifier=\"asset-date-added\">{dateAdded}</span>\n );\n\n getDisplayNameElement = (displayName, index) => (\n <span id={`asset-name-${index}`} className=\"col-6\" data-identifier=\"asset-file-name\">{displayName}</span>\n );\n\n getImageThumbnail(thumbnail) {\n const baseUrl = this.props.courseDetails.base_url || '';\n\n return (\n <div className={styles['assets-list-image-preview-container']}>\n {\n thumbnail ?\n <img className={styles['assets-list-image-preview-image']} src={`${baseUrl}${thumbnail}`} alt=\"\" data-identifier=\"asset-image-thumbnail\" /> :\n <WrappedMessage message={messages.assetsListNoPreview} >\n {displayText => <span className={classNames('text-center')} data-identifier=\"asset-image-thumbnail\">{displayText}</span>}\n </WrappedMessage>\n }\n </div>\n );\n }\n\n getSelectedAssetIndex = (assetsList, selectedAsset) => (assetsList.findIndex(\n asset => asset.id === selectedAsset.id));\n\n getThumbnailElement = thumbnail => (\n <span aria-hidden className=\"col\">{this.getImageThumbnail(thumbnail)}</span>\n );\n\n handleKeyDown = (e) => {\n switch (e.key) {\n case 'ArrowDown': {\n // prevent scrolling entire modal body with arrow keys\n e.preventDefault();\n\n if (this.state.selectedAssetIndex < this.props.paginationMetadata.pageSize - 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 'ArrowUp': {\n // prevent scrolling entire modal body with arrow keys\n e.preventDefault();\n\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 assetsListItems = this.props.assetsList.map((asset, index) =>\n this.getAssetListItem(asset, index));\n\n return (\n <React.Fragment>\n {this.getAssetsListHeader()}\n <ol\n aria-activedescendant={this.state.selectedAssetIndex > -1 ? `asset-list-option-${this.state.selectedAssetIndex}` : null}\n className=\"list-group\"\n onFocus={this.onListBoxFocus}\n onKeyDown={this.handleKeyDown}\n role=\"listbox\"\n tabIndex=\"0\"\n >\n {assetsListItems}\n </ol>\n </React.Fragment>\n );\n };\n}\n\nAssetsList.propTypes = {\n assetsList: PropTypes.arrayOf(PropTypes.object).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 }).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\"};","// 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: 'Insert Image',\n description: 'Text inside the Insert Image 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 newState.pageNumber = 2;\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 this.imageFormRef.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 this.statusAlertRef.focus();\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-5\">\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 no-gutters\">\n <div className=\"col\">\n <WrappedMessage message={messages.editImageModalInsertHeader} tagName=\"h3\" />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-6 order-2\">\n {(this.state.assetsPageType === pageTypes.NORMAL ||\n this.state.assetsPageType === pageTypes.NO_RESULTS) && (\n <WrappedAssetsSearch />\n )}\n </div>\n <div className=\"col-6 order-1\">\n {this.state.assetsPageType === pageTypes.NORMAL && (\n <div aria-hidden>\n <WrappedAssetsResultsCount />\n </div>\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-3 no-gutters\">\n <div className=\"col\">\n <WrappedPagination />\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 buttons = this.getNextPageButton();\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","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":""}
|