@esri/solutions-components 0.8.23 → 0.8.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. package/dist/cjs/arcgis-login.cjs.entry.js +1 -1
  2. package/dist/cjs/basemap-gallery_7.cjs.entry.js +1 -1
  3. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  4. package/dist/cjs/{calcite-avatar.cjs.entry.js → calcite-avatar_2.cjs.entry.js} +62 -0
  5. package/dist/cjs/calcite-block_5.cjs.entry.js +12 -3
  6. package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +419 -0
  7. package/dist/cjs/{calcite-dropdown_4.cjs.entry.js → calcite-dropdown_2.cjs.entry.js} +12 -435
  8. package/dist/cjs/calcite-flow_6.cjs.entry.js +23 -27
  9. package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
  10. package/dist/cjs/crowdsource-manager.cjs.entry.js +1 -1
  11. package/dist/cjs/crowdsource-reporter.cjs.entry.js +56 -36
  12. package/dist/cjs/feature-list.cjs.entry.js +4 -3
  13. package/dist/cjs/{helpers-9347ad83.js → helpers-618a3f7d.js} +2 -1
  14. package/dist/cjs/instant-apps-create.cjs.entry.js +266 -0
  15. package/dist/cjs/instant-apps-export.cjs.entry.js +31 -16
  16. package/dist/cjs/instant-apps-header.cjs.entry.js +3 -2
  17. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +11 -4
  18. package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +1 -1
  19. package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +1 -1
  20. package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +2 -2
  21. package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +1 -1
  22. package/dist/cjs/instant-apps-landing-page.cjs.entry.js +45 -9
  23. package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +1 -1
  24. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +1 -1
  25. package/dist/cjs/instant-apps-sign-in.cjs.entry.js +168 -0
  26. package/dist/cjs/{languageSwitcher-395021d6.js → languageSwitcher-b9a1485c.js} +3 -1
  27. package/dist/cjs/loader.cjs.js +1 -1
  28. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  29. package/dist/cjs/resources-fa37e40f.js +26 -0
  30. package/dist/cjs/solutions-components.cjs.js +1 -1
  31. package/dist/collection/collection-manifest.json +3 -1
  32. package/dist/collection/components/arcgis-login/arcgis-login.js +1 -1
  33. package/dist/collection/components/basemap-gallery/basemap-gallery.js +1 -1
  34. package/dist/collection/components/buffer-tools/buffer-tools.js +1 -1
  35. package/dist/collection/components/card-manager/card-manager.js +1 -1
  36. package/dist/collection/components/create-feature/create-feature.js +1 -1
  37. package/dist/collection/components/create-related-feature/create-related-feature.js +1 -1
  38. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +1 -1
  39. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +56 -45
  40. package/dist/collection/components/feature-details/feature-details.js +56 -13
  41. package/dist/collection/components/feature-list/feature-list.js +22 -3
  42. package/dist/collection/components/layer-list/layer-list.js +6 -13
  43. package/dist/collection/components/public-notification/public-notification.js +3 -3
  44. package/dist/collection/demos/crowdsource-reporter.html +22 -15
  45. package/dist/collection/utils/interfaces.ts +1 -0
  46. package/dist/components/arcgis-login.js +1 -1
  47. package/dist/components/basemap-gallery2.js +1 -1
  48. package/dist/components/buffer-tools2.js +1 -1
  49. package/dist/components/calcite-navigation-user.js +1 -99
  50. package/dist/components/card-manager2.js +1 -1
  51. package/dist/components/create-feature2.js +1 -1
  52. package/dist/components/create-related-feature2.js +1 -1
  53. package/dist/components/crowdsource-manager.js +1 -1
  54. package/dist/components/crowdsource-reporter.js +57 -37
  55. package/dist/components/feature-details2.js +16 -12
  56. package/dist/components/feature-list2.js +5 -3
  57. package/dist/components/helpers.js +3 -2
  58. package/dist/components/instant-apps-ckeditor-wrapper2.js +1 -1
  59. package/dist/components/instant-apps-create.js +317 -0
  60. package/dist/components/instant-apps-export.js +32 -16
  61. package/dist/components/instant-apps-filter-list2.js +6 -1
  62. package/dist/components/instant-apps-header2.js +3 -2
  63. package/dist/components/instant-apps-interactive-legend-classic2.js +12 -5
  64. package/dist/components/instant-apps-interactive-legend-legend-element-caption2.js +2 -2
  65. package/dist/components/instant-apps-landing-page.js +91 -16
  66. package/dist/components/instant-apps-language-translator2.js +3 -1
  67. package/dist/components/instant-apps-sign-in.js +11 -0
  68. package/dist/components/instant-apps-sign-in2.js +243 -0
  69. package/dist/components/instant-apps-social-share2.js +8 -2
  70. package/dist/components/layer-list2.js +6 -13
  71. package/dist/{esm/calcite-navigation-user.entry.js → components/navigation-user.js} +46 -9
  72. package/dist/components/public-notification.js +3 -3
  73. package/dist/esm/arcgis-login.entry.js +1 -1
  74. package/dist/esm/basemap-gallery_7.entry.js +1 -1
  75. package/dist/esm/buffer-tools_3.entry.js +1 -1
  76. package/dist/esm/{calcite-avatar.entry.js → calcite-avatar_2.entry.js} +64 -3
  77. package/dist/esm/calcite-block_5.entry.js +12 -3
  78. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +1 -1
  79. package/dist/esm/calcite-color-picker.entry.js +1 -1
  80. package/dist/esm/calcite-dropdown-group_2.entry.js +414 -0
  81. package/dist/esm/{calcite-dropdown_4.entry.js → calcite-dropdown_2.entry.js} +2 -423
  82. package/dist/esm/calcite-flow_6.entry.js +23 -27
  83. package/dist/esm/card-manager_3.entry.js +1 -1
  84. package/dist/esm/crowdsource-manager.entry.js +1 -1
  85. package/dist/esm/crowdsource-reporter.entry.js +56 -36
  86. package/dist/esm/feature-list.entry.js +4 -3
  87. package/dist/esm/{helpers-a5a81b9d.js → helpers-61b05164.js} +3 -2
  88. package/dist/esm/instant-apps-create.entry.js +262 -0
  89. package/dist/esm/instant-apps-export.entry.js +31 -16
  90. package/dist/esm/instant-apps-header.entry.js +3 -2
  91. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +11 -4
  92. package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +1 -1
  93. package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +1 -1
  94. package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +2 -2
  95. package/dist/esm/instant-apps-interactive-legend.entry.js +1 -1
  96. package/dist/esm/instant-apps-landing-page.entry.js +46 -10
  97. package/dist/esm/instant-apps-language-switcher.entry.js +1 -1
  98. package/dist/esm/instant-apps-language-translator.entry.js +1 -1
  99. package/dist/esm/instant-apps-sign-in.entry.js +164 -0
  100. package/dist/esm/{languageSwitcher-a4a615e4.js → languageSwitcher-d60f03b2.js} +3 -1
  101. package/dist/esm/loader.js +1 -1
  102. package/dist/esm/public-notification.entry.js +3 -3
  103. package/dist/esm/resources-16800cce.js +24 -0
  104. package/dist/esm/solutions-components.js +1 -1
  105. package/dist/esm/{utils-6419e941.js → utils-251cb6de.js} +1 -1
  106. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-create/instant-apps-create.css +150 -0
  107. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-header/instant-apps-header.css +16 -9
  108. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-landing-page/instant-apps-landing-page.css +19 -0
  109. package/dist/node_modules/@esri/instant-apps-components/dist/collection/components/instant-apps-sign-in/instant-apps-sign-in.css +98 -0
  110. package/dist/solutions-components/demos/crowdsource-reporter.html +22 -15
  111. package/dist/solutions-components/p-1251dcc6.entry.js +6 -0
  112. package/dist/solutions-components/{p-88495699.entry.js → p-16730f05.entry.js} +1 -1
  113. package/dist/solutions-components/p-1ae3b886.entry.js +17 -0
  114. package/dist/solutions-components/{p-63460d51.entry.js → p-1ff9eb95.entry.js} +1 -1
  115. package/dist/solutions-components/{p-8f6e0ae5.entry.js → p-26eb1225.entry.js} +1 -1
  116. package/dist/solutions-components/{p-3a2e0188.entry.js → p-2c044250.entry.js} +2 -2
  117. package/dist/solutions-components/p-314dc933.entry.js +6 -0
  118. package/dist/solutions-components/p-50741707.entry.js +6 -0
  119. package/dist/solutions-components/p-614ebce7.js +6 -0
  120. package/dist/solutions-components/{p-df73649e.entry.js → p-77cd573b.entry.js} +1 -1
  121. package/dist/solutions-components/{p-c95dcdf7.entry.js → p-7883b885.entry.js} +3 -3
  122. package/dist/solutions-components/p-79e2e203.entry.js +6 -0
  123. package/dist/solutions-components/{p-968a6fd8.entry.js → p-7b17e929.entry.js} +1 -1
  124. package/dist/solutions-components/p-80b3eb6b.entry.js +6 -0
  125. package/dist/solutions-components/p-84913712.js +6 -0
  126. package/dist/solutions-components/p-8c500fd7.entry.js +6 -0
  127. package/dist/solutions-components/{p-fe9d6d06.js → p-9f56c02c.js} +1 -1
  128. package/dist/solutions-components/{p-667c022f.entry.js → p-af4be4ce.entry.js} +1 -1
  129. package/dist/solutions-components/p-bb2e669d.entry.js +6 -0
  130. package/dist/solutions-components/p-c41997d5.js +11 -0
  131. package/dist/solutions-components/p-c512fcfb.entry.js +6 -0
  132. package/dist/solutions-components/{p-21d6360a.entry.js → p-c7f0e7a8.entry.js} +1 -1
  133. package/dist/solutions-components/{p-64da5bb8.entry.js → p-cbf0dada.entry.js} +3 -3
  134. package/dist/solutions-components/{p-9c7d4343.entry.js → p-cd91c3e7.entry.js} +1 -1
  135. package/dist/solutions-components/p-ceba37d3.entry.js +11 -0
  136. package/dist/solutions-components/{p-09b769b7.entry.js → p-d8a15e32.entry.js} +1 -1
  137. package/dist/solutions-components/p-d8da6406.entry.js +6 -0
  138. package/dist/solutions-components/p-da6b3c8a.entry.js +6 -0
  139. package/dist/solutions-components/{p-60f1055e.entry.js → p-e2400b0d.entry.js} +1 -1
  140. package/dist/solutions-components/p-e78be59a.entry.js +6 -0
  141. package/dist/solutions-components/p-f35cc7ae.entry.js +6 -0
  142. package/dist/solutions-components/solutions-components.esm.js +1 -1
  143. package/dist/solutions-components/utils/interfaces.ts +1 -0
  144. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +18 -7
  145. package/dist/types/components/feature-details/feature-details.d.ts +13 -1
  146. package/dist/types/components/feature-list/feature-list.d.ts +4 -0
  147. package/dist/types/components/layer-list/layer-list.d.ts +1 -1
  148. package/dist/types/components.d.ts +25 -2
  149. package/dist/types/preact.d.ts +7 -2
  150. package/dist/types/utils/interfaces.d.ts +1 -0
  151. package/package.json +2 -2
  152. package/dist/cjs/calcite-navigation-user.cjs.entry.js +0 -73
  153. package/dist/solutions-components/p-08a1e120.js +0 -6
  154. package/dist/solutions-components/p-3283660c.entry.js +0 -6
  155. package/dist/solutions-components/p-33647277.entry.js +0 -6
  156. package/dist/solutions-components/p-3af0764f.entry.js +0 -6
  157. package/dist/solutions-components/p-41d288c0.entry.js +0 -6
  158. package/dist/solutions-components/p-599dcc29.js +0 -6
  159. package/dist/solutions-components/p-64b4b579.entry.js +0 -11
  160. package/dist/solutions-components/p-ab96dd27.entry.js +0 -6
  161. package/dist/solutions-components/p-bb0c7be3.entry.js +0 -17
  162. package/dist/solutions-components/p-bb8e3add.entry.js +0 -11
  163. package/dist/solutions-components/p-c36bb8ca.entry.js +0 -6
  164. package/dist/solutions-components/p-cbe166fc.entry.js +0 -6
  165. package/dist/solutions-components/p-eab95aa4.entry.js +0 -6
  166. package/dist/solutions-components/p-f6a1673c.entry.js +0 -6
@@ -12,7 +12,7 @@ import { d as defineCustomElement$3 } from './button.js';
12
12
  import { d as defineCustomElement$2 } from './icon.js';
13
13
  import { d as defineCustomElement$1 } from './loader.js';
14
14
 
15
- const instantAppsHeaderCss = ":host{--instant-apps-header-height:auto;--instant-apps-header-min-height:50px;--instant-apps-header-title-text-link-decoration:underline;--instant-apps-header-height--logo-scale--s:55px;--instant-apps-header-logo-width--logo-scale--s:35px;--instant-apps-header-logo-height--logo-scale--s:35px;--instant-apps-header-height--logo-scale--m:70px;--instant-apps-header-logo-width--logo-scale--m:50px;--instant-apps-header-logo-height--logo-scale--m:50px;--instant-apps-header-height--logo-scale--l:80px;--instant-apps-header-logo-width--logo-scale--l:60px;--instant-apps-header-logo-height--logo-scale--l:60px;width:100%}:host .image.image_resized img{width:100%}:host .instant-apps-header--standard{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;width:100%;height:var(--instant-apps-header-height);background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);font-family:var(--calcite-sans-family);min-height:var(--instant-apps-header-min-height)}:host .instant-apps-header--standard .instant-apps-header__header-container{display:flex;align-items:center;width:100%;height:inherit}:host .instant-apps-header--standard .instant-apps-header__header-container slot{display:flex;height:inherit}:host .instant-apps-header--standard .instant-apps-header__header-container ::slotted(*){display:flex;min-height:var(--instant-apps-header-min-height);height:var(--instant-apps-header-height)}:host .instant-apps-header--standard .instant-apps-header__header-container ::slotted(*) calcite-button{height:100%}:host .instant-apps-header--standard .instant-apps-header__header-content{box-sizing:border-box;display:flex;align-items:center;width:100%;min-width:0;height:inherit;padding:5px 10px}:host .instant-apps-header--standard .instant-apps-header__header-content a{display:flex;align-items:center;-webkit-text-decoration:var(--instant-apps-header-title-text-link-decoration);text-decoration:var(--instant-apps-header-title-text-link-decoration)}:host .instant-apps-header--standard .instant-apps-header__header-content a img{padding-right:0}:host .instant-apps-header--standard .instant-apps-header__header-content img{margin:10px}:host .instant-apps-header--standard .instant-apps-header__header-content h1{margin:0;font-size:1.25rem;color:var(--calcite-color-text-1);font-weight:430;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .instant-apps-header--standard .instant-apps-header__header-content #infoButton{margin-inline-start:10px}:host .instant-apps-header--standard .instant-apps-header__header-content--center{justify-content:center}:host .instant-apps-header--standard .instant-apps-header__header-content--right{justify-content:end}:host .instant-apps-header__logo-height--s{height:var(--instant-apps-header-height--logo-scale--s)}:host .instant-apps-header__logo-height--s .instant-apps-header__header-content h1{font-size:1.125rem}:host .instant-apps-header__logo-scale--s{width:var(--instant-apps-header-logo-width--logo-scale--s);height:var(--instant-apps-header-logo-height--logo-scale--s)}:host .instant-apps-header__logo-height--m{height:var(--instant-apps-header-height--logo-scale--m)}:host .instant-apps-header__logo-scale--m{width:var(--instant-apps-header-logo-width--logo-scale--m);height:var(--instant-apps-header-logo-height--logo-scale--m)}:host .instant-apps-header__logo-height--l{height:var(--instant-apps-header-height--logo-scale--l)}:host .instant-apps-header__logo-height--l .instant-apps-header__header-content h1{font-size:1.375rem}:host .instant-apps-header__logo-scale--l{width:var(--instant-apps-header-logo-width--logo-scale--l);height:var(--instant-apps-header-logo-height--logo-scale--l)}:host .instant-apps-header__logo-height--s,:host .instant-apps-header__logo-height--m,:host .instant-apps-header__logo-height--l{padding-right:10px}:host .instant-apps-header--rtl.instant-apps-header__logo-height--s,:host .instant-apps-header--rtl.instant-apps-header__logo-height--m,:host .instant-apps-header--rtl.instant-apps-header__logo-height--l{padding-right:0;padding-left:10px}";
15
+ const instantAppsHeaderCss = ":host{--instant-apps-header-height:auto;--instant-apps-header-min-height:50px;--instant-apps-header-title-text-link-decoration:underline;--instant-apps-header-height--logo-scale--s:55px;--instant-apps-header-logo-width--logo-scale--s:35px;--instant-apps-header-logo-height--logo-scale--s:35px;--instant-apps-header-height--logo-scale--m:70px;--instant-apps-header-logo-width--logo-scale--m:50px;--instant-apps-header-logo-height--logo-scale--m:50px;--instant-apps-header-height--logo-scale--l:80px;--instant-apps-header-logo-width--logo-scale--l:60px;--instant-apps-header-logo-height--logo-scale--l:60px;width:100%}:host .image.image_resized img{width:100%}:host .instant-apps-header--standard{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;width:100%;height:var(--instant-apps-header-height);background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);font-family:var(--calcite-sans-family);min-height:var(--instant-apps-header-min-height)}:host .instant-apps-header--standard .instant-apps-header__header-container{display:flex;align-items:center;width:100%;height:inherit}:host .instant-apps-header--standard .instant-apps-header__header-container slot{display:flex;height:inherit}:host .instant-apps-header--standard .instant-apps-header__header-container ::slotted(*){display:flex;min-height:var(--instant-apps-header-min-height);height:var(--instant-apps-header-height)}:host .instant-apps-header--standard .instant-apps-header__header-container ::slotted(*) calcite-button{height:100%}:host .instant-apps-header--standard .instant-apps-header__header-content{box-sizing:border-box;display:flex;align-items:center;width:100%;min-width:0;height:inherit;padding:5px 10px}:host .instant-apps-header--standard .instant-apps-header__header-content a{display:flex;align-items:center;-webkit-text-decoration:var(--instant-apps-header-title-text-link-decoration);text-decoration:var(--instant-apps-header-title-text-link-decoration)}:host .instant-apps-header--standard .instant-apps-header__header-content a img{padding-right:0}:host .instant-apps-header--standard .instant-apps-header__header-content img{margin:10px}:host .instant-apps-header--standard .instant-apps-header__header-content h1{margin:0;font-size:1.25rem;color:var(--calcite-color-text-1);font-weight:430;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .instant-apps-header--standard .instant-apps-header__header-content #infoButton{margin-inline-start:10px}:host .instant-apps-header--standard .instant-apps-header__header-content--center{justify-content:center}:host .instant-apps-header--standard .instant-apps-header__header-content--right{justify-content:end}:host .instant-apps-header__logo-height--s{height:var(--instant-apps-header-height--logo-scale--s)}:host .instant-apps-header__logo-height--s .instant-apps-header__header-content h1{font-size:1.125rem}:host .instant-apps-header__logo-scale--s{width:var(--instant-apps-header-logo-width--logo-scale--s);height:var(--instant-apps-header-logo-height--logo-scale--s)}:host .instant-apps-header__logo-height--m{height:var(--instant-apps-header-height--logo-scale--m)}:host .instant-apps-header__logo-scale--m{width:var(--instant-apps-header-logo-width--logo-scale--m);height:var(--instant-apps-header-logo-height--logo-scale--m)}:host .instant-apps-header__logo-height--l{height:var(--instant-apps-header-height--logo-scale--l)}:host .instant-apps-header__logo-height--l .instant-apps-header__header-content h1{font-size:1.375rem}:host .instant-apps-header__logo-scale--l{width:var(--instant-apps-header-logo-width--logo-scale--l);height:var(--instant-apps-header-logo-height--logo-scale--l)}:host .instant-apps-header__actions-end-container{display:flex}:host .instant-apps-header__sign-in-container{height:inherit;display:flex;align-items:center}:host .instant-apps-header__sign-in-container calcite-dropdown,:host .instant-apps-header__sign-in-container calcite-navigation-user{height:100%}:host .instant-apps-header__sign-in-container calcite-button{margin:0 10px}:host .instant-apps-header__sign-in-container calcite-dropdown-group{min-width:140px}";
16
16
  const InstantAppsHeaderStyle0 = instantAppsHeaderCss;
17
17
 
18
18
  const CSS = {
@@ -23,6 +23,7 @@ const CSS = {
23
23
  logoScale: 'instant-apps-header__logo-scale--',
24
24
  logoHeight: 'instant-apps-header__logo-height--',
25
25
  standardHeight: 'instant-apps-header__standard-height',
26
+ actionsEndContainer: 'instant-apps-header__actions-end-container',
26
27
  alignment: {
27
28
  center: 'instant-apps-header__header-content--center',
28
29
  right: 'instant-apps-header__header-content--right',
@@ -86,7 +87,7 @@ const InstantAppsHeader = /*@__PURE__*/ proxyCustomElement(class InstantAppsHead
86
87
  const title = this.renderTitle();
87
88
  const headerContentClass = this.headerAlignment === 'right' || this.headerAlignment === 'center' ? CSS.headerContent.concat(' ', CSS.alignment[this.headerAlignment]) : CSS.headerContent;
88
89
  const fontFamily = getFontFamily(this.fontFamily);
89
- return (h(Host, null, this.customHeaderHtml ? ([h("style", null, this.customHeaderCss), h("div", { id: "customHeader", innerHTML: this.customHeaderHtml })]) : (h("header", { class: `${CSS.base}${this.dir === 'rtl' ? ` ${CSS.flipRtl}` : ''}${this.logoImage && !hasEmptyLogo ? ` ${CSS.logoHeight}${this.logoScale}` : ` ${CSS.standardHeight}`}`, style: { backgroundColor: this.backgroundColor, fontFamily } }, h("div", { class: CSS.headerContainer }, h("span", { class: headerContentClass }, logo, title, this.infoButton ? (h("calcite-button", { style: { '--calcite-color-text-1': this.textColor }, id: "infoButton", alignment: "start", appearance: "transparent", kind: "neutral", "icon-start": "information-f", scale: "s", label: this.infoTitleText, title: this.infoTitleText, onClick: this.toggleInfo.bind(this) })) : null), h("slot", { name: "actions-end" }))))));
90
+ return (h(Host, null, this.customHeaderHtml ? ([h("style", null, this.customHeaderCss), h("div", { id: "customHeader", innerHTML: this.customHeaderHtml })]) : (h("header", { class: `${CSS.base}${this.dir === 'rtl' ? ` ${CSS.flipRtl}` : ''}${this.logoImage && !hasEmptyLogo ? ` ${CSS.logoHeight}${this.logoScale}` : ` ${CSS.standardHeight}`}`, style: { backgroundColor: this.backgroundColor, fontFamily } }, h("div", { class: CSS.headerContainer }, h("span", { class: headerContentClass }, logo, title, this.infoButton ? (h("calcite-button", { style: { '--calcite-color-text-1': this.textColor }, id: "infoButton", alignment: "start", appearance: "transparent", kind: "neutral", "icon-start": "information-f", scale: "s", label: this.infoTitleText, title: this.infoTitleText, onClick: this.toggleInfo.bind(this) })) : null), h("div", { class: CSS.actionsEndContainer }, h("slot", { name: "actions-end" })))))));
90
91
  }
91
92
  renderLogo(hasEmptyLogo) {
92
93
  return hasEmptyLogo ? ('') : this.logoImage && this.logoLink ? (h("a", { href: `${this.logoLink}`, target: "_blank" }, h("img", { class: `${CSS.logoScale}${this.logoScale}`, src: `${this.logoImage}`, alt: `${this.logoImageAltText}` }))) : this.logoImage ? (h("img", { class: `${CSS.logoScale}${this.logoScale}`, src: `${this.logoImage}`, alt: this.logoImageAltText })) : ('');
@@ -4,10 +4,10 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { h, proxyCustomElement, HTMLElement, forceUpdate } from '@stencil/core/internal/client';
7
- import { s as store, i as interactiveLegendState } from './store.js';
7
+ import { i as interactiveLegendState, s as store } from './store.js';
8
8
  import { c as commonjsGlobal } from './esri-loader.js';
9
9
  import { l as loadModules } from './loadModules2.js';
10
- import { h as handleFilterChange, a as generateData, g as getTheme, v as validateInteractivity, b as getParentLegendElementInfoData, c as getCategoryData, d as checkNoneSelected, e as handleFeatureCount, f as createInteractiveLegendDataForLayer, u as updateStore, i as handleFilter, j as getIntLegendLayerData } from './helpers.js';
10
+ import { h as handleFilterChange, g as getTheme, v as validateInteractivity, a as getParentLegendElementInfoData, b as getCategoryData, c as checkNoneSelected, d as handleFeatureCount, e as generateData, f as createInteractiveLegendDataForLayer, u as updateStore, i as handleFilter, j as getIntLegendLayerData } from './helpers.js';
11
11
  import { d as defineCustomElement$c } from './action.js';
12
12
  import { d as defineCustomElement$b } from './button.js';
13
13
  import { d as defineCustomElement$a } from './icon.js';
@@ -1199,7 +1199,7 @@ const InstantAppsInteractiveLegendClassic = /*@__PURE__*/ proxyCustomElement(cla
1199
1199
  async initLegend() {
1200
1200
  try {
1201
1201
  await this.reactiveUtils.whenOnce(() => { var _a; return (_a = this.legendvm) === null || _a === void 0 ? void 0 : _a.view; });
1202
- this.legendvm.view.when(async () => {
1202
+ const initLegendCallback = async () => {
1203
1203
  var _a, _b, _c, _d;
1204
1204
  try {
1205
1205
  // Initial data setup
@@ -1232,7 +1232,9 @@ const InstantAppsInteractiveLegendClassic = /*@__PURE__*/ proxyCustomElement(cla
1232
1232
  console.error(err);
1233
1233
  this.isLoading = false;
1234
1234
  }
1235
- });
1235
+ };
1236
+ this.legendvm.view.when(initLegendCallback);
1237
+ this.legendvm.view.map.layers.on('after-changes', initLegendCallback);
1236
1238
  }
1237
1239
  catch (_a) {
1238
1240
  this.isLoading = false;
@@ -1531,7 +1533,7 @@ const InstantAppsInteractiveLegendClassic = /*@__PURE__*/ proxyCustomElement(cla
1531
1533
  }
1532
1534
  setupWatchersAndListeners() {
1533
1535
  // Refreshes interactive legend data on active layer info update
1534
- var _a, _b, _c, _d, _e, _f;
1536
+ var _a, _b, _c, _d, _e, _f, _g;
1535
1537
  const featureLayers = (_d = (_c = (_b = (_a = this.legendvm) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.map) === null || _c === void 0 ? void 0 : _c.allLayers) === null || _d === void 0 ? void 0 : _d.filter(layer => (layer === null || layer === void 0 ? void 0 : layer.type) === 'feature');
1536
1538
  featureLayers.forEach(async (fLayer) => {
1537
1539
  var _a, _b, _c, _d;
@@ -1577,6 +1579,11 @@ const InstantAppsInteractiveLegendClassic = /*@__PURE__*/ proxyCustomElement(cla
1577
1579
  forceUpdate(this.el);
1578
1580
  }));
1579
1581
  }));
1582
+ (_g = this.handles) === null || _g === void 0 ? void 0 : _g.add(this.reactiveUtils.on(() => { var _a, _b, _c; return (_c = (_b = (_a = this.legendvm) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.map) === null || _c === void 0 ? void 0 : _c.layers; }, 'after-changes', async () => {
1583
+ const data = await handleFeatureCount(this.legendvm, interactiveLegendState.data);
1584
+ store.set('data', Object.assign(Object.assign({}, interactiveLegendState.data), data));
1585
+ this.calculatingFeatureCount = false;
1586
+ }));
1580
1587
  }
1581
1588
  async createDataForLayer(fLayer) {
1582
1589
  var _a, _b;
@@ -4,7 +4,7 @@
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
7
- import { q as checkNestedUniqueSymbolLegendElement, n as checkRelationshipRamp, b as getParentLegendElementInfoData, z as zoomTo, j as getIntLegendLayerData, s as showAllNestedUniqueSymbol, u as updateStore, r as showAll } from './helpers.js';
7
+ import { q as checkNestedUniqueSymbolLegendElement, n as checkRelationshipRamp, a as getParentLegendElementInfoData, z as zoomTo, j as getIntLegendLayerData, s as showAllNestedUniqueSymbol, u as updateStore, r as showAll } from './helpers.js';
8
8
  import { i as interactiveLegendState, s as store } from './store.js';
9
9
  import { d as defineCustomElement$5 } from './action.js';
10
10
  import { d as defineCustomElement$4 } from './button.js';
@@ -43,7 +43,7 @@ const InstantAppsInteractiveLegendLegendElementCaption = /*@__PURE__*/ proxyCust
43
43
  const isNestedUniqueSymbols = checkNestedUniqueSymbolLegendElement(this.activeLayerInfo);
44
44
  const isRelationship = checkRelationshipRamp(this.activeLayerInfo);
45
45
  const { expanded } = this;
46
- return isNestedUniqueSymbols && !this.titleText ? null : (h("div", { class: CSS.layerCaption }, h("calcite-action", { onClick: this.toggleExpanded(), icon: expanded === false ? 'chevron-up' : 'chevron-down', appearance: "transparent", text: expanded === false ? (_a = this.messages) === null || _a === void 0 ? void 0 : _a.expand : (_b = this.messages) === null || _b === void 0 ? void 0 : _b.collapse, label: expanded === false ? (_c = this.messages) === null || _c === void 0 ? void 0 : _c.expand : (_d = this.messages) === null || _d === void 0 ? void 0 : _d.collapse, scale: "s" }), this.isInteractive || isRelationship ? this.renderLegendElementCaptionControls() : null, this.titleText ? h("span", { class: CSS.layerCaptionText }, this.titleText) : null));
46
+ return isNestedUniqueSymbols && !this.titleText ? null : (h("div", { class: CSS.layerCaption }, h("calcite-action", { onClick: this.toggleExpanded(), icon: expanded === false ? 'chevron-up' : 'chevron-down', appearance: "transparent", text: expanded === false ? (_a = this.messages) === null || _a === void 0 ? void 0 : _a.expand : (_b = this.messages) === null || _b === void 0 ? void 0 : _b.collapse, label: expanded === false ? (_c = this.messages) === null || _c === void 0 ? void 0 : _c.expand : (_d = this.messages) === null || _d === void 0 ? void 0 : _d.collapse, scale: "s" }), this.isInteractive || isRelationship ? this.renderLegendElementCaptionControls() : null, this.titleText ? h("span", { class: CSS.layerCaptionText, title: this.titleText }, this.titleText) : null));
47
47
  }
48
48
  renderLegendElementCaptionControls() {
49
49
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
@@ -5,9 +5,15 @@
5
5
  */
6
6
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
7
  import { g as getFontFamily } from './styles.js';
8
- import { d as defineCustomElement$4 } from './button.js';
9
- import { d as defineCustomElement$3 } from './icon.js';
10
- import { d as defineCustomElement$2 } from './loader.js';
8
+ import { d as defineCustomElement$a } from './avatar.js';
9
+ import { d as defineCustomElement$9 } from './button.js';
10
+ import { d as defineCustomElement$8 } from './dropdown.js';
11
+ import { d as defineCustomElement$7 } from './dropdown-group.js';
12
+ import { d as defineCustomElement$6 } from './dropdown-item.js';
13
+ import { d as defineCustomElement$5 } from './icon.js';
14
+ import { d as defineCustomElement$4 } from './loader.js';
15
+ import { d as defineCustomElement$3 } from './navigation-user.js';
16
+ import { d as defineCustomElement$2 } from './instant-apps-sign-in2.js';
11
17
 
12
18
  var AlignmentPositions;
13
19
  (function (AlignmentPositions) {
@@ -22,7 +28,7 @@ var AlignmentPositions;
22
28
  AlignmentPositions["BottomRight"] = "bottom-right";
23
29
  })(AlignmentPositions || (AlignmentPositions = {}));
24
30
 
25
- const instantAppsLandingPageCss = ":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%}}";
31
+ const instantAppsLandingPageCss = ":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 instant-apps-sign-in{height:100%;width:100%;display:flex;align-items:center;justify-content:center}:host .instant-apps-landing-page__remove-transition{transition:none}:host .instant-apps-landing-page__remove-padding{padding:0}: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}.instant-apps-landing-page__sign-in{width:100%;height:100%}.instant-apps-landing-page__sign-in--overlay{background:rgba(0, 0, 0, 0.6)}@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%}}";
26
32
  const InstantAppsLandingPageStyle0 = instantAppsLandingPageCss;
27
33
 
28
34
  const CSS = {
@@ -34,10 +40,13 @@ const CSS = {
34
40
  closedNoTransition: 'instant-apps-landing-page--closed-no-transition',
35
41
  iconImage: 'instant-apps-landing-page__icon-image',
36
42
  removeTransition: 'instant-apps-landing-page__remove-transition',
43
+ removePadding: 'instant-apps-landing-page__remove-padding',
37
44
  alignment: 'instant-apps-landing-page__alignment--',
38
45
  entryButton: 'instant-apps-landing-page__entry-button',
39
46
  contentContainer: 'instant-apps-landing-page__content-container',
40
47
  buttonContainer: 'instant-apps-landing-page__button-container',
48
+ signIn: 'instant-apps-landing-page__sign-in',
49
+ signInOverlay: 'instant-apps-landing-page__sign-in--overlay',
41
50
  iconImageScale: {
42
51
  s: ' instant-apps-landing-page__icon-image-scale--s',
43
52
  m: ' instant-apps-landing-page__icon-image-scale--m',
@@ -64,6 +73,9 @@ const InstantAppsLandingPage$1 = /*@__PURE__*/ proxyCustomElement(class InstantA
64
73
  this.open = true;
65
74
  this.entryButtonScale = 'l';
66
75
  this.fontFamily = 'var(--calcite-sans-family);';
76
+ this.enableSignIn = undefined;
77
+ this.portal = undefined;
78
+ this.oauthappid = undefined;
67
79
  }
68
80
  emitToggleEvent() {
69
81
  if (this.open) {
@@ -73,19 +85,34 @@ const InstantAppsLandingPage$1 = /*@__PURE__*/ proxyCustomElement(class InstantA
73
85
  this.landingPageClose.emit();
74
86
  }
75
87
  }
88
+ componentWillLoad() {
89
+ if (this.enableSignIn) {
90
+ const signInTime = localStorage.getItem('signing-in') ? new Date(Number(localStorage.getItem('signing-in'))) : null;
91
+ if (signInTime != null) {
92
+ const minuteLimit = 2;
93
+ if ((Date.now() - signInTime.getTime()) / (60 * 1000) < minuteLimit) {
94
+ this.open = false;
95
+ }
96
+ localStorage.removeItem('signing-in');
97
+ }
98
+ }
99
+ }
76
100
  render() {
77
- return h(Host, null, this.renderLandingPageContent());
101
+ const content = this.enableSignIn ? this.renderLandingPageSignIn() : this.renderLandingPageContent();
102
+ return h(Host, null, content);
78
103
  }
79
104
  renderLandingPageContent() {
80
105
  const closed = !this.open ? (this.disableTransition ? ` ${CSS.closedNoTransition}` : ` ${CSS.closed}`) : '';
81
106
  const alignmentClass = this.getAlignmentClass();
82
107
  const removeTransition = this.disableTransition ? ` ${CSS.removeTransition}` : '';
83
- const fontFamily = getFontFamily(this.fontFamily);
84
- const style = {
85
- fontFamily,
86
- };
87
- return (h("div", { style: this.backgroundImageSrc
88
- ? Object.assign(Object.assign({}, style), { backgroundSize: 'cover', backgroundImage: `url("${this.backgroundImageSrc}")`, backgroundRepeat: 'no-repeat', backgroundPosition: 'center' }) : style, class: `${CSS.BASE}${alignmentClass}${closed}${removeTransition}` }, h("div", { class: CSS.contentContainer }, this.renderIconImage(), this.renderTitleText(), this.renderSubtitleText(), this.renderDescriptionText()), h("div", { class: CSS.buttonContainer }, this.renderEntryButton(), h("slot", { name: "secondary-action" }))));
108
+ const style = this.getContentStyle();
109
+ return (h("div", { style: style, class: `${CSS.BASE}${alignmentClass}${closed}${removeTransition}` }, h("div", { class: CSS.contentContainer }, this.renderIconImage(), this.renderTitleText(), this.renderSubtitleText(), this.renderDescriptionText()), h("div", { class: CSS.buttonContainer }, this.renderEntryButton(), h("slot", { name: "secondary-action" }))));
110
+ }
111
+ renderLandingPageSignIn() {
112
+ const closed = !this.open ? (this.disableTransition ? ` ${CSS.closedNoTransition}` : ` ${CSS.closed}`) : '';
113
+ const style = this.getContentStyle();
114
+ const signInClass = this.backgroundImageSrc ? `${CSS.signIn} ${CSS.signInOverlay}` : CSS.signIn;
115
+ return (h("div", { style: style, class: `${CSS.BASE}${closed} ${CSS.removePadding}` }, h("div", { class: signInClass }, h("instant-apps-sign-in", { type: "landingPage", landingPage: true, portal: this.portal, oauthappid: this.oauthappid, titleText: this.titleText, subtitleText: this.subtitleText, descriptionText: this.descriptionText, closeLandingPage: this.closeLandingPage.bind(this) }))));
89
116
  }
90
117
  renderIconImage() {
91
118
  return this.iconImage ? h("img", { class: `${CSS.iconImage}${this.getIconImageScale()}`, src: this.iconImage, alt: this.iconImageAltText }) : null;
@@ -100,7 +127,10 @@ const InstantAppsLandingPage$1 = /*@__PURE__*/ proxyCustomElement(class InstantA
100
127
  return h("p", { class: CSS.descriptionText }, this.descriptionText);
101
128
  }
102
129
  renderEntryButton() {
103
- return (h("calcite-button", { class: CSS.entryButton, onClick: () => (this.open = false), scale: this.entryButtonScale, appearance: "outline-fill" }, this.entryButtonText ? this.entryButtonText : 'Enter'));
130
+ return (h("calcite-button", { class: CSS.entryButton, onClick: this.closeLandingPage.bind(this), scale: this.entryButtonScale, appearance: "outline-fill" }, this.entryButtonText ? this.entryButtonText : 'Enter'));
131
+ }
132
+ closeLandingPage() {
133
+ this.open = false;
104
134
  }
105
135
  getAlignmentClass() {
106
136
  return ` ${CSS.alignment}${this.alignment}`;
@@ -110,6 +140,18 @@ const InstantAppsLandingPage$1 = /*@__PURE__*/ proxyCustomElement(class InstantA
110
140
  const { s, m, l } = CSS.iconImageScale;
111
141
  return iconImageScale === 'l' ? l : iconImageScale === 's' ? s : m;
112
142
  }
143
+ getContentStyle() {
144
+ const fontFamily = getFontFamily(this.fontFamily);
145
+ return this.backgroundImageSrc
146
+ ? {
147
+ fontFamily,
148
+ backgroundSize: 'cover',
149
+ backgroundImage: `url("${this.backgroundImageSrc}")`,
150
+ backgroundRepeat: 'no-repeat',
151
+ backgroundPosition: 'center',
152
+ }
153
+ : { fontFamily };
154
+ }
113
155
  get el() { return this; }
114
156
  static get watchers() { return {
115
157
  "open": ["emitToggleEvent"]
@@ -128,7 +170,10 @@ const InstantAppsLandingPage$1 = /*@__PURE__*/ proxyCustomElement(class InstantA
128
170
  "backgroundImageSrc": [1, "background-image-src"],
129
171
  "open": [1028],
130
172
  "entryButtonScale": [1, "entry-button-scale"],
131
- "fontFamily": [513, "font-family"]
173
+ "fontFamily": [513, "font-family"],
174
+ "enableSignIn": [4, "enable-sign-in"],
175
+ "portal": [16],
176
+ "oauthappid": [1]
132
177
  }, undefined, {
133
178
  "open": ["emitToggleEvent"]
134
179
  }]);
@@ -136,24 +181,54 @@ function defineCustomElement$1() {
136
181
  if (typeof customElements === "undefined") {
137
182
  return;
138
183
  }
139
- const components = ["instant-apps-landing-page", "calcite-button", "calcite-icon", "calcite-loader"];
184
+ const components = ["instant-apps-landing-page", "calcite-avatar", "calcite-button", "calcite-dropdown", "calcite-dropdown-group", "calcite-dropdown-item", "calcite-icon", "calcite-loader", "calcite-navigation-user", "instant-apps-sign-in"];
140
185
  components.forEach(tagName => { switch (tagName) {
141
186
  case "instant-apps-landing-page":
142
187
  if (!customElements.get(tagName)) {
143
188
  customElements.define(tagName, InstantAppsLandingPage$1);
144
189
  }
145
190
  break;
191
+ case "calcite-avatar":
192
+ if (!customElements.get(tagName)) {
193
+ defineCustomElement$a();
194
+ }
195
+ break;
146
196
  case "calcite-button":
147
197
  if (!customElements.get(tagName)) {
148
- defineCustomElement$4();
198
+ defineCustomElement$9();
199
+ }
200
+ break;
201
+ case "calcite-dropdown":
202
+ if (!customElements.get(tagName)) {
203
+ defineCustomElement$8();
204
+ }
205
+ break;
206
+ case "calcite-dropdown-group":
207
+ if (!customElements.get(tagName)) {
208
+ defineCustomElement$7();
209
+ }
210
+ break;
211
+ case "calcite-dropdown-item":
212
+ if (!customElements.get(tagName)) {
213
+ defineCustomElement$6();
149
214
  }
150
215
  break;
151
216
  case "calcite-icon":
152
217
  if (!customElements.get(tagName)) {
153
- defineCustomElement$3();
218
+ defineCustomElement$5();
154
219
  }
155
220
  break;
156
221
  case "calcite-loader":
222
+ if (!customElements.get(tagName)) {
223
+ defineCustomElement$4();
224
+ }
225
+ break;
226
+ case "calcite-navigation-user":
227
+ if (!customElements.get(tagName)) {
228
+ defineCustomElement$3();
229
+ }
230
+ break;
231
+ case "instant-apps-sign-in":
157
232
  if (!customElements.get(tagName)) {
158
233
  defineCustomElement$2();
159
234
  }
@@ -45,7 +45,9 @@ async function getPortalItemResource(portalItem) {
45
45
  if (!portalItem)
46
46
  return null;
47
47
  const [PortalItemResource] = await loadModules(['esri/portal/PortalItemResource']);
48
- const existingResourcesRes = await portalItem.fetchResources();
48
+ const existingResourcesRes = await portalItem.fetchResources({
49
+ num: 100,
50
+ });
49
51
  const path = `t9n/${portalItem === null || portalItem === void 0 ? void 0 : portalItem.id}.json`;
50
52
  const resource = new PortalItemResource({ path, portalItem });
51
53
  const existingResourceArr = existingResourcesRes.resources.filter(resourceItem => resourceItem.resource.path === path);
@@ -0,0 +1,11 @@
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 { I as InstantAppsSignIn$1, d as defineCustomElement$1 } from './instant-apps-sign-in2.js';
7
+
8
+ const InstantAppsSignIn = InstantAppsSignIn$1;
9
+ const defineCustomElement = defineCustomElement$1;
10
+
11
+ export { InstantAppsSignIn, defineCustomElement };
@@ -0,0 +1,243 @@
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 { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
7
+ import { l as loadModules } from './loadModules2.js';
8
+ import { g as getMessages } from './locale3.js';
9
+ import { d as defineCustomElement$8 } from './avatar.js';
10
+ import { d as defineCustomElement$7 } from './button.js';
11
+ import { d as defineCustomElement$6 } from './dropdown.js';
12
+ import { d as defineCustomElement$5 } from './dropdown-group.js';
13
+ import { d as defineCustomElement$4 } from './dropdown-item.js';
14
+ import { d as defineCustomElement$3 } from './icon.js';
15
+ import { d as defineCustomElement$2 } from './loader.js';
16
+ import { d as defineCustomElement$1 } from './navigation-user.js';
17
+
18
+ const instantAppsSignInCss = ":host{display:block;box-shadow:none !important}:host .instant-apps-sign-in__container{height:inherit;display:flex;align-items:center}:host .instant-apps-sign-in__container calcite-dropdown,:host .instant-apps-sign-in__container calcite-navigation-user{height:100%}:host .instant-apps-sign-in__container .instant-apps-sign-in__sign-in-btn{margin:10px}:host .instant-apps-sign-in__container calcite-dropdown[scale=m] calcite-dropdown-group{min-width:140px}:host .instant-apps-sign-in__container calcite-dropdown[scale=s] calcite-dropdown-group{min-width:100px}:host .instant-apps-sign-in__container calcite-dropdown-item{--calcite-color-text-1:#d83020;--calcite-color-text-3:#d83020}:host .instant-apps-sign-in__container button{height:32px;width:32px;padding:0;box-sizing:border-box;display:flex;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration-line:none;text-decoration-line:none;transition:color var(--calcite-animation-timing) ease-in-out, background-color var(--calcite-animation-timing) ease-in-out, box-shadow var(--calcite-animation-timing) ease-in-out, outline-color var(--calcite-internal-animation-timing-fast) ease-in-out;border:none;border-radius:50%;background:#000}:host .instant-apps-sign-in__container button:hover calcite-avatar{opacity:0.7;transition:0.3s}:host .instant-apps-sign-in__landing-page{display:flex;flex-direction:column;justify-content:center;padding:40px;width:50%;min-height:30%;background:rgba(255, 255, 255, 0.8);color:#151515;text-align:center}:host .instant-apps-sign-in__landing-page h1{font-size:22px;margin:10px 0}:host .instant-apps-sign-in__landing-page h2{font-size:16px;margin:0 0 10px}:host .instant-apps-sign-in__landing-page p{font-size:16px;margin:0}:host .instant-apps-sign-in__landing-page-btns{display:flex;justify-content:space-between;margin-top:40px}:host .instant-apps-sign-in__landing-page-btns calcite-button{width:calc(50% - 5px);--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-sign-in__landing-page-btns calcite-button:hover{filter:contrast(0.8)}@media screen and (max-width: 767px){:host .instant-apps-sign-in__landing-page-btns{flex-direction:column;width:100%;align-items:center;height:76px}:host .instant-apps-sign-in__landing-page-btns calcite-button{width:100%}}";
19
+ const InstantAppsSignInStyle0 = instantAppsSignInCss;
20
+
21
+ const CSS = {
22
+ base: 'instant-apps-sign-in__container',
23
+ landing: 'instant-apps-sign-in__landing-page',
24
+ landingBtn: 'instant-apps-sign-in__landing-page-btns',
25
+ SignInBtn: 'instant-apps-sign-in__sign-in-btn',
26
+ };
27
+ const InstantAppsSignIn = /*@__PURE__*/ proxyCustomElement(class InstantAppsSignIn extends HTMLElement {
28
+ constructor() {
29
+ super();
30
+ this.__registerHost();
31
+ this.__attachShadow();
32
+ this.type = 'navigation';
33
+ this.portal = undefined;
34
+ this.oauthappid = undefined;
35
+ this.openInPopup = undefined;
36
+ this.landingPage = undefined;
37
+ this.isSignedIn = undefined;
38
+ this.user = undefined;
39
+ this.titleText = undefined;
40
+ this.subtitleText = undefined;
41
+ this.descriptionText = undefined;
42
+ this.closeLandingPage = undefined;
43
+ this.ready = false;
44
+ this.messages = undefined;
45
+ }
46
+ async watchPortal() {
47
+ await this.initSignIn();
48
+ }
49
+ async watchOauthappid() {
50
+ await this.initSignIn();
51
+ }
52
+ async componentWillLoad() {
53
+ getMessages(this);
54
+ await this.initSignIn();
55
+ }
56
+ render() {
57
+ const signIn = this.ready ? this.renderContent() : null;
58
+ return h(Host, null, signIn);
59
+ }
60
+ renderContent() {
61
+ return this.type === 'landingPage' ? this.renderLandingPageSignIn() : this.renderSignInContainer();
62
+ }
63
+ renderSignInContainer() {
64
+ return h("div", { class: CSS.base }, this.isSignedIn ? this.renderSignInDropdown() : this.renderSignInButton());
65
+ }
66
+ renderSignInDropdown() {
67
+ var _a, _b, _c, _d, _e, _f, _g;
68
+ const dropdownScale = this.type === 'navigation' ? 'm' : 's';
69
+ return (h("calcite-dropdown", { placement: "bottom-end", scale: dropdownScale }, this.type === 'navigation' ? (h("calcite-navigation-user", { slot: "trigger", thumbnail: (_a = this.user) === null || _a === void 0 ? void 0 : _a.thumbnailUrl, "full-name": (_b = this.user) === null || _b === void 0 ? void 0 : _b.fullName, username: (_c = this.user) === null || _c === void 0 ? void 0 : _c.username, textDisabled: true })) : (h("button", { slot: "trigger" }, h("calcite-avatar", { thumbnail: (_d = this.user) === null || _d === void 0 ? void 0 : _d.thumbnailUrl, "full-name": (_e = this.user) === null || _e === void 0 ? void 0 : _e.fullName, username: (_f = this.user) === null || _f === void 0 ? void 0 : _f.username }))), h("calcite-dropdown-group", { "selection-mode": "none" }, h("calcite-dropdown-item", { onClick: this.signOut.bind(this) }, (_g = this.messages) === null || _g === void 0 ? void 0 : _g.signOut))));
70
+ }
71
+ renderSignInButton() {
72
+ var _a;
73
+ const appearance = this.type === 'navigation' ? 'transparent' : 'brand';
74
+ const className = this.type === 'navigation' ? CSS.SignInBtn : '';
75
+ return (h("calcite-button", { class: className, onClick: this.signIn.bind(this), scale: "s", "icon-start": "sign-in", appearance: appearance }, (_a = this.messages) === null || _a === void 0 ? void 0 : _a.signIn));
76
+ }
77
+ renderLandingPageSignIn() {
78
+ var _a, _b;
79
+ return (h("div", { class: CSS.landing }, h("h1", null, this.titleText), h("h2", null, this.subtitleText), h("p", null, this.descriptionText), h("div", { class: CSS.landingBtn }, h("calcite-button", { onClick: this.landingPageSignIn.bind(this) }, (_a = this.messages) === null || _a === void 0 ? void 0 : _a.signIn), h("calcite-button", { onClick: this.guestOnClick.bind(this), appearance: "outline" }, (_b = this.messages) === null || _b === void 0 ? void 0 : _b.continueAsGuest))));
80
+ }
81
+ async initSignIn() {
82
+ if (this.portal == null || this.oauthappid == null)
83
+ return;
84
+ const [OAuthInfo, esriId, reactiveUtils] = await loadModules(['esri/identity/OAuthInfo', 'esri/identity/IdentityManager', 'esri/core/reactiveUtils']);
85
+ this.idManager = esriId;
86
+ this.info = new OAuthInfo({
87
+ appId: this.oauthappid,
88
+ portalUrl: this.portal.url,
89
+ flowType: 'authorization-code',
90
+ popup: this.openInPopup,
91
+ });
92
+ this.idManager.registerOAuthInfos([this.info]);
93
+ this.isSignedIn = await this.checkSignInStatus();
94
+ this.ready = true;
95
+ this.watchCredential();
96
+ reactiveUtils
97
+ .whenOnce(() => this.portal.user)
98
+ .then(() => {
99
+ this.user = this.portal.user;
100
+ this.ready = true;
101
+ });
102
+ }
103
+ signIn() {
104
+ if (this.landingPage) {
105
+ this.setSignInLocalStorage();
106
+ }
107
+ this.idManager
108
+ .getCredential(this.info.portalUrl + '/sharing', {
109
+ oAuthPopupConfirmation: false,
110
+ })
111
+ .then(async () => {
112
+ await this.checkSignInStatus();
113
+ });
114
+ }
115
+ signOut() {
116
+ this.idManager.destroyCredentials();
117
+ this.portal.authMode = 'anonymous';
118
+ localStorage.removeItem('_AGO_SESSION_');
119
+ this.isSignedIn = false;
120
+ this.portal.credential = null;
121
+ }
122
+ landingPageSignIn() {
123
+ if (!this.isSignedIn) {
124
+ this.setSignInLocalStorage();
125
+ this.signIn();
126
+ }
127
+ else if (this.closeLandingPage != null) {
128
+ this.closeLandingPage();
129
+ }
130
+ }
131
+ guestOnClick() {
132
+ this.signOut();
133
+ if (this.closeLandingPage != null) {
134
+ this.closeLandingPage();
135
+ }
136
+ }
137
+ checkSignInStatus() {
138
+ return new Promise(resolve => {
139
+ this.idManager
140
+ .checkSignInStatus(this.info.portalUrl + '/sharing')
141
+ .then(async (credential) => {
142
+ this.portal.credential = credential;
143
+ resolve(true);
144
+ })
145
+ .catch(() => {
146
+ this.portal.credential = null;
147
+ resolve(false);
148
+ });
149
+ });
150
+ }
151
+ watchCredential() {
152
+ this.portal.addHandles(this.portal.watch('credential', credential => {
153
+ this.isSignedIn = credential != null;
154
+ }));
155
+ }
156
+ setSignInLocalStorage() {
157
+ const date = new Date();
158
+ localStorage.setItem('signing-in', date.getTime().toString());
159
+ // remove from local storage if page doens't immediately redirect to sign in
160
+ setTimeout(() => {
161
+ localStorage.removeItem('signing-in');
162
+ }, 2000);
163
+ }
164
+ get el() { return this; }
165
+ static get watchers() { return {
166
+ "portal": ["watchPortal"],
167
+ "oauthappid": ["watchOauthappid"]
168
+ }; }
169
+ static get style() { return InstantAppsSignInStyle0; }
170
+ }, [1, "instant-apps-sign-in", {
171
+ "type": [1],
172
+ "portal": [16],
173
+ "oauthappid": [1],
174
+ "openInPopup": [4, "open-in-popup"],
175
+ "landingPage": [4, "landing-page"],
176
+ "titleText": [1, "title-text"],
177
+ "subtitleText": [1, "subtitle-text"],
178
+ "descriptionText": [1, "description-text"],
179
+ "closeLandingPage": [16],
180
+ "isSignedIn": [32],
181
+ "user": [32],
182
+ "ready": [32],
183
+ "messages": [32]
184
+ }, undefined, {
185
+ "portal": ["watchPortal"],
186
+ "oauthappid": ["watchOauthappid"]
187
+ }]);
188
+ function defineCustomElement() {
189
+ if (typeof customElements === "undefined") {
190
+ return;
191
+ }
192
+ const components = ["instant-apps-sign-in", "calcite-avatar", "calcite-button", "calcite-dropdown", "calcite-dropdown-group", "calcite-dropdown-item", "calcite-icon", "calcite-loader", "calcite-navigation-user"];
193
+ components.forEach(tagName => { switch (tagName) {
194
+ case "instant-apps-sign-in":
195
+ if (!customElements.get(tagName)) {
196
+ customElements.define(tagName, InstantAppsSignIn);
197
+ }
198
+ break;
199
+ case "calcite-avatar":
200
+ if (!customElements.get(tagName)) {
201
+ defineCustomElement$8();
202
+ }
203
+ break;
204
+ case "calcite-button":
205
+ if (!customElements.get(tagName)) {
206
+ defineCustomElement$7();
207
+ }
208
+ break;
209
+ case "calcite-dropdown":
210
+ if (!customElements.get(tagName)) {
211
+ defineCustomElement$6();
212
+ }
213
+ break;
214
+ case "calcite-dropdown-group":
215
+ if (!customElements.get(tagName)) {
216
+ defineCustomElement$5();
217
+ }
218
+ break;
219
+ case "calcite-dropdown-item":
220
+ if (!customElements.get(tagName)) {
221
+ defineCustomElement$4();
222
+ }
223
+ break;
224
+ case "calcite-icon":
225
+ if (!customElements.get(tagName)) {
226
+ defineCustomElement$3();
227
+ }
228
+ break;
229
+ case "calcite-loader":
230
+ if (!customElements.get(tagName)) {
231
+ defineCustomElement$2();
232
+ }
233
+ break;
234
+ case "calcite-navigation-user":
235
+ if (!customElements.get(tagName)) {
236
+ defineCustomElement$1();
237
+ }
238
+ break;
239
+ } });
240
+ }
241
+ defineCustomElement();
242
+
243
+ export { InstantAppsSignIn as I, defineCustomElement as d };