@esri/solutions-components 0.6.45 → 0.7.0
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/cjs/card-manager_3.cjs.entry.js +1 -1
- package/dist/cjs/{downloadUtils-d017810f.js → downloadUtils-e3e595e9.js} +30 -52
- package/dist/cjs/{index.es-de35a9a4.js → index.es-047537b5.js} +1 -1
- package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +1 -1
- package/dist/collection/demos/new-public-notification.html +16 -2
- package/dist/collection/utils/downloadUtils.js +28 -50
- package/dist/collection/utils/downloadUtils.ts +7 -13
- package/dist/components/downloadUtils.js +28 -50
- package/dist/esm/card-manager_3.entry.js +1 -1
- package/dist/esm/{downloadUtils-a3f28bae.js → downloadUtils-8fbd1347.js} +29 -51
- package/dist/esm/{index.es-e0432a23.js → index.es-b6705ce7.js} +1 -1
- package/dist/esm/map-select-tools_3.entry.js +1 -1
- package/dist/esm/public-notification.entry.js +1 -1
- package/dist/solutions-components/demos/new-public-notification.html +16 -2
- package/dist/solutions-components/{p-02b1befe.js → p-072680a5.js} +12 -12
- package/dist/solutions-components/{p-5d5d10d5.js → p-092fd5d9.js} +1 -1
- package/dist/solutions-components/{p-4fbf3997.entry.js → p-11cb7b04.entry.js} +1 -1
- package/dist/solutions-components/{p-94d64f05.entry.js → p-7f793144.entry.js} +1 -1
- package/dist/solutions-components/{p-5a5676d4.entry.js → p-f367db61.entry.js} +1 -1
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/downloadUtils.ts +7 -13
- package/dist/types/utils/downloadUtils.d.ts +1 -9
- package/package.json +1 -1
| @@ -11,7 +11,7 @@ const index = require('./index-2d5760f2.js'); | |
| 11 11 | 
             
            const locale = require('./locale-ef06bf9e.js');
         | 
| 12 12 | 
             
            const mapViewUtils = require('./mapViewUtils-f7bbc35b.js');
         | 
| 13 13 | 
             
            const loadModules = require('./loadModules-ad1ab1a8.js');
         | 
| 14 | 
            -
            const downloadUtils = require('./downloadUtils- | 
| 14 | 
            +
            const downloadUtils = require('./downloadUtils-e3e595e9.js');
         | 
| 15 15 | 
             
            require('./_commonjsHelpers-384729db.js');
         | 
| 16 16 | 
             
            require('./interfaces-000be6de.js');
         | 
| 17 17 | 
             
            require('./solution-resource-f9e3b289.js');
         | 
| @@ -1509,7 +1509,7 @@ function(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++ | |
| 1509 1509 | 
             
             * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 1510 1510 | 
             
             * ====================================================================
         | 
| 1511 1511 | 
             
             */
         | 
| 1512 | 
            -
            function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es- | 
| 1512 | 
            +
            function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-047537b5.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},
         | 
| 1513 1513 | 
             
            /** ====================================================================
         | 
| 1514 1514 | 
             
             * @license
         | 
| 1515 1515 | 
             
             * jsPDF XMP metadata plugin
         | 
| @@ -2556,28 +2556,21 @@ async function _convertPopupArcadeToLabelSpec(expressionInfo) { | |
| 2556 2556 | 
             
             * @param layer Layer from which to fetch features
         | 
| 2557 2557 | 
             
             * @return Promise resolving to a set of executors keyed using the expression name
         | 
| 2558 2558 | 
             
             */
         | 
| 2559 | 
            -
             | 
| 2560 | 
            -
             | 
| 2561 | 
            -
              labelFormat: string,
         | 
| 2562 | 
            -
              layer: __esri.FeatureLayer
         | 
| 2563 | 
            -
            ): Promise<IArcadeExecutors> {
         | 
| 2564 | 
            -
              const arcadeExecutors: IArcadeExecutors = {};
         | 
| 2565 | 
            -
             | 
| 2559 | 
            +
            async function _createArcadeExecutors(labelFormat, layer) {
         | 
| 2560 | 
            +
              const arcadeExecutors = {};
         | 
| 2566 2561 | 
             
              // Are any Arcade expressions in the layer?
         | 
| 2567 2562 | 
             
              if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
         | 
| 2568 2563 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 2569 2564 | 
             
              }
         | 
| 2570 | 
            -
             | 
| 2571 2565 | 
             
              // Are there any Arcade expressions in the label format?
         | 
| 2572 2566 | 
             
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 2573 2567 | 
             
              const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
         | 
| 2574 2568 | 
             
              if (!arcadeExpressionsMatches) {
         | 
| 2575 2569 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 2576 2570 | 
             
              }
         | 
| 2577 | 
            -
             | 
| 2578 2571 | 
             
              // Generate an Arcade executor for each match
         | 
| 2579 | 
            -
              const [arcade] = await loadModules(["esri/arcade"]);
         | 
| 2580 | 
            -
              const labelingProfile | 
| 2572 | 
            +
              const [arcade] = await loadModules.loadModules(["esri/arcade"]);
         | 
| 2573 | 
            +
              const labelingProfile = {
         | 
| 2581 2574 | 
             
                variables: [
         | 
| 2582 2575 | 
             
                  {
         | 
| 2583 2576 | 
             
                    name: "$feature",
         | 
| @@ -2597,38 +2590,26 @@ async function _createArcadeExecutors( | |
| 2597 2590 | 
             
                  }
         | 
| 2598 2591 | 
             
                ]
         | 
| 2599 2592 | 
             
              };
         | 
| 2600 | 
            -
             | 
| 2601 | 
            -
               | 
| 2602 | 
            -
             | 
| 2603 | 
            -
                ( | 
| 2604 | 
            -
                   | 
| 2605 | 
            -
             | 
| 2606 | 
            -
             | 
| 2607 | 
            -
             | 
| 2608 | 
            -
             | 
| 2609 | 
            -
             | 
| 2610 | 
            -
                          arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 2611 | 
            -
                      }
         | 
| 2612 | 
            -
                    }
         | 
| 2613 | 
            -
                  );
         | 
| 2614 | 
            -
                }
         | 
| 2615 | 
            -
              );
         | 
| 2616 | 
            -
             | 
| 2593 | 
            +
              const createArcadeExecutorPromises = {};
         | 
| 2594 | 
            +
              arcadeExpressionsMatches.forEach((match) => {
         | 
| 2595 | 
            +
                const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 2596 | 
            +
                (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
         | 
| 2597 | 
            +
                  if (expressionInfo.name === expressionName) {
         | 
| 2598 | 
            +
                    createArcadeExecutorPromises[expressionName] =
         | 
| 2599 | 
            +
                      arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 2600 | 
            +
                  }
         | 
| 2601 | 
            +
                });
         | 
| 2602 | 
            +
              });
         | 
| 2617 2603 | 
             
              const promises = Object.values(createArcadeExecutorPromises);
         | 
| 2618 2604 | 
             
              return Promise.all(promises)
         | 
| 2619 | 
            -
             | 
| 2620 | 
            -
                 | 
| 2621 | 
            -
             | 
| 2622 | 
            -
             | 
| 2623 | 
            -
                  for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 2624 | 
            -
                    arcadeExecutors[expressionNames[i]] = executors[i].valueOf() as __esri.ArcadeExecutor;
         | 
| 2625 | 
            -
                  }
         | 
| 2626 | 
            -
             | 
| 2627 | 
            -
                  return arcadeExecutors;
         | 
| 2605 | 
            +
                .then(executors => {
         | 
| 2606 | 
            +
                const expressionNames = Object.keys(createArcadeExecutorPromises);
         | 
| 2607 | 
            +
                for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 2608 | 
            +
                  arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
         | 
| 2628 2609 | 
             
                }
         | 
| 2629 | 
            -
             | 
| 2610 | 
            +
                return arcadeExecutors;
         | 
| 2611 | 
            +
              });
         | 
| 2630 2612 | 
             
            }
         | 
| 2631 | 
            -
            */
         | 
| 2632 2613 | 
             
            /**
         | 
| 2633 2614 | 
             
             * Creates a title from a list of selection set names.
         | 
| 2634 2615 | 
             
             *
         | 
| @@ -3025,7 +3006,7 @@ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true, | |
| 3025 3006 | 
             
              // Apply the label format
         | 
| 3026 3007 | 
             
              const labels = labelFormatProps.labelFormat.type === "pattern" ?
         | 
| 3027 3008 | 
             
                // Export attributes in format
         | 
| 3028 | 
            -
                await _prepareLabelsFromPattern( | 
| 3009 | 
            +
                await _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format, includeHeaderNames)
         | 
| 3029 3010 | 
             
                : labelFormatProps.labelFormat.type === "executor" ?
         | 
| 3030 3011 | 
             
                  // Export attributes in expression
         | 
| 3031 3012 | 
             
                  await _prepareLabelsUsingExecutor(featureSet, labelFormatProps.labelFormat.format)
         | 
| @@ -3075,31 +3056,28 @@ async function _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomain | |
| 3075 3056 | 
             
             * @param includeHeaderNames Add the label format at the front of the list of generated labels
         | 
| 3076 3057 | 
             
             * @returns Promise resolving with list of labels, each of which is a list of label lines
         | 
| 3077 3058 | 
             
             */
         | 
| 3078 | 
            -
            async function _prepareLabelsFromPattern(
         | 
| 3079 | 
            -
             | 
| 3080 | 
            -
            featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 3059 | 
            +
            async function _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 3060 | 
            +
              var _a;
         | 
| 3081 3061 | 
             
              const [intl] = await loadModules.loadModules(["esri/intl"]);
         | 
| 3082 3062 | 
             
              // Find the label fields that we need to replace with values
         | 
| 3083 3063 | 
             
              const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
         | 
| 3084 3064 | 
             
              const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
         | 
| 3085 3065 | 
             
              // Do we need any Arcade executors?
         | 
| 3086 | 
            -
               | 
| 3087 | 
            -
               | 
| 3066 | 
            +
              const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
         | 
| 3067 | 
            +
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 3088 3068 | 
             
              // Find the label fields that we need to replace with values
         | 
| 3089 | 
            -
               | 
| 3069 | 
            +
              const arcadeExpressionMatches = (_a = labelFormat.match(arcadeExpressionRegExp)) !== null && _a !== void 0 ? _a : [];
         | 
| 3090 3070 | 
             
              // Convert feature attributes into an array of labels
         | 
| 3091 3071 | 
             
              const labels = await Promise.all(featureSet.map(async (feature) => {
         | 
| 3092 3072 | 
             
                var _a;
         | 
| 3093 3073 | 
             
                let labelPrep = labelFormat;
         | 
| 3094 | 
            -
                 | 
| 3095 | 
            -
                // Replace Arcade expressions in this feature
         | 
| 3074 | 
            +
                //Replace Arcade expressions in this feature
         | 
| 3096 3075 | 
             
                for (let i = 0; i < arcadeExpressionMatches.length; i++) {
         | 
| 3097 | 
            -
                  const match | 
| 3076 | 
            +
                  const match = arcadeExpressionMatches[i];
         | 
| 3098 3077 | 
             
                  const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 3099 | 
            -
                  const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer" | 
| 3078 | 
            +
                  const value = await arcadeExecutors[expressionName].executeAsync({ "$feature": feature, "$layer": layer });
         | 
| 3100 3079 | 
             
                  labelPrep = labelPrep.replace(match, value);
         | 
| 3101 3080 | 
             
                }
         | 
| 3102 | 
            -
                */
         | 
| 3103 3081 | 
             
                // Replace non-Arcade fields in this feature
         | 
| 3104 3082 | 
             
                const attributeValues = (_a = feature.attributes) !== null && _a !== void 0 ? _a : feature;
         | 
| 3105 3083 | 
             
                attributeNames.forEach((attributeName, i) => {
         | 
| @@ -6,7 +6,7 @@ | |
| 6 6 | 
             
            'use strict';
         | 
| 7 7 |  | 
| 8 8 | 
             
            const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
         | 
| 9 | 
            -
            const downloadUtils = require('./downloadUtils- | 
| 9 | 
            +
            const downloadUtils = require('./downloadUtils-e3e595e9.js');
         | 
| 10 10 | 
             
            require('./index-2d5760f2.js');
         | 
| 11 11 | 
             
            require('./loadModules-ad1ab1a8.js');
         | 
| 12 12 | 
             
            require('./locale-ef06bf9e.js');
         | 
| @@ -13,7 +13,7 @@ const mapViewUtils = require('./mapViewUtils-f7bbc35b.js'); | |
| 13 13 | 
             
            const interfaces = require('./interfaces-000be6de.js');
         | 
| 14 14 | 
             
            const publicNotificationStore = require('./publicNotificationStore-e1ae21f1.js');
         | 
| 15 15 | 
             
            const locale = require('./locale-ef06bf9e.js');
         | 
| 16 | 
            -
            const downloadUtils = require('./downloadUtils- | 
| 16 | 
            +
            const downloadUtils = require('./downloadUtils-e3e595e9.js');
         | 
| 17 17 | 
             
            require('./index-74222073.js');
         | 
| 18 18 | 
             
            require('./_commonjsHelpers-384729db.js');
         | 
| 19 19 | 
             
            require('./solution-resource-f9e3b289.js');
         | 
| @@ -13,7 +13,7 @@ const loadModules = require('./loadModules-ad1ab1a8.js'); | |
| 13 13 | 
             
            const mapViewUtils = require('./mapViewUtils-f7bbc35b.js');
         | 
| 14 14 | 
             
            const publicNotificationStore = require('./publicNotificationStore-e1ae21f1.js');
         | 
| 15 15 | 
             
            const locale = require('./locale-ef06bf9e.js');
         | 
| 16 | 
            -
            const downloadUtils = require('./downloadUtils- | 
| 16 | 
            +
            const downloadUtils = require('./downloadUtils-e3e595e9.js');
         | 
| 17 17 | 
             
            require('./index-74222073.js');
         | 
| 18 18 | 
             
            require('./_commonjsHelpers-384729db.js');
         | 
| 19 19 | 
             
            require('./solution-resource-f9e3b289.js');
         | 
| @@ -74,13 +74,27 @@ | |
| 74 74 | 
             
                    Legend,
         | 
| 75 75 | 
             
                    esriConfig
         | 
| 76 76 | 
             
                  ) => {
         | 
| 77 | 
            +
                    let itemId;
         | 
| 78 | 
            +
                    var vars = window.location.search.substring(1).split('&');
         | 
| 79 | 
            +
                    vars.forEach((param) => {
         | 
| 80 | 
            +
                      let vals = param.split('=');
         | 
| 81 | 
            +
                      const v = vals[1];
         | 
| 82 | 
            +
                      switch (vals[0]) {
         | 
| 83 | 
            +
                        case "id":
         | 
| 84 | 
            +
                          itemId = v;
         | 
| 85 | 
            +
                          break;
         | 
| 86 | 
            +
                        default:
         | 
| 87 | 
            +
                          break;
         | 
| 88 | 
            +
                      }
         | 
| 89 | 
            +
                    });
         | 
| 90 | 
            +
             | 
| 77 91 | 
             
                    //esriConfig.portalUrl = "https://solutions.mapsdevext.arcgis.com";
         | 
| 78 92 | 
             
                    var webMap = new WebMap({
         | 
| 79 93 | 
             
                      portalItem: {
         | 
| 80 94 | 
             
                        // solutions
         | 
| 81 | 
            -
                        id: "3715f4899bea4b2a948347c5c2357e58"
         | 
| 95 | 
            +
                        id: itemId ? itemId : "3715f4899bea4b2a948347c5c2357e58"
         | 
| 82 96 | 
             
                        // InstantApps
         | 
| 83 | 
            -
                        //id: "863e4f6f2a7840db896cc1b1606d552d"
         | 
| 97 | 
            +
                        //id: itemId ? itemId : "863e4f6f2a7840db896cc1b1606d552d"
         | 
| 84 98 | 
             
                      }
         | 
| 85 99 | 
             
                    });
         | 
| 86 100 |  | 
| @@ -238,28 +238,21 @@ export async function _convertPopupArcadeToLabelSpec(expressionInfo) { | |
| 238 238 | 
             
             * @param layer Layer from which to fetch features
         | 
| 239 239 | 
             
             * @return Promise resolving to a set of executors keyed using the expression name
         | 
| 240 240 | 
             
             */
         | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            -
              labelFormat: string,
         | 
| 244 | 
            -
              layer: __esri.FeatureLayer
         | 
| 245 | 
            -
            ): Promise<IArcadeExecutors> {
         | 
| 246 | 
            -
              const arcadeExecutors: IArcadeExecutors = {};
         | 
| 247 | 
            -
             | 
| 241 | 
            +
            async function _createArcadeExecutors(labelFormat, layer) {
         | 
| 242 | 
            +
              const arcadeExecutors = {};
         | 
| 248 243 | 
             
              // Are any Arcade expressions in the layer?
         | 
| 249 244 | 
             
              if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
         | 
| 250 245 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 251 246 | 
             
              }
         | 
| 252 | 
            -
             | 
| 253 247 | 
             
              // Are there any Arcade expressions in the label format?
         | 
| 254 248 | 
             
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 255 249 | 
             
              const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
         | 
| 256 250 | 
             
              if (!arcadeExpressionsMatches) {
         | 
| 257 251 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 258 252 | 
             
              }
         | 
| 259 | 
            -
             | 
| 260 253 | 
             
              // Generate an Arcade executor for each match
         | 
| 261 254 | 
             
              const [arcade] = await loadModules(["esri/arcade"]);
         | 
| 262 | 
            -
              const labelingProfile | 
| 255 | 
            +
              const labelingProfile = {
         | 
| 263 256 | 
             
                variables: [
         | 
| 264 257 | 
             
                  {
         | 
| 265 258 | 
             
                    name: "$feature",
         | 
| @@ -279,38 +272,26 @@ async function _createArcadeExecutors( | |
| 279 272 | 
             
                  }
         | 
| 280 273 | 
             
                ]
         | 
| 281 274 | 
             
              };
         | 
| 282 | 
            -
             | 
| 283 | 
            -
               | 
| 284 | 
            -
             | 
| 285 | 
            -
                ( | 
| 286 | 
            -
                   | 
| 287 | 
            -
             | 
| 288 | 
            -
             | 
| 289 | 
            -
             | 
| 290 | 
            -
             | 
| 291 | 
            -
             | 
| 292 | 
            -
                          arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 293 | 
            -
                      }
         | 
| 294 | 
            -
                    }
         | 
| 295 | 
            -
                  );
         | 
| 296 | 
            -
                }
         | 
| 297 | 
            -
              );
         | 
| 298 | 
            -
             | 
| 275 | 
            +
              const createArcadeExecutorPromises = {};
         | 
| 276 | 
            +
              arcadeExpressionsMatches.forEach((match) => {
         | 
| 277 | 
            +
                const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 278 | 
            +
                (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
         | 
| 279 | 
            +
                  if (expressionInfo.name === expressionName) {
         | 
| 280 | 
            +
                    createArcadeExecutorPromises[expressionName] =
         | 
| 281 | 
            +
                      arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 282 | 
            +
                  }
         | 
| 283 | 
            +
                });
         | 
| 284 | 
            +
              });
         | 
| 299 285 | 
             
              const promises = Object.values(createArcadeExecutorPromises);
         | 
| 300 286 | 
             
              return Promise.all(promises)
         | 
| 301 | 
            -
             | 
| 302 | 
            -
                 | 
| 303 | 
            -
             | 
| 304 | 
            -
             | 
| 305 | 
            -
                  for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 306 | 
            -
                    arcadeExecutors[expressionNames[i]] = executors[i].valueOf() as __esri.ArcadeExecutor;
         | 
| 307 | 
            -
                  }
         | 
| 308 | 
            -
             | 
| 309 | 
            -
                  return arcadeExecutors;
         | 
| 287 | 
            +
                .then(executors => {
         | 
| 288 | 
            +
                const expressionNames = Object.keys(createArcadeExecutorPromises);
         | 
| 289 | 
            +
                for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 290 | 
            +
                  arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
         | 
| 310 291 | 
             
                }
         | 
| 311 | 
            -
             | 
| 292 | 
            +
                return arcadeExecutors;
         | 
| 293 | 
            +
              });
         | 
| 312 294 | 
             
            }
         | 
| 313 | 
            -
            */
         | 
| 314 295 | 
             
            /**
         | 
| 315 296 | 
             
             * Creates a title from a list of selection set names.
         | 
| 316 297 | 
             
             *
         | 
| @@ -707,7 +688,7 @@ export async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = | |
| 707 688 | 
             
              // Apply the label format
         | 
| 708 689 | 
             
              const labels = labelFormatProps.labelFormat.type === "pattern" ?
         | 
| 709 690 | 
             
                // Export attributes in format
         | 
| 710 | 
            -
                await _prepareLabelsFromPattern( | 
| 691 | 
            +
                await _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format, includeHeaderNames)
         | 
| 711 692 | 
             
                : labelFormatProps.labelFormat.type === "executor" ?
         | 
| 712 693 | 
             
                  // Export attributes in expression
         | 
| 713 694 | 
             
                  await _prepareLabelsUsingExecutor(featureSet, labelFormatProps.labelFormat.format)
         | 
| @@ -757,31 +738,28 @@ export async function _prepareLabelsFromAll(featureSet, attributeTypes, attribut | |
| 757 738 | 
             
             * @param includeHeaderNames Add the label format at the front of the list of generated labels
         | 
| 758 739 | 
             
             * @returns Promise resolving with list of labels, each of which is a list of label lines
         | 
| 759 740 | 
             
             */
         | 
| 760 | 
            -
            export async function _prepareLabelsFromPattern(
         | 
| 761 | 
            -
             | 
| 762 | 
            -
            featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 741 | 
            +
            export async function _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 742 | 
            +
              var _a;
         | 
| 763 743 | 
             
              const [intl] = await loadModules(["esri/intl"]);
         | 
| 764 744 | 
             
              // Find the label fields that we need to replace with values
         | 
| 765 745 | 
             
              const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
         | 
| 766 746 | 
             
              const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
         | 
| 767 747 | 
             
              // Do we need any Arcade executors?
         | 
| 768 | 
            -
               | 
| 769 | 
            -
               | 
| 748 | 
            +
              const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
         | 
| 749 | 
            +
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 770 750 | 
             
              // Find the label fields that we need to replace with values
         | 
| 771 | 
            -
               | 
| 751 | 
            +
              const arcadeExpressionMatches = (_a = labelFormat.match(arcadeExpressionRegExp)) !== null && _a !== void 0 ? _a : [];
         | 
| 772 752 | 
             
              // Convert feature attributes into an array of labels
         | 
| 773 753 | 
             
              const labels = await Promise.all(featureSet.map(async (feature) => {
         | 
| 774 754 | 
             
                var _a;
         | 
| 775 755 | 
             
                let labelPrep = labelFormat;
         | 
| 776 | 
            -
                 | 
| 777 | 
            -
                // Replace Arcade expressions in this feature
         | 
| 756 | 
            +
                //Replace Arcade expressions in this feature
         | 
| 778 757 | 
             
                for (let i = 0; i < arcadeExpressionMatches.length; i++) {
         | 
| 779 | 
            -
                  const match | 
| 758 | 
            +
                  const match = arcadeExpressionMatches[i];
         | 
| 780 759 | 
             
                  const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 781 | 
            -
                  const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer" | 
| 760 | 
            +
                  const value = await arcadeExecutors[expressionName].executeAsync({ "$feature": feature, "$layer": layer });
         | 
| 782 761 | 
             
                  labelPrep = labelPrep.replace(match, value);
         | 
| 783 762 | 
             
                }
         | 
| 784 | 
            -
                */
         | 
| 785 763 | 
             
                // Replace non-Arcade fields in this feature
         | 
| 786 764 | 
             
                const attributeValues = (_a = feature.attributes) !== null && _a !== void 0 ? _a : feature;
         | 
| 787 765 | 
             
                attributeNames.forEach((attributeName, i) => {
         | 
| @@ -25,7 +25,6 @@ import * as common from "@esri/solution-common"; | |
| 25 25 |  | 
| 26 26 | 
             
            export { ILabel } from "./pdfUtils";
         | 
| 27 27 |  | 
| 28 | 
            -
            /*
         | 
| 29 28 | 
             
            interface IArcadeExecutors {
         | 
| 30 29 | 
             
              [expressionName: string]: __esri.ArcadeExecutor;
         | 
| 31 30 | 
             
            }
         | 
| @@ -33,7 +32,6 @@ interface IArcadeExecutors { | |
| 33 32 | 
             
            interface IArcadeExecutorPromises {
         | 
| 34 33 | 
             
              [expressionName: string]: Promise<__esri.ArcadeExecutor>;
         | 
| 35 34 | 
             
            }
         | 
| 36 | 
            -
            */
         | 
| 37 35 |  | 
| 38 36 | 
             
            export interface IAttributeOrigNames {
         | 
| 39 37 | 
             
              [lowercaseName: string]: string;
         | 
| @@ -381,7 +379,6 @@ export async function _convertPopupArcadeToLabelSpec( | |
| 381 379 | 
             
             * @param layer Layer from which to fetch features
         | 
| 382 380 | 
             
             * @return Promise resolving to a set of executors keyed using the expression name
         | 
| 383 381 | 
             
             */
         | 
| 384 | 
            -
            /*
         | 
| 385 382 | 
             
            async function _createArcadeExecutors(
         | 
| 386 383 | 
             
              labelFormat: string,
         | 
| 387 384 | 
             
              layer: __esri.FeatureLayer
         | 
| @@ -453,7 +450,6 @@ async function _createArcadeExecutors( | |
| 453 450 | 
             
                }
         | 
| 454 451 | 
             
              );
         | 
| 455 452 | 
             
            }
         | 
| 456 | 
            -
            */
         | 
| 457 453 |  | 
| 458 454 | 
             
            /**
         | 
| 459 455 | 
             
             * Creates a title from a list of selection set names.
         | 
| @@ -944,7 +940,7 @@ export async function _prepareLabels( | |
| 944 940 | 
             
              const labels
         | 
| 945 941 | 
             
                = labelFormatProps.labelFormat.type === "pattern" ?
         | 
| 946 942 | 
             
                // Export attributes in format
         | 
| 947 | 
            -
                await _prepareLabelsFromPattern( | 
| 943 | 
            +
                await _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains,
         | 
| 948 944 | 
             
                  labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format as string, includeHeaderNames)
         | 
| 949 945 |  | 
| 950 946 | 
             
                : labelFormatProps.labelFormat.type === "executor" ?
         | 
| @@ -1015,7 +1011,7 @@ export async function _prepareLabelsFromAll( | |
| 1015 1011 | 
             
             * @returns Promise resolving with list of labels, each of which is a list of label lines
         | 
| 1016 1012 | 
             
             */
         | 
| 1017 1013 | 
             
            export async function _prepareLabelsFromPattern(
         | 
| 1018 | 
            -
               | 
| 1014 | 
            +
              layer: __esri.FeatureLayer,
         | 
| 1019 1015 | 
             
              featureSet: __esri.Graphic[],
         | 
| 1020 1016 | 
             
              attributeOrigNames: IAttributeOrigNames,
         | 
| 1021 1017 | 
             
              attributeTypes: IAttributeTypes,
         | 
| @@ -1031,26 +1027,24 @@ export async function _prepareLabelsFromPattern( | |
| 1031 1027 | 
             
              const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
         | 
| 1032 1028 |  | 
| 1033 1029 | 
             
              // Do we need any Arcade executors?
         | 
| 1034 | 
            -
               | 
| 1035 | 
            -
               | 
| 1030 | 
            +
              const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
         | 
| 1031 | 
            +
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 1036 1032 |  | 
| 1037 1033 | 
             
              // Find the label fields that we need to replace with values
         | 
| 1038 | 
            -
               | 
| 1034 | 
            +
              const arcadeExpressionMatches = labelFormat.match(arcadeExpressionRegExp) ?? [];
         | 
| 1039 1035 |  | 
| 1040 1036 | 
             
              // Convert feature attributes into an array of labels
         | 
| 1041 1037 | 
             
              const labels = await Promise.all(featureSet.map(
         | 
| 1042 1038 | 
             
                async feature => {
         | 
| 1043 1039 | 
             
                  let labelPrep = labelFormat;
         | 
| 1044 1040 |  | 
| 1045 | 
            -
                   | 
| 1046 | 
            -
                  // Replace Arcade expressions in this feature
         | 
| 1041 | 
            +
                  //Replace Arcade expressions in this feature
         | 
| 1047 1042 | 
             
                  for (let i = 0; i < arcadeExpressionMatches.length; i++) {
         | 
| 1048 1043 | 
             
                    const match: string = arcadeExpressionMatches[i];
         | 
| 1049 1044 | 
             
                    const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 1050 | 
            -
                    const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer" | 
| 1045 | 
            +
                    const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer": layer});
         | 
| 1051 1046 | 
             
                    labelPrep = labelPrep.replace(match, value);
         | 
| 1052 1047 | 
             
                  }
         | 
| 1053 | 
            -
                  */
         | 
| 1054 1048 |  | 
| 1055 1049 | 
             
                  // Replace non-Arcade fields in this feature
         | 
| 1056 1050 | 
             
                  const attributeValues = feature.attributes ?? feature;
         | 
| @@ -2554,28 +2554,21 @@ async function _convertPopupArcadeToLabelSpec(expressionInfo) { | |
| 2554 2554 | 
             
             * @param layer Layer from which to fetch features
         | 
| 2555 2555 | 
             
             * @return Promise resolving to a set of executors keyed using the expression name
         | 
| 2556 2556 | 
             
             */
         | 
| 2557 | 
            -
             | 
| 2558 | 
            -
             | 
| 2559 | 
            -
              labelFormat: string,
         | 
| 2560 | 
            -
              layer: __esri.FeatureLayer
         | 
| 2561 | 
            -
            ): Promise<IArcadeExecutors> {
         | 
| 2562 | 
            -
              const arcadeExecutors: IArcadeExecutors = {};
         | 
| 2563 | 
            -
             | 
| 2557 | 
            +
            async function _createArcadeExecutors(labelFormat, layer) {
         | 
| 2558 | 
            +
              const arcadeExecutors = {};
         | 
| 2564 2559 | 
             
              // Are any Arcade expressions in the layer?
         | 
| 2565 2560 | 
             
              if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
         | 
| 2566 2561 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 2567 2562 | 
             
              }
         | 
| 2568 | 
            -
             | 
| 2569 2563 | 
             
              // Are there any Arcade expressions in the label format?
         | 
| 2570 2564 | 
             
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 2571 2565 | 
             
              const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
         | 
| 2572 2566 | 
             
              if (!arcadeExpressionsMatches) {
         | 
| 2573 2567 | 
             
                return Promise.resolve(arcadeExecutors);
         | 
| 2574 2568 | 
             
              }
         | 
| 2575 | 
            -
             | 
| 2576 2569 | 
             
              // Generate an Arcade executor for each match
         | 
| 2577 2570 | 
             
              const [arcade] = await loadModules(["esri/arcade"]);
         | 
| 2578 | 
            -
              const labelingProfile | 
| 2571 | 
            +
              const labelingProfile = {
         | 
| 2579 2572 | 
             
                variables: [
         | 
| 2580 2573 | 
             
                  {
         | 
| 2581 2574 | 
             
                    name: "$feature",
         | 
| @@ -2595,38 +2588,26 @@ async function _createArcadeExecutors( | |
| 2595 2588 | 
             
                  }
         | 
| 2596 2589 | 
             
                ]
         | 
| 2597 2590 | 
             
              };
         | 
| 2598 | 
            -
             | 
| 2599 | 
            -
               | 
| 2600 | 
            -
             | 
| 2601 | 
            -
                ( | 
| 2602 | 
            -
                   | 
| 2603 | 
            -
             | 
| 2604 | 
            -
             | 
| 2605 | 
            -
             | 
| 2606 | 
            -
             | 
| 2607 | 
            -
             | 
| 2608 | 
            -
                          arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 2609 | 
            -
                      }
         | 
| 2610 | 
            -
                    }
         | 
| 2611 | 
            -
                  );
         | 
| 2612 | 
            -
                }
         | 
| 2613 | 
            -
              );
         | 
| 2614 | 
            -
             | 
| 2591 | 
            +
              const createArcadeExecutorPromises = {};
         | 
| 2592 | 
            +
              arcadeExpressionsMatches.forEach((match) => {
         | 
| 2593 | 
            +
                const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 2594 | 
            +
                (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
         | 
| 2595 | 
            +
                  if (expressionInfo.name === expressionName) {
         | 
| 2596 | 
            +
                    createArcadeExecutorPromises[expressionName] =
         | 
| 2597 | 
            +
                      arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
         | 
| 2598 | 
            +
                  }
         | 
| 2599 | 
            +
                });
         | 
| 2600 | 
            +
              });
         | 
| 2615 2601 | 
             
              const promises = Object.values(createArcadeExecutorPromises);
         | 
| 2616 2602 | 
             
              return Promise.all(promises)
         | 
| 2617 | 
            -
             | 
| 2618 | 
            -
                 | 
| 2619 | 
            -
             | 
| 2620 | 
            -
             | 
| 2621 | 
            -
                  for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 2622 | 
            -
                    arcadeExecutors[expressionNames[i]] = executors[i].valueOf() as __esri.ArcadeExecutor;
         | 
| 2623 | 
            -
                  }
         | 
| 2624 | 
            -
             | 
| 2625 | 
            -
                  return arcadeExecutors;
         | 
| 2603 | 
            +
                .then(executors => {
         | 
| 2604 | 
            +
                const expressionNames = Object.keys(createArcadeExecutorPromises);
         | 
| 2605 | 
            +
                for (let i = 0; i < expressionNames.length; ++i) {
         | 
| 2606 | 
            +
                  arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
         | 
| 2626 2607 | 
             
                }
         | 
| 2627 | 
            -
             | 
| 2608 | 
            +
                return arcadeExecutors;
         | 
| 2609 | 
            +
              });
         | 
| 2628 2610 | 
             
            }
         | 
| 2629 | 
            -
            */
         | 
| 2630 2611 | 
             
            /**
         | 
| 2631 2612 | 
             
             * Creates a title from a list of selection set names.
         | 
| 2632 2613 | 
             
             *
         | 
| @@ -3023,7 +3004,7 @@ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true, | |
| 3023 3004 | 
             
              // Apply the label format
         | 
| 3024 3005 | 
             
              const labels = labelFormatProps.labelFormat.type === "pattern" ?
         | 
| 3025 3006 | 
             
                // Export attributes in format
         | 
| 3026 | 
            -
                await _prepareLabelsFromPattern( | 
| 3007 | 
            +
                await _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format, includeHeaderNames)
         | 
| 3027 3008 | 
             
                : labelFormatProps.labelFormat.type === "executor" ?
         | 
| 3028 3009 | 
             
                  // Export attributes in expression
         | 
| 3029 3010 | 
             
                  await _prepareLabelsUsingExecutor(featureSet, labelFormatProps.labelFormat.format)
         | 
| @@ -3073,31 +3054,28 @@ async function _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomain | |
| 3073 3054 | 
             
             * @param includeHeaderNames Add the label format at the front of the list of generated labels
         | 
| 3074 3055 | 
             
             * @returns Promise resolving with list of labels, each of which is a list of label lines
         | 
| 3075 3056 | 
             
             */
         | 
| 3076 | 
            -
            async function _prepareLabelsFromPattern(
         | 
| 3077 | 
            -
             | 
| 3078 | 
            -
            featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 3057 | 
            +
            async function _prepareLabelsFromPattern(layer, featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
         | 
| 3058 | 
            +
              var _a;
         | 
| 3079 3059 | 
             
              const [intl] = await loadModules(["esri/intl"]);
         | 
| 3080 3060 | 
             
              // Find the label fields that we need to replace with values
         | 
| 3081 3061 | 
             
              const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
         | 
| 3082 3062 | 
             
              const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
         | 
| 3083 3063 | 
             
              // Do we need any Arcade executors?
         | 
| 3084 | 
            -
               | 
| 3085 | 
            -
               | 
| 3064 | 
            +
              const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
         | 
| 3065 | 
            +
              const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
         | 
| 3086 3066 | 
             
              // Find the label fields that we need to replace with values
         | 
| 3087 | 
            -
               | 
| 3067 | 
            +
              const arcadeExpressionMatches = (_a = labelFormat.match(arcadeExpressionRegExp)) !== null && _a !== void 0 ? _a : [];
         | 
| 3088 3068 | 
             
              // Convert feature attributes into an array of labels
         | 
| 3089 3069 | 
             
              const labels = await Promise.all(featureSet.map(async (feature) => {
         | 
| 3090 3070 | 
             
                var _a;
         | 
| 3091 3071 | 
             
                let labelPrep = labelFormat;
         | 
| 3092 | 
            -
                 | 
| 3093 | 
            -
                // Replace Arcade expressions in this feature
         | 
| 3072 | 
            +
                //Replace Arcade expressions in this feature
         | 
| 3094 3073 | 
             
                for (let i = 0; i < arcadeExpressionMatches.length; i++) {
         | 
| 3095 | 
            -
                  const match | 
| 3074 | 
            +
                  const match = arcadeExpressionMatches[i];
         | 
| 3096 3075 | 
             
                  const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
         | 
| 3097 | 
            -
                  const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer" | 
| 3076 | 
            +
                  const value = await arcadeExecutors[expressionName].executeAsync({ "$feature": feature, "$layer": layer });
         | 
| 3098 3077 | 
             
                  labelPrep = labelPrep.replace(match, value);
         | 
| 3099 3078 | 
             
                }
         | 
| 3100 | 
            -
                */
         | 
| 3101 3079 | 
             
                // Replace non-Arcade fields in this feature
         | 
| 3102 3080 | 
             
                const attributeValues = (_a = feature.attributes) !== null && _a !== void 0 ? _a : feature;
         | 
| 3103 3081 | 
             
                attributeNames.forEach((attributeName, i) => {
         | 
| @@ -7,7 +7,7 @@ import { r as registerInstance, h, H as Host, g as getElement, c as createEvent | |
| 7 7 | 
             
            import { g as getLocaleComponentStrings } from './locale-5bdc0197.js';
         | 
| 8 8 | 
             
            import { q as queryFeaturesByID, a as getLayerOrTable, g as goToSelection, b as queryAllIds } from './mapViewUtils-1e2befd7.js';
         | 
| 9 9 | 
             
            import { l as loadModules } from './loadModules-0bf05e85.js';
         | 
| 10 | 
            -
            import { d as downloadCSV } from './downloadUtils- | 
| 10 | 
            +
            import { d as downloadCSV } from './downloadUtils-8fbd1347.js';
         | 
| 11 11 | 
             
            import './_commonjsHelpers-d5f9d613.js';
         | 
| 12 12 | 
             
            import './interfaces-7470d906.js';
         | 
| 13 13 | 
             
            import './solution-resource-be35d35b.js';
         |