@esri/application-base-js
v0.0.31
Published
A core class for creating a configurable application using JavaScript/TypeScript
Downloads
80
Readme
ApplicationBase
A class designed to handle common tasks of configurable ArcGIS Web Applications.
See Configurable App Examples using this class.
Purpose
The purpose of this ApplicationBase is to handle fetching and managing ArcGIS Online information used in configurable applications. The ApplicationBase queries and maintains:
- Portal information
- User information
- Item data (webscenes, webmaps, group information, group items)
- Configured application information
- URL parameters
The ApplicationBase will handle fetching this information, store it, and perform setup when necessary.
API
This is the API for the ApplicationBase class. ApplicationBase.js
Constructor
new ApplicationBase(ApplicationConfig: ApplicationConfig, ApplicationBaseConfig: ApplicationBaseConfig)
Constructor Options
See ApplicationConfig and ApplicationBaseConfig for more information.
ApplicationConfig
|property|description|type|default| |---|---|---|---| |appid|Application ID for querying application configuration|string|""| |group|Group ID for querying a portal group|string or string[]|""| |webscene|WebScene ID for querying a webscene|string or string[]|"19faa71a3bf6468cae35b4fce9393a7d"| |webmap|WebMap ID for querying a webmap|string or string[]|""| |title|Title of the application|string|""| |portalUrl|URL to the ArcGIS Portal|string|"https://www.arcgis.com"| |oauthappid|oAuth authentication ID|string|""| |proxyUrl|Enter the url to the proxy if needed by the application. See the Using the proxy page help topic for details.|string|""| |units|Application measurement units|string|""| |helperServices|Object containing URLs to various helper services|HelperServices|null|
Example:
{
"appid": "",
"group": "",
"title": "",
"webmap": "default",
"webscene": "",
"portalUrl": "https://www.arcgis.com",
"oauthappid": "",
"proxyUrl": "",
"units": "",
}
ApplicationBaseConfig
|property|description|type|default|
|---|---|---|---|
|webscene.default|The default id to query when not set|string|""|
|webscene.fetch|When true the application will query for a webscene|Boolean|true|
|webscene.fetchMultiple|When true the application will query for multiple webscenes if necessary|Boolean|true|
|webmap.default|The default id to query when not set|string|""|
|webmap.fetch|When true the application will query for a webmap|Boolean|false|
|webmap.fetchMultiple|When true the application will query for multiple webmaps if necessary|Boolean|true|
|group.fetchInfo|When true the application will query for a group's information|Boolean|false|
|group.fetchItems|When true the application will query for a group's items|Boolean|false|
|group.itemParams|Defines query paramaters for fetching group items|itemParams|{}|
|group.fetchMultiple|When true the application will query for multiple groups if necessary|Boolean|true|
|portal.fetch|When true the application will query arcgis.com for default settings for helper services, units etc. If you want to use custom settings for units or any of the helper services set this to false then enter default values for any items you need using the helper services and units properties.|Boolean|true|
|urlParams|Defines which URL parameters should be captured and stored into the config for use within the application|String[]|See below|
|environment.webTierSecurity|Support sending credentials with AJAX requests to specific domains. This will allow editing of feature services secured with web-tier authentication|Boolean|false|
|environment.isEsri|Most users will not need to modify this value. For Esri hosting environments only. Will automatically create a portalUrl
and proxyUrl
for the application. Only set this is to true if the app is going to be stored on Esri's hosting servers. If you are using your own custom hosted portal, set the portalUrl
in instead of setting this to true.| Boolean|false|
Example:
{
"environment": {
"isEsri": false,
"webTierSecurity": false
},
"localStorage": {
"fetch": true
},
"group": {
"default": "908dd46e749d4565a17d2b646ace7b1a",
"fetchInfo": false,
"fetchItems": false,
"itemParams": {
"sortField": "modified",
"sortOrder": "desc",
"num": 9,
"start": 0
}
},
"portal": {
"fetch": true
},
"urlParams": [
"appid",
"center",
"components",
"embed",
"extent",
"find",
"group",
"level",
"marker",
"oauthappid",
"portalUrl",
"viewpoint",
"webmap",
"webscene"
],
"webmap": {
"default": "1970c1995b8f44749f4b9b6e81b5ba45",
"fetch": true
},
"webscene": {
"default": "e8f078ba0c1546b6a6e0727f877742a5",
"fetch": false
}
}
itemParams
Example:
{
"query": "group:\"{groupid}\" AND -type:\"Code Attachment\"",
"sortField": "modified",
"sortOrder": "desc",
"num": 9,
"start": 0
}
Properties
|property|description|type|readonly|
|---|---|---|---|
|config|Config created|ApplicationConfig|true|
|direction|Language direction|string|true|
|locale|Locale string|string|true|
|isIE|True when IE11 and older boolean|boolean|true|
|portal|Portal
created by ApplicationBase|Portal|true|
|results|ApplicationBase query results|ApplicationBaseResults|true|
|settings|Config created|ApplicationBaseConfig|true|
|units|Appropriate units of measurement|string|true|
ApplicationBaseResult
|property|description|type| |---|---|---| |error|The error returned from the query|Error| |value|The value returned from the query|any| |promise|The query promise|Promise<any>|
ApplicationBaseResults
|property|description|type| |---|---|---| |applicationItem?|The application item result|ApplicationBaseResult| |applicationData?|The application data result|ApplicationBaseResult| |groupInfos?|The restults from querying group infos|ApplicationBaseResult[]| |groupItems?|The results from querying group items|ApplicationBaseResult[]| |localStorage?|The local storage configuration result|ApplicationConfig| |portal?|The Portal instance result|Portal| |urlParams?|The results from URL parameters|ApplicationConfig| |webMapItems?|The restults from querying webmap items|ApplicationBaseResult[]| |webSceneItems?|The restults from querying webscene items|ApplicationBaseResult[]|
Methods
load(): Promise<ApplicationBase>
Loads the requested ApplicationBase resources and returns the class once complete.
queryGroupItems(groupId: string, itemParams: itemParams, portal?: Portal) : Promise<any>
Query a group by parameters. ApplicationBase.queryGroupItems("myid", {}, myPortal)
.
Support Modules
There are helper modules and utilities you can use that contain common application functionality. See the following documentation:
Requirements
Resources
- Configurable App Examples using this class.
- Community
- ArcGIS for JavaScript API Resource Center
- ArcGIS Blog
- twitter@esri
Issues
Find a bug or want to request a new feature? Please let us know by submitting an issue.
Contributing
Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.
Licensing
Copyright 2017 Esri
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
A copy of the license is available in the repository's license.txt file.