@esri/solutions-components 0.7.46 → 0.7.48

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.
@@ -74,22 +74,28 @@ export class FloorFilter {
74
74
  * Initialize the floor filter or reset the current view if it already exists
75
75
  */
76
76
  _initFloorFilter(view) {
77
- var _a;
77
+ var _a, _b, _c, _d;
78
78
  if (view && this.enabled && this.FloorFilter && ((_a = view === null || view === void 0 ? void 0 : view.map) === null || _a === void 0 ? void 0 : _a.floorInfo)) {
79
79
  if (!this.floorFilterWidget) {
80
80
  this.floorFilterWidget = new this.FloorFilter({
81
81
  container: this._floorFilterElement,
82
82
  view
83
83
  });
84
- if (this._levelHandle) {
85
- this._levelHandle.remove();
86
- }
84
+ (_b = this._facilityHandle) === null || _b === void 0 ? void 0 : _b.remove();
85
+ this._facilityHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.facility, (facility) => {
86
+ this.facilityChanged.emit(facility);
87
+ });
88
+ (_c = this._levelHandle) === null || _c === void 0 ? void 0 : _c.remove();
87
89
  this._levelHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.level, (level) => {
88
90
  this.levelChanged.emit(level);
89
91
  });
92
+ (_d = this._siteHandle) === null || _d === void 0 ? void 0 : _d.remove();
93
+ this._siteHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.site, (site) => {
94
+ this.siteChanged.emit(site);
95
+ });
90
96
  }
91
97
  else {
92
- this.floorFilterWidget.view = view;
98
+ this.floorFilterWidget.viewModel.view = view;
93
99
  }
94
100
  }
95
101
  }
@@ -168,6 +174,21 @@ export class FloorFilter {
168
174
  }
169
175
  static get events() {
170
176
  return [{
177
+ "method": "facilityChanged",
178
+ "name": "facilityChanged",
179
+ "bubbles": true,
180
+ "cancelable": true,
181
+ "composed": true,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": "Emitted on demand when the Facility is changed"
185
+ },
186
+ "complexType": {
187
+ "original": "string",
188
+ "resolved": "string",
189
+ "references": {}
190
+ }
191
+ }, {
171
192
  "method": "levelChanged",
172
193
  "name": "levelChanged",
173
194
  "bubbles": true,
@@ -182,6 +203,21 @@ export class FloorFilter {
182
203
  "resolved": "string",
183
204
  "references": {}
184
205
  }
206
+ }, {
207
+ "method": "siteChanged",
208
+ "name": "siteChanged",
209
+ "bubbles": true,
210
+ "cancelable": true,
211
+ "composed": true,
212
+ "docs": {
213
+ "tags": [],
214
+ "text": "Emitted on demand when the Site is changed"
215
+ },
216
+ "complexType": {
217
+ "original": "string",
218
+ "resolved": "string",
219
+ "references": {}
220
+ }
185
221
  }];
186
222
  }
187
223
  static get elementRef() { return "el"; }
@@ -167,6 +167,7 @@ export class LayerTable {
167
167
  this._mapClickHandle.remove();
168
168
  }
169
169
  if (this.mapView) {
170
+ this._floorExpression = undefined;
170
171
  this._updateShareUrl();
171
172
  this._mapClickHandle = this.reactiveUtils.on(() => this.mapView, "click", (event) => {
172
173
  void this._mapClicked(event);
@@ -235,6 +236,13 @@ export class LayerTable {
235
236
  }
236
237
  await this._refresh();
237
238
  }
239
+ /**
240
+ * Refresh the table when floor filter facility is changed
241
+ */
242
+ async facilityChanged(evt) {
243
+ this._floorFacility = evt.detail;
244
+ this._updateFloorDefinitionExpression();
245
+ }
238
246
  /**
239
247
  * Refresh the table when floor filter level is changed
240
248
  */
@@ -242,6 +250,13 @@ export class LayerTable {
242
250
  this._floorLevel = evt.detail;
243
251
  this._updateFloorDefinitionExpression();
244
252
  }
253
+ /**
254
+ * Refresh the table when floor filter site is changed
255
+ */
256
+ async siteChanged(evt) {
257
+ this._floorSite = evt.detail;
258
+ this._updateFloorDefinitionExpression();
259
+ }
245
260
  /**
246
261
  * Refresh the table when
247
262
  */
@@ -538,7 +553,12 @@ export class LayerTable {
538
553
  */
539
554
  _updateFloorDefinitionExpression() {
540
555
  if (this._floorField && this._floorLevel) {
541
- this._layer.definitionExpression = `${this._floorField} = '${this._floorLevel}'`;
556
+ const floorExp = `${this._floorField} = '${this._floorLevel}'`;
557
+ const defExp = this._layer.definitionExpression;
558
+ this._layer.definitionExpression = (defExp === null || defExp === void 0 ? void 0 : defExp.indexOf(this._floorExpression)) > -1 ?
559
+ defExp.replace(this._floorExpression, floorExp) :
560
+ defExp ? `${defExp} AND (${floorExp})` : floorExp;
561
+ this._floorExpression = floorExp;
542
562
  }
543
563
  }
544
564
  /**
@@ -1141,7 +1161,15 @@ export class LayerTable {
1141
1161
  * Check if the layers definitionExpression has been modified
1142
1162
  */
1143
1163
  _handleFilterUpdate() {
1144
- this._filterActive = this._definitionExpression !== this._layer.definitionExpression;
1164
+ const defExp = this._layer.definitionExpression;
1165
+ if (this._floorExpression) {
1166
+ const regEx = new RegExp(`${this._floorField} = ['].+[']`, "gm");
1167
+ this._layer.definitionExpression = defExp && this._floorField && defExp.indexOf(`${this._floorField} = '`) > -1 ?
1168
+ defExp.replace(regEx, this._floorExpression) : defExp ?
1169
+ `${defExp} AND (${this._floorExpression})` : this._floorExpression;
1170
+ }
1171
+ this._filterActive = this._definitionExpression !== this._layer.definitionExpression &&
1172
+ (this._floorExpression ? this._layer.definitionExpression !== this._floorExpression : true);
1145
1173
  this._updateShareUrl();
1146
1174
  }
1147
1175
  /**
@@ -1229,7 +1257,10 @@ export class LayerTable {
1229
1257
  const layerExpressions = (_b = (_a = this.mapInfo) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.layerExpressions;
1230
1258
  this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => { var _a; return exp.id === ((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id); }) : [];
1231
1259
  this._filterList.layerExpressions = this._layerExpressions;
1232
- this._filterActive = false;
1260
+ this._filterActive = this._layerExpressions.filter(lyrExp => {
1261
+ console.log(lyrExp);
1262
+ return lyrExp.expressions.filter(exp => exp.active).length > 0;
1263
+ }).length > 0;
1233
1264
  }
1234
1265
  /**
1235
1266
  * Select all rows that are not currently selectd
@@ -1817,12 +1848,24 @@ export class LayerTable {
1817
1848
  "target": "window",
1818
1849
  "capture": false,
1819
1850
  "passive": false
1851
+ }, {
1852
+ "name": "facilityChanged",
1853
+ "method": "facilityChanged",
1854
+ "target": "window",
1855
+ "capture": false,
1856
+ "passive": false
1820
1857
  }, {
1821
1858
  "name": "levelChanged",
1822
1859
  "method": "levelChanged",
1823
1860
  "target": "window",
1824
1861
  "capture": false,
1825
1862
  "passive": false
1863
+ }, {
1864
+ "name": "siteChanged",
1865
+ "method": "siteChanged",
1866
+ "target": "window",
1867
+ "capture": false,
1868
+ "passive": false
1826
1869
  }, {
1827
1870
  "name": "noLayersFound",
1828
1871
  "method": "noLayersFound",
@@ -38,6 +38,12 @@
38
38
  <script type="module" src="../solutions-components.esm.js"></script>
39
39
 
40
40
  <script>
41
+ // require(["esri/config"], (
42
+ // esriConfig
43
+ // ) => {
44
+ // esriConfig.portalUrl = "https://holistic.mapsdevext.arcgis.com";
45
+ // });
46
+
41
47
  function addValues() {
42
48
  const demo = document.getElementById("demo");
43
49
 
@@ -13,7 +13,9 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
13
13
  super();
14
14
  this.__registerHost();
15
15
  this.__attachShadow();
16
+ this.facilityChanged = createEvent(this, "facilityChanged", 7);
16
17
  this.levelChanged = createEvent(this, "levelChanged", 7);
18
+ this.siteChanged = createEvent(this, "siteChanged", 7);
17
19
  this.enabled = undefined;
18
20
  this.floorFilterWidget = undefined;
19
21
  this.mapView = undefined;
@@ -66,22 +68,28 @@ const FloorFilter = /*@__PURE__*/ proxyCustomElement(class FloorFilter extends H
66
68
  * Initialize the floor filter or reset the current view if it already exists
67
69
  */
68
70
  _initFloorFilter(view) {
69
- var _a;
71
+ var _a, _b, _c, _d;
70
72
  if (view && this.enabled && this.FloorFilter && ((_a = view === null || view === void 0 ? void 0 : view.map) === null || _a === void 0 ? void 0 : _a.floorInfo)) {
71
73
  if (!this.floorFilterWidget) {
72
74
  this.floorFilterWidget = new this.FloorFilter({
73
75
  container: this._floorFilterElement,
74
76
  view
75
77
  });
76
- if (this._levelHandle) {
77
- this._levelHandle.remove();
78
- }
78
+ (_b = this._facilityHandle) === null || _b === void 0 ? void 0 : _b.remove();
79
+ this._facilityHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.facility, (facility) => {
80
+ this.facilityChanged.emit(facility);
81
+ });
82
+ (_c = this._levelHandle) === null || _c === void 0 ? void 0 : _c.remove();
79
83
  this._levelHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.level, (level) => {
80
84
  this.levelChanged.emit(level);
81
85
  });
86
+ (_d = this._siteHandle) === null || _d === void 0 ? void 0 : _d.remove();
87
+ this._siteHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.site, (site) => {
88
+ this.siteChanged.emit(site);
89
+ });
82
90
  }
83
91
  else {
84
- this.floorFilterWidget.view = view;
92
+ this.floorFilterWidget.viewModel.view = view;
85
93
  }
86
94
  }
87
95
  }
@@ -196,6 +196,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
196
196
  this._mapClickHandle.remove();
197
197
  }
198
198
  if (this.mapView) {
199
+ this._floorExpression = undefined;
199
200
  this._updateShareUrl();
200
201
  this._mapClickHandle = this.reactiveUtils.on(() => this.mapView, "click", (event) => {
201
202
  void this._mapClicked(event);
@@ -264,6 +265,13 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
264
265
  }
265
266
  await this._refresh();
266
267
  }
268
+ /**
269
+ * Refresh the table when floor filter facility is changed
270
+ */
271
+ async facilityChanged(evt) {
272
+ this._floorFacility = evt.detail;
273
+ this._updateFloorDefinitionExpression();
274
+ }
267
275
  /**
268
276
  * Refresh the table when floor filter level is changed
269
277
  */
@@ -271,6 +279,13 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
271
279
  this._floorLevel = evt.detail;
272
280
  this._updateFloorDefinitionExpression();
273
281
  }
282
+ /**
283
+ * Refresh the table when floor filter site is changed
284
+ */
285
+ async siteChanged(evt) {
286
+ this._floorSite = evt.detail;
287
+ this._updateFloorDefinitionExpression();
288
+ }
274
289
  /**
275
290
  * Refresh the table when
276
291
  */
@@ -567,7 +582,12 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
567
582
  */
568
583
  _updateFloorDefinitionExpression() {
569
584
  if (this._floorField && this._floorLevel) {
570
- this._layer.definitionExpression = `${this._floorField} = '${this._floorLevel}'`;
585
+ const floorExp = `${this._floorField} = '${this._floorLevel}'`;
586
+ const defExp = this._layer.definitionExpression;
587
+ this._layer.definitionExpression = (defExp === null || defExp === void 0 ? void 0 : defExp.indexOf(this._floorExpression)) > -1 ?
588
+ defExp.replace(this._floorExpression, floorExp) :
589
+ defExp ? `${defExp} AND (${floorExp})` : floorExp;
590
+ this._floorExpression = floorExp;
571
591
  }
572
592
  }
573
593
  /**
@@ -1170,7 +1190,15 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
1170
1190
  * Check if the layers definitionExpression has been modified
1171
1191
  */
1172
1192
  _handleFilterUpdate() {
1173
- this._filterActive = this._definitionExpression !== this._layer.definitionExpression;
1193
+ const defExp = this._layer.definitionExpression;
1194
+ if (this._floorExpression) {
1195
+ const regEx = new RegExp(`${this._floorField} = ['].+[']`, "gm");
1196
+ this._layer.definitionExpression = defExp && this._floorField && defExp.indexOf(`${this._floorField} = '`) > -1 ?
1197
+ defExp.replace(regEx, this._floorExpression) : defExp ?
1198
+ `${defExp} AND (${this._floorExpression})` : this._floorExpression;
1199
+ }
1200
+ this._filterActive = this._definitionExpression !== this._layer.definitionExpression &&
1201
+ (this._floorExpression ? this._layer.definitionExpression !== this._floorExpression : true);
1174
1202
  this._updateShareUrl();
1175
1203
  }
1176
1204
  /**
@@ -1258,7 +1286,10 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
1258
1286
  const layerExpressions = (_b = (_a = this.mapInfo) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.layerExpressions;
1259
1287
  this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => { var _a; return exp.id === ((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id); }) : [];
1260
1288
  this._filterList.layerExpressions = this._layerExpressions;
1261
- this._filterActive = false;
1289
+ this._filterActive = this._layerExpressions.filter(lyrExp => {
1290
+ console.log(lyrExp);
1291
+ return lyrExp.expressions.filter(exp => exp.active).length > 0;
1292
+ }).length > 0;
1262
1293
  }
1263
1294
  /**
1264
1295
  * Select all rows that are not currently selectd
@@ -1484,7 +1515,7 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class LayerTable extends HTM
1484
1515
  "_showOnlySelected": [32],
1485
1516
  "_toolInfos": [32],
1486
1517
  "_translations": [32]
1487
- }, [[8, "selectionChanged", "selectionChanged"], [8, "editsComplete", "editsComplete"], [8, "levelChanged", "levelChanged"], [8, "noLayersFound", "noLayersFound"]], {
1518
+ }, [[8, "selectionChanged", "selectionChanged"], [8, "editsComplete", "editsComplete"], [8, "facilityChanged", "facilityChanged"], [8, "levelChanged", "levelChanged"], [8, "siteChanged", "siteChanged"], [8, "noLayersFound", "noLayersFound"]], {
1488
1519
  "enableCSV": ["enableCSVWatchHandler"],
1489
1520
  "enableInlineEdit": ["enableInlineEditWatchHandler"],
1490
1521
  "enableShare": ["enableShareWatchHandler"],
@@ -119,7 +119,9 @@ const floorFilterCss = ":host{display:block}";
119
119
  const FloorFilter = class {
120
120
  constructor(hostRef) {
121
121
  registerInstance(this, hostRef);
122
+ this.facilityChanged = createEvent(this, "facilityChanged", 7);
122
123
  this.levelChanged = createEvent(this, "levelChanged", 7);
124
+ this.siteChanged = createEvent(this, "siteChanged", 7);
123
125
  this.enabled = undefined;
124
126
  this.floorFilterWidget = undefined;
125
127
  this.mapView = undefined;
@@ -172,22 +174,28 @@ const FloorFilter = class {
172
174
  * Initialize the floor filter or reset the current view if it already exists
173
175
  */
174
176
  _initFloorFilter(view) {
175
- var _a;
177
+ var _a, _b, _c, _d;
176
178
  if (view && this.enabled && this.FloorFilter && ((_a = view === null || view === void 0 ? void 0 : view.map) === null || _a === void 0 ? void 0 : _a.floorInfo)) {
177
179
  if (!this.floorFilterWidget) {
178
180
  this.floorFilterWidget = new this.FloorFilter({
179
181
  container: this._floorFilterElement,
180
182
  view
181
183
  });
182
- if (this._levelHandle) {
183
- this._levelHandle.remove();
184
- }
184
+ (_b = this._facilityHandle) === null || _b === void 0 ? void 0 : _b.remove();
185
+ this._facilityHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.facility, (facility) => {
186
+ this.facilityChanged.emit(facility);
187
+ });
188
+ (_c = this._levelHandle) === null || _c === void 0 ? void 0 : _c.remove();
185
189
  this._levelHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.level, (level) => {
186
190
  this.levelChanged.emit(level);
187
191
  });
192
+ (_d = this._siteHandle) === null || _d === void 0 ? void 0 : _d.remove();
193
+ this._siteHandle = this.reactiveUtils.watch(() => this.floorFilterWidget.site, (site) => {
194
+ this.siteChanged.emit(site);
195
+ });
188
196
  }
189
197
  else {
190
- this.floorFilterWidget.view = view;
198
+ this.floorFilterWidget.viewModel.view = view;
191
199
  }
192
200
  }
193
201
  }
@@ -248,6 +248,7 @@ const LayerTable = class {
248
248
  this._mapClickHandle.remove();
249
249
  }
250
250
  if (this.mapView) {
251
+ this._floorExpression = undefined;
251
252
  this._updateShareUrl();
252
253
  this._mapClickHandle = this.reactiveUtils.on(() => this.mapView, "click", (event) => {
253
254
  void this._mapClicked(event);
@@ -316,6 +317,13 @@ const LayerTable = class {
316
317
  }
317
318
  await this._refresh();
318
319
  }
320
+ /**
321
+ * Refresh the table when floor filter facility is changed
322
+ */
323
+ async facilityChanged(evt) {
324
+ this._floorFacility = evt.detail;
325
+ this._updateFloorDefinitionExpression();
326
+ }
319
327
  /**
320
328
  * Refresh the table when floor filter level is changed
321
329
  */
@@ -323,6 +331,13 @@ const LayerTable = class {
323
331
  this._floorLevel = evt.detail;
324
332
  this._updateFloorDefinitionExpression();
325
333
  }
334
+ /**
335
+ * Refresh the table when floor filter site is changed
336
+ */
337
+ async siteChanged(evt) {
338
+ this._floorSite = evt.detail;
339
+ this._updateFloorDefinitionExpression();
340
+ }
326
341
  /**
327
342
  * Refresh the table when
328
343
  */
@@ -619,7 +634,12 @@ const LayerTable = class {
619
634
  */
620
635
  _updateFloorDefinitionExpression() {
621
636
  if (this._floorField && this._floorLevel) {
622
- this._layer.definitionExpression = `${this._floorField} = '${this._floorLevel}'`;
637
+ const floorExp = `${this._floorField} = '${this._floorLevel}'`;
638
+ const defExp = this._layer.definitionExpression;
639
+ this._layer.definitionExpression = (defExp === null || defExp === void 0 ? void 0 : defExp.indexOf(this._floorExpression)) > -1 ?
640
+ defExp.replace(this._floorExpression, floorExp) :
641
+ defExp ? `${defExp} AND (${floorExp})` : floorExp;
642
+ this._floorExpression = floorExp;
623
643
  }
624
644
  }
625
645
  /**
@@ -1222,7 +1242,15 @@ const LayerTable = class {
1222
1242
  * Check if the layers definitionExpression has been modified
1223
1243
  */
1224
1244
  _handleFilterUpdate() {
1225
- this._filterActive = this._definitionExpression !== this._layer.definitionExpression;
1245
+ const defExp = this._layer.definitionExpression;
1246
+ if (this._floorExpression) {
1247
+ const regEx = new RegExp(`${this._floorField} = ['].+[']`, "gm");
1248
+ this._layer.definitionExpression = defExp && this._floorField && defExp.indexOf(`${this._floorField} = '`) > -1 ?
1249
+ defExp.replace(regEx, this._floorExpression) : defExp ?
1250
+ `${defExp} AND (${this._floorExpression})` : this._floorExpression;
1251
+ }
1252
+ this._filterActive = this._definitionExpression !== this._layer.definitionExpression &&
1253
+ (this._floorExpression ? this._layer.definitionExpression !== this._floorExpression : true);
1226
1254
  this._updateShareUrl();
1227
1255
  }
1228
1256
  /**
@@ -1310,7 +1338,10 @@ const LayerTable = class {
1310
1338
  const layerExpressions = (_b = (_a = this.mapInfo) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.layerExpressions;
1311
1339
  this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => { var _a; return exp.id === ((_a = this._layer) === null || _a === void 0 ? void 0 : _a.id); }) : [];
1312
1340
  this._filterList.layerExpressions = this._layerExpressions;
1313
- this._filterActive = false;
1341
+ this._filterActive = this._layerExpressions.filter(lyrExp => {
1342
+ console.log(lyrExp);
1343
+ return lyrExp.expressions.filter(exp => exp.active).length > 0;
1344
+ }).length > 0;
1314
1345
  }
1315
1346
  /**
1316
1347
  * Select all rows that are not currently selectd