@arcgis/core 5.2.0-next.163 → 5.2.0-next.164

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.
Files changed (69) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/analysis/LineOfSightAnalysis.d.ts +1 -1
  3. package/analysis/LineOfSightAnalysisObserver.d.ts +5 -4
  4. package/analysis/LineOfSightAnalysisTarget.d.ts +4 -4
  5. package/analysis/Viewshed.d.ts +4 -4
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/{8e19629899a5becf8e19.js → 150e7a7bd5df25693da7.js} +1 -1
  8. package/assets/esri/core/workers/chunks/226f862bbeb33fc7c597.js +1 -0
  9. package/assets/esri/core/workers/chunks/{2e096537a3a5555a4a93.js → 4cb751dc8d00bdaeb04c.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{85bba551057366cd00ae.js → 4db829a0238024736fe6.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{8aa80b892fde552577e8.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{f528ac5c648ca6a98582.js → 711cfb84659cb4437679.js} +1 -1
  13. package/assets/esri/core/workers/chunks/ad96132bc89671e595f3.js +1 -0
  14. package/assets/esri/core/workers/chunks/b736046c6b4ede73ea46.js +1 -0
  15. package/assets/esri/core/workers/chunks/c070d2ddf290b4f92916.js +1 -0
  16. package/assets/esri/core/workers/chunks/d77c68e0fc3b259bf4f9.js +1 -0
  17. package/assets/esri/core/workers/chunks/{e0351753f6b4d1adf11e.js → fc0dbb588a4062615cb6.js} +1 -1
  18. package/chunks/GlobalIllumination.glsl.js +2 -17
  19. package/config.js +1 -1
  20. package/geometry/support/clipRay.js +1 -1
  21. package/geometry/support/plane.js +1 -1
  22. package/kernel.js +1 -1
  23. package/layers/GeoJSONLayer.d.ts +2 -107
  24. package/layers/SceneLayer.d.ts +40 -16
  25. package/layers/ViewshedLayer.d.ts +10 -4
  26. package/layers/WMSLayer.d.ts +2 -69
  27. package/layers/mixins/TemporalLayer.d.ts +70 -48
  28. package/layers/mixins/TiledImagery.d.ts +0 -11
  29. package/package.json +2 -2
  30. package/popup/content.d.ts +38 -1
  31. package/popup/content.js +1 -1
  32. package/smartMapping/popup/support/clusterUtils.js +1 -1
  33. package/smartMapping/popup/support/utils.js +2 -2
  34. package/smartMapping/renderers/size.js +1 -1
  35. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  36. package/support/timeUtils.d.ts +11 -0
  37. package/symbols/cim/CIMCursor.js +1 -1
  38. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  39. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  40. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  41. package/views/3d/environment/SunLighting.d.ts +0 -1
  42. package/views/3d/environment/SunLighting.js +1 -1
  43. package/views/3d/environment/VirtualLighting.d.ts +0 -1
  44. package/views/3d/environment/VirtualLighting.js +1 -1
  45. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  46. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  47. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +9 -4
  48. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  49. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  50. package/views/3d/webgl-engine/materials/internal/worldSizedRibbonLineIntersectionUtils.js +2 -0
  51. package/views/layers/LineOfSightLayerView.d.ts +2 -2
  52. package/views/layers/ViewshedLayerView.d.ts +2 -1
  53. package/views/support/screenshotUtils.js +1 -1
  54. package/webscene/Slide.d.ts +1 -2
  55. package/widgets/DirectionalPad/VisibleElements.d.ts +5 -1
  56. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  57. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  58. package/widgets/Search/SearchViewModel.js +1 -1
  59. package/widgets/Search/support/layerSearchUtils.js +1 -1
  60. package/widgets/Sketch/SketchViewModel.js +1 -1
  61. package/widgets/Sketch/support/PluginManager.js +1 -1
  62. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  63. package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.d.ts +3 -3
  64. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  65. package/assets/esri/core/workers/chunks/0cb50bc2b2125c5fedf2.js +0 -1
  66. package/assets/esri/core/workers/chunks/2f04b8679c9f15390517.js +0 -1
  67. package/assets/esri/core/workers/chunks/42045cf46497828cd3c0.js +0 -1
  68. package/assets/esri/core/workers/chunks/e01fc1c31bc023dd0e33.js +0 -1
  69. package/assets/esri/core/workers/chunks/e077e321a3109c2fbbe2.js +0 -1
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clamp as e}from"../../core/mathUtils.js";import{exactEquals as t,subtract as n,normalize as r,dot as i,lerp as a,copy as o,add as s,scale as c,cross as l,set as u,scaleAndAdd as d}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as f}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{equals as p,exactEquals as m}from"../../core/libs/gl-matrix-2/math/vec4.js";import{projectPointSignedLength as h}from"./vector.js";import{sv3d as g,sv4d as ee}from"./vectorStacks.js";import{tangentFrame as te}from"../../views/3d/support/mathUtils.js";function _(e=Z){return[e[0],e[1],e[2],e[3]]}const v=m,ne=p;function re(e=Z[0],t=Z[1],n=Z[2],r=Z[3]){return x(e,t,n,r,ee.get())}function y(e,t){return x(t[0],t[1],t[2],t[3],e)}function b(e){return e}function x(e,t,n,r,i=_()){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i}function S(e,t,n){return o(n,e),n[3]=t,n}function C(e,t,n){let r=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=Math.abs(r-1)>1e-5&&r>1e-12?1/Math.sqrt(r):1;return n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n[3]=-(n[0]*e[0]+n[1]*e[1]+n[2]*e[2]),n}function w(e,t,n,r=_()){let i=n[0]-t[0],a=n[1]-t[1],o=n[2]-t[2],s=e[0]-t[0],c=e[1]-t[1],l=e[2]-t[2],u=a*l-o*c,d=o*s-i*l,f=i*c-a*s,p=u*u+d*d+f*f,m=Math.abs(p-1)>1e-5&&p>1e-12?1/Math.sqrt(p):1;return r[0]=u*m,r[1]=d*m,r[2]=f*m,r[3]=-(r[0]*e[0]+r[1]*e[1]+r[2]*e[2]),r}function T(e,a,o,s=0,c=Math.floor(1/3*o),l=Math.floor(2/3*o)){if(o<3)return!1;a(D,s);let u=c,d=!1;for(;u<o-1&&!d;)a(O,u),u++,d=!t(D,O);if(!d)return!1;for(u=Math.max(u,l),d=!1;u<o&&!d;)a(k,u),u++,n(A,D,O),r(A,A),n(j,O,k),r(j,j),d=!t(D,k)&&!t(O,k)&&Math.abs(i(A,j))<E;return d?(w(D,O,k,e),!0):s===0&&c===1&&l===2?!1:T(e,a,o,0,1,2)}function ie(e,t,n=!0){let r=t.length/3;return T(e,(e,n)=>u(e,t[n*3+0],t[n*3+1],t[n*3+2]),n?r-1:r)}const E=.99619469809,D=f(),O=f(),k=f(),A=f(),j=f();function ae(e,t,n){return t!==e&&y(e,t),e[3]=-i(b(e),n),e}function M(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}function oe(e,t,n,r){return l(k,t,e),C(n,k,r)}function N(e,t,r,i){return Y(X(e,t,n(g.get(),r,t),le,i))}function P(e,t,n){return t!=null&&Y(X(e,t.origin,t.direction,ue,n))}function F(e,t,n){return Y(X(e,t.origin,t.vector,0,n))}function I(e,t,n){return Y(X(e,t.origin,t.vector,1,n))}function L(e,t){return J(e,t)<=0}function R(e,t){return J(e,t)>=0}function z(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!0)}function B(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!1)}function V(e,t,n,r,a,o,s){let c=i(b(e),n),l=J(e,t);if(c>-1e-6&&c<1e-6)return H(l,a,o);let u=-l/c,d=H(c,a,!1);return s&&!d&&!H(l,a,o)?!1:(d?u>r.c0&&(r.c0=u):u<r.c1&&(r.c1=u),r.c0<=r.c1)}function H(e,t,n){return n?t?e>=0:e<=0:t?e>0:e<0}function U(e,t,n,r=!1){let i=t.at(-1),s=J(e,i),c=r?s>0:s<=0;for(let l=0;l<t.length;l++){let u=t.at(l),d=J(e,u),f=r?d>0:d<=0;c!==f&&a(n(),i,u,s/(s-d)),f&&o(n(),u),i=u,s=d,c=f}}function W(e,t,r,i,a,o=!1){return n(Q,r,t),$.c0=0,$.c1=1,V(e,t,Q,$,o,!o,!1)?(d(i,t,Q,$.c0),d(a,t,Q,$.c1),!0):!1}function G(e,t,r){let i=c(g.get(),b(e),-e[3]),a=q(e,n(g.get(),t,i),g.get());return s(r,a,i),r}function K(e,t,r,i){let a=b(e),o=g.get(),s=g.get();te(a,o,s);let c=n(g.get(),r,t),l=h(o,c),d=h(s,c),f=h(a,c);return u(i,l,d,f)}function q(e,t,r){let a=c(g.get(),b(e),i(b(e),t));return n(r,t,a),r}function se(e,t){return Math.abs(J(e,t))}function J(e,t){return i(b(e),t)+e[3]}function ce(e,t,n){for(let r=0;r<n;++r)if(L(e,t[r]))return!1;return!0}function Y(e){return e===0||e===1}function X(t,n,r,a,o){let l=i(b(t),r),u=J(t,n);if(l===0)return u>=0?2:3;let d=-u/l;return a&1&&(d=e(d,0,1)),!(a&4)&&d<0||!(a&8)&&d>1?u>=0?2:3:(s(o,n,c(o,r,d)),u>=0?0:1)}const Z=[0,0,1,0],le=12,ue=8,Q=f(),$={c0:0,c1:1};export{ce as areAllPointsOutside,z as clip,B as clipInfinite,W as clipLineSegment,U as clipPolygon,y as copy,_ as create,se as distance,ne as equals,v as exactEquals,ie as fromArray,T as fromManyPoints,S as fromNormalAndOffset,w as fromPoints,C as fromPositionAndNormal,x as fromValues,oe as fromVectorsAndPoint,b as getNormal,N as intersectLine,X as intersectLineOrRay,F as intersectLineSegment,I as intersectLineSegmentClamp,P as intersectRay,R as isPointInClosedPositiveHalfspace,L as isPointInside,M as negate,G as projectPoint,K as projectPointLocal,q as projectVector,ae as setOffsetFromPoint,J as signedDistance,Z as up,re as wrap};
2
+ import{clamp as e}from"../../core/mathUtils.js";import{exactEquals as t,subtract as n,normalize as r,dot as i,lerp as a,copy as o,add as s,scale as c,cross as l,set as u,scaleAndAdd as d}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as f}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{equals as p,exactEquals as m}from"../../core/libs/gl-matrix-2/math/vec4.js";import{projectPointSignedLength as h}from"./vector.js";import{sv3d as g,sv4d as _}from"./vectorStacks.js";import{tangentFrame as ee}from"../../views/3d/support/mathUtils.js";function v(e=Z){return[e[0],e[1],e[2],e[3]]}const te=m,ne=p;function re(e=Z[0],t=Z[1],n=Z[2],r=Z[3]){return x(e,t,n,r,_.get())}function y(e,t){return x(t[0],t[1],t[2],t[3],e)}function b(e){return e}function x(e,t,n,r,i=v()){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i}function S(e,t,n){return o(n,e),n[3]=t,n}function C(e,t,n){let r=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=Math.abs(r-1)>1e-5&&r>1e-12?1/Math.sqrt(r):1;return n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n[3]=-(n[0]*e[0]+n[1]*e[1]+n[2]*e[2]),n}function w(e,t,n,r=v()){let i=n[0]-t[0],a=n[1]-t[1],o=n[2]-t[2],s=e[0]-t[0],c=e[1]-t[1],l=e[2]-t[2],u=a*l-o*c,d=o*s-i*l,f=i*c-a*s,p=u*u+d*d+f*f,m=Math.abs(p-1)>1e-5&&p>1e-12?1/Math.sqrt(p):1;return r[0]=u*m,r[1]=d*m,r[2]=f*m,r[3]=-(r[0]*e[0]+r[1]*e[1]+r[2]*e[2]),r}function T(e,a,o,s=0,c=Math.floor(1/3*o),l=Math.floor(2/3*o)){if(o<3)return!1;a(D,s);let u=c,d=!1;for(;u<o-1&&!d;)a(O,u),u++,d=!t(D,O);if(!d)return!1;for(u=Math.max(u,l),d=!1;u<o&&!d;)a(k,u),u++,n(A,D,O),r(A,A),n(j,O,k),r(j,j),d=!t(D,k)&&!t(O,k)&&Math.abs(i(A,j))<ie;return d?(w(D,O,k,e),!0):s===0&&c===1&&l===2?!1:T(e,a,o,0,1,2)}function E(e,t,n=!0){let r=t.length/3;return T(e,(e,n)=>u(e,t[n*3+0],t[n*3+1],t[n*3+2]),n?r-1:r)}const ie=.99619469809,D=f(),O=f(),k=f(),A=f(),j=f();function ae(e,t,n){return t!==e&&y(e,t),e[3]=-i(b(e),n),e}function oe(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}function se(e,t,n,r){return l(k,t,e),C(n,k,r)}function M(e,t,r,i){return Y(X(e,t,n(g.get(),r,t),ue,i))}function N(e,t,n){return t!=null&&Y(X(e,t.origin,t.direction,de,n))}function P(e,t,n){return Y(X(e,t.origin,t.vector,0,n))}function F(e,t,n){return Y(X(e,t.origin,t.vector,1,n))}function I(e,t){return q(e,t)<=0}function L(e,t){return q(e,t)>=0}function R(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!0,1e-6)}function z(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!1,1e-6)}function B(e,t){return t.c0<=t.c1&&V(e,t.ray.origin,t.ray.direction,t,!1,!0,!1,0)}function V(e,t,n,r,a,o,s,c){let l=i(b(e),n),u=q(e,t);if(l>=-c&&l<=c)return H(u,a,o);let d=-u/l,f=H(l,a,!1);return s&&!f&&!H(u,a,o)?!1:(f?d>r.c0&&(r.c0=d):d<r.c1&&(r.c1=d),r.c0<=r.c1)}function H(e,t,n){return n?t?e>=0:e<=0:t?e>0:e<0}function U(e,t,n,r=!1){let i=t.at(-1),s=q(e,i),c=r?s>0:s<=0;for(let l=0;l<t.length;l++){let u=t.at(l),d=q(e,u),f=r?d>0:d<=0;c!==f&&a(n(),i,u,s/(s-d)),f&&o(n(),u),i=u,s=d,c=f}}function W(e,t,r,i,a,o=!1){return n(Q,r,t),$.c0=0,$.c1=1,V(e,t,Q,$,o,!o,!1,1e-6)?(d(i,t,Q,$.c0),d(a,t,Q,$.c1),!0):!1}function G(e,t,r){let i=c(g.get(),b(e),-e[3]),a=K(e,n(g.get(),t,i),g.get());return s(r,a,i),r}function ce(e,t,r,i){let a=b(e),o=g.get(),s=g.get();ee(a,o,s);let c=n(g.get(),r,t),l=h(o,c),d=h(s,c),f=h(a,c);return u(i,l,d,f)}function K(e,t,r){let a=c(g.get(),b(e),i(b(e),t));return n(r,t,a),r}function le(e,t){return Math.abs(q(e,t))}function q(e,t){return i(b(e),t)+e[3]}function J(e,t,n){for(let r=0;r<n;++r)if(I(e,t[r]))return!1;return!0}function Y(e){return e===0||e===1}function X(t,n,r,a,o){let l=i(b(t),r),u=q(t,n);if(l===0)return u>=0?2:3;let d=-u/l;return a&1&&(d=e(d,0,1)),!(a&4)&&d<0||!(a&8)&&d>1?u>=0?2:3:(s(o,n,c(o,r,d)),u>=0?0:1)}const Z=[0,0,1,0],ue=12,de=8,Q=f(),$={c0:0,c1:1};export{J as areAllPointsOutside,R as clip,B as clipClosedNegativeHalfspace,z as clipInfinite,W as clipLineSegment,U as clipPolygon,y as copy,v as create,le as distance,ne as equals,te as exactEquals,E as fromArray,T as fromManyPoints,S as fromNormalAndOffset,w as fromPoints,C as fromPositionAndNormal,x as fromValues,se as fromVectorsAndPoint,b as getNormal,M as intersectLine,X as intersectLineOrRay,P as intersectLineSegment,F as intersectLineSegmentClamp,N as intersectRay,L as isPointInClosedPositiveHalfspace,I as isPointInside,oe as negate,G as projectPoint,ce as projectPointLocal,K as projectVector,ae as setOffsetFromPoint,q as signedDistance,Z as up,re as wrap};
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`5.2`;let n=`5.2`;n=`5.2.0-next.163`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
2
+ import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`5.2`;let n=`5.2`;n=`5.2.0-next.164`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
@@ -6,7 +6,6 @@ import type FeatureTemplate from "./support/FeatureTemplate.js";
6
6
  import type Field from "./support/Field.js";
7
7
  import type FieldsIndex from "./support/FieldsIndex.js";
8
8
  import type LabelClass from "./support/LabelClass.js";
9
- import type TimeInfo from "./support/TimeInfo.js";
10
9
  import type PortalItem from "../portal/PortalItem.js";
11
10
  import type AttributeBinsFeatureSet from "../rest/support/AttributeBinsFeatureSet.js";
12
11
  import type FeatureSet from "../rest/support/FeatureSet.js";
@@ -43,7 +42,6 @@ import type { TimeZone } from "../time/types.js";
43
42
  import type { ObjectId } from "../views/types.js";
44
43
  import type { TimeExtentProperties } from "../time/TimeExtent.js";
45
44
  import type { TimeIntervalProperties } from "../time/TimeInterval.js";
46
- import type { TimeInfoProperties } from "./support/TimeInfo.js";
47
45
  import type { AttributeTableTemplateProperties } from "../tables/AttributeTableTemplate.js";
48
46
  import type { ElevationInfoProperties } from "../symbols/support/ElevationInfo.js";
49
47
  import type { FieldProperties } from "./support/Field.js";
@@ -400,58 +398,6 @@ export interface GeoJSONLayerProperties extends LayerProperties, PortalLayerProp
400
398
  * });
401
399
  */
402
400
  timeExtent?: TimeExtentProperties | null;
403
- /**
404
- * TimeInfo provides information such as date fields that store [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
405
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
406
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
407
- * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
408
- * time of layer initialization if it is being set for a [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/).
409
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/#loaded).
410
- * The [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
411
- * automatically calculated based on its `startField` and `endField` properties.
412
- *
413
- * @since 4.11
414
- * @example
415
- * // create geojson layer from usgs earthquakes geojson feed
416
- * const geojsonLayer = new GeoJSONLayer({
417
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
418
- * copyright: "USGS Earthquakes",
419
- * fields: [
420
- * { "name": "mag", "type": "double" },
421
- * { "name": "place", "type": "string" },
422
- * { "name": "time", "type": "date" }, // date field
423
- * { "name": "depth", "type": "double" }
424
- * ],
425
- * // timeInfo can be used to do temporal queries
426
- * // set the startField.
427
- * // timeExtent is automatically calculated from the start and end date fields
428
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
429
- * timeInfo: {
430
- * startField: "time"
431
- * }
432
- * });
433
- * @example
434
- * // create geojson layer from usgs earthquakes geojson feed
435
- * const geojsonLayer = new GeoJSONLayer({
436
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
437
- * copyright: "USGS Earthquakes",
438
- * fields: [
439
- * { "name": "mag", "type": "double" },
440
- * { "name": "place", "type": "string" },
441
- * { "name": "time", "type": "date" }, // date field
442
- * { "name": "depth", "type": "double" }
443
- * ],
444
- * // timeInfo can be used to do temporal queries
445
- * // set the startField and endField.
446
- * // timeExtent is automatically calculated from the
447
- * // the start and end date fields
448
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
449
- * timeInfo: {
450
- * startField: "time"
451
- * }
452
- * });
453
- */
454
- timeInfo?: TimeInfoProperties | null;
455
401
  /**
456
402
  * A temporary offset of the time data based on a certain [TimeInterval](https://developers.arcgis.com/javascript/latest/references/core/time/TimeInterval/). This allows
457
403
  * users to overlay features from two or more time-aware layers with different time extents.
@@ -484,6 +430,7 @@ export interface GeoJSONLayerProperties extends LayerProperties, PortalLayerProp
484
430
  * }
485
431
  * }
486
432
  * });
433
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
487
434
  * @example
488
435
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
489
436
  * let layer = new CSVLayer({
@@ -1214,59 +1161,6 @@ export default class GeoJSONLayer extends GeoJSONLayerSuperclass {
1214
1161
  */
1215
1162
  get timeExtent(): TimeExtent | null | undefined;
1216
1163
  set timeExtent(value: TimeExtentProperties | null | undefined);
1217
- /**
1218
- * TimeInfo provides information such as date fields that store [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
1219
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
1220
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
1221
- * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
1222
- * time of layer initialization if it is being set for a [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/).
1223
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/#loaded).
1224
- * The [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
1225
- * automatically calculated based on its `startField` and `endField` properties.
1226
- *
1227
- * @since 4.11
1228
- * @example
1229
- * // create geojson layer from usgs earthquakes geojson feed
1230
- * const geojsonLayer = new GeoJSONLayer({
1231
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
1232
- * copyright: "USGS Earthquakes",
1233
- * fields: [
1234
- * { "name": "mag", "type": "double" },
1235
- * { "name": "place", "type": "string" },
1236
- * { "name": "time", "type": "date" }, // date field
1237
- * { "name": "depth", "type": "double" }
1238
- * ],
1239
- * // timeInfo can be used to do temporal queries
1240
- * // set the startField.
1241
- * // timeExtent is automatically calculated from the start and end date fields
1242
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
1243
- * timeInfo: {
1244
- * startField: "time"
1245
- * }
1246
- * });
1247
- * @example
1248
- * // create geojson layer from usgs earthquakes geojson feed
1249
- * const geojsonLayer = new GeoJSONLayer({
1250
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
1251
- * copyright: "USGS Earthquakes",
1252
- * fields: [
1253
- * { "name": "mag", "type": "double" },
1254
- * { "name": "place", "type": "string" },
1255
- * { "name": "time", "type": "date" }, // date field
1256
- * { "name": "depth", "type": "double" }
1257
- * ],
1258
- * // timeInfo can be used to do temporal queries
1259
- * // set the startField and endField.
1260
- * // timeExtent is automatically calculated from the
1261
- * // the start and end date fields
1262
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
1263
- * timeInfo: {
1264
- * startField: "time"
1265
- * }
1266
- * });
1267
- */
1268
- get timeInfo(): TimeInfo | null | undefined;
1269
- set timeInfo(value: TimeInfoProperties | null | undefined);
1270
1164
  /**
1271
1165
  * A temporary offset of the time data based on a certain [TimeInterval](https://developers.arcgis.com/javascript/latest/references/core/time/TimeInterval/). This allows
1272
1166
  * users to overlay features from two or more time-aware layers with different time extents.
@@ -1299,6 +1193,7 @@ export default class GeoJSONLayer extends GeoJSONLayerSuperclass {
1299
1193
  * }
1300
1194
  * }
1301
1195
  * });
1196
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
1302
1197
  * @example
1303
1198
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
1304
1199
  * let layer = new CSVLayer({
@@ -266,21 +266,33 @@ export interface SceneLayerProperties extends LayerProperties, APIKeyMixinProper
266
266
  */
267
267
  timeExtent?: TimeExtentProperties | null;
268
268
  /**
269
- * TimeInfo provides information such as date fields that store
270
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
271
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
272
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
273
- * for the layer.
269
+ * Defines temporal information for a layer, such as [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
270
+ * date fields used to track when features remain visible, as well as the layer's [full time extent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent).
271
+ * If `timeInfo` is configured on the underlying service, it is automatically read and used by the layer.
274
272
  *
275
- * If timeInfo configuration exists on the service it gets read and used from there. A developer
276
- * can overwrite or create a timeInfo configuration on initialization.
277
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/#load).
273
+ * The `timeInfo` property can be set or overridden in the scene layer constructor or at runtime.
274
+ * When overriding `timeInfo`, ensure that `startField` and `endField` correspond to valid date fields in the layer's schema.
275
+ * To calculate a `fullTimeExtent` that covers all dates in the configured `startField` and `endField`, call
276
+ * the [getTimeExtentFromLayers()](https://developers.arcgis.com/javascript/latest/references/core/support/timeUtils/#getTimeExtentFromLayers) function. Then assign the result to `layer.timeInfo.fullTimeExtent`.
278
277
  *
279
278
  * TimeInfo's [startField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [endField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
280
279
  * can be `date`, `date-only` or `timestamp-offset` [field type](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#type) for [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/)
281
280
  * and [BuildingComponentSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/buildingSublayers/BuildingComponentSublayer/).
282
281
  *
283
282
  * @since 4.30
283
+ * @example
284
+ * // update layer's timeInfo at runtime
285
+ * sceneLayer.timeInfo = {
286
+ * startField: "DateField",
287
+ * timeZone: "UTC"
288
+ * };
289
+ *
290
+ * // calculate the fullTimeExtent based on startField
291
+ * const fullTimeExtent = getTimeExtentFromLayers([sceneLayer]);
292
+ * sceneLayer.timeInfo.fullTimeExtent = fullTimeExtent;
293
+ * @example
294
+ * // set layer's timeInfo to null
295
+ * sceneLayer.timeInfo = null;
284
296
  */
285
297
  timeInfo?: TimeInfoProperties | null;
286
298
  /**
@@ -1043,21 +1055,33 @@ export default class SceneLayer extends SceneLayerSuperclass {
1043
1055
  get timeExtent(): TimeExtent | null | undefined;
1044
1056
  set timeExtent(value: TimeExtentProperties | null | undefined);
1045
1057
  /**
1046
- * TimeInfo provides information such as date fields that store
1047
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
1048
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
1049
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
1050
- * for the layer.
1058
+ * Defines temporal information for a layer, such as [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
1059
+ * date fields used to track when features remain visible, as well as the layer's [full time extent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent).
1060
+ * If `timeInfo` is configured on the underlying service, it is automatically read and used by the layer.
1051
1061
  *
1052
- * If timeInfo configuration exists on the service it gets read and used from there. A developer
1053
- * can overwrite or create a timeInfo configuration on initialization.
1054
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/#load).
1062
+ * The `timeInfo` property can be set or overridden in the scene layer constructor or at runtime.
1063
+ * When overriding `timeInfo`, ensure that `startField` and `endField` correspond to valid date fields in the layer's schema.
1064
+ * To calculate a `fullTimeExtent` that covers all dates in the configured `startField` and `endField`, call
1065
+ * the [getTimeExtentFromLayers()](https://developers.arcgis.com/javascript/latest/references/core/support/timeUtils/#getTimeExtentFromLayers) function. Then assign the result to `layer.timeInfo.fullTimeExtent`.
1055
1066
  *
1056
1067
  * TimeInfo's [startField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [endField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
1057
1068
  * can be `date`, `date-only` or `timestamp-offset` [field type](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#type) for [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/)
1058
1069
  * and [BuildingComponentSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/buildingSublayers/BuildingComponentSublayer/).
1059
1070
  *
1060
1071
  * @since 4.30
1072
+ * @example
1073
+ * // update layer's timeInfo at runtime
1074
+ * sceneLayer.timeInfo = {
1075
+ * startField: "DateField",
1076
+ * timeZone: "UTC"
1077
+ * };
1078
+ *
1079
+ * // calculate the fullTimeExtent based on startField
1080
+ * const fullTimeExtent = getTimeExtentFromLayers([sceneLayer]);
1081
+ * sceneLayer.timeInfo.fullTimeExtent = fullTimeExtent;
1082
+ * @example
1083
+ * // set layer's timeInfo to null
1084
+ * sceneLayer.timeInfo = null;
1061
1085
  */
1062
1086
  get timeInfo(): TimeInfo | null | undefined;
1063
1087
  set timeInfo(value: TimeInfoProperties | null | undefined);
@@ -84,16 +84,22 @@ export interface ViewshedLayerProperties extends LayerProperties, OperationalLay
84
84
  *
85
85
  * > [!WARNING]
86
86
  * >
87
- * > **Known Limitations**
88
- * >
89
- * > This layer is only supported in a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
90
- * > The results of the tool vary depending on the zoom level, as changes in zoom level affect the level of detail (LOD) of the scene geometry.
87
+ * > **Things to consider:**
88
+ * > * This analysis is only supported in a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
89
+ * > * The results of the tool vary depending on the zoom level, as changes in zoom level affect the level of detail (LOD) of the scene geometry.
90
+ * > * Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
91
+ * [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
92
+ * > * Snapping is enabled by default. This can be temporarily disabled by holding the `CTRL` key.
93
+ * > * Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
94
+ * > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
95
+ * > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
91
96
  *
92
97
  * @since 4.31
93
98
  * @see [ViewshedLayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/)
94
99
  * @see [Viewshed](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/)
95
100
  * @see [ViewshedAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/)
96
101
  * @see [ViewshedAnalysisView3D](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/)
102
+ * @see [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/)
97
103
  * @see [Sample - ViewshedLayer in slides](https://developers.arcgis.com/javascript/latest/sample-code/layers-viewshed/)
98
104
  */
99
105
  export default class ViewshedLayer extends ViewshedLayerSuperclass {
@@ -3,7 +3,6 @@ import type Collection from "../core/Collection.js";
3
3
  import type Extent from "../geometry/Extent.js";
4
4
  import type SpatialReference from "../geometry/SpatialReference.js";
5
5
  import type Layer from "./Layer.js";
6
- import type TimeInfo from "./support/TimeInfo.js";
7
6
  import type WMSSublayer from "./support/WMSSublayer.js";
8
7
  import type TimeExtent from "../time/TimeExtent.js";
9
8
  import type TimeInterval from "../time/TimeInterval.js";
@@ -17,7 +16,6 @@ import type { PortalLayer, PortalLayerProperties } from "./mixins/PortalLayer.js
17
16
  import type { RefreshableLayer, RefreshableLayerEvents, RefreshableLayerProperties } from "./mixins/RefreshableLayer.js";
18
17
  import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "./mixins/ScaleRangeLayer.js";
19
18
  import type { TemporalLayer, TemporalLayerProperties } from "./mixins/TemporalLayer.js";
20
- import type { TimeInfoProperties } from "./support/TimeInfo.js";
21
19
  import type { WMSDimension } from "./wms/types.js";
22
20
  import type { TimeExtentProperties } from "../time/TimeExtent.js";
23
21
  import type { TimeIntervalProperties } from "../time/TimeInterval.js";
@@ -150,39 +148,6 @@ export interface WMSLayerProperties extends LayerProperties, PortalLayerProperti
150
148
  * });
151
149
  */
152
150
  timeExtent?: TimeExtentProperties | null;
153
- /**
154
- * TimeInfo provides information such as date fields that store
155
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
156
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
157
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
158
- * for the layer. The `timeInfo` property is automatically set at layer initialization if the layer has one or more time dimensions.
159
- * The [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
160
- * automatically set to the union of all time dimension extents.
161
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/WMSLayer/#load).
162
- *
163
- * @since 4.17
164
- * @example
165
- * // create geojson layer from usgs earthquakes geojson feed
166
- * const geojsonLayer = new GeoJSONLayer({
167
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
168
- * copyright: "USGS Earthquakes",
169
- * fields: [
170
- * { "name": "mag", "type": "double" },
171
- * { "name": "place", "type": "string" },
172
- * { "name": "time", "type": "date" }, // date field
173
- * { "name": "depth", "type": "double" }
174
- * ],
175
- * // timeInfo can be used to do temporal queries
176
- * // set the startField and endField.
177
- * // timeExtent is automatically calculated from the
178
- * // the start and end date fields
179
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
180
- * timeInfo: {
181
- * startField: "time"
182
- * }
183
- * });
184
- */
185
- timeInfo?: TimeInfoProperties | null;
186
151
  /**
187
152
  * A temporary offset of the time data based on a certain [TimeInterval](https://developers.arcgis.com/javascript/latest/references/core/time/TimeInterval/). This allows
188
153
  * users to overlay features from two or more time-aware layers with different time extents.
@@ -215,6 +180,7 @@ export interface WMSLayerProperties extends LayerProperties, PortalLayerProperti
215
180
  * }
216
181
  * }
217
182
  * });
183
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
218
184
  * @example
219
185
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
220
186
  * let layer = new CSVLayer({
@@ -678,40 +644,6 @@ export default class WMSLayer extends WMSLayerSuperclass {
678
644
  */
679
645
  get timeExtent(): TimeExtent | null | undefined;
680
646
  set timeExtent(value: TimeExtentProperties | null | undefined);
681
- /**
682
- * TimeInfo provides information such as date fields that store
683
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
684
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
685
- * for each feature and the [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
686
- * for the layer. The `timeInfo` property is automatically set at layer initialization if the layer has one or more time dimensions.
687
- * The [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
688
- * automatically set to the union of all time dimension extents.
689
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/WMSLayer/#load).
690
- *
691
- * @since 4.17
692
- * @example
693
- * // create geojson layer from usgs earthquakes geojson feed
694
- * const geojsonLayer = new GeoJSONLayer({
695
- * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
696
- * copyright: "USGS Earthquakes",
697
- * fields: [
698
- * { "name": "mag", "type": "double" },
699
- * { "name": "place", "type": "string" },
700
- * { "name": "time", "type": "date" }, // date field
701
- * { "name": "depth", "type": "double" }
702
- * ],
703
- * // timeInfo can be used to do temporal queries
704
- * // set the startField and endField.
705
- * // timeExtent is automatically calculated from the
706
- * // the start and end date fields
707
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
708
- * timeInfo: {
709
- * startField: "time"
710
- * }
711
- * });
712
- */
713
- get timeInfo(): TimeInfo | null | undefined;
714
- set timeInfo(value: TimeInfoProperties | null | undefined);
715
647
  /**
716
648
  * A temporary offset of the time data based on a certain [TimeInterval](https://developers.arcgis.com/javascript/latest/references/core/time/TimeInterval/). This allows
717
649
  * users to overlay features from two or more time-aware layers with different time extents.
@@ -744,6 +676,7 @@ export default class WMSLayer extends WMSLayerSuperclass {
744
676
  * }
745
677
  * }
746
678
  * });
679
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
747
680
  * @example
748
681
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
749
682
  * let layer = new CSVLayer({
@@ -57,28 +57,24 @@ export interface TemporalLayerProperties extends Partial<Pick<TemporalLayer, "us
57
57
  */
58
58
  timeExtent?: TimeExtentProperties | null;
59
59
  /**
60
- * TimeInfo provides information such as date fields that store
61
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
62
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
63
- * for each feature and the [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
64
- * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
65
- * time of layer initialization if it is being set for a
66
- * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
67
- * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
68
- * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
69
- * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
70
- * initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
71
- * The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
72
- * automatically calculated based on its `startField` and `endField` properties.
73
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#load).
60
+ * Defines temporal information for a layer, such as [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
61
+ * date fields used to track when features remain visible, as well as the layer's [full time extent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent).
62
+ * If `timeInfo` is configured on the underlying service, it is automatically read and used by the layer.
74
63
  *
75
- * TimeInfo's [TimeInfo.startField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [endField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
76
- * can be `date`, `date-only` or `timestamp-offset` [field type](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#type) for [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
77
- * and [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/).
64
+ * The `timeInfo` can be set or overridden on the following feature based layers in the layer constructor or at runtime: [AnnotationFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/AnnotationFeatureLayer/),
65
+ * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/), [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/), [DimensionFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionFeatureLayer/), [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/),
66
+ * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/), [OrientedImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OrientedImageryLayer/), [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/),
67
+ * [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), and [SubtypeGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SubtypeGroupLayer/).
78
68
  *
79
- * @since 4.11
69
+ * When overriding a layer's `timeInfo`, ensure that `startField` and `endField` correspond to valid date fields in the layer's schema.
70
+ * To calculate a `fullTimeExtent` that covers all dates in the configured `startField` and `endField`, call
71
+ * [getTimeExtentFromLayers()](https://developers.arcgis.com/javascript/latest/references/core/support/timeUtils/#getTimeExtentFromLayers) method. Then assign the result to `layer.timeInfo.fullTimeExtent`.
72
+ *
73
+ * The `startField` and `endField` properties accept `date`, `date-only`, or `timestamp-offset` field types.
74
+ *
75
+ * @see [Samples using time-aware layers](https://developers.arcgis.com/javascript/latest/sample-code/?tagged=arcgis-time-bar)
80
76
  * @example
81
- * // create geojson layer from usgs earthquakes geojson feed
77
+ * // create geojson layer from USGS earthquakes GeoJSON feed
82
78
  * const geojsonLayer = new GeoJSONLayer({
83
79
  * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
84
80
  * copyright: "USGS Earthquakes",
@@ -89,14 +85,28 @@ export interface TemporalLayerProperties extends Partial<Pick<TemporalLayer, "us
89
85
  * { "name": "depth", "type": "double" }
90
86
  * ],
91
87
  * // timeInfo can be used to do temporal queries
92
- * // set the startField and endField.
93
- * // timeExtent is automatically calculated from the
94
- * // the start and end date fields
95
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
96
88
  * timeInfo: {
97
- * startField: "time"
89
+ * startField: "time",
90
+ * fullTimeExtent: {
91
+ * start: new Date(1970, 0, 1),
92
+ * end: new Date(2000, 11, 31)
93
+ * },
94
+ * timeZone: "UTC"
98
95
  * }
99
96
  * });
97
+ * @example
98
+ * // update layer's timeInfo at runtime after the feature layer is loaded
99
+ * featureLayer.timeInfo = {
100
+ * startField: "DateField",
101
+ * timeZone: "UTC"
102
+ * };
103
+ *
104
+ * // calculate the fullTimeExtent based on startField
105
+ * const fullTimeExtent = getTimeExtentFromLayers([featureLayer]);
106
+ * featureLayer.timeInfo.fullTimeExtent = fullTimeExtent;
107
+ * @example
108
+ * // set layer's timeInfo to null
109
+ * layer.timeInfo = null;
100
110
  */
101
111
  timeInfo?: TimeInfoProperties | null;
102
112
  /**
@@ -107,6 +117,7 @@ export interface TemporalLayerProperties extends Partial<Pick<TemporalLayer, "us
107
117
  * A time offset can be used for display purposes only. The query and selection are not affected by the offset.
108
118
  *
109
119
  * @since 4.14
120
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
110
121
  * @example
111
122
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
112
123
  * let layer = new CSVLayer({
@@ -195,28 +206,24 @@ export abstract class TemporalLayer {
195
206
  get timeExtent(): TimeExtent | null | undefined;
196
207
  set timeExtent(value: TimeExtentProperties | null | undefined);
197
208
  /**
198
- * TimeInfo provides information such as date fields that store
199
- * [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
200
- * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time
201
- * for each feature and the [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent)
202
- * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
203
- * time of layer initialization if it is being set for a
204
- * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
205
- * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
206
- * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
207
- * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
208
- * initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
209
- * The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
210
- * automatically calculated based on its `startField` and `endField` properties.
211
- * The timeInfo parameters cannot be changed after the layer is [loaded](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#load).
209
+ * Defines temporal information for a layer, such as [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField)
210
+ * date fields used to track when features remain visible, as well as the layer's [full time extent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent).
211
+ * If `timeInfo` is configured on the underlying service, it is automatically read and used by the layer.
212
212
  *
213
- * TimeInfo's [TimeInfo.startField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) and [endField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField)
214
- * can be `date`, `date-only` or `timestamp-offset` [field type](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#type) for [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
215
- * and [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/).
213
+ * The `timeInfo` can be set or overridden on the following feature based layers in the layer constructor or at runtime: [AnnotationFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/AnnotationFeatureLayer/),
214
+ * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/), [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/), [DimensionFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionFeatureLayer/), [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/),
215
+ * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/), [OrientedImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OrientedImageryLayer/), [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/),
216
+ * [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), and [SubtypeGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SubtypeGroupLayer/).
216
217
  *
217
- * @since 4.11
218
+ * When overriding a layer's `timeInfo`, ensure that `startField` and `endField` correspond to valid date fields in the layer's schema.
219
+ * To calculate a `fullTimeExtent` that covers all dates in the configured `startField` and `endField`, call
220
+ * [getTimeExtentFromLayers()](https://developers.arcgis.com/javascript/latest/references/core/support/timeUtils/#getTimeExtentFromLayers) method. Then assign the result to `layer.timeInfo.fullTimeExtent`.
221
+ *
222
+ * The `startField` and `endField` properties accept `date`, `date-only`, or `timestamp-offset` field types.
223
+ *
224
+ * @see [Samples using time-aware layers](https://developers.arcgis.com/javascript/latest/sample-code/?tagged=arcgis-time-bar)
218
225
  * @example
219
- * // create geojson layer from usgs earthquakes geojson feed
226
+ * // create geojson layer from USGS earthquakes GeoJSON feed
220
227
  * const geojsonLayer = new GeoJSONLayer({
221
228
  * url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
222
229
  * copyright: "USGS Earthquakes",
@@ -227,14 +234,28 @@ export abstract class TemporalLayer {
227
234
  * { "name": "depth", "type": "double" }
228
235
  * ],
229
236
  * // timeInfo can be used to do temporal queries
230
- * // set the startField and endField.
231
- * // timeExtent is automatically calculated from the
232
- * // the start and end date fields
233
- * // The date values must be in milliseconds number from the UNIX epoch specified in UTC.
234
237
  * timeInfo: {
235
- * startField: "time"
238
+ * startField: "time",
239
+ * fullTimeExtent: {
240
+ * start: new Date(1970, 0, 1),
241
+ * end: new Date(2000, 11, 31)
242
+ * },
243
+ * timeZone: "UTC"
236
244
  * }
237
245
  * });
246
+ * @example
247
+ * // update layer's timeInfo at runtime after the feature layer is loaded
248
+ * featureLayer.timeInfo = {
249
+ * startField: "DateField",
250
+ * timeZone: "UTC"
251
+ * };
252
+ *
253
+ * // calculate the fullTimeExtent based on startField
254
+ * const fullTimeExtent = getTimeExtentFromLayers([featureLayer]);
255
+ * featureLayer.timeInfo.fullTimeExtent = fullTimeExtent;
256
+ * @example
257
+ * // set layer's timeInfo to null
258
+ * layer.timeInfo = null;
238
259
  */
239
260
  get timeInfo(): TimeInfo | null | undefined;
240
261
  set timeInfo(value: TimeInfoProperties | null | undefined);
@@ -246,6 +267,7 @@ export abstract class TemporalLayer {
246
267
  * A time offset can be used for display purposes only. The query and selection are not affected by the offset.
247
268
  *
248
269
  * @since 4.14
270
+ * @see [Sample - Time Bar with actions and layer timeOffset](https://developers.arcgis.com/javascript/latest/sample-code/time-bar-time-offset/)
249
271
  * @example
250
272
  * // Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years).
251
273
  * let layer = new CSVLayer({