(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 11.2' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[    311253,       6455]
NotebookOptionsPosition[    299822,       6216]
NotebookOutlinePosition[    302169,       6275]
CellTagsIndexPosition[    302082,       6270]
WindowTitle->ConvertComps
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {Cell["DATA ANALYSIS PACKAGE SYMBOL", "PacletNameCell",ExpressionUUID->
     "b9045edb-ab77-4f7d-9017-d036fce90a3b"], Cell[TextData[{
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "See Also",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"968f3634-b974-40b0-842d-b0133a20885d"],
         TextCell[
          Row[{"See Also", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"RegisterOxide\"\>":>
       Documentation`HelpLookup[
       "paclet:DataAnalysis/ref/RegisterOxide"], "\<\"RegisterComp\"\>":>
       Documentation`HelpLookup[
       "paclet:DataAnalysis/ref/RegisterComp"], "\<\"MolarMass\"\>":>
       Documentation`HelpLookup["paclet:DataAnalysis/ref/MolarMass"]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"SeeAlso"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "208d31d5-5999-45e0-b473-313f65cff597"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "Related Guides",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"324e82f8-30d8-4d67-9ea8-1f50b5df07e7"],
         TextCell[
          Row[{"Related Guides", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"DataAnalysis Package\"\>":>
       Documentation`HelpLookup["paclet:DataAnalysis/guide/DataAnalysis"]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"MoreAbout"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "e4f1d18d-c09e-403b-bb99-3309cdc69feb"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      ActionMenuBox[
       FrameBox[
        InterpretationBox[Cell[TextData[{
          "URL",
          StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
           StripOnInput->False]
         }],ExpressionUUID->"09259274-e7d5-49aa-af89-d1128961eadc"],
         TextCell[
          Row[{"URL", 
            Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
        StripOnInput->False], {"\<\"DataAnalysis/ref/ConvertComps\"\>":>
       None, "\<\"Copy Wolfram Documentation Center URL\"\>":>
       Module[{DocumentationSearch`Private`nb$}, 
        DocumentationSearch`Private`nb$ = NotebookPut[
           Notebook[{
             Cell["DataAnalysis/ref/ConvertComps"]}, Visible -> False]]; 
        SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
        FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
        NotebookClose[DocumentationSearch`Private`nb$]; Null], 
       Delimiter, "\<\"Copy web URL\"\>":>
       Module[{DocumentationSearch`Private`nb$}, 
        DocumentationSearch`Private`nb$ = NotebookPut[
           Notebook[{
             Cell[
              BoxData[
               MakeBoxes[
                Hyperlink[
                "http://reference.wolfram.com/language/DataAnalysis/ref/\
ConvertComps.html"], StandardForm]], "Input", TextClipboardType -> 
              "PlainText"]}, Visible -> False]]; 
        SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
        FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
        NotebookClose[DocumentationSearch`Private`nb$]; 
        Null], "\<\"Go to web URL\"\>":>FrontEndExecute[{
         NotebookLocate[{
           URL[
            StringJoin[
             If[
              TrueQ[DocumentationBuild`Make`Private`wsmlinkQ$14185], 
              "http://reference.wolfram.com/system-modeler/", 
              "http://reference.wolfram.com/language/"], 
             "DataAnalysis/ref/ConvertComps", ".html"]], None}]}]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"URLMenu"]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "31f293e8-54f9-4cad-aac5-56f5fe00c126"]
    }], "AnchorBar",ExpressionUUID->"2fc8a160-2a0f-47a3-8b79-e6b586c2857e"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"38a4fbea-a108-43ed-ba31-5310499338e7"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell["ConvertComps", "ObjectName",ExpressionUUID->
  "c1ba64d8-76c6-4068-9df7-6216502bb43a"],
 Cell[BoxData[
  TemplateBox[{8},
   "Spacer1"]],ExpressionUUID->"87341cd8-2a3c-43d3-a830-2929c988bbf1"],
 Cell[BoxData[
 ""], "ObjectNameTranslation",ExpressionUUID->
  "c627a79c-4e26-4306-82ef-fb9d11e43223"]
}], "ObjectNameGrid",ExpressionUUID->"66d314a9-af02-4656-813c-de92a8c8accf"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{"ConvertComps", "[", 
       RowBox[{
        StyleBox["datatable", "TI"], ",", 
        RowBox[{"{", 
         RowBox[{
          SubscriptBox[
           StyleBox["component", "TI"], "1"], ",", 
          SubscriptBox[
           StyleBox["component", "TI"], "2"], ",", "..."}], "}"}]}], "]"}]], 
      "InlineFormula",ExpressionUUID->"139a371f-7685-47dd-aaff-bc27088e9e7d"],
     "\[LineSeparator]converts the compositional data in a ",
     Cell[BoxData[
      TemplateBox[{Cell[
         TextData["DataTable"]],"paclet:DataAnalysis/ref/DataTable"},
       "RefLink",
       BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
      "c3efad31-27d4-48f0-8ad4-dc88f909d4d4"],
     " to a set of new chemical components using matrix transformations."
    }],ExpressionUUID->"a5f431e1-0399-46d6-b2e4-35fae70e214b"]}
  }]], "Usage",
 GridBoxOptions->{
 GridBoxBackground->{
  "Columns" -> {{None}}, "ColumnsIndexed" -> {}, "Rows" -> {{None}}, 
   "RowsIndexed" -> \
{}}},ExpressionUUID->"0581ac93-d023-4505-99e1-22eb6ebf8593"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[
 ButtonBox[Cell[TextData[{
   Cell[BoxData[
    TemplateBox[{6},
     "Spacer1"]],ExpressionUUID->"3e7b3af0-b37d-4206-8317-6549201e5021"],
   "Details"
  }], "NotesFrameText",ExpressionUUID->"f40fea57-eb0f-4782-983c-1ee269176214"],
  Appearance->{Automatic, None, "Normal", Automatic},
  BaseStyle->None,
  ButtonFunction:>(FrontEndExecute[{
     FrontEnd`SelectionMove[
      FrontEnd`SelectedNotebook[], All, ButtonCell], 
     FrontEndToken["OpenCloseGroup"], 
     FrontEnd`SelectionMove[
      FrontEnd`SelectedNotebook[], After, CellContents]}]& ),
  Evaluator->None,
  Method->
   "Preemptive"]],ExpressionUUID->"04d1d097-c94c-45c0-91fc-8189a76d53cd"]], \
"NotesSection",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->594402440,ExpressionUUID->"c463a86f-cf90-477a-a85b-5c7d3822a4f2"],

Cell["", "SectionHeaderSpacer",ExpressionUUID->"46e299fa-ce36-406a-95bc-329111c1bcf0"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["ConvertComps"]],"paclet:DataAnalysis/ref/ConvertComps"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "82592767-53a1-4321-b84a-7c94393bd961"],
 " can convert the chemical composition of a compound from one set of \
components to a new set of components."
}], "Notes",
 CellID->566713493,ExpressionUUID->"723fe90f-4e11-4a8a-8ed6-fa448706312f"],

Cell[TextData[{
 "Internally, the composition is first converted to a set of independent \
oxides (e.g. Si",
 Cell[BoxData[
  SubscriptBox["O", "2"]],ExpressionUUID->
  "97deec89-4f5d-451a-9ead-3ef76a20b3fd"],
 ", MgO, C",
 Cell[BoxData[
  SubscriptBox["O", "2"]],ExpressionUUID->
  "bbb5a2ab-21fa-4fd9-a798-fd5927b5530d"],
 ", ...), and then to the new set of components."
}], "Notes",
 CellID->434029681,ExpressionUUID->"007ba56a-813e-40fd-95c5-6349074331fb"],

Cell["The following options can be given: ", "Notes",ExpressionUUID->"62f68220-ad07-4bee-9907-106f40cddaf6"],

Cell[BoxData[GridBox[{
   {Cell["      ", "TableRowIcon",ExpressionUUID->
     "a4070f12-1124-4161-a76e-d626c1f1d6ce"], 
    ButtonBox["FromMolarData",
     BaseStyle->"Link",
     ButtonData->"paclet:DataAnalysis/ref/FromMolarData"], 
    ButtonBox["False",
     BaseStyle->"Link",
     ButtonData->"paclet:ref/False"], Cell["\<\
FromMolarData is an option that specifies the input data are molar amounts.\
\>", "TableText",ExpressionUUID->"50a02e38-8ed6-43b3-baec-850faacd9123"]},
   {Cell["      ", "TableRowIcon",ExpressionUUID->
     "005410d1-89a8-4bea-8166-6764e1c549c4"], 
    ButtonBox["ToMolarData",
     BaseStyle->"Link",
     ButtonData->"paclet:DataAnalysis/ref/ToMolarData"], 
    ButtonBox["False",
     BaseStyle->"Link",
     ButtonData->"paclet:ref/False"], Cell["\<\
ToMolarData is an option that specifies the output data should be molar \
amounts.\
\>", "TableText",ExpressionUUID->"e2a523a6-9669-4c7e-b9b2-b7d812d0d18b"]},
   {Cell["      ", "TableRowIcon",ExpressionUUID->
     "7cc785a9-9cf5-444a-8526-7d61a97ccffc"], 
    ButtonBox["ToPercent",
     BaseStyle->"Link",
     ButtonData->"paclet:DataAnalysis/ref/ToPercent"], 
    ButtonBox["False",
     BaseStyle->"Link",
     ButtonData->"paclet:ref/False"], Cell["\<\
ToPercent is an option that specifies the output data for should be \
percentages.\
\>", "TableText",ExpressionUUID->"81e40502-61be-4ca6-ad39-ab65c80eb6c1"]},
   {Cell["      ", "TableRowIcon",ExpressionUUID->
     "f921e004-55be-438c-93fb-d8ec5615e348"], 
    ButtonBox["ToFractions",
     BaseStyle->"Link",
     ButtonData->"paclet:DataAnalysis/ref/ToFractions"], 
    ButtonBox["False",
     BaseStyle->"Link",
     ButtonData->"paclet:ref/False"], Cell["\<\
ToFractions is an option that specifies the output data for should be \
fractions.\
\>", "TableText",ExpressionUUID->"0f1f0fad-ef4f-4d52-abfa-e99a977eec41"]},
   {Cell["      ", "TableRowIcon",ExpressionUUID->
     "9d6feb27-7fb6-4574-8a39-451f7d7da3f9"], 
    ButtonBox["ProjectFrom",
     BaseStyle->"Link",
     ButtonData->"paclet:DataAnalysis/ref/ProjectFrom"], 
    ButtonBox["None",
     BaseStyle->"Link",
     ButtonData->"paclet:ref/None"], Cell["\<\
ProjectFrom is an option that specifies a list of components from which the \
data should be projected.\
\>", "TableText",ExpressionUUID->"50def49b-c611-41ab-99f7-7ff38e43644d"]}
  }]], "3ColumnTableMod",
 GridBoxOptions->{
 GridBoxBackground->{
  "Columns" -> {{None}}, "ColumnsIndexed" -> {}, 
   "Rows" -> {None, None, None, None, {None}}, "RowsIndexed" -> {}},
 GridBoxDividers->{
  "Rows" -> {{
     True, True, True, True, True, 
      True}}}},ExpressionUUID->"e3c3fe8b-516b-4fb2-8b6e-078619b579a7"],

Cell["", "SectionFooterSpacer",ExpressionUUID->"10ef26bd-cb52-48c7-b27e-b15bc1975998"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"fbcb1791-ec46-41c9-8690-21a24d986c34"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(7)", "ExampleCount",ExpressionUUID->
  "ad7b0b93-d85b-4c2c-b9c2-7ac8bcc60d88"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CellTags->"PrimaryExamplesSection",
 CellID->177371869,ExpressionUUID->"ff455216-0189-43eb-b1e6-7cfdd9cfa53c"],

Cell[CellGroupData[{

Cell[TextData[{
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "d92e29a5-62ad-4796-a592-44abaed979a0"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CellID->150116438,ExpressionUUID->"28e1692d-f73a-4d75-ae73-e2f2e5fe4a43"],

Cell["Define a set of chemical compositions:", "ExampleText",
 CellID->441854924,ExpressionUUID->"dbec32ca-e344-429e-8e8e-91fd1dfa2ee7"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"comps", "=", 
  RowBox[{"DataTable", "[", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"\"\<ID\>\"", ",", "\"\<Dolomite\>\"", ",", "\"\<MgCO3\>\""}], 
      "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"\"\<Sample 1\>\"", ",", "0.5", ",", "0.5"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"\"\<Sample 2\>\"", ",", "4", ",", "3"}], "}"}]}], "}"}], 
   "]"}]}]], "Input",
 CellLabel->"In[1]:=",
 CellID->137011833,ExpressionUUID->"c2d8430c-328d-4589-a9e4-023b4ea39c0f"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["Dolomite" -> 0.5, "MgCO3" -> 0.5], 
              "Sample 2" -> Association["Dolomite" -> 4, "MgCO3" -> 3]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["ID" -> 152282491429576]]]]], Appearance -> 
        Automatic, Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["Dolomite" -> 0.5, "MgCO3" -> 0.5], 
              "Sample 2" -> Association["Dolomite" -> 4, "MgCO3" -> 3]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["ID" -> 152282491429576]]], True]], Appearance -> 
        Automatic, Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["Dolomite" -> 0.5, "MgCO3" -> 0.5], 
               "Sample 2" -> Association["Dolomite" -> 4, "MgCO3" -> 3]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["ID" -> 152282491429576]]]], "TSV"]], Appearance -> 
        Automatic, Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["Dolomite" -> 0.5, "MgCO3" -> 0.5], 
               "Sample 2" -> Association["Dolomite" -> 4, "MgCO3" -> 3]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["ID" -> 152282491429576]]], True], "TSV"]], 
        Appearance -> Automatic, Evaluator -> Automatic, Method -> 
        "Preemptive", ButtonData -> "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[2]} -> 1, {All, "Dolomite"} -> 
               1, {All, "MgCO3"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "Dolomite" -> TypeSystem`PackageScope`AtomShape[60], 
                   "MgCO3" -> TypeSystem`PackageScope`AtomShape[60]]]]], 
               2, {}]], "InitialData" -> 
            TypeSystem`PackageScope`CacheHandle[575601434], "Type" -> 
            TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"Dolomite", "MgCO3"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[575601434]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][{
                    All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"Dolomite\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"Dolomite\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][{
                    All, "Dolomite"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[All, "Dolomite"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgCO3\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgCO3\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][{
                    All, "MgCO3"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[All, "MgCO3"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["Dolomite"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgCO3"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["Dolomite"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["3"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    667130892][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgCO3"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 667130892]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[667130892][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[667130892][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->372216438,ExpressionUUID->"e2801d89-54aa-4434-aeac-07a771a2bd71"]
}, Open  ]],

Cell["Define the composition of the input components:", "ExampleText",
 CellID->253725336,ExpressionUUID->"ffaf77ee-8e4d-452f-88f6-7d08ffe881bd"],

Cell[BoxData[{
 RowBox[{"RegisterComp", "[", 
  RowBox[{"\"\<MgCO3\>\"", ",", 
   RowBox[{"Synonyms", "\[Rule]", 
    RowBox[{"{", "\"\<Magnesite\>\"", "}"}]}]}], "]"}], "\[IndentingNewLine]", 
 RowBox[{"RegisterComp", "[", 
  RowBox[{"\"\<CaMg(CO3)2\>\"", ",", 
   RowBox[{"Synonyms", "\[Rule]", 
    RowBox[{"{", "\"\<Dolomite\>\"", "}"}]}]}], "]"}]}], "Input",
 CellLabel->"In[2]:=",
 CellID->114204396,ExpressionUUID->"a71d670a-7b4e-4651-beed-b2a8a25b8f6b"],

Cell["Convert the two sample compositions to oxides:", "ExampleText",
 CellID->265383507,ExpressionUUID->"371d9177-eb32-402e-95b0-a28954586d65"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToPercent", "\[Rule]", "True"}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[3]:=",
 CellID->308611695,ExpressionUUID->"53e15260-4c55-4c1b-93ba-aa5f5558b9e0"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[247531981153003]]], "ID" -> 
              247536276120299]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[247531981153003]]], "ID" -> 
              247536276120299]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[247531981153003]]], "ID" -> 
               247536276120299]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[247531981153003]]], "ID" -> 
               247536276120299]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[5]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[2108830350], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[2108830350]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][{
                    All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][{
                    All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][{
                    All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["33.3333"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["66.6667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["36.3636"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["63.6364"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    236339054][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 236339054]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[236339054][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[236339054][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[3]=",
 CellID->23999572,ExpressionUUID->"56a7f5f0-0a5d-473e-8483-95870929d8fe"]
}, Open  ]],

Cell["Various sets of components can be specified:", "ExampleText",
 CellID->402561950,ExpressionUUID->"ab9607be-7a45-457c-91e3-9078ad1b03dc"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<Magnesite\>\"", ",", "\"\<CO2\>\"", ",", 
     "\"\<O\>\""}], "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", "\"\<O\>\"", "}"}]}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToPercent", "\[Rule]", "True"}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[4]:=",
 CellID->596560019,ExpressionUUID->"c9e3a717-1861-4f1e-bb4e-db67ff096c48"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association["CaO" -> 25., "Magnesite" -> 50., "CO2" -> 25.], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[80, 3], "Magnesite" -> Rational[140, 3], 
                "CO2" -> Rational[80, 3]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[135673852896195]]], "ID" -> 
              135678147863491]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association["CaO" -> 25., "Magnesite" -> 50., "CO2" -> 25.], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[80, 3], "Magnesite" -> Rational[140, 3], 
                "CO2" -> Rational[80, 3]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[135673852896195]]], "ID" -> 
              135678147863491]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association["CaO" -> 25., "Magnesite" -> 50., "CO2" -> 25.], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[80, 3], "Magnesite" -> Rational[140, 3], 
                 "CO2" -> Rational[80, 3]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[135673852896195]]], "ID" -> 
               135678147863491]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association["CaO" -> 25., "Magnesite" -> 50., "CO2" -> 25.], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[80, 3], "Magnesite" -> Rational[140, 3], 
                 "CO2" -> Rational[80, 3]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[135673852896195]]], "ID" -> 
               135678147863491]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[12]} -> 1, {All, "CaO"} -> 
               1, {All, "Magnesite"} -> 1, {All, "CO2"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "Magnesite" -> 
                   TypeSystem`PackageScope`AtomShape[60], "CO2" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[264237980], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "Magnesite", "CO2"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[264237980]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1992783415][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1992783415][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"Magnesite\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"Magnesite\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1992783415][{All, "Magnesite"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[All, "Magnesite"]], "Mouse"], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CO2\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CO2\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1992783415][{All, "CO2"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[All, "CO2"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1992783415][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["25."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["50."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["Magnesite"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["25."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CO2"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1992783415][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["80/3"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["46.6667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["Magnesite"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["80/3"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1992783415][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CO2"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1992783415][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1992783415]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1992783415][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1992783415][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {300., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[4]=",
 CellID->835530826,ExpressionUUID->"e0d5a165-ac30-4a36-a9cd-dd6fb98c8bbb"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 "Options",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(5)", "ExampleCount",ExpressionUUID->
  "4d434a20-e983-4afa-85b7-77432a188ce4"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"07f4b7e8-5bcd-484a-b6e0-4f4cdbc568a7"],

Cell[CellGroupData[{

Cell[TextData[{
 "FromMolarData",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "e8af678b-5b03-4dbc-bdd0-b8cd67f69cf1"]
}], "ExampleSubsection", "ExampleSubsection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"437f5865-64e7-439c-81c7-5e1c44d6dba7"],

Cell["\<\
By default, input data is assumed to be mass (weight) based data which is \
converted to molar amounts before converting compositions to the new set of \
components:\
\>", "ExampleText",
 CellID->115509554,ExpressionUUID->"29d59a8d-6555-4478-8da5-1deac777787b"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->525949040,ExpressionUUID->"710f73e8-6802-4970-932a-6676713bb9db"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.0027114849827115715`, "MgO" -> 0.00864170526667424],
               "Sample 2" -> 
              Association[
               "CaO" -> 0.021691879861692572`, "MgO" -> 
                0.057273201565468584`]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[96701319652456]]], "ID" -> 
              96705614619752]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.0027114849827115715`, "MgO" -> 0.00864170526667424],
               "Sample 2" -> 
              Association[
               "CaO" -> 0.021691879861692572`, "MgO" -> 
                0.057273201565468584`]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[96701319652456]]], "ID" -> 
              96705614619752]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.0027114849827115715`, "MgO" -> 
                 0.00864170526667424], "Sample 2" -> 
               Association[
                "CaO" -> 0.021691879861692572`, "MgO" -> 
                 0.057273201565468584`]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[96701319652456]]], "ID" -> 
               96705614619752]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.0027114849827115715`, "MgO" -> 
                 0.00864170526667424], "Sample 2" -> 
               Association[
                "CaO" -> 0.021691879861692572`, "MgO" -> 
                 0.057273201565468584`]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[96701319652456]]], "ID" -> 
               96705614619752]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[17]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[2099348448], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[2099348448]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1396215576][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1396215576][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1396215576][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1396215576][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.00271148"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.00864171"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1396215576][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.0216919"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.0572732"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1396215576][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1396215576][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1396215576]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1396215576][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1396215576][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {258., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->41198727,ExpressionUUID->"e173f9b8-54c1-4ec9-ab67-81e4f1a30377"]
}, Open  ]],

Cell[TextData[{
 "Setting ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["FromMolarData"]],"paclet:DataAnalysis/ref/FromMolarData"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "72f2ab1f-685d-4866-968f-ed339e772985"],
 " to True changes this behaviour:"
}], "ExampleText",
 CellID->239296880,ExpressionUUID->"0d4923c6-205c-41ce-887f-1ad3e726dd13"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->26895946,ExpressionUUID->"546999f1-6f2d-40e5-a8ee-c3f03bf5f014"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], "Sample 2" -> 
              Association["CaO" -> 4, "MgO" -> 7]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[171863247332454]]], "ID" -> 
              171867542299750]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], "Sample 2" -> 
              Association["CaO" -> 4, "MgO" -> 7]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[171863247332454]]], "ID" -> 
              171867542299750]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], 
               "Sample 2" -> Association["CaO" -> 4, "MgO" -> 7]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[171863247332454]]], "ID" -> 
               171867542299750]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], 
               "Sample 2" -> Association["CaO" -> 4, "MgO" -> 7]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[171863247332454]]], "ID" -> 
               171867542299750]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[16]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[53169585], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[53169585]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1080071588][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1080071588][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1080071588][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1080071588][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1080071588][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["7"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1080071588][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1080071588][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1080071588]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1080071588][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1080071588][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->284405095,ExpressionUUID->"8c8a6c2e-b434-4124-b363-968005c19680"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "ToMolarData",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "ba6e9dab-dab4-4f0b-b3ec-95d9d4cc7220"]
}], "ExampleSubsection", "ExampleSubsection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"396b3f3e-cad2-4410-b7ee-c9f9c9f4ff46"],

Cell["By default, output data is returned as masses (weights):", "ExampleText",
 CellID->20265156,ExpressionUUID->"e94cf749-03ad-46ba-9c24-fe95bff9f1c3"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->376986494,ExpressionUUID->"95d42d47-8cc9-4fa5-9885-0360e6eb97fb"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association["CaO" -> 28.038700000000002`, "MgO" -> 40.3044], 
              "Sample 2" -> 
              Association["CaO" -> 224.30960000000002`, "MgO" -> 282.1308]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[100300502246549]]], "ID" -> 
              100304797213845]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association["CaO" -> 28.038700000000002`, "MgO" -> 40.3044], 
              "Sample 2" -> 
              Association["CaO" -> 224.30960000000002`, "MgO" -> 282.1308]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[100300502246549]]], "ID" -> 
              100304797213845]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association["CaO" -> 28.038700000000002`, "MgO" -> 40.3044], 
               "Sample 2" -> 
               Association["CaO" -> 224.30960000000002`, "MgO" -> 282.1308]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[100300502246549]]], "ID" -> 
               100304797213845]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association["CaO" -> 28.038700000000002`, "MgO" -> 40.3044], 
               "Sample 2" -> 
               Association["CaO" -> 224.30960000000002`, "MgO" -> 282.1308]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[100300502246549]]], "ID" -> 
               100304797213845]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[18]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1474865037], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1474865037]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1450827830][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1450827830][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1450827830][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1450827830][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["28.0387"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["40.3044"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1450827830][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["224.31"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["282.131"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1450827830][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1450827830][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1450827830]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1450827830][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1450827830][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->829780705,ExpressionUUID->"631cc373-bc15-48a6-9c4b-866fd5c97a2c"]
}, Open  ]],

Cell[TextData[{
 "Setting ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["ToMolarData"]],"paclet:DataAnalysis/ref/ToMolarData"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "6267056d-3478-4c3f-b1ea-5bf53fb3bf8d"],
 " to True changes this behaviour:"
}], "ExampleText",
 CellID->63859190,ExpressionUUID->"6d9bd8e8-1a3f-49a8-a5b1-dd23c5b3ecfe"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->569128682,ExpressionUUID->"3c21079a-539c-49b8-b6e0-7ea8c2328de1"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], "Sample 2" -> 
              Association["CaO" -> 4, "MgO" -> 7]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[131975886054560]]], "ID" -> 
              131980181021856]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], "Sample 2" -> 
              Association["CaO" -> 4, "MgO" -> 7]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[131975886054560]]], "ID" -> 
              131980181021856]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], 
               "Sample 2" -> Association["CaO" -> 4, "MgO" -> 7]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[131975886054560]]], "ID" -> 
               131980181021856]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> Association["CaO" -> 0.5, "MgO" -> 1.], 
               "Sample 2" -> Association["CaO" -> 4, "MgO" -> 7]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[131975886054560]]], "ID" -> 
               131980181021856]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[19]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1274928641], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1274928641]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1933788742][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1933788742][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1933788742][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1933788742][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1933788742][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["7"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1933788742][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1933788742][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1933788742]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1933788742][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1933788742][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->99008624,ExpressionUUID->"698aec4c-73aa-4eca-8846-642c92b9ee44"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "ToPercent",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "1a1011fc-c59b-469c-ab16-b0903a89cd41"]
}], "ExampleSubsection", "ExampleSubsection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"cedc60a0-2a67-4724-b324-3aee58b0d65e"],

Cell[TextData[{
 "Setting ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["ToPercent"]],"paclet:DataAnalysis/ref/ToPercent"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "0c2f76c1-16b1-4e0f-b943-5ef4f13b21d9"],
 " to True normalizes the sum of all components to a total of 100% for each \
composition:"
}], "ExampleText",
 CellID->190558207,ExpressionUUID->"33667d5f-3d24-4c5f-a6e0-33b0520a7f21"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToPercent", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->373214753,ExpressionUUID->"01696299-7a75-4817-a763-3cd8ce1a51ff"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[149967504057591]]], "ID" -> 
              149971799024887]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[149967504057591]]], "ID" -> 
              149971799024887]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[149967504057591]]], "ID" -> 
               149971799024887]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 33.33333333333333, "MgO" -> 66.66666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[400, 11], "MgO" -> Rational[700, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[149967504057591]]], "ID" -> 
               149971799024887]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[20]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[109323721], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[109323721]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][{
                    All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][{
                    All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][{
                    All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["33.3333"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["66.6667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["36.3636"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["63.6364"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    128955334][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 128955334]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[128955334][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[128955334][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->236150699,ExpressionUUID->"f85ccf9c-4018-4a13-b6cc-7c3a74f84814"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "ToFractions",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "53492902-6b6c-42f3-80fa-3300a69ed0eb"]
}], "ExampleSubsection", "ExampleSubsection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"a3d7e068-b99d-4d54-94af-bafb751a50ab"],

Cell[TextData[{
 "Setting ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["ToFractions"]],"paclet:DataAnalysis/ref/ToFractions"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "635b918f-e352-4efc-88f2-e00590fe5d97"],
 " to True normalizes the sum of all components to a total of 1 for each \
composition:"
}], "ExampleText",
 CellID->61957344,ExpressionUUID->"a2fb16b3-403a-4b9e-b755-6046b8b25c86"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToFractions", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->518357194,ExpressionUUID->"83e08b55-f30e-47fa-94ee-5f2c7c04b0c6"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[203216508593420]]], "ID" -> 
              203220803560716]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[203216508593420]]], "ID" -> 
              203220803560716]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[203216508593420]]], "ID" -> 
               203220803560716]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[203216508593420]]], "ID" -> 
               203220803560716]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[21]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1719503609], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1719503609]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][{
                    All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][{
                    All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][{
                    All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.333333"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.666667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4/11"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["7/11"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    837853992][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 837853992]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[837853992][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[837853992][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->134370509,ExpressionUUID->"7fb921f7-6deb-44f3-a763-6023b9b78468"]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "ProjectFrom",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "3d48f4b3-0eca-4b80-affd-34bfe4780dae"]
}], "ExampleSubsection", "ExampleSubsection",
 WholeCellGroupOpener->
  True,ExpressionUUID->"90c2f442-f99e-458e-8c7b-5fb28f1d09c8"],

Cell["\<\
A list of output components can be given as the option ProjectFrom, resulting \
in those components being removed from the output:\
\>", "ExampleText",
 CellID->136280436,ExpressionUUID->"3458ccc8-1f5a-4f99-af7c-c6ba6fdee88a"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToFractions", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->803104785,ExpressionUUID->"6e4043b0-6044-4dfb-afee-e6cee4035032"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.16666666666666666`, "MgO" -> 0.3333333333333333, 
                "CO2" -> 0.5, "O" -> 0.], "Sample 2" -> 
              Association[
               "CaO" -> Rational[2, 11], "MgO" -> Rational[7, 22], "CO2" -> 
                Rational[1, 2], "O" -> 0]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[198788397311301]]], "ID" -> 
              198792692278597]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.16666666666666666`, "MgO" -> 0.3333333333333333, 
                "CO2" -> 0.5, "O" -> 0.], "Sample 2" -> 
              Association[
               "CaO" -> Rational[2, 11], "MgO" -> Rational[7, 22], "CO2" -> 
                Rational[1, 2], "O" -> 0]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[198788397311301]]], "ID" -> 
              198792692278597]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.16666666666666666`, "MgO" -> 0.3333333333333333, 
                 "CO2" -> 0.5, "O" -> 0.], "Sample 2" -> 
               Association[
                "CaO" -> Rational[2, 11], "MgO" -> Rational[7, 22], "CO2" -> 
                 Rational[1, 2], "O" -> 0]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[198788397311301]]], "ID" -> 
               198792692278597]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.16666666666666666`, "MgO" -> 0.3333333333333333, 
                 "CO2" -> 0.5, "O" -> 0.], "Sample 2" -> 
               Association[
                "CaO" -> Rational[2, 11], "MgO" -> Rational[7, 22], "CO2" -> 
                 Rational[1, 2], "O" -> 0]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[198788397311301]]], "ID" -> 
               198792692278597]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[22]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1, {All, "CO2"} -> 1, {All, "O"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60], "CO2" -> 
                   TypeSystem`PackageScope`AtomShape[60], "O" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1804996339], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO", "CO2", "O"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1804996339]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1769559024][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1769559024][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1769559024][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CO2\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CO2\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1769559024][{All, "CO2"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[All, "CO2"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"O\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"O\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1769559024][{All, "O"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[All, "O"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1769559024][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.166667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.333333"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.5"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CO2"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0."], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["O"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1769559024][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["2/11"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["7/22"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["1/2"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CO2"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1769559024][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["O"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1769559024][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1769559024]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1769559024][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1769559024][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {364., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{368, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->740491818,ExpressionUUID->"bff9c38d-c0b4-43bc-9291-cd036580590d"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{
    "\"\<CaO\>\"", ",", "\"\<MgO\>\"", ",", "\"\<CO2\>\"", ",", "\"\<O\>\""}],
     "}"}], ",", 
   RowBox[{"ProjectFrom", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{"\"\<CO2\>\"", ",", "\"\<O\>\""}], "}"}]}], ",", 
   RowBox[{"FromMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToMolarData", "\[Rule]", "True"}], ",", 
   RowBox[{"ToFractions", "\[Rule]", "True"}]}], "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->234974940,ExpressionUUID->"5b82caa3-23cc-449e-a049-9895c970afa2"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     TemplateBox[{
      ButtonBox[
       "\"Show in Excel\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[267117032023375]]], "ID" -> 
              267121326990671]]]]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show in Excel"],ButtonBox[
       "\"Show using \[PlusMinus]\"", ButtonFunction :> 
        DataAnalysis`Private`DataTableViewExcel[
          DataAnalysis`Private`PrepareListData[
           DataAnalysis`DataTable[
            Dataset[
             Association[
             "Sample 1" -> 
              Association[
               "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
              "Sample 2" -> 
              Association[
               "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
             TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], 
             Association["Origin" -> HoldComplete[
                Query[All, All, Simplify[
                  DataAnalysis`DVE[#]]& ][
                 Dataset`DatasetHandle[267117032023375]]], "ID" -> 
              267121326990671]]], True]], Appearance -> Automatic, Evaluator -> 
        Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Show using \[PlusMinus]"],ButtonBox[
       "\"Copy TSV\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[267117032023375]]], "ID" -> 
               267121326990671]]]], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy TSV"],ButtonBox[
       "\"Copy using \[PlusMinus]\"", ButtonFunction :> CopyToClipboard[
          ExportString[
           DataAnalysis`Private`PrepareListData[
            DataAnalysis`DataTable[
             Dataset[
              Association[
              "Sample 1" -> 
               Association[
                "CaO" -> 0.3333333333333333, "MgO" -> 0.6666666666666666], 
               "Sample 2" -> 
               Association[
                "CaO" -> Rational[4, 11], "MgO" -> Rational[7, 11]]], 
              TypeSystem`Assoc[
               TypeSystem`Atom[String], 
               TypeSystem`Struct[{"CaO", "MgO"}, {
                 TypeSystem`Atom[Real], 
                 TypeSystem`Atom[Real]}], 2], 
              Association["Origin" -> HoldComplete[
                 Query[All, All, Simplify[
                   DataAnalysis`DVE[#]]& ][
                  Dataset`DatasetHandle[267117032023375]]], "ID" -> 
               267121326990671]]], True], "TSV"]], Appearance -> Automatic, 
        Evaluator -> Automatic, Method -> "Preemptive", ButtonData -> 
        "paclet:ref/Copy using \[PlusMinus]"]},
      "Row",
      DisplayFunction->(PaneBox[
        RowBox[{
          TemplateSlotSequence[1, "\[InvisibleSpace]"]}], 
        ImageSize -> {All, Automatic}]& ),
      InterpretationFunction->(RowBox[{"Row", "[", 
         RowBox[{
           RowBox[{"{", 
             TemplateSlotSequence[1, ","], "}"}], ",", 
           RowBox[{"ImageSize", "\[Rule]", 
             RowBox[{"{", 
               RowBox[{"All", ",", "Automatic"}], "}"}]}]}], "]"}]& )]},
    {
     TemplateBox[{TagBox[
        DynamicModuleBox[{
         TypeSystem`NestedGrid`PackagePrivate`$state$$ = 
          Data`UnorderedAssociation[
           "RowCount" -> 2, "Length" -> 2, "InitialType" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "Shape" -> 
            TypeSystem`PackageScope`HeaderShape[
              Association[{All, 
                 TypeSystem`PackageScope`KeyDummy[23]} -> 1, {All, "CaO"} -> 
               1, {All, "MgO"} -> 1], 
              TypeSystem`PackageScope`Limited[
               TypeSystem`PackageScope`ColumnShape[
                TypeSystem`PackageScope`KeyValueShape[
                 TypeSystem`PackageScope`AtomShape[76.80000000000001], 
                 TypeSystem`PackageScope`RowShape[
                  Association[
                  "CaO" -> TypeSystem`PackageScope`AtomShape[60], "MgO" -> 
                   TypeSystem`PackageScope`AtomShape[60]]]]], 2, {}]], 
            "InitialData" -> TypeSystem`PackageScope`CacheHandle[1108282207], 
            "Type" -> TypeSystem`Assoc[
              TypeSystem`Atom[String], 
              TypeSystem`Struct[{"CaO", "MgO"}, {
                TypeSystem`Atom[Real], 
                TypeSystem`Atom[Real]}], 2], "HandleQ" -> True, "RowTarget" -> 
            20, "Data" -> TypeSystem`PackageScope`CacheHandle[1108282207]], 
          TypeSystem`NestedGrid`PackagePrivate`$path$$ = {}, 
          TypeSystem`NestedGrid`PackagePrivate`$pos$$ = 1, 
          TypeSystem`NestedGrid`PackagePrivate`$grid$$ = 
          DynamicModule[{
            TypeSystem`NestedGrid`PackagePrivate`renderedGrid = Deploy[
               Style[
                Grid[{{
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox["\"\"", FontColor -> GrayLevel[0.4]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], 
                    Style[
                    Pane[
                    Style[
                    RawBoxes[
                    StyleBox[
                    "\"\"", FontColor -> 
                    RGBColor[0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], Italic, 
                    GrayLevel[0.7]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1596096426][{All, Keys}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[All, Keys]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"CaO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"CaO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1596096426][{All, "CaO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[All, "CaO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}], 
                   Item[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover[
                    Pane[
                    RawBoxes[
                    StyleBox["\"MgO\"", FontColor -> GrayLevel[0.4]]], {{
                    20, Full}, 15}], 
                    Style[
                    Pane[
                    RawBoxes[
                    StyleBox[
                    "\"MgO\"", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], {{20, Full}, 15}], FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
                    1596096426][{All, "MgO"}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[All, "MgO"]], "Mouse"], Background -> 
                    GrayLevel[0.95], Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 1", 
                    Style[
                    "Sample 1", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1596096426][{
                    Key["Sample 1"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 1"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.333333"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["0.666667"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 1"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}, {
                   Item[
                    Pane[
                    Annotation[
                    EventHandler[
                    MouseAppearance[
                    Mouseover["Sample 2", 
                    Style[
                    "Sample 2", FontColor -> 
                    RGBColor[
                    0.27450980392156865`, 0.5372549019607843, 
                    0.792156862745098]]], "LinkHand"], {"MouseClicked", 1} :> 
                    TypeSystem`NestedGrid`PackagePrivate`updateState[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1596096426][{
                    Key["Sample 2"]}]], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 2"]]], "Mouse"], 
                    ImageSize -> {{76.80000000000001, Full}, Automatic}], 
                    Background -> GrayLevel[0.95], 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["4/11"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["CaO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}], 
                   Pane[
                    Annotation[
                    RawBoxes["7/11"], 
                    TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[
                    1596096426][
                    GeneralUtilities`Slice[
                    Key["Sample 2"], 
                    Key["MgO"]]], "Mouse"], 
                    ImageSize -> {{60, Full}, Automatic}, 
                    Alignment -> {Left, Baseline}]}}, 
                 BaseStyle -> {ContextMenu -> {
                    MenuItem["Copy position to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Copy data to clipboard", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`copyClip]], 
                    MenuEvaluator -> Automatic], Delimiter, 
                    MenuItem["Paste position in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentPosition[
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic], 
                    MenuItem["Paste data in new cell", 
                    KernelExecute[
                    TypeSystem`NestedGrid`PackagePrivate`toCurrentData[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`cellPaste]], 
                    MenuEvaluator -> Automatic]}, FontFamily -> "Verdana", 
                   FontSize -> 12}, Alignment -> Left, RowMinHeight -> 1.5, 
                 Dividers -> All, FrameStyle -> GrayLevel[0.85], 
                 BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}], 
                LineBreakWithin -> False, ContextMenu -> {}, NumberMarks -> 
                False, ShowAutoStyles -> False]], 
             TypeSystem`NestedGrid`PackagePrivate`initialQ = True, 
             TypeSystem`NestedGrid`PackagePrivate`self = $Failed}, 
            Dynamic[
             TypeSystem`NestedGrid`PackagePrivate`setupViewPath[
             TypeSystem`NestedGrid`PackagePrivate`$path$$, If[
                Not[TypeSystem`NestedGrid`PackagePrivate`initialQ], 
                
                Module[{
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = $Failed, 
                  TypeSystem`NestedGrid`PackagePrivate`tmpData$ = 
                  TypeSystem`NestedGrid`PackagePrivate`LookupCacheValue[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$["Data"]]}, 
                 TypeSystem`NestedGrid`PackagePrivate`tmpGrid$ = 
                  If[TypeSystem`NestedGrid`PackagePrivate`tmpData$ === 
                    TypeSystem`NestedGrid`PackagePrivate`$NotCached, 
                    TypeSystem`NestedGrid`PackagePrivate`renderedGrid, 
                    TypeSystem`NestedGrid`PackagePrivate`renderGrid[
                    TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1596096426][
                    TypeSystem`NestedGrid`PackagePrivate`tmpData$]]; If[
                   Not[
                    FailureQ[TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]], 
                   TypeSystem`NestedGrid`PackagePrivate`renderedGrid = 
                   TypeSystem`NestedGrid`PackagePrivate`tmpGrid$]; Null]]; 
              TypeSystem`NestedGrid`PackagePrivate`initialQ = False; 
              TypeSystem`NestedGrid`PackagePrivate`$pos$$; If[
                FailureQ[TypeSystem`NestedGrid`PackagePrivate`renderedGrid], 
                TypeSystem`SparseGrid[
                 TypeSystem`H["(data no longer present)"]], 
                If[GeneralUtilities`$DebugMode, 
                 Row[{TypeSystem`NestedGrid`PackagePrivate`renderedGrid, "  ", 
                   TypeSystem`NestedGrid`PackagePrivate`formatState[
                   TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                    TypeSystem`NestedGrid`PackagePrivate`$pos$$]}], 
                 TypeSystem`NestedGrid`PackagePrivate`renderedGrid]]], 
             TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$pos$$}],
             DynamicModuleValues :> {}], 
          TypeSystem`NestedGrid`PackagePrivate`$posCell$$, 
          TypeSystem`NestedGrid`PackagePrivate`$topBar$$ = Dynamic[
            TypeSystem`NestedGrid`PackagePrivate`alignBar[
            TypeSystem`NestedGrid`PackagePrivate`$state$$][
             TypeSystem`NestedGrid`PackagePrivate`makeFramedBar[
              TypeSystem`PackageScope`Pathbar[
              TypeSystem`NestedGrid`PackagePrivate`$path$$, 
               TypeSystem`NestedGrid`PackagePrivate`updateState[
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
                TypeSystem`NestedGrid`PackagePrivate`$path$$, 
                TypeSystem`NestedGrid`PackagePrivate`$pos$$, 
                TypeSystem`NestedGrid`PackagePrivate`$grid$$, 1596096426]]]], 
            TrackedSymbols :> {TypeSystem`NestedGrid`PackagePrivate`$path$$}],
           TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$ = Framed[
            Dynamic[
             Replace[
              MouseAnnotation[Null], {
              TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1596096426][
                Null] -> "", 
               TypeSystem`NestedGrid`PackagePrivate`$SliceMarker[1596096426][
                 Pattern[TypeSystem`NestedGrid`PackagePrivate`path, 
                  Blank[]]] :> (
                TypeSystem`NestedGrid`PackagePrivate`$lastPath = 
                 TypeSystem`NestedGrid`PackagePrivate`path; 
                TypeSystem`NestedGrid`PackagePrivate`makePathTrail[
                 TypeSystem`NestedGrid`PackagePrivate`path, 
                  TypeSystem`NestedGrid`PackagePrivate`makePathElements]), 
               Null :> Spacer[10], Blank[] :> Spacer[10]}], 
             TrackedSymbols :> {}], FrameStyle -> None, ImageMargins -> 0, 
            FrameMargins -> 0, Alignment -> Top, 
            ImageSize -> {Automatic, 14}]}, 
         DynamicBox[
          ToBoxes[
           Column[
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, {
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}, {
             TypeSystem`NestedGrid`PackagePrivate`$topBar$$, 
              TypeSystem`NestedGrid`PackagePrivate`displayScrollBar[
              TypeSystem`NestedGrid`PackagePrivate`$grid$$, 
               TypeSystem`NestedGrid`PackagePrivate`$state$$, 
               TypeSystem`NestedGrid`PackagePrivate`$pos$$], 
              TypeSystem`NestedGrid`PackagePrivate`onDesktopShow[
               TypeSystem`NestedGrid`PackagePrivate`alignBar[
               TypeSystem`NestedGrid`PackagePrivate`$state$$][
               TypeSystem`NestedGrid`PackagePrivate`$bottomBar$$]]}], 
            Spacings -> 
            If[TypeSystem`NestedGrid`PackagePrivate`$path$$ == {}, 
              0, {{}, {0, 0.05, 0}}]], StandardForm], 
          ImageSizeCache -> {226., {42., 48.}}, 
          TrackedSymbols :> {
           TypeSystem`NestedGrid`PackagePrivate`$state$$, 
            TypeSystem`NestedGrid`PackagePrivate`$grid$$}], 
         BaseStyle -> {LineBreakWithin -> False}, Deinitialization :> 
         TypeSystem`NestedGrid`PackagePrivate`deleteState[
          TypeSystem`NestedGrid`PackagePrivate`$state$$], 
         DynamicModuleValues :> {}, Initialization :> 
         Block[{$ContextPath = $ContextPath}, 
           Needs["TypeSystem`"]]], Deploy, DefaultBaseStyle -> "Deploy"]},
      "CopyTag",
      DisplayFunction->(#& ),
      InterpretationFunction->("Dataset[<>]"& )]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 ImageSize->{305, 122},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->887519111,ExpressionUUID->"ac5a3902-9a32-4f22-bd29-207e2f1b8f50"]
}, Open  ]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "Possible Issues",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount",ExpressionUUID->
  "69c9a952-005d-465d-971d-3ea735ca9b17"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CellID->1305812373,ExpressionUUID->"4839fe4f-b264-4745-9cd6-ed05d5af9e55"],

Cell["A valid set of output components has to be specified:", "ExampleText",
 CellID->414493307,ExpressionUUID->"15f0a0e4-bec5-47e3-95f1-bcc3e3103eda"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{"\"\<CaO\>\"", ",", "\"\<MgO\>\""}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->83545975,ExpressionUUID->"253e3c2a-02e0-4c6b-8452-3e8744f2d7aa"],

Cell[BoxData[
 TemplateBox[{
  "ConvertComps","compcount",
   "\"More output components (\\!\\(\\*RowBox[{\\\"1\\\"}]\\)) are required \
to solve the conversation matrix. Maybe adding oxygen ('O') and projecting \
from this component using the ProjectFrom option helps? Are all custom \
components registered using RegisterComp?\"",2,119,101,24809244206830334157,
   "Local","DataAnalysis`GeoChem`ConvertComps"},
  "MessageTemplate2"]], "Message", "MSG",
 CellLabel->"During evaluation of In[1]:=",
 CellID->347583791,ExpressionUUID->"3bc8a5ea-1788-46ea-af4e-7b4a96bbc722"],

Cell[BoxData["$Aborted"], "Output",
 ImageSize->{60, 14},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->425921722,ExpressionUUID->"e10c7b45-b9a7-42f1-9707-2efce3d29792"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{"\"\<CaO\>\"", ",", "\"\<FeO\>\"", ",", "\"\<MgO\>\""}], "}"}]}], 
  "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->304181880,ExpressionUUID->"3b04eb0d-0737-4cbf-9c0f-4f523414f30f"],

Cell[BoxData[
 TemplateBox[{
  "ConvertComps","compcount",
   "\"More output components (\\!\\(\\*RowBox[{\\\"1\\\"}]\\)) are required \
to solve the conversation matrix. Maybe adding oxygen ('O') and projecting \
from this component using the ProjectFrom option helps? Are all custom \
components registered using RegisterComp?\"",2,123,104,24809244206830334157,
   "Local","DataAnalysis`GeoChem`ConvertComps"},
  "MessageTemplate2"]], "Message", "MSG",
 CellLabel->"During evaluation of In[2]:=",
 CellID->9955164,ExpressionUUID->"f1368adf-f5be-4137-b6be-1634ee7f6560"],

Cell[BoxData["$Aborted"], "Output",
 ImageSize->{60, 14},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->260335838,ExpressionUUID->"7d3f58c1-993b-4a24-9561-2dfb70fa79fd"]
}, Open  ]],

Cell[TextData[{
 "All output components have to be defined using ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["RegisterOxide"]],"paclet:DataAnalysis/ref/RegisterOxide"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "049dfe70-830a-41ef-9775-66550ca37bc4"],
 " or ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["RegisterComp"]],"paclet:DataAnalysis/ref/RegisterComp"},
   "RefLink",
   BaseStyle->{"InlineFormula"}]], "InlineFormula",ExpressionUUID->
  "85ffeabb-89cb-4745-b84f-e93199ddde29"],
 " before they can be used:"
}], "ExampleText",
 CellID->692845351,ExpressionUUID->"84021d43-090d-48a4-9877-60c679657e90"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ConvertComps", "[", 
  RowBox[{"comps", ",", 
   RowBox[{"{", 
    RowBox[{"\"\<CaO\>\"", ",", "\"\<FeO\>\"", ",", "\"\<NotExistant\>\""}], 
    "}"}]}], "]"}]], "Input",
 CellLabel->"In[3]:=",
 CellID->107688704,ExpressionUUID->"3e02e196-aee4-4cb7-a20f-e014579117e7"],

Cell[BoxData[
 TemplateBox[{
  "ConvertComps","unknowncomp",
   "\"The target component \\\"\\!\\(\\*RowBox[{\\\"\\\\\\\"NotExistant\\\\\\\
\"\\\"}]\\)\\\" is not known. Custom compoments must be registered using \
RegisterComp before they can be used with ConvertComps.\"",2,124,105,
   24809244206830334157,"Local","DataAnalysis`GeoChem`ConvertComps"},
  "MessageTemplate2"]], "Message", "MSG",
 CellLabel->"During evaluation of In[3]:=",
 CellID->268912611,ExpressionUUID->"1f082022-112b-43f4-9b7f-6721db6b84c9"],

Cell[BoxData["$Aborted"], "Output",
 ImageSize->{60, 14},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[3]=",
 CellID->51397699,ExpressionUUID->"bee3a94c-051a-4ae5-87e8-8b8d3350e8f9"]
}, Open  ]]
}, Closed]],

Cell["", "SectionFooterSpacer",ExpressionUUID->"c70cf8f5-ca85-4a42-965d-52daa9936db2"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"ba685b81-5754-44d7-b85c-564321354ceb"],
 "See Also"
}], "SeeAlsoSection",
 WholeCellGroupOpener->True,
 CellID->1255426704,ExpressionUUID->"7662b547-17cf-4375-8dc2-c3b228232551"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["RegisterOxide"]],"paclet:DataAnalysis/ref/RegisterOxide"},
   "RefLink",
   BaseStyle->{"InlineFormula", FontFamily -> "Verdana"}]], "InlineFormula",
  ExpressionUUID->"1c848464-28bb-47b1-ba36-f3d7efa6e37d"],
 "\[NonBreakingSpace]",
 StyleBox["\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
  "InlineSeparator"],
 " ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["RegisterComp"]],"paclet:DataAnalysis/ref/RegisterComp"},
   "RefLink",
   BaseStyle->{"InlineFormula", FontFamily -> "Verdana"}]], "InlineFormula",
  ExpressionUUID->"edec254c-a7a5-4808-a0d7-8524f21fe435"],
 "\[NonBreakingSpace]",
 StyleBox["\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
  "InlineSeparator"],
 " ",
 Cell[BoxData[
  TemplateBox[{Cell[
     TextData["MolarMass"]],"paclet:DataAnalysis/ref/MolarMass"},
   "RefLink",
   BaseStyle->{"InlineFormula", FontFamily -> "Verdana"}]], "InlineFormula",
  ExpressionUUID->"fb683a73-feb5-4d98-9799-6263281930b4"]
}], "SeeAlso",
 CellID->929782353,ExpressionUUID->"fc994072-36cc-45db-936e-ffc375abc56b"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{6},
   "Spacer1"]],ExpressionUUID->"af025198-f51b-429f-ab23-62cd6137b892"],
 "Related Guides"
}], "MoreAboutSection",
 WholeCellGroupOpener->True,
 CellID->38303248,ExpressionUUID->"f0da7dff-ddc6-4720-871a-e9453490905f"],

Cell["", "SectionHeaderSpacer",ExpressionUUID->"e0b1db50-4695-4583-a2bc-bfc85e19f396"],

Cell[BoxData[
 TemplateBox[{Cell[
    TextData["DataAnalysis Package"]],
   "paclet:DataAnalysis/guide/DataAnalysis"},
  "RefLink",
  BaseStyle->"MoreAbout"]], "MoreAbout",
 CellID->4594135,ExpressionUUID->"ec8162f5-4644-41bc-9fca-7326e06e8d01"]
}, Open  ]],

Cell[" ", "FooterCell",ExpressionUUID->"b4f7012f-c6d3-4a95-8d78-bbf4d89f21e4"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{725, 750},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"ConvertComps",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "SymbolColor", "LinkTrails" -> 
  GridBox[{{
      RowBox[{
        ButtonBox[
        "DataAnalysis Package", ButtonData -> 
         "paclet:DataAnalysis/guide/DataAnalysis", 
         BaseStyle -> {"Link", "DockedLinkTrail"}]}]}}, ColumnAlignments -> 
    Left], "HasOptions" -> False, "ExampleCounter" -> 1, "NeedPlatMsgIn" -> 
  None, "RootCaptions" -> "", 
  "Metadata" -> {
   "built" -> "{2018, 3, 25, 14, 36, 5.0856475}", 
    "history" -> {"XX", "", "", ""}, "context" -> "DataAnalysis`GeoChem`", 
    "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Data Analysis Package Symbol", "language" -> "en", "paclet" -> 
    "DataAnalysis Package", "status" -> "None", "summary" -> 
    "ConvertComps[datatable, {component1, component2, ...}] converts the \
compositional data in a DataTable to a set of new chemical components using \
matrix transformations.", "synonyms" -> {}, "tabletags" -> {}, "title" -> 
    "ConvertComps", "titlemodifier" -> "", "windowtitle" -> "ConvertComps", 
    "type" -> "Symbol", "uri" -> "DataAnalysis/ref/ConvertComps"}, 
  "SearchTextTranslated" -> "", "NewStyles" -> False},
CellContext->"Global`",
FrontEndVersion->"11.2 for Microsoft Windows (64-bit) (September 10, 2017)",
StyleDefinitions->Notebook[{
   Cell[
    StyleData[
    StyleDefinitions -> FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]]], 
   Cell[
    StyleData["Input"], CellContext -> "Global`"], 
   Cell[
    StyleData["Output"], CellContext -> "Global`"]}, Visible -> False, 
  TaggingRules -> {"NewStyles" -> False}, FrontEndVersion -> 
  "11.2 for Microsoft Windows (64-bit) (September 10, 2017)", 
  StyleDefinitions -> "Default.nb"]
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "PrimaryExamplesSection"->{
  Cell[11271, 288, 435, 11, 35, "PrimaryExamplesSection",ExpressionUUID->"ff455216-0189-43eb-b1e6-7cfdd9cfa53c",
   CellTags->"PrimaryExamplesSection",
   CellID->177371869]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"PrimaryExamplesSection", 301883, 6263}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[584, 21, 4332, 97, 55, "AnchorBarGrid",ExpressionUUID->"38a4fbea-a108-43ed-ba31-5310499338e7",
 CellID->1],
Cell[CellGroupData[{
Cell[4941, 122, 397, 9, 52, "ObjectNameGrid",ExpressionUUID->"66d314a9-af02-4656-813c-de92a8c8accf"],
Cell[5341, 133, 1118, 27, 131, "Usage",ExpressionUUID->"0581ac93-d023-4505-99e1-22eb6ebf8593"]
}, Open  ]],
Cell[CellGroupData[{
Cell[6496, 165, 855, 21, 37, "NotesSection",ExpressionUUID->"c463a86f-cf90-477a-a85b-5c7d3822a4f2",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->594402440],
Cell[7354, 188, 86, 0, 70, "SectionHeaderSpacer",ExpressionUUID->"46e299fa-ce36-406a-95bc-329111c1bcf0"],
Cell[7443, 190, 448, 10, 70, "Notes",ExpressionUUID->"723fe90f-4e11-4a8a-8ed6-fa448706312f",
 CellID->566713493],
Cell[7894, 202, 461, 12, 70, "Notes",ExpressionUUID->"007ba56a-813e-40fd-95c5-6349074331fb",
 CellID->434029681],
Cell[8358, 216, 108, 0, 70, "Notes",ExpressionUUID->"62f68220-ad07-4bee-9907-106f40cddaf6"],
Cell[8469, 218, 2676, 63, 70, "3ColumnTableMod",ExpressionUUID->"e3c3fe8b-516b-4fb2-8b6e-078619b579a7"],
Cell[11148, 283, 86, 0, 70, "SectionFooterSpacer",ExpressionUUID->"10ef26bd-cb52-48c7-b27e-b15bc1975998"]
}, Closed]],
Cell[CellGroupData[{
Cell[11271, 288, 435, 11, 35, "PrimaryExamplesSection",ExpressionUUID->"ff455216-0189-43eb-b1e6-7cfdd9cfa53c",
 CellTags->"PrimaryExamplesSection",
 CellID->177371869],
Cell[CellGroupData[{
Cell[11731, 303, 308, 7, 29, "ExampleSection",ExpressionUUID->"28e1692d-f73a-4d75-ae73-e2f2e5fe4a43",
 CellID->150116438],
Cell[12042, 312, 136, 1, 38, "ExampleText",ExpressionUUID->"dbec32ca-e344-429e-8e8e-91fd1dfa2ee7",
 CellID->441854924],
Cell[CellGroupData[{
Cell[12203, 317, 516, 14, 43, "Input",ExpressionUUID->"c2d8430c-328d-4589-a9e4-023b4ea39c0f",
 CellID->137011833],
Cell[12722, 333, 22836, 445, 143, "Output",ExpressionUUID->"e2801d89-54aa-4434-aeac-07a771a2bd71",
 CellID->372216438]
}, Open  ]],
Cell[35573, 781, 145, 1, 38, "ExampleText",ExpressionUUID->"ffaf77ee-8e4d-452f-88f6-7d08ffe881bd",
 CellID->253725336],
Cell[35721, 784, 461, 10, 43, "Input",ExpressionUUID->"a71d670a-7b4e-4651-beed-b2a8a25b8f6b",
 CellID->114204396],
Cell[36185, 796, 144, 1, 38, "ExampleText",ExpressionUUID->"371d9177-eb32-402e-95b0-a28954586d65",
 CellID->265383507],
Cell[CellGroupData[{
Cell[36354, 801, 585, 14, 43, "Input",ExpressionUUID->"53e15260-4c55-4c1b-93ba-aa5f5558b9e0",
 CellID->308611695],
Cell[36942, 817, 23889, 474, 70, "Output",ExpressionUUID->"56a7f5f0-0a5d-473e-8483-95870929d8fe",
 CellID->23999572]
}, Open  ]],
Cell[60846, 1294, 142, 1, 70, "ExampleText",ExpressionUUID->"ab9607be-7a45-457c-91e3-9078ad1b03dc",
 CellID->402561950],
Cell[CellGroupData[{
Cell[61013, 1299, 556, 13, 70, "Input",ExpressionUUID->"c9e3a717-1861-4f1e-bb4e-db67ff096c48",
 CellID->596560019],
Cell[61572, 1314, 26826, 533, 70, "Output",ExpressionUUID->"e0d5a165-ac30-4a36-a9cd-dd6fb98c8bbb",
 CellID->835530826]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[88447, 1853, 284, 7, 70, "ExampleSection",ExpressionUUID->"07f4b7e8-5bcd-484a-b6e0-4f4cdbc568a7"],
Cell[CellGroupData[{
Cell[88756, 1864, 296, 7, 70, "ExampleSubsection",ExpressionUUID->"437f5865-64e7-439c-81c7-5e1c44d6dba7"],
Cell[89055, 1873, 271, 5, 70, "ExampleText",ExpressionUUID->"29d59a8d-6555-4478-8da5-1deac777787b",
 CellID->115509554],
Cell[CellGroupData[{
Cell[89351, 1882, 479, 12, 70, "Input",ExpressionUUID->"710f73e8-6802-4970-932a-6676713bb9db",
 CellID->525949040],
Cell[89833, 1896, 24044, 478, 70, "Output",ExpressionUUID->"e173f9b8-54c1-4ec9-ab67-81e4f1a30377",
 CellID->41198727]
}, Open  ]],
Cell[113892, 2377, 393, 10, 70, "ExampleText",ExpressionUUID->"0d4923c6-205c-41ce-887f-1ad3e726dd13",
 CellID->239296880],
Cell[CellGroupData[{
Cell[114310, 2391, 533, 13, 70, "Input",ExpressionUUID->"546999f1-6f2d-40e5-a8ee-c3f03bf5f014",
 CellID->26895946],
Cell[114846, 2406, 23384, 458, 70, "Output",ExpressionUUID->"8c8a6c2e-b434-4124-b363-968005c19680",
 CellID->284405095]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[138279, 2870, 294, 7, 70, "ExampleSubsection",ExpressionUUID->"396b3f3e-cad2-4410-b7ee-c9f9c9f4ff46"],
Cell[138576, 2879, 153, 1, 70, "ExampleText",ExpressionUUID->"e94cf749-03ad-46ba-9c24-fe95bff9f1c3",
 CellID->20265156],
Cell[CellGroupData[{
Cell[138754, 2884, 481, 12, 70, "Input",ExpressionUUID->"95d42d47-8cc9-4fa5-9885-0360e6eb97fb",
 CellID->376986494],
Cell[139238, 2898, 23716, 466, 70, "Output",ExpressionUUID->"631cc373-bc15-48a6-9c4b-866fd5c97a2c",
 CellID->829780705]
}, Open  ]],
Cell[162969, 3367, 388, 10, 70, "ExampleText",ExpressionUUID->"6d9bd8e8-1a3f-49a8-a5b1-dd23c5b3ecfe",
 CellID->63859190],
Cell[CellGroupData[{
Cell[163382, 3381, 534, 13, 70, "Input",ExpressionUUID->"3c21079a-539c-49b8-b6e0-7ea8c2328de1",
 CellID->569128682],
Cell[163919, 3396, 23387, 458, 70, "Output",ExpressionUUID->"698aec4c-73aa-4eca-8846-642c92b9ee44",
 CellID->99008624]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[187355, 3860, 292, 7, 70, "ExampleSubsection",ExpressionUUID->"cedc60a0-2a67-4724-b324-3aee58b0d65e"],
Cell[187650, 3869, 441, 11, 70, "ExampleText",ExpressionUUID->"33667d5f-3d24-4c5f-a6e0-33b0520a7f21",
 CellID->190558207],
Cell[CellGroupData[{
Cell[188116, 3884, 585, 14, 70, "Input",ExpressionUUID->"01696299-7a75-4817-a763-3cd8ce1a51ff",
 CellID->373214753],
Cell[188704, 3900, 23889, 474, 70, "Output",ExpressionUUID->"f85ccf9c-4018-4a13-b6cc-7c3a74f84814",
 CellID->236150699]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[212642, 4380, 294, 7, 70, "ExampleSubsection",ExpressionUUID->"a3d7e068-b99d-4d54-94af-bafb751a50ab"],
Cell[212939, 4389, 441, 11, 70, "ExampleText",ExpressionUUID->"a2fb16b3-403a-4b9e-b755-6046b8b25c86",
 CellID->61957344],
Cell[CellGroupData[{
Cell[213405, 4404, 587, 14, 70, "Input",ExpressionUUID->"83e08b55-f30e-47fa-94ee-5f2c7c04b0c6",
 CellID->518357194],
Cell[213995, 4420, 23879, 474, 70, "Output",ExpressionUUID->"7fb921f7-6deb-44f3-a763-6023b9b78468",
 CellID->134370509]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[237923, 4900, 294, 7, 70, "ExampleSubsection",ExpressionUUID->"90c2f442-f99e-458e-8c7b-5fb28f1d09c8"],
Cell[238220, 4909, 236, 4, 70, "ExampleText",ExpressionUUID->"3458ccc8-1f5a-4f99-af7c-c6ba6fdee88a",
 CellID->136280436],
Cell[CellGroupData[{
Cell[238481, 4917, 468, 11, 70, "Input",ExpressionUUID->"6e4043b0-6044-4dfb-afee-e6cee4035032",
 CellID->803104785],
Cell[238952, 4930, 29622, 592, 70, "Output",ExpressionUUID->"bff9c38d-c0b4-43bc-9291-cd036580590d",
 CellID->740491818]
}, Open  ]],
Cell[CellGroupData[{
Cell[268611, 5527, 587, 14, 70, "Input",ExpressionUUID->"5b82caa3-23cc-449e-a049-9895c970afa2",
 CellID->234974940],
Cell[269201, 5543, 23897, 474, 70, "Output",ExpressionUUID->"ac5a3902-9a32-4f22-bd29-207e2f1b8f50",
 CellID->887519111]
}, Open  ]]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[293159, 6024, 310, 7, 70, "ExampleSection",ExpressionUUID->"4839fe4f-b264-4745-9cd6-ed05d5af9e55",
 CellID->1305812373],
Cell[293472, 6033, 151, 1, 70, "ExampleText",ExpressionUUID->"15f0a0e4-bec5-47e3-95f1-bcc3e3103eda",
 CellID->414493307],
Cell[CellGroupData[{
Cell[293648, 6038, 258, 6, 70, "Input",ExpressionUUID->"253e3c2a-02e0-4c6b-8452-3e8744f2d7aa",
 CellID->83545975],
Cell[293909, 6046, 573, 10, 70, "Message",ExpressionUUID->"3bc8a5ea-1788-46ea-af4e-7b4a96bbc722",
 CellID->347583791],
Cell[294485, 6058, 220, 5, 35, "Output",ExpressionUUID->"e10c7b45-b9a7-42f1-9707-2efce3d29792",
 CellID->425921722]
}, Open  ]],
Cell[CellGroupData[{
Cell[294742, 6068, 282, 7, 70, "Input",ExpressionUUID->"3b04eb0d-0737-4cbf-9c0f-4f523414f30f",
 CellID->304181880],
Cell[295027, 6077, 571, 10, 70, "Message",ExpressionUUID->"f1368adf-f5be-4137-b6be-1634ee7f6560",
 CellID->9955164],
Cell[295601, 6089, 220, 5, 35, "Output",ExpressionUUID->"7d3f58c1-993b-4a24-9561-2dfb70fa79fd",
 CellID->260335838]
}, Open  ]],
Cell[295836, 6097, 667, 17, 70, "ExampleText",ExpressionUUID->"84021d43-090d-48a4-9877-60c679657e90",
 CellID->692845351],
Cell[CellGroupData[{
Cell[296528, 6118, 292, 7, 70, "Input",ExpressionUUID->"3e02e196-aee4-4cb7-a20f-e014579117e7",
 CellID->107688704],
Cell[296823, 6127, 515, 9, 70, "Message",ExpressionUUID->"1f082022-112b-43f4-9b7f-6721db6b84c9",
 CellID->268912611],
Cell[297341, 6138, 219, 5, 35, "Output",ExpressionUUID->"bee3a94c-051a-4ae5-87e8-8b8d3350e8f9",
 CellID->51397699]
}, Open  ]]
}, Closed]],
Cell[297587, 6147, 86, 0, 70, "SectionFooterSpacer",ExpressionUUID->"c70cf8f5-ca85-4a42-965d-52daa9936db2"]
}, Open  ]],
Cell[CellGroupData[{
Cell[297710, 6152, 260, 7, 70, "SeeAlsoSection",ExpressionUUID->"7662b547-17cf-4375-8dc2-c3b228232551",
 CellID->1255426704],
Cell[297973, 6161, 1112, 28, 70, "SeeAlso",ExpressionUUID->"fc994072-36cc-45db-936e-ffc375abc56b",
 CellID->929782353]
}, Open  ]],
Cell[CellGroupData[{
Cell[299122, 6194, 266, 7, 70, "MoreAboutSection",ExpressionUUID->"f0da7dff-ddc6-4720-871a-e9453490905f",
 CellID->38303248],
Cell[299391, 6203, 86, 0, 70, "SectionHeaderSpacer",ExpressionUUID->"e0b1db50-4695-4583-a2bc-bfc85e19f396"],
Cell[299480, 6205, 245, 6, 70, "MoreAbout",ExpressionUUID->"ec8162f5-4644-41bc-9fca-7326e06e8d01",
 CellID->4594135]
}, Open  ]],
Cell[299740, 6214, 78, 0, 70, "FooterCell",ExpressionUUID->"b4f7012f-c6d3-4a95-8d78-bbf4d89f21e4"]
}
]
*)

(* End of internal cache information *)

