@esri/solutions-components 0.5.6 → 0.5.8

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 (47) hide show
  1. package/dist/assets/t9n/map-select-tools/resources.json +2 -2
  2. package/dist/assets/t9n/map-select-tools/resources_en.json +2 -2
  3. package/dist/assets/t9n/public-notification/resources.json +1 -1
  4. package/dist/assets/t9n/public-notification/resources_en.json +1 -1
  5. package/dist/cjs/calcite-input-text_5.cjs.entry.js +4 -4
  6. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +1 -1
  7. package/dist/cjs/{downloadUtils-06876768.js → downloadUtils-8d66f03e.js} +95 -21
  8. package/dist/cjs/{index.es-d07646b4.js → index.es-4f5dfcc6.js} +1 -1
  9. package/dist/cjs/layer-table_2.cjs.entry.js +1 -1
  10. package/dist/cjs/public-notification.cjs.entry.js +12 -1
  11. package/dist/cjs/solution-configuration.cjs.entry.js +1 -1
  12. package/dist/cjs/solution-contents_3.cjs.entry.js +1 -1
  13. package/dist/cjs/{solution-store-70002b57.js → solution-store-ca4639d5.js} +3 -3
  14. package/dist/collection/components/map-select-tools/map-select-tools.css +7 -2
  15. package/dist/collection/components/map-select-tools/map-select-tools.js +2 -2
  16. package/dist/collection/components/public-notification/public-notification.js +12 -1
  17. package/dist/collection/components/refine-selection/refine-selection.css +85 -85
  18. package/dist/collection/utils/downloadUtils.js +94 -20
  19. package/dist/collection/utils/downloadUtils.ts +147 -27
  20. package/dist/components/downloadUtils.js +94 -20
  21. package/dist/components/map-select-tools2.js +14 -14
  22. package/dist/components/public-notification.js +12 -1
  23. package/dist/components/solution-store.js +3 -3
  24. package/dist/esm/calcite-input-text_5.entry.js +4 -4
  25. package/dist/esm/calcite-shell-panel_14.entry.js +1 -1
  26. package/dist/esm/{downloadUtils-046ce0aa.js → downloadUtils-b9785635.js} +95 -21
  27. package/dist/esm/{index.es-3fd0e8f6.js → index.es-70994c40.js} +1 -1
  28. package/dist/esm/layer-table_2.entry.js +1 -1
  29. package/dist/esm/public-notification.entry.js +12 -1
  30. package/dist/esm/solution-configuration.entry.js +1 -1
  31. package/dist/esm/solution-contents_3.entry.js +1 -1
  32. package/dist/esm/{solution-store-5d068b07.js → solution-store-70f874f8.js} +3 -3
  33. package/dist/solutions-components/{p-1850a763.entry.js → p-10336554.entry.js} +1 -1
  34. package/dist/solutions-components/{p-41802f6b.entry.js → p-16dfb254.entry.js} +1 -1
  35. package/dist/solutions-components/{p-99aec087.js → p-5d5e10d4.js} +1 -1
  36. package/dist/solutions-components/{p-4769a2a5.entry.js → p-5ed755a2.entry.js} +1 -1
  37. package/dist/solutions-components/{p-826a814d.js → p-78719506.js} +2 -2
  38. package/dist/solutions-components/{p-9f620303.entry.js → p-b4b19fd3.entry.js} +1 -1
  39. package/dist/solutions-components/{p-2e0db581.js → p-be943993.js} +11 -11
  40. package/dist/solutions-components/{p-7e409786.entry.js → p-c3e3d0bb.entry.js} +3 -3
  41. package/dist/solutions-components/p-f66a7ea7.entry.js +6 -0
  42. package/dist/solutions-components/solutions-components.esm.js +1 -1
  43. package/dist/solutions-components/utils/downloadUtils.ts +147 -27
  44. package/dist/solutions-components_commit.txt +8 -0
  45. package/dist/types/utils/downloadUtils.d.ts +21 -0
  46. package/package.json +1 -1
  47. package/dist/solutions-components/p-6e87198f.entry.js +0 -6
@@ -10,6 +10,6 @@
10
10
  "sketchLayer": "Sketch Layer",
11
11
  "useLayerFeatures": "Use layer features",
12
12
  "inputLayer": "Input layer",
13
- "useLayerFeaturesTooltip": "Select a layer that can be used as a boundary or intersecting feature for the input layer",
14
- "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer"
13
+ "useLayerFeaturesTooltip": "Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer.",
14
+ "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer."
15
15
  }
@@ -10,6 +10,6 @@
10
10
  "sketchLayer": "Sketch Layer",
11
11
  "useLayerFeatures": "Use layer features",
12
12
  "inputLayer": "Input layer",
13
- "useLayerFeaturesTooltip": "Select a layer that can be used as a boundary or intersecting feature for the input layer",
14
- "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer"
13
+ "useLayerFeaturesTooltip": "Choose a layer and use the sketch tools to point to features that can be used as a boundary to select intersecting features from the input layer.",
14
+ "useSearchDistanceTootip": "Define a distance for a search buffer that will select input features that intersect the buffer."
15
15
  }
@@ -22,7 +22,7 @@
22
22
  "selectLayerTip": "Draw shapes to select features from the chosen selection layer; the results will be used to select features from the addressee layer",
23
23
  "selectSketchTip": "Use sketch tools to draw graphics in the map to select intersecting features in the addressee layer.",
24
24
  "optionalSearchDistance": "and optionally add search distance.",
25
- "listHasSetsTip": "Edit or delete existing lists or choose a layer and click Create new list",
25
+ "listHasSetsTip": "Edit or delete existing lists or click Create new list.",
26
26
  "uniqueCout": "Unique Count: {{n}}",
27
27
  "searchDistance": "Search distance",
28
28
  "useLayerFeatures": "Use layer features",
@@ -22,7 +22,7 @@
22
22
  "selectLayerTip": "Draw shapes to select features from the chosen selection layer; the results will be used to select features from the addressee layer",
23
23
  "selectSketchTip": "Use sketch tools to draw graphics in the map to select intersecting features in the addressee layer.",
24
24
  "optionalSearchDistance": "and optionally add search distance.",
25
- "listHasSetsTip": "Edit or delete existing lists or choose a layer and click Create new list",
25
+ "listHasSetsTip": "Edit or delete existing lists or click Create new list.",
26
26
  "uniqueCout": "Unique Count: {{n}}",
27
27
  "searchDistance": "Search distance",
28
28
  "useLayerFeatures": "Use layer features",
@@ -24,7 +24,7 @@ const mapViewUtils = require('./mapViewUtils-c45571b9.js');
24
24
  const interfaces = require('./interfaces-842c84a1.js');
25
25
  const publicNotificationStore = require('./publicNotificationStore-cd1a32c3.js');
26
26
  const locale$1 = require('./locale-b113c6b2.js');
27
- const downloadUtils = require('./downloadUtils-06876768.js');
27
+ const downloadUtils = require('./downloadUtils-8d66f03e.js');
28
28
  require('./guid-c58d5ead.js');
29
29
  require('./key-d55baa11.js');
30
30
  require('./index-e1b1954f.js');
@@ -474,7 +474,7 @@ const Notice = class {
474
474
  };
475
475
  Notice.style = noticeCss;
476
476
 
477
- const mapSelectToolsCss = ":host{display:block}.div-visible{display:inherit}.div-visible-search{display:flex;height:44px;align-items:center;padding-bottom:0}.div-not-visible{display:none}.padding-bottom-1{padding-bottom:1rem}.padding-top-1{padding-top:1rem}.search-widget{width:100% !important;border:1px solid var(--calcite-ui-border-input)}.w-100{width:100%}.w-50{width:50%}.search-distance-container{padding-top:\"1rem\" !important}.end-border{-webkit-border-end:1px solid var(--calcite-ui-border-2);border-inline-end:1px solid var(--calcite-ui-border-2)}.search-distance{display:flex;padding-top:1rem}.font-bold{font:bold}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.tooltip-container{justify-content:center;display:flex}.padding-start-1-2{-webkit-padding-start:0.5rem;padding-inline-start:0.5rem}.icon{--calcite-ui-icon-color:var(--calcite-ui-brand)}";
477
+ const mapSelectToolsCss = ":host{display:block}.div-visible{display:inherit}.div-visible-search{display:flex;height:44px;align-items:center;padding-bottom:0}.div-not-visible{display:none}.padding-bottom-1{padding-bottom:1rem}.padding-top-1{padding-top:1rem}.search-widget{width:100% !important;border:1px solid var(--calcite-ui-border-input)}.w-100{width:100%}.w-50{width:50%}.search-distance-container{padding-top:\"1rem\" !important}.end-border{-webkit-border-end:1px solid var(--calcite-ui-border-2);border-inline-end:1px solid var(--calcite-ui-border-2)}.search-distance{display:flex;padding-top:1rem}.font-bold{font:bold}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.tooltip-container{display:flex}.padding-start-1-2{-webkit-padding-start:0.5rem;padding-inline-start:0.5rem}.icon{--calcite-ui-icon-color:var(--calcite-ui-brand)}.tooltip-message{padding:5px 8px;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-2)}";
478
478
 
479
479
  const MapSelectTools = class {
480
480
  constructor(hostRef) {
@@ -644,14 +644,14 @@ const MapSelectTools = class {
644
644
  var _a, _b;
645
645
  const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
646
646
  const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
647
- return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }), index.h("calcite-tooltip", { label: "Data disclaimer", placement: "auto", "reference-element": "search-distance-icon" }, index.h("span", null, this._translations.useSearchDistanceTootip))), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled }))), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
647
+ return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
648
648
  }
649
649
  /**
650
650
  * Renders the map layer picker component.
651
651
  */
652
652
  _getUseLayerFeaturesOptions() {
653
653
  const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
654
- return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }), index.h("calcite-tooltip", { label: "Data disclaimer", placement: "auto", "reference-element": "use-layer-features-icon" }, index.h("span", null, this._translations.useLayerFeaturesTooltip))), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } }))), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
654
+ return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
655
655
  }
656
656
  /**
657
657
  * Renders the number of selected features
@@ -22,7 +22,7 @@ const sharedListRender = require('./shared-list-render-298c77b3.js');
22
22
  const resources$1 = require('./resources-bbd38cff.js');
23
23
  const resources = require('./resources-b76585de.js');
24
24
  const locale$1 = require('./locale-b113c6b2.js');
25
- const solutionStore = require('./solution-store-70002b57.js');
25
+ const solutionStore = require('./solution-store-ca4639d5.js');
26
26
  const interfaces = require('./interfaces-842c84a1.js');
27
27
  require('./resources-1f836572.js');
28
28
  require('./key-d55baa11.js');
@@ -1507,7 +1507,7 @@ function(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++
1507
1507
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1508
1508
  * ====================================================================
1509
1509
  */
1510
- function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-d07646b4.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1510
+ function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-4f5dfcc6.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1511
1511
  /** ====================================================================
1512
1512
  * @license
1513
1513
  * jsPDF XMP metadata plugin
@@ -2427,6 +2427,38 @@ function _createFilename(selectionSetNames) {
2427
2427
  const title = selectionSetNames.length > 0 ? selectionSetNames.join(", ") : "download";
2428
2428
  return title;
2429
2429
  }
2430
+ /**
2431
+ * Creates relationship queries for each relationship flag in a popup.
2432
+ * @param layer Layer whose popup is to be examined
2433
+ * @return Hash of relationships by their id, or null if there are no relationship flags in the
2434
+ * popup; each relationship has the properties layer and relatedQuery for the related layer
2435
+ * and the query for that layer
2436
+ */
2437
+ function _createRelationshipQueries(layer) {
2438
+ const relationships = {};
2439
+ const relationshipFieldPattern = /\{relationships\/\d+\//gm;
2440
+ const relationshipIdPattern = /\d+/;
2441
+ // Test if this popup has any relationship references
2442
+ const matches = layer.popupTemplate.content[0].text.match(relationshipFieldPattern);
2443
+ if (matches) {
2444
+ matches.forEach(match => {
2445
+ // Add a query to a found relationship if we don't already have one
2446
+ const id = match.match(relationshipIdPattern)[0];
2447
+ if (!relationships.hasOwnProperty(id)) {
2448
+ const relatedQuery = {
2449
+ outFields: ['*'],
2450
+ relationshipId: id,
2451
+ returnGeometry: false
2452
+ };
2453
+ relationships[id] = {
2454
+ layer,
2455
+ relatedQuery
2456
+ };
2457
+ }
2458
+ });
2459
+ }
2460
+ return relationships;
2461
+ }
2430
2462
  /**
2431
2463
  * Prepares an attribute's value by applying domain and type information.
2432
2464
  *
@@ -2487,7 +2519,7 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2487
2519
  * @returns Promise resolving when function is done
2488
2520
  */
2489
2521
  async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLayerPopup = true, includeHeaderNames = false) {
2490
- var _a, _b, _c, _d;
2522
+ var _a, _b, _c, _d, _e, _f;
2491
2523
  const [intl] = await loadModules.loadModules(["esri/intl"]);
2492
2524
  // Get the features to export
2493
2525
  const featureSet = await mapViewUtils.queryFeaturesByID(ids, layer);
@@ -2501,6 +2533,7 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2501
2533
  const attributeFormats = {};
2502
2534
  // Get the label formatting, if any
2503
2535
  let labelFormat;
2536
+ let relationshipQueries = {};
2504
2537
  let arcadeExecutors = {};
2505
2538
  if (layer.popupEnabled) {
2506
2539
  layer.popupTemplate.fieldInfos.forEach(
@@ -2529,6 +2562,8 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2529
2562
  }
2530
2563
  else if (formatUsingLayerPopup && ((_d = (_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.content[0]) === null || _d === void 0 ? void 0 : _d.type) === "text") {
2531
2564
  labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
2565
+ // Do we need any relationship queries?
2566
+ relationshipQueries = _createRelationshipQueries(layer);
2532
2567
  // Do we need any Arcade executors?
2533
2568
  arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
2534
2569
  }
@@ -2537,36 +2572,75 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2537
2572
  let labels;
2538
2573
  // eslint-disable-next-line unicorn/prefer-ternary
2539
2574
  if (labelFormat) {
2575
+ console.log("labelFormat", labelFormat); //???
2540
2576
  const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
2541
2577
  const attributeRegExp = /\{\w+\}/g;
2542
2578
  // Find the label fields that we need to replace with values
2543
- const arcadeExpressionMatches = labelFormat.match(arcadeExpressionRegExp);
2544
- const attributeMatches = labelFormat.match(attributeRegExp);
2579
+ const arcadeExpressionMatches = (_e = labelFormat.match(arcadeExpressionRegExp)) !== null && _e !== void 0 ? _e : [];
2580
+ const attributeMatches = (_f = labelFormat.match(attributeRegExp)) !== null && _f !== void 0 ? _f : [];
2545
2581
  // Convert feature attributes into an array of labels
2546
- labels = featureSet.features.map(feature => {
2582
+ const relationshipKeys = Object.keys(relationshipQueries);
2583
+ labels = await Promise.all(featureSet.features.map(async (feature) => {
2547
2584
  let labelPrep = labelFormat;
2548
- // Replace Arcade expressions
2549
- if (arcadeExpressionMatches) {
2550
- arcadeExpressionMatches.forEach((match) => {
2551
- const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2552
- const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
2553
- labelPrep = labelPrep.replace(match, value);
2554
- });
2555
- }
2556
- // Replace non-Arcade fields
2557
- if (attributeMatches) {
2558
- attributeMatches.forEach((match) => {
2559
- const attributeName = match.substring(1, match.length - 1);
2560
- const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
2561
- labelPrep = labelPrep.replace(match, value);
2585
+ // Replace Arcade expressions in this feature
2586
+ arcadeExpressionMatches.forEach((match) => {
2587
+ const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2588
+ const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
2589
+ labelPrep = labelPrep.replace(match, value);
2590
+ });
2591
+ // Replace relationship expressions in this feature
2592
+ const relatedFeatureQueries = [];
2593
+ const relationshipIds = [];
2594
+ relationshipKeys.forEach((relationshipId) => {
2595
+ const relationship = relationshipQueries[relationshipId];
2596
+ const objectId = feature.attributes[relationship.layer.objectIdField];
2597
+ const relatedQuery = Object.assign(Object.assign({}, relationship.relatedQuery), { objectIds: [objectId] });
2598
+ relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery));
2599
+ relationshipIds.push(relationshipId);
2600
+ });
2601
+ // Wait for all of the queries for related records for this label
2602
+ const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
2603
+ console.log("relatedFeatureQueryResults", relatedFeatureQueryResults); //???
2604
+ relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
2605
+ // We have an object with FeatureSets grouped by source layer or table objectIds
2606
+ const relationshipId = relationshipIds[i];
2607
+ console.log("relationshipId", relationshipId); //???
2608
+ console.log("relatedFeatureQueryResult", relatedFeatureQueryResult); //???
2609
+ // Run through the source layer or table objectIds
2610
+ Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
2611
+ console.log("relatedFeatureSetId", relatedFeatureSetId); //???
2612
+ // We have a feature set
2613
+ const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
2614
+ console.log("relatedFeatures", relatedFeatures); //???
2615
+ // Get the values from each feature and replace them in the label
2616
+ relatedFeatures.forEach(feature => {
2617
+ // Merge the base and related feature attributes and create the label
2618
+ // Prefix related feature's attributes with "relationships/<id>/" to match popup
2619
+ const rePrefix = "\{relationships/" + relationshipId + "/";
2620
+ const reSuffix = "\}";
2621
+ console.log("/rePrefix + attributeName + reSuffix/g", rePrefix + "attributeName" + reSuffix); //???
2622
+ const attributes = feature.attributes;
2623
+ Object.keys(attributes).forEach(attributeName => {
2624
+ console.log("/rePrefix + attributeName + reSuffix/g", rePrefix + attributeName + reSuffix); //???
2625
+ // Replace the value using the attribute name as a relationship
2626
+ const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
2627
+ labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
2628
+ });
2629
+ });
2562
2630
  });
2563
- }
2631
+ });
2632
+ // Replace non-Arcade fields in this feature
2633
+ attributeMatches.forEach((match) => {
2634
+ const attributeName = match.substring(1, match.length - 1);
2635
+ const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
2636
+ labelPrep = labelPrep.replace(match, value);
2637
+ });
2564
2638
  // Split label into lines
2565
2639
  let label = labelPrep.split(lineSeparatorChar);
2566
2640
  // Trim lines
2567
2641
  label = label.map(line => line.trim());
2568
2642
  return label;
2569
- });
2643
+ }));
2570
2644
  }
2571
2645
  else {
2572
2646
  // Export all attributes
@@ -6,7 +6,7 @@
6
6
  'use strict';
7
7
 
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
- const downloadUtils = require('./downloadUtils-06876768.js');
9
+ const downloadUtils = require('./downloadUtils-8d66f03e.js');
10
10
  require('./index-6654298b.js');
11
11
  require('./loadModules-ae7715f2.js');
12
12
  require('./locale-b113c6b2.js');
@@ -11,7 +11,7 @@ const index = require('./index-6654298b.js');
11
11
  const loadModules = require('./loadModules-ae7715f2.js');
12
12
  const locale = require('./locale-b113c6b2.js');
13
13
  const mapViewUtils = require('./mapViewUtils-c45571b9.js');
14
- const downloadUtils = require('./downloadUtils-06876768.js');
14
+ const downloadUtils = require('./downloadUtils-8d66f03e.js');
15
15
  const interfaces = require('./interfaces-842c84a1.js');
16
16
  require('./_commonjsHelpers-384729db.js');
17
17
 
@@ -310,7 +310,18 @@ const PublicNotification = class {
310
310
  return (index.h("div", { class: "padding-top-1-2 padding-bottom-1-2" }, index.h("calcite-list", { class: "list-border margin-sides-1" }, this._selectionSets.reduce((prev, cur, i) => {
311
311
  var _a;
312
312
  const ids = this._getSelectionSetIds(cur);
313
- prev.push((index.h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, index.h("div", { slot: "content" }, index.h("div", { class: "list-label" }, cur.label), index.h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), index.h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
313
+ let validSet = true;
314
+ if (cur.workflowType === interfaces.EWorkflowType.REFINE) {
315
+ const numIds = Object.keys(cur.refineInfos).reduce((_prev, _cur) => {
316
+ const refineInfo = cur.refineInfos[_cur];
317
+ _prev += refineInfo.addIds.length + refineInfo.removeIds.length;
318
+ return _prev;
319
+ }, 0);
320
+ validSet = numIds > 0;
321
+ }
322
+ if (validSet) {
323
+ prev.push((index.h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, index.h("div", { slot: "content" }, index.h("div", { class: "list-label" }, cur.label), index.h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), index.h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
324
+ }
314
325
  return prev;
315
326
  }, []))));
316
327
  }
@@ -8,7 +8,7 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-6654298b.js');
11
- const solutionStore = require('./solution-store-70002b57.js');
11
+ const solutionStore = require('./solution-store-ca4639d5.js');
12
12
  const locale = require('./locale-b113c6b2.js');
13
13
  require('./index-e1b1954f.js');
14
14
  require('./interfaces-842c84a1.js');
@@ -8,7 +8,7 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  const index = require('./index-6654298b.js');
11
- const solutionStore = require('./solution-store-70002b57.js');
11
+ const solutionStore = require('./solution-store-ca4639d5.js');
12
12
  const locale = require('./locale-b113c6b2.js');
13
13
  require('./interfaces-842c84a1.js');
14
14
  require('./index-e1b1954f.js');
@@ -899,7 +899,7 @@ https://github.com/nodeca/pako/blob/main/LICENSE
899
899
  });
900
900
 
901
901
  /*!
902
- * @esri/arcgis-html-sanitizer - v3.0.0 - Mon Aug 22 2022 11:29:01 GMT-0400 (Eastern Daylight Time)
902
+ * @esri/arcgis-html-sanitizer - v3.0.1 - Tue Nov 15 2022 09:46:54 GMT-0800 (Pacific Standard Time)
903
903
  * Copyright (c) 2022 - Environmental Systems Research Institute, Inc.
904
904
  * Apache-2.0
905
905
  *
@@ -2134,7 +2134,7 @@ function parseTag$1(html, onTag, escapeHtml) {
2134
2134
  lastPos = currentPos;
2135
2135
  continue;
2136
2136
  }
2137
- if (c === ">" || currentPos === len - 1) {
2137
+ if (c === ">") {
2138
2138
  rethtml += escapeHtml(html.slice(lastPos, tagStart));
2139
2139
  currentHtml = html.slice(tagStart, currentPos + 1);
2140
2140
  currentTagName = getTagName(currentHtml);
@@ -2169,7 +2169,7 @@ function parseTag$1(html, onTag, escapeHtml) {
2169
2169
  }
2170
2170
  }
2171
2171
  }
2172
- if (lastPos < len) {
2172
+ if (lastPos < html.length) {
2173
2173
  rethtml += escapeHtml(html.substr(lastPos));
2174
2174
  }
2175
2175
 
@@ -77,7 +77,6 @@
77
77
  }
78
78
 
79
79
  .tooltip-container {
80
- justify-content: center;
81
80
  display: flex;
82
81
  }
83
82
 
@@ -88,4 +87,10 @@
88
87
 
89
88
  .icon {
90
89
  --calcite-ui-icon-color: var(--calcite-ui-brand);
91
- }
90
+ }
91
+
92
+ .tooltip-message {
93
+ padding: 5px 8px;
94
+ font-weight: var(--calcite-font-weight-normal);
95
+ color: var(--calcite-ui-text-2);
96
+ }
@@ -191,14 +191,14 @@ export class MapSelectTools {
191
191
  var _a, _b;
192
192
  const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
193
193
  const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
194
- return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }), h("calcite-tooltip", { label: "Data disclaimer", placement: "auto", "reference-element": "search-distance-icon" }, h("span", null, this._translations.useSearchDistanceTootip))), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled }))), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
194
+ return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.searchDistance, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), h("div", { class: showBufferToolsClass }, h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
195
195
  }
196
196
  /**
197
197
  * Renders the map layer picker component.
198
198
  */
199
199
  _getUseLayerFeaturesOptions() {
200
200
  const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
201
- return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }), h("calcite-tooltip", { label: "Data disclaimer", placement: "auto", "reference-element": "use-layer-features-icon" }, h("span", null, this._translations.useLayerFeaturesTooltip))), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } }))), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
201
+ return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
202
202
  }
203
203
  /**
204
204
  * Renders the number of selected features
@@ -314,7 +314,18 @@ export class PublicNotification {
314
314
  return (h("div", { class: "padding-top-1-2 padding-bottom-1-2" }, h("calcite-list", { class: "list-border margin-sides-1" }, this._selectionSets.reduce((prev, cur, i) => {
315
315
  var _a;
316
316
  const ids = this._getSelectionSetIds(cur);
317
- prev.push((h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, h("div", { slot: "content" }, h("div", { class: "list-label" }, cur.label), h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
317
+ let validSet = true;
318
+ if (cur.workflowType === EWorkflowType.REFINE) {
319
+ const numIds = Object.keys(cur.refineInfos).reduce((_prev, _cur) => {
320
+ const refineInfo = cur.refineInfos[_cur];
321
+ _prev += refineInfo.addIds.length + refineInfo.removeIds.length;
322
+ return _prev;
323
+ }, 0);
324
+ validSet = numIds > 0;
325
+ }
326
+ if (validSet) {
327
+ prev.push((h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, h("div", { slot: "content" }, h("div", { class: "list-label" }, cur.label), h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
328
+ }
318
329
  return prev;
319
330
  }, []))));
320
331
  }
@@ -1,86 +1,86 @@
1
- /** @license
2
- * Copyright 2022 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- :host {
18
- display: block;
19
- }
20
-
21
- .div-visible {
22
- display: inherit;
23
- }
24
-
25
- .div-not-visible {
26
- display: none !important;
27
- }
28
-
29
- .padding-top-1-2 {
30
- padding-top: .5rem;
31
- }
32
-
33
- .main-label {
34
- display: flex;
35
- float: left;
36
- }
37
-
38
- html[dir="rtl"] .main-label {
39
- display: flex;
40
- float: right;
41
- }
42
-
43
- .border {
44
- outline: 1px solid var(--calcite-ui-border-input);
45
- }
46
-
47
- .margin-top-1 {
48
- margin-top: 1rem;
49
- }
50
-
51
- /* COPY FROM JS */
52
- .esri-sketch {
53
- display: flex;
54
- flex-flow: column wrap;
55
- }
56
-
57
- .esri-widget {
58
- box-sizing: border-box;
59
- color: #323232;
60
- font-size: 14px;
61
- font-family: "Avenir Next","Helvetica Neue",Helvetica,Arial,sans-serif;
62
- line-height: 1.3em;
63
- background-color: var(--calcite-ui-foreground-1);
64
- }
65
-
66
- /* DIV CHILD */
67
- .esri-sketch__panel {
68
- align-items: center;
69
- display: flex;
70
- flex-flow: row nowrap;
71
- padding: 0;
72
- } */
73
-
74
- /* DIV CHILD CHILD */
75
- .esri-sketch__tool-section {
76
- border-right: 1px solid rgba(110,110,110,.3);
77
- }
78
-
79
- .esri-sketch__section {
80
- align-items: center;
81
- display: flex;
82
- flex-flow: row nowrap;
83
- padding: 0 7px;
84
- margin: 6px 0;
85
- border-right: 1px solid rgba(110,110,110,.3);
1
+ /** @license
2
+ * Copyright 2022 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ :host {
18
+ display: block;
19
+ }
20
+
21
+ .div-visible {
22
+ display: inherit;
23
+ }
24
+
25
+ .div-not-visible {
26
+ display: none !important;
27
+ }
28
+
29
+ .padding-top-1-2 {
30
+ padding-top: .5rem;
31
+ }
32
+
33
+ .main-label {
34
+ display: flex;
35
+ float: left;
36
+ }
37
+
38
+ html[dir="rtl"] .main-label {
39
+ display: flex;
40
+ float: right;
41
+ }
42
+
43
+ .border {
44
+ outline: 1px solid var(--calcite-ui-border-input);
45
+ }
46
+
47
+ .margin-top-1 {
48
+ margin-top: 1rem;
49
+ }
50
+
51
+ /* COPY FROM JS */
52
+ .esri-sketch {
53
+ display: flex;
54
+ flex-flow: column wrap;
55
+ }
56
+
57
+ .esri-widget {
58
+ box-sizing: border-box;
59
+ color: #323232;
60
+ font-size: 14px;
61
+ font-family: "Avenir Next","Helvetica Neue",Helvetica,Arial,sans-serif;
62
+ line-height: 1.3em;
63
+ background-color: var(--calcite-ui-foreground-1);
64
+ }
65
+
66
+ /* DIV CHILD */
67
+ .esri-sketch__panel {
68
+ align-items: center;
69
+ display: flex;
70
+ flex-flow: row nowrap;
71
+ padding: 0;
72
+ } */
73
+
74
+ /* DIV CHILD CHILD */
75
+ .esri-sketch__tool-section {
76
+ border-right: 1px solid rgba(110,110,110,.3);
77
+ }
78
+
79
+ .esri-sketch__section {
80
+ align-items: center;
81
+ display: flex;
82
+ flex-flow: row nowrap;
83
+ padding: 0 7px;
84
+ margin: 6px 0;
85
+ border-right: 1px solid rgba(110,110,110,.3);
86
86
  }