@esri/solutions-components 0.8.2 → 0.8.4

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 (117) hide show
  1. package/dist/cjs/calcite-action-pad_2.cjs.entry.js +1 -1
  2. package/dist/cjs/calcite-input-date-picker_3.cjs.entry.js +16 -10
  3. package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
  4. package/dist/cjs/{downloadUtils-c2bd7c80.js → downloadUtils-8b05d7cc.js} +39 -8
  5. package/dist/cjs/{helpers-81779c18.js → helpers-b014d9a9.js} +1 -1
  6. package/dist/cjs/{index.es-22b3d1a2.js → index.es-e7587227.js} +1 -1
  7. package/dist/cjs/instant-apps-ckeditor-wrapper_3.cjs.entry.js +4 -4
  8. package/dist/cjs/instant-apps-control-panel.cjs.entry.js +1 -1
  9. package/dist/cjs/instant-apps-export.cjs.entry.js +16 -10
  10. package/dist/cjs/instant-apps-header.cjs.entry.js +1 -1
  11. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +2 -2
  12. package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +2 -2
  13. package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +2 -2
  14. package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +2 -2
  15. package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +4 -4
  16. package/dist/cjs/instant-apps-keyboard-shortcuts.cjs.entry.js +3 -3
  17. package/dist/cjs/instant-apps-landing-page.cjs.entry.js +1 -1
  18. package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +5 -5
  19. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +5 -5
  20. package/dist/cjs/instant-apps-measurement.cjs.entry.js +4 -4
  21. package/dist/cjs/instant-apps-popover.cjs.entry.js +3 -3
  22. package/dist/cjs/instant-apps-scoreboard.cjs.entry.js +3 -3
  23. package/dist/cjs/instant-apps-splash.cjs.entry.js +14 -5
  24. package/dist/cjs/{languageSwitcher-4822684b.js → languageSwitcher-3870c772.js} +1 -1
  25. package/dist/cjs/{languageUtil-9bd00bad.js → languageUtil-0df39c0c.js} +1 -1
  26. package/dist/cjs/{loadModules-69fc5b98.js → loadModules-01306709.js} +1 -1
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/{locale-3e33f44c.js → locale-4cef466e.js} +2 -2
  29. package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
  30. package/dist/cjs/public-notification.cjs.entry.js +1 -1
  31. package/dist/cjs/solutions-components.cjs.js +1 -1
  32. package/dist/cjs/{utils-ea7a5a63.js → utils-ac836e7a.js} +1 -1
  33. package/dist/collection/utils/downloadUtils.js +38 -7
  34. package/dist/collection/utils/downloadUtils.ts +46 -7
  35. package/dist/collection/utils/test/downloadUtils.spec.js +33 -1
  36. package/dist/collection/utils/test/downloadUtils.spec.tsx +40 -1
  37. package/dist/components/downloadUtils.js +38 -7
  38. package/dist/components/instant-apps-export.js +13 -7
  39. package/dist/components/instant-apps-landing-page.js +1 -1
  40. package/dist/components/instant-apps-measurement.js +1 -1
  41. package/dist/components/instant-apps-social-share2.js +13 -7
  42. package/dist/components/instant-apps-splash.js +16 -2
  43. package/dist/components/languageUtil.js +1 -1
  44. package/dist/components/loadModules2.js +1 -1
  45. package/dist/esm/calcite-action-pad_2.entry.js +1 -1
  46. package/dist/esm/calcite-input-date-picker_3.entry.js +16 -10
  47. package/dist/esm/card-manager_3.entry.js +1 -1
  48. package/dist/esm/{downloadUtils-a6c0e25f.js → downloadUtils-0c13073b.js} +39 -8
  49. package/dist/esm/{helpers-aeddac74.js → helpers-f9256189.js} +1 -1
  50. package/dist/esm/{index.es-b0a676ae.js → index.es-ad250bc6.js} +1 -1
  51. package/dist/esm/instant-apps-ckeditor-wrapper_3.entry.js +4 -4
  52. package/dist/esm/instant-apps-control-panel.entry.js +1 -1
  53. package/dist/esm/instant-apps-export.entry.js +16 -10
  54. package/dist/esm/instant-apps-header.entry.js +1 -1
  55. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +2 -2
  56. package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +2 -2
  57. package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +2 -2
  58. package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +2 -2
  59. package/dist/esm/instant-apps-interactive-legend.entry.js +4 -4
  60. package/dist/esm/instant-apps-keyboard-shortcuts.entry.js +3 -3
  61. package/dist/esm/instant-apps-landing-page.entry.js +1 -1
  62. package/dist/esm/instant-apps-language-switcher.entry.js +5 -5
  63. package/dist/esm/instant-apps-language-translator.entry.js +5 -5
  64. package/dist/esm/instant-apps-measurement.entry.js +4 -4
  65. package/dist/esm/instant-apps-popover.entry.js +3 -3
  66. package/dist/esm/instant-apps-scoreboard.entry.js +3 -3
  67. package/dist/esm/instant-apps-splash.entry.js +14 -5
  68. package/dist/esm/{languageSwitcher-4faa659f.js → languageSwitcher-068998b1.js} +1 -1
  69. package/dist/esm/{languageUtil-dc3111c1.js → languageUtil-035e7728.js} +1 -1
  70. package/dist/esm/{loadModules-877bbb89.js → loadModules-7a5f1022.js} +1 -1
  71. package/dist/esm/loader.js +1 -1
  72. package/dist/esm/{locale-bd9034e1.js → locale-4cab280d.js} +2 -2
  73. package/dist/esm/map-select-tools_3.entry.js +1 -1
  74. package/dist/esm/public-notification.entry.js +1 -1
  75. package/dist/esm/solutions-components.js +1 -1
  76. package/dist/esm/{utils-28d0a086.js → utils-78fe6e5b.js} +1 -1
  77. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-header/instant-apps-header.css +1 -1
  78. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-scoreboard/instant-apps-scoreboard.css +1 -1
  79. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-social-share/instant-apps-social-share.css +8 -1
  80. package/dist/solutions-components/{p-a455c3f0.entry.js → p-00524417.entry.js} +1 -1
  81. package/dist/solutions-components/{p-8e9f96db.js → p-12a7d0d1.js} +1 -1
  82. package/dist/solutions-components/{p-a7b7f8d1.js → p-15a0e7fb.js} +1 -1
  83. package/dist/solutions-components/{p-b41e2c4c.js → p-1d3a1794.js} +11 -11
  84. package/dist/solutions-components/p-2d72eac3.entry.js +6 -0
  85. package/dist/solutions-components/{p-a2544cba.entry.js → p-30edeb79.entry.js} +1 -1
  86. package/dist/solutions-components/{p-220c46c2.entry.js → p-3a6a1ce9.entry.js} +1 -1
  87. package/dist/solutions-components/{p-a59078ee.entry.js → p-3b9e4882.entry.js} +1 -1
  88. package/dist/solutions-components/{p-8ad937b4.entry.js → p-465aa7d9.entry.js} +1 -1
  89. package/dist/solutions-components/p-4dcc150d.entry.js +6 -0
  90. package/dist/solutions-components/{p-1bca71bf.entry.js → p-4efd2af6.entry.js} +1 -1
  91. package/dist/solutions-components/{p-5a28d60c.entry.js → p-5320dc25.entry.js} +1 -1
  92. package/dist/solutions-components/{p-734d1dc5.js → p-590a2a26.js} +1 -1
  93. package/dist/solutions-components/{p-0d72a9ca.entry.js → p-5f6e7429.entry.js} +1 -1
  94. package/dist/solutions-components/{p-015a45e2.entry.js → p-65ad1625.entry.js} +1 -1
  95. package/dist/solutions-components/{p-2e7a9b9b.entry.js → p-88932d2f.entry.js} +2 -2
  96. package/dist/solutions-components/{p-104f07e3.entry.js → p-954dc86f.entry.js} +1 -1
  97. package/dist/solutions-components/{p-52b37bad.entry.js → p-989bf0bf.entry.js} +1 -1
  98. package/dist/solutions-components/{p-0f427774.entry.js → p-a0611720.entry.js} +1 -1
  99. package/dist/solutions-components/{p-c302bbea.entry.js → p-a3132356.entry.js} +1 -1
  100. package/dist/solutions-components/{p-c10b44ee.entry.js → p-a886ab7f.entry.js} +1 -1
  101. package/dist/solutions-components/{p-03037cf9.js → p-ad98c346.js} +1 -1
  102. package/dist/solutions-components/{p-03a65871.entry.js → p-bf6b4eb7.entry.js} +1 -1
  103. package/dist/solutions-components/{p-09801ba6.entry.js → p-c4ff3b52.entry.js} +3 -3
  104. package/dist/solutions-components/p-d599cfa8.entry.js +6 -0
  105. package/dist/solutions-components/{p-cfe890f6.entry.js → p-f313b45b.entry.js} +1 -1
  106. package/dist/solutions-components/{p-aec4441b.entry.js → p-fc1367d9.entry.js} +1 -1
  107. package/dist/solutions-components/{p-07626c45.js → p-fc2fb61b.js} +1 -1
  108. package/dist/solutions-components/solutions-components.esm.js +1 -1
  109. package/dist/solutions-components/utils/downloadUtils.ts +46 -7
  110. package/dist/solutions-components/utils/test/downloadUtils.spec.tsx +40 -1
  111. package/dist/types/utils/downloadUtils.d.ts +18 -4
  112. package/package.json +6 -6
  113. package/dist/solutions-components/p-7d6ee026.entry.js +0 -6
  114. package/dist/solutions-components/p-b80bc5b9.entry.js +0 -6
  115. package/dist/solutions-components/p-dd45738e.entry.js +0 -6
  116. /package/dist/solutions-components/{p-70359c2b.js → p-89218b6e.js} +0 -0
  117. /package/dist/solutions-components/{p-090e0241.js → p-e85ba21c.js} +0 -0
@@ -117,7 +117,11 @@ import {
117
117
  * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
118
118
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
119
119
  * all attributes are exported
120
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
120
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
121
+ * @param isCSVExport Indicates if the export is for a CSV file
122
+ * @param fields Fields to include in the export
123
+ * @param useFieldAliasNames Indicates if field alias names should be used in the export
124
+ * @param filterFields Indicates if fields should be filtered
121
125
  * @returns selectionSetNames that will be used for export filenames
122
126
  */
123
127
  export async function consolidateLabels(
@@ -156,6 +160,9 @@ export async function consolidateLabels(
156
160
  * all attributes are exported
157
161
  * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
158
162
  * @param addColumnTitle Indicates if column headings should be included in output
163
+ * @param fields Fields to include in the export
164
+ * @param useFieldAliasNames Indicates if field alias names should be used in the export
165
+ * @param filterFields Indicates if fields should be filtered
159
166
  * @returns Promise resolving when function is done
160
167
  */
161
168
  export async function downloadCSV(
@@ -472,6 +479,38 @@ export function _createFilename(
472
479
  return title;
473
480
  }
474
481
 
482
+ /**
483
+ * Creates headings from a label format.
484
+ *
485
+ * @param labelFormat Format for label
486
+ * @returns A list of headings, with one heading for each line in the label format
487
+ */
488
+ export function _extractHeaderNames(
489
+ labelFormat: string
490
+ ): string[] {
491
+ // Split the format into lines
492
+ const lines = labelFormat.split(lineSeparatorChar);
493
+
494
+ // Generate a header for each line
495
+ const headerNames = lines.map(
496
+ (line, i) => {
497
+ // Find the field names in the line
498
+ const fieldNameSyms = line.match(/\{[^\}]*\}/g);
499
+
500
+ // Extract the field names from the symbols; if there are no symbols, use a default name; if a field name
501
+ // is an Arcade expression, extract the expression name
502
+ return fieldNameSyms
503
+ ? fieldNameSyms
504
+ .map(fieldName => fieldName.substring(1, fieldName.length - 1))
505
+ .map(fieldName => fieldName.startsWith("expression/") ? fieldName.substring(fieldName.indexOf("/") + 1) : fieldName)
506
+ .join("__")
507
+ : `column_${i + 1}`;
508
+ }
509
+ );
510
+
511
+ return headerNames;
512
+ }
513
+
475
514
  /**
476
515
  * Extracts Arcade expression references from the lines of a label format.
477
516
  *
@@ -647,7 +686,7 @@ export async function _getLabelFormat(
647
686
 
648
687
  if (webmapLayers.length > 0) {
649
688
  labelFormatProps = await _getLabelFormat(webmap, webmapLayers[0], formatUsingLayerPopup);
650
- labelFormatProps.relationshipId = relationshipId;
689
+ labelFormatProps.relationshipId = relationshipId.toString();
651
690
 
652
691
  } else {
653
692
  // Related layer info is not in webmap; get the label info from the related layer
@@ -694,7 +733,7 @@ export async function _getLabelFormat(
694
733
  labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
695
734
  } else {
696
735
  labelFormatProps = await labelFormatPropsPromise;
697
- labelFormatProps.relationshipId = relationshipId;
736
+ labelFormatProps.relationshipId = relationshipId.toString();
698
737
  }
699
738
  }
700
739
 
@@ -836,7 +875,7 @@ export function _prepareAttributeValue(
836
875
  * @param ids List of ids to download
837
876
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
838
877
  * all attributes are exported
839
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
878
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
840
879
  * @returns Promise resolving when function is done
841
880
  */
842
881
  export async function _prepareLabels(
@@ -973,7 +1012,7 @@ export async function _prepareLabels(
973
1012
  * @param featureSet Features to convert to labels
974
1013
  * @param attributeTypes Type for each attribute in a feature
975
1014
  * @param attributeDomains Domains for each attribute in a feature
976
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
1015
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
977
1016
  * @returns Promise resolving with list of labels, each of which is a list of label lines
978
1017
  */
979
1018
  export async function _prepareLabelsFromAll(
@@ -1025,7 +1064,7 @@ export async function _prepareLabelsFromAll(
1025
1064
  * @param attributeDomains Domains for each attribute in a feature
1026
1065
  * @param attributeFormats Formats for each attribute in a feature
1027
1066
  * @param labelFormat Format for label
1028
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
1067
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
1029
1068
  * @returns Promise resolving with list of labels, each of which is a list of label lines
1030
1069
  */
1031
1070
  export async function _prepareLabelsFromPattern(
@@ -1089,7 +1128,7 @@ export async function _prepareLabelsFromPattern(
1089
1128
 
1090
1129
  // Add header names
1091
1130
  if (includeHeaderNames) {
1092
- labels.unshift(attributeNames);
1131
+ labels.unshift(_extractHeaderNames(labelFormat));
1093
1132
  }
1094
1133
 
1095
1134
  return Promise.resolve(labels);
@@ -251,10 +251,49 @@ describe("downloadUtils", () => {
251
251
 
252
252
  });
253
253
 
254
+ describe("_extractHeaderNames", () => {
255
+
256
+ it("handles a single-line label", () => {
257
+ const labelSpec = "{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
258
+ const headerNames = downloadUtils._extractHeaderNames(labelSpec);
259
+ const expectedHeaderNames = ["PSTLCITY__PSTLSTATE__PSTLZIP5"];
260
+ expect(headerNames).toEqual(expectedHeaderNames);
261
+ });
262
+
263
+ it("handles a multi-line label", () => {
264
+ const labelSpec = "{OWNERNM1}|{PSTLADDRESS}|{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
265
+ const headerNames = downloadUtils._extractHeaderNames(labelSpec);
266
+ const expectedHeaderNames = ["OWNERNM1", "PSTLADDRESS", "PSTLCITY__PSTLSTATE__PSTLZIP5"];
267
+ expect(headerNames).toEqual(expectedHeaderNames);
268
+ });
269
+
270
+ it("handles a multi-line label with a line without attributes", () => {
271
+ const labelSpec = "{OWNERNM1}|Line without attributes|{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
272
+ const headerNames = downloadUtils._extractHeaderNames(labelSpec);
273
+ const expectedHeaderNames = ["OWNERNM1", "column_2", "PSTLCITY__PSTLSTATE__PSTLZIP5"];
274
+ expect(headerNames).toEqual(expectedHeaderNames);
275
+ });
276
+
277
+ it("handles a label with an Arcade expression", () => {
278
+ const labelSpec = "{expression/expr0}|{OWNERNM1}|{PSTLADDRESS}|{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
279
+ const headerNames = downloadUtils._extractHeaderNames(labelSpec);
280
+ const expectedHeaderNames = ["expr0", "OWNERNM1", "PSTLADDRESS", "PSTLCITY__PSTLSTATE__PSTLZIP5"];
281
+ expect(headerNames).toEqual(expectedHeaderNames);
282
+ });
283
+
284
+ it("handles a label with multiple Arcade expressions", () => {
285
+ const labelSpec = "{expression/expr3}: {expression/expr1}|{OWNERNM1}|{expression/expr0}|{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
286
+ const headerNames = downloadUtils._extractHeaderNames(labelSpec);
287
+ const expectedHeaderNames = ["expr3__expr1", "OWNERNM1", "expr0", "PSTLCITY__PSTLSTATE__PSTLZIP5"];
288
+ expect(headerNames).toEqual(expectedHeaderNames);
289
+ });
290
+
291
+ });
292
+
254
293
  describe("_getExpressionsFromLabel", () => {
255
294
 
256
295
  it("handles a label with ASCII expression names", () => {
257
- const labelSpec = "{expression/expr0}\n{OWNERNM1}\n{PSTLADDRESS}\n{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
296
+ const labelSpec = "{expression/expr0}|{OWNERNM1}|{PSTLADDRESS}|{PSTLCITY}, {PSTLSTATE} {PSTLZIP5}";
258
297
  const expectedExpressions = ["{expression/expr0}"];
259
298
  const expressions = downloadUtils._getExpressionsFromLabel(labelSpec);
260
299
  expect(expressions).toEqual(expectedExpressions);
@@ -74,7 +74,11 @@ import { IQueryRelatedOptions, IQueryRelatedResponse, IRelatedRecordGroup } from
74
74
  * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
75
75
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
76
76
  * all attributes are exported
77
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
77
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
78
+ * @param isCSVExport Indicates if the export is for a CSV file
79
+ * @param fields Fields to include in the export
80
+ * @param useFieldAliasNames Indicates if field alias names should be used in the export
81
+ * @param filterFields Indicates if fields should be filtered
78
82
  * @returns selectionSetNames that will be used for export filenames
79
83
  */
80
84
  export declare function consolidateLabels(webmap: __esri.Map, exportInfos: IExportInfos, formatUsingLayerPopup?: boolean, includeHeaderNames?: boolean, isCSVExport?: boolean, fields?: any, useFieldAliasNames?: boolean, filterFields?: boolean): Promise<string[][]>;
@@ -87,6 +91,9 @@ export declare function consolidateLabels(webmap: __esri.Map, exportInfos: IExpo
87
91
  * all attributes are exported
88
92
  * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
89
93
  * @param addColumnTitle Indicates if column headings should be included in output
94
+ * @param fields Fields to include in the export
95
+ * @param useFieldAliasNames Indicates if field alias names should be used in the export
96
+ * @param filterFields Indicates if fields should be filtered
90
97
  * @returns Promise resolving when function is done
91
98
  */
92
99
  export declare function downloadCSV(webmap: __esri.Map, exportInfos: IExportInfos, formatUsingLayerPopup: boolean, removeDuplicates?: boolean, addColumnTitle?: boolean, fields?: any, useFieldAliasNames?: boolean, filterFields?: boolean): Promise<void>;
@@ -150,6 +157,13 @@ export declare function _convertPopupArcadeToLabelSpec(expressionInfo: __esri.El
150
157
  * selection set names supplied, "download" is returned
151
158
  */
152
159
  export declare function _createFilename(selectionSetNames: string[]): string;
160
+ /**
161
+ * Creates headings from a label format.
162
+ *
163
+ * @param labelFormat Format for label
164
+ * @returns A list of headings, with one heading for each line in the label format
165
+ */
166
+ export declare function _extractHeaderNames(labelFormat: string): string[];
153
167
  /**
154
168
  * Extracts Arcade expression references from the lines of a label format.
155
169
  *
@@ -227,7 +241,7 @@ export declare function _prepareAttributeValue(attributeValue: any, attributeTyp
227
241
  * @param ids List of ids to download
228
242
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
229
243
  * all attributes are exported
230
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
244
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
231
245
  * @returns Promise resolving when function is done
232
246
  */
233
247
  export declare function _prepareLabels(webmap: __esri.Map, layer: __esri.FeatureLayer, ids: number[], formatUsingLayerPopup?: boolean, includeHeaderNames?: boolean, fields?: any, useFieldAliasNames?: boolean, filterFields?: boolean): Promise<string[][]>;
@@ -237,7 +251,7 @@ export declare function _prepareLabels(webmap: __esri.Map, layer: __esri.Feature
237
251
  * @param featureSet Features to convert to labels
238
252
  * @param attributeTypes Type for each attribute in a feature
239
253
  * @param attributeDomains Domains for each attribute in a feature
240
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
254
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
241
255
  * @returns Promise resolving with list of labels, each of which is a list of label lines
242
256
  */
243
257
  export declare function _prepareLabelsFromAll(featureSet: __esri.Graphic[], attributeTypes: IAttributeTypes, attributeDomains: IAttributeDomains, includeHeaderNames?: boolean, useFieldAliasNames?: boolean): Promise<string[][]>;
@@ -250,7 +264,7 @@ export declare function _prepareLabelsFromAll(featureSet: __esri.Graphic[], attr
250
264
  * @param attributeDomains Domains for each attribute in a feature
251
265
  * @param attributeFormats Formats for each attribute in a feature
252
266
  * @param labelFormat Format for label
253
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
267
+ * @param includeHeaderNames Add a heading entries at the beginning of the list of generated labels
254
268
  * @returns Promise resolving with list of labels, each of which is a list of label lines
255
269
  */
256
270
  export declare function _prepareLabelsFromPattern(layer: __esri.FeatureLayer, featureSet: __esri.Graphic[], attributeOrigNames: IAttributeOrigNames, attributeTypes: IAttributeTypes, attributeDomains: IAttributeDomains, attributeFormats: IAttributeFormats, labelFormat: string, includeHeaderNames?: boolean): Promise<string[][]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/solutions-components",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "Web Components for Esri's Solutions Applications",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -37,6 +37,9 @@
37
37
  "@babel/types": "^7.23.0",
38
38
  "@esri/eslint-plugin-calcite-components": "^0.2.2",
39
39
  "@esri/solution-common": "3.0.1",
40
+ "@esri/telemetry": "6.1.3",
41
+ "@esri/telemetry-amazon": "1.1.3",
42
+ "@esri/telemetry-google-analytics": "0.4.3",
40
43
  "@stencil-community/postcss": "^2.2.0",
41
44
  "@stencil/core": "^4.8.0",
42
45
  "@stencil/sass": "^3.0.7",
@@ -71,10 +74,7 @@
71
74
  "tailwindcss": "3.0.23",
72
75
  "ts-node": "^10.9.1",
73
76
  "tslib": "^2.4.0",
74
- "typescript": "^4.8.4",
75
- "@esri/telemetry": "6.1.3",
76
- "@esri/telemetry-amazon": "1.1.3",
77
- "@esri/telemetry-google-analytics": "0.4.3"
77
+ "typescript": "^4.8.4"
78
78
  },
79
79
  "dependencies": {
80
80
  "@esri/arcgis-rest-auth": "^3.4.2",
@@ -88,7 +88,7 @@
88
88
  "@esri/hub-initiatives": "^12.4.1",
89
89
  "@esri/hub-sites": "^12.6.0",
90
90
  "@esri/hub-teams": "^12.4.1",
91
- "@esri/instant-apps-components": "1.0.0-beta.201",
91
+ "@esri/instant-apps-components": "1.0.0-beta.206",
92
92
  "@esri/solution-common": "^5.0.9",
93
93
  "@pdf-lib/fontkit": "^1.1.1",
94
94
  "focus-trap": "7.2.0",
@@ -1,6 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import{r as t,c as n,h as i,H as s,g as e}from"./p-7d280d8a.js";import{g as o}from"./p-07626c45.js";import{l as a}from"./p-70359c2b.js";import{g as r}from"./p-c96eb2db.js";import"./p-090e0241.js";import"./p-8ddc7786.js";import"./p-e2d0ad1b.js";const p="instant-apps-export calcite-mode-light",l="instant-apps-export-print",h="instant-apps-export-print__content-container",c="instant-apps-export-print__extra-container",d="instant-apps-export-print__legend-container",u="instant-apps-export-print__compass-container",x="instant-apps-export-print__scale-bar-container",v="instant-apps-export-print__popup-container",b="instant-apps-export-print__popup-content",_="instant-apps-export-print__popup-title",g="instant-apps-export-print__view",m="instant-apps-export-print__view-container",f="instant-apps-export-print__view-wrapper",w="instant-app-export-drag",k=class{constructor(i){t(this,i),this.exportOutputUpdated=n(this,"exportOutputUpdated",7),this.output=void 0,this.beforeExport=()=>Promise.resolve(),this.popoverIcon="export",this.extraContent=void 0,this.extraContentLabel=void 0,this.headerTitle="",this.includeExtraContent=!0,this.includeLegend=!0,this.includeMap=!0,this.includePopup=!1,this.mode="popover",this.popoverPositioning="absolute",this.popoverPlacement="auto",this.scale="m",this.showHeaderTitle=!0,this.showIncludeLegend=!0,this.showIncludeMap=!1,this.showIncludePopup=!0,this.showScaleBar=!1,this.view=void 0,this.maskBackground="rgba(255, 51, 0, 0.1)",this.maskBorder="2px dashed rgb(255, 51, 0)",this.baseClass=p,this.exportIsLoading=void 0,this.messages=void 0}watchIncludeMap(t){t&&this.updateLegend()}componentWillLoad(){this.baseClass="dark"===r(this.el)?"instant-apps-export calcite-mode-dark":p,o(this),this.initializeModules()}componentDidLoad(){this.printContainerEl.prepend(this.printEl)}disconnectedCallback(){var t,n;null===(t=this.handles)||void 0===t||t.removeAll(),null===(n=this.handles)||void 0===n||n.destroy(),this.handles=null}async initializeModules(){const[t]=await a(["esri/core/Handles"]);return this.handles=new t,Promise.resolve()}render(){const t="popover"===this.mode?this.renderPopover():this.renderPanel(),n=this.renderCompass();return i(s,null,i("div",{class:this.baseClass,onMouseEnter:this.handleWidgetCreation.bind(this),onFocusin:this.handleWidgetCreation.bind(this)},t,i("div",{class:"instant-apps-export__visually-hidden"},n)))}renderPopover(){var t,n,s;const e=this.renderPanel();return[i("calcite-popover",{referenceElement:"export-popover-btn",label:null===(t=this.messages)||void 0===t?void 0:t.exportPopover,overlayPositioning:this.popoverPositioning,placement:this.popoverPlacement,autoClose:!0,ref:t=>this.popoverEl=t},e),i("calcite-action",{id:"export-popover-btn",alignment:"center",icon:this.popoverIcon,scale:this.scale,title:null===(n=this.messages)||void 0===n?void 0:n.exportBtn,text:null===(s=this.messages)||void 0===s?void 0:s.exportBtn})]}renderPanel(){var t,n;const s=this.showHeaderTitle?this.renderTitle():null,e=null!=this.extraContent?this.renderSwitch("includeExtraContent",this.extraContentLabel):null,o=this.showIncludeMap?this.renderSwitch("includeMap"):null,a=this.includeMap?this.renderMapOptions():null,r=this.renderPrint();return i("div",{class:"inline"===this.mode?"instant-apps-export__inline-container":"instant-apps-export__popover-container"},s,e,o,a,this.includeMap?i("calcite-button",{appearance:"transparent",width:"full",onClick:this.setMapAreaOnClick.bind(this),disabled:this.exportIsLoading},null===(t=this.messages)||void 0===t?void 0:t.setMapArea):null,i("calcite-button",{width:"full",onClick:this.exportOnClick.bind(this),disabled:this.exportIsLoading},null===(n=this.messages)||void 0===n?void 0:n.export),r)}renderTitle(){var t;return i("calcite-label",null,null===(t=this.messages)||void 0===t?void 0:t.title,i("calcite-input",{value:this.headerTitle,onCalciteInputInput:this.updateHeaderTitle.bind(this)}))}renderSwitch(t,n){var s;const e=null!=n?n:null===(s=this.messages)||void 0===s?void 0:s[t];return i("calcite-label",{layout:"inline-space-between"},e,i("calcite-switch",{checked:this[t],value:t,onCalciteSwitchChange:this.optionOnChange.bind(this)}))}renderMapOptions(){const t=this.showIncludeLegend?this.renderSwitch("includeLegend"):null,n=this.showIncludePopup?this.renderSwitch("includePopup"):null;return i("div",null,t,n)}renderPrint(){const t=this.includeMap?this.renderPrintMap():null,n=this.renderExtraContent(),s=this.includeMap&&this.showIncludeLegend?this.renderLegend():null,e=this.includeMap&&this.showIncludePopup?this.renderPopup():null;return i("div",{ref:t=>this.printContainerEl=t},i("div",{class:l,ref:t=>this.printEl=t},t,s,i("div",{class:h},e,n)))}renderPrintMap(){return i("div",{class:m,ref:t=>this.viewContainerEl=t},i("div",{class:f,ref:t=>this.viewWrapperEl=t},this.headerTitle?i("instant-apps-header",{titleText:this.headerTitle,backgroundColor:"#fff",textColor:"#323232"}):null,i("img",{class:g,ref:t=>this.viewEl=t}),i("div",{class:x,ref:t=>this.scaleBarContainerEl=t})))}renderLegend(){return i("div",{class:d,ref:t=>this.legendContainerEl=t})}renderCompass(){return i("div",{class:u,ref:t=>this.compassContainerEl=t})}renderPopup(){return i("div",{class:v,ref:t=>this.popupContainerEl=t},i("div",{ref:t=>this.popupTitleEl=t,class:_}),i("div",{ref:t=>this.popupContentEl=t,class:b}))}renderExtraContent(){return i("div",{class:c,id:"export-content",ref:t=>this.extraContainerEl=t})}optionOnChange(t){const{checked:n,value:i}=t.target;this[i]=n,this.updateExportOutput()}updateHeaderTitle(t){this.headerTitle=t.target.value,this.updateExportOutput()}async exportOnClick(){this.removeScreenshotElements(),await this.beforeExport(),null==this.viewWrapperEl||this.viewWrapperEl.contains(this.compassContainerEl)||this.viewWrapperEl.append(this.compassContainerEl),this.handleViewExportOnClick(),null!=this.popoverEl&&(this.popoverEl.open=!1)}async handleViewExportOnClick(){null!=this.view?(this.addPrintStyling(),document.body.prepend(this.printEl),this.handleExtraContent(),this.includeMap?(this.updateScaleBar(),this.updatePopupToPrint(),this.viewScreenshot(),this.handleImgLoaded()):this.handleImgLoaded()):null!=this.popoverEl&&(this.popoverEl.open=!1)}addPrintStyling(){null==this.printStyleEl&&(this.printStyleEl=document.createElement("style"),this.printStyleEl.innerHTML='\n @media print {\n @page {\n size: Portrait;\n margin: .25in;\n }\n\n html, body {\n padding: 0;\n margin: 0;\n height: 100%;\n width: 100%;\n }\n\n body > *:not(.instant-apps-export-print) { display: none; }\n }\n\n * {\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n }\n\n\n .instant-apps-export-print {\n height: 100%;\n width: 100%;\n position: absolute;\n z-index: -999;\n color: #323232 !important;\n display: grid;\n gap: 24px;\n grid-auto-flow: row;\n --esri-calcite-mode-name: "light";\n }\n\n .instant-apps-export-print, .instant-apps-export-print * {\n box-sizing: border-box;\n }\n\n .instant-apps-export-print__view-section {\n height: 100%;\n }\n\n .instant-apps-export-print__view-container {\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n }\n\n .instant-apps-export-print__view-wrapper {\n height: fit-content;\n width: fit-content;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 2pt solid #323232;\n overflow: hidden;\n }\n\n .instant-apps-export-print__view {\n object-fit: contain;\n }\n\n .instant-apps-export-print__popup-container {\n height: min-content;\n max-width: 350px;\n display: none;\n color: #323232;\n background: #fff;\n border: 1pt solid #323232;\n break-inside: avoid;\n }\n\n .instant-apps-export-print__popup-title {\n border-bottom: 1pt solid #323232;\n }\n\n .instant-apps-export-print__popup-content {\n background: #fff;\n padding-top: 8pt;\n }\n\n .instant-apps-export-print__popup-content .esri-feature-media__chart {\n background: #fff;\n }\n\n .instant-apps-export-print__legend-container {\n height: min-content;\n background: #fff;\n overflow: unset;\n }\n\n .esri-legend--card, .esri-legend--card__service-content {\n flex-flow: row wrap;\n }\n\n .instant-apps-export-print .esri-widget > *:not(.esri-scale-bar.esri-widget > *) {\n background: #fff;\n color: #323232;\n }\n\n .instant-apps-export-print__popup-content * {\n color: #323232;\n }\n\n .instant-apps-export-print .esri-widget__heading {\n margin: 2pt 7pt;\n padding: 0;\n color: #323232;\n }\n\n .instant-apps-export-print .esri-legend__ramp-label:before {\n border-color: rgba(0,0,0,0) rgba(50,50,50,.8) rgba(0,0,0,0) rgba(0,0,0,0);\n }\n\n .instant-apps-export-print .esri-legend--card__section {\n padding: 4pt 0 4pt;\n min-width: unset;\n border-left: none;\n }\n\n .instant-apps-export-print .esri-legend--card__section:first-child {\n border-left: none;\n }\n\n .instant-apps-export-print .esri-legend--card__service {\n border: none;\n flex: 0 1 auto;\n break-inside: avoid;\n }\n\n .instant-apps-export-print .esri-legend--card {\n border: none;\n gap: 6pt 12pt;\n }\n\n .instant-apps-export-print .esri-legend--card:not(:first-child),\n .instant-apps-export-print .esri-compass.esri-widget:not(:first-child) {\n display: none;\n }\n\n .instant-apps-export-print .esri-legend--card__service-caption-container {\n height: unset;\n padding: 0;\n border-bottom: none;\n }\n\n .instant-apps-export-print .esri-legend--card__service-caption-text {\n padding-bottom: 0;\n }\n\n .instant-apps-export-print__compass-container {\n position: absolute;\n top: 65px;\n left: 15px;\n background: #fff;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n --calcite-ui-icon-color: #000;\n border-radius: 50%;\n height: fit-content;\n }\n\n .instant-apps-export-print__compass-container .esri-compass {\n background: #fff;\n }\n\n .instant-apps-export-print__compass-container .esri-compass__icon.esri-icon-compass {\n color: #000;\n }\n\n .instant-apps-export-print__compass-container.esri-compass.esri-widget--button {\n background: #fff;\n }\n\n .instant-apps-export-print__scale-bar-container {\n width: 100%;\n position: absolute;\n bottom: 15px;\n margin: 0 15px;\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__label {\n color: #323232;\n font-size: 10px;\n padding: 0 4px;\n }\n \n .instant-apps-export-print__scale-bar-container--position .esri-scale-bar__label {\n height: 10px;\n padding: 0 2px;\n line-height: 11px;\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__bar-container:nth-child(1n+3) {\n display: none;\n }\n\n .instant-apps-export-print__scale-bar-container--position .esri-scale-bar__bar-container.esri-scale-bar__bar-container--line {\n align-items: center;\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line {\n background-color: rgba(255, 255, 255, 0.66);\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--top {\n width: var(--instant-apps-scale-bar-top) !important;\n border-bottom: 2px solid #323232;\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--bottom {\n width: var(--instant-apps-scale-bar-bottom) !important;\n border-top: 2px solid #323232;\n }\n\n .instant-apps-export-print__scale-bar-container--position .esri-scale-bar__label-container--line {\n position: unset;\n margin: 0 2px;\n background-color: rgba(255, 255, 255, 0.66);\n height: 10px;\n display: flex;\n align-items: center;\n }\n\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--top:before,\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--top:after,\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--bottom:before,\n .instant-apps-export-print__scale-bar-container .esri-scale-bar__line--bottom:after {\n background-color: #323232;\n border-right: 2px solid #323232;\n }\n\n .instant-apps-export-print__popup-container .esri-feature-media__item-navigation {\n display: none;\n }\n\n .instant-apps-export-print__popup-container .esri-feature-media__chart.esri-feature-media__chart--rendered * {\n width: 100%!important;\n }\n\n .instant-apps-export-print__popup-content .esri-popup__content {\n margin: 0;\n }\n\n .instant-apps-export-print__content-container {\n display: flex;\n gap: 24px;\n break-inside: avoid;\n break-before: auto;\n }',document.body.prepend(this.printStyleEl))}handleImgLoaded(){this.exportIsLoading=!0,setTimeout((()=>{this.exportIsLoading=void 0,this.setupViewPrintElements()}),1500)}handleExtraContent(){const t=this.printEl.querySelector("#export-content");null!=t&&(t.innerHTML="",null!=this.extraContent&&this.includeExtraContent?(t.style.display="block",t.append(this.extraContent.cloneNode(!0))):t.style.display="none")}resetPrintContent(){var t,n;if(null!=this.view){this.screenshot=null,null===(t=this.printContainerEl)||void 0===t||t.prepend(this.printEl),null===(n=this.printStyleEl)||void 0===n||n.remove(),this.printStyleEl=void 0;const i=this.printEl.querySelector("#export-content");i&&(i.innerHTML="")}}async updatePopupToPrint(){var t,n;if(null!=this.view&&(null!=this.popupContainerEl&&(this.popupContainerEl.style.display=this.includePopup&&this.view.popup.visible?"block":"none",this.checkPopupOpen()),this.view.popup.visible&&null!=this.view.popup.selectedFeature)){const i=document.createElement(`h${null!==(t=this.view.popup.headingLevel)&&void 0!==t?t:2}`);i.innerHTML=null!==(n=this.view.popup.title)&&void 0!==n?n:"",i.className="esri-widget__heading esri-popup__header-title",null!=this.popupTitleEl&&(this.popupTitleEl.style.display=this.view.popup.title?"block":"none",this.popupTitleEl.innerHTML="",this.popupTitleEl.prepend(i))}}updateExportOutput(){this.output={},this.showHeaderTitle&&(this.output.headerTitle=this.headerTitle),this.showIncludeLegend&&(this.output.includeLegend=this.includeLegend),this.showIncludeMap&&(this.output.includeMap=this.includeMap),this.showIncludePopup&&(this.output.includePopup=this.includePopup),this.exportOutputUpdated.emit()}setupViewPrintElements(){if(null!=this.view){this.handleLegendSetup();const t=document.title;this.showHeaderTitle&&this.headerTitle&&(document.title=this.headerTitle),window.print(),document.title=t,setTimeout((()=>{this.resetPrintContent()}),1e3)}}handleLegendSetup(){this.showIncludeLegend&&null!=this.view&&this.includeMap&&null!=this.legendContainerEl&&(this.legendContainerEl.style.display=this.includeLegend?"block":"none")}handleWidgetCreation(){this.handleLegendCreation(),this.handleCompassCreation()}handleLegendCreation(){var t,n,i,s;if(this.includeMap&&null!=this.view&&this.showIncludeLegend&&null!=this.legendContainerEl){const e=this.view.map,o=null===(n=null===(t=this.legend)||void 0===t?void 0:t.view)||void 0===n?void 0:n.map;(null===(i=null==e?void 0:e.portalItem)||void 0===i?void 0:i.id)===(null===(s=null==o?void 0:o.portalItem)||void 0===s?void 0:s.id)||this.updateLegend()}}updateLegend(){var t;null===(t=this.view)||void 0===t||t.when((async t=>{var n;if(null===(n=this.legend)||void 0===n||n.destroy(),null!=this.legendContainerEl){this.legendContainerEl.innerHTML="";const[n]=await a(["esri/widgets/Legend"]);this.legend=new n({container:this.legendContainerEl,view:t,style:{type:"card",layout:"side-by-side"}})}}))}handleCompassCreation(){var t,n,i,s;if(this.includeMap&&null!=this.view&&null!=this.compassContainerEl){const e=this.view.map,o=null===(n=null===(t=this.compass)||void 0===t?void 0:t.view)||void 0===n?void 0:n.map;(null===(i=null==e?void 0:e.portalItem)||void 0===i?void 0:i.id)===(null===(s=null==o?void 0:o.portalItem)||void 0===s?void 0:s.id)||this.updateCompass()}}updateCompass(){var t;null===(t=this.view)||void 0===t||t.when((async t=>{var n;null===(n=this.compass)||void 0===n||n.destroy(),this.compass=null;const i=document.createElement("div");this.compassContainerEl.append(i);const[s]=await a(["esri/widgets/Compass"]);this.compass=new s({container:i,view:t})}))}updateScaleBar(){if(this.scaleBarContainerEl&&null!=this.view&&(this.scaleBarContainerEl.innerHTML="",this.showScaleBar)){const t=this.view.ui.getComponents(),n=null==t?void 0:t.find((({container:t})=>{var n;return null===(n=null==t?void 0:t.className)||void 0===n?void 0:n.includes("esri-scale-bar")}));null!=(null==n?void 0:n.container)&&"string"!=typeof n.container&&this.scaleBarContainerEl.append(n.container.cloneNode(!0))}}async viewScreenshot(){var t;if(null!=this.view&&this.includeMap&&(null==this.screenshot&&(null===(t=this.scaleBarContainerEl)||void 0===t||t.classList.toggle("instant-apps-export-print__scale-bar-container--position",this.view.width>1e3),this.screenshot=await this.view.takeScreenshot({width:2*this.view.width,height:2*this.view.height})),this.handleScaleBarSize(),null!=this.viewEl&&null!=this.viewWrapperEl)){const{height:t,width:n}=this.screenshot.data;t>n?this.setMaxRowHeightOnViewContainer():this.setMaxWidthOnViewContainer(),this.viewEl.src=this.screenshot.dataUrl}}setMaxRowHeightOnViewContainer(){this.printEl.style.gridTemplateRows="minmax(auto, 70%)",this.viewEl.style.height="100%",this.viewEl.style.width="",this.viewWrapperEl.style.height="100%",this.viewWrapperEl.style.width="fit-content"}setMaxWidthOnViewContainer(){this.printEl.style.gridTemplateRows="",this.viewEl.style.width="100%",this.viewEl.style.height="",this.viewWrapperEl.style.height="fit-content",this.viewWrapperEl.style.width="100%"}checkPopupOpen(){if(null!=this.view){const t=this.view.popup.container,n=null==t?void 0:t.querySelector(".esri-popup .esri-feature__main-container");if(null!=n){const t=n.querySelectorAll("canvas");this.popupContentEl.innerHTML="",this.popupContentEl.append(n.cloneNode(!0));const i=this.popupContentEl.querySelectorAll("canvas");t.forEach(((t,n)=>{var s;const e=t.toDataURL(),o=document.createElement("img");o.src=e;const a=t.getAttribute("style");a&&o.setAttribute("style",a);const r=i[n];null!=r&&(r.replaceWith(o),document.querySelector("link[href*='esri/themes/dark/main.css']")&&null!=(null===(s=o.parentElement)||void 0===s?void 0:s.parentElement)&&(o.parentElement.style.background="#242424",o.parentElement.parentElement.style.background="#242424"))}))}}}createScreenshot(){var t,n;if(null!=this.view){this.screenshotPreview=document.createElement("div"),this.screenshotPreview.className="screenshot-preview hide",this.screenshotImgContainer=document.createElement("div"),this.screenshotImgContainer.className="screenshot-img-container",this.screenshotImg=document.createElement("img");const i=document.createElement("div"),s=document.createElement("calcite-button"),e=document.createElement("calcite-button");s.innerHTML=null===(t=this.messages)||void 0===t?void 0:t.export,e.innerHTML=null===(n=this.messages)||void 0===n?void 0:n.returnToMap,e.appearance="outline-fill",s.onclick=this.exportOnClick.bind(this),e.onclick=this.screenshotReturn.bind(this),i.append(e,s),this.screenshotImgContainer.append(this.screenshotImg,i),this.screenshotPreview.append(this.screenshotImgContainer),this.view.container.append(this.screenshotPreview)}}createMaskDiv(){null!=this.view&&(this.maskDivEl=document.createElement("div"),this.maskDivEl.id="screenshot-mask",this.maskDivEl.className="hide screenshot-cursor",this.maskDivEl.style.setProperty("--instant-apps-screenshot-mask-background",this.maskBackground),this.maskDivEl.style.setProperty("--instant-apps-screenshot-mask-border",this.maskBorder),this.screenshotStyle=document.createElement("style"),this.screenshotStyle.innerHTML="\n.screenshot-preview.hide, .hide {\n display: none;\n}\n\n.screenshot-cursor {\n cursor: crosshair;\n}\n\n.relative {\n position: relative;\n}\n\n#screenshot-mask {\n position: absolute;\n background: var(--instant-apps-screenshot-mask-background);\n border: var(--instant-apps-screenshot-mask-border);\n}\n\n.screenshot-preview {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.75);\n}\n\n.screenshot-preview * {\n box-sizing: border-box;\n}\n\n.screenshot-img-container img {\n max-height: 75%;\n max-width: 75%;\n object-fit: contain;\n border: 10px solid white;\n box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, 0.5);\n margin-bottom: 0.5em;\n}\n\n.screenshot-img-container {\n height: 100%;\n width: 100%;\n overflow-y: auto;\n margin-bottom: 8px;\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n}\n\n.screenshot-img-container calcite-button {\n margin: 5px;\n}",this.view.container.append(this.screenshotStyle),this.view.container.append(this.maskDivEl))}screenshotReturn(){this.removeScreenshotElements(),this.exportIsLoading=!1,this.screenshot=null}setMapAreaOnClick(){null!=this.view&&(this.exportIsLoading=!0,this.createMaskDiv(),this.createScreenshot(),this.view.container.classList.add("screenshot-cursor","relative"),this.view.addHandles(this.view.on("drag",(async t=>{null!=this.view&&(t.stopPropagation(),"end"!==t.action?this.updateMaskSize(t):this.maskScreenshot())})),w))}updateMaskSize(t){if(null!=this.view){const n=this.clamp(Math.min(t.origin.x,t.x),0,this.view.width),i=this.clamp(Math.max(t.origin.x,t.x),0,this.view.width),s=this.clamp(Math.min(t.origin.y,t.y),0,this.view.height),e=this.clamp(Math.max(t.origin.y,t.y),0,this.view.height);this.area={x:n,y:s,width:i-n,height:e-s},this.setMaskPosition(this.area)}}maskScreenshot(){var t;if(null!=this.view&&null!=this.area){this.view.removeHandles(w);const n=this.area.height,i=this.area.width;this.showScaleBar&&(null===(t=this.scaleBarContainerEl)||void 0===t||t.classList.toggle("instant-apps-export-print__scale-bar-container--position",this.view.width>1e3&&.75*this.view.width<i)),this.view.takeScreenshot({area:this.area,width:2*i,height:2*n,format:"jpg"}).then((t=>{var n;this.screenshot=t,this.showPreview(),null===(n=this.view)||void 0===n||n.container.classList.remove("screenshot-cursor"),this.setMaskPosition(null)}))}}setMaskPosition(t){null!=t?(this.maskDivEl.classList.remove("hide"),this.maskDivEl.style.left=`${t.x}px`,this.maskDivEl.style.top=`${t.y}px`,this.maskDivEl.style.width=`${t.width}px`,this.maskDivEl.style.height=`${t.height}px`):this.maskDivEl.remove()}clamp(t,n,i){return t<n?n:t>i?i:t}showPreview(){this.screenshotPreview.classList.remove("hide"),null!=this.screenshotImg&&null!=this.screenshot&&(this.screenshotImg.src=this.screenshot.dataUrl)}handleScaleBarSize(){var t;if(this.showScaleBar&&"2d"===(null===(t=this.view)||void 0===t?void 0:t.type)&&null!=this.scaleBarContainerEl){const t=this.scaleBarContainerEl.querySelector(".esri-scale-bar__line--top"),n=this.scaleBarContainerEl.querySelector(".esri-scale-bar__line--bottom");this.setScalebarWidth(t,"top"),this.setScalebarWidth(n,"bottom")}}setScalebarWidth(t,n){var i;if(null!=t&&null!=this.screenshot){const s=this.screenshot.data.width/2,e=Number(t.style.width.replace("px",""));null===(i=this.scaleBarContainerEl)||void 0===i||i.style.setProperty(`--instant-apps-scale-bar-${n}`,e/s*100+"%")}}removeScreenshotElements(){var t,n;null===(t=this.screenshotPreview)||void 0===t||t.remove(),null===(n=this.screenshotStyle)||void 0===n||n.remove()}get el(){return e(this)}static get watchers(){return{includeMap:["watchIncludeMap"]}}};k.style=":host{display:block;--instant-apps-export-action-background:var(--calcite-color-foreground-1);--instant-apps-export-action-background-hover:var(--calcite-color-foreground-2);--instant-apps-export-action-background-press:var(--calcite-color-foreground-3);--instant-apps-export-action-height:100%;--instant-apps-export-action-width:fit-content;--instant-apps-export-action-icon-color:var(--calcite-color-text-3);--instant-apps-export-action-icon-hover-color:var(--calcite-color-text-1);--instant-apps-export-background:var(--calcite-color-foreground-1);--instant-apps-export-text-color:var(--calcite-color-text-1);--instant-apps-export-popover-width:250px}.instant-apps-export{height:100%}.instant-apps-export *{box-sizing:border-box}.instant-apps-export__popover-container,.instant-apps-export__inline-container{padding:12px;background:var(--instant-apps-export-background);--calcite-color-text-1:var(--instant-apps-export-text-color)}.instant-apps-export__popover-container{width:var(--instant-apps-export-popover-width)}.instant-apps-export calcite-action{height:var(--instant-apps-export-action-height);width:var(--instant-apps-export-action-width);--calcite-color-foreground-1:var(--instant-apps-export-action-background);--calcite-color-foreground-2:var(--instant-apps-export-action-background-hover);--calcite-color-foreground-3:var(--instant-apps-export-action-background-press);--calcite-color-text-3:var(--instant-apps-export-action-icon-color);--calcite-color-text-1:var(--instant-apps-export-action-icon-hover-color)}.instant-apps-export .instant-apps-export-print{display:none}.instant-apps-export__visually-hidden{position:absolute;top:0;z-index:-1;visibility:hidden}.instant-apps-export calcite-input{--calcite-color-foreground-1:var(--instant-apps-export-background);--calcite-color-text-1:var(--instant-apps-export-text-color)}.instant-apps-export calcite-popover{--calcite-color-foreground-1:var(--instant-apps-export-background)}.instant-apps-export calcite-switch{--calcite-color-foreground-1:#fff;--calcite-color-foreground-2:#f3f3f3}.instant-apps-export calcite-button:last-of-type{margin-top:0.5rem}.instant-apps-export .calcite-mode-dark calcite-switch{--calcite-color-foreground-1:#2b2b2b;--calcite-color-foreground-2:#202020}.instant-apps-export__compass-container.esri-widget{background:#fff;box-shadow:0 1px 2px rgba(0, 0, 0, 0.3)}.instant-apps-export__compass-container.esri-widget .esri-compass__icon.esri-icon-compass{color:#6e6e6e}.hide{display:none}.screenshotCursor{cursor:crosshair}";export{k as instant_apps_export}
@@ -1,6 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import{r as t,c as s,h as i,g as e}from"./p-7d280d8a.js";import{S as n}from"./p-a230b270.js";import{g as o}from"./p-07626c45.js";import"./p-70359c2b.js";import"./p-8ddc7786.js";import"./p-e2d0ad1b.js";import"./p-090e0241.js";function l(t){var s;return!!(null===(s=null===window||void 0===window?void 0:window.localStorage)||void 0===s?void 0:s.getItem(t))}const a=class{constructor(i){var e;t(this,i),this.splashClose=s(this,"splashClose",7),this._sanitizer=null==(e=n)||"function"!=typeof e?null:new e({whiteList:{h1:["style"],h2:["style"],h3:["style"],h4:["style"],h5:["style"],h6:["style"],img:["style","src","width","height"],pre:["style"],p:["id","class","style"],div:["id","class","style","role"],span:["id","class","style","role"],figure:["class","style"]}},!0),this.localStorageKey=void 0,this.titleText="",this.content="",this.primaryButtonText="",this.open=!0,this.closeButtonDisabled=!1,this.messages=void 0}sanitizeContent(){this.content=this._sanitizer.sanitize(this.content)}componentWillLoad(){let t;const{localStorageKey:s}=this;t=s?this.open&&!l(this.localStorageKey):this.open,this.el.open=t,this.content&&this._sanitizer&&this.sanitizeContent()}componentDidLoad(){o(this)}render(){return i("calcite-modal",{onCalciteModalClose:this.close.bind(this),open:this.open,closeButtonDisabled:this.closeButtonDisabled},this.renderHeader(),this.renderContent(),this.localStorageKey?this.renderDontShowThisAgainCheckbox():null,this.renderPrimaryButton())}renderHeader(){const{titleText:t}=this;return i("header",{slot:"header"},t)}renderContent(){const{content:t}=this;return i("div",{slot:"content",innerHTML:t})}renderDontShowThisAgainCheckbox(){const{localStorageKey:t,messages:s}=this,e=!!l(t)||null;return i("div",{class:"instant-apps-splash__back-content",slot:"back"},i("calcite-label",{layout:"inline"},i("calcite-checkbox",{onCalciteCheckboxChange:this.handleDontShowThisAgain.bind(this),checked:null!=e?e:void 0}),null==s?void 0:s.dontShowThisAgain))}renderPrimaryButton(){const{primaryButtonText:t}=this;return i("calcite-button",{onClick:this.close.bind(this),slot:"primary"},t||"Enter")}close(){this.open=!1,this.splashClose.emit()}handleDontShowThisAgain(t){const{localStorageKey:s}=this;if(!s)return;const i=t.target,{checked:e}=i;e?null===window||void 0===window||window.localStorage.setItem(s,"false"):function(t){var s;null===(s=null===window||void 0===window?void 0:window.localStorage)||void 0===s||s.removeItem(t)}(s)}get el(){return e(this)}static get watchers(){return{content:["sanitizeContent"]}}};a.style=":host{display:block}:host .image.image_resized img{width:100%}:host .instant-apps-splash__back-content{display:flex;align-items:center}:host .instant-apps-splash__back-content calcite-label{--calcite-label-margin-bottom:0}";export{a as instant_apps_splash}
@@ -1,6 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import{r as t,c as n,h as a,H as i,g as e}from"./p-7d280d8a.js";import{g as s}from"./p-eeee7c7a.js";var p;!function(t){t.TopLeft="top-left",t.TopCenter="top-center",t.TopRight="top-right",t.CenterLeft="center-left",t.Center="center",t.CenterRight="center-right",t.BottomLeft="bottom-left",t.BottomCenter="bottom-center",t.BottomRight="bottom-right"}(p||(p={}));const g={s:" instant-apps-landing-page__icon-image-scale--s",m:" instant-apps-landing-page__icon-image-scale--m",l:" instant-apps-landing-page__icon-image-scale--l"},l=class{constructor(a){t(this,a),this.landingPageOpen=n(this,"landingPageOpen",7),this.landingPageClose=n(this,"landingPageClose",7),this.titleText=void 0,this.subtitleText=void 0,this.descriptionText=void 0,this.entryButtonText=void 0,this.iconImage=void 0,this.iconImageScale="m",this.iconImageAltText=void 0,this.alignment=p.Center,this.disableTransition=!0,this.backgroundImageSrc=void 0,this.open=!0,this.entryButtonScale="l",this.fontFamily="var(--calcite-sans-family);"}emitToggleEvent(){this.open?this.landingPageOpen.emit():this.landingPageClose.emit()}render(){return a(i,null,this.renderLandingPageContent())}renderLandingPageContent(){const t=this.open?"":this.disableTransition?" instant-apps-landing-page--closed-no-transition":" instant-apps-landing-page--closed",n=this.getAlignmentClass(),i=this.disableTransition?" instant-apps-landing-page__remove-transition":"",e={fontFamily:s(this.fontFamily)};return a("div",{style:this.backgroundImageSrc?Object.assign(Object.assign({},e),{backgroundSize:"cover",backgroundImage:`url("${this.backgroundImageSrc}")`,backgroundRepeat:"no-repeat"}):e,class:`instant-apps-landing-page${n}${t}${i}`},a("div",{class:"instant-apps-landing-page__content-container"},this.renderIconImage(),this.renderTitleText(),this.renderSubtitleText(),this.renderDescriptionText()),a("div",{class:"instant-apps-landing-page__button-container"},this.renderEntryButton(),a("slot",{name:"secondary-action"})))}renderIconImage(){return this.iconImage?a("img",{class:`instant-apps-landing-page__icon-image${this.getIconImageScale()}`,src:this.iconImage,alt:this.iconImageAltText}):null}renderTitleText(){return a("h1",{class:"instant-apps-landing-page__title-text"},this.titleText)}renderSubtitleText(){return a("span",{class:"instant-apps-landing-page__subtitle-text"},this.subtitleText)}renderDescriptionText(){return a("p",{class:"instant-apps-landing-page__description-text"},this.descriptionText)}renderEntryButton(){return a("calcite-button",{class:"instant-apps-landing-page__entry-button",onClick:()=>this.open=!1,scale:this.entryButtonScale,appearance:"outline-fill"},this.entryButtonText?this.entryButtonText:"Enter")}getAlignmentClass(){return` instant-apps-landing-page__alignment--${this.alignment}`}getIconImageScale(){const{iconImageScale:t}=this,{s:n,m:a,l:i}=g;return"l"===t?i:"s"===t?n:a}get el(){return e(this)}static get watchers(){return{open:["emitToggleEvent"]}}};l.style=":host{--instant-apps-landing-page-background-color:var(--calcite-color-brand);--instant-apps-landing-page-text-color:var(--calcite-color-text-inverse);--instant-apps-landing-page-entry-button-color:var(--calcite-color-brand);--instant-apps-landing-page-title-text-font-size:var(--calcite-font-size-6);--instant-apps-landing-page-subtitle-text-font-size:var(--calcite-font-size-3);--instant-apps-landing-page-description-text-font-size:var(--calcite-font-size-0);--instant-apps-landing-page-icon-image-scale--s:100px;--instant-apps-landing-page-icon-image-scale--m:250px;--instant-apps-landing-page-icon-image-scale--l:500px;--instant-apps-landing-page-entry-button-margin:0}:host .instant-apps-landing-page{box-sizing:border-box;position:absolute;top:0;left:0;z-index:9000;display:flex;flex-direction:column;width:100%;height:100%;padding:2.5%;transition:top 0.5s ease-in-out;background-color:var(--instant-apps-landing-page-background-color);color:var(--instant-apps-landing-page-text-color)}:host .instant-apps-landing-page__title-text{color:var(--instant-apps-landing-page-text-color);font-size:var(--instant-apps-landing-page-title-text-font-size);margin:0}:host .instant-apps-landing-page__subtitle-text{font-weight:var(--calcite-font-weight-medium);font-size:var(--instant-apps-landing-page-subtitle-text-font-size);text-align:center}:host .instant-apps-landing-page__description-text{font-size:var(--instant-apps-landing-page-description-text-font-size);width:50%;min-width:250px}:host .instant-apps-landing-page__title-text,:host .instant-apps-landing-page__subtitle-text{text-shadow:0px 4px 3px rgba(0, 0, 0, 0.4), 0px 8px 13px rgba(0, 0, 0, 0.1), 0px 18px 23px rgba(0, 0, 0, 0.1)}:host .instant-apps-landing-page__icon-image{margin-bottom:5px;max-width:50%}:host .instant-apps-landing-page__icon-image-scale--s{width:100px}:host .instant-apps-landing-page__icon-image-scale--m{width:250px}:host .instant-apps-landing-page__icon-image-scale--l{width:500px}:host .instant-apps-landing-page__button-container{display:flex}:host .instant-apps-landing-page__button-container .instant-apps-landing-page__entry-button{margin:var(--instant-apps-landing-page-entry-button-margin)}:host .instant-apps-landing-page__entry-button{--calcite-color-brand:var(--instant-apps-landing-page-entry-button-color);--calcite-color-brand-hover:var(--instant-apps-landing-page-entry-button-color);--calcite-color-brand-press:var(--instant-apps-landing-page-entry-button-color)}:host .instant-apps-landing-page__remove-transition{transition:none}:host .instant-apps-landing-page--closed-no-transition{display:none}:host .instant-apps-landing-page--closed{top:-100%}:host .instant-apps-landing-page__alignment--top-center{justify-content:flex-start;align-items:center}:host .instant-apps-landing-page__alignment--top-center .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:center;justify-content:center}:host .instant-apps-landing-page__alignment--top-center .instant-apps-landing-page__description-text{text-align:center}:host .instant-apps-landing-page__alignment--center{justify-content:center;align-items:center}:host .instant-apps-landing-page__alignment--center .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:center}:host .instant-apps-landing-page__alignment--center .instant-apps-landing-page__description-text{text-align:center}:host .instant-apps-landing-page__alignment--bottom-center{justify-content:flex-end;align-items:center}:host .instant-apps-landing-page__alignment--bottom-center .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:center}:host .instant-apps-landing-page__alignment--bottom-center .instant-apps-landing-page__description-text{text-align:center}:host .instant-apps-landing-page__alignment--top-left{justify-content:flex-start;align-items:flex-start}:host .instant-apps-landing-page__alignment--top-left .instant-apps-landing-page__description-text{text-align:left}:host .instant-apps-landing-page__alignment--center-left{justify-content:center;align-items:flex-start}:host .instant-apps-landing-page__alignment--center-left .instant-apps-landing-page__description-text{text-align:left}:host .instant-apps-landing-page__alignment--bottom-left{justify-content:flex-end;align-items:flex-start}:host .instant-apps-landing-page__alignment--bottom-left .instant-apps-landing-page__description-text{text-align:left}:host .instant-apps-landing-page__alignment--top-right{justify-content:flex-start;align-items:flex-end}:host .instant-apps-landing-page__alignment--top-right .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:flex-end}:host .instant-apps-landing-page__alignment--top-right .instant-apps-landing-page__description-text{text-align:right}:host .instant-apps-landing-page__alignment--center-right{justify-content:center;align-items:flex-end}:host .instant-apps-landing-page__alignment--center-right .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:flex-end}:host .instant-apps-landing-page__alignment--center-right .instant-apps-landing-page__description-text{text-align:right}:host .instant-apps-landing-page__alignment--bottom-right{justify-content:flex-end;align-items:flex-end}:host .instant-apps-landing-page__alignment--bottom-right .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:flex-end}:host .instant-apps-landing-page__alignment--bottom-right .instant-apps-landing-page__description-text{text-align:right}@media only screen and (max-width: 768px){:host .instant-apps-landing-page__icon-image{max-width:70%;margin-bottom:20px}:host .instant-apps-landing-page__description-text{width:80%}:host .instant-apps-landing-page__title-text{font-size:var(--calcite-font-size-3)}:host .instant-apps-landing-page__subtitle-text{font-size:var(--calcite-font-size-0)}:host .instant-apps-landing-page__content-container{display:flex;flex-direction:column;align-items:center;margin-top:auto}:host .instant-apps-landing-page__button-container{display:flex;flex-direction:column;width:100%;margin-top:auto}:host .instant-apps-landing-page__button-container .instant-apps-landing-page__entry-button{width:100%;margin-right:unset;margin-bottom:10px}}@media only screen and (max-width: 896px) and (orientation: landscape){:host .instant-apps-landing-page__icon-image{max-width:25%}}";export{l as instant_apps_landing_page}