@arcgis/common-components 5.1.0-next.104 → 5.1.0-next.105
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/BYGHEIBE.js +2 -0
- package/dist/cdn/SII4OH3Z.js +2 -0
- package/dist/cdn/VLR56OSS.js +2 -0
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/layer-utils.js +70 -0
- package/dist/components/arcgis-field-info/customElement.js +168 -167
- package/dist/components/arcgis-field-info/utils/basic.d.ts +10 -20
- package/dist/components/arcgis-field-pick-list/utils/types.d.ts +4 -18
- package/dist/components/arcgis-unique-values-list/customElement.js +73 -72
- package/dist/components/arcgis-unique-values-list/utils/basic.d.ts +9 -13
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/package.json +3 -3
- package/dist/cdn/5KIT22UZ.js +0 -2
- package/dist/cdn/UQQWSK4Z.js +0 -2
|
@@ -1,95 +1,96 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import { c as
|
|
3
|
-
import { css as
|
|
4
|
-
import { keyed as
|
|
5
|
-
import { ref as
|
|
6
|
-
import { LitElement as
|
|
7
|
-
import { Task as
|
|
8
|
-
import { log as
|
|
9
|
-
import
|
|
10
|
-
import * as
|
|
11
|
-
import * as
|
|
12
|
-
import * as
|
|
13
|
-
import * as
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import { i as
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
import { c as G } from "../../chunks/runtime.js";
|
|
3
|
+
import { css as U, html as c } from "lit";
|
|
4
|
+
import { keyed as b } from "lit/directives/keyed.js";
|
|
5
|
+
import { ref as D } from "lit/directives/ref.js";
|
|
6
|
+
import { LitElement as W, createEvent as q, safeClassMap as V } from "@arcgis/lumina";
|
|
7
|
+
import { Task as Q } from "@lit/task";
|
|
8
|
+
import { log as L, composeMissingPropertyMessage as x } from "@arcgis/toolkit/log";
|
|
9
|
+
import H from "@arcgis/core/config.js";
|
|
10
|
+
import * as k from "@arcgis/core/core/reactiveUtils.js";
|
|
11
|
+
import * as h from "@arcgis/core/intl.js";
|
|
12
|
+
import * as R from "@arcgis/core/applications/PortalApp/layerUtils.js";
|
|
13
|
+
import * as I from "@arcgis/core/core/lang.js";
|
|
14
|
+
import J from "@arcgis/core/smartMapping/statistics/summaryStatistics.js";
|
|
15
|
+
import j from "@arcgis/core/smartMapping/statistics/uniqueValues.js";
|
|
16
|
+
import { i as f } from "../../chunks/commonFunctions.js";
|
|
17
|
+
import { i as y, a as S, b as $, c as _, d as T, e as A, f as v, g as F, h as Z, j as z, k as B, l as K, m as N, n as X, o as P, p as Y } from "../../chunks/layer-utils.js";
|
|
18
|
+
import ee from "@arcgis/core/rest/support/Query.js";
|
|
19
|
+
import { u as te } from "../../chunks/useT9n.js";
|
|
20
|
+
function ie(a) {
|
|
21
|
+
return a.associatedLayer?.url;
|
|
21
22
|
}
|
|
22
|
-
const
|
|
23
|
+
const se = {
|
|
23
24
|
dateStyle: "short",
|
|
24
25
|
timeStyle: "short"
|
|
25
|
-
},
|
|
26
|
+
}, ae = {
|
|
26
27
|
timeStyle: "medium"
|
|
27
28
|
};
|
|
28
|
-
function
|
|
29
|
+
function re(a) {
|
|
29
30
|
const { layer: e, fieldName: t } = a;
|
|
30
31
|
let i;
|
|
31
|
-
const n =
|
|
32
|
+
const n = R.supportsFieldConfiguration(e);
|
|
32
33
|
let s;
|
|
33
34
|
"popupTemplate" in e && (s = e.popupTemplate);
|
|
34
35
|
const r = s ? s.fieldInfos : [];
|
|
35
|
-
return
|
|
36
|
-
const
|
|
36
|
+
return M(a)?.filter((u) => u.name === t).forEach((u) => {
|
|
37
|
+
const o = !n && r ? r.filter((g) => g.fieldName === u.name) : void 0, l = n ? e.getFieldAlias(t) : o?.length ? o[0].label : u.alias;
|
|
37
38
|
/^raster.(item|service)pixelvalue/iu.test(t) && (u.type = "double");
|
|
38
|
-
const
|
|
39
|
+
const d = {
|
|
39
40
|
layerField: u,
|
|
40
|
-
label:
|
|
41
|
+
label: l || u.name
|
|
41
42
|
};
|
|
42
|
-
|
|
43
|
+
d.codedValues = ue(t, a), le(d), d.simpleFieldType && (i = d);
|
|
43
44
|
}), i;
|
|
44
45
|
}
|
|
45
|
-
function
|
|
46
|
+
function M(a) {
|
|
46
47
|
const { layer: e } = a;
|
|
47
|
-
return e
|
|
48
|
+
return y(e) || S(e) || T(e) && e.rasterFields.length ? e.rasterFields : "fields" in e ? e.fields : [];
|
|
48
49
|
}
|
|
49
|
-
async function
|
|
50
|
+
async function E(a) {
|
|
50
51
|
a.statisticsStatus = "in-progress";
|
|
51
52
|
const { layer: e, view: t } = a;
|
|
52
|
-
if (e
|
|
53
|
+
if (y(e) || S(e) || F(e) || $(e))
|
|
53
54
|
throw new Error("could not get feature count");
|
|
54
55
|
try {
|
|
55
|
-
return await
|
|
56
|
+
return await ce(e, t);
|
|
56
57
|
} catch {
|
|
57
58
|
return;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
async function
|
|
61
|
+
async function ne(a) {
|
|
61
62
|
const { layer: e, view: t, fieldName: i, fieldInfo: n } = a;
|
|
62
|
-
if (e
|
|
63
|
+
if (y(e) || S(e) || $(e))
|
|
63
64
|
throw new Error("could not get statistics for ImageryTileLayer/WCSLayer/VoxelLayer");
|
|
64
65
|
if (!n || n.layerField.type === "oid" || n.layerField.type === "guid" || n.layerField.type === "global-id")
|
|
65
|
-
return { totalCount: await
|
|
66
|
+
return { totalCount: await E(a), nullcount: 0 };
|
|
66
67
|
try {
|
|
67
|
-
const s = await
|
|
68
|
+
const s = await J({
|
|
68
69
|
layer: e,
|
|
69
70
|
view: t,
|
|
70
71
|
field: i,
|
|
71
72
|
outStatisticTypes: { exclude: ["median"] }
|
|
72
73
|
});
|
|
73
|
-
if (!
|
|
74
|
+
if (!f(s.count))
|
|
74
75
|
throw new Error("could not get statistics");
|
|
75
76
|
const r = "sourceJSON" in e && e.sourceJSON.maxRecordCount === s.count;
|
|
76
|
-
if (
|
|
77
|
+
if (f(s.nullcount) && !r)
|
|
77
78
|
return { ...s, totalCount: s.count + s.nullcount };
|
|
78
79
|
{
|
|
79
|
-
const m = await
|
|
80
|
+
const m = await E(a);
|
|
80
81
|
return { ...s, totalCount: m };
|
|
81
82
|
}
|
|
82
83
|
} catch {
|
|
83
84
|
throw new Error("could not get statistics");
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
|
-
async function
|
|
87
|
+
async function oe(a) {
|
|
87
88
|
const { layer: e, view: t, fieldName: i } = a;
|
|
88
|
-
if (e
|
|
89
|
+
if (y(e) || S(e) || $(e))
|
|
89
90
|
throw new Error("could not get unique values for ImageryLayer/ImageryTileLayer/WCSLayer/VoxelLayer");
|
|
90
|
-
e
|
|
91
|
+
_(e) && (e.outFields = ["*"]);
|
|
91
92
|
try {
|
|
92
|
-
return await
|
|
93
|
+
return await j({
|
|
93
94
|
layer: e,
|
|
94
95
|
view: t,
|
|
95
96
|
field: i
|
|
@@ -98,7 +99,7 @@ async function W(a) {
|
|
|
98
99
|
throw new Error("could not get unique values");
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
|
-
function
|
|
102
|
+
function le(a) {
|
|
102
103
|
switch (a.layerField.type) {
|
|
103
104
|
case "string":
|
|
104
105
|
a.simpleFieldType = "string";
|
|
@@ -132,48 +133,48 @@ function H(a) {
|
|
|
132
133
|
break;
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
|
-
function
|
|
136
|
+
function ue(a, e) {
|
|
136
137
|
const { layer: t } = e;
|
|
137
|
-
if (t
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
140
|
-
return [{ code:
|
|
138
|
+
if (A(t) && t.subtypeField === a) {
|
|
139
|
+
const o = t.parent?.subtypes?.find((l) => l.code === t.subtypeCode);
|
|
140
|
+
if (o)
|
|
141
|
+
return [{ code: o.code, name: o.name }];
|
|
141
142
|
}
|
|
142
|
-
if (t
|
|
143
|
+
if (!v(t) && !T(t))
|
|
143
144
|
return;
|
|
144
|
-
const i = t
|
|
145
|
+
const i = v(t) ? t.typeIdField : void 0, n = v(t) ? t.types : void 0;
|
|
145
146
|
let s;
|
|
146
|
-
const m =
|
|
147
|
-
return t
|
|
148
|
-
(
|
|
147
|
+
const m = M(e)?.find((o) => o.name === a), u = m?.domain;
|
|
148
|
+
return v(t) && i && n ? (i === a ? s = n.map(
|
|
149
|
+
(o) => (
|
|
149
150
|
// fake coded values
|
|
150
151
|
{
|
|
151
|
-
code:
|
|
152
|
-
name:
|
|
152
|
+
code: o.id,
|
|
153
|
+
name: o.name
|
|
153
154
|
}
|
|
154
155
|
)
|
|
155
|
-
) : (s = [], n.forEach((
|
|
156
|
-
if (!
|
|
157
|
-
const
|
|
158
|
-
|
|
156
|
+
) : (s = [], n.forEach((o) => {
|
|
157
|
+
if (!o.domains[a] || o.domains[a].type === "inherited") {
|
|
158
|
+
const l = u;
|
|
159
|
+
l?.codedValues && l.codedValues.forEach((d) => {
|
|
159
160
|
let g = !1;
|
|
160
|
-
s.forEach((
|
|
161
|
-
|
|
162
|
-
}), g || s.push(
|
|
161
|
+
s.forEach((p) => {
|
|
162
|
+
p.code === d.code && (g = !0, `, ${p.name},`.includes(`, ${d.name},`) || (p.name += `, ${d.name}`));
|
|
163
|
+
}), g || s.push(I.clone(d));
|
|
163
164
|
});
|
|
164
|
-
} else
|
|
165
|
-
let
|
|
165
|
+
} else o.domains[a].codedValues && o.domains[a].codedValues.forEach((l) => {
|
|
166
|
+
let d = !1;
|
|
166
167
|
s.forEach((g) => {
|
|
167
|
-
g.code ===
|
|
168
|
-
}),
|
|
168
|
+
g.code === l.code && (d = !0, `, ${g.name},`.includes(`, ${l.name},`) || (g.name += `, ${l.name}`));
|
|
169
|
+
}), d || s.push(I.clone(l));
|
|
169
170
|
});
|
|
170
|
-
})), !s.length && u?.codedValues && (s =
|
|
171
|
+
})), !s.length && u?.codedValues && (s = I.clone(u.codedValues))) : u?.codedValues && (s = m.domain.codedValues), s?.length ? s : void 0;
|
|
171
172
|
}
|
|
172
|
-
async function
|
|
173
|
+
async function de(a) {
|
|
173
174
|
const { view: e, layer: t } = a;
|
|
174
|
-
if (t
|
|
175
|
+
if (T(t) || y(t) || S(t))
|
|
175
176
|
throw new Error("could not get feature");
|
|
176
|
-
if (t
|
|
177
|
+
if (_(t) || Z(t)) {
|
|
177
178
|
const i = t.createQuery();
|
|
178
179
|
i.start = 0, i.num = 5, i.outFields = ["*"];
|
|
179
180
|
const n = await t.queryFeatures(i);
|
|
@@ -182,44 +183,44 @@ async function J(a) {
|
|
|
182
183
|
throw new Error("could not get feature");
|
|
183
184
|
} else {
|
|
184
185
|
if (!e)
|
|
185
|
-
return await
|
|
186
|
+
return await C(a);
|
|
186
187
|
let i;
|
|
187
|
-
if (t
|
|
188
|
+
if (A(t) || z(t)) {
|
|
188
189
|
let s = t.parent;
|
|
189
|
-
for (;
|
|
190
|
+
for (; B(s) || K(s); )
|
|
190
191
|
s = s.parent;
|
|
191
192
|
i = await e.whenLayerView(s);
|
|
192
193
|
} else
|
|
193
194
|
i = await e.whenLayerView(t);
|
|
194
|
-
if (i.availableFields.length === t.fields.length ||
|
|
195
|
+
if (i.availableFields.length === t.fields.length || (F(t) || N(t)) && i.availableFields.length > 0) {
|
|
195
196
|
const s = t.createQuery();
|
|
196
197
|
s.start = 0, s.num = 5, s.outFields = ["*"];
|
|
197
198
|
const r = await i.queryFeatures(s);
|
|
198
|
-
return r.features?.length ? r : await
|
|
199
|
+
return r.features?.length ? r : await C(a);
|
|
199
200
|
} else
|
|
200
|
-
return await
|
|
201
|
+
return await C(a);
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
|
-
async function
|
|
204
|
+
async function C(a) {
|
|
204
205
|
const { layer: e } = a;
|
|
205
|
-
if (
|
|
206
|
+
if (T(e) || y(e) || F(e) || N(e))
|
|
206
207
|
throw new Error("cannot get feature from service");
|
|
207
|
-
const t = new
|
|
208
|
+
const t = new ee({
|
|
208
209
|
where: "1=1",
|
|
209
210
|
outFields: ["*"],
|
|
210
211
|
returnGeometry: !1
|
|
211
212
|
});
|
|
212
213
|
return "sourceJSON" in e && e.sourceJSON?.advancedQueryCapabilities?.supportsPagination && (t.num = 1), await e.queryFeatures(t);
|
|
213
214
|
}
|
|
214
|
-
async function
|
|
215
|
-
if (a
|
|
216
|
-
return await
|
|
217
|
-
if (a
|
|
215
|
+
async function ce(a, e) {
|
|
216
|
+
if (_(a))
|
|
217
|
+
return await me(a);
|
|
218
|
+
if (v(a) || X(a) || P(a) || Z(a) || Y(a))
|
|
218
219
|
return await a.queryFeatureCount();
|
|
219
|
-
if (e && (a
|
|
220
|
-
return await
|
|
220
|
+
if (e && (F(a) || N(a)))
|
|
221
|
+
return await fe(a, e);
|
|
221
222
|
}
|
|
222
|
-
async function
|
|
223
|
+
async function me(a) {
|
|
223
224
|
const e = a.createQuery();
|
|
224
225
|
e.outFields = ["*"];
|
|
225
226
|
const t = await a.queryFeatures(e);
|
|
@@ -227,27 +228,27 @@ async function B(a) {
|
|
|
227
228
|
return t.features.length;
|
|
228
229
|
throw new Error("could not get feature count");
|
|
229
230
|
}
|
|
230
|
-
async function
|
|
231
|
+
async function fe(a, e) {
|
|
231
232
|
return await (await e.whenLayerView(a)).queryFeatureCount();
|
|
232
233
|
}
|
|
233
|
-
const
|
|
234
|
-
class
|
|
234
|
+
const pe = U`:host{height:100%}.container{padding:var(--calcite-space-xs);background-color:var(--calcite-color-foreground-1)}.title{font-weight:700;padding:5px 0}.missing,.data{color:#a9a9a9}.count{white-space:nowrap}.section{padding:var(--calcite-space-xs) 0}.statistics-row{border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);padding:var(--calcite-space-xs) 0;display:flex;justify-content:space-between}.statistics-row-top-values{border-top:var(--calcite-border-width-sm) solid var(--calctie-color-border-2);padding:20px 0 var(--calcite-space-xs) 0;display:flex;justify-content:space-between}`;
|
|
235
|
+
class ge extends W {
|
|
235
236
|
constructor() {
|
|
236
|
-
super(...arguments), this._messages =
|
|
237
|
+
super(...arguments), this._messages = te({ blocking: !0 }), this._propWatcherTask = new Q(this, {
|
|
237
238
|
task: async ([e, t]) => {
|
|
238
|
-
const i =
|
|
239
|
-
if (
|
|
239
|
+
const i = f(e) && f(t);
|
|
240
|
+
if (f(e) || L("error", this, x("layer")), f(t) || L("error", this, x("fieldName")), !i)
|
|
240
241
|
throw new Error();
|
|
241
242
|
await this.processProps(), this._propWatcherTask.autoRun = !1;
|
|
242
243
|
},
|
|
243
244
|
args: () => [this.layer, this.fieldName]
|
|
244
|
-
}), this.oneFeatureResponseStatus = "missing", this.statisticsStatus = "missing", this.uniqueValuesStatus = "missing", this.hideAlias = !1, this.hideNumericFormat = !1, this.hideStatistics = !1, this.arcgisComplete =
|
|
245
|
+
}), this.oneFeatureResponseStatus = "missing", this.statisticsStatus = "missing", this.uniqueValuesStatus = "missing", this.hideAlias = !1, this.hideNumericFormat = !1, this.hideStatistics = !1, this.arcgisComplete = q(), this.arcgisFieldInfoComplete = q();
|
|
245
246
|
}
|
|
246
247
|
static {
|
|
247
248
|
this.properties = { oneFeatureResponseStatus: 16, oneFeatureResponse: 16, statisticsStatus: 16, statistics: 16, uniqueValuesStatus: 16, uniqueValues: 16, view: 0, layer: 0, fieldName: 1, hideAlias: 5, hideNumericFormat: 5, hideStatistics: 5 };
|
|
248
249
|
}
|
|
249
250
|
static {
|
|
250
|
-
this.styles =
|
|
251
|
+
this.styles = pe;
|
|
251
252
|
}
|
|
252
253
|
async refresh() {
|
|
253
254
|
await this.processProps(), this.requestUpdate();
|
|
@@ -262,26 +263,26 @@ class Y extends x {
|
|
|
262
263
|
let s;
|
|
263
264
|
if (t.declaredClass === "esri.layers.support.Sublayer") {
|
|
264
265
|
const r = t;
|
|
265
|
-
e && await
|
|
266
|
+
e && await k.whenOnce(() => !e.updating), s = await r.createFeatureLayer(), await s?.load();
|
|
266
267
|
}
|
|
267
268
|
this.props = {
|
|
268
269
|
view: e,
|
|
269
270
|
layer: s ?? t,
|
|
270
271
|
fieldName: i,
|
|
271
272
|
hideStatistics: n
|
|
272
|
-
}, this.props.fieldInfo =
|
|
273
|
-
urls: `${
|
|
273
|
+
}, this.props.fieldInfo = re(this.props), P(t) && H.request.interceptors?.push({
|
|
274
|
+
urls: `${ie(t)}/${t.layerId}`,
|
|
274
275
|
before(r) {
|
|
275
276
|
r.requestOptions.authMode = "no-prompt";
|
|
276
277
|
}
|
|
277
278
|
}), this.oneFeatureResponseStatus = "in-progress";
|
|
278
279
|
try {
|
|
279
|
-
const r = await
|
|
280
|
+
const r = await de(this.props);
|
|
280
281
|
this.oneFeatureResponse = r, this.oneFeatureResponseStatus = "success";
|
|
281
282
|
} catch {
|
|
282
283
|
this.oneFeatureResponseStatus = "failed";
|
|
283
284
|
}
|
|
284
|
-
if (t
|
|
285
|
+
if (F(t)) {
|
|
285
286
|
this.uniqueValuesStatus = "failed", this.statisticsStatus = "failed";
|
|
286
287
|
return;
|
|
287
288
|
}
|
|
@@ -290,7 +291,7 @@ class Y extends x {
|
|
|
290
291
|
else {
|
|
291
292
|
this.uniqueValuesStatus = "in-progress";
|
|
292
293
|
try {
|
|
293
|
-
const r = await
|
|
294
|
+
const r = await oe(this.props);
|
|
294
295
|
this.uniqueValues = r, r?.uniqueValueInfos?.length ? this.uniqueValuesStatus = "success" : this.uniqueValuesStatus = "failed";
|
|
295
296
|
} catch {
|
|
296
297
|
this.uniqueValuesStatus = "failed";
|
|
@@ -301,13 +302,13 @@ class Y extends x {
|
|
|
301
302
|
else {
|
|
302
303
|
this.statisticsStatus = "in-progress";
|
|
303
304
|
try {
|
|
304
|
-
const r = await
|
|
305
|
-
if (!
|
|
305
|
+
const r = await ne(this.props);
|
|
306
|
+
if (!f(r.totalCount) && f(r.count) && this.uniqueValuesStatus === "success") {
|
|
306
307
|
const m = this.uniqueValues?.uniqueValueInfos ?? [];
|
|
307
308
|
for (let u = 0; u < m.length; u++) {
|
|
308
|
-
const
|
|
309
|
-
if (
|
|
310
|
-
r.totalCount =
|
|
309
|
+
const o = m[u];
|
|
310
|
+
if (o.value === null) {
|
|
311
|
+
r.totalCount = o.count + r.count;
|
|
311
312
|
break;
|
|
312
313
|
}
|
|
313
314
|
}
|
|
@@ -323,7 +324,7 @@ class Y extends x {
|
|
|
323
324
|
setUpTimeZoneHandle() {
|
|
324
325
|
this.timeZoneHandle?.remove();
|
|
325
326
|
const { props: e } = this, { view: t, fieldInfo: i } = e;
|
|
326
|
-
["date", "timestamp-offset"].includes(this._getStatisticsType(i)) && (this.timeZoneHandle =
|
|
327
|
+
["date", "timestamp-offset"].includes(this._getStatisticsType(i)) && (this.timeZoneHandle = k.watch(() => t?.timeZone, () => {
|
|
327
328
|
this.requestUpdate();
|
|
328
329
|
}));
|
|
329
330
|
}
|
|
@@ -444,29 +445,29 @@ class Y extends x {
|
|
|
444
445
|
}
|
|
445
446
|
_getDateString(e, t) {
|
|
446
447
|
const { view: i } = this.props;
|
|
447
|
-
return i && i.timeZone === "unknown" ?
|
|
448
|
+
return i && i.timeZone === "unknown" ? h.formatDate(e, {
|
|
448
449
|
...this.getIntlDateTimeFormattingOptions("short-date-short-time", t),
|
|
449
450
|
timeZone: "utc"
|
|
450
|
-
}) :
|
|
451
|
+
}) : h.formatDate(e, {
|
|
451
452
|
...this.getIntlDateTimeFormattingOptions("short-date-short-time", t),
|
|
452
453
|
timeZone: i?.timeZone || "system"
|
|
453
454
|
});
|
|
454
455
|
}
|
|
455
456
|
_getTimestampOffsetString(e, t) {
|
|
456
457
|
const { view: i } = this.props;
|
|
457
|
-
return typeof e == "string" ? i && i.timeZone === "unknown" ?
|
|
458
|
+
return typeof e == "string" ? i && i.timeZone === "unknown" ? h.formatTimestamp(e, {
|
|
458
459
|
...this.getIntlDateTimeFormattingOptions("short-date-short-time", t),
|
|
459
460
|
timeZone: "utc"
|
|
460
|
-
}) :
|
|
461
|
+
}) : h.formatTimestamp(e, {
|
|
461
462
|
...this.getIntlDateTimeFormattingOptions("short-date-short-time", t),
|
|
462
463
|
timeZone: i?.timeZone || "system"
|
|
463
464
|
}) : this._getDateString(e, t);
|
|
464
465
|
}
|
|
465
466
|
_getDateOnlyString(e, t) {
|
|
466
|
-
return
|
|
467
|
+
return h.formatDateOnly(e, this.getIntlDateTimeFormattingOptions("short-date", t));
|
|
467
468
|
}
|
|
468
469
|
_getTimeOnlyString(e, t) {
|
|
469
|
-
return typeof e == "string" ?
|
|
470
|
+
return typeof e == "string" ? h.formatTimeOnly(e, this.getIntlDateTimeFormattingOptions("short-date-long-time", t)) : h.formatDate(e, {
|
|
470
471
|
...this.getIntlDateTimeFormattingOptions("long-time", {
|
|
471
472
|
...t,
|
|
472
473
|
isTimeOnly: !0
|
|
@@ -479,10 +480,10 @@ class Y extends x {
|
|
|
479
480
|
}
|
|
480
481
|
_getNumberString(e, t) {
|
|
481
482
|
const i = t?.useFieldFormatting ? e : Math.round(e * 100) / 100;
|
|
482
|
-
return
|
|
483
|
+
return h.formatNumber(i, this.getIntlNumberFormattingOptions(t));
|
|
483
484
|
}
|
|
484
485
|
_printNumValue(e, t) {
|
|
485
|
-
return
|
|
486
|
+
return f(e) ? this._getNumberString(e, t) : "--";
|
|
486
487
|
}
|
|
487
488
|
_setCompleteRef() {
|
|
488
489
|
this.arcgisComplete.emit(), this.arcgisFieldInfoComplete.emit();
|
|
@@ -496,7 +497,7 @@ class Y extends x {
|
|
|
496
497
|
if (!e?.useFieldFormatting)
|
|
497
498
|
return t ? {
|
|
498
499
|
useGrouping: ["always", "auto"].includes(t.useGrouping)
|
|
499
|
-
} :
|
|
500
|
+
} : h.convertNumberFormatToIntlOptions({
|
|
500
501
|
digitSeparator: this.getPopupTemplateFieldInfo()?.format?.digitSeparator ?? !0
|
|
501
502
|
});
|
|
502
503
|
const i = t ? {
|
|
@@ -507,7 +508,7 @@ class Y extends x {
|
|
|
507
508
|
if (i)
|
|
508
509
|
return i;
|
|
509
510
|
const n = this.getPopupTemplateFieldInfo();
|
|
510
|
-
return
|
|
511
|
+
return h.convertNumberFormatToIntlOptions({
|
|
511
512
|
digitSeparator: n?.format?.digitSeparator ?? !0,
|
|
512
513
|
places: n?.format?.places ?? 2
|
|
513
514
|
});
|
|
@@ -515,7 +516,7 @@ class Y extends x {
|
|
|
515
516
|
getIntlDateTimeFormattingOptions(e, t) {
|
|
516
517
|
const i = this.getCurrentFieldFormat();
|
|
517
518
|
if (!t?.useFieldFormatting)
|
|
518
|
-
return i ? t?.isTimeOnly ?
|
|
519
|
+
return i ? t?.isTimeOnly ? ae : se : h.convertDateFormatToIntlOptions(e);
|
|
519
520
|
const n = i ? {
|
|
520
521
|
dateStyle: t?.isTimeOnly ? void 0 : i.dateStyle ?? void 0,
|
|
521
522
|
// year/month is overridden if dateStyle is set
|
|
@@ -527,11 +528,11 @@ class Y extends x {
|
|
|
527
528
|
if (n)
|
|
528
529
|
return n;
|
|
529
530
|
const s = this.getPopupTemplateFieldInfo();
|
|
530
|
-
return
|
|
531
|
+
return h.convertDateFormatToIntlOptions(s?.format?.dateFormat ?? e);
|
|
531
532
|
}
|
|
532
533
|
originalLayerSupportsFieldConfigs() {
|
|
533
534
|
const { layer: e } = this;
|
|
534
|
-
return
|
|
535
|
+
return R.supportsFieldConfiguration(e);
|
|
535
536
|
}
|
|
536
537
|
getPopupTemplateFieldInfo() {
|
|
537
538
|
const { props: e } = this, { layer: t, fieldName: i } = e;
|
|
@@ -541,45 +542,45 @@ class Y extends x {
|
|
|
541
542
|
return this._propWatcherTask.render({
|
|
542
543
|
complete: () => {
|
|
543
544
|
const { props: e } = this, { fieldInfo: t } = e;
|
|
544
|
-
return t ?
|
|
545
|
+
return t ? c`<div class="container">${this.renderFieldType()}${this.renderFieldAlias()}${this.renderFieldDescription()}${this.renderFieldValueType()}${this.renderFieldSampleValue()}${this.renderFieldNumericFormat()}${this.renderFieldStatistics()}</div>` : "";
|
|
545
546
|
},
|
|
546
547
|
error: () => ""
|
|
547
548
|
});
|
|
548
549
|
}
|
|
549
550
|
renderFieldType() {
|
|
550
551
|
const { _messages: e, props: t } = this, { fieldInfo: i } = t, n = this._getFieldTypeLabel(i.layerField.type);
|
|
551
|
-
return
|
|
552
|
+
return c`<div class="section"><div class="title">${e.fieldType}</div><div>${n}</div></div>`;
|
|
552
553
|
}
|
|
553
554
|
renderFieldAlias() {
|
|
554
555
|
const { _messages: e, props: t, hideAlias: i } = this, { fieldInfo: n } = t;
|
|
555
|
-
return i ? "" :
|
|
556
|
+
return i ? "" : c`<div class="section"><div class="title">${e.fieldAlias}</div><div>${n.label}</div></div>`;
|
|
556
557
|
}
|
|
557
558
|
renderFieldDescription() {
|
|
558
559
|
const { _messages: e, props: t } = this, { layer: i } = t;
|
|
559
|
-
if (i
|
|
560
|
+
if (!v(i))
|
|
560
561
|
return "";
|
|
561
562
|
const { fieldInfo: n } = t, s = n.layerField.description;
|
|
562
|
-
return
|
|
563
|
+
return c`<div class="section"><div class="title">${e.fieldDescription}</div><div class=${V({
|
|
563
564
|
missing: !s
|
|
564
565
|
})}>${s || e.fieldDescriptionNotSet}</div></div>`;
|
|
565
566
|
}
|
|
566
567
|
renderFieldValueType() {
|
|
567
568
|
const { _messages: e, props: t } = this, { layer: i } = t;
|
|
568
|
-
if (i
|
|
569
|
+
if (!v(i))
|
|
569
570
|
return "";
|
|
570
571
|
const { fieldInfo: n } = t, s = this._getFieldValueTypeCamelCase(n);
|
|
571
|
-
return
|
|
572
|
+
return c`<div class="section"><div class="title">${e.fieldValueType}</div><div class=${V(s ? "" : "missing")}>${s ? e.fieldValueTypes[s] : e.fieldValueTypeNotSet}</div></div>`;
|
|
572
573
|
}
|
|
573
574
|
renderFieldSampleValue() {
|
|
574
|
-
const { oneFeatureResponse: e, oneFeatureResponseStatus: t, statisticsStatus: i, statistics: n, uniqueValuesStatus: s, uniqueValues: r, _messages: m, props: u } = this, { layer:
|
|
575
|
-
let
|
|
576
|
-
if (
|
|
575
|
+
const { oneFeatureResponse: e, oneFeatureResponseStatus: t, statisticsStatus: i, statistics: n, uniqueValuesStatus: s, uniqueValues: r, _messages: m, props: u } = this, { layer: o, fieldName: l, fieldInfo: d } = u, { statistics: g } = m;
|
|
576
|
+
let p;
|
|
577
|
+
if (y(o) || $(o) || !F(o) && ["string", "oid", "guid"].includes(this._getStatisticsType(d)) && s !== "failed")
|
|
577
578
|
return "";
|
|
578
|
-
t === "success" ? e.features.forEach((
|
|
579
|
-
(
|
|
580
|
-
}) : i === "success" ?
|
|
581
|
-
const
|
|
582
|
-
return p
|
|
579
|
+
t === "success" ? e.features.forEach((w) => {
|
|
580
|
+
(p === void 0 || p === null && w.attributes[l] !== null) && (p = w.attributes[l]);
|
|
581
|
+
}) : i === "success" ? p = n?.min ?? void 0 : s === "success" && (p = r?.uniqueValueInfos?.[0]?.value ?? r?.uniqueValueInfos?.[1]?.value ?? void 0);
|
|
582
|
+
const O = d.codedValues;
|
|
583
|
+
return f(p) && (O ? p = O.find((w) => p === w.code)?.name || p : p = this._getDisplayString(p, { useFieldFormatting: !0 })), c`<div class="section"><div class="title">${m.fieldSampleValue}</div><div class=${V(t === "failed" && i === "failed" && s === "failed" || !f(p) ? "missing" : "")}>${t === "success" || i === "success" || s === "success" ? p?.toString() ?? g.allNulls : t === "failed" && i === "failed" && s === "failed" ? m.fieldSampleNotAvailable : m.fieldSampleRetrieving}</div></div>`;
|
|
583
584
|
}
|
|
584
585
|
renderFieldNumericFormat() {
|
|
585
586
|
const { _messages: e, props: t, hideNumericFormat: i } = this, { fieldName: n, fieldInfo: s, layer: r } = t;
|
|
@@ -587,29 +588,29 @@ class Y extends x {
|
|
|
587
588
|
return "";
|
|
588
589
|
const m = this.originalLayerSupportsFieldConfigs() ? r.getFieldConfiguration(n) : void 0;
|
|
589
590
|
if (m?.fieldFormat) {
|
|
590
|
-
const { minimumFractionDigits:
|
|
591
|
-
return
|
|
591
|
+
const { minimumFractionDigits: o, maximumFractionDigits: l } = m.fieldFormat;
|
|
592
|
+
return c`<div class="section"><div class="title">${e.fieldDecimalPlaces}</div><div>${e.fieldMinimumFractionDigits.replace("${number}", o.toString())}</div><div>${e.fieldMaximumFractionDigits.replace("${number}", l.toString())}</div></div>`;
|
|
592
593
|
}
|
|
593
594
|
const u = "popupTemplate" in r ? r.popupTemplate : void 0;
|
|
594
595
|
if (u?.fieldInfos) {
|
|
595
|
-
const
|
|
596
|
-
if (
|
|
597
|
-
const
|
|
598
|
-
if (
|
|
599
|
-
const
|
|
600
|
-
return
|
|
596
|
+
const o = u.fieldInfos?.filter((l) => l.fieldName === n);
|
|
597
|
+
if (o?.length) {
|
|
598
|
+
const l = o[0];
|
|
599
|
+
if (f(l?.format?.places)) {
|
|
600
|
+
const d = l.format.places;
|
|
601
|
+
return c`<div class="section"><div class="title">${e.fieldDecimalPlaces}</div><div>${e.fieldNumDecimalPlaces.replace("${number}", d.toString())}</div></div>`;
|
|
601
602
|
}
|
|
602
603
|
}
|
|
603
604
|
}
|
|
604
|
-
return
|
|
605
|
+
return c`<div class="section"><div class="title">${e.fieldDecimalPlaces}</div><div class="missing">${e.fieldDecimalPlacesNotAvailable}</div></div>`;
|
|
605
606
|
}
|
|
606
607
|
renderFieldStatistics() {
|
|
607
608
|
const { statisticsStatus: e, uniqueValuesStatus: t, hideStatistics: i, _messages: n, props: s } = this, { layer: r, fieldInfo: m } = s;
|
|
608
|
-
return i ? (this.arcgisComplete.emit(), this.arcgisFieldInfoComplete.emit(), "") : ["stream", "imagery-tile", "voxel"].includes(r.type) || ["long"].includes(m.layerField.type) ? (this.arcgisComplete.emit(), this.arcgisFieldInfoComplete.emit(), "") :
|
|
609
|
+
return i ? (this.arcgisComplete.emit(), this.arcgisFieldInfoComplete.emit(), "") : ["stream", "imagery-tile", "voxel"].includes(r.type) || ["long"].includes(m.layerField.type) ? (this.arcgisComplete.emit(), this.arcgisFieldInfoComplete.emit(), "") : c`<div class="section"><div class="title">${n.fieldStatistics}</div>${!e || e === "missing" || e === "in-progress" ? b("field-info-statistics-content", c`<div class="missing">${n.fieldStatisticsRetrieving}</div>`) : e === "failed" && t !== "success" ? this.renderNoStatistics() : b("field-info-statistics-content", c`<div ${D(this._setCompleteRef)}>${this.renderStatistics()}</div>`)}</div>`;
|
|
609
610
|
}
|
|
610
611
|
renderNoStatistics() {
|
|
611
612
|
const { _messages: e } = this;
|
|
612
|
-
return
|
|
613
|
+
return b("field-info-statistics-content", c`<div class="missing" ${D(this._setCompleteRef)}>${e.fieldStatisticsNotAvailable}</div>`);
|
|
613
614
|
}
|
|
614
615
|
renderStatistics() {
|
|
615
616
|
const { props: e } = this, { fieldInfo: t } = e;
|
|
@@ -634,43 +635,43 @@ class Y extends x {
|
|
|
634
635
|
if (!e)
|
|
635
636
|
return this.renderNoStatistics();
|
|
636
637
|
const { statistics: i } = t;
|
|
637
|
-
return
|
|
638
|
+
return c`<div><div class="statistics-row"><div>${i.numberOfValues}</div><div class="data">${this._printNumValue(e.totalCount)}</div></div>${f(e.sum) ? c`<div class="statistics-row"><div>${i.sumOfValues}</div><div class="data">${this._printNumValue(e.sum)}</div></div>` : null}${f(e.min) ? c`<div class="statistics-row"><div>${i.minimum}</div><div class="data">${this._printNumValue(e.min)}</div></div>` : null}${f(e.max) ? c`<div class="statistics-row"><div>${i.maximum}</div><div class="data">${this._printNumValue(e.max)}</div></div>` : null}${f(e.avg) ? c`<div class="statistics-row"><div>${i.average}</div><div class="data">${this._printNumValue(e.avg)}</div></div>` : null}${f(e.stddev) ? c`<div class="statistics-row"><div>${i.standardDeviation}</div><div class="data">${this._printNumValue(e.stddev)}</div></div>` : null}${this.renderNullValues()}</div>`;
|
|
638
639
|
}
|
|
639
640
|
renderStringStatistics() {
|
|
640
641
|
const { statistics: e, uniqueValuesStatus: t, _messages: i } = this, { statistics: n } = i;
|
|
641
|
-
return
|
|
642
|
+
return c`<div><div class="statistics-row"><div>${n.numberOfValues}</div>${t !== "success" ? c`<div class="missing">--</div>` : c`<div class="data">${this._printNumValue(e?.totalCount)}</div>`}</div>${this.renderNullValues()}${this.renderTopValues()}</div>`;
|
|
642
643
|
}
|
|
643
644
|
renderDateStatistics() {
|
|
644
645
|
const { statistics: e, view: t, props: i, _messages: n } = this, { fieldInfo: s } = i;
|
|
645
|
-
if (!e || !
|
|
646
|
+
if (!e || !f(e.max) || !f(e.min))
|
|
646
647
|
return this.renderNoStatistics();
|
|
647
648
|
const { statistics: r } = n, m = e.max - e.min, u = Math.floor(m / 31536e6);
|
|
648
|
-
let
|
|
649
|
-
|
|
650
|
-
let
|
|
651
|
-
|
|
652
|
-
const g = s.simpleFieldType !== "timestamp-offset" || !t || t.timeZone !== "unknown",
|
|
653
|
-
return
|
|
649
|
+
let o = Math.floor((m - u * 31536e6) / 2628e6), l = Math.ceil((m - o * 2628e6) / 864e5);
|
|
650
|
+
l >= 30 && (o += 1, l = 0);
|
|
651
|
+
let d = u === 1 ? r.timeSpanOptions.year : u > 1 ? r.timeSpanOptions.years.replace("${years}", u.toString()) : "";
|
|
652
|
+
d += u > 0 && (o > 0 || l > 0) ? ", " : "", d += o === 1 ? r.timeSpanOptions.month : o > 1 ? r.timeSpanOptions.months.replace("${months}", o.toString()) : "", d += o > 0 && l > 0 ? ", " : "", d += l === 1 ? r.timeSpanOptions.day : l > 1 ? r.timeSpanOptions.days.replace("${days}", l.toString()) : "";
|
|
653
|
+
const g = s.simpleFieldType !== "timestamp-offset" || !t || t.timeZone !== "unknown", p = s.simpleFieldType === "time-only";
|
|
654
|
+
return c`<div><div class="statistics-row"><div>${r.numberOfValues}</div><div class="data">${this._printNumValue(e?.totalCount)}</div></div>${g && f(e.min) ? c`<div class="statistics-row"><div>${p ? r.minimumTime : r.minimumDate}</div><div class="data">${this._getDisplayString(e.min)}</div></div>` : null}${g && f(e.max) ? c`<div class="statistics-row"><div>${p ? r.maximumTime : r.maximumDate}</div><div class="data">${this._getDisplayString(e.max)}</div></div>` : null}${g && f(e.avg) ? c`<div class="statistics-row"><div>${p ? r.averageTime : r.averageDate}</div><div class="data">${this._getDisplayString(e.avg)}</div></div>` : null}${g && !p && f(e.min) && f(e.max) && m > 0 ? c`<div class="statistics-row"><div>${r.timespan}</div><div class="data">${d}</div></div>` : null}${this.renderNullValues()}</div>`;
|
|
654
655
|
}
|
|
655
656
|
renderTopValues() {
|
|
656
657
|
const { uniqueValues: e, uniqueValuesStatus: t, _messages: i, props: n } = this, { fieldInfo: s } = n, { statistics: r } = i;
|
|
657
658
|
if (e?.uniqueValueInfos?.length) {
|
|
658
659
|
const m = e.uniqueValueInfos;
|
|
659
|
-
m.sort((
|
|
660
|
-
const u = s.codedValues,
|
|
661
|
-
let
|
|
660
|
+
m.sort((l, d) => l.count < d.count ? 1 : l.count > d.count ? -1 : 0);
|
|
661
|
+
const u = s.codedValues, o = m.filter((l) => l.value !== null).filter((l, d) => l && d < 10).map((l) => {
|
|
662
|
+
let d = l.value;
|
|
662
663
|
return u ? u.forEach((g) => {
|
|
663
|
-
|
|
664
|
-
}) :
|
|
664
|
+
d === g.code && (d = g.name);
|
|
665
|
+
}) : d = this._getDisplayString(d), c`<div class="statistics-row"><div class="data">${`${d}`}</div><div class="count">${this._printNumValue(l.count)}</div></div>`;
|
|
665
666
|
});
|
|
666
|
-
return
|
|
667
|
+
return o.length ? c`<div><div class="statistics-row-top-values"><div>${m.length > 10 ? r.topTenValues : r.topValues}</div><div>${r.count}</div></div>${o}</div>` : "";
|
|
667
668
|
} else
|
|
668
|
-
return
|
|
669
|
+
return c`<div><div class="statistics-row-top-values"><div>${r.topValues}</div><div>${r.count}</div></div><div class="statistics-row"><div class="missing">${t === "failed" ? i.fieldUniqueValuesNotAvailable : i.fieldSampleRetrieving}</div></div></div>`;
|
|
669
670
|
}
|
|
670
671
|
renderNullValues() {
|
|
671
672
|
const { statistics: e, uniqueValues: t, _messages: i } = this, { statistics: n } = i;
|
|
672
673
|
let s = e?.nullcount;
|
|
673
|
-
if (!
|
|
674
|
+
if (!f(s) && t) {
|
|
674
675
|
const r = t.uniqueValueInfos;
|
|
675
676
|
for (let m = 0; m < r.length; m++) {
|
|
676
677
|
const u = r[m];
|
|
@@ -680,10 +681,10 @@ class Y extends x {
|
|
|
680
681
|
}
|
|
681
682
|
}
|
|
682
683
|
}
|
|
683
|
-
return
|
|
684
|
+
return c`<div class="statistics-row"><div>${n.numberOfNulls}</div>${f(s) ? c`<div class="data">${this._printNumValue(s)}</div>` : c`<div class="missing">--</div>`}</div>`;
|
|
684
685
|
}
|
|
685
686
|
}
|
|
686
|
-
|
|
687
|
+
G("arcgis-field-info", ge);
|
|
687
688
|
export {
|
|
688
|
-
|
|
689
|
+
ge as ArcgisFieldInfo
|
|
689
690
|
};
|