@esri/solutions-components 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (196) hide show
  1. package/dist/assets/t9n/feature-comments/resources.json +3 -0
  2. package/dist/assets/t9n/feature-comments/resources_en.json +3 -0
  3. package/dist/assets/t9n/feature-form-flow-item/resources.json +3 -0
  4. package/dist/assets/t9n/feature-form-flow-item/resources_en.json +3 -0
  5. package/dist/assets/t9n/layer-table/resources.json +2 -1
  6. package/dist/assets/t9n/layer-table/resources_en.json +2 -1
  7. package/dist/assets/t9n/list-flow-item/resources.json +3 -0
  8. package/dist/assets/t9n/list-flow-item/resources_en.json +3 -0
  9. package/dist/assets/t9n/location-flow-item/resources.json +3 -0
  10. package/dist/assets/t9n/location-flow-item/resources_en.json +3 -0
  11. package/dist/assets/t9n/share-item/resources.json +3 -0
  12. package/dist/assets/t9n/share-item/resources_en.json +3 -0
  13. package/dist/cjs/{list-item.cjs.entry.js → arcgis-login.cjs.entry.js} +4 -19
  14. package/dist/cjs/basemap-gallery_7.cjs.entry.js +13 -9
  15. package/dist/cjs/calcite-action_2.cjs.entry.js +61 -392
  16. package/dist/cjs/calcite-alert_3.cjs.entry.js +21 -3
  17. package/dist/cjs/calcite-combobox_6.cjs.entry.js +32 -8
  18. package/dist/cjs/calcite-popover.cjs.entry.js +418 -0
  19. package/dist/cjs/card-manager_3.cjs.entry.js +154 -18
  20. package/dist/cjs/crowdsource-manager.cjs.entry.js +24 -2
  21. package/dist/cjs/crowdsource-reporter.cjs.entry.js +45 -6
  22. package/dist/cjs/{downloadUtils-e3e595e9.js → downloadUtils-9c4fde54.js} +2 -2
  23. package/dist/cjs/feature-comments.cjs.entry.js +60 -0
  24. package/dist/cjs/feature-form-flow-item.cjs.entry.js +60 -0
  25. package/dist/cjs/features-flow-item.cjs.entry.js +60 -0
  26. package/dist/cjs/{index.es-047537b5.js → index.es-d208a6d6.js} +2 -2
  27. package/dist/cjs/list-flow-item.cjs.entry.js +60 -0
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/cjs/location-flow-item.cjs.entry.js +60 -0
  30. package/dist/cjs/map-select-tools_3.cjs.entry.js +2 -2
  31. package/dist/cjs/{mapViewUtils-f7bbc35b.js → mapViewUtils-bab83c90.js} +21 -0
  32. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  33. package/dist/cjs/refine-results-flow-item.cjs.entry.js +60 -0
  34. package/dist/cjs/share-item.cjs.entry.js +60 -0
  35. package/dist/cjs/solutions-components.cjs.js +1 -1
  36. package/dist/collection/collection-manifest.json +8 -1
  37. package/dist/collection/components/{list-item/list-item.js → arcgis-login/arcgis-login.js} +4 -19
  38. package/dist/collection/components/arcgis-login/test/arcgis-login.e2e.js +29 -0
  39. package/dist/collection/components/arcgis-login/test/arcgis-login.spec.js +37 -0
  40. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +118 -2
  41. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +294 -6
  42. package/dist/collection/components/feature-comments/feature-comments.css +19 -0
  43. package/dist/collection/components/feature-comments/feature-comments.js +74 -0
  44. package/dist/collection/components/feature-comments/test/feature-comments.e2e.js +29 -0
  45. package/dist/collection/components/feature-comments/test/feature-comments.spec.js +37 -0
  46. package/dist/collection/components/feature-form-flow-item/feature-form-flow-item.css +19 -0
  47. package/dist/collection/components/feature-form-flow-item/feature-form-flow-item.js +74 -0
  48. package/dist/collection/components/feature-form-flow-item/test/feature-form-flow-item.e2e.js +29 -0
  49. package/dist/collection/components/feature-form-flow-item/test/feature-form-flow-item.spec.js +37 -0
  50. package/dist/collection/components/features-flow-item/features-flow-item.css +19 -0
  51. package/dist/collection/components/features-flow-item/features-flow-item.js +74 -0
  52. package/dist/collection/components/features-flow-item/test/features-flow-item.e2e.js +29 -0
  53. package/dist/collection/components/features-flow-item/test/features-flow-item.spec.js +37 -0
  54. package/dist/collection/components/info-card/info-card.js +21 -2
  55. package/dist/collection/components/layer-table/layer-table.js +199 -10
  56. package/dist/collection/components/list-flow-item/list-flow-item.css +19 -0
  57. package/dist/collection/components/list-flow-item/list-flow-item.js +74 -0
  58. package/dist/collection/components/list-flow-item/test/list-flow-item.e2e.js +29 -0
  59. package/dist/collection/components/list-flow-item/test/list-flow-item.spec.js +37 -0
  60. package/dist/collection/components/location-flow-item/location-flow-item.css +19 -0
  61. package/dist/collection/components/location-flow-item/location-flow-item.js +74 -0
  62. package/dist/collection/components/location-flow-item/test/location-flow-item.e2e.js +29 -0
  63. package/dist/collection/components/location-flow-item/test/location-flow-item.spec.js +37 -0
  64. package/dist/collection/components/map-card/map-card.js +38 -7
  65. package/dist/collection/components/map-layer-picker/map-layer-picker.js +49 -7
  66. package/dist/collection/components/map-picker/map-picker.js +37 -9
  67. package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.css +19 -0
  68. package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.js +74 -0
  69. package/dist/collection/components/refine-results-flow-item/test/refine-results-flow-item.e2e.js +29 -0
  70. package/dist/collection/components/refine-results-flow-item/test/refine-results-flow-item.spec.js +37 -0
  71. package/dist/collection/components/share-item/share-item.css +19 -0
  72. package/dist/collection/components/share-item/share-item.js +74 -0
  73. package/dist/collection/components/share-item/test/share-item.e2e.js +29 -0
  74. package/dist/collection/components/share-item/test/share-item.spec.js +37 -0
  75. package/dist/collection/demos/crowdsource-reporter.html +56 -15
  76. package/dist/collection/utils/interfaces.ts +5 -0
  77. package/dist/collection/utils/queryUtils.js +20 -0
  78. package/dist/collection/utils/queryUtils.ts +26 -0
  79. package/dist/components/arcgis-login.d.ts +11 -0
  80. package/dist/components/arcgis-login.js +75 -0
  81. package/dist/components/calcite-list-item.js +1 -1
  82. package/dist/components/card-manager2.js +7 -1
  83. package/dist/components/crowdsource-manager.js +32 -3
  84. package/dist/components/crowdsource-reporter.js +61 -7
  85. package/dist/components/feature-comments.d.ts +11 -0
  86. package/dist/components/feature-comments.js +75 -0
  87. package/dist/components/feature-form-flow-item.d.ts +11 -0
  88. package/dist/components/feature-form-flow-item.js +75 -0
  89. package/dist/components/features-flow-item.d.ts +11 -0
  90. package/dist/components/features-flow-item.js +75 -0
  91. package/dist/components/info-card2.js +28 -3
  92. package/dist/components/layer-table2.js +138 -10
  93. package/dist/components/list-flow-item.d.ts +11 -0
  94. package/dist/components/list-flow-item.js +75 -0
  95. package/dist/components/list-item.js +425 -55
  96. package/dist/components/location-flow-item.d.ts +11 -0
  97. package/dist/components/location-flow-item.js +75 -0
  98. package/dist/components/map-card2.js +22 -8
  99. package/dist/components/map-layer-picker2.js +32 -7
  100. package/dist/components/map-picker2.js +16 -11
  101. package/dist/components/map-select-tools2.js +1 -1
  102. package/dist/components/public-notification.js +1 -1
  103. package/dist/components/queryUtils.js +21 -1
  104. package/dist/components/refine-results-flow-item.d.ts +11 -0
  105. package/dist/components/refine-results-flow-item.js +75 -0
  106. package/dist/components/refine-selection2.js +2 -2
  107. package/dist/components/{list-item.d.ts → share-item.d.ts} +4 -4
  108. package/dist/components/share-item.js +75 -0
  109. package/dist/esm/{list-item.entry.js → arcgis-login.entry.js} +4 -19
  110. package/dist/esm/basemap-gallery_7.entry.js +13 -9
  111. package/dist/esm/calcite-action_2.entry.js +63 -394
  112. package/dist/esm/calcite-alert_3.entry.js +21 -3
  113. package/dist/esm/calcite-combobox_6.entry.js +32 -8
  114. package/dist/esm/calcite-popover.entry.js +414 -0
  115. package/dist/esm/card-manager_3.entry.js +154 -18
  116. package/dist/esm/crowdsource-manager.entry.js +24 -2
  117. package/dist/esm/crowdsource-reporter.entry.js +45 -6
  118. package/dist/esm/{downloadUtils-8fbd1347.js → downloadUtils-b84a6f55.js} +2 -2
  119. package/dist/esm/feature-comments.entry.js +56 -0
  120. package/dist/esm/feature-form-flow-item.entry.js +56 -0
  121. package/dist/esm/features-flow-item.entry.js +56 -0
  122. package/dist/esm/{index.es-b6705ce7.js → index.es-0d4698c7.js} +2 -2
  123. package/dist/esm/list-flow-item.entry.js +56 -0
  124. package/dist/esm/loader.js +1 -1
  125. package/dist/esm/location-flow-item.entry.js +56 -0
  126. package/dist/esm/map-select-tools_3.entry.js +2 -2
  127. package/dist/esm/{mapViewUtils-1e2befd7.js → mapViewUtils-88f363b6.js} +21 -1
  128. package/dist/esm/public-notification.entry.js +2 -2
  129. package/dist/esm/refine-results-flow-item.entry.js +56 -0
  130. package/dist/esm/share-item.entry.js +56 -0
  131. package/dist/esm/solutions-components.js +1 -1
  132. package/dist/solutions-components/demos/crowdsource-reporter.html +56 -15
  133. package/dist/solutions-components/{p-072680a5.js → p-214d41c3.js} +2 -2
  134. package/dist/solutions-components/p-28657abb.entry.js +11 -0
  135. package/dist/solutions-components/p-31b66bc3.entry.js +6 -0
  136. package/dist/solutions-components/{p-0123207d.entry.js → p-34737944.entry.js} +1 -1
  137. package/dist/solutions-components/{p-13d0424a.entry.js → p-3ced939f.entry.js} +1 -1
  138. package/dist/solutions-components/p-3dfbf45e.entry.js +6 -0
  139. package/dist/solutions-components/{p-092fd5d9.js → p-3ee78186.js} +1 -1
  140. package/dist/solutions-components/{p-7f793144.entry.js → p-4327c361.entry.js} +1 -1
  141. package/dist/solutions-components/p-455f4ed8.entry.js +17 -0
  142. package/dist/solutions-components/p-478fc7cb.entry.js +6 -0
  143. package/dist/solutions-components/p-4aafb627.js +36 -0
  144. package/dist/solutions-components/p-58562dda.entry.js +6 -0
  145. package/dist/solutions-components/{p-f367db61.entry.js → p-81503752.entry.js} +1 -1
  146. package/dist/solutions-components/{p-c90671e1.entry.js → p-9d54d7a0.entry.js} +4 -4
  147. package/dist/solutions-components/p-a5d70d3a.entry.js +6 -0
  148. package/dist/solutions-components/p-bd62df52.entry.js +6 -0
  149. package/dist/solutions-components/{p-ca780ab8.entry.js → p-d6f51bea.entry.js} +2 -2
  150. package/dist/solutions-components/p-e6371690.entry.js +6 -0
  151. package/dist/solutions-components/p-e7aad23d.entry.js +6 -0
  152. package/dist/solutions-components/p-ed95f634.entry.js +6 -0
  153. package/dist/solutions-components/p-fd08afb5.entry.js +6 -0
  154. package/dist/solutions-components/solutions-components.esm.js +1 -1
  155. package/dist/solutions-components/utils/interfaces.ts +5 -0
  156. package/dist/solutions-components/utils/queryUtils.ts +26 -0
  157. package/dist/types/components/{list-item/list-item.d.ts → arcgis-login/arcgis-login.d.ts} +2 -9
  158. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +36 -0
  159. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +73 -0
  160. package/dist/types/components/feature-comments/feature-comments.d.ts +19 -0
  161. package/dist/types/components/feature-form-flow-item/feature-form-flow-item.d.ts +19 -0
  162. package/dist/types/components/features-flow-item/features-flow-item.d.ts +19 -0
  163. package/dist/types/components/info-card/info-card.d.ts +8 -0
  164. package/dist/types/components/layer-table/layer-table.d.ts +77 -2
  165. package/dist/types/components/list-flow-item/list-flow-item.d.ts +19 -0
  166. package/dist/types/components/location-flow-item/location-flow-item.d.ts +19 -0
  167. package/dist/types/components/map-card/map-card.d.ts +12 -0
  168. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +15 -2
  169. package/dist/types/components/map-picker/map-picker.d.ts +1 -4
  170. package/dist/types/components/refine-results-flow-item/refine-results-flow-item.d.ts +19 -0
  171. package/dist/types/components/share-item/share-item.d.ts +19 -0
  172. package/dist/types/components.d.ts +301 -9
  173. package/dist/types/preact.d.ts +15 -1
  174. package/dist/types/utils/interfaces.d.ts +4 -0
  175. package/dist/types/utils/queryUtils.d.ts +9 -0
  176. package/package.json +1 -1
  177. package/dist/assets/t9n/config-buffer-tools/resources.json +0 -12
  178. package/dist/assets/t9n/config-buffer-tools/resources_en.json +0 -12
  179. package/dist/assets/t9n/config-draw-tools/resources.json +0 -10
  180. package/dist/assets/t9n/config-draw-tools/resources_en.json +0 -10
  181. package/dist/assets/t9n/config-layer-picker/resources.json +0 -3
  182. package/dist/assets/t9n/config-layer-picker/resources_en.json +0 -3
  183. package/dist/assets/t9n/config-pdf-download/resources.json +0 -6
  184. package/dist/assets/t9n/config-pdf-download/resources_en.json +0 -6
  185. package/dist/cjs/calcite-loader.cjs.entry.js +0 -80
  186. package/dist/components/list-item2.js +0 -460
  187. package/dist/esm/calcite-loader.entry.js +0 -76
  188. package/dist/solutions-components/p-11cb7b04.entry.js +0 -6
  189. package/dist/solutions-components/p-45cf4f67.entry.js +0 -6
  190. package/dist/solutions-components/p-4807b2a1.js +0 -36
  191. package/dist/solutions-components/p-557a1912.entry.js +0 -6
  192. package/dist/solutions-components/p-68735975.entry.js +0 -6
  193. package/dist/solutions-components/p-ec830ecb.entry.js +0 -23
  194. /package/dist/assets/t9n/{list-item → arcgis-login}/resources.json +0 -0
  195. /package/dist/assets/t9n/{list-item → arcgis-login}/resources_en.json +0 -0
  196. /package/dist/collection/components/{list-item/list-item.css → arcgis-login/arcgis-login.css} +0 -0
@@ -3,88 +3,458 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
6
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
+ import { j as slotChangeHasAssignedElement, g as getElementDir, t as toAriaBoolean } from './dom.js';
8
+ import { c as connectInteractive, u as updateHostInteraction, d as disconnectInteractive } from './interactive.js';
9
+ import { a as getDepth, C as CSS, I as ICONS, S as SLOTS, g as getListItemChildren, u as updateListItemChildren } from './utils3.js';
10
+ import { c as connectLocalized, d as disconnectLocalized } from './locale2.js';
11
+ import { u as updateMessages, c as connectMessages, s as setUpMessages, d as disconnectMessages } from './t9n.js';
12
+ import { s as setUpLoadableComponent, a as setComponentLoaded, c as componentFocusable } from './loadable.js';
13
+ import { d as defineCustomElement$4 } from './action.js';
14
+ import { d as defineCustomElement$3 } from './handle.js';
15
+ import { d as defineCustomElement$2 } from './icon.js';
16
+ import { d as defineCustomElement$1 } from './loader.js';
7
17
 
8
- const listItemCss = ":host{display:block}";
18
+ const listItemCss = ":host([disabled]){cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex;flex-direction:column;--calcite-list-item-icon-color:var(--calcite-ui-brand);--calcite-list-item-spacing-indent:1rem}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.container{box-sizing:border-box;display:flex;flex:1 1 0%;background-color:var(--calcite-ui-foreground-1);font-family:var(--calcite-sans-family);padding-inline-start:calc(var(--calcite-list-item-spacing-indent) * var(--calcite-list-item-spacing-indent-multiplier))}.container *{box-sizing:border-box}.container:hover{cursor:pointer;background-color:var(--calcite-ui-foreground-2)}.container--border-selected{border-inline-start:4px solid var(--calcite-ui-brand)}.container--border-unselected{border-inline-start:4px solid transparent}.nested-container{display:flex;flex-direction:column;background-color:var(--calcite-ui-foreground-1)}.nested-container--hidden{display:none}.content-container{display:flex;flex:1 1 auto;align-items:stretch;padding:0px;font-family:var(--calcite-sans-family);font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-2)}tr,td{outline-color:transparent}tr:focus,td:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-ui-brand));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-ui-focus-offset-invert),\n 1\n )\n )\n )}.content,.custom-content{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;padding-inline:0.75rem;padding-block:0.5rem;font-size:var(--calcite-font-size--2);line-height:1.375}.label,.description{font-family:var(--calcite-sans-family);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-normal);word-wrap:break-word;word-break:break-word}.label:only-child,.description:only-child{margin:0px;padding-block:0.25rem}.label{color:var(--calcite-ui-text-1)}.description{margin-block-start:0.125rem;color:var(--calcite-ui-text-3)}.content-start{justify-content:flex-start}.content-end{justify-content:flex-end}.content-start,.content-end{flex:1 1 auto}.content-container--has-center-content .content-start,.content-container--has-center-content .content-end{flex:0 1 auto}.selection-container{display:flex;padding-inline:0.75rem;color:var(--calcite-list-item-icon-color)}.actions-start,.actions-end,.content-start,.content-end,.selection-container,.drag-container,.open-container{display:flex;align-items:center}.open-container,.selection-container{cursor:pointer}.content-start ::slotted(calcite-icon),.content-end ::slotted(calcite-icon){margin-inline:0.75rem;align-self:center}.actions-start ::slotted(calcite-action),.actions-end ::slotted(calcite-action){align-self:stretch;color:inherit}::slotted(calcite-list-item){border-width:0px;border-block-start-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3)}:host([hidden]){display:none}[hidden]{display:none}";
9
19
 
10
- const ListItem$1 = /*@__PURE__*/ proxyCustomElement(class ListItem extends HTMLElement {
20
+ const focusMap = new Map();
21
+ const listSelector = "calcite-list";
22
+ const ListItem = /*@__PURE__*/ proxyCustomElement(class ListItem extends HTMLElement {
11
23
  constructor() {
12
24
  super();
13
25
  this.__registerHost();
14
26
  this.__attachShadow();
27
+ this.calciteListItemSelect = createEvent(this, "calciteListItemSelect", 6);
28
+ this.calciteListItemClose = createEvent(this, "calciteListItemClose", 6);
29
+ this.calciteInternalListItemSelect = createEvent(this, "calciteInternalListItemSelect", 6);
30
+ this.calciteInternalListItemActive = createEvent(this, "calciteInternalListItemActive", 6);
31
+ this.calciteInternalFocusPreviousItem = createEvent(this, "calciteInternalFocusPreviousItem", 6);
32
+ this.calciteInternalListItemChange = createEvent(this, "calciteInternalListItemChange", 6);
33
+ this.closeClickHandler = () => {
34
+ this.closed = true;
35
+ this.calciteListItemClose.emit();
36
+ };
37
+ this.handleContentSlotChange = (event) => {
38
+ this.hasCustomContent = slotChangeHasAssignedElement(event);
39
+ };
40
+ this.handleActionsStartSlotChange = (event) => {
41
+ this.hasActionsStart = slotChangeHasAssignedElement(event);
42
+ };
43
+ this.handleActionsEndSlotChange = (event) => {
44
+ this.hasActionsEnd = slotChangeHasAssignedElement(event);
45
+ };
46
+ this.handleContentStartSlotChange = (event) => {
47
+ this.hasContentStart = slotChangeHasAssignedElement(event);
48
+ };
49
+ this.handleContentEndSlotChange = (event) => {
50
+ this.hasContentEnd = slotChangeHasAssignedElement(event);
51
+ };
52
+ this.handleDefaultSlotChange = (event) => {
53
+ this.handleOpenableChange(event.target);
54
+ };
55
+ this.toggleOpen = () => {
56
+ this.open = !this.open;
57
+ };
58
+ this.itemClicked = (event) => {
59
+ if (event.defaultPrevented) {
60
+ return;
61
+ }
62
+ this.toggleSelected();
63
+ this.calciteInternalListItemActive.emit();
64
+ };
65
+ this.toggleSelected = () => {
66
+ const { selectionMode, selected } = this;
67
+ if (this.disabled) {
68
+ return;
69
+ }
70
+ if (selectionMode === "multiple" || selectionMode === "single") {
71
+ this.selected = !selected;
72
+ }
73
+ else if (selectionMode === "single-persist") {
74
+ this.selected = true;
75
+ }
76
+ this.calciteListItemSelect.emit();
77
+ };
78
+ this.handleItemKeyDown = (event) => {
79
+ if (event.defaultPrevented) {
80
+ return;
81
+ }
82
+ const { key } = event;
83
+ const composedPath = event.composedPath();
84
+ const { containerEl, contentEl, actionsStartEl, actionsEndEl, open, openable } = this;
85
+ const cells = [actionsStartEl, contentEl, actionsEndEl].filter(Boolean);
86
+ const currentIndex = cells.findIndex((cell) => composedPath.includes(cell));
87
+ if (key === "Enter" &&
88
+ !composedPath.includes(actionsStartEl) &&
89
+ !composedPath.includes(actionsEndEl)) {
90
+ event.preventDefault();
91
+ this.toggleSelected();
92
+ }
93
+ else if (key === "ArrowRight") {
94
+ event.preventDefault();
95
+ const nextIndex = currentIndex + 1;
96
+ if (currentIndex === -1) {
97
+ if (!open && openable) {
98
+ this.open = true;
99
+ this.focusCell(null);
100
+ }
101
+ else if (cells[0]) {
102
+ this.focusCell(cells[0]);
103
+ }
104
+ }
105
+ else if (cells[currentIndex] && cells[nextIndex]) {
106
+ this.focusCell(cells[nextIndex]);
107
+ }
108
+ }
109
+ else if (key === "ArrowLeft") {
110
+ event.preventDefault();
111
+ const prevIndex = currentIndex - 1;
112
+ if (currentIndex === -1) {
113
+ this.focusCell(null);
114
+ if (open && openable) {
115
+ this.open = false;
116
+ }
117
+ else {
118
+ this.calciteInternalFocusPreviousItem.emit();
119
+ }
120
+ }
121
+ else if (currentIndex === 0) {
122
+ this.focusCell(null);
123
+ containerEl.focus();
124
+ }
125
+ else if (cells[currentIndex] && cells[prevIndex]) {
126
+ this.focusCell(cells[prevIndex]);
127
+ }
128
+ }
129
+ };
130
+ this.focusCellNull = () => {
131
+ this.focusCell(null);
132
+ };
133
+ this.focusCell = (focusEl, saveFocusIndex = true) => {
134
+ const { contentEl, actionsStartEl, actionsEndEl, parentListEl } = this;
135
+ if (saveFocusIndex) {
136
+ focusMap.set(parentListEl, null);
137
+ }
138
+ [actionsStartEl, contentEl, actionsEndEl].filter(Boolean).forEach((tableCell, cellIndex) => {
139
+ const tabIndexAttr = "tabindex";
140
+ if (tableCell === focusEl) {
141
+ tableCell.setAttribute(tabIndexAttr, "0");
142
+ saveFocusIndex && focusMap.set(parentListEl, cellIndex);
143
+ }
144
+ else {
145
+ tableCell.removeAttribute(tabIndexAttr);
146
+ }
147
+ });
148
+ focusEl === null || focusEl === void 0 ? void 0 : focusEl.focus();
149
+ };
150
+ this.active = false;
151
+ this.closable = false;
152
+ this.closed = false;
153
+ this.description = undefined;
154
+ this.disabled = false;
155
+ this.dragHandle = false;
156
+ this.label = undefined;
157
+ this.metadata = undefined;
158
+ this.open = false;
159
+ this.setSize = null;
160
+ this.setPosition = null;
161
+ this.selected = false;
162
+ this.value = undefined;
163
+ this.selectionMode = null;
164
+ this.selectionAppearance = null;
165
+ this.messageOverrides = undefined;
166
+ this.messages = undefined;
167
+ this.effectiveLocale = "";
168
+ this.defaultMessages = undefined;
169
+ this.level = null;
170
+ this.visualLevel = null;
171
+ this.parentListEl = undefined;
172
+ this.openable = false;
173
+ this.hasActionsStart = false;
174
+ this.hasActionsEnd = false;
175
+ this.hasCustomContent = false;
176
+ this.hasContentStart = false;
177
+ this.hasContentEnd = false;
15
178
  }
16
- //--------------------------------------------------------------------------
17
- //
18
- // Properties (public)
19
- //
20
- //--------------------------------------------------------------------------
21
- //--------------------------------------------------------------------------
22
- //
23
- // State (internal)
24
- //
25
- //--------------------------------------------------------------------------
26
- //--------------------------------------------------------------------------
27
- //
28
- // Properties (protected)
29
- //
30
- //--------------------------------------------------------------------------
31
- //--------------------------------------------------------------------------
32
- //
33
- // Watch handlers
34
- //
35
- //--------------------------------------------------------------------------
36
- //--------------------------------------------------------------------------
179
+ activeHandler(active) {
180
+ if (!active) {
181
+ this.focusCell(null, false);
182
+ }
183
+ }
184
+ handleClosedChange() {
185
+ this.emitCalciteInternalListItemChange();
186
+ }
187
+ handleDisabledChange() {
188
+ this.emitCalciteInternalListItemChange();
189
+ }
190
+ handleSelectedChange() {
191
+ this.calciteInternalListItemSelect.emit();
192
+ }
193
+ onMessagesChange() {
194
+ /* wired up by t9n util */
195
+ }
196
+ handleCalciteInternalListDefaultSlotChanges(event) {
197
+ event.stopPropagation();
198
+ this.handleOpenableChange(this.defaultSlotEl);
199
+ }
200
+ effectiveLocaleChange() {
201
+ updateMessages(this, this.effectiveLocale);
202
+ }
203
+ // --------------------------------------------------------------------------
37
204
  //
38
- // Methods (public)
205
+ // Lifecycle
39
206
  //
40
- //--------------------------------------------------------------------------
41
- //--------------------------------------------------------------------------
207
+ // --------------------------------------------------------------------------
208
+ connectedCallback() {
209
+ connectInteractive(this);
210
+ connectLocalized(this);
211
+ connectMessages(this);
212
+ const { el } = this;
213
+ this.parentListEl = el.closest(listSelector);
214
+ this.level = getDepth(el) + 1;
215
+ this.visualLevel = getDepth(el, true);
216
+ this.setSelectionDefaults();
217
+ }
218
+ async componentWillLoad() {
219
+ setUpLoadableComponent(this);
220
+ await setUpMessages(this);
221
+ }
222
+ componentDidLoad() {
223
+ setComponentLoaded(this);
224
+ }
225
+ componentDidRender() {
226
+ updateHostInteraction(this, "managed");
227
+ }
228
+ disconnectedCallback() {
229
+ disconnectInteractive(this);
230
+ disconnectLocalized(this);
231
+ disconnectMessages(this);
232
+ }
233
+ // --------------------------------------------------------------------------
42
234
  //
43
- // Events (public)
235
+ // Public Methods
44
236
  //
45
- //--------------------------------------------------------------------------
46
- //--------------------------------------------------------------------------
237
+ // --------------------------------------------------------------------------
238
+ /** Sets focus on the component. */
239
+ async setFocus() {
240
+ await componentFocusable(this);
241
+ const { containerEl, contentEl, actionsStartEl, actionsEndEl, parentListEl } = this;
242
+ const focusIndex = focusMap.get(parentListEl);
243
+ if (typeof focusIndex === "number") {
244
+ const cells = [actionsStartEl, contentEl, actionsEndEl].filter(Boolean);
245
+ if (cells[focusIndex]) {
246
+ this.focusCell(cells[focusIndex]);
247
+ }
248
+ else {
249
+ containerEl === null || containerEl === void 0 ? void 0 : containerEl.focus();
250
+ }
251
+ return;
252
+ }
253
+ containerEl === null || containerEl === void 0 ? void 0 : containerEl.focus();
254
+ }
255
+ // --------------------------------------------------------------------------
47
256
  //
48
- // Functions (lifecycle)
257
+ // Render Methods
49
258
  //
50
- //--------------------------------------------------------------------------
259
+ // --------------------------------------------------------------------------
260
+ renderSelected() {
261
+ const { selected, selectionMode, selectionAppearance } = this;
262
+ if (selectionMode === "none" || selectionAppearance === "border") {
263
+ return null;
264
+ }
265
+ return (h("td", { class: CSS.selectionContainer, key: "selection-container", onClick: this.itemClicked }, h("calcite-icon", { icon: selected
266
+ ? selectionMode === "multiple"
267
+ ? ICONS.selectedMultiple
268
+ : ICONS.selectedSingle
269
+ : ICONS.unselected, scale: "s" })));
270
+ }
271
+ renderDragHandle() {
272
+ return this.dragHandle ? (h("td", { class: CSS.dragContainer, key: "drag-handle-container" }, h("calcite-handle", { label: this.label, setPosition: this.setPosition, setSize: this.setSize }))) : null;
273
+ }
274
+ renderOpen() {
275
+ const { el, open, openable, parentListEl } = this;
276
+ const dir = getElementDir(el);
277
+ return openable ? (h("td", { class: CSS.openContainer, key: "open-container", onClick: this.toggleOpen }, h("calcite-icon", { icon: open ? ICONS.open : dir === "rtl" ? ICONS.closedRTL : ICONS.closedLTR, scale: "s" }))) : (parentListEl === null || parentListEl === void 0 ? void 0 : parentListEl.openable) ? (h("td", { class: CSS.openContainer, key: "open-container", onClick: this.itemClicked }, h("calcite-icon", { icon: ICONS.blank, scale: "s" }))) : null;
278
+ }
279
+ renderActionsStart() {
280
+ const { label, hasActionsStart } = this;
281
+ return (h("td", { "aria-label": label, class: CSS.actionsStart, hidden: !hasActionsStart, key: "actions-start-container", role: "gridcell",
282
+ // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
283
+ ref: (el) => (this.actionsStartEl = el) }, h("slot", { name: SLOTS.actionsStart, onSlotchange: this.handleActionsStartSlotChange })));
284
+ }
285
+ renderActionsEnd() {
286
+ const { label, hasActionsEnd, closable, messages } = this;
287
+ return (h("td", { "aria-label": label, class: CSS.actionsEnd, hidden: !(hasActionsEnd || closable), key: "actions-end-container", role: "gridcell",
288
+ // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
289
+ ref: (el) => (this.actionsEndEl = el) }, h("slot", { name: SLOTS.actionsEnd, onSlotchange: this.handleActionsEndSlotChange }), closable ? (h("calcite-action", { appearance: "transparent", icon: ICONS.close, key: "close-action", label: messages.close, onClick: this.closeClickHandler, text: messages.close })) : null));
290
+ }
291
+ renderContentStart() {
292
+ const { hasContentStart } = this;
293
+ return (h("div", { class: CSS.contentStart, hidden: !hasContentStart }, h("slot", { name: SLOTS.contentStart, onSlotchange: this.handleContentStartSlotChange })));
294
+ }
295
+ renderCustomContent() {
296
+ const { hasCustomContent } = this;
297
+ return (h("div", { class: CSS.customContent, hidden: !hasCustomContent }, h("slot", { name: SLOTS.content, onSlotchange: this.handleContentSlotChange })));
298
+ }
299
+ renderContentEnd() {
300
+ const { hasContentEnd } = this;
301
+ return (h("div", { class: CSS.contentEnd, hidden: !hasContentEnd }, h("slot", { name: SLOTS.contentEnd, onSlotchange: this.handleContentEndSlotChange })));
302
+ }
303
+ renderContentProperties() {
304
+ const { label, description, hasCustomContent } = this;
305
+ return !hasCustomContent && (!!label || !!description) ? (h("div", { class: CSS.content, key: "content" }, label ? (h("div", { class: CSS.label, key: "label" }, label)) : null, description ? (h("div", { class: CSS.description, key: "description" }, description)) : null)) : null;
306
+ }
307
+ renderContentContainer() {
308
+ const { description, label, selectionMode, hasCustomContent } = this;
309
+ const hasCenterContent = hasCustomContent || !!label || !!description;
310
+ const content = [
311
+ this.renderContentStart(),
312
+ this.renderCustomContent(),
313
+ this.renderContentProperties(),
314
+ this.renderContentEnd(),
315
+ ];
316
+ return (h("td", { "aria-label": label, class: {
317
+ [CSS.contentContainer]: true,
318
+ [CSS.contentContainerSelectable]: selectionMode !== "none",
319
+ [CSS.contentContainerHasCenterContent]: hasCenterContent,
320
+ }, key: "content-container", onClick: this.itemClicked, role: "gridcell",
321
+ // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
322
+ ref: (el) => (this.contentEl = el) }, content));
323
+ }
51
324
  render() {
52
- return (h(Host, null, h("slot", null)));
325
+ const { openable, open, level, setPosition, setSize, active, label, selected, selectionAppearance, selectionMode, closed, } = this;
326
+ const showBorder = selectionMode !== "none" && selectionAppearance === "border";
327
+ const borderSelected = showBorder && selected;
328
+ const borderUnselected = showBorder && !selected;
329
+ return (h(Host, null, h("tr", { "aria-expanded": openable ? toAriaBoolean(open) : null, "aria-label": label, "aria-level": level, "aria-posinset": setPosition, "aria-selected": toAriaBoolean(selected), "aria-setsize": setSize, class: {
330
+ [CSS.container]: true,
331
+ [CSS.containerBorderSelected]: borderSelected,
332
+ [CSS.containerBorderUnselected]: borderUnselected,
333
+ }, hidden: closed, onFocus: this.focusCellNull, onKeyDown: this.handleItemKeyDown, role: "row", style: { "--calcite-list-item-spacing-indent-multiplier": `${this.visualLevel}` }, tabIndex: active ? 0 : -1,
334
+ // eslint-disable-next-line react/jsx-sort-props -- ref should be last so node attrs/props are in sync (see https://github.com/Esri/calcite-design-system/pull/6530)
335
+ ref: (el) => (this.containerEl = el) }, this.renderDragHandle(), this.renderSelected(), this.renderOpen(), this.renderActionsStart(), this.renderContentContainer(), this.renderActionsEnd()), h("div", { class: {
336
+ [CSS.nestedContainer]: true,
337
+ [CSS.nestedContainerHidden]: openable && !open,
338
+ } }, h("slot", { onSlotchange: this.handleDefaultSlotChange, ref: (el) => (this.defaultSlotEl = el) }))));
53
339
  }
54
- //--------------------------------------------------------------------------
340
+ // --------------------------------------------------------------------------
55
341
  //
56
- // Functions (protected)
342
+ // Private Methods
57
343
  //
58
- //--------------------------------------------------------------------------
59
- /**
60
- * Fetches the component's translations
61
- *
62
- * @returns Promise when complete
63
- * @protected
64
- */
65
- async _getTranslations() {
66
- // const messages = await getLocaleComponentStrings(this.el);
67
- // this._translations = messages[0] as typeof BufferTools_T9n;
344
+ // --------------------------------------------------------------------------
345
+ emitCalciteInternalListItemChange() {
346
+ this.calciteInternalListItemChange.emit();
347
+ }
348
+ setSelectionDefaults() {
349
+ const { parentListEl, selectionMode, selectionAppearance } = this;
350
+ if (!parentListEl) {
351
+ return;
352
+ }
353
+ if (!selectionMode) {
354
+ this.selectionMode = parentListEl.selectionMode;
355
+ }
356
+ if (!selectionAppearance) {
357
+ this.selectionAppearance = parentListEl.selectionAppearance;
358
+ }
68
359
  }
360
+ handleOpenableChange(slotEl) {
361
+ if (!slotEl) {
362
+ return;
363
+ }
364
+ const { parentListEl } = this;
365
+ const listItemChildren = getListItemChildren(slotEl);
366
+ updateListItemChildren(listItemChildren);
367
+ const openable = !!listItemChildren.length;
368
+ if (openable && parentListEl && !parentListEl.openable) {
369
+ parentListEl.openable = true;
370
+ }
371
+ this.openable = openable;
372
+ if (!openable) {
373
+ this.open = false;
374
+ }
375
+ }
376
+ static get assetsDirs() { return ["assets"]; }
69
377
  get el() { return this; }
378
+ static get watchers() { return {
379
+ "active": ["activeHandler"],
380
+ "closed": ["handleClosedChange"],
381
+ "disabled": ["handleDisabledChange"],
382
+ "selected": ["handleSelectedChange"],
383
+ "messageOverrides": ["onMessagesChange"],
384
+ "effectiveLocale": ["effectiveLocaleChange"]
385
+ }; }
70
386
  static get style() { return listItemCss; }
71
- }, [1, "list-item"]);
72
- function defineCustomElement$1() {
387
+ }, [1, "calcite-list-item", {
388
+ "active": [4],
389
+ "closable": [516],
390
+ "closed": [1540],
391
+ "description": [1],
392
+ "disabled": [516],
393
+ "dragHandle": [4, "drag-handle"],
394
+ "label": [1],
395
+ "metadata": [16],
396
+ "open": [1540],
397
+ "setSize": [2, "set-size"],
398
+ "setPosition": [2, "set-position"],
399
+ "selected": [1540],
400
+ "value": [8],
401
+ "selectionMode": [1025, "selection-mode"],
402
+ "selectionAppearance": [1025, "selection-appearance"],
403
+ "messageOverrides": [1040],
404
+ "messages": [1040],
405
+ "effectiveLocale": [32],
406
+ "defaultMessages": [32],
407
+ "level": [32],
408
+ "visualLevel": [32],
409
+ "parentListEl": [32],
410
+ "openable": [32],
411
+ "hasActionsStart": [32],
412
+ "hasActionsEnd": [32],
413
+ "hasCustomContent": [32],
414
+ "hasContentStart": [32],
415
+ "hasContentEnd": [32],
416
+ "setFocus": [64]
417
+ }, [[0, "calciteInternalListItemGroupDefaultSlotChange", "handleCalciteInternalListDefaultSlotChanges"], [0, "calciteInternalListDefaultSlotChange", "handleCalciteInternalListDefaultSlotChanges"]], {
418
+ "active": ["activeHandler"],
419
+ "closed": ["handleClosedChange"],
420
+ "disabled": ["handleDisabledChange"],
421
+ "selected": ["handleSelectedChange"],
422
+ "messageOverrides": ["onMessagesChange"],
423
+ "effectiveLocale": ["effectiveLocaleChange"]
424
+ }]);
425
+ function defineCustomElement() {
73
426
  if (typeof customElements === "undefined") {
74
427
  return;
75
428
  }
76
- const components = ["list-item"];
429
+ const components = ["calcite-list-item", "calcite-action", "calcite-handle", "calcite-icon", "calcite-loader"];
77
430
  components.forEach(tagName => { switch (tagName) {
78
- case "list-item":
431
+ case "calcite-list-item":
432
+ if (!customElements.get(tagName)) {
433
+ customElements.define(tagName, ListItem);
434
+ }
435
+ break;
436
+ case "calcite-action":
437
+ if (!customElements.get(tagName)) {
438
+ defineCustomElement$4();
439
+ }
440
+ break;
441
+ case "calcite-handle":
79
442
  if (!customElements.get(tagName)) {
80
- customElements.define(tagName, ListItem$1);
443
+ defineCustomElement$3();
444
+ }
445
+ break;
446
+ case "calcite-icon":
447
+ if (!customElements.get(tagName)) {
448
+ defineCustomElement$2();
449
+ }
450
+ break;
451
+ case "calcite-loader":
452
+ if (!customElements.get(tagName)) {
453
+ defineCustomElement$1();
81
454
  }
82
455
  break;
83
456
  } });
84
457
  }
85
- defineCustomElement$1();
86
-
87
- const ListItem = ListItem$1;
88
- const defineCustomElement = defineCustomElement$1;
458
+ defineCustomElement();
89
459
 
90
- export { ListItem, defineCustomElement };
460
+ export { ListItem as L, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LocationFlowItem extends Components.LocationFlowItem, HTMLElement {}
4
+ export const LocationFlowItem: {
5
+ prototype: LocationFlowItem;
6
+ new (): LocationFlowItem;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,75 @@
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
+
8
+ const locationFlowItemCss = ":host{display:block}";
9
+
10
+ const LocationFlowItem$1 = /*@__PURE__*/ proxyCustomElement(class LocationFlowItem extends HTMLElement {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.__attachShadow();
15
+ }
16
+ //--------------------------------------------------------------------------
17
+ //
18
+ // Properties (public)
19
+ //
20
+ //--------------------------------------------------------------------------
21
+ //--------------------------------------------------------------------------
22
+ //
23
+ // State (internal)
24
+ //
25
+ //--------------------------------------------------------------------------
26
+ //--------------------------------------------------------------------------
27
+ //
28
+ // Properties (protected)
29
+ //
30
+ //--------------------------------------------------------------------------
31
+ //--------------------------------------------------------------------------
32
+ //
33
+ // Watch handlers
34
+ //
35
+ //--------------------------------------------------------------------------
36
+ //--------------------------------------------------------------------------
37
+ //
38
+ // Methods (public)
39
+ //
40
+ //--------------------------------------------------------------------------
41
+ //--------------------------------------------------------------------------
42
+ //
43
+ // Events (public)
44
+ //
45
+ //--------------------------------------------------------------------------
46
+ //--------------------------------------------------------------------------
47
+ //
48
+ // Functions (lifecycle)
49
+ //
50
+ //--------------------------------------------------------------------------
51
+ render() {
52
+ return (h(Host, null, h("slot", null)));
53
+ }
54
+ get el() { return this; }
55
+ static get style() { return locationFlowItemCss; }
56
+ }, [1, "location-flow-item"]);
57
+ function defineCustomElement$1() {
58
+ if (typeof customElements === "undefined") {
59
+ return;
60
+ }
61
+ const components = ["location-flow-item"];
62
+ components.forEach(tagName => { switch (tagName) {
63
+ case "location-flow-item":
64
+ if (!customElements.get(tagName)) {
65
+ customElements.define(tagName, LocationFlowItem$1);
66
+ }
67
+ break;
68
+ } });
69
+ }
70
+ defineCustomElement$1();
71
+
72
+ const LocationFlowItem = LocationFlowItem$1;
73
+ const defineCustomElement = defineCustomElement$1;
74
+
75
+ export { LocationFlowItem, defineCustomElement };