-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Simple and incomplete Excel file parser/writer
--   
--   This library can help you to get some data read and written in Office
--   Open XML xlsx format. Small subset of xlsx format is supported.
--   
--   For examples look into Codec.Xlsx.
--   
--   Format is covered by ECMA-376 standard:
--   https://ecma-international.org/publications-and-standards/standards/ecma-376/
--   
--   4th edition of the standard with the transitional schema is used for
--   this library.
@package xlsx
@version 1.1.4

module Codec.Xlsx.Parser.Internal.Util
boolean :: MonadFail m => Text -> m Bool
eitherBoolean :: Text -> Either String Bool
decimal :: (MonadFail m, Integral a) => Text -> m a
eitherDecimal :: Integral a => Text -> Either String a
rational :: MonadFail m => Text -> m Double
eitherRational :: Text -> Either String Double

module Codec.Xlsx.Parser.Internal.Fast
class FromXenoNode a
fromXenoNode :: FromXenoNode a => Node -> Either Text a
collectChildren :: Node -> ChildCollector a -> Either Text a
maybeChild :: ByteString -> ChildCollector (Maybe Node)
requireChild :: ByteString -> ChildCollector Node
childList :: ByteString -> ChildCollector [Node]
maybeFromChild :: FromXenoNode a => ByteString -> ChildCollector (Maybe a)
fromChild :: FromXenoNode a => ByteString -> ChildCollector a
fromChildList :: FromXenoNode a => ByteString -> ChildCollector [a]
maybeParse :: ByteString -> (Node -> Either Text a) -> ChildCollector (Maybe a)
requireAndParse :: ByteString -> (Node -> Either Text a) -> ChildCollector a
childListAny :: FromXenoNode a => Node -> Either Text [a]
maybeElementVal :: FromAttrBs a => ByteString -> ChildCollector (Maybe a)
toAttrParser :: Either Text a -> AttrParser a
parseAttributes :: Node -> AttrParser a -> Either Text a
class FromAttrBs a
fromAttrBs :: FromAttrBs a => ByteString -> Either Text a
unexpectedAttrBs :: Text -> ByteString -> Either Text a
maybeAttrBs :: ByteString -> AttrParser (Maybe ByteString)
maybeAttr :: FromAttrBs a => ByteString -> AttrParser (Maybe a)
fromAttr :: FromAttrBs a => ByteString -> AttrParser a
fromAttrDef :: FromAttrBs a => ByteString -> a -> AttrParser a
contentBs :: Node -> ByteString
contentX :: Node -> Either Text Text
nsPrefixes :: Node -> NsPrefixes
addPrefix :: NsPrefixes -> ByteString -> ByteString -> ByteString
instance GHC.Internal.Base.Alternative Codec.Xlsx.Parser.Internal.Fast.ChildCollector
instance GHC.Internal.Base.Applicative Codec.Xlsx.Parser.Internal.Fast.AttrParser
instance GHC.Internal.Base.Applicative Codec.Xlsx.Parser.Internal.Fast.ChildCollector
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Internal.Fast.EntityReplaceException
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs GHC.Types.Bool
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Data.ByteString.Internal.Type.ByteString
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs GHC.Types.Double
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs GHC.Types.Int
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Data.Text.Internal.Text
instance GHC.Internal.Base.Functor Codec.Xlsx.Parser.Internal.Fast.AttrParser
instance GHC.Internal.Base.Functor Codec.Xlsx.Parser.Internal.Fast.ChildCollector
instance GHC.Internal.Base.Monad Codec.Xlsx.Parser.Internal.Fast.AttrParser
instance GHC.Internal.Base.Monad Codec.Xlsx.Parser.Internal.Fast.ChildCollector
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Internal.Fast.EntityReplaceException

module Codec.Xlsx.Parser.Internal
data ParseException
ParseException :: String -> ParseException

-- | Add sml namespace to name
n_ :: Text -> Name
nodeElNameIs :: Node -> Name -> Bool
class FromCursor a
fromCursor :: FromCursor a => Cursor -> [a]
class FromAttrVal a
fromAttrVal :: FromAttrVal a => Reader a

-- | required attribute parsing
fromAttribute :: FromAttrVal a => Name -> Cursor -> [a]

-- | parsing optional attributes with defaults
fromAttributeDef :: FromAttrVal a => Name -> a -> Cursor -> [a]

-- | parsing optional attributes
maybeAttribute :: FromAttrVal a => Name -> Cursor -> [Maybe a]
fromElementValue :: FromAttrVal a => Name -> Cursor -> [a]
maybeElementValue :: FromAttrVal a => Name -> Cursor -> [Maybe a]
maybeElementValueDef :: FromAttrVal a => Name -> a -> Cursor -> [Maybe a]
maybeBoolElementValue :: Name -> Cursor -> [Maybe Bool]
maybeFromElement :: FromCursor a => Name -> Cursor -> [Maybe a]
attrValIs :: (Eq a, FromAttrVal a) => Name -> a -> Axis
contentOrEmpty :: Cursor -> [Text]
readSuccess :: a -> Either String (a, Text)
readFailure :: Text -> Either String (a, Text)
invalidText :: Text -> Text -> Either String (a, Text)
defaultReadFailure :: Either String (a, Text)
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Internal.ParseException
instance Codec.Xlsx.Parser.Internal.FromAttrVal GHC.Types.Bool
instance Codec.Xlsx.Parser.Internal.FromAttrVal GHC.Types.Double
instance Codec.Xlsx.Parser.Internal.FromAttrVal GHC.Types.Int
instance Codec.Xlsx.Parser.Internal.FromAttrVal GHC.Num.Integer.Integer
instance Codec.Xlsx.Parser.Internal.FromAttrVal Data.Text.Internal.Text
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Internal.ParseException
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Internal.ParseException

module Codec.Xlsx.Types.Internal.ContentTypes
data CtDefault
CtDefault :: FilePath -> Text -> CtDefault
[dfltExtension] :: CtDefault -> FilePath
[dfltContentType] :: CtDefault -> Text
data Override
Override :: FilePath -> Text -> Override
[ovrPartName] :: Override -> FilePath
[ovrContentType] :: Override -> Text
data ContentTypes
ContentTypes :: Map FilePath Text -> Map FilePath Text -> ContentTypes
[ctDefaults] :: ContentTypes -> Map FilePath Text
[ctTypes] :: ContentTypes -> Map FilePath Text
lookup :: FilePath -> ContentTypes -> Maybe Text

-- | Add package relationship namespace to name
ct :: Text -> Name
contentTypesNs :: Text
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.ContentTypes.ContentTypes
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.ContentTypes.CtDefault
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.ContentTypes.Override
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.ContentTypes.ContentTypes
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.ContentTypes.CtDefault
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.ContentTypes.Override
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.ContentTypes.ContentTypes
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.ContentTypes.CtDefault
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.ContentTypes.Override
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.ContentTypes.ContentTypes
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.ContentTypes.CtDefault
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.ContentTypes.Override

module Codec.Xlsx.Writer.Internal
class ToDocument a
toDocument :: ToDocument a => a -> Document
documentFromElement :: Text -> Element -> Document
documentFromNsElement :: Text -> Text -> Element -> Document
documentFromNsPrefElement :: Text -> Text -> Maybe Text -> Element -> Document
class ToElement a
toElement :: ToElement a => Name -> a -> Element
countedElementList :: Name -> [Element] -> Element
nonEmptyCountedElementList :: Name -> [Element] -> Maybe Element
elementList :: Name -> [(Name, Text)] -> [Element] -> Element
elementListSimple :: Name -> [Element] -> Element
nonEmptyElListSimple :: Name -> [Element] -> Maybe Element
leafElement :: Name -> [(Name, Text)] -> Element
emptyElement :: Name -> Element
elementContent0 :: Name -> [(Name, Text)] -> Text -> Element
elementContent :: Name -> Text -> Element
elementContentPreserved :: Name -> Text -> Element
elementValue :: ToAttrVal a => Name -> a -> Element
elementValueDef :: (Eq a, ToAttrVal a) => Name -> a -> a -> Element
class ToAttrVal a
toAttrVal :: ToAttrVal a => a -> Text
(.=) :: ToAttrVal a => Name -> a -> (Name, Text)
(.=?) :: ToAttrVal a => Name -> Maybe a -> Maybe (Name, Text)
setAttr :: ToAttrVal a => Name -> a -> Element -> Element

-- | Set the namespace for the entire document
--   
--   This follows the same policy that the rest of the xlsx package uses.
addNS :: Text -> Maybe Text -> Element -> Element

-- | The main namespace for Excel
mainNamespace :: Text
txti :: Integral a => a -> Text
txtb :: Bool -> Text
txtd :: Double -> Text
justNonDef :: Eq a => a -> a -> Maybe a
justTrue :: Bool -> Maybe Bool
justFalse :: Bool -> Maybe Bool
instance Codec.Xlsx.Writer.Internal.ToAttrVal GHC.Types.Bool
instance Codec.Xlsx.Writer.Internal.ToAttrVal GHC.Types.Double
instance Codec.Xlsx.Writer.Internal.ToAttrVal GHC.Types.Int
instance Codec.Xlsx.Writer.Internal.ToAttrVal GHC.Num.Integer.Integer
instance Codec.Xlsx.Writer.Internal.ToAttrVal GHC.Internal.Base.String
instance Codec.Xlsx.Writer.Internal.ToAttrVal Data.Text.Internal.Text

module Codec.Xlsx.Types.Variant
data Variant
VtBlob :: ByteString -> Variant
VtBool :: Bool -> Variant
VtDecimal :: Double -> Variant
VtLpwstr :: Text -> Variant
VtInt :: Int -> Variant
variantFromNode :: Node -> [Variant]
killWhitespace :: Text -> Text
decodeBase64 :: MonadFail m => Text -> m ByteString

-- | Add doc props variant types namespace to name
vt :: Text -> Name
docPropsVtNs :: Text
variantToElement :: Variant -> Element
instance GHC.Classes.Eq Codec.Xlsx.Types.Variant.Variant
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Variant.Variant
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Variant.Variant
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Variant.Variant
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Variant.Variant

-- | Support for writing (but not reading) style sheets
module Codec.Xlsx.Types.StyleSheet

-- | StyleSheet for an XML document
--   
--   Relevant parts of the EMCA standard (4th edition, part 1,
--   https://ecma-international.org/publications-and-standards/standards/ecma-376/),
--   page numbers refer to the page in the PDF rather than the page number
--   as printed on the page):
--   
--   
--   
- Chapter 12, "SpreadsheetML" (p. 74) In particular Section 12.3.20,
--   "Styles Part" (p. 104)
--   
- Chapter 18, "SpreadsheetML Reference Material" (p. 1528) In
--   particular Section 18.8, "Styles" (p. 1754) and Section 18.8.39
--   "styleSheet" (Style Sheet)" (p. 1796); it is the latter section that
--   specifies the top-level style sheet format.
--   
--   
--   TODO: the following child elements:
--   
--   
--   
- cellStyles
--   
- cellStyleXfs
--   
- colors
--   
- extLst
--   
- tableStyles
--   
--   
--   NOTE: Because of undocumented Excel requirements you will probably
--   want to base your style sheet on minimalStyleSheet (a proper
--   style sheet should have some contents for details see SO post).
--   def for StyleSheet includes no contents at all and this
--   could be a problem for Excel.
--   
--   See also:
--   
--   
--   
- renderStyleSheet to translate a StyleSheet to
--   Styles
--   
- formatted for a higher level interface.
--   
- parseStyleSheet to translate a raw StyleSheet into
--   Styles
--   
data StyleSheet
StyleSheet :: [Border] -> [CellXf] -> [Fill] -> [Font] -> [Dxf] -> Map Int FormatCode -> StyleSheet

-- | This element contains borders formatting information, specifying all
--   border definitions for all cells in the workbook.
--   
--   Section 18.8.5, "borders (Borders)" (p. 1760)
[_styleSheetBorders] :: StyleSheet -> [Border]

-- | Cell formats
--   
--   This element contains the master formatting records (xf) which define
--   the formatting applied to cells in this workbook. These records are
--   the starting point for determining the formatting for a cell. Cells in
--   the Sheet Part reference the xf records by zero-based index.
--   
--   Section 18.8.10, "cellXfs (Cell Formats)" (p. 1764)
[_styleSheetCellXfs] :: StyleSheet -> [CellXf]

-- | This element defines the cell fills portion of the Styles part,
--   consisting of a sequence of fill records. A cell fill consists of a
--   background color, foreground color, and pattern to be applied across
--   the cell.
--   
--   Section 18.8.21, "fills (Fills)" (p. 1768)
[_styleSheetFills] :: StyleSheet -> [Fill]

-- | This element contains all font definitions for this workbook.
--   
--   Section 18.8.23 "fonts (Fonts)" (p. 1769)
[_styleSheetFonts] :: StyleSheet -> [Font]

-- | Differential formatting
--   
--   This element contains the master differential formatting records
--   (dxf's) which define formatting for all non-cell formatting in this
--   workbook. Whereas xf records fully specify a particular aspect of
--   formatting (e.g., cell borders) by referencing those formatting
--   definitions elsewhere in the Styles part, dxf records specify
--   incremental (or differential) aspects of formatting directly inline
--   within the dxf element. The dxf formatting is to be applied on top of
--   or in addition to any formatting already present on the object using
--   the dxf record.
--   
--   Section 18.8.15, "dxfs (Formats)" (p. 1765)
[_styleSheetDxfs] :: StyleSheet -> [Dxf]

-- | Number formats
--   
--   This element contains custom number formats defined in this style
--   sheet
--   
--   Section 18.8.31, "numFmts (Number Formats)" (p. 1784)
[_styleSheetNumFmts] :: StyleSheet -> Map Int FormatCode

-- | Cell formatting
--   
--   TODO: The extLst field is currently unsupported.
--   
--   Section 18.8.45 "xf (Format)" (p. 1800)
data CellXf
CellXf :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe Alignment -> Maybe Protection -> CellXf

-- | A boolean value indicating whether the alignment formatting specified
--   for this xf should be applied.
[_cellXfApplyAlignment] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the border formatting specified for
--   this xf should be applied.
[_cellXfApplyBorder] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the fill formatting specified for
--   this xf should be applied.
[_cellXfApplyFill] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the font formatting specified for
--   this xf should be applied.
[_cellXfApplyFont] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the number formatting specified for
--   this xf should be applied.
[_cellXfApplyNumberFormat] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the protection formatting specified
--   for this xf should be applied.
[_cellXfApplyProtection] :: CellXf -> Maybe Bool

-- | Zero-based index of the border record used by this cell format.
--   
--   (18.18.2, p. 2437).
[_cellXfBorderId] :: CellXf -> Maybe Int

-- | Zero-based index of the fill record used by this cell format.
--   
--   (18.18.30, p. 2455)
[_cellXfFillId] :: CellXf -> Maybe Int

-- | Zero-based index of the font record used by this cell format.
--   
--   An integer that represents a zero based index into the
--   styleSheetFonts collection in the style sheet (18.18.32, p.
--   2456).
[_cellXfFontId] :: CellXf -> Maybe Int

-- | Id of the number format (numFmt) record used by this cell format.
--   
--   This simple type defines the identifier to a style sheet number format
--   entry in CT_NumFmts. Number formats are written to the styles part
--   (18.18.47, p. 2468). See also 18.8.31 (p. 1784) for more information
--   on number formats.
[_cellXfNumFmtId] :: CellXf -> Maybe Int

-- | A boolean value indicating whether the cell rendering includes a pivot
--   table dropdown button.
[_cellXfPivotButton] :: CellXf -> Maybe Bool

-- | A boolean value indicating whether the text string in a cell should be
--   prefixed by a single quote mark (e.g., 'text). In these cases, the
--   quote is not stored in the Shared Strings Part.
[_cellXfQuotePrefix] :: CellXf -> Maybe Bool

-- | For xf records contained in cellXfs this is the zero-based index of an
--   xf record contained in cellStyleXfs corresponding to the cell style
--   applied to the cell.
--   
--   Not present for xf records contained in cellStyleXfs.
--   
--   Used by xf records and cellStyle records to reference xf records
--   defined in the cellStyleXfs collection. (18.18.10, p. 2442) TODO: the
--   cellStyleXfs field of a style sheet not currently implemented.
[_cellXfId] :: CellXf -> Maybe Int

-- | Formatting information pertaining to text alignment in cells. There
--   are a variety of choices for how text is aligned both horizontally and
--   vertically, as well as indentation settings, and so on.
[_cellXfAlignment] :: CellXf -> Maybe Alignment

-- | Contains protection properties associated with the cell. Each cell has
--   protection properties that can be set. The cell protection properties
--   do not take effect unless the sheet has been protected.
[_cellXfProtection] :: CellXf -> Maybe Protection

-- | Minimal style sheet
--   
--   Excel expects some minimal definitions in the stylesheet; you probably
--   want to define your own stylesheets based on this one.
--   
--   This more-or-less follows the recommendations at
--   http://stackoverflow.com/questions/26050708/minimal-style-sheet-for-excel-open-xml-with-dates,
--   but with some additions based on experimental evidence.
minimalStyleSheet :: StyleSheet

-- | Alignment
--   
--   See 18.8.1 "alignment (Alignment)" (p. 1754)
data Alignment
Alignment :: Maybe CellHorizontalAlignment -> Maybe Int -> Maybe Bool -> Maybe ReadingOrder -> Maybe Int -> Maybe Bool -> Maybe Int -> Maybe CellVerticalAlignment -> Maybe Bool -> Alignment

-- | Specifies the type of horizontal alignment in cells.
[_alignmentHorizontal] :: Alignment -> Maybe CellHorizontalAlignment

-- | An integer value, where an increment of 1 represents 3 spaces.
--   Indicates the number of spaces (of the normal style font) of
--   indentation for text in a cell.
[_alignmentIndent] :: Alignment -> Maybe Int

-- | A boolean value indicating if the cells justified or distributed
--   alignment should be used on the last line of text. (This is typical
--   for East Asian alignments but not typical in other contexts.)
[_alignmentJustifyLastLine] :: Alignment -> Maybe Bool

-- | An integer value indicating whether the reading order
--   (bidirectionality) of the cell is leftto- right, right-to-left, or
--   context dependent.
[_alignmentReadingOrder] :: Alignment -> Maybe ReadingOrder

-- | An integer value (used only in a dxf element) to indicate the
--   additional number of spaces of indentation to adjust for text in a
--   cell.
[_alignmentRelativeIndent] :: Alignment -> Maybe Int

-- | A boolean value indicating if the displayed text in the cell should be
--   shrunk to fit the cell width. Not applicable when a cell contains
--   multiple lines of text.
[_alignmentShrinkToFit] :: Alignment -> Maybe Bool

-- | Text rotation in cells. Expressed in degrees. Values range from 0 to
--   180. The first letter of the text is considered the center-point of
--   the arc.
[_alignmentTextRotation] :: Alignment -> Maybe Int

-- | Vertical alignment in cells.
[_alignmentVertical] :: Alignment -> Maybe CellVerticalAlignment

-- | A boolean value indicating if the text in a cell should be
--   line-wrapped within the cell.
[_alignmentWrapText] :: Alignment -> Maybe Bool

-- | Expresses a single set of cell border formats (left, right, top,
--   bottom, diagonal). Color is optional. When missing, automatic
--   is implied.
--   
--   See 18.8.4 "border (Border)" (p. 1759)
data Border
Border :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Maybe BorderStyle -> Border

-- | A boolean value indicating if the cell's diagonal border includes a
--   diagonal line, starting at the top left corner of the cell and moving
--   down to the bottom right corner of the cell.
[_borderDiagonalDown] :: Border -> Maybe Bool

-- | A boolean value indicating if the cell's diagonal border includes a
--   diagonal line, starting at the bottom left corner of the cell and
--   moving up to the top right corner of the cell.
[_borderDiagonalUp] :: Border -> Maybe Bool

-- | A boolean value indicating if left, right, top, and bottom borders
--   should be applied only to outside borders of a cell range.
[_borderOutline] :: Border -> Maybe Bool

-- | Bottom border
[_borderBottom] :: Border -> Maybe BorderStyle

-- | Diagonal
[_borderDiagonal] :: Border -> Maybe BorderStyle

-- | Trailing edge border
--   
--   See also borderRight
[_borderEnd] :: Border -> Maybe BorderStyle

-- | Horizontal inner borders
[_borderHorizontal] :: Border -> Maybe BorderStyle

-- | Left border
--   
--   NOTE: The spec does not formally list a left border element,
--   but the examples do mention left and the scheme contains it
--   too. See also borderStart.
[_borderLeft] :: Border -> Maybe BorderStyle

-- | Right border
--   
--   NOTE: The spec does not formally list a right border element,
--   but the examples do mention right and the scheme contains it
--   too. See also borderEnd.
[_borderRight] :: Border -> Maybe BorderStyle

-- | Leading edge border
--   
--   See also borderLeft
[_borderStart] :: Border -> Maybe BorderStyle

-- | Top border
[_borderTop] :: Border -> Maybe BorderStyle

-- | Vertical inner border
[_borderVertical] :: Border -> Maybe BorderStyle

-- | Border style See CT_BorderPr (p. 3934)
data BorderStyle
BorderStyle :: Maybe Color -> Maybe LineStyle -> BorderStyle
[_borderStyleColor] :: BorderStyle -> Maybe Color
[_borderStyleLine] :: BorderStyle -> Maybe LineStyle

-- | One of the colors associated with the data bar or color scale.
--   
--   The indexed attribute (used for backwards compatibility only)
--   is not modelled here.
--   
--   See 18.3.1.15 "color (Data Bar Color)" (p. 1608)
data Color
Color :: Maybe Bool -> Maybe Text -> Maybe Int -> Maybe Double -> Color

-- | A boolean value indicating the color is automatic and system color
--   dependent.
[_colorAutomatic] :: Color -> Maybe Bool

-- | Standard Alpha Red Green Blue color value (ARGB).
--   
--   This simple type's contents have a length of exactly 8 hexadecimal
--   digit(s); see "18.18.86 ST_UnsignedIntHex (Hex Unsigned Integer)" (p.
--   2511).
[_colorARGB] :: Color -> Maybe Text

-- | A zero-based index into the clrScheme collection (20.1.6.2),
--   referencing a particular sysClr or srgbClr value
--   expressed in the Theme part.
[_colorTheme] :: Color -> Maybe Int

-- | Specifies the tint value applied to the color.
--   
--   If tint is supplied, then it is applied to the RGB value of the color
--   to determine the final color applied.
--   
--   The tint value is stored as a double from -1.0 .. 1.0, where -1.0
--   means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no
--   change.
[_colorTint] :: Color -> Maybe Double

-- | A single dxf record, expressing incremental formatting to be applied.
--   
--   Section 18.8.14, "dxf (Formatting)" (p. 1765)
data Dxf
Dxf :: Maybe Font -> Maybe NumFmt -> Maybe Fill -> Maybe Alignment -> Maybe Border -> Maybe Protection -> Dxf
[_dxfFont] :: Dxf -> Maybe Font

-- | It seems to be required that this number format entry is duplicated in
--   _styleSheetNumFmts of the style sheet, though the spec says
--   nothing explicitly about it.
[_dxfNumFmt] :: Dxf -> Maybe NumFmt
[_dxfFill] :: Dxf -> Maybe Fill
[_dxfAlignment] :: Dxf -> Maybe Alignment
[_dxfBorder] :: Dxf -> Maybe Border
[_dxfProtection] :: Dxf -> Maybe Protection

-- | This element specifies fill formatting.
--   
--   TODO: Gradient fills (18.8.4) are currently unsupported. If we add
--   them, then the spec says (CT_Fill, p. 3935), _either_ a
--   gradient _or_ a solid fill pattern should be specified.
--   
--   Section 18.8.20, "fill (Fill)" (p. 1768)
data Fill
Fill :: Maybe FillPattern -> Fill
[_fillPattern] :: Fill -> Maybe FillPattern

-- | This element is used to specify cell fill information for pattern and
--   solid color cell fills. For solid cell fills (no pattern), fgColor is
--   used. For cell fills with patterns specified, then the cell fill color
--   is specified by the bgColor element.
--   
--   Section 18.8.32 "patternFill (Pattern)" (p. 1793)
data FillPattern
FillPattern :: Maybe Color -> Maybe Color -> Maybe PatternType -> FillPattern
[_fillPatternBgColor] :: FillPattern -> Maybe Color
[_fillPatternFgColor] :: FillPattern -> Maybe Color
[_fillPatternType] :: FillPattern -> Maybe PatternType

-- | This element defines the properties for one of the fonts used in this
--   workbook.
--   
--   Section 18.2.22 "font (Font)" (p. 1769)
data Font
Font :: Maybe Bool -> Maybe Int -> Maybe Color -> Maybe Bool -> Maybe Bool -> Maybe FontFamily -> Maybe Bool -> Maybe Text -> Maybe Bool -> Maybe FontScheme -> Maybe Bool -> Maybe Bool -> Maybe Double -> Maybe FontUnderline -> Maybe FontVerticalAlignment -> Font

-- | Displays characters in bold face font style.
[_fontBold] :: Font -> Maybe Bool

-- | This element defines the font character set of this font.
--   
--   This field is used in font creation and selection if a font of the
--   given facename is not available on the system. Although it is not
--   required to have around when resolving font facename, the information
--   can be stored for when needed to help resolve which font face to use
--   of all available fonts on a system.
--   
--   Charset represents the basic set of characters associated with a font
--   (that it can display), and roughly corresponds to the ANSI codepage
--   (8-bit or DBCS) of that character set used by a given language. Given
--   more common use of Unicode where many fonts support more than one of
--   the traditional charset categories, and the use of font linking, using
--   charset to resolve font name is less and less common, but still can be
--   useful.
--   
--   These are operating-system-dependent values.
--   
--   Section 18.4.1 "charset (Character Set)" provides some example values.
[_fontCharset] :: Font -> Maybe Int

-- | Color
[_fontColor] :: Font -> Maybe Color

-- | Macintosh compatibility setting. Represents special word/character
--   rendering on Macintosh, when this flag is set. The effect is to
--   condense the text (squeeze it together). SpreadsheetML applications
--   are not required to render according to this flag.
[_fontCondense] :: Font -> Maybe Bool

-- | This element specifies a compatibility setting used for previous
--   spreadsheet applications, resulting in special word/character
--   rendering on those legacy applications, when this flag is set. The
--   effect extends or stretches out the text. SpreadsheetML applications
--   are not required to render according to this flag.
[_fontExtend] :: Font -> Maybe Bool

-- | The font family this font belongs to. A font family is a set of fonts
--   having common stroke width and serif characteristics. This is system
--   level font information. The font name overrides when there are
--   conflicting values.
[_fontFamily] :: Font -> Maybe FontFamily

-- | Displays characters in italic font style. The italic style is defined
--   by the font at a system level and is not specified by ECMA-376.
[_fontItalic] :: Font -> Maybe Bool

-- | This element specifies the face name of this font.
--   
--   A string representing the name of the font. If the font doesn't exist
--   (because it isn't installed on the system), or the charset not
--   supported by that font, then another font should be substituted.
--   
--   The string length for this attribute shall be 0 to 31 characters.
[_fontName] :: Font -> Maybe Text

-- | This element displays only the inner and outer borders of each
--   character. This is very similar to Bold in behavior.
[_fontOutline] :: Font -> Maybe Bool

-- | Defines the font scheme, if any, to which this font belongs. When a
--   font definition is part of a theme definition, then the font is
--   categorized as either a major or minor font scheme component. When a
--   new theme is chosen, every font that is part of a theme definition is
--   updated to use the new major or minor font definition for that theme.
--   Usually major fonts are used for styles like headings, and minor fonts
--   are used for body and paragraph text.
[_fontScheme] :: Font -> Maybe FontScheme

-- | Macintosh compatibility setting. Represents special word/character
--   rendering on Macintosh, when this flag is set. The effect is to render
--   a shadow behind, beneath and to the right of the text. SpreadsheetML
--   applications are not required to render according to this flag.
[_fontShadow] :: Font -> Maybe Bool

-- | This element draws a strikethrough line through the horizontal middle
--   of the text.
[_fontStrikeThrough] :: Font -> Maybe Bool

-- | This element represents the point size (1/72 of an inch) of the Latin
--   and East Asian text.
[_fontSize] :: Font -> Maybe Double

-- | This element represents the underline formatting style.
[_fontUnderline] :: Font -> Maybe FontUnderline

-- | This element adjusts the vertical position of the text relative to the
--   text's default appearance for this run. It is used to get
--   superscript or subscript texts, and shall reduce the
--   font size (if a smaller size is available) accordingly.
[_fontVertAlign] :: Font -> Maybe FontVerticalAlignment

-- | This type gives a high-level version of representation of number
--   format used in Format.
data NumberFormat
StdNumberFormat :: ImpliedNumberFormat -> NumberFormat
UserNumberFormat :: FormatCode -> NumberFormat

-- | This element specifies number format properties which indicate how to
--   format and render the numeric value of a cell.
--   
--   Section 18.8.30 "numFmt (Number Format)" (p. 1777)
data NumFmt
NumFmt :: Int -> FormatCode -> NumFmt
[_numFmtId] :: NumFmt -> Int
[_numFmtCode] :: NumFmt -> FormatCode

-- | Implied number formats
--   
--   Note: This only implements the predefined values for 18.2.30
--   "All Languages", other built-in format ids (with id <
--   firstUserNumFmtId) are stored in NfOtherBuiltin
data ImpliedNumberFormat

-- | 
--   0 General
--   
NfGeneral :: ImpliedNumberFormat

-- | 
--   1 0
--   
NfZero :: ImpliedNumberFormat

-- | 
--   2 0.00
--   
Nf2Decimal :: ImpliedNumberFormat

-- | 
--   3 #,##0
--   
NfMax3Decimal :: ImpliedNumberFormat

-- | 
--   4 #,##0.00
--   
NfThousandSeparator2Decimal :: ImpliedNumberFormat

-- | 
--   9 0%
--   
NfPercent :: ImpliedNumberFormat

-- | 
--   10 0.00%
--   
NfPercent2Decimal :: ImpliedNumberFormat

-- | 
--   11 0.00E+00
--   
NfExponent2Decimal :: ImpliedNumberFormat

-- | 
--   12 # ?/?
--   
NfSingleSpacedFraction :: ImpliedNumberFormat

-- | 
--   13 # ??/??
--   
NfDoubleSpacedFraction :: ImpliedNumberFormat

-- | 
--   14 mm-dd-yy
--   
NfMmDdYy :: ImpliedNumberFormat

-- | 
--   15 d-mmm-yy
--   
NfDMmmYy :: ImpliedNumberFormat

-- | 
--   16 d-mmm
--   
NfDMmm :: ImpliedNumberFormat

-- | 
--   17 mmm-yy
--   
NfMmmYy :: ImpliedNumberFormat

-- | 
--   18 h:mm AM/PM
--   
NfHMm12Hr :: ImpliedNumberFormat

-- | 
--   19 h:mm:ss AM/PM
--   
NfHMmSs12Hr :: ImpliedNumberFormat

-- | 
--   20 h:mm
--   
NfHMm :: ImpliedNumberFormat

-- | 
--   21 h:mm:ss
--   
NfHMmSs :: ImpliedNumberFormat

-- | 
--   22 m/d/yy h:mm
--   
NfMdyHMm :: ImpliedNumberFormat

-- | 
--   37 #,##0 ;(#,##0)
--   
NfThousandsNegativeParens :: ImpliedNumberFormat

-- | 
--   38 #,##0 ;[Red](#,##0)
--   
NfThousandsNegativeRed :: ImpliedNumberFormat

-- | 
--   39 #,##0.00;(#,##0.00)
--   
NfThousands2DecimalNegativeParens :: ImpliedNumberFormat

-- | 
--   40 #,##0.00;[Red](#,##0.00)
--   
NfThousands2DecimalNegativeRed :: ImpliedNumberFormat

-- | 
--   45 mm:ss
--   
NfMmSs :: ImpliedNumberFormat

-- | 
--   46 [h]:mm:ss
--   
NfOptHMmSs :: ImpliedNumberFormat

-- | 
--   47 mmss.0
--   
NfMmSs1Decimal :: ImpliedNumberFormat

-- | 
--   48 ##0.0E+0
--   
NfExponent1Decimal :: ImpliedNumberFormat

-- | 
--   49 @
--   
NfTextPlaceHolder :: ImpliedNumberFormat

-- | other (non local-neutral?) built-in format (id < 164)
NfOtherImplied :: Int -> ImpliedNumberFormat

-- | A number format code.
--   
--   Section 18.8.30, "numFmt (Number Format)" (p. 1777)
type FormatCode = Text

-- | Protection properties
--   
--   Contains protection properties associated with the cell. Each cell has
--   protection properties that can be set. The cell protection properties
--   do not take effect unless the sheet has been protected.
--   
--   Section 18.8.33, "protection (Protection Properties)", p. 1793
data Protection
Protection :: Maybe Bool -> Maybe Bool -> Protection
[_protectionHidden] :: Protection -> Maybe Bool
[_protectionLocked] :: Protection -> Maybe Bool

-- | Horizontal alignment in cells
--   
--   See 18.18.40 "ST_HorizontalAlignment (Horizontal Alignment Type)" (p.
--   2459)
data CellHorizontalAlignment
CellHorizontalAlignmentCenter :: CellHorizontalAlignment
CellHorizontalAlignmentCenterContinuous :: CellHorizontalAlignment
CellHorizontalAlignmentDistributed :: CellHorizontalAlignment
CellHorizontalAlignmentFill :: CellHorizontalAlignment
CellHorizontalAlignmentGeneral :: CellHorizontalAlignment
CellHorizontalAlignmentJustify :: CellHorizontalAlignment
CellHorizontalAlignmentLeft :: CellHorizontalAlignment
CellHorizontalAlignmentRight :: CellHorizontalAlignment

-- | Vertical alignment in cells
--   
--   See 18.18.88 "ST_VerticalAlignment (Vertical Alignment Types)" (p.
--   2512)
data CellVerticalAlignment
CellVerticalAlignmentBottom :: CellVerticalAlignment
CellVerticalAlignmentCenter :: CellVerticalAlignment
CellVerticalAlignmentDistributed :: CellVerticalAlignment
CellVerticalAlignmentJustify :: CellVerticalAlignment
CellVerticalAlignmentTop :: CellVerticalAlignment

-- | Font family
--   
--   See 18.8.18 "family (Font Family)" (p. 1766) and 17.18.30
--   "ST_FontFamily (Font Family Value)" (p. 1388)
data FontFamily

-- | Family is not applicable
FontFamilyNotApplicable :: FontFamily

-- | Proportional font with serifs
FontFamilyRoman :: FontFamily

-- | Proportional font without serifs
FontFamilySwiss :: FontFamily

-- | Monospace font with or without serifs
FontFamilyModern :: FontFamily

-- | Script font designed to mimic the appearance of handwriting
FontFamilyScript :: FontFamily

-- | Novelty font
FontFamilyDecorative :: FontFamily

-- | Font scheme
--   
--   See 18.18.33 "ST_FontScheme (Font scheme Styles)" (p. 2456)
data FontScheme

-- | This font is the major font for this theme.
FontSchemeMajor :: FontScheme

-- | This font is the minor font for this theme.
FontSchemeMinor :: FontScheme

-- | This font is not a theme font.
FontSchemeNone :: FontScheme

-- | Font underline property
--   
--   See 18.4.13 "u (Underline)", p 1728
data FontUnderline
FontUnderlineSingle :: FontUnderline
FontUnderlineDouble :: FontUnderline
FontUnderlineSingleAccounting :: FontUnderline
FontUnderlineDoubleAccounting :: FontUnderline
FontUnderlineNone :: FontUnderline

-- | Vertical alignment
--   
--   See 22.9.2.17 "ST_VerticalAlignRun (Vertical Positioning Location)"
--   (p. 3794)
data FontVerticalAlignment
FontVerticalAlignmentBaseline :: FontVerticalAlignment
FontVerticalAlignmentSubscript :: FontVerticalAlignment
FontVerticalAlignmentSuperscript :: FontVerticalAlignment
data LineStyle
LineStyleDashDot :: LineStyle
LineStyleDashDotDot :: LineStyle
LineStyleDashed :: LineStyle
LineStyleDotted :: LineStyle
LineStyleDouble :: LineStyle
LineStyleHair :: LineStyle
LineStyleMedium :: LineStyle
LineStyleMediumDashDot :: LineStyle
LineStyleMediumDashDotDot :: LineStyle
LineStyleMediumDashed :: LineStyle
LineStyleNone :: LineStyle
LineStyleSlantDashDot :: LineStyle
LineStyleThick :: LineStyle
LineStyleThin :: LineStyle

-- | Indicates the style of fill pattern being used for a cell format.
--   
--   Section 18.18.55 "ST_PatternType (Pattern Type)" (p. 2472)
data PatternType
PatternTypeDarkDown :: PatternType
PatternTypeDarkGray :: PatternType
PatternTypeDarkGrid :: PatternType
PatternTypeDarkHorizontal :: PatternType
PatternTypeDarkTrellis :: PatternType
PatternTypeDarkUp :: PatternType
PatternTypeDarkVertical :: PatternType
PatternTypeGray0625 :: PatternType
PatternTypeGray125 :: PatternType
PatternTypeLightDown :: PatternType
PatternTypeLightGray :: PatternType
PatternTypeLightGrid :: PatternType
PatternTypeLightHorizontal :: PatternType
PatternTypeLightTrellis :: PatternType
PatternTypeLightUp :: PatternType
PatternTypeLightVertical :: PatternType
PatternTypeMediumGray :: PatternType
PatternTypeNone :: PatternType
PatternTypeSolid :: PatternType

-- | Reading order
--   
--   See 18.8.1 "alignment (Alignment)" (p. 1754, esp. p. 1755)
data ReadingOrder
ReadingOrderContextDependent :: ReadingOrder
ReadingOrderLeftToRight :: ReadingOrder
ReadingOrderRightToLeft :: ReadingOrder
styleSheetBorders :: Lens' StyleSheet [Border]
styleSheetFonts :: Lens' StyleSheet [Font]
styleSheetFills :: Lens' StyleSheet [Fill]
styleSheetCellXfs :: Lens' StyleSheet [CellXf]
styleSheetDxfs :: Lens' StyleSheet [Dxf]
styleSheetNumFmts :: Lens' StyleSheet (Map Int FormatCode)
cellXfApplyAlignment :: Lens' CellXf (Maybe Bool)
cellXfApplyBorder :: Lens' CellXf (Maybe Bool)
cellXfApplyFill :: Lens' CellXf (Maybe Bool)
cellXfApplyFont :: Lens' CellXf (Maybe Bool)
cellXfApplyNumberFormat :: Lens' CellXf (Maybe Bool)
cellXfApplyProtection :: Lens' CellXf (Maybe Bool)
cellXfBorderId :: Lens' CellXf (Maybe Int)
cellXfFillId :: Lens' CellXf (Maybe Int)
cellXfFontId :: Lens' CellXf (Maybe Int)
cellXfNumFmtId :: Lens' CellXf (Maybe Int)
cellXfPivotButton :: Lens' CellXf (Maybe Bool)
cellXfQuotePrefix :: Lens' CellXf (Maybe Bool)
cellXfId :: Lens' CellXf (Maybe Int)
cellXfAlignment :: Lens' CellXf (Maybe Alignment)
cellXfProtection :: Lens' CellXf (Maybe Protection)
dxfAlignment :: Lens' Dxf (Maybe Alignment)
dxfBorder :: Lens' Dxf (Maybe Border)
dxfFill :: Lens' Dxf (Maybe Fill)
dxfFont :: Lens' Dxf (Maybe Font)
dxfNumFmt :: Lens' Dxf (Maybe NumFmt)
dxfProtection :: Lens' Dxf (Maybe Protection)
alignmentHorizontal :: Lens' Alignment (Maybe CellHorizontalAlignment)
alignmentIndent :: Lens' Alignment (Maybe Int)
alignmentJustifyLastLine :: Lens' Alignment (Maybe Bool)
alignmentReadingOrder :: Lens' Alignment (Maybe ReadingOrder)
alignmentRelativeIndent :: Lens' Alignment (Maybe Int)
alignmentShrinkToFit :: Lens' Alignment (Maybe Bool)
alignmentTextRotation :: Lens' Alignment (Maybe Int)
alignmentVertical :: Lens' Alignment (Maybe CellVerticalAlignment)
alignmentWrapText :: Lens' Alignment (Maybe Bool)
borderDiagonalDown :: Lens' Border (Maybe Bool)
borderDiagonalUp :: Lens' Border (Maybe Bool)
borderOutline :: Lens' Border (Maybe Bool)
borderBottom :: Lens' Border (Maybe BorderStyle)
borderDiagonal :: Lens' Border (Maybe BorderStyle)
borderEnd :: Lens' Border (Maybe BorderStyle)
borderHorizontal :: Lens' Border (Maybe BorderStyle)
borderStart :: Lens' Border (Maybe BorderStyle)
borderTop :: Lens' Border (Maybe BorderStyle)
borderVertical :: Lens' Border (Maybe BorderStyle)
borderLeft :: Lens' Border (Maybe BorderStyle)
borderRight :: Lens' Border (Maybe BorderStyle)
borderStyleColor :: Lens' BorderStyle (Maybe Color)
borderStyleLine :: Lens' BorderStyle (Maybe LineStyle)
colorAutomatic :: Lens' Color (Maybe Bool)
colorARGB :: Lens' Color (Maybe Text)
colorTheme :: Lens' Color (Maybe Int)
colorTint :: Lens' Color (Maybe Double)
fillPattern :: Iso' Fill (Maybe FillPattern)
fillPatternBgColor :: Lens' FillPattern (Maybe Color)
fillPatternFgColor :: Lens' FillPattern (Maybe Color)
fillPatternType :: Lens' FillPattern (Maybe PatternType)
fontBold :: Lens' Font (Maybe Bool)
fontCharset :: Lens' Font (Maybe Int)
fontColor :: Lens' Font (Maybe Color)
fontCondense :: Lens' Font (Maybe Bool)
fontExtend :: Lens' Font (Maybe Bool)
fontFamily :: Lens' Font (Maybe FontFamily)
fontItalic :: Lens' Font (Maybe Bool)
fontName :: Lens' Font (Maybe Text)
fontOutline :: Lens' Font (Maybe Bool)
fontScheme :: Lens' Font (Maybe FontScheme)
fontShadow :: Lens' Font (Maybe Bool)
fontStrikeThrough :: Lens' Font (Maybe Bool)
fontSize :: Lens' Font (Maybe Double)
fontUnderline :: Lens' Font (Maybe FontUnderline)
fontVertAlign :: Lens' Font (Maybe FontVerticalAlignment)
protectionHidden :: Lens' Protection (Maybe Bool)
protectionLocked :: Lens' Protection (Maybe Bool)

-- | Basic number format with predefined number of decimals as format code
--   of number format in xlsx should be less than 255 characters number of
--   decimals shouldn't be more than 253
fmtDecimals :: Int -> NumberFormat

-- | Basic number format with predefined number of decimals. Works like
--   fmtDecimals with the only difference that extra zeroes are
--   displayed when number of digits after the point is less than the
--   number of digits specified in the format
fmtDecimalsZeroes :: Int -> NumberFormat
stdNumberFormatId :: ImpliedNumberFormat -> Int
idToStdNumberFormat :: Int -> Maybe ImpliedNumberFormat
firstUserNumFmtId :: Int
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Alignment
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Border
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.BorderStyle
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.CellXf
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Color
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Dxf
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Fill
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.FillPattern
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Font
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.Protection
instance Data.Default.Internal.Default Codec.Xlsx.Types.StyleSheet.StyleSheet
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Alignment
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Border
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.BorderStyle
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.CellXf
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Color
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Dxf
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Fill
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.FillPattern
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Font
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.FontFamily
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.FontScheme
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.FontUnderline
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.ImpliedNumberFormat
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.LineStyle
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.NumFmt
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.NumberFormat
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.PatternType
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.Protection
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance GHC.Classes.Eq Codec.Xlsx.Types.StyleSheet.StyleSheet
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.StyleSheet.FontFamily
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.StyleSheet.FontScheme
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.StyleSheet.FontUnderline
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.FontFamily
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.FontScheme
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.FontUnderline
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.LineStyle
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.PatternType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Alignment
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Border
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.BorderStyle
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.CellXf
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Color
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Dxf
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Fill
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.FillPattern
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Font
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.NumFmt
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.Protection
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.StyleSheet.StyleSheet
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.StyleSheet.Color
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Alignment
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Border
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.BorderStyle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.CellXf
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Color
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Dxf
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Fill
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.FillPattern
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Font
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.FontFamily
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.FontScheme
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.FontUnderline
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.ImpliedNumberFormat
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.LineStyle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.NumFmt
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.NumberFormat
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.PatternType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.Protection
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.StyleSheet.StyleSheet
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Alignment
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Border
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.BorderStyle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.CellXf
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Color
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Dxf
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Fill
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.FillPattern
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Font
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.FontFamily
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.FontScheme
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.FontUnderline
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.ImpliedNumberFormat
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.LineStyle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.NumFmt
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.NumberFormat
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.PatternType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.Protection
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance Control.DeepSeq.NFData Codec.Xlsx.Types.StyleSheet.StyleSheet
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Alignment
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Border
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.BorderStyle
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.CellXf
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Color
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Dxf
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Fill
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.FillPattern
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Font
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.FontFamily
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.FontScheme
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.FontUnderline
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.ImpliedNumberFormat
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.LineStyle
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.NumFmt
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.NumberFormat
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.PatternType
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.Protection
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance GHC.Classes.Ord Codec.Xlsx.Types.StyleSheet.StyleSheet
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Alignment
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Border
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.BorderStyle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.CellXf
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Color
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Dxf
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Fill
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.FillPattern
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Font
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.FontFamily
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.FontScheme
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.FontUnderline
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.ImpliedNumberFormat
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.LineStyle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.NumFmt
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.NumberFormat
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.PatternType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.Protection
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance GHC.Internal.Show.Show Codec.Xlsx.Types.StyleSheet.StyleSheet
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.CellHorizontalAlignment
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.CellVerticalAlignment
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.FontFamily
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.FontScheme
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.FontUnderline
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.FontVerticalAlignment
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.LineStyle
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.PatternType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.StyleSheet.ReadingOrder
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.StyleSheet.StyleSheet
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Alignment
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Border
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.BorderStyle
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.CellXf
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Color
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Dxf
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Fill
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.FillPattern
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Font
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.NumFmt
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.Protection
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.StyleSheet.StyleSheet

module Codec.Xlsx.Types.RichText

-- | Rich Text Run
--   
--   This element represents a run of rich text. A rich text run is a
--   region of text that share a common set of properties, such as
--   formatting properties.
--   
--   Section 18.4.4, "r (Rich Text Run)" (p. 1724)
data RichTextRun
RichTextRun :: Maybe RunProperties -> Text -> RichTextRun

-- | This element represents a set of properties to apply to the contents
--   of this rich text run.
[_richTextRunProperties] :: RichTextRun -> Maybe RunProperties

-- | This element represents the text content shown as part of a string.
--   
--   NOTE: RichTextRun elements with an empty text field will result
--   in an error when opening the file in Excel.
--   
--   Section 18.4.12, "t (Text)" (p. 1727)
[_richTextRunText] :: RichTextRun -> Text

-- | Run properties
--   
--   Section 18.4.7, "rPr (Run Properties)" (p. 1725)
data RunProperties
RunProperties :: Maybe Bool -> Maybe Int -> Maybe Color -> Maybe Bool -> Maybe Bool -> Maybe FontFamily -> Maybe Bool -> Maybe Bool -> Maybe Text -> Maybe FontScheme -> Maybe Bool -> Maybe Bool -> Maybe Double -> Maybe FontUnderline -> Maybe FontVerticalAlignment -> RunProperties

-- | Displays characters in bold face font style.
--   
--   Section 18.8.2, "b (Bold)" (p. 1757)
[_runPropertiesBold] :: RunProperties -> Maybe Bool

-- | This element defines the font character set of this font.
--   
--   Section 18.4.1, "charset (Character Set)" (p. 1721)
[_runPropertiesCharset] :: RunProperties -> Maybe Int

-- | One of the colors associated with the data bar or color scale.
--   
--   Section 18.3.1.15, "color (Data Bar Color)" (p. 1608)
[_runPropertiesColor] :: RunProperties -> Maybe Color

-- | Macintosh compatibility setting. Represents special word/character
--   rendering on Macintosh, when this flag is set. The effect is to
--   condense the text (squeeze it together).
--   
--   Section 18.8.12, "condense (Condense)" (p. 1764)
[_runPropertiesCondense] :: RunProperties -> Maybe Bool

-- | This element specifies a compatibility setting used for previous
--   spreadsheet applications, resulting in special word/character
--   rendering on those legacy applications, when this flag is set. The
--   effect extends or stretches out the text.
--   
--   Section 18.8.17, "extend (Extend)" (p. 1766)
[_runPropertiesExtend] :: RunProperties -> Maybe Bool

-- | The font family this font belongs to. A font family is a set of fonts
--   having common stroke width and serif characteristics. This is system
--   level font information. The font name overrides when there are
--   conflicting values.
--   
--   Section 18.8.18, "family (Font Family)" (p. 1766)
[_runPropertiesFontFamily] :: RunProperties -> Maybe FontFamily

-- | Displays characters in italic font style. The italic style is defined
--   by the font at a system level and is not specified by ECMA-376.
--   
--   Section 18.8.26, "i (Italic)" (p. 1773)
[_runPropertiesItalic] :: RunProperties -> Maybe Bool

-- | This element displays only the inner and outer borders of each
--   character. This is very similar to Bold in behavior.
--   
--   Section 18.4.2, "outline (Outline)" (p. 1722)
[_runPropertiesOutline] :: RunProperties -> Maybe Bool

-- | This element is a string representing the name of the font assigned to
--   display this run.
--   
--   Section 18.4.5, "rFont (Font)" (p. 1724)
[_runPropertiesFont] :: RunProperties -> Maybe Text

-- | Defines the font scheme, if any, to which this font belongs. When a
--   font definition is part of a theme definition, then the font is
--   categorized as either a major or minor font scheme component. When a
--   new theme is chosen, every font that is part of a theme definition is
--   updated to use the new major or minor font definition for that theme.
--   Usually major fonts are used for styles like headings, and minor fonts
--   are used for body and paragraph text.
--   
--   Section 18.8.35, "scheme (Scheme)" (p. 1794)
[_runPropertiesScheme] :: RunProperties -> Maybe FontScheme

-- | Macintosh compatibility setting. Represents special word/character
--   rendering on Macintosh, when this flag is set. The effect is to render
--   a shadow behind, beneath and to the right of the text.
--   
--   Section 18.8.36, "shadow (Shadow)" (p. 1795)
[_runPropertiesShadow] :: RunProperties -> Maybe Bool

-- | This element draws a strikethrough line through the horizontal middle
--   of the text.
--   
--   Section 18.4.10, "strike (Strike Through)" (p. 1726)
[_runPropertiesStrikeThrough] :: RunProperties -> Maybe Bool

-- | This element represents the point size (1/72 of an inch) of the Latin
--   and East Asian text.
--   
--   Section 18.4.11, "sz (Font Size)" (p. 1727)
[_runPropertiesSize] :: RunProperties -> Maybe Double

-- | This element represents the underline formatting style.
--   
--   Section 18.4.13, "u (Underline)" (p. 1728)
[_runPropertiesUnderline] :: RunProperties -> Maybe FontUnderline

-- | This element adjusts the vertical position of the text relative to the
--   text's default appearance for this run. It is used to get
--   superscript or subscript texts, and shall reduce the
--   font size (if a smaller size is available) accordingly.
--   
--   Section 18.4.14, "vertAlign (Vertical Alignment)" (p. 1728)
[_runPropertiesVertAlign] :: RunProperties -> Maybe FontVerticalAlignment

-- | Apply properties to a RichTextRun
--   
--   If the RichTextRun specifies its own properties, then these
--   overrule the properties specified here. For example, adding
--   bold to a RichTextRun which is already italic
--   will make the RichTextRun both bold and italic@ but
--   adding it to one that that is explicitly _not_ bold will leave the
--   RichTextRun unchanged.
applyRunProperties :: RunProperties -> RichTextRun -> RichTextRun
richTextRunProperties :: Lens' RichTextRun (Maybe RunProperties)
richTextRunText :: Lens' RichTextRun Text
runPropertiesBold :: Lens' RunProperties (Maybe Bool)
runPropertiesCharset :: Lens' RunProperties (Maybe Int)
runPropertiesColor :: Lens' RunProperties (Maybe Color)
runPropertiesCondense :: Lens' RunProperties (Maybe Bool)
runPropertiesExtend :: Lens' RunProperties (Maybe Bool)
runPropertiesFontFamily :: Lens' RunProperties (Maybe FontFamily)
runPropertiesItalic :: Lens' RunProperties (Maybe Bool)
runPropertiesOutline :: Lens' RunProperties (Maybe Bool)
runPropertiesFont :: Lens' RunProperties (Maybe Text)
runPropertiesScheme :: Lens' RunProperties (Maybe FontScheme)
runPropertiesShadow :: Lens' RunProperties (Maybe Bool)
runPropertiesStrikeThrough :: Lens' RunProperties (Maybe Bool)
runPropertiesSize :: Lens' RunProperties (Maybe Double)
runPropertiesUnderline :: Lens' RunProperties (Maybe FontUnderline)
runPropertiesVertAlign :: Lens' RunProperties (Maybe FontVerticalAlignment)
instance Data.Default.Internal.Default Codec.Xlsx.Types.RichText.RichTextRun
instance Data.Default.Internal.Default Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.RichText.RichTextRun
instance GHC.Classes.Eq Codec.Xlsx.Types.RichText.RunProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.RichText.RichTextRun
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.RichText.RunProperties
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.RichText.RichTextRun
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.RichText.RichTextRun
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Internal.Base.Monoid Codec.Xlsx.Types.RichText.RunProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.RichText.RichTextRun
instance Control.DeepSeq.NFData Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Classes.Ord Codec.Xlsx.Types.RichText.RichTextRun
instance GHC.Classes.Ord Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Internal.Base.Semigroup Codec.Xlsx.Types.RichText.RunProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.RichText.RichTextRun
instance GHC.Internal.Show.Show Codec.Xlsx.Types.RichText.RunProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.RichText.RichTextRun
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.RichText.RunProperties

module Codec.Xlsx.Types.Protection

-- | Sheet protection options to enforce and specify that it needs to be
--   protected
--   
--   TODO: algorithms specified in the spec with hashes, salts and spin
--   counts
--   
--   See 18.3.1.85 "sheetProtection (Sheet Protection Options)" (p. 1694)
data SheetProtection
SheetProtection :: Maybe LegacyPassword -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> SheetProtection

-- | Specifies the legacy hash of the password required for editing this
--   worksheet.
--   
--   See Part 4, 15.3.1.6 "Additional attribute for sheetProtection element
--   (Part 1, §18.3.1.85)" (p. 229)
[_sprLegacyPassword] :: SheetProtection -> Maybe LegacyPassword

-- | the value of this attribute dictates whether the other attributes of
--   SheetProtection should be applied
[_sprSheet] :: SheetProtection -> Bool

-- | AutoFilters should not be allowed to operate when the sheet is
--   protected
[_sprAutoFilter] :: SheetProtection -> Bool

-- | deleting columns should not be allowed when the sheet is protected
[_sprDeleteColumns] :: SheetProtection -> Bool

-- | deleting rows should not be allowed when the sheet is protected
[_sprDeleteRows] :: SheetProtection -> Bool

-- | formatting cells should not be allowed when the sheet is protected
[_sprFormatCells] :: SheetProtection -> Bool

-- | formatting columns should not be allowed when the sheet is protected
[_sprFormatColumns] :: SheetProtection -> Bool

-- | formatting rows should not be allowed when the sheet is protected
[_sprFormatRows] :: SheetProtection -> Bool

-- | inserting columns should not be allowed when the sheet is protected
[_sprInsertColumns] :: SheetProtection -> Bool

-- | inserting hyperlinks should not be allowed when the sheet is protected
[_sprInsertHyperlinks] :: SheetProtection -> Bool

-- | inserting rows should not be allowed when the sheet is protected
[_sprInsertRows] :: SheetProtection -> Bool

-- | editing of objects should not be allowed when the sheet is protected
[_sprObjects] :: SheetProtection -> Bool

-- | PivotTables should not be allowed to operate when the sheet is
--   protected
[_sprPivotTables] :: SheetProtection -> Bool

-- | Scenarios should not be edited when the sheet is protected
[_sprScenarios] :: SheetProtection -> Bool

-- | selection of locked cells should not be allowed when the sheet is
--   protected
[_sprSelectLockedCells] :: SheetProtection -> Bool

-- | selection of unlocked cells should not be allowed when the sheet is
--   protected
[_sprSelectUnlockedCells] :: SheetProtection -> Bool

-- | sorting should not be allowed when the sheet is protected
[_sprSort] :: SheetProtection -> Bool

-- | protection of all sheet features which could be protected
fullSheetProtection :: SheetProtection

-- | no sheet protection at all
noSheetProtection :: SheetProtection
data LegacyPassword

-- | Creates legacy XOR hashed password.
--   
--   Note: The implementation is known to work only for ASCII
--   symbols, if you know how to encode properly others - an email or a PR
--   will be highly apperciated
--   
--   See Part 4, 14.7.1 "Legacy Password Hash Algorithm" (p. 73) and Part
--   4, 15.2.3 "Additional attributes for workbookProtection element (Part
--   1, §18.2.29)" (p. 220) and Par 4, 15.3.1.6 "Additional attribute for
--   sheetProtection element (Part 1, §18.3.1.85)" (p. 229)
legacyPassword :: Text -> LegacyPassword
sprLegacyPassword :: Lens' SheetProtection (Maybe LegacyPassword)
sprSheet :: Lens' SheetProtection Bool
sprObjects :: Lens' SheetProtection Bool
sprScenarios :: Lens' SheetProtection Bool
sprFormatCells :: Lens' SheetProtection Bool
sprFormatColumns :: Lens' SheetProtection Bool
sprFormatRows :: Lens' SheetProtection Bool
sprInsertColumns :: Lens' SheetProtection Bool
sprInsertRows :: Lens' SheetProtection Bool
sprInsertHyperlinks :: Lens' SheetProtection Bool
sprDeleteColumns :: Lens' SheetProtection Bool
sprDeleteRows :: Lens' SheetProtection Bool
sprSelectLockedCells :: Lens' SheetProtection Bool
sprSort :: Lens' SheetProtection Bool
sprAutoFilter :: Lens' SheetProtection Bool
sprPivotTables :: Lens' SheetProtection Bool
sprSelectUnlockedCells :: Lens' SheetProtection Bool
instance GHC.Classes.Eq Codec.Xlsx.Types.Protection.LegacyPassword
instance GHC.Classes.Eq Codec.Xlsx.Types.Protection.SheetProtection
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Protection.LegacyPassword
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Protection.LegacyPassword
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Protection.SheetProtection
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Protection.SheetProtection
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Protection.LegacyPassword
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Protection.SheetProtection
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Protection.LegacyPassword
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Protection.SheetProtection
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Protection.LegacyPassword
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Protection.SheetProtection
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Protection.LegacyPassword
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Protection.SheetProtection

module Codec.Xlsx.Types.PageSetup
data PageSetup
PageSetup :: Maybe Bool -> Maybe CellComments -> Maybe Int -> Maybe Bool -> Maybe PrintErrors -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Orientation -> Maybe PageOrder -> Maybe Text -> Maybe PaperSize -> Maybe Text -> Maybe Int -> Maybe Bool -> Maybe Bool -> Maybe Int -> PageSetup

-- | Print black and white.
[_pageSetupBlackAndWhite] :: PageSetup -> Maybe Bool

-- | This attribute specifies how to print cell comments.
[_pageSetupCellComments] :: PageSetup -> Maybe CellComments

-- | Number of copies to print.
[_pageSetupCopies] :: PageSetup -> Maybe Int

-- | Print without graphics.
[_pageSetupDraft] :: PageSetup -> Maybe Bool

-- | Specifies how to print cell values for cells with errors.
[_pageSetupErrors] :: PageSetup -> Maybe PrintErrors

-- | Page number for first printed page. If no value is specified, then
--   automatic is assumed.
[_pageSetupFirstPageNumber] :: PageSetup -> Maybe Int

-- | Number of vertical pages to fit on.
[_pageSetupFitToHeight] :: PageSetup -> Maybe Int

-- | Number of horizontal pages to fit on.
[_pageSetupFitToWidth] :: PageSetup -> Maybe Int

-- | Horizontal print resolution of the device.
[_pageSetupHorizontalDpi] :: PageSetup -> Maybe Int

-- | Relationship Id of the devMode printer settings part.
--   
--   (Explicit reference to a parent XML element.)
--   
--   See 22.8.2.1 "ST_RelationshipId (Explicit Relationship ID)" (p. 3784)
[_pageSetupId] :: PageSetup -> Maybe Text

-- | Orientation of the page.
[_pageSetupOrientation] :: PageSetup -> Maybe Orientation

-- | Order of printed pages
[_pageSetupPageOrder] :: PageSetup -> Maybe PageOrder

-- | Height of custom paper as a number followed by a unit identifier.
--   
--   When paperHeight and paperWidth are specified, paperSize shall be
--   ignored. Examples: "297mm", "11in".
--   
--   See 22.9.2.12 "ST_PositiveUniversalMeasure (Positive Universal
--   Measurement)" (p. 3792)
[_pageSetupPaperHeight] :: PageSetup -> Maybe Text

-- | Pager size
--   
--   When paperHeight, paperWidth, and paperUnits are specified, paperSize
--   should be ignored.
[_pageSetupPaperSize] :: PageSetup -> Maybe PaperSize

-- | Width of custom paper as a number followed by a unit identifier
--   
--   Examples: 21cm, 8.5in
--   
--   When paperHeight and paperWidth are specified, paperSize shall be
--   ignored.
[_pageSetupPaperWidth] :: PageSetup -> Maybe Text

-- | Print scaling.
--   
--   This attribute is restricted to values ranging from 10 to 400. This
--   setting is overridden when fitToWidth and/or fitToHeight are in use.
[_pageSetupScale] :: PageSetup -> Maybe Int

-- | Use _pageSetupFirstPageNumber value for first page number, and
--   do not auto number the pages.
[_pageSetupUseFirstPageNumber] :: PageSetup -> Maybe Bool

-- | Use the printer’s defaults settings for page setup values and don't
--   use the default values specified in the schema.
--   
--   Example: If dpi is not present or specified in the XML, the
--   application must not assume 600dpi as specified in the schema as a
--   default and instead must let the printer specify the default dpi.
[_pageSetupUsePrinterDefaults] :: PageSetup -> Maybe Bool

-- | Vertical print resolution of the device.
[_pageSetupVerticalDpi] :: PageSetup -> Maybe Int

-- | Cell comments
--   
--   These enumerations specify how cell comments shall be displayed for
--   paper printing purposes.
--   
--   See 18.18.5 "ST_CellComments (Cell Comments)" (p. 2441).
data CellComments

-- | Print cell comments as displayed
CellCommentsAsDisplayed :: CellComments

-- | Print cell comments at end of document
CellCommentsAtEnd :: CellComments

-- | Do not print cell comments
CellCommentsNone :: CellComments

-- | Print errors
--   
--   This enumeration specifies how to display cells with errors when
--   printing the worksheet.
data PrintErrors

-- | Display cell errors as blank
PrintErrorsBlank :: PrintErrors

-- | Display cell errors as dashes
PrintErrorsDash :: PrintErrors

-- | Display cell errors as displayed on screen
PrintErrorsDisplayed :: PrintErrors

-- | Display cell errors as #N/A
PrintErrorsNA :: PrintErrors

-- | Print orientation for this sheet
data Orientation
OrientationDefault :: Orientation
OrientationLandscape :: Orientation
OrientationPortrait :: Orientation

-- | Specifies printed page order
data PageOrder

-- | Order pages vertically first, then move horizontally
PageOrderDownThenOver :: PageOrder

-- | Order pages horizontally first, then move vertically
PageOrderOverThenDown :: PageOrder

-- | Paper size
data PaperSize

-- | A2 paper (420 mm by 594 mm)
PaperA2 :: PaperSize

-- | A3 paper (297 mm by 420 mm)
PaperA3 :: PaperSize

-- | A3 extra paper (322 mm by 445 mm)
PaperA3Extra :: PaperSize

-- | A3 extra transverse paper (322 mm by 445 mm)
PaperA3ExtraTransverse :: PaperSize

-- | A3 transverse paper (297 mm by 420 mm)
PaperA3Transverse :: PaperSize

-- | A4 paper (210 mm by 297 mm)
PaperA4 :: PaperSize

-- | A4 extra paper (236 mm by 322 mm)
PaperA4Extra :: PaperSize

-- | A4 plus paper (210 mm by 330 mm)
PaperA4Plus :: PaperSize

-- | A4 small paper (210 mm by 297 mm)
PaperA4Small :: PaperSize

-- | A4 transverse paper (210 mm by 297 mm)
PaperA4Transverse :: PaperSize

-- | A5 paper (148 mm by 210 mm)
PaperA5 :: PaperSize

-- | A5 extra paper (174 mm by 235 mm)
PaperA5Extra :: PaperSize

-- | A5 transverse paper (148 mm by 210 mm)
PaperA5Transverse :: PaperSize

-- | B4 paper (250 mm by 353 mm)
PaperB4 :: PaperSize

-- | B5 paper (176 mm by 250 mm)
PaperB5 :: PaperSize

-- | C paper (17 in. by 22 in.)
PaperC :: PaperSize

-- | D paper (22 in. by 34 in.)
PaperD :: PaperSize

-- | E paper (34 in. by 44 in.)
PaperE :: PaperSize

-- | Executive paper (7.25 in. by 10.5 in.)
PaperExecutive :: PaperSize

-- | German legal fanfold (8.5 in. by 13 in.)
PaperFanfoldGermanLegal :: PaperSize

-- | German standard fanfold (8.5 in. by 12 in.)
PaperFanfoldGermanStandard :: PaperSize

-- | US standard fanfold (14.875 in. by 11 in.)
PaperFanfoldUsStandard :: PaperSize

-- | Folio paper (8.5 in. by 13 in.)
PaperFolio :: PaperSize

-- | ISO B4 (250 mm by 353 mm)
PaperIsoB4 :: PaperSize

-- | ISO B5 extra paper (201 mm by 276 mm)
PaperIsoB5Extra :: PaperSize

-- | Japanese double postcard (200 mm by 148 mm)
PaperJapaneseDoublePostcard :: PaperSize

-- | JIS B5 transverse paper (182 mm by 257 mm)
PaperJisB5Transverse :: PaperSize

-- | Ledger paper (17 in. by 11 in.)
PaperLedger :: PaperSize

-- | Legal paper (8.5 in. by 14 in.)
PaperLegal :: PaperSize

-- | Legal extra paper (9.275 in. by 15 in.)
PaperLegalExtra :: PaperSize

-- | Letter paper (8.5 in. by 11 in.)
PaperLetter :: PaperSize

-- | Letter extra paper (9.275 in. by 12 in.)
PaperLetterExtra :: PaperSize

-- | Letter extra transverse paper (9.275 in. by 12 in.)
PaperLetterExtraTransverse :: PaperSize

-- | Letter plus paper (8.5 in. by 12.69 in.)
PaperLetterPlus :: PaperSize

-- | Letter small paper (8.5 in. by 11 in.)
PaperLetterSmall :: PaperSize

-- | Letter transverse paper (8.275 in. by 11 in.)
PaperLetterTransverse :: PaperSize

-- | Note paper (8.5 in. by 11 in.)
PaperNote :: PaperSize

-- | Quarto paper (215 mm by 275 mm)
PaperQuarto :: PaperSize

-- | Standard paper (9 in. by 11 in.)
PaperStandard9_11 :: PaperSize

-- | Standard paper (10 in. by 11 in.)
PaperStandard10_11 :: PaperSize

-- | Standard paper (10 in. by 14 in.)
PaperStandard10_14 :: PaperSize

-- | Standard paper (11 in. by 17 in.)
PaperStandard11_17 :: PaperSize

-- | Standard paper (15 in. by 11 in.)
PaperStandard15_11 :: PaperSize

-- | Statement paper (5.5 in. by 8.5 in.)
PaperStatement :: PaperSize

-- | SuperASuperAA4 paper (227 mm by 356 mm)
PaperSuperA :: PaperSize

-- | SuperBSuperBA3 paper (305 mm by 487 mm)
PaperSuperB :: PaperSize

-- | Tabloid paper (11 in. by 17 in.)
PaperTabloid :: PaperSize

-- | Tabloid extra paper (11.69 in. by 18 in.)
PaperTabloidExtra :: PaperSize

-- | 6 3/4 envelope (3.625 in. by 6.5 in.)
Envelope6_3_4 :: PaperSize

-- | #9 envelope (3.875 in. by 8.875 in.)
Envelope9 :: PaperSize

-- | #10 envelope (4.125 in. by 9.5 in.)
Envelope10 :: PaperSize

-- | #11 envelope (4.5 in. by 10.375 in.)
Envelope11 :: PaperSize

-- | #12 envelope (4.75 in. by 11 in.)
Envelope12 :: PaperSize

-- | #14 envelope (5 in. by 11.5 in.)
Envelope14 :: PaperSize

-- | B4 envelope (250 mm by 353 mm)
EnvelopeB4 :: PaperSize

-- | B5 envelope (176 mm by 250 mm)
EnvelopeB5 :: PaperSize

-- | B6 envelope (176 mm by 125 mm)
EnvelopeB6 :: PaperSize

-- | C3 envelope (324 mm by 458 mm)
EnvelopeC3 :: PaperSize

-- | C4 envelope (229 mm by 324 mm)
EnvelopeC4 :: PaperSize

-- | C5 envelope (162 mm by 229 mm)
EnvelopeC5 :: PaperSize

-- | C6 envelope (114 mm by 162 mm)
EnvelopeC6 :: PaperSize

-- | C65 envelope (114 mm by 229 mm)
EnvelopeC65 :: PaperSize

-- | DL envelope (110 mm by 220 mm)
EnvelopeDL :: PaperSize

-- | Invite envelope (220 mm by 220 mm)
EnvelopeInvite :: PaperSize

-- | Italy envelope (110 mm by 230 mm)
EnvelopeItaly :: PaperSize

-- | Monarch envelope (3.875 in. by 7.5 in.).
EnvelopeMonarch :: PaperSize
pageSetupBlackAndWhite :: Lens' PageSetup (Maybe Bool)
pageSetupCellComments :: Lens' PageSetup (Maybe CellComments)
pageSetupCopies :: Lens' PageSetup (Maybe Int)
pageSetupDraft :: Lens' PageSetup (Maybe Bool)
pageSetupErrors :: Lens' PageSetup (Maybe PrintErrors)
pageSetupFirstPageNumber :: Lens' PageSetup (Maybe Int)
pageSetupFitToHeight :: Lens' PageSetup (Maybe Int)
pageSetupFitToWidth :: Lens' PageSetup (Maybe Int)
pageSetupHorizontalDpi :: Lens' PageSetup (Maybe Int)
pageSetupId :: Lens' PageSetup (Maybe Text)
pageSetupOrientation :: Lens' PageSetup (Maybe Orientation)
pageSetupPageOrder :: Lens' PageSetup (Maybe PageOrder)
pageSetupPaperHeight :: Lens' PageSetup (Maybe Text)
pageSetupPaperSize :: Lens' PageSetup (Maybe PaperSize)
pageSetupPaperWidth :: Lens' PageSetup (Maybe Text)
pageSetupScale :: Lens' PageSetup (Maybe Int)
pageSetupUseFirstPageNumber :: Lens' PageSetup (Maybe Bool)
pageSetupUsePrinterDefaults :: Lens' PageSetup (Maybe Bool)
pageSetupVerticalDpi :: Lens' PageSetup (Maybe Int)
instance Data.Default.Internal.Default Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.CellComments
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.Orientation
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.PageOrder
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.PaperSize
instance GHC.Classes.Eq Codec.Xlsx.Types.PageSetup.PrintErrors
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.PageSetup.CellComments
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.PageSetup.Orientation
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.PageSetup.PageOrder
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.PageSetup.PaperSize
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.PageSetup.PrintErrors
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PageSetup.CellComments
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PageSetup.Orientation
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PageSetup.PageOrder
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PageSetup.PaperSize
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PageSetup.PrintErrors
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.PageSetup.PageSetup
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.CellComments
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.Orientation
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.PageOrder
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.PaperSize
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PageSetup.PrintErrors
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.CellComments
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.Orientation
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.PageOrder
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.PageSetup
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.PaperSize
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PageSetup.PrintErrors
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.CellComments
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.Orientation
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.PageOrder
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.PaperSize
instance GHC.Classes.Ord Codec.Xlsx.Types.PageSetup.PrintErrors
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.CellComments
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.Orientation
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.PageOrder
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.PageSetup
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.PaperSize
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PageSetup.PrintErrors
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PageSetup.CellComments
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PageSetup.Orientation
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PageSetup.PageOrder
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PageSetup.PaperSize
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PageSetup.PrintErrors
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.PageSetup.PageSetup

module Codec.Xlsx.Types.Internal.CustomProperties
newtype CustomProperties
CustomProperties :: Map Text Variant -> CustomProperties
fromList :: [(Text, Variant)] -> CustomProperties
empty :: CustomProperties
parseCustomPropertyEntry :: Cursor -> [(Text, Variant)]

-- | Add custom properties namespace to name
cpr :: Text -> Name
custPropNs :: Text
newtype CustomProperty
CustomProperty :: (Int, (Text, Variant)) -> CustomProperty

-- | FMTID_UserDefinedProperties
userDefinedFmtID :: Text
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.CustomProperties.CustomProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.CustomProperties.CustomProperty

module Codec.Xlsx.Types.Internal
newtype RefId
RefId :: Text -> RefId
[unRefId] :: RefId -> Text
unsafeRefId :: Int -> RefId
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.RefId
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Internal.RefId
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Internal.RefId
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.RefId
instance GHC.Classes.Ord Codec.Xlsx.Types.Internal.RefId
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.RefId
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Internal.RefId

module Codec.Xlsx.Types.Internal.Relationships
data Relationship
Relationship :: Text -> FilePath -> Relationship
[relType] :: Relationship -> Text
[relTarget] :: Relationship -> FilePath

-- | Describes relationships according to Open Packaging Convention
--   
--   See ECMA-376, 4th Edition Office Open XML File Formats — Open
--   Packaging Conventions
newtype Relationships
Relationships :: Map RefId Relationship -> Relationships
[relMap] :: Relationships -> Map RefId Relationship
fromList :: [(RefId, Relationship)] -> Relationships
empty :: Relationships
size :: Relationships -> Int
relEntry :: RefId -> Text -> FilePath -> (RefId, Relationship)
lookup :: RefId -> Relationships -> Maybe Relationship
setTargetsFrom :: FilePath -> Relationships -> Relationships

-- | joins relative URI (actually a file path as an internal relation
--   target)
joinRel :: FilePath -> FilePath -> FilePath
relFrom :: FilePath -> FilePath -> FilePath
findRelByType :: Text -> Relationships -> Maybe Relationship
allByType :: Text -> Relationships -> [Relationship]
parseRelEntry :: Cursor -> [(RefId, Relationship)]

-- | Add package relationship namespace to name
pr :: Text -> Name

-- | Add office document relationship namespace to name
odr :: Text -> Name
odRelNs :: Text
pkgRelNs :: Text
stdRelType :: Text -> Text
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.Relationships.Relationship
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.Relationships.Relationships
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.Relationships.Relationship
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.Relationships.Relationships
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.Relationships.Relationship
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.Relationships.Relationships
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.Relationships.Relationship
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.Relationships.Relationships
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Internal.Relationships.Relationships
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.Relationships.Relationship
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.Relationships.Relationships

module Codec.Xlsx.Types.Drawing.Common

-- | This simple type represents an angle in 60,000ths of a degree.
--   Positive angles are clockwise (i.e., towards the positive y axis);
--   negative angles are counter-clockwise (i.e., towards the negative y
--   axis).
newtype Angle
Angle :: Int -> Angle

-- | A string with rich text formatting
--   
--   TODO: horzOverflow, lIns, tIns, rIns, bIns, numCol, spcCol, rtlCol,
--   fromWordArt, forceAA, upright, compatLnSpc, prstTxWarp,
--   a_EG_TextAutofit, scene3d, a_EG_Text3D, extLst
--   
--   See CT_TextBody (p. 4034)
data TextBody
TextBody :: Angle -> Bool -> TextVertOverflow -> TextVertical -> TextWrap -> TextAnchoring -> Bool -> [TextParagraph] -> TextBody

-- | Specifies the rotation that is being applied to the text within the
--   bounding box.
[_txbdRotation] :: TextBody -> Angle

-- | Specifies whether the before and after paragraph spacing defined by
--   the user is to be respected.
[_txbdSpcFirstLastPara] :: TextBody -> Bool

-- | Determines whether the text can flow out of the bounding box
--   vertically.
[_txbdVertOverflow] :: TextBody -> TextVertOverflow

-- | Determines if the text within the given text body should be displayed
--   vertically.
[_txbdVertical] :: TextBody -> TextVertical

-- | Specifies the wrapping options to be used for this text body.
[_txbdWrap] :: TextBody -> TextWrap

-- | Specifies the anchoring position of the txBody within the shape.
[_txbdAnchor] :: TextBody -> TextAnchoring

-- | Specifies the centering of the text box. The way it works
--   fundamentally is to determine the smallest possible "bounds box" for
--   the text and then to center that "bounds box" accordingly. This is
--   different than paragraph alignment, which aligns the text within the
--   "bounds box" for the text.
[_txbdAnchorCenter] :: TextBody -> Bool

-- | Paragraphs of text within the containing text body
[_txbdParagraphs] :: TextBody -> [TextParagraph]

-- | Text vertical overflow See 20.1.10.83 "ST_TextVertOverflowType (Text
--   Vertical Overflow)" (p. 3083)
data TextVertOverflow

-- | Pay attention to top and bottom barriers. Provide no indication that
--   there is text which is not visible.
TextVertOverflowClip :: TextVertOverflow

-- | Pay attention to top and bottom barriers. Use an ellipsis to denote
--   that there is text which is not visible.
TextVertOverflowEllipsis :: TextVertOverflow

-- | Overflow the text and pay no attention to top and bottom barriers.
TextVertOverflow :: TextVertOverflow

-- | If there is vertical text, determines what kind of vertical text is
--   going to be used.
--   
--   See 20.1.10.82 "ST_TextVerticalType (Vertical Text Types)" (p. 3083)
data TextVertical

-- | A special version of vertical text, where some fonts are displayed as
--   if rotated by 90 degrees while some fonts (mostly East Asian) are
--   displayed vertical.
TextVerticalEA :: TextVertical

-- | Horizontal text. This should be default.
TextVerticalHorz :: TextVertical

-- | A special version of vertical text, where some fonts are displayed as
--   if rotated by 90 degrees while some fonts (mostly East Asian) are
--   displayed vertical. The difference between this and the
--   TextVerticalEA is the text flows top down then LEFT RIGHT,
--   instead of RIGHT LEFT
TextVerticalMongolian :: TextVertical

-- | Determines if all of the text is vertical orientation (each line is 90
--   degrees rotated clockwise, so it goes from top to bottom; each next
--   line is to the left from the previous one).
TextVertical :: TextVertical

-- | Determines if all of the text is vertical orientation (each line is
--   270 degrees rotated clockwise, so it goes from bottom to top; each
--   next line is to the right from the previous one).
TextVertical270 :: TextVertical

-- | Determines if all of the text is vertical ("one letter on top of
--   another").
TextVerticalWordArt :: TextVertical

-- | Specifies that vertical WordArt should be shown from right to left
--   rather than left to right.
TextVerticalWordArtRtl :: TextVertical

-- | Text wrapping types
--   
--   See 20.1.10.84 "ST_TextWrappingType (Text Wrapping Types)" (p. 3084)
data TextWrap

-- | No wrapping occurs on this text body. Words spill out without paying
--   attention to the bounding rectangle boundaries.
TextWrapNone :: TextWrap

-- | Determines whether we wrap words within the bounding rectangle.
TextWrapSquare :: TextWrap

-- | This type specifies a list of available anchoring types for text.
--   
--   See 20.1.10.59 "ST_TextAnchoringType (Text Anchoring Types)" (p. 3058)
data TextAnchoring

-- | Anchor the text at the bottom of the bounding rectangle.
TextAnchoringBottom :: TextAnchoring

-- | Anchor the text at the middle of the bounding rectangle.
TextAnchoringCenter :: TextAnchoring

-- | Anchor the text so that it is distributed vertically. When text is
--   horizontal, this spaces out the actual lines of text and is almost
--   always identical in behavior to TextAnchoringJustified (special
--   case: if only 1 line, then anchored in middle). When text is vertical,
--   then it distributes the letters vertically. This is different than
--   TextAnchoringJustified, because it always forces distribution
--   of the words, even if there are only one or two words in a line.
TextAnchoringDistributed :: TextAnchoring

-- | Anchor the text so that it is justified vertically. When text is
--   horizontal, this spaces out the actual lines of text and is almost
--   always identical in behavior to TextAnchoringDistributed
--   (special case: if only 1 line, then anchored at top). When text is
--   vertical, then it justifies the letters vertically. This is different
--   than TextAnchoringDistributed because in some cases such as
--   very little text in a line, it does not justify.
TextAnchoringJustified :: TextAnchoring

-- | Anchor the text at the top of the bounding rectangle.
TextAnchoringTop :: TextAnchoring
data TextParagraph
TextParagraph :: Maybe TextCharacterProperties -> [TextRun] -> TextParagraph
[_txpaDefCharProps] :: TextParagraph -> Maybe TextCharacterProperties
[_txpaRuns] :: TextParagraph -> [TextRun]

-- | Text character properties
--   
--   TODO: kumimoji, lang, altLang, sz, strike, kern, cap, spc, normalizeH,
--   baseline, noProof, dirty, err, smtClean, smtId, bmk, ln,
--   a_EG_FillProperties, a_EG_EffectProperties, highlight,
--   a_EG_TextUnderlineLine, a_EG_TextUnderlineFill, latin, ea, cs, sym,
--   hlinkClick, hlinkMouseOver, rtl, extLst
--   
--   See CT_TextCharacterProperties (p. 4039)
data TextCharacterProperties
TextCharacterProperties :: Bool -> Bool -> Bool -> TextCharacterProperties
[_txchBold] :: TextCharacterProperties -> Bool
[_txchItalic] :: TextCharacterProperties -> Bool
[_txchUnderline] :: TextCharacterProperties -> Bool

-- | Text run
--   
--   TODO: br, fld
data TextRun
RegularRun :: Maybe TextCharacterProperties -> Text -> TextRun
[_txrCharProps] :: TextRun -> Maybe TextCharacterProperties
[_txrText] :: TextRun -> Text

-- | This simple type represents a one dimensional position or length
--   
--   See 20.1.10.16 "ST_Coordinate (Coordinate)" (p. 2921)
data Coordinate

-- | see 20.1.10.19 "ST_CoordinateUnqualified (Coordinate)" (p. 2922)
UnqCoordinate :: Int -> Coordinate

-- | see 22.9.2.15 "ST_UniversalMeasure (Universal Measurement)" (p. 3793)
UniversalMeasure :: UnitIdentifier -> Double -> Coordinate

-- | Units used in "Universal measure" coordinates see 22.9.2.15
--   "ST_UniversalMeasure (Universal Measurement)" (p. 3793)
data UnitIdentifier
UnitCm :: UnitIdentifier
UnitMm :: UnitIdentifier
UnitIn :: UnitIdentifier
UnitPt :: UnitIdentifier
UnitPc :: UnitIdentifier
UnitPi :: UnitIdentifier
data Point2D
Point2D :: Coordinate -> Coordinate -> Point2D
[_pt2dX] :: Point2D -> Coordinate
[_pt2dY] :: Point2D -> Coordinate
unqPoint2D :: Int -> Int -> Point2D

-- | Positive position or length in EMUs, maximu allowed value is
--   27273042316900. see 20.1.10.41 "ST_PositiveCoordinate (Positive
--   Coordinate)" (p. 2942)
newtype PositiveCoordinate
PositiveCoordinate :: Integer -> PositiveCoordinate
data PositiveSize2D
PositiveSize2D :: PositiveCoordinate -> PositiveCoordinate -> PositiveSize2D
[_ps2dX] :: PositiveSize2D -> PositiveCoordinate
[_ps2dY] :: PositiveSize2D -> PositiveCoordinate
positiveSize2D :: Integer -> Integer -> PositiveSize2D
cmSize2D :: Integer -> Integer -> PositiveSize2D
cm2emu :: Integer -> Integer
data Transform2D
Transform2D :: Angle -> Bool -> Bool -> Maybe Point2D -> Maybe PositiveSize2D -> Transform2D

-- | Specifies the rotation of the Graphic Frame.
[_trRot] :: Transform2D -> Angle

-- | Specifies a horizontal flip. When true, this attribute defines that
--   the shape is flipped horizontally about the center of its bounding
--   box.
[_trFlipH] :: Transform2D -> Bool

-- | Specifies a vertical flip. When true, this attribute defines that the
--   shape is flipped vetically about the center of its bounding box.
[_trFlipV] :: Transform2D -> Bool

-- | See 20.1.7.4 "off (Offset)" (p. 2847)
[_trOffset] :: Transform2D -> Maybe Point2D

-- | See 20.1.7.3 "ext (Extents)" (p. 2846) or 20.5.2.14 "ext (Shape
--   Extent)" (p. 3165)
[_trExtents] :: Transform2D -> Maybe PositiveSize2D
data Geometry
PresetGeometry :: Geometry
data ShapeProperties
ShapeProperties :: Maybe Transform2D -> Maybe Geometry -> Maybe FillProperties -> Maybe LineProperties -> ShapeProperties
[_spXfrm] :: ShapeProperties -> Maybe Transform2D
[_spGeometry] :: ShapeProperties -> Maybe Geometry
[_spFill] :: ShapeProperties -> Maybe FillProperties
[_spOutline] :: ShapeProperties -> Maybe LineProperties

-- | Specifies an outline style that can be applied to a number of
--   different objects such as shapes and text.
--   
--   TODO: cap, cmpd, algn, a_EG_LineDashProperties,
--   a_EG_LineJoinProperties, headEnd, tailEnd, extLst
--   
--   See 20.1.2.2.24 "ln (Outline)" (p. 2744)
data LineProperties
LineProperties :: Maybe FillProperties -> Int -> LineProperties
[_lnFill] :: LineProperties -> Maybe FillProperties

-- | Specifies the width to be used for the underline stroke. The value is
--   in EMU, is greater of equal to 0 and maximum value is 20116800.
[_lnWidth] :: LineProperties -> Int

-- | Color choice for some drawing element
--   
--   TODO: scrgbClr, hslClr, sysClr, schemeClr, prstClr
--   
--   See EG_ColorChoice (p. 3996)
data ColorChoice

-- | Specifies a color using the red, green, blue RGB color model. Red,
--   green, and blue is expressed as sequence of hex digits, RRGGBB. A
--   perceptual gamma of 2.2 is used.
--   
--   See 20.1.2.3.32 "srgbClr (RGB Color Model - Hex Variant)" (p. 2773)
RgbColor :: Text -> ColorChoice
data FillProperties

-- | See 20.1.8.44 "noFill (No Fill)" (p. 2872)
NoFill :: FillProperties

-- | Solid fill See 20.1.8.54 "solidFill (Solid Fill)" (p. 2879)
SolidFill :: Maybe ColorChoice -> FillProperties

-- | solid fill with color specified by hexadecimal RGB color
solidRgb :: Text -> FillProperties
spFill :: Lens' ShapeProperties (Maybe FillProperties)
spGeometry :: Lens' ShapeProperties (Maybe Geometry)
spOutline :: Lens' ShapeProperties (Maybe LineProperties)
spXfrm :: Lens' ShapeProperties (Maybe Transform2D)
geometryFromNode :: Node -> [Geometry]
fillPropsFromNode :: Node -> [FillProperties]
colorChoiceFromNode :: Node -> [ColorChoice]
coordinate :: MonadFail m => Text -> m Coordinate
geometryToElement :: Geometry -> Element
fillPropsToElement :: FillProperties -> Element
colorChoiceToElement :: ColorChoice -> Element

-- | Add DrawingML namespace to name
a_ :: Text -> Name
drawingNs :: Text
instance Data.Default.Internal.Default Codec.Xlsx.Types.Drawing.Common.LineProperties
instance Data.Default.Internal.Default Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.Angle
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.ColorChoice
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.Coordinate
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.FillProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.Geometry
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.LineProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.Point2D
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextBody
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextRun
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextVertical
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.TextWrap
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.Transform2D
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Common.UnitIdentifier
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Common.Angle
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Common.TextVertical
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Common.TextWrap
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.FillProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.Geometry
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.LineProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.Point2D
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.TextBody
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.TextRun
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Common.Transform2D
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.Angle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.ColorChoice
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.Coordinate
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.FillProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.Geometry
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.LineProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.Point2D
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextBody
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextRun
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextVertical
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.TextWrap
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.Transform2D
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Common.UnitIdentifier
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.Angle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.ColorChoice
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.Coordinate
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.FillProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.Geometry
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.LineProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.Point2D
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextBody
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextRun
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextVertical
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.TextWrap
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.Transform2D
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Common.UnitIdentifier
instance GHC.Classes.Ord Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.Angle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.ColorChoice
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.Coordinate
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.FillProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.Geometry
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.LineProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.Point2D
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextBody
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextRun
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextVertical
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.TextWrap
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.Transform2D
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Common.UnitIdentifier
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.Angle
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.Coordinate
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.PositiveCoordinate
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.TextAnchoring
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.TextVertOverflow
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.TextVertical
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Common.TextWrap
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.LineProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.Point2D
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.PositiveSize2D
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.ShapeProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.TextBody
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.TextCharacterProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.TextParagraph
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.TextRun
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Common.Transform2D

module Codec.Xlsx.Types.Common

-- | Excel cell or cell range reference (e.g. E3), possibly
--   absolute. See 18.18.62 ST_Ref (p. 2482)
--   
--   Note: The ST_Ref type can point to another sheet (supported)
--   or a sheet in another workbook (separate .xlsx file, not implemented).
newtype CellRef
CellRef :: Text -> CellRef
[unCellRef] :: CellRef -> Text

-- | A helper type for coordinates to carry the intent of them being
--   relative or absolute (preceded by $):
--   
--   
--   singleCellRefRaw' (RowRel 5, ColumnAbs 1) == "$A5"
--   
data RowCoord
RowAbs :: !RowIndex -> RowCoord
RowRel :: !RowIndex -> RowCoord
data ColumnCoord
ColumnAbs :: !ColumnIndex -> ColumnCoord
ColumnRel :: !ColumnIndex -> ColumnCoord
type CellCoord = (RowCoord, ColumnCoord)
type RangeCoord = (CellCoord, CellCoord)

-- | Helper function to apply the same transformation to both members of a
--   tuple
--   
--   
--   mapBoth Abs (1, 2) == (Abs 1, Abs 2s)
--   
mapBoth :: (a -> b) -> (a, a) -> (b, b)
col2coord :: Text -> ColumnCoord
coord2col :: ColumnCoord -> Text
row2coord :: Text -> RowCoord
coord2row :: RowCoord -> Text

-- | Render position in (row, col) format to an Excel reference.
--   
--   
--   singleCellRef (RowIndex 2, ColumnIndex 4) == CellRef "D2"
--   
singleCellRef :: (RowIndex, ColumnIndex) -> CellRef

-- | Allow specifying whether a coordinate parameter is relative or
--   absolute.
--   
--   
--   singleCellRef' (Rel 5, Abs 1) == CellRef "$A5"
--   
singleCellRef' :: CellCoord -> CellRef

-- | Converse function to singleCellRef Ignores a potential foreign
--   sheet prefix.
fromSingleCellRef :: CellRef -> Maybe (RowIndex, ColumnIndex)

-- | Converse function to 'singleCellRef'' Ignores a potential foreign
--   sheet prefix.
fromSingleCellRef' :: CellRef -> Maybe CellCoord

-- | Converse function to singleCellRef expecting valid reference
--   and failig with a standard error message like "Bad cell reference
--   XXX"
fromSingleCellRefNoting :: CellRef -> (RowIndex, ColumnIndex)

-- | Frame and escape the referenced sheet name in single quotes
--   (apostrophe).
--   
--   Sheet name in ST_Ref can be single-quoted when it contains
--   non-alphanum class, non-ASCII range characters. Intermediate squote
--   characters are escaped in a doubled fashion: "My ' Sheet" -> 'My ''
--   Sheet'
escapeRefSheetName :: Text -> Text

-- | Unframe and unescape the referenced sheet name.
unEscapeRefSheetName :: Text -> Text

-- | Render a single cell existing in another worksheet. This function
--   always renders the sheet name single-quoted regardless the presence of
--   spaces. A sheet name shouldn't contain "[]*:?/" chars and
--   apostrophe "'" should not happen at extremities.
--   
--   
--   mkForeignRange "MyOtherSheet" (Rel 2, Rel 4) (Abs 6, Abs 8) == "'MyOtherSheet'!D2:$H$6"
--   
mkForeignSingleCellRef :: Text -> CellCoord -> CellRef

-- | Converse function to mkForeignSingleCellRef. The provided
--   CellRef must be a foreign range.
fromForeignSingleCellRef :: CellRef -> Maybe (Text, CellCoord)

-- | Excel range (e.g. D13:H14), actually store as as
--   CellRef in xlsx
type Range = CellRef

-- | Render range
--   
--   
--   mkRange (RowIndex 2, ColumnIndex 4) (RowIndex 6, ColumnIndex 8) == CellRef "D2:H6"
--   
mkRange :: (RowIndex, ColumnIndex) -> (RowIndex, ColumnIndex) -> Range

-- | Render range with possibly absolute coordinates
--   
--   
--   mkRange' (Abs 2, Abs 4) (6, 8) == CellRef "$D$2:H6"
--   
mkRange' :: (RowCoord, ColumnCoord) -> (RowCoord, ColumnCoord) -> Range

-- | Render a cell range existing in another worksheet. This function
--   always renders the sheet name single-quoted regardless the presence of
--   spaces. A sheet name shouldn't contain "[]*:?/" chars and
--   apostrophe "'" should not happen at extremities.
--   
--   
--   mkForeignRange "MyOtherSheet" (Rel 2, Rel 4) (Abs 6, Abs 8) == "'MyOtherSheet'!D2:$H$6"
--   
mkForeignRange :: Text -> CellCoord -> CellCoord -> Range

-- | Converse function to mkRange ignoring absolute coordinates.
--   Ignores a potential foreign sheet prefix.
fromRange :: Range -> Maybe ((RowIndex, ColumnIndex), (RowIndex, ColumnIndex))

-- | Converse function to 'mkRange'' to handle possibly absolute
--   coordinates. Ignores a potential foreign sheet prefix.
fromRange' :: Range -> Maybe RangeCoord

-- | Converse function to mkForeignRange. The provided Range must be
--   a foreign range.
fromForeignRange :: Range -> Maybe (Text, RangeCoord)

-- | A sequence of cell references
--   
--   See 18.18.76 "ST_Sqref (Reference Sequence)" (p.2488)
newtype SqRef
SqRef :: [CellRef] -> SqRef

-- | Common type containing either simple string or rich formatted text.
--   Used in si, comment and is elements
--   
--   E.g. si spec says: "If the string is just a simple string
--   with formatting applied at the cell level, then the String Item (si)
--   should contain a single text element used to express the string.
--   However, if the string in the cell is more complex - i.e., has
--   formatting applied at the character level - then the string item shall
--   consist of multiple rich text runs which collectively are used to
--   express the string.". So we have either a single Text field, or
--   else a list of RichTextRuns, each of which is some Text
--   with layout properties.
--   
--   TODO: Currently we do not support phoneticPr (Phonetic
--   Properties, 18.4.3, p. 1723) or rPh (Phonetic Run, 18.4.6, p.
--   1725).
--   
--   Section 18.4.8, "si (String Item)" (p. 1725)
--   
--   See CT_Rst, p. 3903
data XlsxText
XlsxText :: Text -> XlsxText
XlsxRichText :: [RichTextRun] -> XlsxText
xlsxTextToCellValue :: XlsxText -> CellValue

-- | A formula
--   
--   See 18.18.35 "ST_Formula (Formula)" (p. 2457)
newtype Formula
Formula :: Text -> Formula
[unFormula] :: Formula -> Text

-- | Cell values include text, numbers and booleans, standard includes date
--   format also but actually dates are represented by numbers with a date
--   format assigned to a cell containing it Specification (ECMA-376): -
--   18.3.1.4 c (Cell) - 18.18.11 ST_CellType (Cell Type)
data CellValue
CellText :: Text -> CellValue
CellDouble :: Double -> CellValue
CellBool :: Bool -> CellValue
CellRich :: [RichTextRun] -> CellValue
CellError :: ErrorType -> CellValue

-- | The evaluation of an expression can result in an error having one of a
--   number of error values.
--   
--   See Annex L, L.2.16.8 "Error values" (p. 4764)
data ErrorType

-- | #DIV/0! - Intended to indicate when any number, including
--   zero, is divided by zero.
ErrorDiv0 :: ErrorType

-- | #N/A - Intended to indicate when a designated value is not
--   available. For example, some functions, such as SUMX2MY2,
--   perform a series of operations on corresponding elements in two
--   arrays. If those arrays do not have the same number of elements, then
--   for some elements in the longer array, there are no corresponding
--   elements in the shorter one; that is, one or more values in the
--   shorter array are not available. This error value can be produced by
--   calling the function NA.
ErrorNA :: ErrorType

-- | #NAME? - Intended to indicate when what looks like a name is
--   used, but no such name has been defined. For example, XYZ/3,
--   where XYZ is not a defined name. Total is & A10,
--   where neither Total nor is is a defined name.
--   Presumably, "Total is " & A10 was intended.
--   SUM(A1C10), where the range A1:C10 was intended.
ErrorName :: ErrorType

-- | #NULL! - Intended to indicate when two areas are required to
--   intersect, but do not. For example, In the case of SUM(B1
--   C1), the space between B1 and C1 is treated as
--   the binary intersection operator, when a comma was intended.
ErrorNull :: ErrorType

-- | #NUM! - Intended to indicate when an argument to a function
--   has a compatible type, but has a value that is outside the domain over
--   which that function is defined. (This is known as a domain error.) For
--   example, Certain calls to ASIN, ATANH,
--   FACT, and SQRT might result in domain errors.
--   Intended to indicate that the result of a function cannot be
--   represented in a value of the specified type, typically due to extreme
--   magnitude. (This is known as a range error.) For example,
--   FACT(1000) might result in a range error.
ErrorNum :: ErrorType

-- | #REF! - Intended to indicate when a cell reference is
--   invalid. For example, If a formula contains a reference to a cell, and
--   then the row or column containing that cell is deleted, a
--   #REF! error results. If a worksheet does not support 20,001
--   columns, OFFSET(A1,0,20000) results in a #REF!
--   error.
ErrorRef :: ErrorType

-- | #VALUE! - Intended to indicate when an incompatible type
--   argument is passed to a function, or an incompatible type operand is
--   used with an operator. For example, In the case of a function
--   argument, a number was expected, but text was provided. In the case of
--   1+ABC, the binary addition operator is not defined for
--   text.
ErrorValue :: ErrorType

-- | Specifies date base used for conversion of serial values to and from
--   datetime values
--   
--   See Annex L, L.2.16.9.1 "Date Conversion for Serial Values" (p. 4765)
data DateBase

-- | 1900 date base system, the lower limit is January 1, -9999 00:00:00,
--   which has serial value -4346018. The upper-limit is December 31, 9999,
--   23:59:59, which has serial value 2,958,465.9999884. The base date for
--   this date base system is December 30, 1899, which has a serial value
--   of 0.
DateBase1900 :: DateBase

-- | 1904 backward compatibility date-base system, the lower limit is
--   January 1, 1904, 00:00:00, which has serial value 0. The upper limit
--   is December 31, 9999, 23:59:59, which has serial value
--   2,957,003.9999884. The base date for this date base system is January
--   1, 1904, which has a serial value of 0.
DateBase1904 :: DateBase

-- | Converts serial value into datetime according to the specified date
--   base. Because Excel treats 1900 as a leap year even though it isn't,
--   this function converts any numbers that represent some time in
--   1900-02-29 in Excel to UTCTime 1900-03-01 00:00.
--   See
--   https://docs.microsoft.com/en-gb/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year
--   for details.
--   
--   
--   show (dateFromNumber DateBase1900 42929.75) == "2017-07-13 18:00:00 UTC"
--   show (dateFromNumber DateBase1900 60) == "1900-03-01 00:00:00 UTC"
--   show (dateFromNumber DateBase1900 61) == "1900-03-01 00:00:00 UTC"
--   
dateFromNumber :: RealFrac t => DateBase -> t -> UTCTime

-- | Converts datetime into serial value. Because Excel treats 1900 as a
--   leap year even though it isn't, the numbers that represent times in
--   1900-02-29 in Excel, in the range [60, 61[, are never
--   generated by this function for DateBase1900. This means that
--   under those conditions this is not an inverse of
--   dateFromNumber. See
--   https://docs.microsoft.com/en-gb/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year
--   for details.
dateToNumber :: Fractional a => DateBase -> UTCTime -> a

-- | Deprecated: this function will be removed in an upcoming release,
--   use columnIndexToText instead.
int2col :: ColumnIndex -> Text

-- | Deprecated: this function will be removed in an upcoming release,
--   use textToColumnIndex instead.
col2int :: Text -> ColumnIndex

-- | convert column number (starting from 1) to its textual form (e.g. 3
--   -> "C")
columnIndexToText :: ColumnIndex -> Text

-- | reverse of columnIndexToText
textToColumnIndex :: Text -> ColumnIndex
_XlsxText :: Prism' XlsxText Text
_XlsxRichText :: Prism' XlsxText [RichTextRun]
_CellText :: Prism' CellValue Text
_CellDouble :: Prism' CellValue Double
_CellBool :: Prism' CellValue Bool
_CellRich :: Prism' CellValue [RichTextRun]
_CellError :: Prism' CellValue ErrorType
newtype RowIndex
RowIndex :: Int -> RowIndex
[unRowIndex] :: RowIndex -> Int
newtype ColumnIndex
ColumnIndex :: Int -> ColumnIndex
[unColumnIndex] :: ColumnIndex -> Int
instance GHC.Internal.Enum.Enum Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Enum.Enum Codec.Xlsx.Types.Common.RowIndex
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.CellRef
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.CellValue
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.ColumnCoord
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.DateBase
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.ErrorType
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.Formula
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.RowCoord
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.RowIndex
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.SqRef
instance GHC.Classes.Eq Codec.Xlsx.Types.Common.XlsxText
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Common.CellRef
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Common.ErrorType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Common.Formula
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Common.SqRef
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Common.CellRef
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Common.ErrorType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Common.Formula
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Common.SqRef
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Common.Formula
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Common.XlsxText
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Common.Formula
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Common.XlsxText
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.CellRef
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.CellValue
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.ColumnCoord
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.DateBase
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.ErrorType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.Formula
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.RowCoord
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.RowIndex
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.SqRef
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Common.XlsxText
instance GHC.Internal.Real.Integral Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Real.Integral Codec.Xlsx.Types.Common.RowIndex
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.CellRef
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.CellValue
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.ColumnCoord
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.ColumnIndex
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.DateBase
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.ErrorType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.Formula
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.RowCoord
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.RowIndex
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.SqRef
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Common.XlsxText
instance GHC.Internal.Num.Num Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Num.Num Codec.Xlsx.Types.Common.RowIndex
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.CellRef
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.CellValue
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.ColumnCoord
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.ErrorType
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.Formula
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.RowCoord
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.RowIndex
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.SqRef
instance GHC.Classes.Ord Codec.Xlsx.Types.Common.XlsxText
instance GHC.Internal.Read.Read Codec.Xlsx.Types.Common.ColumnCoord
instance GHC.Internal.Read.Read Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Read.Read Codec.Xlsx.Types.Common.RowCoord
instance GHC.Internal.Read.Read Codec.Xlsx.Types.Common.RowIndex
instance GHC.Internal.Real.Real Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Real.Real Codec.Xlsx.Types.Common.RowIndex
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.CellRef
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.CellValue
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.ColumnCoord
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.ColumnIndex
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.DateBase
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.ErrorType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.Formula
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.RowCoord
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.RowIndex
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.SqRef
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Common.XlsxText
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Common.CellRef
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Common.ErrorType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Common.RowIndex
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Common.SqRef
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Common.Formula
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Common.XlsxText

module Codec.Xlsx.Types.SheetViews

-- | Worksheet view
--   
--   A single sheet view definition. When more than one sheet view is
--   defined in the file, it means that when opening the workbook, each
--   sheet view corresponds to a separate window within the spreadsheet
--   application, where each window is showing the particular sheet
--   containing the same workbookViewId value, the last sheetView
--   definition is loaded, and the others are discarded. When multiple
--   windows are viewing the same sheet, multiple sheetView elements (with
--   corresponding workbookView entries) are saved.
--   
--   TODO: The pivotSelection and extLst child elements
--   are unsupported.
--   
--   See Section 18.3.1.87 "sheetView (Worksheet View)" (p. 1880)
data SheetView
SheetView :: Maybe Int -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe CellRef -> Maybe SheetViewType -> Maybe Bool -> Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Pane -> [Selection] -> SheetView

-- | Index to the color value for row/column text headings and gridlines.
--   This is an 'index color value' (ICV) rather than rgb value.
[_sheetViewColorId] :: SheetView -> Maybe Int

-- | Flag indicating that the consuming application should use the default
--   grid lines color (system dependent). Overrides any color specified in
--   colorId.
[_sheetViewDefaultGridColor] :: SheetView -> Maybe Bool

-- | Flag indicating whether the sheet is in 'right to left' display mode.
--   When in this mode, Column A is on the far right, Column B ;is one
--   column left of Column A, and so on. Also, information in cells is
--   displayed in the Right to Left format.
[_sheetViewRightToLeft] :: SheetView -> Maybe Bool

-- | Flag indicating whether this sheet should display formulas.
[_sheetViewShowFormulas] :: SheetView -> Maybe Bool

-- | Flag indicating whether this sheet should display gridlines.
[_sheetViewShowGridLines] :: SheetView -> Maybe Bool

-- | Flag indicating whether the sheet has outline symbols visible. This
--   flag shall always override SheetPr element's outlinePr child element
--   whose attribute is named showOutlineSymbols when there is a conflict.
[_sheetViewShowOutlineSymbols] :: SheetView -> Maybe Bool

-- | Flag indicating whether the sheet should display row and column
--   headings.
[_sheetViewShowRowColHeaders] :: SheetView -> Maybe Bool

-- | Show the ruler in Page Layout View.
[_sheetViewShowRuler] :: SheetView -> Maybe Bool

-- | Flag indicating whether page layout view shall display margins. False
--   means do not display left, right, top (header), and bottom (footer)
--   margins (even when there is data in the header or footer).
[_sheetViewShowWhiteSpace] :: SheetView -> Maybe Bool

-- | Flag indicating whether the window should show 0 (zero) in cells
--   containing zero value. When false, cells with zero value appear blank
--   instead of showing the number zero.
[_sheetViewShowZeros] :: SheetView -> Maybe Bool

-- | Flag indicating whether this sheet is selected. When only 1 sheet is
--   selected and active, this value should be in synch with the activeTab
--   value. In case of a conflict, the Start Part setting wins and sets the
--   active sheet tab.
--   
--   Multiple sheets can be selected, but only one sheet shall be active at
--   one time.
[_sheetViewTabSelected] :: SheetView -> Maybe Bool

-- | Location of the top left visible cell Location of the top left visible
--   cell in the bottom right pane (when in Left-to-Right mode).
[_sheetViewTopLeftCell] :: SheetView -> Maybe CellRef

-- | Indicates the view type.
[_sheetViewType] :: SheetView -> Maybe SheetViewType

-- | Flag indicating whether the panes in the window are locked due to
--   workbook protection. This is an option when the workbook structure is
--   protected.
[_sheetViewWindowProtection] :: SheetView -> Maybe Bool

-- | Zero-based index of this workbook view, pointing to a workbookView
--   element in the bookViews collection.
--   
--   NOTE: This attribute is required.
[_sheetViewWorkbookViewId] :: SheetView -> Int

-- | Window zoom magnification for current view representing percent
--   values. This attribute is restricted to values ranging from 10 to 400.
--   Horizontal & Vertical scale together.
[_sheetViewZoomScale] :: SheetView -> Maybe Int

-- | Zoom magnification to use when in normal view, representing percent
--   values. This attribute is restricted to values ranging from 10 to 400.
--   Horizontal & Vertical scale together.
[_sheetViewZoomScaleNormal] :: SheetView -> Maybe Int

-- | Zoom magnification to use when in page layout view, representing
--   percent values. This attribute is restricted to values ranging from 10
--   to 400. Horizontal & Vertical scale together.
[_sheetViewZoomScalePageLayoutView] :: SheetView -> Maybe Int

-- | Zoom magnification to use when in page break preview, representing
--   percent values. This attribute is restricted to values ranging from 10
--   to 400. Horizontal & Vertical scale together.
[_sheetViewZoomScaleSheetLayoutView] :: SheetView -> Maybe Int

-- | Worksheet view pane
[_sheetViewPane] :: SheetView -> Maybe Pane

-- | Worksheet view selection
--   
--   Minimum of 0, maximum of 4 elements
[_sheetViewSelection] :: SheetView -> [Selection]

-- | Worksheet view selection.
--   
--   Section 18.3.1.78 "selection (Selection)" (p. 1864)
data Selection
Selection :: Maybe CellRef -> Maybe Int -> Maybe PaneType -> Maybe SqRef -> Selection

-- | Location of the active cell
[_selectionActiveCell] :: Selection -> Maybe CellRef

-- | 0-based index of the range reference (in the array of references
--   listed in sqref) containing the active cell. Only used when the
--   selection in sqref is not contiguous. Therefore, this value needs to
--   be aware of the order in which the range references are written in
--   sqref.
--   
--   When this value is out of range then activeCell can be used.
[_selectionActiveCellId] :: Selection -> Maybe Int

-- | The pane to which this selection belongs.
[_selectionPane] :: Selection -> Maybe PaneType

-- | Range of the selection. Can be non-contiguous set of ranges.
[_selectionSqref] :: Selection -> Maybe SqRef

-- | Worksheet view pane
--   
--   Section 18.3.1.66 "pane (View Pane)" (p. 1843)
data Pane
Pane :: Maybe PaneType -> Maybe PaneState -> Maybe CellRef -> Maybe Double -> Maybe Double -> Pane

-- | The pane that is active.
[_paneActivePane] :: Pane -> Maybe PaneType

-- | Indicates whether the pane has horizontal / vertical splits, and
--   whether those splits are frozen.
[_paneState] :: Pane -> Maybe PaneState

-- | Location of the top left visible cell in the bottom right pane (when
--   in Left-To-Right mode).
[_paneTopLeftCell] :: Pane -> Maybe CellRef

-- | Horizontal position of the split, in 1/20th of a point; 0 (zero) if
--   none. If the pane is frozen, this value indicates the number of
--   columns visible in the top pane.
[_paneXSplit] :: Pane -> Maybe Double

-- | Vertical position of the split, in 1/20th of a point; 0 (zero) if
--   none. If the pane is frozen, this value indicates the number of rows
--   visible in the left pane.
[_paneYSplit] :: Pane -> Maybe Double

-- | View setting of the sheet
--   
--   Section 18.18.69 "ST_SheetViewType (Sheet View Type)" (p. 2726)
data SheetViewType

-- | Normal view
SheetViewTypeNormal :: SheetViewType

-- | Page break preview
SheetViewTypePageBreakPreview :: SheetViewType

-- | Page layout view
SheetViewTypePageLayout :: SheetViewType

-- | Pane type
--   
--   Section 18.18.52 "ST_Pane (Pane Types)" (p. 2710)
data PaneType

-- | Bottom left pane, when both vertical and horizontal splits are
--   applied.
--   
--   This value is also used when only a horizontal split has been applied,
--   dividing the pane into upper and lower regions. In that case, this
--   value specifies the bottom pane.
PaneTypeBottomLeft :: PaneType
PaneTypeBottomRight :: PaneType

-- | Top left pane, when both vertical and horizontal splits are applied.
--   
--   This value is also used when only a horizontal split has been applied,
--   dividing the pane into upper and lower regions. In that case, this
--   value specifies the top pane.
--   
--   This value is also used when only a vertical split has been applied,
--   dividing the pane into right and left regions. In that case, this
--   value specifies the left pane
PaneTypeTopLeft :: PaneType

-- | Top right pane, when both vertical and horizontal splits are applied.
--   
--   This value is also used when only a vertical split has been applied,
--   dividing the pane into right and left regions. In that case, this
--   value specifies the right pane.
PaneTypeTopRight :: PaneType

-- | State of the sheet's pane.
--   
--   Section 18.18.53 "ST_PaneState (Pane State)" (p. 2711)
data PaneState

-- | Panes are frozen, but were not split being frozen. In this state, when
--   the panes are unfrozen again, a single pane results, with no split. In
--   this state, the split bars are not adjustable.
PaneStateFrozen :: PaneState

-- | Panes are frozen and were split before being frozen. In this state,
--   when the panes are unfrozen again, the split remains, but is
--   adjustable.
PaneStateFrozenSplit :: PaneState

-- | Panes are split, but not frozen. In this state, the split bars are
--   adjustable by the user.
PaneStateSplit :: PaneState
sheetViewColorId :: Lens' SheetView (Maybe Int)
sheetViewDefaultGridColor :: Lens' SheetView (Maybe Bool)
sheetViewRightToLeft :: Lens' SheetView (Maybe Bool)
sheetViewShowFormulas :: Lens' SheetView (Maybe Bool)
sheetViewShowGridLines :: Lens' SheetView (Maybe Bool)
sheetViewShowOutlineSymbols :: Lens' SheetView (Maybe Bool)
sheetViewShowRowColHeaders :: Lens' SheetView (Maybe Bool)
sheetViewShowRuler :: Lens' SheetView (Maybe Bool)
sheetViewShowWhiteSpace :: Lens' SheetView (Maybe Bool)
sheetViewShowZeros :: Lens' SheetView (Maybe Bool)
sheetViewTabSelected :: Lens' SheetView (Maybe Bool)
sheetViewTopLeftCell :: Lens' SheetView (Maybe CellRef)
sheetViewType :: Lens' SheetView (Maybe SheetViewType)
sheetViewWindowProtection :: Lens' SheetView (Maybe Bool)
sheetViewWorkbookViewId :: Lens' SheetView Int
sheetViewZoomScale :: Lens' SheetView (Maybe Int)
sheetViewZoomScaleNormal :: Lens' SheetView (Maybe Int)
sheetViewZoomScalePageLayoutView :: Lens' SheetView (Maybe Int)
sheetViewZoomScaleSheetLayoutView :: Lens' SheetView (Maybe Int)
sheetViewPane :: Lens' SheetView (Maybe Pane)
sheetViewSelection :: Lens' SheetView [Selection]
selectionActiveCell :: Lens' Selection (Maybe CellRef)
selectionActiveCellId :: Lens' Selection (Maybe Int)
selectionPane :: Lens' Selection (Maybe PaneType)
selectionSqref :: Lens' Selection (Maybe SqRef)
paneActivePane :: Lens' Pane (Maybe PaneType)
paneState :: Lens' Pane (Maybe PaneState)
paneTopLeftCell :: Lens' Pane (Maybe CellRef)
paneXSplit :: Lens' Pane (Maybe Double)
paneYSplit :: Lens' Pane (Maybe Double)
instance Data.Default.Internal.Default Codec.Xlsx.Types.SheetViews.Pane
instance Data.Default.Internal.Default Codec.Xlsx.Types.SheetViews.Selection
instance Data.Default.Internal.Default Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.Pane
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.PaneState
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.PaneType
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.Selection
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetViews.SheetViewType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.SheetViews.PaneState
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.SheetViews.PaneType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.SheetViews.SheetViewType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.SheetViews.PaneState
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.SheetViews.PaneType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.SheetViews.SheetViewType
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.SheetViews.Pane
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.SheetViews.Selection
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.SheetViews.SheetView
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.SheetViews.Pane
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.SheetViews.Selection
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.Pane
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.PaneState
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.PaneType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.Selection
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetViews.SheetViewType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.Pane
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.PaneState
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.PaneType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.Selection
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.SheetView
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetViews.SheetViewType
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.Pane
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.PaneState
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.PaneType
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.Selection
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Classes.Ord Codec.Xlsx.Types.SheetViews.SheetViewType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.Pane
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.PaneState
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.PaneType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.Selection
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.SheetView
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetViews.SheetViewType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.SheetViews.PaneState
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.SheetViews.PaneType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.SheetViews.SheetViewType
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.SheetViews.Pane
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.SheetViews.Selection
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.SheetViews.SheetView

module Codec.Xlsx.Types.PivotTable
data PivotTable
PivotTable :: Text -> Text -> [PositionedField] -> [PositionedField] -> [DataField] -> [PivotFieldInfo] -> Bool -> Bool -> Bool -> Bool -> CellRef -> Text -> Range -> PivotTable
[_pvtName] :: PivotTable -> Text
[_pvtDataCaption] :: PivotTable -> Text
[_pvtRowFields] :: PivotTable -> [PositionedField]
[_pvtColumnFields] :: PivotTable -> [PositionedField]
[_pvtDataFields] :: PivotTable -> [DataField]
[_pvtFields] :: PivotTable -> [PivotFieldInfo]
[_pvtRowGrandTotals] :: PivotTable -> Bool
[_pvtColumnGrandTotals] :: PivotTable -> Bool
[_pvtOutline] :: PivotTable -> Bool
[_pvtOutlineData] :: PivotTable -> Bool
[_pvtLocation] :: PivotTable -> CellRef
[_pvtSrcSheet] :: PivotTable -> Text
[_pvtSrcRef] :: PivotTable -> Range
newtype PivotFieldName
PivotFieldName :: Text -> PivotFieldName
data PivotFieldInfo
PivotFieldInfo :: Maybe PivotFieldName -> Bool -> FieldSortType -> [CellValue] -> PivotFieldInfo
[_pfiName] :: PivotFieldInfo -> Maybe PivotFieldName
[_pfiOutline] :: PivotFieldInfo -> Bool
[_pfiSortType] :: PivotFieldInfo -> FieldSortType
[_pfiHiddenItems] :: PivotFieldInfo -> [CellValue]

-- | Sort orders that can be applied to fields in a PivotTable
--   
--   See 18.18.28 "ST_FieldSortType (Field Sort Type)" (p. 2454)
data FieldSortType
FieldSortAscending :: FieldSortType
FieldSortDescending :: FieldSortType
FieldSortManual :: FieldSortType
data PositionedField
DataPosition :: PositionedField
FieldPosition :: PivotFieldName -> PositionedField
data DataField
DataField :: PivotFieldName -> Text -> ConsolidateFunction -> DataField
[_dfField] :: DataField -> PivotFieldName
[_dfName] :: DataField -> Text
[_dfFunction] :: DataField -> ConsolidateFunction

-- | Data consolidation functions specified by the user and used to
--   consolidate ranges of data
--   
--   See 18.18.17 "ST_DataConsolidateFunction (Data Consolidation
--   Functions)" (p. 2447)
data ConsolidateFunction

-- | The average of the values.
ConsolidateAverage :: ConsolidateFunction

-- | The number of data values. The Count consolidation function works the
--   same as the COUNTA worksheet function.
ConsolidateCount :: ConsolidateFunction

-- | The number of data values that are numbers. The Count Nums
--   consolidation function works the same as the COUNT worksheet function.
ConsolidateCountNums :: ConsolidateFunction

-- | The largest value.
ConsolidateMaximum :: ConsolidateFunction

-- | The smallest value.
ConsolidateMinimum :: ConsolidateFunction

-- | The product of the values.
ConsolidateProduct :: ConsolidateFunction

-- | An estimate of the standard deviation of a population, where the
--   sample is a subset of the entire population.
ConsolidateStdDev :: ConsolidateFunction

-- | The standard deviation of a population, where the population is all of
--   the data to be summarized.
ConsolidateStdDevP :: ConsolidateFunction

-- | The sum of the values.
ConsolidateSum :: ConsolidateFunction

-- | An estimate of the variance of a population, where the sample is a
--   subset of the entire population.
ConsolidateVariance :: ConsolidateFunction

-- | The variance of a population, where the population is all of the data
--   to be summarized.
ConsolidateVarP :: ConsolidateFunction
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.DataField
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.FieldSortType
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.PivotFieldInfo
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.PivotFieldName
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.PivotTable
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.PositionedField
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PivotTable.FieldSortType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PivotTable.PivotFieldName
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.DataField
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.FieldSortType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.PivotFieldInfo
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.PivotFieldName
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.PivotTable
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.PositionedField
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.DataField
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.FieldSortType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.PivotFieldInfo
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.PivotFieldName
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.PivotTable
instance Control.DeepSeq.NFData Codec.Xlsx.Types.PivotTable.PositionedField
instance GHC.Classes.Ord Codec.Xlsx.Types.PivotTable.FieldSortType
instance GHC.Classes.Ord Codec.Xlsx.Types.PivotTable.PivotFieldName
instance GHC.Classes.Ord Codec.Xlsx.Types.PivotTable.PositionedField
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.DataField
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.FieldSortType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.PivotFieldInfo
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.PivotFieldName
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.PivotTable
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.PositionedField
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PivotTable.ConsolidateFunction
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PivotTable.FieldSortType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.PivotTable.PivotFieldName

module Codec.Xlsx.Types.PivotTable.Internal
newtype CacheId
CacheId :: Int -> CacheId
data CacheField
CacheField :: PivotFieldName -> [CellValue] -> CacheField
[cfName] :: CacheField -> PivotFieldName
[cfItems] :: CacheField -> [CellValue]
data CacheRecordValue
CacheText :: Text -> CacheRecordValue
CacheNumber :: Double -> CacheRecordValue
CacheIndex :: Int -> CacheRecordValue
type CacheRecord = [CacheRecordValue]
recordValueFromNode :: Node -> [CacheRecordValue]
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.Internal.CacheField
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.Internal.CacheId
instance GHC.Classes.Eq Codec.Xlsx.Types.PivotTable.Internal.CacheRecordValue
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.PivotTable.Internal.CacheId
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.PivotTable.Internal.CacheField
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.Internal.CacheField
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.Internal.CacheId
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.PivotTable.Internal.CacheRecordValue
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.Internal.CacheField
instance GHC.Internal.Show.Show Codec.Xlsx.Types.PivotTable.Internal.CacheRecordValue
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.PivotTable.Internal.CacheField

module Codec.Xlsx.Types.Drawing.Chart

-- | Main Chart holder, combines TODO: title, autoTitleDeleted, pivotFmts
--   view3D, floor, sideWall, backWall, showDLblsOverMax, extLst
data ChartSpace
ChartSpace :: Maybe ChartTitle -> [Chart] -> Maybe Legend -> Maybe Bool -> Maybe DispBlanksAs -> ChartSpace
[_chspTitle] :: ChartSpace -> Maybe ChartTitle
[_chspCharts] :: ChartSpace -> [Chart]
[_chspLegend] :: ChartSpace -> Maybe Legend
[_chspPlotVisOnly] :: ChartSpace -> Maybe Bool
[_chspDispBlanksAs] :: ChartSpace -> Maybe DispBlanksAs

-- | Chart title
--   
--   TODO: layout, overlay, spPr, txPr, extLst
newtype ChartTitle
ChartTitle :: Maybe TextBody -> ChartTitle

-- | This simple type specifies the possible ways to display blanks.
--   
--   See 21.2.3.10 "ST_DispBlanksAs (Display Blanks As)" (p. 3444)
data DispBlanksAs

-- | Specifies that blank values shall be left as a gap.
DispBlanksAsGap :: DispBlanksAs

-- | Specifies that blank values shall be spanned with a line.
DispBlanksAsSpan :: DispBlanksAs

-- | Specifies that blank values shall be treated as zero.
DispBlanksAsZero :: DispBlanksAs
data Legend
Legend :: Maybe LegendPos -> Maybe Bool -> Legend
[_legendPos] :: Legend -> Maybe LegendPos
[_legendOverlay] :: Legend -> Maybe Bool
data LegendPos

-- | b (Bottom) Specifies that the legend shall be drawn at the bottom of
--   the chart.
LegendBottom :: LegendPos

-- | l (Left) Specifies that the legend shall be drawn at the left of the
--   chart.
LegendLeft :: LegendPos

-- | r (Right) Specifies that the legend shall be drawn at the right of the
--   chart.
LegendRight :: LegendPos

-- | t (Top) Specifies that the legend shall be drawn at the top of the
--   chart.
LegendTop :: LegendPos

-- | tr (Top Right) Specifies that the legend shall be drawn at the top
--   right of the chart.
LegendTopRight :: LegendPos

-- | Specific Chart TODO: area3DChart, line3DChart, stockChart, radarChart,
--   pie3DChart, doughnutChart, bar3DChart, ofPieChart, surfaceChart,
--   surface3DChart, bubbleChart
data Chart
LineChart :: ChartGrouping -> [LineSeries] -> Maybe Bool -> Maybe Bool -> Chart
[_lnchGrouping] :: Chart -> ChartGrouping
[_lnchSeries] :: Chart -> [LineSeries]

-- | specifies that the marker shall be shown
[_lnchMarker] :: Chart -> Maybe Bool

-- | specifies the line connecting the points on the chart shall be
--   smoothed using Catmull-Rom splines
[_lnchSmooth] :: Chart -> Maybe Bool
AreaChart :: Maybe ChartGrouping -> [AreaSeries] -> Chart
[_archGrouping] :: Chart -> Maybe ChartGrouping
[_archSeries] :: Chart -> [AreaSeries]
BarChart :: BarDirection -> Maybe BarChartGrouping -> [BarSeries] -> Chart
[_brchDirection] :: Chart -> BarDirection
[_brchGrouping] :: Chart -> Maybe BarChartGrouping
[_brchSeries] :: Chart -> [BarSeries]
PieChart :: [PieSeries] -> Chart
[_pichSeries] :: Chart -> [PieSeries]
ScatterChart :: ScatterStyle -> [ScatterSeries] -> Chart
[_scchStyle] :: Chart -> ScatterStyle
[_scchSeries] :: Chart -> [ScatterSeries]

-- | Possible groupings for a chart
--   
--   See 21.2.3.17 "ST_Grouping (Grouping)" (p. 3446)
data ChartGrouping

-- | (100% Stacked) Specifies that the chart series are drawn next to each
--   other along the value axis and scaled to total 100%.
PercentStackedGrouping :: ChartGrouping

-- | (Stacked) Specifies that the chart series are drawn next to each other
--   on the value axis.
StackedGrouping :: ChartGrouping

-- | (Standard) Specifies that the chart series are drawn on the value
--   axis.
StandardGrouping :: ChartGrouping

-- | Possible groupings for a bar chart
--   
--   See 21.2.3.4 "ST_BarGrouping (Bar Grouping)" (p. 3441)
data BarChartGrouping

-- | Specifies that the chart series are drawn next to each other along the
--   category axis.
BarClusteredGrouping :: BarChartGrouping

-- | (100% Stacked) Specifies that the chart series are drawn next to each
--   other along the value axis and scaled to total 100%.
BarPercentStackedGrouping :: BarChartGrouping

-- | (Stacked) Specifies that the chart series are drawn next to each other
--   on the value axis.
BarStackedGrouping :: BarChartGrouping

-- | (Standard) Specifies that the chart series are drawn on the value
--   axis.
BarStandardGrouping :: BarChartGrouping

-- | Possible directions for a bar chart
--   
--   See 21.2.3.3 "ST_BarDir (Bar Direction)" (p. 3441)
data BarDirection
DirectionBar :: BarDirection
DirectionColumn :: BarDirection

-- | Possible styles of scatter chart
--   
--   Note: It appears that even for ScatterMarker style Exel
--   draws a line between chart points if otline fill for
--   _scserShared isn't set to so it's not quite clear how could
--   Excel use this property
--   
--   See 21.2.3.40 "ST_ScatterStyle (Scatter Style)" (p. 3455)
data ScatterStyle
ScatterNone :: ScatterStyle
ScatterLine :: ScatterStyle
ScatterLineMarker :: ScatterStyle
ScatterMarker :: ScatterStyle
ScatterSmooth :: ScatterStyle
ScatterSmoothMarker :: ScatterStyle

-- | Single data point options
--   
--   TODO: invertIfNegative, bubble3D, explosion, pictureOptions, extLst
--   
--   See 21.2.2.52 "dPt (Data Point)" (p. 3384)
data DataPoint
DataPoint :: Maybe DataMarker -> Maybe ShapeProperties -> DataPoint
[_dpMarker] :: DataPoint -> Maybe DataMarker
[_dpShapeProperties] :: DataPoint -> Maybe ShapeProperties

-- | Specifies common series options TODO: spPr
--   
--   See EG_SerShared (p. 4063)
data Series
Series :: Maybe Formula -> Maybe ShapeProperties -> Series

-- | specifies text for a series name, without rich text formatting
--   currently only reference formula is supported
[_serTx] :: Series -> Maybe Formula
[_serShapeProperties] :: Series -> Maybe ShapeProperties

-- | A series on a line chart
--   
--   TODO: dPt, trendline, errBars, cat, extLst
--   
--   See CT_LineSer (p. 4064)
data LineSeries
LineSeries :: Series -> Maybe DataMarker -> Maybe DataLblProps -> Maybe Formula -> Maybe Bool -> LineSeries
[_lnserShared] :: LineSeries -> Series
[_lnserMarker] :: LineSeries -> Maybe DataMarker
[_lnserDataLblProps] :: LineSeries -> Maybe DataLblProps

-- | currently only reference formula is supported
[_lnserVal] :: LineSeries -> Maybe Formula
[_lnserSmooth] :: LineSeries -> Maybe Bool

-- | A series on an area chart
--   
--   TODO: pictureOptions, dPt, trendline, errBars, cat, extLst
--   
--   See CT_AreaSer (p. 4065)
data AreaSeries
AreaSeries :: Series -> Maybe DataLblProps -> Maybe Formula -> AreaSeries
[_arserShared] :: AreaSeries -> Series
[_arserDataLblProps] :: AreaSeries -> Maybe DataLblProps
[_arserVal] :: AreaSeries -> Maybe Formula

-- | A series on a bar chart
--   
--   TODO: invertIfNegative, pictureOptions, dPt, trendline, errBars, cat,
--   shape, extLst
--   
--   See CT_BarSer (p. 4064)
data BarSeries
BarSeries :: Series -> Maybe DataLblProps -> Maybe Formula -> BarSeries
[_brserShared] :: BarSeries -> Series
[_brserDataLblProps] :: BarSeries -> Maybe DataLblProps
[_brserVal] :: BarSeries -> Maybe Formula

-- | A series on a pie chart
--   
--   TODO: explosion, cat, extLst
--   
--   See CT_PieSer (p. 4065)
data PieSeries
PieSeries :: Series -> [DataPoint] -> Maybe DataLblProps -> Maybe Formula -> PieSeries
[_piserShared] :: PieSeries -> Series

-- | normally you should set fill for chart datapoints to make them
--   properly colored
[_piserDataPoints] :: PieSeries -> [DataPoint]
[_piserDataLblProps] :: PieSeries -> Maybe DataLblProps
[_piserVal] :: PieSeries -> Maybe Formula

-- | A series on a scatter chart
--   
--   TODO: dPt, trendline, errBars, smooth, extLst
--   
--   See CT_ScatterSer (p. 4064)
data ScatterSeries
ScatterSeries :: Series -> Maybe DataMarker -> Maybe DataLblProps -> Maybe Formula -> Maybe Formula -> Maybe Bool -> ScatterSeries
[_scserShared] :: ScatterSeries -> Series
[_scserMarker] :: ScatterSeries -> Maybe DataMarker
[_scserDataLblProps] :: ScatterSeries -> Maybe DataLblProps
[_scserXVal] :: ScatterSeries -> Maybe Formula
[_scserYVal] :: ScatterSeries -> Maybe Formula
[_scserSmooth] :: ScatterSeries -> Maybe Bool
data DataMarker
DataMarker :: Maybe DataMarkerSymbol -> Maybe Int -> DataMarker
[_dmrkSymbol] :: DataMarker -> Maybe DataMarkerSymbol

-- | integer between 2 and 72, specifying a size in points
[_dmrkSize] :: DataMarker -> Maybe Int
data DataMarkerSymbol
DataMarkerCircle :: DataMarkerSymbol
DataMarkerDash :: DataMarkerSymbol
DataMarkerDiamond :: DataMarkerSymbol
DataMarkerDot :: DataMarkerSymbol
DataMarkerNone :: DataMarkerSymbol
DataMarkerPicture :: DataMarkerSymbol
DataMarkerPlus :: DataMarkerSymbol
DataMarkerSquare :: DataMarkerSymbol
DataMarkerStar :: DataMarkerSymbol
DataMarkerTriangle :: DataMarkerSymbol
DataMarkerX :: DataMarkerSymbol
DataMarkerAuto :: DataMarkerSymbol

-- | Settings for the data labels for an entire series or the entire chart
--   
--   TODO: numFmt, spPr, txPr, dLblPos, showBubbleSize, separator,
--   showLeaderLines, leaderLines See 21.2.2.49 "dLbls (Data Labels)" (p.
--   3384)
data DataLblProps
DataLblProps :: Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> DataLblProps
[_dlblShowLegendKey] :: DataLblProps -> Maybe Bool
[_dlblShowVal] :: DataLblProps -> Maybe Bool
[_dlblShowCatName] :: DataLblProps -> Maybe Bool
[_dlblShowSerName] :: DataLblProps -> Maybe Bool
[_dlblShowPercent] :: DataLblProps -> Maybe Bool

-- | Specifies the possible positions for tick marks.
data TickMark

-- | (Cross) Specifies the tick marks shall cross the axis.
TickMarkCross :: TickMark

-- | (Inside) Specifies the tick marks shall be inside the plot area.
TickMarkIn :: TickMark

-- | (None) Specifies there shall be no tick marks.
TickMarkNone :: TickMark

-- | (Outside) Specifies the tick marks shall be outside the plot area.
TickMarkOut :: TickMark
dpMarker :: Lens' DataPoint (Maybe DataMarker)
dpShapeProperties :: Lens' DataPoint (Maybe ShapeProperties)
chartFromNode :: Node -> [Chart]
chartToElements :: Chart -> Int -> (Element, [Element])
simpleSeries :: Name -> Series -> Maybe Formula -> [Element] -> [Element] -> Element

-- | Add chart namespace to name
c_ :: Text -> Name
chartNs :: Text
instance Data.Default.Internal.Default Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance Data.Default.Internal.Default Codec.Xlsx.Types.Drawing.Chart.Legend
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.Chart
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.Legend
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.Series
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Chart.TickMark
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.Legend
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Chart.Series
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.Chart
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.Legend
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.Series
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Chart.TickMark
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.Chart
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.Legend
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.Series
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Chart.TickMark
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.Chart
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.DataPoint
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.Legend
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.Series
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Chart.TickMark
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.BarChartGrouping
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.BarDirection
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.ChartGrouping
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.DataMarkerSymbol
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.DispBlanksAs
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.LegendPos
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.ScatterStyle
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.Chart.TickMark
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.AreaSeries
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.BarSeries
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.ChartSpace
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.ChartTitle
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.DataLblProps
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.DataMarker
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.Legend
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.LineSeries
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.PieSeries
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.ScatterSeries
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Chart.Series

module Codec.Xlsx.Types.Drawing

-- | information about image file as a par of a drawing
data FileInfo
FileInfo :: FilePath -> Text -> ByteString -> FileInfo

-- | image filename, images are assumed to be stored under path "xl/media/"
[_fiFilename] :: FileInfo -> FilePath

-- | image content type, ECMA-376 advises to use "image/png" or
--   "image/jpeg" if interoperability is wanted
[_fiContentType] :: FileInfo -> Text

-- | image file contents
[_fiContents] :: FileInfo -> ByteString
data Marker
Marker :: Int -> Coordinate -> Int -> Coordinate -> Marker
[_mrkCol] :: Marker -> Int
[_mrkColOff] :: Marker -> Coordinate
[_mrkRow] :: Marker -> Int
[_mrkRowOff] :: Marker -> Coordinate
unqMarker :: (Int, Int) -> (Int, Int) -> Marker
data EditAs
EditAsTwoCell :: EditAs
EditAsOneCell :: EditAs
EditAsAbsolute :: EditAs
data Anchoring
AbsoluteAnchor :: Point2D -> PositiveSize2D -> Anchoring
[absaPos] :: Anchoring -> Point2D
[absaExt] :: Anchoring -> PositiveSize2D
OneCellAnchor :: Marker -> PositiveSize2D -> Anchoring
[onecaFrom] :: Anchoring -> Marker
[onecaExt] :: Anchoring -> PositiveSize2D
TwoCellAnchor :: Marker -> Marker -> EditAs -> Anchoring
[tcaFrom] :: Anchoring -> Marker
[tcaTo] :: Anchoring -> Marker
[tcaEditAs] :: Anchoring -> EditAs
data DrawingObject p g
Picture :: Maybe Text -> Bool -> PicNonVisual -> BlipFillProperties p -> ShapeProperties -> DrawingObject p g
[_picMacro] :: DrawingObject p g -> Maybe Text
[_picPublished] :: DrawingObject p g -> Bool
[_picNonVisual] :: DrawingObject p g -> PicNonVisual
[_picBlipFill] :: DrawingObject p g -> BlipFillProperties p
[_picShapeProperties] :: DrawingObject p g -> ShapeProperties
Graphic :: GraphNonVisual -> g -> Transform2D -> DrawingObject p g
[_grNonVisual] :: DrawingObject p g -> GraphNonVisual
[_grChartSpace] :: DrawingObject p g -> g
[_grTransform] :: DrawingObject p g -> Transform2D

-- | basic function to create picture drawing object
--   
--   Note: specification says that drawing element ids need to be
--   unique within 1 document, otherwise /...document shall be considered
--   non-conformant/.
picture :: DrawingElementId -> FileInfo -> DrawingObject FileInfo c

-- | helper to retrive information about all picture files in particular
--   drawing alongside with their anchorings (i.e. sizes and positions)
extractPictures :: Drawing -> [(Anchoring, FileInfo)]

-- | This element is used to set certain properties related to a drawing
--   element on the client spreadsheet application.
--   
--   see 20.5.2.3 "clientData (Client Data)" (p. 3156)
data ClientData
ClientData :: Bool -> Bool -> ClientData

-- | This attribute indicates whether to disable selection on drawing
--   elements when the sheet is protected.
[_cldLcksWithSheet] :: ClientData -> Bool

-- | This attribute indicates whether to print drawing elements when
--   printing the sheet.
[_cldPrintsWithSheet] :: ClientData -> Bool
data PicNonVisual
PicNonVisual :: NonVisualDrawingProperties -> PicNonVisual
[_pnvDrawingProps] :: PicNonVisual -> NonVisualDrawingProperties
data GraphNonVisual
GraphNonVisual :: NonVisualDrawingProperties -> GraphNonVisual
[_gnvDrawingProps] :: GraphNonVisual -> NonVisualDrawingProperties
newtype DrawingElementId
DrawingElementId :: Int -> DrawingElementId
[unDrawingElementId] :: DrawingElementId -> Int
data NonVisualDrawingProperties
NonVisualDrawingProperties :: DrawingElementId -> Text -> Maybe Text -> Bool -> Maybe Text -> NonVisualDrawingProperties

-- | Specifies a unique identifier for the current DrawingML object within
--   the current
--   
--   TODO: make ids internal and consistent by construction
[_nvdpId] :: NonVisualDrawingProperties -> DrawingElementId

-- | Specifies the name of the object. Typically, this is used to store the
--   original file name of a picture object.
[_nvdpName] :: NonVisualDrawingProperties -> Text

-- | Alternative Text for Object
[_nvdpDescription] :: NonVisualDrawingProperties -> Maybe Text
[_nvdpHidden] :: NonVisualDrawingProperties -> Bool
[_nvdpTitle] :: NonVisualDrawingProperties -> Maybe Text
data BlipFillProperties a
BlipFillProperties :: Maybe a -> Maybe FillMode -> BlipFillProperties a
[_bfpImageInfo] :: BlipFillProperties a -> Maybe a
[_bfpFillMode] :: BlipFillProperties a -> Maybe FillMode
data FillMode
FillTile :: FillMode
FillStretch :: FillMode
data Anchor p g
Anchor :: Anchoring -> DrawingObject p g -> ClientData -> Anchor p g
[_anchAnchoring] :: Anchor p g -> Anchoring
[_anchObject] :: Anchor p g -> DrawingObject p g
[_anchClientData] :: Anchor p g -> ClientData
data GenericDrawing p g
Drawing :: [Anchor p g] -> GenericDrawing p g
[_xdrAnchors] :: GenericDrawing p g -> [Anchor p g]
type Drawing = GenericDrawing FileInfo ChartSpace
type UnresolvedDrawing = GenericDrawing RefId RefId
anchAnchoring :: forall p g f. Functor f => (Anchoring -> f Anchoring) -> Anchor p g -> f (Anchor p g)
anchClientData :: forall p g f. Functor f => (ClientData -> f ClientData) -> Anchor p g -> f (Anchor p g)
anchObject :: forall p1 g1 p2 g2 f. Functor f => (DrawingObject p1 g1 -> f (DrawingObject p2 g2)) -> Anchor p1 g1 -> f (Anchor p2 g2)
grChartSpace :: forall p g1 g2 f. Applicative f => (g1 -> f g2) -> DrawingObject p g1 -> f (DrawingObject p g2)
grNonVisual :: forall p g f. Applicative f => (GraphNonVisual -> f GraphNonVisual) -> DrawingObject p g -> f (DrawingObject p g)
grTransform :: forall p g f. Applicative f => (Transform2D -> f Transform2D) -> DrawingObject p g -> f (DrawingObject p g)
picBlipFill :: forall p1 g p2 f. Applicative f => (BlipFillProperties p1 -> f (BlipFillProperties p2)) -> DrawingObject p1 g -> f (DrawingObject p2 g)
picMacro :: forall p g f. Applicative f => (Maybe Text -> f (Maybe Text)) -> DrawingObject p g -> f (DrawingObject p g)
picNonVisual :: forall p g f. Applicative f => (PicNonVisual -> f PicNonVisual) -> DrawingObject p g -> f (DrawingObject p g)
picPublished :: forall p g f. Applicative f => (Bool -> f Bool) -> DrawingObject p g -> f (DrawingObject p g)
picShapeProperties :: forall p g f. Applicative f => (ShapeProperties -> f ShapeProperties) -> DrawingObject p g -> f (DrawingObject p g)
bfpFillMode :: forall a f. Functor f => (Maybe FillMode -> f (Maybe FillMode)) -> BlipFillProperties a -> f (BlipFillProperties a)
bfpImageInfo :: forall a1 a2 f. Functor f => (Maybe a1 -> f (Maybe a2)) -> BlipFillProperties a1 -> f (BlipFillProperties a2)
xdrAnchors :: forall p1 g1 p2 g2 p3 f. (Profunctor p3, Functor f) => p3 [Anchor p1 g1] (f [Anchor p2 g2]) -> p3 (GenericDrawing p1 g1) (f (GenericDrawing p2 g2))

-- | simple drawing object anchoring using one cell as a top lelft corner
--   and dimensions of that object
simpleAnchorXY :: (Int, Int) -> PositiveSize2D -> DrawingObject p g -> Anchor p g
anchoringFromNode :: Node -> [Anchoring]
drawingObjectFromNode :: Node -> [DrawingObject RefId RefId]
fillModeFromNode :: Node -> [FillMode]
anchorToElement :: Anchor RefId RefId -> Element
anchoringToElement :: Anchoring -> Element
drawingObjToElement :: DrawingObject RefId RefId -> Element
fillModeToElement :: FillMode -> Element

-- | Add Spreadsheet DrawingML namespace to name
xdr :: Text -> Name
xlDrawingNs :: Text
instance Data.Default.Internal.Default Codec.Xlsx.Types.Drawing.ClientData
instance (GHC.Classes.Eq p, GHC.Classes.Eq g) => GHC.Classes.Eq (Codec.Xlsx.Types.Drawing.Anchor p g)
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Anchoring
instance GHC.Classes.Eq a => GHC.Classes.Eq (Codec.Xlsx.Types.Drawing.BlipFillProperties a)
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.ClientData
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.DrawingElementId
instance (GHC.Classes.Eq p, GHC.Classes.Eq g) => GHC.Classes.Eq (Codec.Xlsx.Types.Drawing.DrawingObject p g)
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.EditAs
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.FileInfo
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.FillMode
instance (GHC.Classes.Eq p, GHC.Classes.Eq g) => GHC.Classes.Eq (Codec.Xlsx.Types.Drawing.GenericDrawing p g)
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.GraphNonVisual
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.Marker
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.Drawing.PicNonVisual
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.DrawingElementId
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Drawing.EditAs
instance Codec.Xlsx.Parser.Internal.FromCursor (Codec.Xlsx.Types.Drawing.Anchor Codec.Xlsx.Types.Internal.RefId Codec.Xlsx.Types.Internal.RefId)
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Anchoring
instance Codec.Xlsx.Parser.Internal.FromCursor (Codec.Xlsx.Types.Drawing.BlipFillProperties Codec.Xlsx.Types.Internal.RefId)
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.ClientData
instance Codec.Xlsx.Parser.Internal.FromCursor (Codec.Xlsx.Types.Drawing.DrawingObject Codec.Xlsx.Types.Internal.RefId Codec.Xlsx.Types.Internal.RefId)
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.FillMode
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.UnresolvedDrawing
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.GraphNonVisual
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.Marker
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Drawing.PicNonVisual
instance GHC.Internal.Generics.Generic (Codec.Xlsx.Types.Drawing.Anchor p g)
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Anchoring
instance GHC.Internal.Generics.Generic (Codec.Xlsx.Types.Drawing.BlipFillProperties a)
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.ClientData
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.DrawingElementId
instance GHC.Internal.Generics.Generic (Codec.Xlsx.Types.Drawing.DrawingObject p g)
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.EditAs
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.FileInfo
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.FillMode
instance GHC.Internal.Generics.Generic (Codec.Xlsx.Types.Drawing.GenericDrawing p g)
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.GraphNonVisual
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.Marker
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Drawing.PicNonVisual
instance (Control.DeepSeq.NFData p, Control.DeepSeq.NFData g) => Control.DeepSeq.NFData (Codec.Xlsx.Types.Drawing.Anchor p g)
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Anchoring
instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Codec.Xlsx.Types.Drawing.BlipFillProperties a)
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.ClientData
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.DrawingElementId
instance (Control.DeepSeq.NFData p, Control.DeepSeq.NFData g) => Control.DeepSeq.NFData (Codec.Xlsx.Types.Drawing.DrawingObject p g)
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.EditAs
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.FileInfo
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.FillMode
instance (Control.DeepSeq.NFData p, Control.DeepSeq.NFData g) => Control.DeepSeq.NFData (Codec.Xlsx.Types.Drawing.GenericDrawing p g)
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.GraphNonVisual
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.Marker
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Drawing.PicNonVisual
instance (GHC.Internal.Show.Show p, GHC.Internal.Show.Show g) => GHC.Internal.Show.Show (Codec.Xlsx.Types.Drawing.Anchor p g)
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Anchoring
instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Codec.Xlsx.Types.Drawing.BlipFillProperties a)
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.ClientData
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.DrawingElementId
instance (GHC.Internal.Show.Show p, GHC.Internal.Show.Show g) => GHC.Internal.Show.Show (Codec.Xlsx.Types.Drawing.DrawingObject p g)
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.EditAs
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.FileInfo
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.FillMode
instance (GHC.Internal.Show.Show p, GHC.Internal.Show.Show g) => GHC.Internal.Show.Show (Codec.Xlsx.Types.Drawing.GenericDrawing p g)
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.GraphNonVisual
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.Marker
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Drawing.PicNonVisual
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.DrawingElementId
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Drawing.EditAs
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Drawing.UnresolvedDrawing
instance Codec.Xlsx.Writer.Internal.ToElement (Codec.Xlsx.Types.Drawing.BlipFillProperties Codec.Xlsx.Types.Internal.RefId)
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.ClientData
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.UnresolvedDrawing
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.GraphNonVisual
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.Marker
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.NonVisualDrawingProperties
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Drawing.PicNonVisual

module Codec.Xlsx.Types.DataValidation
data ValidationExpression

-- | Between operator
ValBetween :: Formula -> Formula -> ValidationExpression

-- | "Equal to" operator
ValEqual :: Formula -> ValidationExpression

-- | "Greater than" operator
ValGreaterThan :: Formula -> ValidationExpression

-- | "Greater than or equal to" operator
ValGreaterThanOrEqual :: Formula -> ValidationExpression

-- | "Less than" operator
ValLessThan :: Formula -> ValidationExpression

-- | "Less than or equal to" operator
ValLessThanOrEqual :: Formula -> ValidationExpression

-- | "Not between" operator
ValNotBetween :: Formula -> Formula -> ValidationExpression

-- | "Not equal to" operator
ValNotEqual :: Formula -> ValidationExpression
data ValidationType
ValidationTypeNone :: ValidationType
ValidationTypeCustom :: Formula -> ValidationType
ValidationTypeDate :: ValidationExpression -> ValidationType
ValidationTypeDecimal :: ValidationExpression -> ValidationType
ValidationTypeList :: ListOrRangeExpression -> ValidationType
ValidationTypeTextLength :: ValidationExpression -> ValidationType
ValidationTypeTime :: ValidationExpression -> ValidationType
ValidationTypeWhole :: ValidationExpression -> ValidationType
dvAllowBlank :: Lens' DataValidation Bool
dvError :: Lens' DataValidation (Maybe Text)
dvErrorStyle :: Lens' DataValidation ErrorStyle
dvErrorTitle :: Lens' DataValidation (Maybe Text)
dvPrompt :: Lens' DataValidation (Maybe Text)
dvPromptTitle :: Lens' DataValidation (Maybe Text)
dvShowDropDown :: Lens' DataValidation Bool
dvShowErrorMessage :: Lens' DataValidation Bool
dvShowInputMessage :: Lens' DataValidation Bool
dvValidationType :: Lens' DataValidation ValidationType
data ErrorStyle
ErrorStyleInformation :: ErrorStyle
ErrorStyleStop :: ErrorStyle
ErrorStyleWarning :: ErrorStyle
data DataValidation
DataValidation :: Bool -> Maybe Text -> ErrorStyle -> Maybe Text -> Maybe Text -> Maybe Text -> Bool -> Bool -> Bool -> ValidationType -> DataValidation
[_dvAllowBlank] :: DataValidation -> Bool
[_dvError] :: DataValidation -> Maybe Text
[_dvErrorStyle] :: DataValidation -> ErrorStyle
[_dvErrorTitle] :: DataValidation -> Maybe Text
[_dvPrompt] :: DataValidation -> Maybe Text
[_dvPromptTitle] :: DataValidation -> Maybe Text
[_dvShowDropDown] :: DataValidation -> Bool
[_dvShowErrorMessage] :: DataValidation -> Bool
[_dvShowInputMessage] :: DataValidation -> Bool
[_dvValidationType] :: DataValidation -> ValidationType
data ListOrRangeExpression

-- | a plain list of elements
ListExpression :: ValidationList -> ListOrRangeExpression

-- | a cell or range reference
RangeExpression :: Range -> ListOrRangeExpression
type ValidationList = [Text]

-- | Attempt to obtain a plain list expression
maybePlainValidationList :: ValidationType -> Maybe ValidationList

-- | Attempt to obtain a range expression
maybeValidationRange :: ValidationType -> Maybe Range
readValidationType :: Text -> Text -> Cursor -> [ValidationType]
readListFormulas :: Formula -> Maybe ListOrRangeExpression
readOpExpression2 :: Text -> Cursor -> [ValidationExpression]
readValidationTypeOpExp :: Text -> ValidationExpression -> [ValidationType]
readValExpression :: Text -> [Formula] -> [ValidationExpression]
viewValidationExpression :: ValidationExpression -> (Text, Formula, Maybe Formula)
instance Data.Default.Internal.Default Codec.Xlsx.Types.DataValidation.DataValidation
instance GHC.Classes.Eq Codec.Xlsx.Types.DataValidation.DataValidation
instance GHC.Classes.Eq Codec.Xlsx.Types.DataValidation.ErrorStyle
instance GHC.Classes.Eq Codec.Xlsx.Types.DataValidation.ListOrRangeExpression
instance GHC.Classes.Eq Codec.Xlsx.Types.DataValidation.ValidationExpression
instance GHC.Classes.Eq Codec.Xlsx.Types.DataValidation.ValidationType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.DataValidation.ErrorStyle
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.DataValidation.ErrorStyle
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.DataValidation.DataValidation
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.DataValidation.DataValidation
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DataValidation.DataValidation
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DataValidation.ErrorStyle
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DataValidation.ListOrRangeExpression
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DataValidation.ValidationExpression
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DataValidation.ValidationType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DataValidation.DataValidation
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DataValidation.ErrorStyle
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DataValidation.ListOrRangeExpression
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DataValidation.ValidationExpression
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DataValidation.ValidationType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DataValidation.DataValidation
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DataValidation.ErrorStyle
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DataValidation.ListOrRangeExpression
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DataValidation.ValidationExpression
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DataValidation.ValidationType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.DataValidation.ErrorStyle
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.DataValidation.ValidationType
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.DataValidation.DataValidation

module Codec.Xlsx.Types.Internal.DvPair

-- | Internal helper type for parsing data validation records
--   
--   See 18.3.1.32 "dataValidation (Data Validation)" (p. 1614/1624)
newtype DvPair
DvPair :: (SqRef, DataValidation) -> DvPair
[unDvPair] :: DvPair -> (SqRef, DataValidation)
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.DvPair.DvPair
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.DvPair.DvPair
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Internal.DvPair.DvPair
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.DvPair.DvPair
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.DvPair.DvPair
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.DvPair.DvPair

module Codec.Xlsx.Types.ConditionalFormatting
type ConditionalFormatting = [CfRule]

-- | This collection represents a description of a conditional formatting
--   rule.
--   
--   See 18.3.1.10 "cfRule (Conditional Formatting Rule)" (p. 1602)
data CfRule
CfRule :: Condition -> Maybe Int -> Int -> Maybe Bool -> CfRule
[_cfrCondition] :: CfRule -> Condition

-- | This is an index to a dxf element in the Styles Part indicating which
--   cell formatting to apply when the conditional formatting rule criteria
--   is met.
[_cfrDxfId] :: CfRule -> Maybe Int

-- | The priority of this conditional formatting rule. This value is used
--   to determine which format should be evaluated and rendered. Lower
--   numeric values are higher priority than higher numeric values, where 1
--   is the highest priority.
[_cfrPriority] :: CfRule -> Int

-- | If this flag is set, no rules with lower priority shall be applied
--   over this rule, when this rule evaluates to true.
[_cfrStopIfTrue] :: CfRule -> Maybe Bool

-- | The number of standard deviations to include above or below the
--   average in the conditional formatting rule.
newtype NStdDev
NStdDev :: Int -> NStdDev

-- | Flag indicating whether the aboveAverage and
--   belowAverage criteria is inclusive of the average itself, or
--   exclusive of that value.
data Inclusion
Inclusive :: Inclusion
Exclusive :: Inclusion

-- | Describes the values of the interpolation points in a color scale,
--   data bar or icon set conditional formatting rules.
--   
--   See 18.3.1.11 "cfvo (Conditional Format Value Object)" (p. 1604)
data CfValue
CfValue :: Double -> CfValue
CfPercent :: Double -> CfValue
CfPercentile :: Double -> CfValue
CfFormula :: Formula -> CfValue
data MinCfValue
CfvMin :: MinCfValue
MinCfValue :: CfValue -> MinCfValue
data MaxCfValue
CfvMax :: MaxCfValue
MaxCfValue :: CfValue -> MaxCfValue

-- | Conditions which could be used for conditional formatting
--   
--   See 18.18.12 "ST_CfType (Conditional Format Type)" (p. 2443)
data Condition

-- | This conditional formatting rule highlights cells that are above (or
--   maybe equal to) the average for all values in the range.
AboveAverage :: Inclusion -> Maybe NStdDev -> Condition

-- | This conditional formatting rule highlights cells in the range that
--   begin with the given text. Equivalent to using the LEFT() sheet
--   function and comparing values.
BeginsWith :: Text -> Condition

-- | This conditional formatting rule highlights cells that are below the
--   average for all values in the range.
BelowAverage :: Inclusion -> Maybe NStdDev -> Condition

-- | This conditional formatting rule highlights cells whose values fall in
--   the bottom N percent bracket.
BottomNPercent :: Int -> Condition

-- | This conditional formatting rule highlights cells whose values fall in
--   the bottom N bracket.
BottomNValues :: Int -> Condition

-- | This conditional formatting rule compares a cell value to a formula
--   calculated result, using an operator.
CellIs :: OperatorExpression -> Condition

-- | This conditional formatting rule creates a gradated color scale on the
--   cells with specified colors for specified minimum and maximum.
ColorScale2 :: MinCfValue -> Color -> MaxCfValue -> Color -> Condition

-- | This conditional formatting rule creates a gradated color scale on the
--   cells with specified colors for specified minimum, midpoint and
--   maximum.
ColorScale3 :: MinCfValue -> Color -> CfValue -> Color -> MaxCfValue -> Color -> Condition

-- | This conditional formatting rule highlights cells that are completely
--   blank. Equivalent of using LEN(TRIM()). This means that if the cell
--   contains only characters that TRIM() would remove, then it is
--   considered blank. An empty cell is also considered blank.
ContainsBlanks :: Condition

-- | This conditional formatting rule highlights cells with formula errors.
--   Equivalent to using ISERROR() sheet function to determine if there is
--   a formula error.
ContainsErrors :: Condition

-- | This conditional formatting rule highlights cells containing given
--   text. Equivalent to using the SEARCH() sheet function to determine
--   whether the cell contains the text.
ContainsText :: Text -> Condition

-- | This conditional formatting rule displays a gradated data bar in the
--   range of cells.
DataBar :: DataBarOptions -> Condition

-- | This conditional formatting rule highlights cells without formula
--   errors. Equivalent to using ISERROR() sheet function to determine if
--   there is a formula error.
DoesNotContainErrors :: Condition

-- | This conditional formatting rule highlights cells that are not blank.
--   Equivalent of using LEN(TRIM()). This means that if the cell contains
--   only characters that TRIM() would remove, then it is considered blank.
--   An empty cell is also considered blank.
DoesNotContainBlanks :: Condition

-- | This conditional formatting rule highlights cells that do not contain
--   given text. Equivalent to using the SEARCH() sheet function.
DoesNotContainText :: Text -> Condition

-- | This conditional formatting rule highlights duplicated values.
DuplicateValues :: Condition

-- | This conditional formatting rule highlights cells ending with given
--   text. Equivalent to using the RIGHT() sheet function and comparing
--   values.
EndsWith :: Text -> Condition

-- | This conditional formatting rule contains a formula to evaluate. When
--   the formula result is true, the cell is highlighted.
Expression :: Formula -> Condition

-- | This conditional formatting rule applies icons to cells according to
--   their values.
IconSet :: IconSetOptions -> Condition

-- | This conditional formatting rule highlights cells containing dates in
--   the specified time period. The underlying value of the cell is
--   evaluated, therefore the cell does not need to be formatted as a date
--   to be evaluated. For example, with a cell containing the value 38913
--   the conditional format shall be applied if the rule requires a value
--   of 7142006.
InTimePeriod :: TimePeriod -> Condition

-- | This conditional formatting rule highlights cells whose values fall in
--   the top N percent bracket.
TopNPercent :: Int -> Condition

-- | This conditional formatting rule highlights cells whose values fall in
--   the top N bracket.
TopNValues :: Int -> Condition

-- | This conditional formatting rule highlights unique values in the
--   range.
UniqueValues :: Condition

-- | Logical operation used in CellIs condition
--   
--   See 18.18.15 "ST_ConditionalFormattingOperator (Conditional Format
--   Operators)" (p. 2446)
data OperatorExpression

-- | 'Begins with' operator
OpBeginsWith :: Formula -> OperatorExpression

-- | Between operator
OpBetween :: Formula -> Formula -> OperatorExpression

-- | Contains operator
OpContainsText :: Formula -> OperatorExpression

-- | 'Ends with' operator
OpEndsWith :: Formula -> OperatorExpression

-- | 'Equal to' operator
OpEqual :: Formula -> OperatorExpression

-- | 'Greater than' operator
OpGreaterThan :: Formula -> OperatorExpression

-- | 'Greater than or equal to' operator
OpGreaterThanOrEqual :: Formula -> OperatorExpression

-- | 'Less than' operator
OpLessThan :: Formula -> OperatorExpression

-- | 'Less than or equal to' operator
OpLessThanOrEqual :: Formula -> OperatorExpression

-- | 'Not between' operator
OpNotBetween :: Formula -> Formula -> OperatorExpression

-- | 'Does not contain' operator
OpNotContains :: Formula -> OperatorExpression

-- | 'Not equal to' operator
OpNotEqual :: Formula -> OperatorExpression

-- | Used in a "contains dates" conditional formatting rule. These are
--   dynamic time periods, which change based on the date the conditional
--   formatting is refreshed / applied.
--   
--   See 18.18.82 "ST_TimePeriod (Time Period Types)" (p. 2508)
data TimePeriod

-- | A date in the last seven days.
PerLast7Days :: TimePeriod

-- | A date occuring in the last calendar month.
PerLastMonth :: TimePeriod

-- | A date occuring last week.
PerLastWeek :: TimePeriod

-- | A date occuring in the next calendar month.
PerNextMonth :: TimePeriod

-- | A date occuring next week.
PerNextWeek :: TimePeriod

-- | A date occuring in this calendar month.
PerThisMonth :: TimePeriod

-- | A date occuring this week.
PerThisWeek :: TimePeriod

-- | Today's date.
PerToday :: TimePeriod

-- | Tomorrow's date.
PerTomorrow :: TimePeriod

-- | Yesterday's date.
PerYesterday :: TimePeriod

-- | Describes an icon set conditional formatting rule.
--   
--   See 18.3.1.49 "iconSet (Icon Set)" (p. 1645)
data IconSetOptions
IconSetOptions :: IconSetType -> [CfValue] -> Bool -> Bool -> IconSetOptions

-- | icon set used, default value is IconSet3Trafficlights1
[_isoIconSet] :: IconSetOptions -> IconSetType

-- | values describing per icon ranges
[_isoValues] :: IconSetOptions -> [CfValue]

-- | reverses the default order of the icons in the specified icon set
[_isoReverse] :: IconSetOptions -> Bool

-- | indicates whether to show the values of the cells on which this icon
--   set is applied.
[_isoShowValue] :: IconSetOptions -> Bool

-- | Icon set type for conditional formatting. CfValue fields
--   determine lower range bounds. I.e. IconSet3Signs (CfPercent 0)
--   (CfPercent 33) (CfPercent 67) say that 1st icon will be shown for
--   values ranging from 0 to 33 percents, 2nd for 33 to 67 percent and the
--   3rd one for values from 67 to 100 percent.
--   
--   
--   
- 18.42 "ST_IconSetType (Icon Set Type)" (p. 2463)
--   
data IconSetType
IconSet3Arrows :: IconSetType
IconSet3ArrowsGray :: IconSetType
IconSet3Flags :: IconSetType
IconSet3Signs :: IconSetType
IconSet3Symbols :: IconSetType
IconSet3Symbols2 :: IconSetType
IconSet3TrafficLights1 :: IconSetType

-- | 3 traffic lights icon set with thick black border.
IconSet3TrafficLights2 :: IconSetType
IconSet4Arrows :: IconSetType
IconSet4ArrowsGray :: IconSetType
IconSet4Rating :: IconSetType
IconSet4RedToBlack :: IconSetType
IconSet4TrafficLights :: IconSetType
IconSet5Arrows :: IconSetType
IconSet5ArrowsGray :: IconSetType
IconSet5Quarters :: IconSetType
IconSet5Rating :: IconSetType

-- | Describes a data bar conditional formatting rule.
--   
--   See 18.3.1.28 "dataBar (Data Bar)" (p. 1621)
data DataBarOptions
DataBarOptions :: Int -> Int -> Bool -> MinCfValue -> MaxCfValue -> Color -> DataBarOptions

-- | The maximum length of the data bar, as a percentage of the cell width.
[_dboMaxLength] :: DataBarOptions -> Int

-- | The minimum length of the data bar, as a percentage of the cell width.
[_dboMinLength] :: DataBarOptions -> Int

-- | Indicates whether to show the values of the cells on which this data
--   bar is applied.
[_dboShowValue] :: DataBarOptions -> Bool
[_dboMinimum] :: DataBarOptions -> MinCfValue
[_dboMaximum] :: DataBarOptions -> MaxCfValue
[_dboColor] :: DataBarOptions -> Color
dataBarWithColor :: Color -> Condition
cfrCondition :: Lens' CfRule Condition
cfrDxfId :: Lens' CfRule (Maybe Int)
cfrPriority :: Lens' CfRule Int
cfrStopIfTrue :: Lens' CfRule (Maybe Bool)
isoIconSet :: Lens' IconSetOptions IconSetType
isoValues :: Lens' IconSetOptions [CfValue]
isoReverse :: Lens' IconSetOptions Bool
isoShowValue :: Lens' IconSetOptions Bool
dboMaxLength :: Lens' DataBarOptions Int
dboMinLength :: Lens' DataBarOptions Int
dboShowValue :: Lens' DataBarOptions Bool
dboMinimum :: Lens' DataBarOptions MinCfValue
dboMaximum :: Lens' DataBarOptions MaxCfValue
dboColor :: Lens' DataBarOptions Color
topCfPriority :: Int
instance Data.Default.Internal.Default Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.Condition
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.OperatorExpression
instance GHC.Classes.Eq Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.Condition
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.OperatorExpression
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.Condition
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.OperatorExpression
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.Condition
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.OperatorExpression
instance GHC.Classes.Ord Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.Condition
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.MinCfValue
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.OperatorExpression
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.ConditionalFormatting.CfvType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.ConditionalFormatting.IconSetType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.ConditionalFormatting.Inclusion
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.ConditionalFormatting.NStdDev
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.ConditionalFormatting.TimePeriod
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.CfRule
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.CfValue
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.DataBarOptions
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.IconSetOptions
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.MaxCfValue
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ConditionalFormatting.MinCfValue

module Codec.Xlsx.Types.Internal.CfPair

-- | Internal helper type for parsing "conditionalFormatting recods TODO:
--   pivot, extList Implementing those will need this implementation to be
--   changed
--   
--   See 18.3.1.18 "conditionalFormatting (Conditional Formatting)" (p.
--   1610)
newtype CfPair
CfPair :: (SqRef, ConditionalFormatting) -> CfPair
[unCfPair] :: CfPair -> (SqRef, ConditionalFormatting)
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.CfPair.CfPair
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.CfPair.CfPair
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Internal.CfPair.CfPair
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.CfPair.CfPair
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.CfPair.CfPair
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.CfPair.CfPair

module Codec.Xlsx.Types.Comment

-- | User comment for a cell
--   
--   TODO: the following child elements: guid, shapeId, commentPr
--   
--   Section 18.7.3 "comment (Comment)" (p. 1749)
data Comment
Comment :: XlsxText -> Text -> Bool -> Comment

-- | cell comment text, maybe formatted Section 18.7.7 "text (Comment
--   Text)" (p. 1754)
[_commentText] :: Comment -> XlsxText

-- | comment author
[_commentAuthor] :: Comment -> Text
[_commentVisible] :: Comment -> Bool
instance GHC.Classes.Eq Codec.Xlsx.Types.Comment.Comment
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Comment.Comment
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Comment.Comment
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Comment.Comment

module Codec.Xlsx.Types.Internal.CommentTable
newtype CommentTable
CommentTable :: Map CellRef Comment -> CommentTable
[_commentsTable] :: CommentTable -> Map CellRef Comment
tshow :: Show a => a -> Text
fromList :: [(CellRef, Comment)] -> CommentTable
toList :: CommentTable -> [(CellRef, Comment)]
lookupComment :: CellRef -> CommentTable -> Maybe Comment
parseComment :: Map Int Text -> Cursor -> [(CellRef, Comment)]

-- | helper to render comment baloons vml file, currently uses fixed shape
renderShapes :: CommentTable -> ByteString
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.CommentTable.CommentTable
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.CommentTable.CommentTable
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.CommentTable.CommentTable
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.CommentTable.CommentTable
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Internal.CommentTable.CommentTable
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.CommentTable.CommentTable

module Codec.Xlsx.Parser.Internal.PivotTable
parsePivotTable :: (CacheId -> Maybe (Text, Range, [CacheField])) -> ByteString -> Maybe PivotTable
parseCache :: ByteString -> Maybe (Text, CellRef, [CacheField], Maybe RefId)
fillCacheFieldsFromRecords :: [CacheField] -> [CacheRecord] -> [CacheField]

module Codec.Xlsx.Types.Cell

-- | Formula for the cell.
--   
--   TODO: array, dataTable formula types support
--   
--   See 18.3.1.40 "f (Formula)" (p. 1636)
data CellFormula
CellFormula :: FormulaExpression -> Bool -> Bool -> CellFormula
[_cellfExpression] :: CellFormula -> FormulaExpression

-- | Specifies that this formula assigns a value to a name.
[_cellfAssignsToName] :: CellFormula -> Bool

-- | Indicates that this formula needs to be recalculated the next time
--   calculation is performed. [Example: This is always set on
--   volatile functions, like =RAND(), and circular references. end
--   example]
[_cellfCalculate] :: CellFormula -> Bool

-- | formula type with type-specific options
data FormulaExpression
NormalFormula :: Formula -> FormulaExpression
SharedFormula :: SharedFormulaIndex -> FormulaExpression
simpleCellFormula :: Text -> CellFormula
sharedFormulaByIndex :: SharedFormulaIndex -> CellFormula

-- | index of shared formula in worksheet's wsSharedFormulas
--   property
newtype SharedFormulaIndex
SharedFormulaIndex :: Int -> SharedFormulaIndex
data SharedFormulaOptions
SharedFormulaOptions :: CellRef -> Formula -> SharedFormulaOptions
[_sfoRef] :: SharedFormulaOptions -> CellRef
[_sfoExpression] :: SharedFormulaOptions -> Formula
formulaDataFromCursor :: Cursor -> [(CellFormula, Maybe (SharedFormulaIndex, SharedFormulaOptions))]
applySharedFormulaOpts :: SharedFormulaOptions -> Element -> Element

-- | Currently cell details include cell values, style ids and cell
--   formulas (inline strings from <is> subelements are
--   ignored)
data Cell
Cell :: Maybe Int -> Maybe CellValue -> Maybe Comment -> Maybe CellFormula -> Cell
[_cellStyle] :: Cell -> Maybe Int
[_cellValue] :: Cell -> Maybe CellValue
[_cellComment] :: Cell -> Maybe Comment
[_cellFormula] :: Cell -> Maybe CellFormula
cellStyle :: Lens' Cell (Maybe Int)
cellValue :: Lens' Cell (Maybe CellValue)
cellComment :: Lens' Cell (Maybe Comment)
cellFormula :: Lens' Cell (Maybe CellFormula)

-- | Map containing cell values which are indexed by row and column if you
--   need to use more traditional (x,y) indexing please you could use
--   corresponding accessors from 'Lens'
type CellMap = Map (RowIndex, ColumnIndex) Cell
instance Data.Default.Internal.Default Codec.Xlsx.Types.Cell.Cell
instance GHC.Classes.Eq Codec.Xlsx.Types.Cell.Cell
instance GHC.Classes.Eq Codec.Xlsx.Types.Cell.CellFormula
instance GHC.Classes.Eq Codec.Xlsx.Types.Cell.FormulaExpression
instance GHC.Classes.Eq Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance GHC.Classes.Eq Codec.Xlsx.Types.Cell.SharedFormulaOptions
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Cell.Cell
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Cell.CellFormula
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Cell.FormulaExpression
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Cell.SharedFormulaOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Cell.Cell
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Cell.CellFormula
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Cell.FormulaExpression
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Cell.SharedFormulaOptions
instance GHC.Classes.Ord Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Cell.Cell
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Cell.CellFormula
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Cell.FormulaExpression
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Cell.SharedFormulaOptions
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.Cell.SharedFormulaIndex
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Cell.CellFormula

module Codec.Xlsx.Types.Internal.FormulaData
data FormulaData
FormulaData :: CellFormula -> Maybe (SharedFormulaIndex, SharedFormulaOptions) -> FormulaData
[frmdFormula] :: FormulaData -> CellFormula
[frmdShared] :: FormulaData -> Maybe (SharedFormulaIndex, SharedFormulaOptions)
defaultFormulaType :: Text
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.Internal.FormulaData.FormulaData
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.FormulaData.FormulaData

-- | Parse .xlsx sheets in constant memory.
--   
--   All actions on an xlsx file run inside the XlsxM monad, and
--   must be run with runXlsxM. XlsxM is not a monad transformer, a
--   design inherited from the "zip" package's ZipArchive monad.
--   
--   Inside the XlsxM monad, you can stream SheetItems (a row) from
--   a particular sheet, using readSheetByIndex, which is
--   callback-based and tied to IO.
module Codec.Xlsx.Parser.Stream
data XlsxM a

-- | Run a series of actions on an Xlsx file
runXlsxM :: MonadIO m => FilePath -> XlsxM a -> m a

-- | Information about the workbook contained in xl/workbook.xml (currently
--   a subset)
data WorkbookInfo
WorkbookInfo :: [SheetInfo] -> WorkbookInfo
[_wiSheets] :: WorkbookInfo -> [SheetInfo]

-- | Represents sheets from the workbook.xml file. E.g. <sheet
--   name=Data sheetId="1" state="hidden" r:id="rId2" /
data SheetInfo
SheetInfo :: Text -> RefId -> Int -> SheetInfo
[sheetInfoName] :: SheetInfo -> Text

-- | The r:id attribute value.
[sheetInfoRelId] :: SheetInfo -> RefId

-- | The sheetId attribute value
[sheetInfoSheetId] :: SheetInfo -> Int
wiSheets :: Iso' WorkbookInfo [SheetInfo]
getOrParseSharedStringss :: XlsxM (Vector Text)

-- | Returns information about the workbook, found in xl/workbook.xml. The
--   result is cached so the XML will only be decompressed and parsed once
--   inside a larger XlsxM action.
getWorkbookInfo :: XlsxM WorkbookInfo
type CellRow = IntMap Cell
readSheet :: SheetIndex -> (SheetItem -> IO ()) -> XlsxM Bool

-- | Returns number of rows in the given sheet (identified by the sheet's
--   ID, AKA the sheetId attribute, AKA sheetInfoSheetId), or
--   Nothing if the sheet does not exist. Does not perform a full parse of
--   the XML into SheetItems, so it should be more efficient than
--   counting via readSheetByIndex.
countRowsInSheet :: SheetIndex -> XlsxM (Maybe Int)

-- | this will collect the sheetitems in a list. useful for cases were
--   memory is of no concern but a sheetitem type in a list is needed.
collectItems :: SheetIndex -> XlsxM [SheetItem]

-- | datatype representing a sheet index, looking it up by name can be done
--   with makeIndexFromName, which is the preferred approach.
--   although makeIndex is available in case it's already known.
data SheetIndex

-- | This does *no* checking if the index exists or not. you could have
--   index out of bounds issues because of this.
makeIndex :: Int -> SheetIndex

-- | Look up the index of a case insensitive sheet name
makeIndexFromName :: Text -> XlsxM (Maybe SheetIndex)

-- | Sheet item
--   
--   The current sheet at a time, every sheet is constructed of these
--   items.
data SheetItem
MkSheetItem :: Int -> ~Row -> SheetItem

-- | The sheet number
[_si_sheet_index] :: SheetItem -> Int
[_si_row] :: SheetItem -> ~Row
si_sheet_index :: Lens' SheetItem Int
si_row :: Lens' SheetItem Row
data Row
MkRow :: RowIndex -> ~CellRow -> Row

-- | Row number
[_ri_row_index] :: Row -> RowIndex

-- | Row itself
[_ri_cell_row] :: Row -> ~CellRow
ri_row_index :: Lens' Row RowIndex
ri_cell_row :: Lens' Row CellRow
data SheetErrors

-- | Error while parsing coordinates
ParseCoordinateError :: CoordinateErrors -> SheetErrors

-- | Error while parsing types
ParseTypeError :: TypeError -> SheetErrors

-- | Error while parsing cells
ParseCellError :: AddCellErrors -> SheetErrors
ParseStyleErrors :: StyleError -> SheetErrors
HexpatParseError :: XMLParseError -> SheetErrors
data AddCellErrors

-- | Could not read current cell value
ReadError :: Text -> String -> AddCellErrors

-- | Could not find string by index in shared string table
SharedStringsNotFound :: Int -> Vector Text -> AddCellErrors
data CoordinateErrors

-- | If the coordinate was not specified in "r" attribute
CoordinateNotFound :: SheetValues -> CoordinateErrors

-- | If the value is empty for some reason
NoListElement :: SheetValue -> SheetValues -> CoordinateErrors

-- | If the value has something besides ContentText inside
NoTextContent :: Content -> SheetValues -> CoordinateErrors

-- | If malformed coordinate text was passed
DecodeFailure :: Text -> SheetValues -> CoordinateErrors
data TypeError
TypeNotFound :: SheetValues -> TypeError
TypeNoListElement :: SheetValue -> SheetValues -> TypeError
UnkownType :: Text -> SheetValues -> TypeError
TypeNoTextContent :: Content -> SheetValues -> TypeError
data WorkbookError
LookupError :: [(ByteString, Text)] -> ByteString -> WorkbookError
[lookup_attrs] :: WorkbookError -> [(ByteString, Text)]
[lookup_field] :: WorkbookError -> ByteString
ParseDecimalError :: Text -> String -> WorkbookError
instance GHC.Internal.Base.Applicative Codec.Xlsx.Parser.Stream.XlsxM
instance GHC.Classes.Eq Codec.Xlsx.Parser.Stream.SheetInfo
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Stream.CoordinateErrors
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Stream.SheetErrors
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Stream.TypeError
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.Stream.WorkbookError
instance GHC.Internal.Base.Functor Codec.Xlsx.Parser.Stream.XlsxM
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Stream.ExcelValueType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Stream.Row
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Stream.SharedStringsState
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Stream.SheetItem
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.Stream.SheetState
instance Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.Base.MonadBase GHC.Types.IO Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.Catch.MonadCatch Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.IO.Class.MonadIO Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.Catch.MonadMask Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.Reader.Class.MonadReader Codec.Xlsx.Parser.Stream.XlsxMState Codec.Xlsx.Parser.Stream.XlsxM
instance Control.Monad.Catch.MonadThrow Codec.Xlsx.Parser.Stream.XlsxM
instance GHC.Internal.Base.Monad Codec.Xlsx.Parser.Stream.XlsxM
instance Control.DeepSeq.NFData Codec.Xlsx.Parser.Stream.Row
instance Control.DeepSeq.NFData Codec.Xlsx.Parser.Stream.SheetIndex
instance Control.DeepSeq.NFData Codec.Xlsx.Parser.Stream.SheetItem
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.AddCellErrors
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.CoordinateErrors
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.ExcelValueType
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.Row
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.SharedStringsState
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.SheetErrors
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.SheetInfo
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.SheetItem
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.SheetState
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.StyleError
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.TypeError
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.WorkbookError
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.Stream.WorkbookInfo

module Codec.Xlsx.Types.AutoFilter

-- | The filterColumn collection identifies a particular column in the
--   AutoFilter range and specifies filter information that has been
--   applied to this column. If a column in the AutoFilter range has no
--   criteria specified, then there is no corresponding filterColumn
--   collection expressed for that column.
--   
--   See 18.3.2.7 "filterColumn (AutoFilter Column)" (p. 1717)
data FilterColumn
Filters :: FilterByBlank -> [FilterCriterion] -> FilterColumn
ColorFilter :: ColorFilterOptions -> FilterColumn
ACustomFilter :: CustomFilter -> FilterColumn
CustomFiltersOr :: CustomFilter -> CustomFilter -> FilterColumn
CustomFiltersAnd :: CustomFilter -> CustomFilter -> FilterColumn
DynamicFilter :: DynFilterOptions -> FilterColumn

-- | Specifies the icon set and particular icon within that set to filter
--   by. Icon is specified using zero-based index of an icon in an icon
--   set. Nothing means "no icon"
IconFilter :: Maybe Int -> IconSetType -> FilterColumn

-- | Specifies the bottom N (percent or number of items) to filter by
BottomNFilter :: EdgeFilterOptions -> FilterColumn

-- | Specifies the top N (percent or number of items) to filter by
TopNFilter :: EdgeFilterOptions -> FilterColumn
data FilterByBlank
FilterByBlank :: FilterByBlank
DontFilterByBlank :: FilterByBlank
data FilterCriterion
FilterValue :: Text -> FilterCriterion
FilterDateGroup :: DateGroup -> FilterCriterion

-- | Used to express a group of dates or times which are used in an
--   AutoFilter criteria
--   
--   Section 18.3.2.4 "dateGroupItem (Date Grouping)" (p. 1714)
data DateGroup
DateGroupByYear :: Int -> DateGroup
DateGroupByMonth :: Int -> Int -> DateGroup
DateGroupByDay :: Int -> Int -> Int -> DateGroup
DateGroupByHour :: Int -> Int -> Int -> Int -> DateGroup
DateGroupByMinute :: Int -> Int -> Int -> Int -> Int -> DateGroup
DateGroupBySecond :: Int -> Int -> Int -> Int -> Int -> Int -> DateGroup
data CustomFilter
CustomFilter :: CustomFilterOperator -> Text -> CustomFilter
[cfltOperator] :: CustomFilter -> CustomFilterOperator
[cfltValue] :: CustomFilter -> Text
data CustomFilterOperator

-- | Show results which are equal to criteria.
FltrEqual :: CustomFilterOperator

-- | Show results which are greater than criteria.
FltrGreaterThan :: CustomFilterOperator

-- | Show results which are greater than or equal to criteria.
FltrGreaterThanOrEqual :: CustomFilterOperator

-- | Show results which are less than criteria.
FltrLessThan :: CustomFilterOperator

-- | Show results which are less than or equal to criteria.
FltrLessThanOrEqual :: CustomFilterOperator

-- | Show results which are not equal to criteria.
FltrNotEqual :: CustomFilterOperator
data EdgeFilterOptions
EdgeFilterOptions :: Bool -> Double -> Maybe Double -> EdgeFilterOptions

-- | Flag indicating whether or not to filter by percent value of the
--   column. A false value filters by number of items.
[_efoUsePercents] :: EdgeFilterOptions -> Bool

-- | Top or bottom value to use as the filter criteria. Example: "Filter by
--   Top 10 Percent" or "Filter by Top 5 Items"
[_efoVal] :: EdgeFilterOptions -> Double

-- | The actual cell value in the range which is used to perform the
--   comparison for this filter.
[_efoFilterVal] :: EdgeFilterOptions -> Maybe Double

-- | Specifies the color to filter by and whether to use the cell's fill or
--   font color in the filter criteria. If the cell's font or fill color
--   does not match the color specified in the criteria, the rows
--   corresponding to those cells are hidden from view.
--   
--   See 18.3.2.1 "colorFilter (Color Filter Criteria)" (p. 1712)
data ColorFilterOptions
ColorFilterOptions :: Bool -> Maybe Int -> ColorFilterOptions

-- | Flag indicating whether or not to filter by the cell's fill color.
--   True indicates to filter by cell fill. False indicates
--   to filter by the cell's font color.
--   
--   For rich text in cells, if the color specified appears in the cell at
--   all, it shall be included in the filter.
[_cfoCellColor] :: ColorFilterOptions -> Bool

-- | Id of differential format record (dxf) in the Styles Part (see
--   _styleSheetDxfs) which expresses the color value to filter
--   by.
[_cfoDxfId] :: ColorFilterOptions -> Maybe Int

-- | Specifies dynamic filter criteria. These criteria are considered
--   dynamic because they can change, either with the data itself (e.g.,
--   "above average") or with the current system date (e.g., show values
--   for "today"). For any cells whose values do not meet the specified
--   criteria, the corresponding rows shall be hidden from view when the
--   filter is applied.
--   
--   _dfoMaxVal shall be required for DynFilterTday,
--   DynFilterYesterday, DynFilterTomorrow,
--   DynFilterNextWeek, DynFilterThisWeek,
--   DynFilterLastWeek, DynFilterNextMonth,
--   DynFilterThisMonth, DynFilterLastMonth,
--   DynFilterNextQuarter, DynFilterThisQuarter,
--   DynFilterLastQuarter, DynFilterNextYear,
--   DynFilterThisYear, DynFilterLastYear, and
--   'DynFilterYearToDate.
--   
--   The above criteria are based on a value range; that is, if today's
--   date is September 22nd, then the range for thisWeek is the values
--   greater than or equal to September 17 and less than September 24. In
--   the thisWeek range, the lower value is expressed _dfoval. The
--   higher value is expressed using _dfoMmaxVal.
--   
--   These dynamic filters shall not require '_dfoVal or _dfoMaxVal:
--   DynFilterQ1, DynFilterQ2, DynFilterQ3,
--   DynFilterQ4, DynFilterM1, DynFilterM2,
--   DynFilterM3, DynFilterM4, DynFilterM5,
--   DynFilterM6, DynFilterM7, DynFilterM8,
--   DynFilterM9, DynFilterM10, DynFilterM11 and
--   DynFilterM12.
--   
--   The above criteria shall not specify the range using valIso and
--   maxValIso because Q1 always starts from M1 to M3, and M1 is always
--   January.
--   
--   These types of dynamic filters shall use valIso and shall not use
--   _dfoMaxVal: DynFilterAboveAverage and
--   DynFilterBelowAverage
--   
--   Note: Specification lists valIso and maxIso
--   to store datetime values but it appears that Excel doesn't use them
--   and stored them as numeric values (as it does for datetimes in cell
--   values)
--   
--   See 18.3.2.5 "dynamicFilter (Dynamic Filter)" (p. 1715)
data DynFilterOptions
DynFilterOptions :: DynFilterType -> Maybe Double -> Maybe Double -> DynFilterOptions
[_dfoType] :: DynFilterOptions -> DynFilterType

-- | A minimum numeric value for dynamic filter.
[_dfoVal] :: DynFilterOptions -> Maybe Double

-- | A maximum value for dynamic filter.
[_dfoMaxVal] :: DynFilterOptions -> Maybe Double

-- | Specifies concrete type of dynamic filter used
--   
--   See 18.18.26 "ST_DynamicFilterType (Dynamic Filter)" (p. 2452)
data DynFilterType

-- | Shows values that are above average.
DynFilterAboveAverage :: DynFilterType

-- | Shows values that are below average.
DynFilterBelowAverage :: DynFilterType

-- | Shows last month's dates.
DynFilterLastMonth :: DynFilterType

-- | Shows last calendar quarter's dates.
DynFilterLastQuarter :: DynFilterType

-- | Shows last week's dates, using Sunday as the first weekday.
DynFilterLastWeek :: DynFilterType

-- | Shows last year's dates.
DynFilterLastYear :: DynFilterType

-- | Shows the dates that are in January, regardless of year.
DynFilterM1 :: DynFilterType

-- | Shows the dates that are in October, regardless of year.
DynFilterM10 :: DynFilterType

-- | Shows the dates that are in November, regardless of year.
DynFilterM11 :: DynFilterType

-- | Shows the dates that are in December, regardless of year.
DynFilterM12 :: DynFilterType

-- | Shows the dates that are in February, regardless of year.
DynFilterM2 :: DynFilterType

-- | Shows the dates that are in March, regardless of year.
DynFilterM3 :: DynFilterType

-- | Shows the dates that are in April, regardless of year.
DynFilterM4 :: DynFilterType

-- | Shows the dates that are in May, regardless of year.
DynFilterM5 :: DynFilterType

-- | Shows the dates that are in June, regardless of year.
DynFilterM6 :: DynFilterType

-- | Shows the dates that are in July, regardless of year.
DynFilterM7 :: DynFilterType

-- | Shows the dates that are in August, regardless of year.
DynFilterM8 :: DynFilterType

-- | Shows the dates that are in September, regardless of year.
DynFilterM9 :: DynFilterType

-- | Shows next month's dates.
DynFilterNextMonth :: DynFilterType

-- | Shows next calendar quarter's dates.
DynFilterNextQuarter :: DynFilterType

-- | Shows next week's dates, using Sunday as the first weekday.
DynFilterNextWeek :: DynFilterType

-- | Shows next year's dates.
DynFilterNextYear :: DynFilterType

-- | Common filter type not available.
DynFilterNull :: DynFilterType

-- | Shows the dates that are in the 1st calendar quarter, regardless of
--   year.
DynFilterQ1 :: DynFilterType

-- | Shows the dates that are in the 2nd calendar quarter, regardless of
--   year.
DynFilterQ2 :: DynFilterType

-- | Shows the dates that are in the 3rd calendar quarter, regardless of
--   year.
DynFilterQ3 :: DynFilterType

-- | Shows the dates that are in the 4th calendar quarter, regardless of
--   year.
DynFilterQ4 :: DynFilterType

-- | Shows this month's dates.
DynFilterThisMonth :: DynFilterType

-- | Shows this calendar quarter's dates.
DynFilterThisQuarter :: DynFilterType

-- | Shows this week's dates, using Sunday as the first weekday.
DynFilterThisWeek :: DynFilterType

-- | Shows this year's dates.
DynFilterThisYear :: DynFilterType

-- | Shows today's dates.
DynFilterToday :: DynFilterType

-- | Shows tomorrow's dates.
DynFilterTomorrow :: DynFilterType

-- | Shows the dates between the beginning of the year and today,
--   inclusive.
DynFilterYearToDate :: DynFilterType

-- | Shows yesterday's dates.
DynFilterYesterday :: DynFilterType

-- | AutoFilter temporarily hides rows based on a filter criteria, which is
--   applied column by column to a table of datain the worksheet.
--   
--   TODO: sortState, extList
--   
--   See 18.3.1.2 "autoFilter (AutoFilter Settings)" (p. 1596)
data AutoFilter
AutoFilter :: Maybe CellRef -> Map Int FilterColumn -> AutoFilter
[_afRef] :: AutoFilter -> Maybe CellRef
[_afFilterColumns] :: AutoFilter -> Map Int FilterColumn
afFilterColumns :: Lens' AutoFilter (Map Int FilterColumn)
afRef :: Lens' AutoFilter (Maybe CellRef)
fltColFromNode :: Node -> [FilterColumn]
filterCriterionFromNode :: Node -> [FilterCriterion]
fltColToElement :: FilterColumn -> Element
edgeFilter :: Bool -> EdgeFilterOptions -> Element
filterCriterionToElement :: FilterCriterion -> Element
instance Data.Default.Internal.Default Codec.Xlsx.Types.AutoFilter.AutoFilter
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.AutoFilter
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.ColorFilterOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.CustomFilter
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.DateGroup
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.DynFilterOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.DynFilterType
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.EdgeFilterOptions
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.FilterColumn
instance GHC.Classes.Eq Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.AutoFilter.DynFilterType
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.AutoFilter.DynFilterType
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.AutoFilter.AutoFilter
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.AutoFilter.AutoFilter
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.AutoFilter.CustomFilter
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode (GHC.Types.Int, Codec.Xlsx.Types.AutoFilter.FilterColumn)
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.AutoFilter
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.ColorFilterOptions
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.CustomFilter
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.DateGroup
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.DynFilterOptions
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.DynFilterType
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.EdgeFilterOptions
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.FilterColumn
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.AutoFilter
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.ColorFilterOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.CustomFilter
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.DateGroup
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.DynFilterOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.DynFilterType
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.EdgeFilterOptions
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.FilterColumn
instance Control.DeepSeq.NFData Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.AutoFilter
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.ColorFilterOptions
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.CustomFilter
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.DateGroup
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.DynFilterOptions
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.DynFilterType
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.EdgeFilterOptions
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.FilterColumn
instance GHC.Internal.Show.Show Codec.Xlsx.Types.AutoFilter.FilterCriterion
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.AutoFilter.CustomFilterOperator
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.AutoFilter.DynFilterType
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.AutoFilter.FilterByBlank
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.AutoFilter.AutoFilter
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.AutoFilter.ColorFilterOptions
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.AutoFilter.CustomFilter
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.AutoFilter.DynFilterOptions

module Codec.Xlsx.Types.Table

-- | Tables are ranges of data in the worksheet that have special behavior
--   applied which allow users to better sort, analyze, format, manage,
--   add, and delete data. Tables and table columns can also be referenced
--   through formulas by the spreadsheet application using friendly names,
--   making formula calculations that use tables much easier to understand
--   and maintain. Tables provide a natural way for working with large sets
--   of tabular data.
--   
--   NOTE: as headerRowCount property isn't yet supported it's
--   supposed that it's library user liability to guarantee that the 1st
--   row of tblRef range contains cells with names specified in
--   tblColumns
--   
--   Section 18.5 "Tables" (p. 1728) Section 18.5.1 "Tables" (p. 1729)
--   Section 18.5.1.2 "table (Table)" (p. 1730)
data Table
Table :: Text -> Maybe Text -> CellRef -> [TableColumn] -> Maybe AutoFilter -> Table

-- | A string representing the name of the table. This is the name that
--   shall be used in formula references, and displayed in the UI to the
--   spreadsheet user. This name shall not have any spaces in it, and it
--   shall be unique amongst all other displayNames and definedNames in the
--   workbook. The character lengths and restrictions are the same as for
--   definedNames .
[tblDisplayName] :: Table -> Text

-- | A string representing the name of the table that is used to reference
--   the table programmatically through the spreadsheet applications object
--   model. This string shall be unique per table per sheet. It has the
--   same length and character restrictions as for displayName. By default
--   this should be the same as the table's tblDisplayName . This
--   name should also be kept in synch with the displayName when the
--   displayName is updated in the UI by the spreadsheet user.
[tblName] :: Table -> Maybe Text

-- | The range on the relevant sheet that the table occupies expressed
--   using A1 style referencing.
[tblRef] :: Table -> CellRef

-- | columns of this table, specification requires any table to include at
--   least 1 column
[tblColumns] :: Table -> [TableColumn]
[tblAutoFilter] :: Table -> Maybe AutoFilter

-- | Single table column
--   
--   TODO: styling information
--   
--   Section 18.5.1.3 "tableColumn (Table Column)" (p. 1735)
data TableColumn
TableColumn :: Text -> TableColumn

-- | A string representing the unique caption of the table column. This is
--   what shall be displayed in the header row in the UI, and is referenced
--   through functions. This name shall be unique per table.
[tblcName] :: TableColumn -> Text
tableToDocument :: Table -> Int -> Document
tableToElement :: Name -> Table -> Int -> Element
instance GHC.Classes.Eq Codec.Xlsx.Types.Table.Table
instance GHC.Classes.Eq Codec.Xlsx.Types.Table.TableColumn
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Table.Table
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Table.Table
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Table.TableColumn
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Table.Table
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Table.TableColumn
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Table.Table
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Table.TableColumn

module Codec.Xlsx.Types

-- | Structured representation of Xlsx file (currently a subset of its
--   contents)
data Xlsx
Xlsx :: [(Text, Worksheet)] -> Styles -> DefinedNames -> Map Text Variant -> DateBase -> Xlsx
[_xlSheets] :: Xlsx -> [(Text, Worksheet)]
[_xlStyles] :: Xlsx -> Styles
[_xlDefinedNames] :: Xlsx -> DefinedNames
[_xlCustomProperties] :: Xlsx -> Map Text Variant

-- | date base to use when converting serial value (i.e. 'CellDouble d')
--   into date-time. Default value is DateBase1900
--   
--   See also 18.17.4.1 "Date Conversion for Serial Date-Times" (p. 2067)
[_xlDateBase] :: Xlsx -> DateBase

-- | Raw worksheet styles, for structured implementation see
--   StyleSheet and functions in Codec.Xlsx.Types.StyleSheet
newtype Styles
Styles :: ByteString -> Styles
[unStyles] :: Styles -> ByteString

-- | Defined names
--   
--   Each defined name consists of a name, an optional local sheet ID, and
--   a value.
--   
--   This element defines the collection of defined names for this
--   workbook. Defined names are descriptive names to represent cells,
--   ranges of cells, formulas, or constant values. Defined names can be
--   used to represent a range on any worksheet.
--   
--   Excel also defines a number of reserved names with a special
--   interpretation:
--   
--   
--   
- _xlnm.Print_Area specifies the workbook's print area.
--   Example value: SheetName!$A:$A,SheetName!$1:$4
--   
- _xlnm.Print_Titles specifies the row(s) or column(s) to
--   repeat at the top of each printed page.
--   
- _xlnm.Sheet_Title:refers to a sheet title.
--   
--   
--   and others. See Section 18.2.6, "definedNames (Defined Names)" (p.
--   1728) of the spec (second edition).
--   
--   NOTE: Right now this is only a minimal implementation of defined
--   names.
newtype DefinedNames
DefinedNames :: [(Text, Maybe Text, Text)] -> DefinedNames

-- | Column range (from cwMin to cwMax) properties
data ColumnsProperties
ColumnsProperties :: Int -> Int -> Maybe Double -> Maybe Int -> Bool -> Bool -> Bool -> ColumnsProperties

-- | First column affected by this ColumnWidth record.
[cpMin] :: ColumnsProperties -> Int

-- | Last column affected by this ColumnWidth record.
[cpMax] :: ColumnsProperties -> Int

-- | Column width measured as the number of characters of the maximum digit
--   width of the numbers 0, 1, 2, ..., 9 as rendered in the normal style's
--   font.
--   
--   See longer description in Section 18.3.1.13 "col (Column Width &
--   Formatting)" (p. 1605)
[cpWidth] :: ColumnsProperties -> Maybe Double

-- | Default style for the affected column(s). Affects cells not yet
--   allocated in the column(s). In other words, this style applies to new
--   columns.
[cpStyle] :: ColumnsProperties -> Maybe Int

-- | Flag indicating if the affected column(s) are hidden on this
--   worksheet.
[cpHidden] :: ColumnsProperties -> Bool

-- | Flag indicating if the outlining of the affected column(s) is in the
--   collapsed state.
[cpCollapsed] :: ColumnsProperties -> Bool

-- | Flag indicating if the specified column(s) is set to 'best fit'.
[cpBestFit] :: ColumnsProperties -> Bool
data PageSetup
PageSetup :: Maybe Bool -> Maybe CellComments -> Maybe Int -> Maybe Bool -> Maybe PrintErrors -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Text -> Maybe Orientation -> Maybe PageOrder -> Maybe Text -> Maybe PaperSize -> Maybe Text -> Maybe Int -> Maybe Bool -> Maybe Bool -> Maybe Int -> PageSetup

-- | Print black and white.
[_pageSetupBlackAndWhite] :: PageSetup -> Maybe Bool

-- | This attribute specifies how to print cell comments.
[_pageSetupCellComments] :: PageSetup -> Maybe CellComments

-- | Number of copies to print.
[_pageSetupCopies] :: PageSetup -> Maybe Int

-- | Print without graphics.
[_pageSetupDraft] :: PageSetup -> Maybe Bool

-- | Specifies how to print cell values for cells with errors.
[_pageSetupErrors] :: PageSetup -> Maybe PrintErrors

-- | Page number for first printed page. If no value is specified, then
--   automatic is assumed.
[_pageSetupFirstPageNumber] :: PageSetup -> Maybe Int

-- | Number of vertical pages to fit on.
[_pageSetupFitToHeight] :: PageSetup -> Maybe Int

-- | Number of horizontal pages to fit on.
[_pageSetupFitToWidth] :: PageSetup -> Maybe Int

-- | Horizontal print resolution of the device.
[_pageSetupHorizontalDpi] :: PageSetup -> Maybe Int

-- | Relationship Id of the devMode printer settings part.
--   
--   (Explicit reference to a parent XML element.)
--   
--   See 22.8.2.1 "ST_RelationshipId (Explicit Relationship ID)" (p. 3784)
[_pageSetupId] :: PageSetup -> Maybe Text

-- | Orientation of the page.
[_pageSetupOrientation] :: PageSetup -> Maybe Orientation

-- | Order of printed pages
[_pageSetupPageOrder] :: PageSetup -> Maybe PageOrder

-- | Height of custom paper as a number followed by a unit identifier.
--   
--   When paperHeight and paperWidth are specified, paperSize shall be
--   ignored. Examples: "297mm", "11in".
--   
--   See 22.9.2.12 "ST_PositiveUniversalMeasure (Positive Universal
--   Measurement)" (p. 3792)
[_pageSetupPaperHeight] :: PageSetup -> Maybe Text

-- | Pager size
--   
--   When paperHeight, paperWidth, and paperUnits are specified, paperSize
--   should be ignored.
[_pageSetupPaperSize] :: PageSetup -> Maybe PaperSize

-- | Width of custom paper as a number followed by a unit identifier
--   
--   Examples: 21cm, 8.5in
--   
--   When paperHeight and paperWidth are specified, paperSize shall be
--   ignored.
[_pageSetupPaperWidth] :: PageSetup -> Maybe Text

-- | Print scaling.
--   
--   This attribute is restricted to values ranging from 10 to 400. This
--   setting is overridden when fitToWidth and/or fitToHeight are in use.
[_pageSetupScale] :: PageSetup -> Maybe Int

-- | Use _pageSetupFirstPageNumber value for first page number, and
--   do not auto number the pages.
[_pageSetupUseFirstPageNumber] :: PageSetup -> Maybe Bool

-- | Use the printer’s defaults settings for page setup values and don't
--   use the default values specified in the schema.
--   
--   Example: If dpi is not present or specified in the XML, the
--   application must not assume 600dpi as specified in the schema as a
--   default and instead must let the printer specify the default dpi.
[_pageSetupUsePrinterDefaults] :: PageSetup -> Maybe Bool

-- | Vertical print resolution of the device.
[_pageSetupVerticalDpi] :: PageSetup -> Maybe Int

-- | Xlsx worksheet
data Worksheet
Worksheet :: [ColumnsProperties] -> Map RowIndex RowProperties -> CellMap -> Maybe Drawing -> [Range] -> Maybe [SheetView] -> Maybe PageSetup -> Map SqRef ConditionalFormatting -> Map SqRef DataValidation -> [PivotTable] -> Maybe AutoFilter -> [Table] -> Maybe SheetProtection -> Map SharedFormulaIndex SharedFormulaOptions -> SheetState -> Worksheet

-- | column widths
[_wsColumnsProperties] :: Worksheet -> [ColumnsProperties]

-- | custom row properties (height, style) map
[_wsRowPropertiesMap] :: Worksheet -> Map RowIndex RowProperties

-- | data mapped by (row, column) pairs
[_wsCells] :: Worksheet -> CellMap

-- | SpreadsheetML Drawing
[_wsDrawing] :: Worksheet -> Maybe Drawing

-- | list of cell merges
[_wsMerges] :: Worksheet -> [Range]
[_wsSheetViews] :: Worksheet -> Maybe [SheetView]
[_wsPageSetup] :: Worksheet -> Maybe PageSetup
[_wsConditionalFormattings] :: Worksheet -> Map SqRef ConditionalFormatting
[_wsDataValidations] :: Worksheet -> Map SqRef DataValidation
[_wsPivotTables] :: Worksheet -> [PivotTable]
[_wsAutoFilter] :: Worksheet -> Maybe AutoFilter
[_wsTables] :: Worksheet -> [Table]
[_wsProtection] :: Worksheet -> Maybe SheetProtection
[_wsSharedFormulas] :: Worksheet -> Map SharedFormulaIndex SharedFormulaOptions
[_wsState] :: Worksheet -> SheetState

-- | Sheet visibility state cf. Ecma Office Open XML Part 1: 18.18.68
--   ST_SheetState (Sheet Visibility Types) * "visible" Indicates the sheet
--   is visible (default) * "hidden" Indicates the workbook window is
--   hidden, but can be shown by the user via the user interface. *
--   "veryHidden" Indicates the sheet is hidden and cannot be shown in the
--   user interface (UI). This state is only available programmatically.
data SheetState

-- | state="visible"
Visible :: SheetState

-- | state="hidden"
Hidden :: SheetState

-- | state="veryHidden"
VeryHidden :: SheetState

-- | Map containing cell values which are indexed by row and column if you
--   need to use more traditional (x,y) indexing please you could use
--   corresponding accessors from 'Lens'
type CellMap = Map (RowIndex, ColumnIndex) Cell

-- | Cell values include text, numbers and booleans, standard includes date
--   format also but actually dates are represented by numbers with a date
--   format assigned to a cell containing it Specification (ECMA-376): -
--   18.3.1.4 c (Cell) - 18.18.11 ST_CellType (Cell Type)
data CellValue
CellText :: Text -> CellValue
CellDouble :: Double -> CellValue
CellBool :: Bool -> CellValue
CellRich :: [RichTextRun] -> CellValue
CellError :: ErrorType -> CellValue

-- | Formula for the cell.
--   
--   TODO: array, dataTable formula types support
--   
--   See 18.3.1.40 "f (Formula)" (p. 1636)
data CellFormula
CellFormula :: FormulaExpression -> Bool -> Bool -> CellFormula
[_cellfExpression] :: CellFormula -> FormulaExpression

-- | Specifies that this formula assigns a value to a name.
[_cellfAssignsToName] :: CellFormula -> Bool

-- | Indicates that this formula needs to be recalculated the next time
--   calculation is performed. [Example: This is always set on
--   volatile functions, like =RAND(), and circular references. end
--   example]
[_cellfCalculate] :: CellFormula -> Bool

-- | formula type with type-specific options
data FormulaExpression
NormalFormula :: Formula -> FormulaExpression
SharedFormula :: SharedFormulaIndex -> FormulaExpression

-- | index of shared formula in worksheet's wsSharedFormulas
--   property
newtype SharedFormulaIndex
SharedFormulaIndex :: Int -> SharedFormulaIndex
data SharedFormulaOptions
SharedFormulaOptions :: CellRef -> Formula -> SharedFormulaOptions
[_sfoRef] :: SharedFormulaOptions -> CellRef
[_sfoExpression] :: SharedFormulaOptions -> Formula

-- | Currently cell details include cell values, style ids and cell
--   formulas (inline strings from <is> subelements are
--   ignored)
data Cell
Cell :: Maybe Int -> Maybe CellValue -> Maybe Comment -> Maybe CellFormula -> Cell
[_cellStyle] :: Cell -> Maybe Int
[_cellValue] :: Cell -> Maybe CellValue
[_cellComment] :: Cell -> Maybe Comment
[_cellFormula] :: Cell -> Maybe CellFormula

-- | Height of a row in points (1/72in)
data RowHeight

-- | Row height is set by the user
CustomHeight :: !Double -> RowHeight

-- | Row height is set automatically by the program
AutomaticHeight :: !Double -> RowHeight

-- | Properties of a row. See §18.3.1.73 "row (Row)" for more details
data RowProperties
RowProps :: Maybe RowHeight -> Maybe Int -> Bool -> RowProperties

-- | Row height in points
[rowHeight] :: RowProperties -> Maybe RowHeight

-- | Style to be applied to row
[rowStyle] :: RowProperties -> Maybe Int

-- | Whether row is visible or not
[rowHidden] :: RowProperties -> Bool
xlSheets :: Lens' Xlsx [(Text, Worksheet)]
xlStyles :: Lens' Xlsx Styles
xlDefinedNames :: Lens' Xlsx DefinedNames
xlCustomProperties :: Lens' Xlsx (Map Text Variant)
xlDateBase :: Lens' Xlsx DateBase
wsColumnsProperties :: Lens' Worksheet [ColumnsProperties]
wsRowPropertiesMap :: Lens' Worksheet (Map RowIndex RowProperties)
wsCells :: Lens' Worksheet CellMap
wsDrawing :: Lens' Worksheet (Maybe Drawing)
wsMerges :: Lens' Worksheet [Range]
wsSheetViews :: Lens' Worksheet (Maybe [SheetView])
wsPageSetup :: Lens' Worksheet (Maybe PageSetup)
wsConditionalFormattings :: Lens' Worksheet (Map SqRef ConditionalFormatting)
wsDataValidations :: Lens' Worksheet (Map SqRef DataValidation)
wsPivotTables :: Lens' Worksheet [PivotTable]
wsAutoFilter :: Lens' Worksheet (Maybe AutoFilter)
wsTables :: Lens' Worksheet [Table]
wsProtection :: Lens' Worksheet (Maybe SheetProtection)
wsSharedFormulas :: Lens' Worksheet (Map SharedFormulaIndex SharedFormulaOptions)
wsState :: Lens' Worksheet SheetState
cellValue :: Lens' Cell (Maybe CellValue)
cellStyle :: Lens' Cell (Maybe Int)
cellComment :: Lens' Cell (Maybe Comment)
cellFormula :: Lens' Cell (Maybe CellFormula)
rowHeightLens :: Lens' RowProperties (Maybe RowHeight)
_CustomHeight :: Prism' RowHeight Double
_AutomaticHeight :: Prism' RowHeight Double
emptyStyles :: Styles

-- | Render StyleSheet
--   
--   This is used to render a structured StyleSheet into a raw XML
--   Styles document. Actually replacing Styles with
--   StyleSheet would mean we would need to write a parser
--   for StyleSheet as well (and would moreover require that we
--   support the full style sheet specification, which is still quite a bit
--   of work).
renderStyleSheet :: StyleSheet -> Styles

-- | Parse StyleSheet
--   
--   This is used to parse raw Styles into structured
--   StyleSheet currently not all of the style sheet specification
--   is supported so parser (and the data model) is to be completed
parseStyleSheet :: Styles -> Either SomeException StyleSheet
simpleCellFormula :: Text -> CellFormula
sharedFormulaByIndex :: SharedFormulaIndex -> CellFormula

-- | The default value for this type.
def :: Default a => a

-- | converts cells mapped by (row, column) into rows which contain row
--   index and cells as pairs of column indices and cell values
toRows :: CellMap -> [(RowIndex, [(ColumnIndex, Cell)])]

-- | reverse to toRows
fromRows :: [(RowIndex, [(ColumnIndex, Cell)])] -> CellMap
instance Data.Default.Internal.Default Codec.Xlsx.Types.DefinedNames
instance Data.Default.Internal.Default Codec.Xlsx.Types.RowProperties
instance Data.Default.Internal.Default Codec.Xlsx.Types.SheetState
instance Data.Default.Internal.Default Codec.Xlsx.Types.Worksheet
instance Data.Default.Internal.Default Codec.Xlsx.Types.Xlsx
instance GHC.Classes.Eq Codec.Xlsx.Types.ColumnsProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.DefinedNames
instance GHC.Classes.Eq Codec.Xlsx.Types.RowHeight
instance GHC.Classes.Eq Codec.Xlsx.Types.RowProperties
instance GHC.Classes.Eq Codec.Xlsx.Types.SheetState
instance GHC.Classes.Eq Codec.Xlsx.Types.Styles
instance GHC.Classes.Eq Codec.Xlsx.Types.Worksheet
instance GHC.Classes.Eq Codec.Xlsx.Types.Xlsx
instance Codec.Xlsx.Parser.Internal.Fast.FromAttrBs Codec.Xlsx.Types.SheetState
instance Codec.Xlsx.Parser.Internal.FromAttrVal Codec.Xlsx.Types.SheetState
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.ColumnsProperties
instance Codec.Xlsx.Parser.Internal.Fast.FromXenoNode Codec.Xlsx.Types.ColumnsProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.ColumnsProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.DefinedNames
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.RowHeight
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.RowProperties
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.SheetState
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Styles
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Worksheet
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Xlsx
instance Control.DeepSeq.NFData Codec.Xlsx.Types.ColumnsProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.DefinedNames
instance Control.DeepSeq.NFData Codec.Xlsx.Types.RowHeight
instance Control.DeepSeq.NFData Codec.Xlsx.Types.RowProperties
instance Control.DeepSeq.NFData Codec.Xlsx.Types.SheetState
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Styles
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Worksheet
instance Control.DeepSeq.NFData Codec.Xlsx.Types.Xlsx
instance GHC.Classes.Ord Codec.Xlsx.Types.RowHeight
instance GHC.Classes.Ord Codec.Xlsx.Types.RowProperties
instance GHC.Internal.Read.Read Codec.Xlsx.Types.RowHeight
instance GHC.Internal.Read.Read Codec.Xlsx.Types.RowProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.ColumnsProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.DefinedNames
instance GHC.Internal.Show.Show Codec.Xlsx.Types.RowHeight
instance GHC.Internal.Show.Show Codec.Xlsx.Types.RowProperties
instance GHC.Internal.Show.Show Codec.Xlsx.Types.SheetState
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Styles
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Worksheet
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Xlsx
instance Codec.Xlsx.Writer.Internal.ToAttrVal Codec.Xlsx.Types.SheetState
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.ColumnsProperties

module Codec.Xlsx.Types.Internal.SharedStringTable

-- | Shared string table
--   
--   A workbook can contain thousands of cells containing string
--   (non-numeric) data. Furthermore this data is very likely to be
--   repeated across many rows or columns. The goal of implementing a
--   single string table that is shared across the workbook is to improve
--   performance in opening and saving the file by only reading and writing
--   the repetitive information once.
--   
--   Relevant parts of the EMCA standard (2nd edition, part 1,
--   https://ecma-international.org/publications-and-standards/standards/ecma-376/),
--   page numbers refer to the page in the PDF rather than the page number
--   as printed on the page):
--   
--   
--   
- Section 18.4, "Shared String Table" (p. 1712) in particular
--   subsection 18.4.9, "sst (Shared String Table)" (p. 1726)
--   
--   
--   TODO: The extLst child element is currently unsupported.
newtype SharedStringTable
SharedStringTable :: Vector XlsxText -> SharedStringTable
[sstTable] :: SharedStringTable -> Vector XlsxText

-- | Construct the SharedStringsTable from an existing document
sstConstruct :: [Worksheet] -> SharedStringTable
sstLookupText :: SharedStringTable -> Text -> Int
sstLookupRich :: SharedStringTable -> [RichTextRun] -> Int
sstItem :: SharedStringTable -> Int -> Maybe XlsxText
sstEmpty :: SharedStringTable
instance GHC.Classes.Eq Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance Codec.Xlsx.Parser.Internal.FromCursor Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance GHC.Internal.Generics.Generic Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance GHC.Classes.Ord Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance GHC.Internal.Show.Show Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance Codec.Xlsx.Writer.Internal.ToDocument Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable
instance Codec.Xlsx.Writer.Internal.ToElement Codec.Xlsx.Types.Internal.SharedStringTable.SharedStringTable

-- | This module provides a function for reading .xlsx files
module Codec.Xlsx.Parser

-- | Reads Xlsx from raw data (lazy bytestring)
toXlsx :: ByteString -> Xlsx

-- | Reads Xlsx from raw data (lazy bytestring), failing with
--   Left on parse error
toXlsxEither :: ByteString -> Parser Xlsx

-- | Reads Xlsx from raw data (lazy bytestring) using
--   xeno library using some "cheating":
--   
--   
--   
- not doing 100% xml validation
--   
- replacing only predefined entities and Unicode character
--   references (without checking codepoint validity)
--   
- almost not using XML namespaces
--   
toXlsxFast :: ByteString -> Xlsx

-- | Fast parsing with Left on parse error, see toXlsxFast
toXlsxEitherFast :: ByteString -> Parser Xlsx
data ParseError
InvalidZipArchive :: String -> ParseError
MissingFile :: FilePath -> ParseError
InvalidFile :: FilePath -> Text -> ParseError
InvalidRef :: FilePath -> RefId -> ParseError
InconsistentXlsx :: Text -> ParseError
type Parser = Either ParseError
instance GHC.Classes.Eq Codec.Xlsx.Parser.ParseError
instance GHC.Internal.Exception.Type.Exception Codec.Xlsx.Parser.ParseError
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.ParseError
instance GHC.Internal.Generics.Generic Codec.Xlsx.Parser.WorksheetFile
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.ParseError
instance GHC.Internal.Show.Show Codec.Xlsx.Parser.WorksheetFile

-- | lenses to access sheets, cells and values of Xlsx
module Codec.Xlsx.Lens

-- | lens giving access to a worksheet from Xlsx object by its name
ixSheet :: Text -> Traversal' Xlsx Worksheet

-- | At variant of ixSheet lens
--   
--   Note: if there is no such sheet in this workbook then new sheet
--   will be added as the last one to the sheet list
atSheet :: Text -> Lens' Xlsx (Maybe Worksheet)

-- | lens giving access to a cell in some worksheet by its position, by
--   default row+column index is used so this lens is a synonym of
--   ixCellRC
ixCell :: (RowIndex, ColumnIndex) -> Traversal' Worksheet Cell

-- | lens to access cell in a worksheet
ixCellRC :: (RowIndex, ColumnIndex) -> Traversal' Worksheet Cell

-- | lens to access cell in a worksheet using more traditional x+y
--   coordinates
ixCellXY :: (ColumnIndex, RowIndex) -> Traversal' Worksheet Cell

-- | accessor that can read, write or delete cell in a worksheet synonym of
--   atCellRC so uses row+column index
atCell :: (RowIndex, ColumnIndex) -> Lens' Worksheet (Maybe Cell)

-- | lens to read, write or delete cell in a worksheet
atCellRC :: (RowIndex, ColumnIndex) -> Lens' Worksheet (Maybe Cell)

-- | lens to read, write or delete cell in a worksheet using more
--   traditional x+y or row+column index
atCellXY :: (ColumnIndex, RowIndex) -> Lens' Worksheet (Maybe Cell)

-- | lens to read, write or delete cell value in a worksheet with
--   row+column coordinates, synonym for cellValueRC
cellValueAt :: (RowIndex, ColumnIndex) -> Lens' Worksheet (Maybe CellValue)

-- | lens to read, write or delete cell value in a worksheet using
--   row+column coordinates of that cell
cellValueAtRC :: (RowIndex, ColumnIndex) -> Lens' Worksheet (Maybe CellValue)

-- | lens to read, write or delete cell value in a worksheet using
--   traditional x+y coordinates
cellValueAtXY :: (ColumnIndex, RowIndex) -> Lens' Worksheet (Maybe CellValue)
instance Control.Lens.At.At Codec.Xlsx.Lens.SheetList
instance GHC.Classes.Eq Codec.Xlsx.Lens.SheetList
instance GHC.Internal.Generics.Generic Codec.Xlsx.Lens.SheetList
instance Control.Lens.At.Ixed Codec.Xlsx.Lens.SheetList
instance GHC.Internal.Show.Show Codec.Xlsx.Lens.SheetList

-- | Higher level interface for creating styled worksheets
module Codec.Xlsx.Formatted

-- | Cell with formatting. _cellStyle property of
--   _formattedCell is ignored
--   
--   See formatted for more details.
data FormattedCell
FormattedCell :: Cell -> Format -> Int -> Int -> FormattedCell
[_formattedCell] :: FormattedCell -> Cell
[_formattedFormat] :: FormattedCell -> Format
[_formattedColSpan] :: FormattedCell -> Int
[_formattedRowSpan] :: FormattedCell -> Int

-- | Result of formatting
--   
--   See formatted
data Formatted
Formatted :: CellMap -> StyleSheet -> [Range] -> Formatted

-- | The final CellMap; see _wsCells
[formattedCellMap] :: Formatted -> CellMap

-- | The final stylesheet; see _xlStyles (and
--   renderStyleSheet)
[formattedStyleSheet] :: Formatted -> StyleSheet

-- | The final list of cell merges; see _wsMerges
[formattedMerges] :: Formatted -> [Range]

-- | Formatting options used to format cells
--   
--   TODOs:
--   
--   
--   
- Add a number format (_cellXfApplyNumberFormat,
--   _cellXfNumFmtId)
--   
- Add references to the named style sheets (_cellXfId)
--   
data Format
Format :: Maybe Alignment -> Maybe Border -> Maybe Fill -> Maybe Font -> Maybe NumberFormat -> Maybe Protection -> Maybe Bool -> Maybe Bool -> Format
[_formatAlignment] :: Format -> Maybe Alignment
[_formatBorder] :: Format -> Maybe Border
[_formatFill] :: Format -> Maybe Fill
[_formatFont] :: Format -> Maybe Font
[_formatNumberFormat] :: Format -> Maybe NumberFormat
[_formatProtection] :: Format -> Maybe Protection
[_formatPivotButton] :: Format -> Maybe Bool
[_formatQuotePrefix] :: Format -> Maybe Bool

-- | Higher level API for creating formatted documents
--   
--   Creating formatted Excel spreadsheets using the Cell datatype
--   directly, even with the support for the StyleSheet datatype, is
--   fairly painful. This has a number of causes:
--   
--   
--   
- The Cell datatype wants an Int for the style, which
--   is supposed to point into the _styleSheetCellXfs part of a
--   stylesheet. However, this can be difficult to work with, as it
--   requires manual tracking of cell style IDs, which in turns requires
--   manual tracking of font IDs, border IDs, etc.
--   
- Row-span and column-span properties are set on the worksheet as a
--   whole (wsMerges) rather than on individual cells.
--   
- Excel does not correctly deal with borders on cells that span
--   multiple columns or rows. Instead, these rows must be set on all the
--   edge cells in the block. Again, this means that this becomes a global
--   property of the spreadsheet rather than properties of individual
--   cells.
--   
--   
--   This function deals with all these problems. Given a map of
--   FormattedCells, which refer directly to Fonts,
--   Borders, etc. (rather than font IDs, border IDs, etc.), and an
--   initial stylesheet, it recovers all possible sharing, constructs IDs,
--   and then constructs the final CellMap, as well as the final
--   stylesheet and list of merges.
--   
--   If you don't already have a StyleSheet you want to use as
--   starting point then minimalStyleSheet is a good choice.
formatted :: Map (RowIndex, ColumnIndex) FormattedCell -> StyleSheet -> Formatted

-- | Build an Xlsx, render provided cells as per the
--   StyleSheet.
formatWorkbook :: [(Text, Map (RowIndex, ColumnIndex) FormattedCell)] -> StyleSheet -> Xlsx

-- | reverse to formatted which allows to get a map of formatted
--   cells from an existing worksheet and its workbook's style sheet
toFormattedCells :: CellMap -> [Range] -> StyleSheet -> Map (RowIndex, ColumnIndex) FormattedCell
data CondFormatted
CondFormatted :: StyleSheet -> Map SqRef ConditionalFormatting -> CondFormatted

-- | The resulting stylesheet
[condformattedStyleSheet] :: CondFormatted -> StyleSheet

-- | The final map of conditional formatting rules applied to ranges
[condformattedFormattings] :: CondFormatted -> Map SqRef ConditionalFormatting
conditionallyFormatted :: Map CellRef [FormattedCondFmt] -> StyleSheet -> CondFormatted
formatAlignment :: Lens' Format (Maybe Alignment)
formatBorder :: Lens' Format (Maybe Border)
formatFill :: Lens' Format (Maybe Fill)
formatFont :: Lens' Format (Maybe Font)
formatNumberFormat :: Lens' Format (Maybe NumberFormat)
formatProtection :: Lens' Format (Maybe Protection)
formatPivotButton :: Lens' Format (Maybe Bool)
formatQuotePrefix :: Lens' Format (Maybe Bool)
formattedCell :: Lens' FormattedCell Cell
formattedFormat :: Lens' FormattedCell Format
formattedColSpan :: Lens' FormattedCell Int
formattedRowSpan :: Lens' FormattedCell Int
condfmtCondition :: Lens' FormattedCondFmt Condition
condfmtDxf :: Lens' FormattedCondFmt Dxf
condfmtPriority :: Lens' FormattedCondFmt Int
condfmtStopIfTrue :: Lens' FormattedCondFmt (Maybe Bool)
instance Data.Default.Internal.Default Codec.Xlsx.Formatted.Format
instance Data.Default.Internal.Default Codec.Xlsx.Formatted.FormattedCell
instance Data.Default.Internal.Default Codec.Xlsx.Formatted.FormattedCondFmt
instance GHC.Classes.Eq Codec.Xlsx.Formatted.CondFormatted
instance GHC.Classes.Eq Codec.Xlsx.Formatted.Format
instance GHC.Classes.Eq Codec.Xlsx.Formatted.Formatted
instance GHC.Classes.Eq Codec.Xlsx.Formatted.FormattedCell
instance GHC.Classes.Eq Codec.Xlsx.Formatted.FormattedCondFmt
instance GHC.Internal.Generics.Generic Codec.Xlsx.Formatted.CondFormatted
instance GHC.Internal.Generics.Generic Codec.Xlsx.Formatted.Format
instance GHC.Internal.Generics.Generic Codec.Xlsx.Formatted.Formatted
instance GHC.Internal.Generics.Generic Codec.Xlsx.Formatted.FormattedCell
instance GHC.Internal.Generics.Generic Codec.Xlsx.Formatted.FormattedCondFmt
instance GHC.Internal.Show.Show Codec.Xlsx.Formatted.CondFormatted
instance GHC.Internal.Show.Show Codec.Xlsx.Formatted.Format
instance GHC.Internal.Show.Show Codec.Xlsx.Formatted.Formatted
instance GHC.Internal.Show.Show Codec.Xlsx.Formatted.FormattedCell
instance GHC.Internal.Show.Show Codec.Xlsx.Formatted.FormattedCondFmt

module Codec.Xlsx.Writer.Internal.PivotTable
data PivotTableFiles
PivotTableFiles :: ByteString -> ByteString -> ByteString -> PivotTableFiles
[pvtfTable] :: PivotTableFiles -> ByteString
[pvtfCacheDefinition] :: PivotTableFiles -> ByteString
[pvtfCacheRecords] :: PivotTableFiles -> ByteString
renderPivotTableFiles :: CellMap -> Int -> PivotTable -> PivotTableFiles
instance GHC.Classes.Eq Codec.Xlsx.Writer.Internal.PivotTable.CacheDefinition
instance GHC.Classes.Eq Codec.Xlsx.Writer.Internal.PivotTable.PivotTableFiles
instance GHC.Internal.Generics.Generic Codec.Xlsx.Writer.Internal.PivotTable.CacheDefinition
instance GHC.Internal.Generics.Generic Codec.Xlsx.Writer.Internal.PivotTable.PivotTableFiles
instance GHC.Internal.Show.Show Codec.Xlsx.Writer.Internal.PivotTable.CacheDefinition
instance GHC.Internal.Show.Show Codec.Xlsx.Writer.Internal.PivotTable.PivotTableFiles

-- | This module provides a function for serializing structured Xlsx
--   into lazy bytestring
module Codec.Xlsx.Writer

-- | Writes Xlsx to raw data (lazy bytestring)
fromXlsx :: POSIXTime -> Xlsx -> ByteString
instance GHC.Classes.Eq Codec.Xlsx.Writer.XlsxCell
instance GHC.Classes.Eq Codec.Xlsx.Writer.XlsxCellData
instance GHC.Internal.Generics.Generic Codec.Xlsx.Writer.XlsxCell
instance GHC.Internal.Generics.Generic Codec.Xlsx.Writer.XlsxCellData
instance GHC.Internal.Show.Show Codec.Xlsx.Writer.XlsxCell
instance GHC.Internal.Show.Show Codec.Xlsx.Writer.XlsxCellData

-- | This module provides solution for parsing and writing Microsoft Open
--   Office XML Workbook format i.e. *.xlsx files
--   
--   As a simple example you could read cell B3 from the 1st sheet of
--   workbook "report.xlsx" using the following code:
--   
--   
--   {-# LANGUAGE OverloadedStrings #-}
--   module Read where
--   import Codec.Xlsx
--   import qualified Data.ByteString.Lazy as L
--   import Control.Lens
--   
--   main :: IO ()
--   main = do
--     bs <- L.readFile "report.xlsx"
--     let value = toXlsx bs ^? ixSheet "List1" .
--                 ixCell (3,2) . cellValue . _Just
--     putStrLn $ "Cell B3 contains " ++ show value
--   
--   
--   And the following example module shows a way to construct and write
--   xlsx file
--   
--   
--   {-# LANGUAGE OverloadedStrings #-}
--   module Write where
--   import Codec.Xlsx
--   import Control.Lens
--   import qualified Data.ByteString.Lazy as L
--   import Data.Time.Clock.POSIX
--   
--   main :: IO ()
--   main = do
--     ct <- getPOSIXTime
--     let
--         sheet = def & cellValueAt (1,2) ?~ CellDouble 42.0
--                     & cellValueAt (3,2) ?~ CellText "foo"
--         xlsx = def & atSheet "List1" ?~ sheet
--     L.writeFile "example.xlsx" $ fromXlsx ct xlsx
--   
module Codec.Xlsx

-- | Internal stream related functions. These are exported because they're
--   tested like this. It's not expected a user would need this.
module Codec.Xlsx.Writer.Internal.Stream
upsertSharedString :: MonadState SharedStringState m => Text -> m (Text, Int)
initialSharedString :: SharedStringState
string_map :: Iso' SharedStringState (Map Text Int)
newtype SharedStringState
MkSharedStringState :: Map Text Int -> SharedStringState
[_string_map] :: SharedStringState -> Map Text Int

-- | Writes Excel files from a stream, which allows creation of large Excel
--   files while remaining in constant memory.
module Codec.Xlsx.Writer.Stream

-- | Transform a Row stream into a stream that creates the xlsx file
--   format (to be consumed by sinkfile for example) This first runs
--   sharedStrings and then writeXlsxWithSharedStrings. If
--   you want xlsx files this is the most obvious function to use. the
--   others are exposed in case you can cache the shared strings for
--   example.
--   
--   Note that the current implementation concatenates everything into a
--   single sheet. In other words there is no support for writing multiple
--   sheets
writeXlsx :: forall (m :: Type -> Type). (MonadThrow m, PrimMonad m) => SheetWriteSettings -> ConduitT () Row m () -> ConduitT () ByteString m Word64

-- | This write Excel file with a shared strings lookup table. It appears
--   that it is optional. Failed lookups will result in valid xlsx. There
--   are several conditions on shared strings,
--   
--   
--   
- Every text to int is unique on both text and int.
--   
- Every Int should have a gap no greater than 1. [("xx", 3), ("yy",
--   4)] is okay, whereas [("xx", 3), ("yy", 5)] is not.
--   
- It's expected this starts from 0.
--   
--   
--   Use sharedStringsStream to get a good shared strings table.
--   This is provided because the user may have a more efficient way of
--   constructing this table than the library can provide, for example
--   through database operations.
writeXlsxWithSharedStrings :: forall (m :: Type -> Type). (MonadThrow m, PrimMonad m) => SheetWriteSettings -> Map Text Int -> ConduitT () Row m () -> ConduitT () ByteString m Word64

-- | Settings for writing a single sheet.
data SheetWriteSettings
MkSheetWriteSettings :: [SheetView] -> ZipOptions -> [ColumnsProperties] -> Map Int RowProperties -> Styles -> SheetWriteSettings
[_wsSheetView] :: SheetWriteSettings -> [SheetView]

-- | Enable zipOpt64=True if you intend writing large xlsx files, zip needs
--   64bit for files over 4gb.
[_wsZip] :: SheetWriteSettings -> ZipOptions
[_wsColumnProperties] :: SheetWriteSettings -> [ColumnsProperties]
[_wsRowProperties] :: SheetWriteSettings -> Map Int RowProperties
[_wsStyles] :: SheetWriteSettings -> Styles
defaultSettings :: SheetWriteSettings
wsSheetView :: Lens' SheetWriteSettings [SheetView]
wsZip :: Lens' SheetWriteSettings ZipOptions
wsColumnProperties :: Lens' SheetWriteSettings [ColumnsProperties]
wsRowProperties :: Lens' SheetWriteSettings (Map Int RowProperties)
wsStyles :: Lens' SheetWriteSettings Styles

-- | Process sheetItems into shared strings structure to be put into
--   writeXlsxWithSharedStrings
sharedStrings :: forall (m :: Type -> Type) b. Monad m => ConduitT Row b m (Map Text Int)

-- | creates a unique number for every encountered string in the stream
--   This is used for creating a required structure in the xlsx format
--   called shared strings. Every string get's transformed into a number
--   
--   exposed to allow further processing, we also know the map after
--   processing but I don't think conduit provides a way of getting that
--   out. use sharedStrings to just get the map
sharedStringsStream :: forall (m :: Type -> Type). Monad m => ConduitT Row (Text, Int) m (Map Text Int)
instance GHC.Internal.Show.Show Codec.Xlsx.Writer.Stream.SheetWriteSettings
