# command: system.display-sharing-link
Description: Displays a sharing link to the user. Web only.

Inputs: `string`

---
# command: system.download-file
Description: Initiates a file download of the specified Blob to the user. Web only.

Inputs: `( unknown | DownloadArgs | string )`

DownloadArgs properties:
```json
{
  "fileNameAttribute": {
    "description": "Optionally specify the record attribute to be used as the file name. Defaults to 'name'.",
    "type": "string"
  },
  "fileNameExtension": {
    "description": "Optionally specify the file name extension to be used if the file name does not end with one. Defaults to '.json'.",
    "type": "string"
  },
  "name": {
    "description": "A filename for the download.",
    "type": "string"
  },
  "result": {
    "anyOf": [
      {},
      {
        "$ref": "Blob"
      },
      {
        "type": "string"
      }
    ],
    "description": "The blob to download."
  },
  "resultAttribute": {
    "description": "Optionally specify the record attribute to be used as the result content. Defaults to 'result'.",
    "type": "string"
  }
}
```

---
# command: system.open-url
Description: Opens a URL, either in the system browser or whatever app is appropriate for the scheme of the URL. If {@link Features } are included as context, then the URL may contain substitution tokens in the format {FIELD_NAME} where FIELD_NAME is the name of a field in the first feature in the context. In this case, the {FIELD_NAME} is substituted with value of the FIELD_NAME field from the feature feature in the {@link Features }, e.g. https://www.google.com/search?q={NAME}, where the value of the NAME field in the first feature from the context is 'Jasper National Park' would produce the result https://www.google.com/search?q=Jasper National Park. Zero to many substitution tokens may be included. If maps are included as context, {@link LocationToken} can be used to access properties on the first map's view. In Web, if both layers and maps are included as context, then {@link LayerToken} can be used to access properties on the first layer.

Inputs: `( WebOpenUrlArgs | OpenUrlArgs | string )`

WebOpenUrlArgs properties:
```json
{
  "coordinateOption": {
    "anyOf": [
      {
        "$ref": "#/definitions/CoordinateOptionProperties"
      },
      {
        "$ref": "#/definitions/Model"
      },
      {
        "type": "string"
      }
    ],
    "description": "The coordinate option to use when formatting coordinate tokens. Valid options must support latitude and longitude. Can be a reference to an existing 'coordinate-option' item, or inline JSON defining a coordinate option item."
  },
  "features": {
    "description": "Features to use for the command/operation."
  },
  "geometry": {
    "description": "The geometry to use for the command/operation."
  },
  "layers": {
    "description": "Layer(s) to use for the command/operation."
  },
  "maps": {
    "description": "Map(s) to use for the command/operation."
  },
  "numberFormatterLocale": {
    "description": "The locale to use for number token substitution. Accepts a valid locale code (example: \"en\", \"fr\" or \"de-AT\"), or \"device\" or \"invariant\" which will use the device's current culture or the invariant culture, respectively. Default is invariant culture.",
    "type": "string"
  },
  "url": {
    "description": "The URL to open. In Web, the supported schemes include http, and https.",
    "type": "string",
    "isRequired": "true"
  }
}
```

OpenUrlArgs properties:
```json
{
  "context": {
    "description": "An object containing arguments that this command was originally executed with. This property is populated automatically when using a bound action. The URL will be the configured value, and the context is automatically populated as the argument that was passed into the execute method when the command was executed in context."
  },
  "coordinateOption": {
    "anyOf": [
      {
        "$ref": "#/definitions/CoordinateOptionProperties"
      },
      {
        "$ref": "#/definitions/Model"
      },
      {
        "type": "string"
      }
    ],
    "description": "The coordinate option to use when formatting coordinate tokens. Valid options must support latitude and longitude. Can be a reference to an existing 'coordinate-option' item, or inline JSON defining a coordinate option item."
  },
  "numberFormatterLocale": {
    "description": "The locale to use for number token substitution. Accepts a valid locale code (example: \"en\", \"fr\" or \"de-AT\"), or \"device\" or \"invariant\" which will use the device's current culture or the invariant culture, respectively. Default is invariant culture.",
    "type": "string"
  },
  "url": {
    "description": "The URL to open. In Web, the supported schemes include http, and https.",
    "type": "string",
    "isRequired": "true"
  }
}
```

---
# command: system.repeat-action
Description: Executes Actions repeatedly until manually terminated or until given number of repetitions are fulfilled. Web only.

Inputs: `( @vertigis.arcgis-extensions.support.Action.BoundAction | @vertigis.arcgis-extensions.support.Action.CompositeAction | RepeatActionArgs | string )`

@vertigis.arcgis-extensions.support.Action.BoundAction properties:
```json
{
  "arguments": {
    "description": "Arguments for the action. Can either be a primitive value (string, number, boolean), or a plain JSON object containing named arguments.",
    "isRequired": "true"
  },
  "name": {
    "description": "Determines which action to perform. It is up to the calling application how it transforms an action name into actual executable code.",
    "type": "string",
    "isRequired": "true"
  }
}
```

RepeatActionArgs properties:
```json
{
  "action": {
    "description": "The actions to be repeatedly executed."
  },
  "repetitions": {
    "description": "The number of times actions will be executed. If omitted or given a value of less than 1, actions will continue to be executed until manual termination.",
    "type": "number"
  }
}
```

---
