@esri/solutions-components 0.8.2 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
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}