<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  Add-in only ("classic") XML manifest for Valoon for Excel.

  Two things here are generated at build time by webpack.config.js and must not
  be hand-edited:

    * <Version> — the 0.0.0.0 below is a placeholder. Office requires a
      four-part version, release-please writes three-part semver into
      package.json, so the build injects "<package.json version>.0".
    * https://excel.valoon.crucerlabs.com/ — rewritten to the production origin on a
      production build. Editing the URLs here breaks `npm run dev-server`.

  Everything else is load-bearing for Marketplace validation; see
  CONTRIBUTING.md before changing <Permissions>, <SupportUrl> or the icons.

  <DisplayName> is the string Excel shows in its add-ins dialog, and it is the
  one a person has to recognise among every other add-in in the list, so it
  names the client rather than only the company. Note for a future AppSource
  submission: Microsoft's listing guidance asks that a name NOT contain the
  Microsoft product it extends, and asks for "function for brand" instead. That
  is a listing recommendation rather than a schema rule; it is a decision to
  revisit at submission, where DisplayName must also match the name reserved in
  Partner Center.
-->
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
  xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
  <Id>e3da425f-5f3c-42a9-aee3-68088ab4257f</Id>
  <Version>1.1.0.0</Version>
  <ProviderName>Valoon GmbH</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="Valoon for Excel"/>
  <Description DefaultValue="Turn the cells you select into a Valoon ticket or time entry without leaving Excel. The fields are proposed from the selection, and nothing is created until you have reviewed it and confirmed."/>
  <IconUrl DefaultValue="https://excel.valoon.crucerlabs.com/assets/icon-32.png"/>
  <HighResolutionIconUrl DefaultValue="https://excel.valoon.crucerlabs.com/assets/icon-64.png"/>
  <!-- Must resolve publicly with no authentication: Microsoft's validators
       fetch it, and a 404 fails submission. This service serves it itself. -->
  <SupportUrl DefaultValue="https://excel.valoon.crucerlabs.com/support"/>
  <!-- No <AppDomains>: the task pane and the API are one origin, and the
       sign-up link opens in the system browser rather than navigating the
       pane. -->
  <Hosts>
    <Host Name="Workbook"/>
  </Hosts>
  <!-- ExcelApi 1.7 is where Worksheet.onSelectionChanged arrives, and it keeps
       volume-licensed Office 2019 in scope. Anything newer (multi-area
       selections are 1.9) is asked at runtime with isSetSupported.

       The Dialog API (DialogApi, a separate requirement set) is deliberately
       not required: sign-in never opens one. See
       src/components/SignInGate.tsx. -->
  <Requirements>
    <Sets DefaultMinVersion="1.1">
      <Set Name="ExcelApi" MinVersion="1.7"/>
    </Sets>
  </Requirements>
  <DefaultSettings>
    <SourceLocation DefaultValue="https://excel.valoon.crucerlabs.com/taskpane.html"/>
  </DefaultSettings>
  <!-- Microsoft requires ReadWriteDocument for every application-specific API
       (anything under Excel.run), even for code that only reads. The add-in
       never writes to the workbook. Changing this forces every customer's
       admin to consent again. -->
  <Permissions>ReadWriteDocument</Permissions>
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Hosts>
      <Host xsi:type="Workbook">
        <!-- No <FunctionFile>: the one control opens the task pane, and a
             function file exists only for ExecuteFunction actions. -->
        <DesktopFormFactor>
          <ExtensionPoint xsi:type="PrimaryCommandSurface">
            <OfficeTab id="TabHome">
              <Group id="Valoon.Group">
                <Label resid="Group.Label"/>
                <Icon>
                  <bt:Image size="16" resid="Icon.16x16"/>
                  <bt:Image size="32" resid="Icon.32x32"/>
                  <bt:Image size="80" resid="Icon.80x80"/>
                </Icon>
                <Control xsi:type="Button" id="Valoon.TaskpaneButton">
                  <Label resid="TaskpaneButton.Label"/>
                  <Supertip>
                    <Title resid="TaskpaneButton.Label"/>
                    <Description resid="TaskpaneButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16"/>
                    <bt:Image size="32" resid="Icon.32x32"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <TaskpaneId>Valoon.Taskpane</TaskpaneId>
                    <SourceLocation resid="Taskpane.Url"/>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Icon.16x16" DefaultValue="https://excel.valoon.crucerlabs.com/assets/icon-16.png"/>
        <bt:Image id="Icon.32x32" DefaultValue="https://excel.valoon.crucerlabs.com/assets/icon-32.png"/>
        <bt:Image id="Icon.80x80" DefaultValue="https://excel.valoon.crucerlabs.com/assets/icon-80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Taskpane.Url" DefaultValue="https://excel.valoon.crucerlabs.com/taskpane.html"/>
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="Group.Label" DefaultValue="Valoon"/>
        <bt:String id="TaskpaneButton.Label" DefaultValue="Create in Valoon"/>
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Open Valoon to create a ticket or time entry from the selected cells."/>
      </bt:LongStrings>
    </Resources>
  </VersionOverrides>
</OfficeApp>
