diff --git a/src/elm/Input.elm b/src/elm/Input.elm index ab58f5a..4b3fd69 100755 --- a/src/elm/Input.elm +++ b/src/elm/Input.elm @@ -1,9 +1,9 @@ module Input exposing (viewAutocomplete, viewDefault, viewRadio, viewRadioGroup, viewWithButton) import Button -import Html exposing (Attribute, Html, button, datalist, div, input, label, option, span, text) -import Html.Attributes exposing (class, classList, id, list, name, type_, value) -import Html.Events exposing (onClick, onInput) +import Html exposing (Attribute, Html, datalist, div, input, label, option, text) +import Html.Attributes exposing (class, id, list, name, type_, value) +import Html.Events exposing (onClick) import Set exposing (Set) @@ -24,11 +24,7 @@ viewDefault val inputAttr = ] -viewWithButton : - List (Attribute msg) - -> Button.ActionType - -> msg - -> Html msg +viewWithButton : List (Attribute msg) -> Button.ActionType -> msg -> Html msg viewWithButton inputAttr btnActionType msg = view [ div [ class "input-with-button" ] diff --git a/src/elm/Locale.elm b/src/elm/Locale.elm index afb677b..627e608 100644 --- a/src/elm/Locale.elm +++ b/src/elm/Locale.elm @@ -1,4 +1,4 @@ -module Locale exposing (Locale, encodeLocale, getDefaultLocale, getEnglishLocale, getGermanLocale, isEnglishLocale, isGermanLocale, localeDecoder, translateApplyTags, translateBatchTagging, translateCancel, translateDefaultTags, translateDeleteYourLocalData, translateEnterATag, translateErrorHeading, translateErrorParsingYourFile, translateHowBatchTaggingWorks, translateHowManualTaggingWorks, translateInfoOnHowDataIsStored, translateLocale, translateManageYourTags, translateNoMatchingRecordsFound, translateNoRecordsToChooseFromSelectAfile, translateProceed, translateRecordsThatWillBeTagged, translateSave, translateSelectAKeywordOrRegex, translateSelectATagToTag, translateSelectAcsvFile, translateSingleTagging, translateTableFileName, translateTag, translateTaggedRecords, translateTitleDeleteLocalData, translateWarningDeleteLocalData) +module Locale exposing (Locale, encodeLocale, getDefaultLocale, getEnglishLocale, getGermanLocale, isEnglishLocale, isGermanLocale, localeDecoder, translateApplyTags, translateBatchTagging, translateCancel, translateDefaultTags, translateDeleteYourLocalData, translateEnterATag, translateErrorHeading, translateErrorParsingYourFile, translateHowBatchTaggingWorks, translateHowManualTaggingWorks, translateInfoOnHowDataIsStored, translateLocale, translateManageYourTags, translateNoMatchingRecordsFound, translateNoRecordsToChooseFromSelectAfile, translateProceed, translateRecordsThatWillBeTagged, translateSave, translateSelectAKeywordOrRegex, translateSelectATagToTag, translateSelectAcsvFile, translateSingleTagging, translateTableFileName, translateTag, translateTagAlreadyExists, translateTaggedRecords, translateTitleDeleteLocalData, translateWarningDeleteLocalData) import Json.Decode as Decode import Json.Encode as Encode diff --git a/src/elm/Main.elm b/src/elm/Main.elm index c81fc34..313ed70 100755 --- a/src/elm/Main.elm +++ b/src/elm/Main.elm @@ -6,8 +6,7 @@ import Button import Csv import Dict exposing (Dict) import File.Download as Download -import Helpers exposing (maybeToBool) -import Html exposing (Html, a, button, datalist, dd, div, dl, dt, h1, h2, h3, h4, h5, hr, input, label, li, option, p, select, span, text, ul) +import Html exposing (Html, a, button, div, h3, h5, hr, input, label, li, p, span, text, ul) import Html.Attributes exposing (attribute, class, classList, for, href, id, name, placeholder, style, type_, value) import Html.Events exposing (on, onClick, onInput) import Html.Lazy @@ -15,12 +14,12 @@ import Input import Json.Decode as Decode import Json.Encode as Encode import List.Extra as ListExtra -import Locale exposing (..) +import Locale exposing (Locale) import Modal import NavBar import Parser -import Parsers exposing (..) -import Ports.FileReader exposing (FileData, decodeFileContents, decodeFileData, encodeFileData, fileContentRead, fileSelected) +import Parsers +import Ports.FileReader exposing (FileData, decodeFileContents, fileContentRead, fileSelected) import Regex import Set exposing (Set) import Table as Table exposing (Cell, ColumnHeadingName, Row, TableData, TableDataTagged, Tag, decodeTableDataList, decodeTableDataTaggedList, encodeTableData, encodeTableDataTagged, flattenRows, parseCurrencyToFloat, prependCellToRow) @@ -121,7 +120,7 @@ init : Decode.Value -> ( Model, Cmd Msg ) init flags = let locale = - Result.withDefault getDefaultLocale <| Decode.decodeValue (Decode.field "locale" localeDecoder) flags + Result.withDefault Locale.getDefaultLocale <| Decode.decodeValue (Decode.field "locale" Locale.localeDecoder) flags tags = case Decode.decodeValue (Decode.field "tags" (Decode.list Decode.string)) flags of @@ -129,7 +128,7 @@ init flags = Set.fromList val Err _ -> - Set.fromList (translateDefaultTags locale) + Set.fromList (Locale.translateDefaultTags locale) addTagInputBuffer = Result.withDefault "" <| Decode.decodeValue (Decode.field "addTagInputBuffer" Decode.string) flags @@ -170,11 +169,6 @@ init flags = ) -getOriginalTableData : Model -> Maybe TableData -getOriginalTableData model = - List.head (List.reverse model.tableData) - - tuple2Encoder : (a -> Encode.Value) -> (b -> Encode.Value) -> ( a, b ) -> Encode.Value tuple2Encoder enc1 enc2 ( val1, val2 ) = Encode.list identity [ enc1 val1, enc2 val2 ] @@ -183,7 +177,7 @@ tuple2Encoder enc1 enc2 ( val1, val2 ) = encodeModel : Model -> Encode.Value encodeModel model = Encode.object - [ ( "locale", encodeLocale model.locale ) + [ ( "locale", Locale.encodeLocale model.locale ) , ( "tags", Encode.set Encode.string model.tags ) , ( "addTagInputBuffer", Encode.string model.addTagInputBuffer ) , ( "addTagInputError", tuple2Encoder Encode.string Encode.bool model.addTagInputError ) @@ -287,7 +281,7 @@ update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of ShowDeleteLocalData -> - ( updateShowModal Modal.RegularView (translateTitleDeleteLocalData model.locale) ViewWarningDeleteLocalData model + ( updateShowModal Modal.RegularView (Locale.translateTitleDeleteLocalData model.locale) ViewWarningDeleteLocalData model , Cmd.none ) @@ -297,23 +291,23 @@ update msg model = SetLocale val -> case val of "en-EN" -> - ( updateSetLocale getEnglishLocale model, Cmd.none ) + ( updateSetLocale Locale.getEnglishLocale model, Cmd.none ) "de-DE" -> - ( updateSetLocale getGermanLocale model, Cmd.none ) + ( updateSetLocale Locale.getGermanLocale model, Cmd.none ) _ -> - ( updateSetLocale getEnglishLocale model, Cmd.none ) + ( updateSetLocale Locale.getEnglishLocale model, Cmd.none ) ToggleLocale -> - if isEnglishLocale model.locale then - ( updateSetLocale getGermanLocale model, Cmd.none ) + if Locale.isEnglishLocale model.locale then + ( updateSetLocale Locale.getGermanLocale model, Cmd.none ) - else if isGermanLocale model.locale then - ( updateSetLocale getEnglishLocale model, Cmd.none ) + else if Locale.isGermanLocale model.locale then + ( updateSetLocale Locale.getEnglishLocale model, Cmd.none ) else - ( updateSetLocale getDefaultLocale model, Cmd.none ) + ( updateSetLocale Locale.getDefaultLocale model, Cmd.none ) NoOp -> ( model, Cmd.none ) @@ -364,14 +358,22 @@ update msg model = createTableDataFromCsv csv model Err _ -> - updateShowModalInfo (translateErrorHeading model.locale) (ViewInfo <| translateErrorParsingYourFile model.locale) model + updateShowModalInfo + (Locale.translateErrorHeading model.locale) + (ViewInfo <| Locale.translateErrorParsingYourFile model.locale) + model in ( newModel |> updateResetBatchTaggingOptions , Cmd.none ) Err error -> - ( updateShowModalInfo (translateErrorHeading model.locale) (ViewInfo <| "There was an error reading your file : " ++ error) model, Cmd.none ) + ( updateShowModalInfo + (Locale.translateErrorHeading model.locale) + (ViewInfo <| "There was an error reading your file : " ++ error) + model + , Cmd.none + ) MapRecordToTag recordBucket theTag -> let @@ -463,7 +465,7 @@ update msg model = let ( newHistoryData, newHistoryDataTagged ) = case ( model.tableData, model.tableDataTagged ) of - ( firstTableD :: restTableD, firstTableDT :: restTableDT ) -> + ( _ :: restTableD, _ :: restTableDT ) -> ( restTableD, restTableDT ) _ -> @@ -477,7 +479,7 @@ update msg model = {- expected that each row has the tag name prepended -} let preparedHeaders = - setCSVSemicolonsInList (translateTag model.locale :: headers) + setCSVSemicolonsInList (Locale.translateTag model.locale :: headers) preparedRows = List.map setCSVSemicolonsInList <| flattenRows rows @@ -489,7 +491,7 @@ update msg model = theCsvString = List.foldr String.append "" <| List.map (\row -> List.foldr String.append "" row) theTable in - ( model, Download.string (tag ++ "-" ++ translateTableFileName model.locale ++ ".csv") "text/csv" theCsvString ) + ( model, Download.string (tag ++ "-" ++ Locale.translateTableFileName model.locale ++ ".csv") "text/csv" theCsvString ) ShowMatchingRecords headers tag rows -> let @@ -536,7 +538,7 @@ update msg model = rowPlain matchedRowsAsRowType modalTitleText = - translateRecordsThatWillBeTagged model.locale (List.length plainMatchedRecords) + Locale.translateRecordsThatWillBeTagged model.locale (List.length plainMatchedRecords) modalDisplay = if List.isEmpty plainMatchedRecords then @@ -577,13 +579,13 @@ update msg model = Nothing Table.Float -> - Just (compareWithParser parseFloat) + Just (compareWithParser Parsers.parseFloat) Table.Integer -> - Just (compareWithParser parseInt) + Just (compareWithParser Parsers.parseInt) Table.Date -> - Just (compareDate parseAnySupportedDate) + Just (compareDate Parsers.parseAnySupportedDate) Table.Currency currency -> Just (compareWithParser <| parseCurrencyToFloat currency) @@ -615,11 +617,6 @@ updateSetLocale locale model = { model | locale = locale } -updateSetDefaultTags : Locale -> Model -> Model -updateSetDefaultTags locale model = - { model | tags = Set.fromList <| translateDefaultTags locale } - - updateShowModalInfo : Modal.Title -> ModalContent -> Model -> Model updateShowModalInfo title content model = { model | showModal = Just (Modal.State content title Modal.RegularView) } @@ -645,7 +642,7 @@ updateResetBatchTaggingOptions model = subscriptions : Model -> Sub Msg -subscriptions model = +subscriptions _ = Sub.batch [ fileContentRead ParseToCsv , getLocale SetLocale @@ -659,9 +656,9 @@ subscriptions model = viewModalContent : Locale -> ModalContent -> Html.Html Msg viewModalContent locale modalContent = case modalContent of - ViewMapRecordsToTag headers plainRecords tag -> + ViewMapRecordsToTag headers plainRecords _ -> if List.isEmpty plainRecords then - text <| translateNoMatchingRecordsFound locale + text <| Locale.translateNoMatchingRecordsFound locale else Table.view (List.map (\column -> ( column, NoOp )) headers) <| List.map (List.map text) plainRecords @@ -670,13 +667,13 @@ viewModalContent locale modalContent = text info ViewWarningDeleteLocalData -> - text (translateWarningDeleteLocalData locale) + text (Locale.translateWarningDeleteLocalData locale) getModalButtons : Locale -> ModalContent -> List (Modal.Button Msg) getModalButtons locale modalContent = case modalContent of - ViewMapRecordsToTag headers plainRecords tag -> + ViewMapRecordsToTag _ plainRecords tag -> if List.isEmpty plainRecords then [ ( Button.Secondary, CloseModal, "OK" ) ] @@ -686,17 +683,17 @@ getModalButtons locale modalContent = saveMsg = MapRecordToTag (Multiple <| List.map Row plainRecords) tag in - [ ( Button.Primary, saveMsg, translateSave locale ) - , ( Button.Secondary, CloseModal, translateCancel locale ) + [ ( Button.Primary, saveMsg, Locale.translateSave locale ) + , ( Button.Secondary, CloseModal, Locale.translateCancel locale ) ] - ViewInfo info -> + ViewInfo _ -> [ ( Button.Secondary, CloseModal, "OK" ) ] ViewWarningDeleteLocalData -> - [ ( Button.Secondary, DeleteLocalData, translateProceed locale ) - , ( Button.Primary, CloseModal, translateCancel locale ) + [ ( Button.Secondary, DeleteLocalData, Locale.translateProceed locale ) + , ( Button.Primary, CloseModal, Locale.translateCancel locale ) ] @@ -729,10 +726,10 @@ view model = text "" localeTranslation = - if isEnglishLocale model.locale then + if Locale.isEnglishLocale model.locale then "EN" - else if isGermanLocale model.locale then + else if Locale.isGermanLocale model.locale then "DE" else @@ -744,17 +741,17 @@ view model = [] [ div [ class "uk-margin-top" ] [ button [ class "uk-button uk-align-right", onClick ToggleLocale ] - [ text <| translateLocale model.locale ++ ": " ++ localeTranslation ] + [ text <| Locale.translateLocale model.locale ++ ": " ++ localeTranslation ] , span [ class "uk-label uk-text-small" ] [ text "NOTE" ] - , span [ class "uk-text-small uk-text-light" ] [ text <| " " ++ translateInfoOnHowDataIsStored model.locale ] - , button [ class "uk-button-link uk-margin-left", style "border" "none", onClick ShowDeleteLocalData ] [ text (translateDeleteYourLocalData model.locale) ] + , span [ class "uk-text-small uk-text-light" ] [ text <| " " ++ Locale.translateInfoOnHowDataIsStored model.locale ] + , button [ class "uk-button-link uk-margin-left", style "border" "none", onClick ShowDeleteLocalData ] [ text (Locale.translateDeleteYourLocalData model.locale) ] ] , div [] - [ viewFileUploadSection (translateSelectAcsvFile model.locale) FileSelected ] + [ viewFileUploadSection (Locale.translateSelectAcsvFile model.locale) FileSelected ] , div [] - [ viewManageTagsSection (translateManageYourTags model.locale) (translateEnterATag model.locale) model.addTagInputError model.addTagInputBuffer model.tags TagInput CreateTagFromBuffer RemoveTag + [ viewManageTagsSection (Locale.translateManageYourTags model.locale) (Locale.translateEnterATag model.locale) model.addTagInputError model.addTagInputBuffer model.tags TagInput CreateTagFromBuffer RemoveTag ] , div [] [ viewTaggingSection @@ -771,7 +768,7 @@ view model = , div [ class "row" ] [ div [ class "col-lg-12 col-sm-12" ] - [ viewMappedRecordsPanel (translateTag model.locale) (translateTaggedRecords model.locale) tableData.headers tableDataTagged + [ viewMappedRecordsPanel (Locale.translateTag model.locale) (Locale.translateTaggedRecords model.locale) tableData.headers tableDataTagged ] ] ] @@ -861,7 +858,7 @@ viewFileUploadSection headerText changeMsg = viewManageTagsSection : String -> String -> ( String, Bool ) -> String -> Set Table.Tag -> (Table.Tag -> msg) -> msg -> (Table.Tag -> msg) -> Html.Html msg -viewManageTagsSection headerText inputPlaceholder error buffer tags tagInputMsg createTagMsg removeTagMsg = +viewManageTagsSection headerText inputPlaceholder _ buffer tags tagInputMsg createTagMsg removeTagMsg = div [] [ div [] [ h3 @@ -885,22 +882,16 @@ viewTaggingSection : Locale -> TaggingOption -> Dict ColumnHeadingName SearchPat viewTaggingSection locale taggingOption batchTaggingOptions tags headers row rows nav = let translateHeaderText = - translateApplyTags locale + Locale.translateApplyTags locale singleTaggingText = - translateSingleTagging locale + Locale.translateSingleTagging locale batchTaggingText = - translateBatchTagging locale - - placeholderText = - translateSelectAKeywordOrRegex locale + Locale.translateBatchTagging locale tagActionText = - translateSelectATagToTag locale - - helpText = - translateHowBatchTaggingWorks locale + Locale.translateSelectATagToTag locale taggingAction tag = case taggingOption of @@ -1105,32 +1096,16 @@ viewMappedRecordsPanel tagTranslation taggedRecordsText headers_ someTables = ) in div [] - ([ h3 + (h3 [ class "uk-heading-line uk-text-center" ] [ span [ class "uk-text-background uk-text-large" ] [ text taggedRecordsText ] ] - ] - ++ rowsViews + :: rowsViews ) -viewPlainRecords : String -> List String -> List Row -> Html Msg -viewPlainRecords descr headers rows = - if List.isEmpty rows then - text "" - - else - div [] - [ h3 - [ class "uk-heading-line uk-text-center" ] - [ span [] [ text descr ] - ] - , Table.view (List.map (\column -> ( column, NoOp )) headers) <| List.map (List.map text) <| flattenRows rows - ] - - -- HELPERS @@ -1144,7 +1119,7 @@ mapRowCellsToRemoveColumns : { cells : List ( ColumnHeadingName, Cell ) } -> Row mapRowCellsToRemoveColumns row = let newCells = - List.map (\( column, cell ) -> cell) row.cells + List.map (\( _, cell ) -> cell) row.cells in Row newCells @@ -1162,11 +1137,6 @@ setTagInstance theTag headers tableDataTagged = tableDataTagged -getColIndex : List String -> String -> Maybe Int -getColIndex columns colName = - ListExtra.elemIndex colName columns - - mapRowToTag : String -> Row -> TableDataTagged -> TableDataTagged mapRowToTag aTag aRow aTaggedTable = if aTaggedTable.tag == aTag then @@ -1263,10 +1233,10 @@ compareTwoListsByIndexWith index comparison firstList lastList = ( Just firstItem, Just nextItem ) -> comparison firstItem nextItem - ( Nothing, Just nextItem ) -> + ( Nothing, Just _ ) -> GT - ( Just firstItem, Nothing ) -> + ( Just _, Nothing ) -> LT ( Nothing, Nothing ) -> @@ -1279,10 +1249,10 @@ compareWithParser parse first next = ( Just firstFloat, Just nextFloat ) -> compare firstFloat nextFloat - ( Nothing, Just nextFloat ) -> + ( Nothing, Just _ ) -> GT - ( Just firstFloat, Nothing ) -> + ( Just _, Nothing ) -> LT ( Nothing, Nothing ) -> @@ -1295,10 +1265,10 @@ compareDate parseDate_ first next = ( Just firstPosix, Just nextPosix ) -> Time.Extra.compare firstPosix nextPosix - ( Nothing, Just nextFloat ) -> + ( Nothing, Just _ ) -> GT - ( Just firstFloat, Nothing ) -> + ( Just _, Nothing ) -> LT ( Nothing, Nothing ) -> diff --git a/src/elm/Modal.elm b/src/elm/Modal.elm index f191932..459f275 100644 --- a/src/elm/Modal.elm +++ b/src/elm/Modal.elm @@ -1,8 +1,8 @@ module Modal exposing (Button, DisplayProperties(..), State, Title, Visibility(..), createStateDecoder, encodeState, view) import Button -import Html exposing (Html, button, div, h2, p, text) -import Html.Attributes exposing (attribute, class, classList, id, style, type_) +import Html exposing (Html, button, div, h2, text) +import Html.Attributes exposing (attribute, class, classList, style, type_) import Html.Events exposing (onClick) import Json.Decode as Decode import Json.Encode as Encode @@ -88,12 +88,12 @@ parseDisplayProperties encoded = Err "Invalid DisplayProperties Encoding" -viewModalButton : Button msg -> Html.Html msg +viewModalButton : Button msg -> Html msg viewModalButton ( button, msg, descr ) = Button.view msg button Button.NoActionType descr -view : DisplayProperties -> msg -> String -> Html.Html msg -> List (Button msg) -> Html.Html msg +view : DisplayProperties -> msg -> String -> Html msg -> List (Button msg) -> Html msg view displayProperties closeMsg heading content buttons = let displayPropertyClasses = diff --git a/src/elm/NavBar.elm b/src/elm/NavBar.elm index 4425012..7ca7b53 100755 --- a/src/elm/NavBar.elm +++ b/src/elm/NavBar.elm @@ -1,7 +1,7 @@ module NavBar exposing (NavItem(..), viewIconNav) -import Html exposing (button, div, li, nav, text, ul) -import Html.Attributes exposing (attribute, class, href) +import Html exposing (button, div, li, ul) +import Html.Attributes exposing (attribute, class) import Html.Events exposing (onClick) @@ -30,19 +30,19 @@ mapActionToElement : ( NavItem, msg, List (Html.Attribute msg) ) -> Html.Html ms mapActionToElement ( action, msg, attr ) = case action of Undo -> - viewIconNavItem ([ attribute "uk-icon" "icon: reply" ] ++ attr) msg + viewIconNavItem (attribute "uk-icon" "icon: reply" :: attr) msg Redo -> - viewIconNavItem ([ attribute "uk-icon" "icon: forward" ] ++ attr) msg + viewIconNavItem (attribute "uk-icon" "icon: forward" :: attr) msg Forward -> - viewIconNavItem ([ attribute "uk-icon" "icon: chevron-right" ] ++ attr) msg + viewIconNavItem (attribute "uk-icon" "icon: chevron-right" :: attr) msg Backward -> - viewIconNavItem ([ attribute "uk-icon" "icon: chevron-left" ] ++ attr) msg + viewIconNavItem (attribute "uk-icon" "icon: chevron-left" :: attr) msg Export -> - viewIconNavItem ([ attribute "uk-icon" "icon: download" ] ++ attr) msg + viewIconNavItem (attribute "uk-icon" "icon: download" :: attr) msg Disabled action_ -> mapActionToElement ( action_, msg, [ class "ui-disabled uk-disabled" ] ) diff --git a/src/elm/Parsers.elm b/src/elm/Parsers.elm index 6ed7c41..df78546 100644 --- a/src/elm/Parsers.elm +++ b/src/elm/Parsers.elm @@ -1,4 +1,4 @@ -module Parsers exposing (..) +module Parsers exposing (convertToFloat, parseAnySupportedDate, parseChainFloat, parseEuropeanDateToISO8601String, parseEuropeanDateToPosix, parseFloat, parseInt, parseIso8601Date, parseIso8601DateToPosix, parseOptionalSpaces) import Parser exposing ((|.), (|=)) import Time @@ -90,10 +90,12 @@ parseInt = {-| @todo #1 Used to Parse a float in a chain of other parsers. Supporting `,` _and_ `.` decimal separators. + Parsing Float Strings with additional thousands separators is not supported. The parsing will fail in this scenario. Consider using `Parser.loop` and `Parser.oneOf`. Also I think it should test if the created number is supported by the js runtime. There is an elm lib to do this. Maybe it is easy to implement it by yourself, and the lib is not needed. Also, should mixed separator 'types' be possible ? or could it cause a performance issue ? Right now it supports mixed decimal separators using `Parser.oneOf` + -} parseChainFloat : Parser.Parser ( String, String, String ) parseChainFloat = diff --git a/src/elm/Table.elm b/src/elm/Table.elm index 30c8389..ef5cc38 100644 --- a/src/elm/Table.elm +++ b/src/elm/Table.elm @@ -10,7 +10,7 @@ import Json.Encode as Encode import List.Extra import NavBar import Parser exposing ((|.), (|=)) -import Parsers exposing (..) +import Parsers @@ -87,7 +87,7 @@ parseCurrencyToFloat selectedCurrency = convertCurrencyToSymbol selectedCurrency in Parser.succeed identity - |= parseChainFloat + |= Parsers.parseChainFloat |. Parsers.parseOptionalSpaces |. parseCurrencySymbol currencySymbol |. Parser.end @@ -101,7 +101,7 @@ parseCurrency selectedCurrency = convertCurrencyToSymbol selectedCurrency in Parser.succeed identity - |. parseChainFloat + |. Parsers.parseChainFloat |. Parsers.parseOptionalSpaces |= parseCurrencySymbol currencySymbol |. Parser.end @@ -281,17 +281,17 @@ detectDataFormats : TableDataTagged -> TableDataTagged detectDataFormats taggedTable = List.indexedMap (\colIndex column -> - case getColumnDataWithParser parseFloat colIndex taggedTable.rows of + case getColumnDataWithParser Parsers.parseFloat colIndex taggedTable.rows of Just _ -> setADataFormat column Float Nothing -> - case getColumnDataWithParser parseInt colIndex taggedTable.rows of + case getColumnDataWithParser Parsers.parseInt colIndex taggedTable.rows of Just _ -> setADataFormat column Integer Nothing -> - case getColumnDataWithParser parseAnySupportedDate colIndex taggedTable.rows of + case getColumnDataWithParser Parsers.parseAnySupportedDate colIndex taggedTable.rows of Just _ -> setADataFormat column Date