--- layout: "fluid/docs_base" version: "<$ version.current.name $>" versionHref: "<$ version.current.href $>" path: "<$ doc.path $>" category: api id: "<$ doc.name|lower|replace(' ','-') $>" title: "<@ if doc.docType == "directive" @><$ doc.name | dashCase $><@ else @><$ doc.name $><@ endif @>" header_sub_title: "Ionic API Documentation" doc: "<$ doc.name $>" docType: "<$ doc.docType $>" <@ if doc.demo @>show_preview_device: true preview_device_url: "<$ doc.demo $>www/" angular_controller: APIDemoCtrl <@ endif @> --- <@ macro paramList(paramData) -@> <@- if paramData -@>( <@- for param in paramData -@> <$ param | escape $><@ if not loop.last @>, <@ endif @> <@- endfor @>) <@- endif @> <@- endmacro -@> <@ macro returnObject(params) -@> <@- if params -@>

Property | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.key $> | <$ param.type | code $> | <$ param.description | marked $>
<@ endfor @>

<@- endif @> <@- endmacro -@> <@ macro githubViewLink(doc) -@> <$ doc.fileInfo.relativePath $> (line <$ doc.location.start.line+1 $>) <@- endmacro -@> <@ macro paramTable(params, isDirective) -@>

<@ if isDirective @>Attr<@ else @>Param<@ endif @> | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.name $> <@ if param.alias @>| <$ param.alias $><@ endif @> <@ if param.type.optional @> (optional) <@ endif @> | <$ typeList(param.typeList) $> | <$ param.description | marked $> <@ if param.default @> (default: <$ param.default $>) <@ endif @>
<@ endfor @>

<@- endmacro -@> <@ macro inputTable(params, isDirective) -@>

Attr | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.name $> | `<$ param.type $>` | <$ param.description | marked $>
<@ endfor @>

<@- endmacro -@> <@ macro outputTable(params, isDirective) -@>

Attr | Details
--- | ---
<@ for param in params @>
<$ param.name $> | <$ param.description | marked $>
<@ endfor @>

<@- endmacro -@> <@- macro functionSyntax(fn) @> <@- set sep = joiner(', ') -@> `<$ fn.name $><@- if not fn.isProperty @>(<@ endif -@><@- for param in fn.params @><$ sep() $> <@- if param.type.optional @>[<@ endif -@> <$ param.name $> <@- if param.type.optional @>]<@ endif -@> <@ endfor @><@- if not fn.isProperty @>)<@ endif -@>` <@ if fn.alias @>(alias: <$ fn.alias $>)<@ endif @> <@ endmacro -@> <@ macro typeList(types) -@> <@ set separator = joiner("|") @> <@ for type in types @><$ separator() $><$ type | code $><@ endfor @> <@- endmacro -@> <@- macro typeInfo(fn) -@> <$ typeList(fn.typeList) $> <$ fn.description | marked $> <@- endmacro -@> <@- macro sassTable(files) -@>
<@ if files.length > 1 @> <@ for file in files @> <@ if loop.first @> <$ file.platform | platform $> <@ else @> <$ file.platform | platform $> <@ endif @> <@ endfor @> <@ else @>

### <$ files[0].platform | platform $>

<@ endif @>
<@ for file in files @>

Property | Default | Description
--- | --- | ---
<@ for prop in file.props @>
`$<$ prop.name $>` <@ if prop.default @> | <$ prop.default | code $> <@ else @> | <@ endif @> | <$ prop.description | marked $>
<@ endfor @>

<@ endfor @>
<@- endmacro -@> <@ block body @> <@ block content @> <@ block header @>

# <@ if doc.docType == "directive" @> <$ doc.name | dashCase $> <@ else @> <$ doc.name $> <@- if doc.decorators[0].argumentInfo[0].selector @>

### `<$ doc.decorators[0].argumentInfo[0].selector $>`

<@ endif -@> <@ endif @> <@ if doc.parent @>
Child of <$ doc.parent $> <@ endif @> <@ if doc.delegate @>
Delegate: <$ doc.delegate $> <@ endif @>

Improve this doc <@ if doc.codepen @> {% include codepen.html id="<$ doc.codepen $>" %} <@ endif @> <@ endblock @> <@ block description @> <$ doc.description | marked $> <@ endblock @> <@ if doc.usage @>

## Usage

<@ block usage @> <$ doc.usage | marked $> <@ endblock @> <@ endif @> <@ if doc.properties @>

## Attributes

Attribute <@ set hasTypes = false @> <@ for prop in doc.properties @> <@ if prop.type @> <@ set hasTypes = true @> <@ endif @> <@ endfor @> <@ if hasTypes @> | Type <@ endif @> | Description
--- | --- | ---
<@ for prop in doc.properties @>
<$ prop.name $> <@ if hasTypes @> | <$ prop.type.name $> <@ endif @> | <$ prop.description $>
<@ endfor @>

<@ endif @> <@- if doc.statics.length -@>

## Static Members

<@- for method in doc.statics @><@ if not method.internal @>

### <$ functionSyntax(method) $>

<$ method.description $> <@ if method.params @> <$ paramTable(method.params) $> <@ endif @> <@ if method.this @>

#### Method's `this` <$ method.this $>

<@ endif @> <@ if method.returns @>
Returns: <$ typeInfo(method.returns) $> <@ if method.returnsObjectParams @> <$ returnObject(method.returnsObjectParams) $> <@ endif @>
<@ endif @> <@ endif @> <@ endfor -@> <@ endif @> <@- if doc.members and doc.members.length @>

## Instance Members

<@- for method in doc.members @>

### <$ functionSyntax(method) $>

<$ method.description $> <@ if method.params @> <$ paramTable(method.params) $> <@ endif @> <@ if method.this @>

#### Method's `this` <$ method.this $>

<@ endif @> <@ if method.returns @>
Returns: <$ typeInfo(method.returns) $> <@ if method.returnsObjectParams @> <$ returnObject(method.returnsObjectParams) $> <@ endif @>
<@ endif @> <@ endfor -@> <@- endif -@> <@- if doc.inputs and doc.inputs.length @>

## Input Properties

<$ inputTable(doc.inputs) $> <@- endif -@> <@- if doc.outputs and doc.outputs.length @>

## Output Events

<$ outputTable(doc.outputs) $> <@- endif -@> <@ block advanced @> <@- if doc.advanced -@>

## Advanced

<$ doc.advanced | marked $> <@- endif -@> <@ endblock @> <@ if doc.sassVariables @>

## Sass Variables

<$ sassTable(doc.sassVariables) $> <@ endif @> <@- if doc.see @>

## Related

<@ for s in doc.see @> <$ s | safe $> <@- if not loop.last @>,<@- endif -@> <@- endfor -@> <@- endif -@> <@ endblock @> <@ endblock @>