@arcgis/map-components 5.1.0-next.101 → 5.1.0-next.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/{3EF4MN6L.js → 42YT33SI.js} +1 -1
- package/dist/cdn/{J3MFZHTJ.js → 4P5SOHAK.js} +1 -1
- package/dist/cdn/{VD5IUHXQ.js → 4T6TILWS.js} +1 -1
- package/dist/cdn/{SFXP3DOP.js → 5CVCIDET.js} +1 -1
- package/dist/cdn/5F4QQFMV.js +2 -0
- package/dist/cdn/{IQHG6OT4.js → 5FHYTVXJ.js} +1 -1
- package/dist/cdn/{SEJ6JCXN.js → 6SLFSRO3.js} +1 -1
- package/dist/cdn/{5AY6FU6R.js → 6U7WM64M.js} +1 -1
- package/dist/cdn/{MFXNJZSL.js → 7MG2HVHJ.js} +1 -1
- package/dist/cdn/{7UZP3RBC.js → AWQHNAWY.js} +1 -1
- package/dist/cdn/{TZKT637Q.js → C5RCUSYN.js} +1 -1
- package/dist/cdn/CKK5QADX.js +2 -0
- package/dist/cdn/{GHISRID5.js → D4ATYXZL.js} +1 -1
- package/dist/cdn/DTIC27TR.js +2 -0
- package/dist/cdn/{5FEFHUMM.js → DWWDCRDK.js} +1 -1
- package/dist/cdn/{6QTNDMTM.js → EE4OHTHH.js} +1 -1
- package/dist/cdn/FBVHVWJP.js +2 -0
- package/dist/cdn/FM2ZJK25.js +2 -0
- package/dist/cdn/{ZYG4YNMK.js → GAWULXAQ.js} +1 -1
- package/dist/cdn/{CY5MXN4Q.js → GBHDATFS.js} +1 -1
- package/dist/cdn/{GZSSBAS6.js → HIYCE253.js} +1 -1
- package/dist/cdn/{MGLV5EEI.js → HVKDLP74.js} +1 -1
- package/dist/cdn/{XSZJFT45.js → HW3D7A2P.js} +1 -1
- package/dist/cdn/{K6JERTMI.js → I7HKS77T.js} +1 -1
- package/dist/cdn/ICIX7OQK.js +2 -0
- package/dist/cdn/JW6K33EY.js +2 -0
- package/dist/cdn/LFFZNI4J.js +2 -0
- package/dist/cdn/{5VV4YRMW.js → LNB4R35D.js} +1 -1
- package/dist/cdn/{P27CM5PI.js → M2ECO3EZ.js} +1 -1
- package/dist/cdn/{T5YUD4HI.js → MLD4FBFB.js} +1 -1
- package/dist/cdn/{SBWTPIZH.js → NWLO4YJB.js} +1 -1
- package/dist/cdn/{KEKKHAC3.js → OGV2KLWY.js} +1 -1
- package/dist/cdn/{RQQW45SO.js → P36R3KMU.js} +1 -1
- package/dist/cdn/{7KIORSA4.js → PO4N3MEU.js} +1 -1
- package/dist/cdn/{KGWDZNHG.js → SKRNQKVO.js} +1 -1
- package/dist/cdn/{DU33A6QD.js → T2RNAPRO.js} +1 -1
- package/dist/cdn/{JTZZY6SL.js → TQA6ARSR.js} +1 -1
- package/dist/cdn/{2M7OVKOX.js → UCPJMQPU.js} +1 -1
- package/dist/cdn/{YNGHIC64.js → UNFS72TS.js} +1 -1
- package/dist/cdn/UW5RUFDI.js +2 -0
- package/dist/cdn/{HYNB4OPZ.js → VDSKVXIQ.js} +1 -1
- package/dist/cdn/{PWCOBDBK.js → VSZ3LZA2.js} +1 -1
- package/dist/cdn/{FJYJ55I6.js → X6BCGFB3.js} +1 -1
- package/dist/cdn/{CUJU6FOW.js → YGYGCNWI.js} +1 -1
- package/dist/cdn/{ZVTZRBDZ.js → Z5RIW77H.js} +1 -1
- package/dist/cdn/ZDOE5UWP.js +2 -0
- package/dist/cdn/assets/search/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/search/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/slider-time/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/slider-time/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/unit-select/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/unit-select/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/utility-network-trace-results/t9n/messages.en.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/cdn/main.css +1 -1
- package/dist/chunks/async-utils.js +63 -51
- package/dist/chunks/slots.js +3 -3
- package/dist/chunks/sr.js +6 -0
- package/dist/chunks/time-utils.js +27 -15
- package/dist/components/arcgis-bookmarks/customElement.d.ts +3 -0
- package/dist/components/arcgis-bookmarks/customElement.js +51 -50
- package/dist/components/arcgis-coordinate-conversion/customElement.js +6 -6
- package/dist/components/arcgis-daylight/customElement.js +1 -1
- package/dist/components/arcgis-legend/customElement.js +1 -1
- package/dist/components/arcgis-scale-range-slider/customElement.d.ts +5 -0
- package/dist/components/arcgis-search/customElement.d.ts +6 -0
- package/dist/components/arcgis-search/customElement.js +39 -35
- package/dist/components/arcgis-slider-time/customElement.d.ts +868 -0
- package/dist/components/arcgis-slider-time/customElement.js +740 -0
- package/dist/components/arcgis-slider-time/index.d.ts +1 -0
- package/dist/components/arcgis-slider-time/index.js +8 -0
- package/dist/components/arcgis-slider-time/types.d.ts +147 -0
- package/dist/components/arcgis-time-slider/customElement.d.ts +2 -1
- package/dist/components/arcgis-time-slider/customElement.js +2 -2
- package/dist/components/arcgis-utility-network-trace-analysis/customElement.d.ts +18 -6
- package/dist/components/arcgis-utility-network-trace-inputs/customElement.js +1 -1
- package/dist/components/arcgis-utility-network-trace-results/customElement.d.ts +3 -0
- package/dist/components/arcgis-utility-network-trace-results/customElement.js +13 -9
- package/dist/components/arcgis-utility-network-validate-network-topology/customElement.js +1 -1
- package/dist/components/arcgis-volume-measurement/customElement.d.ts +1 -3
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/loader.js +2 -1
- package/dist/types/lumina.d.ts +9 -1
- package/dist/types/preact.d.ts +10 -1
- package/dist/types/react.d.ts +11 -1
- package/dist/types/stencil.d.ts +9 -1
- package/package.json +5 -5
- package/dist/cdn/5L6QRSD5.js +0 -2
- package/dist/cdn/6S6N2CNY.js +0 -2
- package/dist/cdn/IQPGSWSL.js +0 -2
- package/dist/cdn/IU2X5JKR.js +0 -2
- package/dist/cdn/L7LTDZU6.js +0 -2
- package/dist/cdn/OSRU2RUW.js +0 -2
- package/dist/cdn/RBTK5IMU.js +0 -2
- package/dist/cdn/YFFIRY3F.js +0 -2
|
@@ -0,0 +1,868 @@
|
|
|
1
|
+
/// <reference path="../../index.d.ts" />
|
|
2
|
+
import type TimeExtent from "@arcgis/core/time/TimeExtent.js";
|
|
3
|
+
import type Collection from "@arcgis/core/core/Collection.js";
|
|
4
|
+
import type WebMap from "@arcgis/core/WebMap.js";
|
|
5
|
+
import type WebScene from "@arcgis/core/WebScene.js";
|
|
6
|
+
import type MapView from "@arcgis/core/views/MapView.js";
|
|
7
|
+
import type SceneView from "@arcgis/core/views/SceneView.js";
|
|
8
|
+
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
|
|
9
|
+
import type { ArcgisReferenceElement, IconName } from "../types.js";
|
|
10
|
+
import type { Action, DateLabelFormatter, Layout, TickConfig, TimeSliderSettings, TriggerActionEvent, Mode, State, Stops } from "./types.js";
|
|
11
|
+
import type { T9nMeta } from "@arcgis/lumina/controllers";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The `<arcgis-slider-time>` component provides interactive time selection and playback within a defined temporal extent.
|
|
15
|
+
*
|
|
16
|
+
* @since 5.1
|
|
17
|
+
*/
|
|
18
|
+
export abstract class ArcgisSliderTime extends LitElement {
|
|
19
|
+
/**
|
|
20
|
+
* When defined, the actions will be displayed in an ellipsis button menu within the component.
|
|
21
|
+
* This property accepts a collection of actions.
|
|
22
|
+
* Each action is an object that must contain a unique `id`, a `title`, and an `icon`.
|
|
23
|
+
*
|
|
24
|
+
* When an action is clicked, the component emits a [@arcgisTriggerAction](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#event-arcgisTriggerAction) event.
|
|
25
|
+
*
|
|
26
|
+
* [](https://developers.arcgis.com/javascript/latest/sample-code/sandbox/?sample=widgets-timeslider-offset)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```html
|
|
30
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
31
|
+
* <arcgis-slider-time slot="top-right"></arcgis-slider-time>
|
|
32
|
+
* </arcgis-map>
|
|
33
|
+
* ```
|
|
34
|
+
* ```js
|
|
35
|
+
* <script type="module">
|
|
36
|
+
* const [TimeExtent, Collection, reactiveUtils] = await $arcgis.import([
|
|
37
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
38
|
+
* "@arcgis/core/core/Collection.js",
|
|
39
|
+
* "@arcgis/core/core/reactiveUtils.js",
|
|
40
|
+
* ]);
|
|
41
|
+
*
|
|
42
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
43
|
+
* await timeSliderElement.componentOnReady();
|
|
44
|
+
*
|
|
45
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
46
|
+
* start: new Date(2000, 0, 1),
|
|
47
|
+
* end: new Date(2010, 0, 1),
|
|
48
|
+
* });
|
|
49
|
+
* timeSliderElement.actions = new Collection([
|
|
50
|
+
* { id: "quake", icon: "exclamation-mark-triangle", title: "Jump to Earthquake" },
|
|
51
|
+
* { id: "quake-plus-one-month", icon: "organization", title: "One month later" },
|
|
52
|
+
* ]);
|
|
53
|
+
*
|
|
54
|
+
* reactiveUtils.on(
|
|
55
|
+
* () => timeSliderElement,
|
|
56
|
+
* "arcgisTriggerAction",
|
|
57
|
+
* (event) => {
|
|
58
|
+
* const id = event.detail.action.id;
|
|
59
|
+
* switch (id) {
|
|
60
|
+
* case "quake":
|
|
61
|
+
* console.log("Jump to Earthquake action triggered");
|
|
62
|
+
* break;
|
|
63
|
+
* case "quake-plus-one-month":
|
|
64
|
+
* console.log("One month later action triggered");
|
|
65
|
+
* break;
|
|
66
|
+
* }
|
|
67
|
+
* },
|
|
68
|
+
* );
|
|
69
|
+
* </script>
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
accessor actions: Collection<Action> | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* If true, the component will not be destroyed automatically when it is
|
|
75
|
+
* disconnected from the document. This is useful when you want to move the
|
|
76
|
+
* component to a different place on the page, or temporarily hide it. If this
|
|
77
|
+
* is set, make sure to call the [destroy()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#destroy) method when you are done to
|
|
78
|
+
* prevent memory leaks.
|
|
79
|
+
*
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
accessor autoDestroyDisabled: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* When true, the component is visually withdrawn and cannot receive user interaction.
|
|
85
|
+
*
|
|
86
|
+
* @default false
|
|
87
|
+
* @example
|
|
88
|
+
* ```html
|
|
89
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
90
|
+
* <arcgis-slider-time slot="top-right" disabled></arcgis-slider-time>
|
|
91
|
+
* </arcgis-map>
|
|
92
|
+
* ```
|
|
93
|
+
* ```js
|
|
94
|
+
* <script type="module">
|
|
95
|
+
* const [TimeExtent] = await $arcgis.import([
|
|
96
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
97
|
+
* ]);
|
|
98
|
+
*
|
|
99
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
100
|
+
* await timeSliderElement.componentOnReady();
|
|
101
|
+
*
|
|
102
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
103
|
+
* start: new Date(2000, 0, 1),
|
|
104
|
+
* end: new Date(2010, 0, 1),
|
|
105
|
+
* });
|
|
106
|
+
*
|
|
107
|
+
* console.log("`arcgis-slider-time` disabled:", timeSliderElement.disabled); // true
|
|
108
|
+
* </script>
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
accessor disabled: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* The dates that the `arcgis-slider-time`'s handles will snap to when manipulated.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```html
|
|
117
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
118
|
+
* <arcgis-slider-time slot="top-right"></arcgis-slider-time>
|
|
119
|
+
* </arcgis-map>
|
|
120
|
+
* ```
|
|
121
|
+
* ```js
|
|
122
|
+
* <script type="module">
|
|
123
|
+
* const [TimeExtent] = await $arcgis.import([
|
|
124
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
125
|
+
* ]);
|
|
126
|
+
*
|
|
127
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
128
|
+
* await timeSliderElement.componentOnReady();
|
|
129
|
+
*
|
|
130
|
+
* // The arcgis-slider-time will span the first five days of 2000.
|
|
131
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
132
|
+
* start: new Date(2000, 0, 1),
|
|
133
|
+
* end: new Date(2000, 0, 6),
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* // Specify stops at five evenly spaced intervals.
|
|
137
|
+
* timeSliderElement.stops = {
|
|
138
|
+
* count: 5,
|
|
139
|
+
* };
|
|
140
|
+
*
|
|
141
|
+
* // Display the effective stops to the console.
|
|
142
|
+
* console.log(timeSliderElement.effectiveStops.map(
|
|
143
|
+
* (date) => new Intl.DateTimeFormat("en-US", { dateStyle: "short" }).format(date)
|
|
144
|
+
* ).join(", "));
|
|
145
|
+
* // Output: "1/1/00", "1/2/00", "1/3/00", "1/4/00", "1/6/00"
|
|
146
|
+
* </script>
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
get effectiveStops(): Date[] | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* The temporal extent of the entire slider. It defines the upper and lower bounds of the `arcgis-slider-time` and the range
|
|
152
|
+
* within which the thumbs can be manipulated.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```html
|
|
156
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
157
|
+
* <arcgis-slider-time slot="top-right"></arcgis-slider-time>
|
|
158
|
+
* </arcgis-map>
|
|
159
|
+
* ```
|
|
160
|
+
* ```js
|
|
161
|
+
* <script type="module">
|
|
162
|
+
* const [TimeExtent] = await $arcgis.import([
|
|
163
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
164
|
+
* ]);
|
|
165
|
+
*
|
|
166
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
167
|
+
* await timeSliderElement.componentOnReady();
|
|
168
|
+
*
|
|
169
|
+
* // The arcgis-slider-time will span ten years from 2000 to 2010.
|
|
170
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
171
|
+
* start: new Date(2000, 0, 1),
|
|
172
|
+
* end: new Date(2010, 0, 1),
|
|
173
|
+
* });
|
|
174
|
+
* </script>
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
accessor fullTimeExtent: TimeExtent | undefined;
|
|
178
|
+
/**
|
|
179
|
+
* Icon which represents the component.
|
|
180
|
+
* Typically used when the component is controlled by another component (e.g. by the Expand component).
|
|
181
|
+
*
|
|
182
|
+
* @default "clock"
|
|
183
|
+
* @see [Calcite Icons](https://developers.arcgis.com/calcite-design-system/icons/)
|
|
184
|
+
*/
|
|
185
|
+
accessor icon: IconName | undefined;
|
|
186
|
+
/** The component's default label. */
|
|
187
|
+
accessor label: string | undefined;
|
|
188
|
+
/**
|
|
189
|
+
* An optional callback function that can be used to customize the content of the minimum, maximum, and extent labels.
|
|
190
|
+
* The function receives the date(s) to be formatted, the type of label to format, the HTML element in which the
|
|
191
|
+
* formatted string will be placed, and the layout of the component as arguments.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* The following snippet will display the day of the week (e.g. Monday, Tuesday, etc.) rather than the default
|
|
195
|
+
* date format for the min, max, and extent labels.
|
|
196
|
+
* ```html
|
|
197
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
198
|
+
* <arcgis-slider-time slot="top-right" mode="instant"></arcgis-slider-time>
|
|
199
|
+
* </arcgis-map>
|
|
200
|
+
* ```
|
|
201
|
+
* ```js
|
|
202
|
+
* <script type="module">
|
|
203
|
+
* const [TimeExtent, TimeInterval] = await $arcgis.import([
|
|
204
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
205
|
+
* "@arcgis/core/time/TimeInterval.js",
|
|
206
|
+
* ]);
|
|
207
|
+
*
|
|
208
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
209
|
+
* await timeSliderElement.componentOnReady();
|
|
210
|
+
*
|
|
211
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
212
|
+
* start: new Date(2026, 3, 6),
|
|
213
|
+
* end: new Date(2026, 3, 10),
|
|
214
|
+
* });
|
|
215
|
+
* timeSliderElement.stops = {
|
|
216
|
+
* interval: new TimeInterval({
|
|
217
|
+
* unit: "days",
|
|
218
|
+
* value: 1,
|
|
219
|
+
* }),
|
|
220
|
+
* };
|
|
221
|
+
*
|
|
222
|
+
* function getDayOfTheWeek(date: Date): string {
|
|
223
|
+
* return date.toLocaleDateString("en-US", { weekday: "long" });
|
|
224
|
+
* }
|
|
225
|
+
*
|
|
226
|
+
* timeSliderElement.labelFormatFunction = (value, type, element, layout) => {
|
|
227
|
+
* element.innerHTML =
|
|
228
|
+
* type === "extent"
|
|
229
|
+
* ? getDayOfTheWeek(date[0]) // Format the start date of the arcgis-slider-time's current time extent.
|
|
230
|
+
* : getDayOfTheWeek(date); // Format the min/max of the arcgis-slider-time's full time extent.
|
|
231
|
+
* };
|
|
232
|
+
* </script>
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
accessor labelFormatFunction: DateLabelFormatter | undefined;
|
|
236
|
+
/**
|
|
237
|
+
* Defines the layout of the component. The layout determines the orientation of the component elements and how much space they consume.
|
|
238
|
+
*
|
|
239
|
+
* There are main layouts, "compact" and "wide", and an "auto" layout that switches between the two based on the component's width.
|
|
240
|
+
* The "compact" layout stacks the elements vertically and is better suited for narrow widths, while the "wide"
|
|
241
|
+
* layout arranges the elements laterally and is better for wider applications.
|
|
242
|
+
*
|
|
243
|
+
* @default "auto"
|
|
244
|
+
* @example
|
|
245
|
+
* Explicitly set the layout to "wide".
|
|
246
|
+
* ```html
|
|
247
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
248
|
+
* <arcgis-slider-time slot="top-right" layout="wide"></arcgis-slider-time>
|
|
249
|
+
* </arcgis-map>
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
accessor layout: Layout;
|
|
253
|
+
/**
|
|
254
|
+
* When `true`, `arcgis-slider-time` will not attempt to load persisted settings from a web map or web scene, even if
|
|
255
|
+
* it is associated with a view that has a web document with time slider settings.
|
|
256
|
+
*
|
|
257
|
+
* @default false
|
|
258
|
+
* @example
|
|
259
|
+
* Disable loading persisted settings from the associated view's web document.
|
|
260
|
+
* ```html
|
|
261
|
+
* <arcgis-map item-id="3542f60d24484cb0af84f1a346607722">
|
|
262
|
+
* <arcgis-slider-time slot="top-right" loadPersistedSettingsDisabled></arcgis-slider-time>
|
|
263
|
+
* </arcgis-map>
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
accessor loadPersistedSettingsDisabled: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* When `true`, `arcgis-slider-time` will restart from the beginning when it reaches the end of the slider when playing.
|
|
269
|
+
*
|
|
270
|
+
* @default false
|
|
271
|
+
* @example
|
|
272
|
+
* Set the `arcgis-slider-time` to loop continuously while playing.
|
|
273
|
+
* ```html
|
|
274
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
275
|
+
* <arcgis-slider-time slot="top-right" loop></arcgis-slider-time>
|
|
276
|
+
* </arcgis-map>
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
accessor loop: boolean;
|
|
280
|
+
/**
|
|
281
|
+
* Replace localized message strings with your own strings.
|
|
282
|
+
*
|
|
283
|
+
* _**Note**: Individual message keys may change between releases._
|
|
284
|
+
*/
|
|
285
|
+
accessor messageOverrides: {
|
|
286
|
+
componentLabel?: string | undefined;
|
|
287
|
+
control?: {
|
|
288
|
+
play?: string | undefined;
|
|
289
|
+
stop?: string | undefined;
|
|
290
|
+
} | undefined;
|
|
291
|
+
emptyTimeExtent?: string | undefined;
|
|
292
|
+
noTimeExtent?: string | undefined;
|
|
293
|
+
options?: string | undefined;
|
|
294
|
+
pagination?: {
|
|
295
|
+
next?: string | undefined;
|
|
296
|
+
previous?: string | undefined;
|
|
297
|
+
} | undefined;
|
|
298
|
+
};
|
|
299
|
+
/** @internal */
|
|
300
|
+
protected readonly messages: {
|
|
301
|
+
componentLabel: string;
|
|
302
|
+
control: {
|
|
303
|
+
play: string;
|
|
304
|
+
stop: string;
|
|
305
|
+
};
|
|
306
|
+
emptyTimeExtent: string;
|
|
307
|
+
noTimeExtent: string;
|
|
308
|
+
options: string;
|
|
309
|
+
pagination: {
|
|
310
|
+
next: string;
|
|
311
|
+
previous: string;
|
|
312
|
+
};
|
|
313
|
+
} & T9nMeta<{
|
|
314
|
+
componentLabel: string;
|
|
315
|
+
control: {
|
|
316
|
+
play: string;
|
|
317
|
+
stop: string;
|
|
318
|
+
};
|
|
319
|
+
emptyTimeExtent: string;
|
|
320
|
+
noTimeExtent: string;
|
|
321
|
+
options: string;
|
|
322
|
+
pagination: {
|
|
323
|
+
next: string;
|
|
324
|
+
previous: string;
|
|
325
|
+
};
|
|
326
|
+
}>;
|
|
327
|
+
/**
|
|
328
|
+
* The `arcgis-slider-time` mode. The mode determines how the time extent is calculated based on the position of the thumb(s)
|
|
329
|
+
* and the behavior of the component when the thumbs are manipulated.
|
|
330
|
+
*
|
|
331
|
+
* @default "time-window"
|
|
332
|
+
* @example
|
|
333
|
+
* Set the mode to "instant" to show temporal data that falls on a single instance in time.
|
|
334
|
+
* ```html
|
|
335
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
336
|
+
* <arcgis-slider-time slot="top-right" mode="instant"></arcgis-slider-time>
|
|
337
|
+
* </arcgis-map>
|
|
338
|
+
* ```
|
|
339
|
+
*/
|
|
340
|
+
accessor mode: Mode;
|
|
341
|
+
/**
|
|
342
|
+
* When `arcgis-slider-time` is playing, the play rate determines the interval (in milliseconds) between animation steps.
|
|
343
|
+
*
|
|
344
|
+
* > [!WARNING]
|
|
345
|
+
* >
|
|
346
|
+
* > When `arcgis-slider-time` is associated with a `arcgis-map` or `argis-scene` component, the actual playback rate may differ.
|
|
347
|
+
* > Specifically, the current time extent will only advance after the designated play rate interval and after the view has finished updating.
|
|
348
|
+
* > This means that if the view takes longer to update than the specified play rate, the effective play rate will be slower than expected.
|
|
349
|
+
*
|
|
350
|
+
* @default 1000
|
|
351
|
+
* @example
|
|
352
|
+
* Set the play rate to 500 milliseconds (half a second).
|
|
353
|
+
* ```html
|
|
354
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
355
|
+
* <arcgis-slider-time slot="top-right" play-rate="500"></arcgis-slider-time>
|
|
356
|
+
* </arcgis-map>
|
|
357
|
+
* ```
|
|
358
|
+
*/
|
|
359
|
+
accessor playRate: number;
|
|
360
|
+
/**
|
|
361
|
+
* By assigning the `id` attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene.
|
|
362
|
+
*
|
|
363
|
+
* @see [Associate components with a Map or Scene component](https://developers.arcgis.com/javascript/latest/programming-patterns/#associate-components-with-a-map-or-scene-component)
|
|
364
|
+
*/
|
|
365
|
+
accessor referenceElement: ArcgisReferenceElement | string | undefined;
|
|
366
|
+
/**
|
|
367
|
+
* When `true`, the `arcgis-slider-time`'s settings will not be included in the parent web document when saved.
|
|
368
|
+
*
|
|
369
|
+
* @default false
|
|
370
|
+
* @example
|
|
371
|
+
* Disable saving persisted settings to the associated view's web document.
|
|
372
|
+
* ```html
|
|
373
|
+
* <arcgis-map item-id="3542f60d24484cb0af84f1a346607722">
|
|
374
|
+
* <arcgis-slider-time slot="top-right" savePersistedSettingsDisabled></arcgis-slider-time>
|
|
375
|
+
* </arcgis-map>
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
accessor savePersistedSettingsDisabled: boolean;
|
|
379
|
+
/**
|
|
380
|
+
* If `true`, the time component of dates is displayed in the minimum, maximum, and time extent labels.
|
|
381
|
+
* This property is useful when the time extent of the slider is narrow or when the time component of the date is relevant to the user.
|
|
382
|
+
*
|
|
383
|
+
* @default false
|
|
384
|
+
* @example
|
|
385
|
+
* ```html
|
|
386
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
387
|
+
* <arcgis-slider-time slot="top-left" show-time></arcgis-slider-time>
|
|
388
|
+
* </arcgis-map>
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
accessor showTime: boolean;
|
|
392
|
+
/**
|
|
393
|
+
* The current state of the component.
|
|
394
|
+
*
|
|
395
|
+
* @default "disabled"
|
|
396
|
+
* @example
|
|
397
|
+
* The following snippet will log the `arcgis-slider-time`'s state to the console whenever it changes.
|
|
398
|
+
* ```html
|
|
399
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
400
|
+
* <arcgis-slider-time slot="top-right"></arcgis-slider-time>
|
|
401
|
+
* </arcgis-map>
|
|
402
|
+
* ```
|
|
403
|
+
* ```js
|
|
404
|
+
* <script type="module">
|
|
405
|
+
* const [TimeExtent, reactiveUtils] = await $arcgis.import([
|
|
406
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
407
|
+
* "@arcgis/core/core/reactiveUtils.js",
|
|
408
|
+
* ]);
|
|
409
|
+
*
|
|
410
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
411
|
+
* await timeSliderElement.componentOnReady();
|
|
412
|
+
*
|
|
413
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
414
|
+
* start: new Date(2026, 3, 6),
|
|
415
|
+
* end: new Date(2026, 3, 10),
|
|
416
|
+
* });
|
|
417
|
+
* reactiveUtils.watch(
|
|
418
|
+
* () => timeSliderElement.state,
|
|
419
|
+
* (state) => {
|
|
420
|
+
* console.log("`arcgis-slider-time` state:", state);
|
|
421
|
+
* },
|
|
422
|
+
* );
|
|
423
|
+
* </script>
|
|
424
|
+
* ```
|
|
425
|
+
*/
|
|
426
|
+
get state(): State;
|
|
427
|
+
/**
|
|
428
|
+
* Defines the stops on the `arcgis-slider-time`. Stops are specific dates that the thumb, or thumbs, will snap to when manipulated.
|
|
429
|
+
*
|
|
430
|
+
* @default { count : 10 }
|
|
431
|
+
* @example
|
|
432
|
+
* To allow thumbs to snap to evenly spaced intervals, assign an object with a `count` property as shown below.
|
|
433
|
+
* The default value for stops is ten evenly spaced intervals across the full time extent.
|
|
434
|
+
* ```js
|
|
435
|
+
* <script type="module">
|
|
436
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
437
|
+
* await timeSliderElement.componentOnReady();
|
|
438
|
+
*
|
|
439
|
+
* timeSliderElement.stops = {
|
|
440
|
+
* count: 10,
|
|
441
|
+
* };
|
|
442
|
+
* </script>
|
|
443
|
+
* ```
|
|
444
|
+
* @example
|
|
445
|
+
* To allow thumbs to be manipulated continuously without snapping to specific dates, set `stops` to `null`:
|
|
446
|
+
* ```js
|
|
447
|
+
* <script type="module">
|
|
448
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
449
|
+
* await timeSliderElement.componentOnReady();
|
|
450
|
+
*
|
|
451
|
+
* timeSliderElement.stops = null;
|
|
452
|
+
* </script>
|
|
453
|
+
* ```
|
|
454
|
+
* @example
|
|
455
|
+
* To allow thumbs to snap to specific dates, assign an array of dates to a `dates` property as shown below.
|
|
456
|
+
* ```js
|
|
457
|
+
* <script type="module">
|
|
458
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
459
|
+
* await timeSliderElement.componentOnReady();
|
|
460
|
+
*
|
|
461
|
+
* timeSliderElement.stops = {
|
|
462
|
+
* dates: [
|
|
463
|
+
* new Date(2000, 0, 1), new Date(2001, 3, 8), new Date(2002, 0, 10),
|
|
464
|
+
* new Date(2003, 12, 8), new Date(2004, 2, 19), new Date(2005, 7, 5),
|
|
465
|
+
* new Date(2006, 9, 11), new Date(2007, 11, 21), new Date(2008, 1, 10)
|
|
466
|
+
* ],
|
|
467
|
+
* };
|
|
468
|
+
* </script>
|
|
469
|
+
* ```
|
|
470
|
+
* @example
|
|
471
|
+
* To allow thumbs to snap at a regular interval, such as daily, month or yearly, assign a `TimeInterval` object to an `interval` property as shown below.
|
|
472
|
+
* ```js
|
|
473
|
+
* <script type="module">
|
|
474
|
+
* const [TimeInterval] = await $arcgis.import([
|
|
475
|
+
* "@arcgis/core/time/TimeInterval.js",
|
|
476
|
+
* ]);
|
|
477
|
+
*
|
|
478
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
479
|
+
* await timeSliderElement.componentOnReady();
|
|
480
|
+
*
|
|
481
|
+
* timeSliderElement.stops = {
|
|
482
|
+
* interval: new TimeInterval({
|
|
483
|
+
* value: 1,
|
|
484
|
+
* unit: "years"
|
|
485
|
+
* }),
|
|
486
|
+
* };
|
|
487
|
+
* </script>
|
|
488
|
+
* ```
|
|
489
|
+
* @example
|
|
490
|
+
* Lastly, both the interval and count stop definitions can optionally use a `timeExtent` property to confine the definitions to a specific range.
|
|
491
|
+
* For example, the following defines a `arcgis-slider-time` with a full time extent of the year 2026. However, daily stops only exist in the month of April.
|
|
492
|
+
* ```js
|
|
493
|
+
* <script type="module">
|
|
494
|
+
* const [TimeExtent, TimeInterval] = await $arcgis.import([
|
|
495
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
496
|
+
* "@arcgis/core/time/TimeInterval.js",
|
|
497
|
+
* ]);
|
|
498
|
+
*
|
|
499
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
500
|
+
* await timeSliderElement.componentOnReady();
|
|
501
|
+
*
|
|
502
|
+
* // The arcgis-slider-time will span the entire year of 2026.
|
|
503
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
504
|
+
* start: new Date(2026, 0, 1),
|
|
505
|
+
* end: new Date(2027, 0, 1),
|
|
506
|
+
* });
|
|
507
|
+
*
|
|
508
|
+
* // However, the slider's thumbs will only snap to days within the month of April.
|
|
509
|
+
* timeSliderElement.stops = {
|
|
510
|
+
* interval: new TimeInterval({
|
|
511
|
+
* value: 1,
|
|
512
|
+
* unit: "days"
|
|
513
|
+
* }),
|
|
514
|
+
* timeExtent: new TimeExtent({
|
|
515
|
+
* start: new Date(2026, 3, 1),
|
|
516
|
+
* end: new Date(2026, 4, 1),
|
|
517
|
+
* }),
|
|
518
|
+
* };
|
|
519
|
+
* </script>
|
|
520
|
+
* ```
|
|
521
|
+
*/
|
|
522
|
+
accessor stops: Stops | undefined;
|
|
523
|
+
/**
|
|
524
|
+
* Use `tickConfigs` to define custom ticks on the `arcgis-slider-time`.
|
|
525
|
+
* Custom ticks can be used instead of the default ticks provided by the component.
|
|
526
|
+
*
|
|
527
|
+
* @example
|
|
528
|
+
* The following example adds labelled ticks representing the Northern Hemisphere seasons.
|
|
529
|
+
* ```html
|
|
530
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
531
|
+
* <arcgis-slider-time slot="top-left" mode="instant"></arcgis-slider-time>
|
|
532
|
+
* </arcgis-map>
|
|
533
|
+
* ```
|
|
534
|
+
* ```js
|
|
535
|
+
* <script type="module">
|
|
536
|
+
* const [TimeExtent] = await $arcgis.import([
|
|
537
|
+
* "@arcgis/core/time/TimeExtent.js",
|
|
538
|
+
* ]);
|
|
539
|
+
*
|
|
540
|
+
* // Define custom ticks with a label and date.
|
|
541
|
+
* interface Tick {
|
|
542
|
+
* label: string;
|
|
543
|
+
* date: Date;
|
|
544
|
+
* }
|
|
545
|
+
* const ticks: Tick[] = [
|
|
546
|
+
* { label: "Winter", date: new Date(2026, 0, 1) },
|
|
547
|
+
* { label: "Spring", date: new Date(2026, 2, 20) },
|
|
548
|
+
* { label: "Summer", date: new Date(2026, 5, 21) },
|
|
549
|
+
* { label: "Fall", date: new Date(2026, 8, 22) },
|
|
550
|
+
* { label: "Winter", date: new Date(2027, 0, 1) },
|
|
551
|
+
* ];
|
|
552
|
+
*
|
|
553
|
+
* // Convenience function to match the tick's date to the corresponding label.
|
|
554
|
+
* function getLabelForEpoch(epoch: number): string {
|
|
555
|
+
* const tick = ticks.find(({ date }) => date.getTime() === epoch);
|
|
556
|
+
* return tick?.label ?? "";
|
|
557
|
+
* }
|
|
558
|
+
*
|
|
559
|
+
* // Obtain a reference to the `arcgis-slider-time` element.
|
|
560
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
561
|
+
* await timeSliderElement.componentOnReady();
|
|
562
|
+
*
|
|
563
|
+
* // Set the `arcgis-slider-time`'s full time extent to span the year 2026.
|
|
564
|
+
* timeSliderElement.fullTimeExtent = new TimeExtent({
|
|
565
|
+
* start: new Date(2026, 0, 1),
|
|
566
|
+
* end: new Date(2027, 0, 1),
|
|
567
|
+
* });
|
|
568
|
+
*
|
|
569
|
+
* // Set the `arcgis-slider-time`'s stops to the custom ticks.
|
|
570
|
+
* const dates = ticks.map(({ date }) => date);
|
|
571
|
+
* timeSliderElement.stops = { dates };
|
|
572
|
+
*
|
|
573
|
+
* // Set the `arcgis-slider-time`'s tick configurations to the custom ticks.
|
|
574
|
+
* const values = dates.map((date) => date.getTime());
|
|
575
|
+
* timeSliderElement.tickConfigs = [
|
|
576
|
+
* {
|
|
577
|
+
* // Position ticks absolutely based on the date, rather than at regular intervals.
|
|
578
|
+
* mode: "position",
|
|
579
|
+
* // Show labels for the ticks.
|
|
580
|
+
* labelsVisible: true,
|
|
581
|
+
* // Match the tick's date to the corresponding label.
|
|
582
|
+
* labelFormatFunction: (epoch) => getLabelForEpoch(epoch),
|
|
583
|
+
* // Location of the ticks based on the date.
|
|
584
|
+
* values,
|
|
585
|
+
* },
|
|
586
|
+
* ];
|
|
587
|
+
* </script>
|
|
588
|
+
* ```
|
|
589
|
+
*/
|
|
590
|
+
accessor tickConfigs: TickConfig[] | undefined;
|
|
591
|
+
/**
|
|
592
|
+
* The current time extent of the `arcgis-slider-time`.
|
|
593
|
+
*
|
|
594
|
+
* When the `arcgis-slider-time` is associated with an `arcgis-map` or `arcgis-scene` component,
|
|
595
|
+
* the `arcgis-slider-time`'s time extent will synchronize with the view's time extent.
|
|
596
|
+
* Meaning that any changes to one time extent property will be mirrored in the other.
|
|
597
|
+
*
|
|
598
|
+
* It is important to note that the time extent returned by this property will conform to the format in the table
|
|
599
|
+
* below based on the current `mode` of the `arcgis-slider-time`. Similarly, this format should be followed when assigning
|
|
600
|
+
* a new time extent to ensure proper behavior of the component and synchronization with an attached map or scene's
|
|
601
|
+
* time extent.
|
|
602
|
+
*
|
|
603
|
+
*
|
|
604
|
+
* | Mode | Description | Example |
|
|
605
|
+
* |-------------------------|-------------------------------|---------------------------------------------------------------|
|
|
606
|
+
* | `time-window` | Non-null start and end dates | `{ start: new Date(2019, 2, 1), end: new Date(2019, 2, 28) }` |
|
|
607
|
+
* | `instant` | Identical start and end dates | `{ start: new Date(2019, 2, 1), end: new Date(2019, 2, 1) }` |
|
|
608
|
+
* | `cumulative-from-start` | `null` start date | `{ start: null, end: new Date(2019, 2, 28) }` |
|
|
609
|
+
* | `cumulative-from-end` | `null` end date | `{ start: new Date(2019, 2, 1), end: null }` |
|
|
610
|
+
*
|
|
611
|
+
* @example
|
|
612
|
+
* The `arcgis-slider-time` may be used indepentantly of an `arcgis-map` or `arcgis-scene` component.
|
|
613
|
+
* In the following example, the `arcgis-slider-time` does not reference an `arcgis-map` and is used to update a single layer's filter.
|
|
614
|
+
* ```html
|
|
615
|
+
* <arcgis-map basemap="dark-gray-vector" zoom="13" center="-117.512764, 34.04355"></arcgis-map>
|
|
616
|
+
* <arcgis-slider-time mode="time-window" play-rate="50"></arcgis-slider-time>
|
|
617
|
+
* ```
|
|
618
|
+
* ```js
|
|
619
|
+
* <script type="module">
|
|
620
|
+
* const [GeoJSONLayer, TimeInterval, reactiveUtils] = await $arcgis.import([
|
|
621
|
+
* "@arcgis/core/layers/GeoJSONLayer.js",
|
|
622
|
+
* "@arcgis/core/time/TimeInterval.js",
|
|
623
|
+
* "@arcgis/core/core/reactiveUtils.js",
|
|
624
|
+
* ]);
|
|
625
|
+
* const layer = new GeoJSONLayer({
|
|
626
|
+
* url: "https://bsvensson.github.io/various-tests/geojson/usgs-earthquakes-06182019.geojson",
|
|
627
|
+
* timeInfo: {
|
|
628
|
+
* startField: "time",
|
|
629
|
+
* interval: { unit: "days", value: 1 },
|
|
630
|
+
* },
|
|
631
|
+
* });
|
|
632
|
+
*
|
|
633
|
+
* const viewElement = document.querySelector("arcgis-map");
|
|
634
|
+
* await viewElement.viewOnReady();
|
|
635
|
+
* viewElement.add(layer);
|
|
636
|
+
*
|
|
637
|
+
* await viewElement.viewOnReady();
|
|
638
|
+
* const layerView = await viewElement.whenLayerView(layer);
|
|
639
|
+
*
|
|
640
|
+
* const timeSlider = document.querySelector("arcgis-slider-time");
|
|
641
|
+
* await timeSlider.componentOnReady()
|
|
642
|
+
*
|
|
643
|
+
* timeSlider.fullTimeExtent = layer.timeInfo.fullTimeExtent.expandTo("hours");
|
|
644
|
+
* timeSlider.stops = {
|
|
645
|
+
* interval: new TimeInterval({ value: 1, unit: "hours" }),
|
|
646
|
+
* };
|
|
647
|
+
*
|
|
648
|
+
* // Whenever the `arcgis-slider-time`'s time extent changes, update the layer view's feature effect to highlight features
|
|
649
|
+
* // that fall within the current time extent and dim features that fall outside of it.
|
|
650
|
+
* reactiveUtils.watch(
|
|
651
|
+
* () => timeSlider.timeExtent,
|
|
652
|
+
* (timeExtent) => {
|
|
653
|
+
* layerView.featureEffect = {
|
|
654
|
+
* filter: { timeExtent },
|
|
655
|
+
* excludedEffect: "grayscale(20%) opacity(12%)",
|
|
656
|
+
* };
|
|
657
|
+
* }
|
|
658
|
+
* );
|
|
659
|
+
* ```
|
|
660
|
+
*/
|
|
661
|
+
accessor timeExtent: TimeExtent | undefined;
|
|
662
|
+
/**
|
|
663
|
+
* The `arcgis-slider-time` component will display dates and times in the time zone specified by this property.
|
|
664
|
+
* By default, the time zone is inherited from an associated `arcgis-map` or `arcgis-scene` component's view.
|
|
665
|
+
* If there is no associated view, the time zone will default to `"system"`, the device's time zone.
|
|
666
|
+
*
|
|
667
|
+
* @example
|
|
668
|
+
* To specify a particular time zone, assign a valid IANA time zone string to the `time-zone` property as shown below.
|
|
669
|
+
* ```html
|
|
670
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
671
|
+
* <arcgis-slider-time slot="top-left" time-zone="Pacific/Auckland"></arcgis-slider-time>
|
|
672
|
+
* </arcgis-map>
|
|
673
|
+
* ```
|
|
674
|
+
* @see [wikipedia - List of tz database time zones](https://wikipedia.org/wiki/List_of_tz_database_time_zones)
|
|
675
|
+
* @see [arcgis-map.timeZone](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#timeZone)
|
|
676
|
+
* @see [MapView#timeZone](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#timeZone)
|
|
677
|
+
*/
|
|
678
|
+
accessor timeZone: string | undefined;
|
|
679
|
+
/**
|
|
680
|
+
* The view associated with the component.
|
|
681
|
+
* > **Note:** The recommended approach is to fully migrate applications to use map and scene components and avoid using MapView and SceneView directly. However, if you are migrating a large application from widgets to components, you might prefer a more gradual transition. To support this use case, the SDK includes this `view` property which connects a component to a MapView or SceneView. Ultimately, once migration is complete, the arcgis-slider-time component will be associated with a map or scene component rather than using the `view` property.
|
|
682
|
+
*/
|
|
683
|
+
accessor view: MapView | SceneView | undefined;
|
|
684
|
+
/**
|
|
685
|
+
* This method will update multiple `arcgis-slider-time` properties and is intended to be used in conjunction with
|
|
686
|
+
* [getTimeSliderSettingsFromWebDocument](https://developers.arcgis.com/javascript/latest/references/core/support/timeUtils/#getTimeSliderSettingsFromWebDocument).
|
|
687
|
+
*
|
|
688
|
+
* `getTimeSliderSettingsFromWebDocument` is a utility function that extracts `arcgis-slider-time` settings (if any) from a
|
|
689
|
+
* published web map or web scene. This method can be used to apply those settings to the `arcgis-slider-time` component.
|
|
690
|
+
*
|
|
691
|
+
* @param settings - The `arcgis-slider-time` settings to apply to the component. This should be in the format returned by `getTimeSliderSettingsFromWebDocument`.
|
|
692
|
+
* @example
|
|
693
|
+
* The following example demonstrates how to use `getTimeSliderSettingsFromWebDocument` and `applyTimeSliderSettings`
|
|
694
|
+
* together to extract `arcgis-slider-time` settings from a web map and apply them to the `arcgis-slider-time` component.
|
|
695
|
+
* ```html
|
|
696
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
697
|
+
* <arcgis-slider-time slot="top-left"></arcgis-slider-time>
|
|
698
|
+
* </arcgis-map>
|
|
699
|
+
* ```
|
|
700
|
+
* ```js
|
|
701
|
+
* <script type="module">
|
|
702
|
+
* const [timeUtils] = await $arcgis.import([
|
|
703
|
+
* "@arcgis/core/support/timeUtils.js",
|
|
704
|
+
* ]);
|
|
705
|
+
*
|
|
706
|
+
* const webMap = new WebMap({
|
|
707
|
+
* portalItem: {
|
|
708
|
+
* id: "your-webmap-id",
|
|
709
|
+
* }
|
|
710
|
+
* });
|
|
711
|
+
* await webMap.load();
|
|
712
|
+
*
|
|
713
|
+
* const timeSliderSettings = await timeUtils.getTimeSliderSettingsFromWebDocument(webMap);
|
|
714
|
+
*
|
|
715
|
+
* const timeSlider = document.querySelector("arcgis-slider-time");
|
|
716
|
+
* await timeSlider.componentOnReady();
|
|
717
|
+
* timeSlider.applyTimeSliderSettings(timeSliderSettings);
|
|
718
|
+
* </script>
|
|
719
|
+
* ```
|
|
720
|
+
*/
|
|
721
|
+
applyTimeSliderSettings(settings: TimeSliderSettings): Promise<void>;
|
|
722
|
+
/** Permanently destroy the component. */
|
|
723
|
+
destroy(): Promise<void>;
|
|
724
|
+
/**
|
|
725
|
+
* Incrementally moves the [timeExtent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#timeExtent) forward one stop.
|
|
726
|
+
*
|
|
727
|
+
* @example
|
|
728
|
+
* The following example demonstrates how to use the `next` method to move the `arcgis-slider-time`'s time extent forward one
|
|
729
|
+
* stop when a button is clicked.
|
|
730
|
+
* ```html
|
|
731
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
732
|
+
* <arcgis-slider-time slot="top-left" mode="instant"></arcgis-slider-time>
|
|
733
|
+
* </arcgis-map>
|
|
734
|
+
* <button id="next-button">Next</button>
|
|
735
|
+
* ```
|
|
736
|
+
* ```js
|
|
737
|
+
* <script type="module">
|
|
738
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
739
|
+
* await timeSliderElement.componentOnReady();
|
|
740
|
+
*
|
|
741
|
+
* document.getElementById("next-button").addEventListener("click", () => {
|
|
742
|
+
* timeSliderElement.next();
|
|
743
|
+
* });
|
|
744
|
+
* </script>
|
|
745
|
+
* ```
|
|
746
|
+
*/
|
|
747
|
+
next(): Promise<void>;
|
|
748
|
+
/**
|
|
749
|
+
* Initiates playback of the `arcgis-slider-time`, causing the [timeExtent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#timeExtent) to
|
|
750
|
+
* incrementally move forward based on the defined [playRate](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#playRate) and
|
|
751
|
+
* [stops](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#stops).
|
|
752
|
+
*
|
|
753
|
+
* Note that when [loop](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#loop) is `true`, the `arcgis-slider-time` will restart from the
|
|
754
|
+
* beginning when it reaches the end of the slider while playing.
|
|
755
|
+
*
|
|
756
|
+
* @example
|
|
757
|
+
* The following example demonstrates how to use the `play` method to start playback of the `arcgis-slider-time` when a button
|
|
758
|
+
* is clicked.
|
|
759
|
+
* ```html
|
|
760
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
761
|
+
* <arcgis-slider-time slot="top-left" mode="instant"></arcgis-slider-time>
|
|
762
|
+
* </arcgis-map>
|
|
763
|
+
* <button id="play-button">Play</button>
|
|
764
|
+
* ```
|
|
765
|
+
* ```js
|
|
766
|
+
* <script type="module">
|
|
767
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
768
|
+
* await timeSliderElement.componentOnReady();
|
|
769
|
+
*
|
|
770
|
+
* document.getElementById("play-button").addEventListener("click", () => {
|
|
771
|
+
* timeSliderElement.play();
|
|
772
|
+
* });
|
|
773
|
+
* </script>
|
|
774
|
+
* ```
|
|
775
|
+
*/
|
|
776
|
+
play(): Promise<void>;
|
|
777
|
+
/**
|
|
778
|
+
* Incrementally moves the [timeExtent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-slider-time/#timeExtent) backward one stop.
|
|
779
|
+
*
|
|
780
|
+
* @example
|
|
781
|
+
* The following example demonstrates how to use the `previous` method to move the `arcgis-slider-time`'s time extent backward
|
|
782
|
+
* one stop when a button is clicked.
|
|
783
|
+
* ```html
|
|
784
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
785
|
+
* <arcgis-slider-time slot="top-left" mode="instant"></arcgis-slider-time>
|
|
786
|
+
* </arcgis-map>
|
|
787
|
+
* <button id="previous-button">Previous</button>
|
|
788
|
+
* ```
|
|
789
|
+
* ```js
|
|
790
|
+
* <script type="module">
|
|
791
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
792
|
+
* await timeSliderElement.componentOnReady();
|
|
793
|
+
*
|
|
794
|
+
* document.getElementById("previous-button").addEventListener("click", () => {
|
|
795
|
+
* timeSliderElement.previous();
|
|
796
|
+
* });
|
|
797
|
+
* </script>
|
|
798
|
+
* ```
|
|
799
|
+
*/
|
|
800
|
+
previous(): Promise<void>;
|
|
801
|
+
/**
|
|
802
|
+
* Stops `arcgis-slider-time` playback.
|
|
803
|
+
*
|
|
804
|
+
* @example
|
|
805
|
+
* The following example demonstrates how to use the `stop` method to stop `arcgis-slider-time` playback when a button
|
|
806
|
+
* is clicked.
|
|
807
|
+
* ```html
|
|
808
|
+
* <arcgis-map basemap="satellite" zoom="6" center="-2,54">
|
|
809
|
+
* <arcgis-slider-time slot="top-left" mode="instant"></arcgis-slider-time>
|
|
810
|
+
* </arcgis-map>
|
|
811
|
+
* <button id="stop-button">Stop</button>
|
|
812
|
+
* ```
|
|
813
|
+
* ```js
|
|
814
|
+
* <script type="module">
|
|
815
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
816
|
+
* await timeSliderElement.componentOnReady();
|
|
817
|
+
*
|
|
818
|
+
* document.getElementById("stop-button").addEventListener("click", () => {
|
|
819
|
+
* timeSliderElement.stop();
|
|
820
|
+
* });
|
|
821
|
+
* </script>
|
|
822
|
+
* ```
|
|
823
|
+
*/
|
|
824
|
+
stop(): Promise<void>;
|
|
825
|
+
/**
|
|
826
|
+
* Updates the `arcgis-slider-time` definition in the parsed web document.
|
|
827
|
+
*
|
|
828
|
+
* @param document - The web document to update, either a
|
|
829
|
+
* [WebMap](https://developers.arcgis.com/javascript/latest/references/core/WebMap) or
|
|
830
|
+
* [WebScene](https://developers.arcgis.com/javascript/latest/references/core/WebScene).
|
|
831
|
+
* @example
|
|
832
|
+
* The following example demonstrates how to use the `updateWebDocument` method to update the `arcgis-slider-time`'s
|
|
833
|
+
* definition in a web document when a button is clicked.
|
|
834
|
+
* ```html
|
|
835
|
+
* <arcgis-map item-id="acea555a4b6f412dae98994bcfdbc002">
|
|
836
|
+
* <arcgis-slider-time slot="top-left"></arcgis-slider-time>
|
|
837
|
+
* </arcgis-map>
|
|
838
|
+
* <button id="save-button">Save</button>
|
|
839
|
+
* ```
|
|
840
|
+
* ```js
|
|
841
|
+
* <script type="module">
|
|
842
|
+
* const timeSliderElement = document.querySelector("arcgis-slider-time");
|
|
843
|
+
* await timeSliderElement.componentOnReady();
|
|
844
|
+
*
|
|
845
|
+
* const viewElement = document.querySelector("arcgis-map");
|
|
846
|
+
* await viewElement.viewOnReady();
|
|
847
|
+
*
|
|
848
|
+
* document.getElementById("save-button").addEventListener("click", async () => {
|
|
849
|
+
* timeSliderElement.updateWebDocument(viewElement.map);
|
|
850
|
+
* const portalItem = await viewElement.map.save();
|
|
851
|
+
* });
|
|
852
|
+
* </script>
|
|
853
|
+
* ```
|
|
854
|
+
* @see [timeSlider](https://developers.arcgis.com/javascript/latest/references/core/webdoc/Widgets/#timeSlider)
|
|
855
|
+
*/
|
|
856
|
+
updateWebDocument(document: WebMap | WebScene): Promise<void>;
|
|
857
|
+
/** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
|
|
858
|
+
readonly arcgisPropertyChange: import("@arcgis/lumina").TargetedEvent<this, { name: "effectiveStops" | "fullTimeExtent" | "state" | "timeExtent"; }>;
|
|
859
|
+
/** Emitted when the component associated with a map or scene view is ready to be interacted with. */
|
|
860
|
+
readonly arcgisReady: import("@arcgis/lumina").TargetedEvent<this, void>;
|
|
861
|
+
/** Emitted when an action is triggered on the component. */
|
|
862
|
+
readonly arcgisTriggerAction: import("@arcgis/lumina").TargetedEvent<this, TriggerActionEvent>;
|
|
863
|
+
readonly "@eventTypes": {
|
|
864
|
+
arcgisPropertyChange: ArcgisSliderTime["arcgisPropertyChange"]["detail"];
|
|
865
|
+
arcgisReady: ArcgisSliderTime["arcgisReady"]["detail"];
|
|
866
|
+
arcgisTriggerAction: ArcgisSliderTime["arcgisTriggerAction"]["detail"];
|
|
867
|
+
};
|
|
868
|
+
}
|